diff options
author | Renato Botelho <renato@netgate.com> | 2017-01-09 12:11:05 -0200 |
---|---|---|
committer | Renato Botelho <renato@netgate.com> | 2017-01-09 12:11:05 -0200 |
commit | 681a482d8fc4bfc14a24f7a9d75cca6337f2a520 (patch) | |
tree | 08368e0c4dcea4baa16f4a34b2cc104c42e1ed27 | |
parent | cbeab2a9b6b7ac70992175202f35fcc05a5821d5 (diff) | |
parent | 91f6edbb8913d163d5c16fb615e84baf8a16d390 (diff) | |
download | FreeBSD-src-681a482d8fc4bfc14a24f7a9d75cca6337f2a520.zip FreeBSD-src-681a482d8fc4bfc14a24f7a9d75cca6337f2a520.tar.gz |
Merge remote-tracking branch 'origin/stable/10' into devel
674 files changed, 65446 insertions, 39858 deletions
@@ -4,7 +4,7 @@ The compilation of software known as FreeBSD is distributed under the following terms: -Copyright (c) 1992-2016 The FreeBSD Project. All rights reserved. +Copyright (c) 1992-2017 The FreeBSD Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 1c8e233..c2b8b1b 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -939,7 +939,6 @@ OLD_FILES+=usr/lib32/libftpio_p.a OLD_FILES+=usr/include/ftpio.h OLD_FILES+=usr/share/man/man3/ftpio.3.gz # 20110915: rename congestion control manpages -OLD_FILES+=usr/share/man/man4/cc.4.gz OLD_FILES+=usr/share/man/man9/cc.9.gz # 20110831: atomic page flags operations OLD_FILES+=usr/share/man/man9/vm_page_flag.9.gz diff --git a/bin/df/Makefile b/bin/df/Makefile index df6574c..2dde4cc 100644 --- a/bin/df/Makefile +++ b/bin/df/Makefile @@ -9,6 +9,9 @@ SRCS= df.c vfslist.c CFLAGS+= -I${MOUNT} +CFLAGS+= -DMOUNT_CHAR_DEVS +SRCS+= getmntopts.c + DPADD= ${LIBUTIL} LDADD= -lutil diff --git a/bin/df/df.c b/bin/df/df.c index ba87055..3c10878 100644 --- a/bin/df/df.c +++ b/bin/df/df.c @@ -50,10 +50,15 @@ __FBSDID("$FreeBSD$"); #include <sys/stat.h> #include <sys/mount.h> #include <sys/sysctl.h> +#ifdef MOUNT_CHAR_DEVS #include <ufs/ufs/ufsmount.h> +#endif #include <err.h> #include <libutil.h> #include <locale.h> +#ifdef MOUNT_CHAR_DEVS +#include <mntopts.h> +#endif #include <stdint.h> #include <stdio.h> #include <stdlib.h> @@ -97,7 +102,9 @@ imax(int a, int b) static int aflag = 0, cflag, hflag, iflag, kflag, lflag = 0, nflag, Tflag; static int thousands; +#ifdef MOUNT_CHAR_DEVS static struct ufs_args mdev; +#endif int main(int argc, char *argv[]) @@ -106,11 +113,21 @@ main(int argc, char *argv[]) struct statfs statfsbuf, totalbuf; struct maxwidths maxwidths; struct statfs *mntbuf; +#ifdef MOUNT_CHAR_DEVS + struct iovec *iov = NULL; +#endif const char *fstype; - char *mntpath, *mntpt; +#ifdef MOUNT_CHAR_DEVS + char *mntpath; + char errmsg[255] = {0}; +#endif + char *mntpt; const char **vfslist; int i, mntsize; int ch, rv; +#ifdef MOUNT_CHAR_DEVS + int iovlen = 0; +#endif fstype = "ufs"; (void)setlocale(LC_ALL, ""); @@ -215,6 +232,7 @@ main(int argc, char *argv[]) rv = 1; continue; } +#ifdef MOUNT_CHAR_DEVS } else if (S_ISCHR(stbuf.st_mode)) { if ((mntpt = getmntpt(*argv)) == NULL) { mdev.fspec = *argv; @@ -231,9 +249,23 @@ main(int argc, char *argv[]) free(mntpath); continue; } - if (mount(fstype, mntpt, MNT_RDONLY, - &mdev) != 0) { - warn("%s", *argv); + if (iov != NULL) + free_iovec(&iov, &iovlen); + build_iovec_argf(&iov, &iovlen, "fstype", "%s", + fstype); + build_iovec_argf(&iov, &iovlen, "fspath", "%s", + mntpath); + build_iovec_argf(&iov, &iovlen, "from", "%s", + *argv); + build_iovec(&iov, &iovlen, "errmsg", errmsg, + sizeof(errmsg)); + if (nmount(iov, iovlen, + MNT_RDONLY|MNT_NOEXEC) < 0) { + if (errmsg[0]) + warn("%s: %s", *argv, + errmsg); + else + warn("%s", *argv); rv = 1; (void)rmdir(mntpt); free(mntpath); @@ -252,6 +284,7 @@ main(int argc, char *argv[]) free(mntpath); continue; } +#endif } else mntpt = *argv; diff --git a/bin/pax/buf_subs.c b/bin/pax/buf_subs.c index 4922fc8..40affa5 100644 --- a/bin/pax/buf_subs.c +++ b/bin/pax/buf_subs.c @@ -852,10 +852,13 @@ buf_fill(void) /* * errors require resync, EOF goes to next archive + * but in case we have not determined yet the format, + * this means that we have a very short file, so we + * are done again. */ if (cnt < 0) break; - if (ar_next() < 0) { + if (frmt == NULL || ar_next() < 0) { fini = 1; return(0); } diff --git a/bin/ps/print.c b/bin/ps/print.c index bcd451e..a1d5b2b 100644 --- a/bin/ps/print.c +++ b/bin/ps/print.c @@ -119,11 +119,12 @@ command(KINFO *k, VARENT *ve) if (cflag) { /* If it is the last field, then don't pad */ if (STAILQ_NEXT(ve, next_ve) == NULL) { - asprintf(&str, "%s%s%s%s", + asprintf(&str, "%s%s%s%s%s", k->ki_d.prefix ? k->ki_d.prefix : "", k->ki_p->ki_comm, (showthreads && k->ki_p->ki_numthreads > 1) ? "/" : "", - (showthreads && k->ki_p->ki_numthreads > 1) ? k->ki_p->ki_tdname : ""); + (showthreads && k->ki_p->ki_numthreads > 1) ? k->ki_p->ki_tdname : "", + (showthreads && k->ki_p->ki_numthreads > 1) ? k->ki_p->ki_moretdname : ""); } else str = strdup(k->ki_p->ki_comm); @@ -171,14 +172,16 @@ ucomm(KINFO *k, VARENT *ve) char *str; if (STAILQ_NEXT(ve, next_ve) == NULL) { /* last field, don't pad */ - asprintf(&str, "%s%s%s%s", + asprintf(&str, "%s%s%s%s%s", k->ki_d.prefix ? k->ki_d.prefix : "", k->ki_p->ki_comm, (showthreads && k->ki_p->ki_numthreads > 1) ? "/" : "", - (showthreads && k->ki_p->ki_numthreads > 1) ? k->ki_p->ki_tdname : ""); + (showthreads && k->ki_p->ki_numthreads > 1) ? k->ki_p->ki_tdname : "", + (showthreads && k->ki_p->ki_numthreads > 1) ? k->ki_p->ki_moretdname : ""); } else { if (showthreads && k->ki_p->ki_numthreads > 1) - asprintf(&str, "%s/%s", k->ki_p->ki_comm, k->ki_p->ki_tdname); + asprintf(&str, "%s/%s%s", k->ki_p->ki_comm, + k->ki_p->ki_tdname, k->ki_p->ki_moretdname); else str = strdup(k->ki_p->ki_comm); } @@ -191,7 +194,8 @@ tdnam(KINFO *k, VARENT *ve __unused) char *str; if (showthreads && k->ki_p->ki_numthreads > 1) - str = strdup(k->ki_p->ki_tdname); + asprintf(&str, "%s%s", k->ki_p->ki_tdname, + k->ki_p->ki_moretdname); else str = strdup(" "); diff --git a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c index 7b86be2..9381eaa 100644 --- a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c +++ b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c @@ -1609,17 +1609,12 @@ zfs_prop_set_list(zfs_handle_t *zhp, nvlist_t *props) assert(cl_idx < nvl_len); /* * We don't want to unmount & remount the dataset when changing - * its canmount property. We only use the changelist logic to - * unmount when setting canmount=off for a mounted filesystem - * or when setting canmount=on for an unmounted filesystem. - * For all other changes to canmount property the filesystem - * remains the same. + * its canmount property to 'on' or 'noauto'. We only use + * the changelist logic to unmount when setting canmount=off. */ if (prop != ZFS_PROP_CANMOUNT || (fnvpair_value_uint64(elem) == ZFS_CANMOUNT_OFF && - zfs_is_mounted(zhp, NULL)) || - (fnvpair_value_uint64(elem) == ZFS_CANMOUNT_ON && - !zfs_is_mounted(zhp, NULL))) { + zfs_is_mounted(zhp, NULL))) { cls[cl_idx] = changelist_gather(zhp, prop, 0, 0); if (cls[cl_idx] == NULL) goto error; diff --git a/contrib/amd/AUTHORS b/contrib/amd/AUTHORS index 3c241d0..1ae6dcd 100644 --- a/contrib/amd/AUTHORS +++ b/contrib/amd/AUTHORS @@ -6,22 +6,22 @@ This file lists the ones who contributed major code changes, in no particular order, and I thank them all. This is of course not to diminish the smaller contributes of the many others. Thank you all. -* Erez Zadok <ezk@cs.sunysb.edu> +* Erez Zadok <ezk AT cs.sunysb.edu> The most significant changes were made by Erez Zadok in terms of bug fixes, ports, and new features added. Erez Zadok is the current maintainer of am-utils, as of January 1997. -* Ion Badulescu <ion@cs.columbia.edu> +* Ion Badulescu <ion AT cs.columbia.edu> Co-maintainer of am-utils since late 1999: Linux and Solaris autofs support, Linux NFSv3 support, major code reorganization, etc... -* Randall S. Winchester <rsw@glue.umd.edu> +* Randall S. Winchester <rsw AT glue.umd.edu> May 7, 1997: contributed a special version of upl102 that included NFS V.3 support. Some of the code was contributed by Christos Zoulas -<christos@deshaw.com>. I (Erez) ported these changes to am-utils. +<christos AT deshaw.com>. I (Erez) ported these changes to am-utils. September 12, 1997: lots of small prototype cleanups and fixes to numerous files. @@ -35,12 +35,12 @@ February 1, 1998: fixes for NetBSD to better detect its features. September 4, 1999: assorted fixes for NetBSD 1.4+. -* Hannes Reinecke <hare@MathI.UNI-Heidelberg.DE> +* Hannes Reinecke <hare AT MathI.UNI-Heidelberg.DE> Back in 1995, contributed code for linux. A new parser for file system specific options that only exist under linux. -* Leif Johansson <leifj@matematik.su.se> +* Leif Johansson <leifj AT matematik.su.se> June 22, 1997: minor patch to ensure that systems without an RE library work. @@ -52,7 +52,7 @@ functions. Contributed scripts/amd2ldif.pl. August 4, 1997: info_ldap.c fixes and adding two new amd.conf ldap variables: ldap_cache_seconds and ldap_cache_maxmem. -* Andreas Stolcke <stolcke@speech.sri.com> +* Andreas Stolcke <stolcke AT speech.sri.com> June 22, 1997: patches to ensure that proto= and vers= options work properly in mount tables and can be overridden. Later on, more code @@ -68,11 +68,11 @@ message. December 19, 1997: detected an FMR (Free Memory Read) in amd/mntfs.c, uninit_mntfs(). -* Danny Braniss <danny@cs.huji.ac.il> +* Danny Braniss <danny AT cs.huji.ac.il> July, 6 1997: contributed patches to hesiod on bsdi3. -* Tom Schmidt <tschmidt@micron.com> +* Tom Schmidt <tschmidt AT micron.com> July 10, 1997: Recommdation to include libgdbm if libc has no dbm_open. Patches for netgrp(host) command. Mods to aux/config.guess to recognize @@ -86,7 +86,7 @@ IFF_ROUTE instead of IFF_LOOPBACK. May 30, 2000: correct logging types for addopts/mergeopts messages. -* Daniel S. Riley <dsr@mail.lns.cornell.edu> +* Daniel S. Riley <dsr AT mail.lns.cornell.edu> July 11, 1997: fixes to DU-4.0 to support string POSIX.1 signals, and struct sockaddr with sa_len field. @@ -99,15 +99,15 @@ grpid, nosuid, and actimo. August 15, 1998: fix memory leak in processing of /defaults, and avoid accessing uninitialized memory in osf1. -* Roman Hodek <Roman.Hodek@informatik.uni-erlangen.de> +* Roman Hodek <Roman.Hodek AT informatik.uni-erlangen.de> July 23, 1997: Got lots of patches from the Debian Linux folks, who fixed several generic bugs, and one serious one for Linux. The latter involved using connected sockets for NFS mounts on kernels 1.3.10 and older. Roman's -work is baed on amd-upl102, and work from Ian Murdock <imurdock@debian.org> -and Dominik Kubla <dominik@debian.org>. +work is baed on amd-upl102, and work from Ian Murdock <imurdock AT debian.org> +and Dominik Kubla <dominik AT debian.org>. -* Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> +* Rainer Orth <ro AT TechFak.Uni-Bielefeld.DE> August 6, 1997: assorted fixes to support hesiod-1.3, solaris 2.4 (which I already fixed but did not release yet), and support for $LDFLAGS at @@ -132,34 +132,34 @@ mount tables in Solaris 8. February 9, 2000: new debug options hrtime (hi-res timer) and xdrtrace. bug fixes. -* Jason Thorpe <thorpej@nas.nasa.gov> +* Jason Thorpe <thorpej AT nas.nasa.gov> August 25, 1997: make amd work when talking to NIS+ servers in NIS compatibility mode. Fix originally came from Matthieu Herrb -<matthieu@laas.fr>. +<matthieu AT laas.fr>. -* Chris Metcalf <metcalf@catfish.lcs.mit.edu> +* Chris Metcalf <metcalf AT catfish.lcs.mit.edu> August 29, 1997: patch to make amd use FQHN for NFS/RPC authentication, useful esp. for cross-domain NFS mounts. September 2, 1997: if plock() succeeded, don't display errno string. -* Enami Tsugutomo <enami@cv.sony.co.jp> +* Enami Tsugutomo <enami AT cv.sony.co.jp> September 4, 1997: don't ping remote servers with NFS V.3 always, but V.2, regardless of client's NFS version. (conf/transp/transp_sockets.c) -* Dan Riley <dsr@mail.lns.cornell.edu> +* Dan Riley <dsr AT mail.lns.cornell.edu> September 19, 1997: make sure that amd works with more secure portmappers that do not allow forwarding of RPC messages to other services. -* Wolfgang Rupprecht <wolfgang@wsrcc.com> +* Wolfgang Rupprecht <wolfgang AT wsrcc.com> August 10, 1997: netbsd and other bsd systems have a mask flag for pcfs_args (msdos mount). -* Christos Zoulas <christos@zoulas.com> +* Christos Zoulas <christos AT zoulas.com> September 25, 1997: fix to initialize uid/gid fields of pcfs_args_t on netbsd. @@ -181,7 +181,7 @@ TLI implementations. Patch to print version string (amd -v) after all options had been initialized, so we can print domain, host, and hostd. Linux patch to use umount2(2) if umount(2) fails. -* Bill Paul <wpaul@ctr.columbia.edu> +* Bill Paul <wpaul AT ctr.columbia.edu> November 5, 1997: NFS v.3 support for AIX 4.2.1, which does *not* include headers for this. Bill had to guess at the right structures, field names, @@ -189,26 +189,26 @@ sizes, alignment, etc. January 15, 1999: small ldap bug fixes. -* Stefan Vogel <vogel@physik-rzu.unizh.ch> +* Stefan Vogel <vogel AT physik-rzu.unizh.ch> November 14, 1997: typo in the subscription instructions to amd-dev. -* Guntram Wolski <gwolsk@sei.com> +* Guntram Wolski <gwolsk AT sei.com> November 15, 1997: pointed out mismatching documentation for the -o option. -* Michael Hucka <hucka@eecs.umich.edu> +* Michael Hucka <hucka AT eecs.umich.edu> January 11, 1997: pointed out reversed definition of NFS mount options vers and proto. -* Albert Chin <china@pprd.abbott.com> +* Albert Chin <china AT pprd.abbott.com> January 12, 1998: minor bug in output of amd -H. June 23, 2005: assortment of small compile bugs on aix4, and solaris 5/6/7. -* Thomas Richter <richter@chemie.fu-berlin.de> +* Thomas Richter <richter AT chemie.fu-berlin.de> January 13, 1998: use case insensitive comparisons for variables that need it (such as all hostname related ones, and more). @@ -216,11 +216,11 @@ it (such as all hostname related ones, and more). July 20, 1998: don't leak memory in the private version of yp_all (when vendor yp_all is bad). -* Fred Korz <korz@smarts.com> +* Fred Korz <korz AT smarts.com> January 30, 1998: minor typo fixed to tftp example in am-utils.texi. -* Donald Buczek <buczek@MPIMG-Berlin-Dahlem.MPG.DE> +* Donald Buczek <buczek AT MPIMG-Berlin-Dahlem.MPG.DE> March 6, 1998: correctly inherit existing NFS V.3 mounts upon restart. @@ -230,36 +230,36 @@ March 20, 1998: do not close stdout in case it gets reused elsewhere and to allow startup script to redirect it. Set a temporary secure umask(0022) before writing log file and restore it afterwards. -* Matthew Crosby <mcrosby@ms.com> +* Matthew Crosby <mcrosby AT ms.com> April 20, 1998: allow arbitrary number of interfaces in wire listing. -* David O'Brien <obrien@NUXI.com> +* David O'Brien <obrien AT NUXI.com> September 4, 1998: bug fix to avoid overrunning hostname buffer, and minor amd.conf man page typo correction. September 22, 1999: use more secure vsnprintf in real_plog(). -* Danny Rathjens <dkr@cs.fiu.edu> +* Danny Rathjens <dkr AT cs.fiu.edu> October 29, 1998: swap arguments to kill(2) in amd.c. -* Mike Mitchell <mcm@unx.sas.com> +* Mike Mitchell <mcm AT unx.sas.com> November 3, 1998: amd/nfs_subr.c (nfsproc_lookup_2_svc): try to avoid a race condition between unmounting and re-mounting an entry, by increasing the ttl of a looked up entry before unmounting it. -* Douglas K. Rand" <rand@aero.und.edu> +* Douglas K. Rand" <rand AT aero.und.edu> December 3, 1998: case insensitive host name match for nfsl. -* David Wolfskill <dhw@whistle.com> +* David Wolfskill <dhw AT whistle.com> January 28, 1999: don't turn on/off noconn option if it was already in that state. -* Jeffrey C Honig <jch@BSDI.COM> +* Jeffrey C Honig <jch AT BSDI.COM> March 14, 1999: clean up more autogenerated files upon "make distclean". March 15, 1999: avoid overly verbose NIS warning even on systems that don't @@ -271,30 +271,30 @@ detection for bsdi4. September 17, 1999: fixes to expn. -* Paul Balyoz <pbalyoz@sedona.ch.intel.com> +* Paul Balyoz <pbalyoz AT sedona.ch.intel.com> March 26, 1999: ensure lostaltmail displays Y2K compliant dates. -* Jon Peatfield <J.S.Peatfield@damtp.cam.ac.uk> +* Jon Peatfield <J.S.Peatfield AT damtp.cam.ac.uk> March 30, 1999: turn off incomplete NFS V.3 support in HPUX 10.20. September 22, 1999: safe reloading of maps without first clearing old copies, and using cached copies if map failed to reload. -* Peter Breitenlohner <peb@mppmu.mpg.de> +* Peter Breitenlohner <peb AT mppmu.mpg.de> July 24, 1999: patch for linux 2.2.x to work with older libc5 systems, and nis_isup mis-logic fixes. December 13, 2001: report typos in scripts/amd.conf.5. -* Dale Talcott <aeh@quest.cc.purdue.edu> +* Dale Talcott <aeh AT quest.cc.purdue.edu> July 26, 1999: added NFS3 support for AIX mounting. -* Christophe Kalt <Christophe-Kalt@deshaw.com> +* Christophe Kalt <Christophe-Kalt AT deshaw.com> July 14, 1999: add netgrpd() syntax function which uses FQHN. -* Andrew J. Korty <ajk@purdue.edu> +* Andrew J. Korty <ajk AT purdue.edu> September 5, 1999: pawd works for type:=nfsl. -* Nick Williams <njw@ms.com> +* Nick Williams <njw AT ms.com> September 1, 1999: bug fix for incorrect symlinks when two locations are requested simultaneously. @@ -306,38 +306,38 @@ doing rapid mounts and umounts in succession. June 5, 2000: better handling of potential race-conditions during rapid u/mounts. Correctly update d_drops stats for amq -s. -* Johann Pfefferl <johann.pfefferl.jp@germany.agfa.com> +* Johann Pfefferl <johann.pfefferl.jp AT germany.agfa.com> November 16, 1999: fix to ldap code so repeated calls to string2he don't corrupt the string passed. -* Amitha Perera <perera@cs.rpi.edu> +* Amitha Perera <perera AT cs.rpi.edu> December 9, 1999: detect all wire() interfaces correctly. -* Steven Danz <sdanz@awc.kc.noaa.gov> +* Steven Danz <sdanz AT awc.kc.noaa.gov> January 25, 2000: allow browsable auto maps. -* Wolfram Klaus <klaus@physik.fu-berlin.de>. +* Wolfram Klaus <klaus AT physik.fu-berlin.de>. November 21, 2000: recognize proplist mnttab flag. -* Thomas Klausner <tk@giga.or.at> +* Thomas Klausner <tk AT giga.or.at> November 21, 2000: lots of NetBSD fixes (many of which are generic). April 18, 2003: patch to reference am-utils info pages in man page. November 28, 2004: small fixes to typos in amd.conf(5) man page. -* Olaf Kirch <okir@caldera.de> +* Olaf Kirch <okir AT caldera.de> February 1, 2001: important Linux NFS error number mapping fixed -* Ahmon Dancy <dancy@franz.com> +* Ahmon Dancy <dancy AT franz.com> February 9, 2001: Apple Rhapsody/Darwin/OS X port -* Sebastien Bahloul <sebastien.bahloul@mangoosta.fr> +* Sebastien Bahloul <sebastien.bahloul AT mangoosta.fr> July 3, 2001: LDAP fixes and updates to support new APIs March 27, 2002: LDAP bug and port to HPUX-11. -* Philippe Troin <phil@fifi.org> +* Philippe Troin <phil AT fifi.org> July 12, 2001: Proper handling of GNU getopt, support for optionally disabling LDAP/Hesiod, fixes for the dev/nodev option on Linux. Texi documentation fix. @@ -348,65 +348,65 @@ generic mount option. July 17, 2003: pref:=null core dump fix. libgdbm portability. tcpd/librap support. And a few other things for the 6.0 branch. -* Trond Myklebust <trond.myklebust@fys.uio.no> +* Trond Myklebust <trond.myklebust AT fys.uio.no> January 10, 2002: Proper initialization of the timeo parameter on Linux, TCP _must_ have a timeout 2 orders of magnitude larger than UDP -* George Ross <gdmr@dcs.ed.ac.uk> +* George Ross <gdmr AT dcs.ed.ac.uk> April 29, 2002: Rework of old code, support for wildcards in LDAP queries, and an FD leak fix. Amd -A support. October 21, 2002: ldap_unbind fix for SIGPIPE, and support for LDAPv3 -protocol version parameter (with Tim Colles <timc@inf.ed.ac.uk>). +protocol version parameter (with Tim Colles <timc AT inf.ed.ac.uk>). -* Matthias Scheler <tron@zhadum.de> +* Matthias Scheler <tron AT zhadum.de> June 14, 2002: patch to use "xlatecookie" NFS mount option. -* Jun-ichiro itojun Hagino <itojun@iijlab.net>. +* Jun-ichiro itojun Hagino <itojun AT iijlab.net>. June 11, 2002: minor fixes to support NetBSD 1.6A. -* Sean Fagan <sef@apple.com> +* Sean Fagan <sef AT apple.com> March 14, 2003: detect and use the MNT2_GEN_OPT_AUTOMNTFS mount flag on OS X / Darwin. -* Hendrik Scholz <hscholz@raisdorf.net> +* Hendrik Scholz <hscholz AT raisdorf.net> June 9, 2003: mk-amd-map should open temp db file using O_EXCL. -* Mark Davies <mark@mcs.vuw.ac.nz> +* Mark Davies <mark AT mcs.vuw.ac.nz> July 14, 2003: define "xlatecookie" mnttab option if not defined (for NetBSD). Support null hesiod entries if they start with a ".". -* Eric S. Raymond <esr@thyrsus.com> +* Eric S. Raymond <esr AT thyrsus.com> December 9, 2003: fix unbalanced [] typo in fsinfo man page. -* Martin Blapp <mb@imp.ch> +* Martin Blapp <mb AT imp.ch> July 6, 2004: recognize fields in pcfs_args_t in FreeBSD 5. -* Dan Nelson <dnelson@allantgroup.com> +* Dan Nelson <dnelson AT allantgroup.com> August 2, 2004: pawd to recognize "host" type mounts. -* Hauke Fath <hauke@Espresso.Rhein-Neckar.DE> +* Hauke Fath <hauke AT Espresso.Rhein-Neckar.DE> August 3, 2004: pawd to recognize "linkx" type mounts. -* Michael van Elst <M.van.Elst@science-computing.de> +* Michael van Elst <M.van.Elst AT science-computing.de> September 1, 2004: bug fix to avoid race condition in calls to mntctl on AIX. -* Jonathan Chen <jon+amd@spock.org> +* Jonathan Chen <jon+amd AT spock.org> October 22, 2004: patch/fix to move mlock/mlockall/plock code after the fork(). June 29, 2005: core dump going off end of exported_ap[] array. September 29, 2005: patch/fix for pawd not to go into an infinite loop. October 25, 2005: patch/fix for pawd to repeatedly resolve path. -* David Rage <rage@ucl.ac.uk> +* David Rage <rage AT ucl.ac.uk> January 17, 2005: prevent Amd from logging 'Read-only filesystem' errors when the mount point has an ancestor (i.e. '/') that is mounted read-only. -* Kevin Layer <layer@franz.com> +* Kevin Layer <layer AT franz.com> January 28, 2005: basic instructions how to setup Amd on Mac OS-X. -* Dan Ottavio <dottavio@ic.sunysb.edu> +* Dan Ottavio <dottavio AT ic.sunysb.edu> March 2, 2005: new global amd.conf option debug_mtab_file, to set the debug mtab file when using debug_options=mtab. Default has changed from "./mtab" to "/tmp/mtab" to avoid security problem. Bug fixed to ensure that Amd @@ -415,16 +415,13 @@ terminates properly even mtab file doesn't exist. * Erik Kline <ekline at ekline dot com> January 3, 2005: implementation of executable maps for Amd. -* Jim Zajkowski <jim.zajkowski@gmail.com> +* Jim Zajkowski <jim.zajkowski AT gmail.com> March 14, 2005: small patch to amd2ldif. * Adam Morley <adam at gmi dot com> January 27, 2005: synchronize what amd2ldif does vs. what the ldap.schema expects. -* Graeme Wilford <G.Wilford@surrey.ac.uk> +* Graeme Wilford <G.Wilford AT surrey.ac.uk> July 4, 2005: buffer overflow in pawd. -* Steve Plite <splite-amutils@sigint.cs.purdue.edu> -September 22, 2005: repair reversed meaning of D_AMQ, so amq will unregister -on exit. diff --git a/contrib/amd/BUGS b/contrib/amd/BUGS index 3a3ba6b..8e87e85 100644 --- a/contrib/amd/BUGS +++ b/contrib/amd/BUGS @@ -1,7 +1,7 @@ LIST OF KNOWN BUGS IN AM-UTILS OR OPERATING SYSTEMS Note: report am-utils bugs via Bugzilla to https://bugzilla.am-utils.org/ or -by email to the am-utils@am-utils.org mailing list. +by email to the am-utils mailing list (see www.am-utils.org). (1) mips-sgi-irix* @@ -98,11 +98,11 @@ diff -u -r1.1 utsname.h (4) powerpc-ibm-aix4.2.1.0 -[4A] "Randall S. Winchester" <rsw@Glue.umd.edu> reports that for amd to +[4A] "Randall S. Winchester" <rsw AT Glue.umd.edu> reports that for amd to start, you need to kill and restart rpc.mountd and possibly also make sure that nfsd is running. Normally these are not required. -[4B] "Stefan Vogel" <vogel@physik.unizh.ch> reports that if your amq +[4B] "Stefan Vogel" <vogel AT physik.unizh.ch> reports that if your amq executable dump core unexpectedly, then it may be a bug in gcc 2.7.x. Upgrade to gcc 2.8.x or use IBM's xlC compiler. @@ -123,7 +123,7 @@ but it is not yet in the glibc-2.0.7-19 RPM. A bug in libc results in an amq binary that doesn't work; amq -v dumps core in xdr_string. There is no known fix (source code or vendor patch) at this -time. (Please let am-utils@am-utils.org know if you know of a fix.) +time. (Please let us know if you have a fix; see www.am-utils.org.) (7) *-aix4.3.2.0 diff --git a/contrib/amd/COPYING b/contrib/amd/COPYING index 035f623..f54191d 100644 --- a/contrib/amd/COPYING +++ b/contrib/amd/COPYING @@ -1,4 +1,4 @@ -Copyright (c) 1997-2006 Erez Zadok +Copyright (c) 1997-2014 Erez Zadok Copyright (c) 1989 Jan-Simon Pendry Copyright (c) 1989 Imperial College of Science, Technology & Medicine Copyright (c) 1989 The Regents of the University of California. @@ -15,12 +15,7 @@ are met: 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. -3. All advertising materials mentioning features or use of this software - must display the following acknowledgment: - This product includes software developed by the University of - California, Berkeley and its contributors, as well as the Trustees of - Columbia University. -4. Neither the name of the University nor the names of its contributors +3. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. diff --git a/contrib/amd/ChangeLog b/contrib/amd/ChangeLog index 12f2c5f..d996f8e 100644 --- a/contrib/amd/ChangeLog +++ b/contrib/amd/ChangeLog @@ -1,14 +1,564 @@ -2006-05-11 Erez Zadok <ezk@cs.sunysb.edu> +2014-10-28 Christos Zoulas <christos@zoulas.com> ******************************************************************* - *** Released am-utils-6.1.5 *** + *** Released am-utils-6.2 *** ******************************************************************* -2006-05-10 Erez Zadok <ezk@cs.sunysb.edu> + * add ylwrap.amd, sick and tired of patching broken ylwrap. + +2014-09-05 Christos Zoulas <christos@zoulas.com> + + * factor out the size check for both readdir methods + (raven at themaw.net) + +2014-09-03 Christos Zoulas <christos@zoulas.com> + + * configure test for 64 bit xdr function (raven at themaw.net) + +2014-09-01 Christos Zoulas <christos@zoulas.com> + + * bug fix from raven at themaw.net to prevent writing v3 handle + to a v2 structure. + +2014-07-21 Christos Zoulas <christos@zoulas.com> + + * fix permission problems with access + * auto_nfs_version = 3 now works for me. + +2014-07-20 Christos Zoulas <christos@zoulas.com> + + * refresh some autoconf files + * force autoconf version since earlier versions don't work + * changes from raven at themaw.net to support NFSv3 for automounted + toplevel filesystems presented to the list in May. A few bug fixes + and integration changes by me. The code now works well enough to + mount the filesystem with NFSv3 and automount children but readdir + does not work yet (so no listing of automounted filesystems). + The new code is not enabled by default. To enable use + auto_nfs_version = 3 + in your configuration file. + +2014-03-26 Christos Zoulas <christos@zoulas.com> + + From Ian Kent <ikent@redhat.com> + + * use mktemp in scripts/fixrmtab + * fix documentatio nits + * [linux] Add ext2, ext3, ext4 specific mount options + * fix tcpwrappers (hosts.{allow,deny} problems for specific host + entries + +2014-03-20 Christos Zoulas <christos@zoulas.com> + + + * don't background autofs umount + * avoid fh NULL dereference on umount + * handle ENOENT umount return for autofs mounts + * fix error message in get_nfs_version + * fix debug log deadlock + * [linux] retry umount on EBUSY + * handle failed umount on exit + +2014-03-09 Christos Zoulas <christos@zoulas.com> + + * Remove BSD advertising clause. + * Remove expn program which is not used by anything + +2013-12-05 Christos Zoulas <christos@zoulas.com> + + * Change the way we handle multiple lex scanners and yacc parsers + in a single program. Our old patch to ylwrap does not work anymore + because the bison parsers need shared symbols that start with yy + and we can't easily select which ones work. So now we use -P and + -p to let lex and yacc do the work for us. This requires a patch + to ylwrap, but it is smaller. + + +2013-12-05 Christos Zoulas <christos@zoulas.com> + + * Change the way we handle multiple lex scanners and yacc parsers + in a single program. Our old patch to ylwrap does not work anymore + because the bison parsers need shared symbols that start with yy + and we can't easily select which ones work. So now we use -P and + -p to let lex and yacc do the work for us. This requires a patch + to ylwrap, but it is smaller. + +2013-05-14 Christos Zoulas <christos@zoulas.com> + + * update to handle new autoconf and regen files + +2012-11-23 Christos Zoulas <christos@zoulas.com> + + * recognize mountport=, noacl options + * simplify the bootstrap process, by forcing + all the files to be rebuild with autoreconf -f - i + +2012-10-03 Christos Zoulas <christos@zoulas.com> + + * add missing ops_nfs4.c to the Makefile.am + +2012-09-14 Christos Zoulas <christos@zoulas.com> + + * add locking option handling for lustre + * fix noatime, nodiratime, mandlock for linux + +2012-07-25 Christos Zoulas <christos@zoulas.com> + + * bug fixes for lustre rhost parsing + +2012-06-27 Christos Zoulas <christos@zoulas.com> + + * Disable 1/2-baked sun map support to avoid SIGSEGV + +2012-06-16 Christos Zoulas <christos@zoulas.com> + + ******************************************************************* + *** Released am-utils-6.2-rc1 *** + ******************************************************************* + + * Fix libtool.m4 to work with later versions of autoconf. + * In buildall, use eval so that quoted strings work + * Centralize nfs version checking function, and introduce + new configuration variable nfs_vers_ping, which is the + max version we ping for. This is not documented yet, because + there might be a better way separate the max version we can + use vs the max version we ping for. + +2012-06-09 Christos Zoulas <christos@zoulas.com> + + * fix issue with parsing nfsv4 security option strings + +2012-05-01 Christos Zoulas <christos@zoulas.com> + + * Handle EPERM return from v4 file handles + in old linux kernels + +2012-03-09 Christos Zoulas <christos@zoulas.com> + + * fix linux autofs detection + * fix wrong types in new amq mount xdr processing + +2012-01-25 Christos Zoulas <christos@zoulas.com> + + * FreeBSD portability fixes + +2012-01-23 Christos Zoulas <christos@zoulas.com> + + * Avoid type punned warnings + +2011-12-29 Christos Zoulas <christos@zoulas.com> + + * fix bug I introduced in get_nfs_version that caused it to return 0 + * add direct support for ext{2,3,4} + +2011-12-15 Christos Zoulas <christos@zoulas.com> + + * Include <linux/fs.h> on linux, to grab extra mount flags + * Add support for lustre + +2011-11-28 Christos Zoulas <christos@zoulas.com> + + * For nfsl mounts, match against either the short local + host name or the fqdn name. + +2011-10-06 Christos Zoulas <christos@zoulas.com> + + * Add NFSv4 support (loosely based on Ramya's code). + Currently if the NFSv4 mount fails with ENOENT we fail + back to NFSv3, unless -DNO_FALLBACK. + * Replace strdup with xstrdup. It is not nice to replace + system functions with ones that behave differently. + * Add various consistency checks (caller function checks + variable for NULL, but callee does not). + * Fix error handling in various paths. + * Don't check before using XFREE(). free(NULL) works. + +2011-09-15 Christos Zoulas <christos@zoulas.com> + + * amq -i addition (prints info about the map files) + +2011-09-14 Christos Zoulas <christos@zoulas.com> + + * Solaris OS and compiler fixes from: + Hofmann, Frank <Frank.Hofmann@morganstanley.com> + Sayle, Alex <Alex.Sayle@morganstanley.com> + - (void)&var generates warnings, removed + - __inline is invalid, changed with inline + - <sys/socket.h> and other headers have extra dependendcies + ` +2011-08-11 Christos Zoulas <christos@zoulas.com> + + * fix potential buffer overflow in expand_error() + (Richard Kettlewell). Does not seem to be exploitable. + + * simplify %option parsing to appease ancient flex. + +2011-06-21 Christos Zoulas <christos@zoulas.com> + + * add support for linux autofs version 5 (untested) + +2011-06-18 Christos Zoulas <christos@zoulas.com> + + * roll back to an older version of libtool that works + + * newer versions of config.guess and config.sub + + * minor fixes to buildall + +2011-05-19 Christos Zoulas <christos@zoulas.com> + + * m4/macros/libtool.m4: for AIX AC_LANG_PROGRAM is incorrectly + used and the latest autoconf gives an error. For now just + quote it. + + * configure.in: Fedora Core 15 and RedHat 6 now don't define + af_family_t in <linux/socket.h>, but in <bits/sockaddr.h>. + Include <sys/socket.h> so that we get <bits/sockaddr.h> + indirectly. This caused the <linux/nfs_mount.h> detection + test to fail. + +2010-11-24 Erez Zadok <ezk@fsl.cs.sunysb.edu> + + * m4/macros/os_cflags.m4: for linux, define _GNU_SOURCE (to get + definitions for O_LARGEFILE and more). + +2010-11-20 Christos Zoulas <christos@zoulas.com> + + * Update news items, add release readme, mark as rc1 + + * Fix addopts code to work with options that are key=value + when the built-in hasmntopt() code is not used. The problem + was that the code passed "key=" to hasmntopt not "key". + +2009-12-10 Christos Zoulas <christos@zoulas.com> + + * Copy all fields of the am_opts structure + When we introduced am_loc we also added a function to + create a duplicate of an am_opts structure. As it turns + out, that only made a partial copy of the struct and some + fields (e.g. opt_cache) was left blank in the new structure. + Unfortunately any code that was checking the options + through the mntfs structure was mislead by the partial + copy: caching was disabled completely, for example, and + since browsing relies on caching being enabled it wasn't + working either. + From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com> + + * Initialize RPC authentication flavor to AUTH_UNIX instead + of zero. RHEL 5 uses version 6 of the mount_arg structure + that includes the desired RPC authorization flavour. + Unfortunately amd initializes that value to zero, meaning + AUTH_NULL, resulting in all NFS servers denying operations. + From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com> + + * Make sure to remove nodes in the proper order when going + down. Depending on what order the nodes got created it's + possible that the parent of a node has a bigger am_mapno + (index in exported_ap[]) so that it gets freed before + its child while the child's am_parent pointer is still + pointing to the already freed block of memory. + This change makes sure that umount_exported() cleans up + all children of a node first before freeing the node. + From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com> + + * Fix Linux-specific stuff in ops_tmpfs.c + AUTOFS_TMPFS_FS_FLAGS is defined only in the Linux-specific + conf_linux.c file, so it cannot be built on Solaris. + From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com> + + * Add missing parenthesis to fix defined(XXX + From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com> + + * In the previous commit we've already made a change that + makes this code unnecessary since the node is returned + even if the backing file server is known to be down. + Since the code path is unused it should be removed. + From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com> + + * amfs_generic_lookup_child() tries to find an alternate + file server if it detects that the current one is down. + However, in the comparison used to decide if a possible + mount is the same as the current one it compares the am_loc + pointers instead of the actual mntfs pointers. Since + amfs_lookup_one_location() creates a brand new am_loc + structure for the returned mntfs structure the am_loc + pointer will be different even if the mntfs it's pointing + to is the same. + This tricks amfs_generic_lookup_child() think it has + found an alternate file server while it hasn't and thus + starts multiple racing mounts for the very same node and + mntfs. + From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com> + + * In the new am_loc scheme mounted mntfs structures still + have their mf_fo structure left intact. So when restart + creates a fake mntfs for an already mounted filesystem it + should not free mf_fo right away. + From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com> + + * Setting the error flag of the mntfs for which the share + is already mounted results in the mount point not being + removed when it times out. (Amd considers it an error + mntfs and thus umount becomse a no-op.) + From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com> + + * Right now AMD sets all timeout values to their defaults + even if you explicitly set them to zero. This patch + introduces separate flags that store if the respective + values have been set and the code path setting default + values checks these flags instead of testing the values + for zero. [Linux only] + From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com> + + * Fix mntfs related lookup/(un)mount race conditions, by + introducing a new structure linking an mntfs to a node. + From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com> + + * We have to free the buffers allocated by the XDR routines when + decoding the mount response after copying them to their final place. + From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com> + +2009-12-09 Christos Zoulas <christos@zoulas.com> + + * Free continuation in amfs_retry() if we don't call amfs_bgmount() + Normally it's amfs_bgmount() which frees the continuation. However, if + the mount is already in progress and we're in amfs_retry() for another + node we don't try mounting the filesystem once again. Still, we have + to free the continuation as we won't get called again and thus would + leak the continuation structure and our am_loc references. + From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com> + + * Fix use-after-free and double free of mntfs private data + ops_nfs.c(nfs_init) does not clear private data pointer after free(). + This leads to use-after-free and double free in case mount() fails. + (found by valgrind) + From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com> + +2009-11-23 Christos Zoulas <christos@zoulas.com> + + * The temporary filename buffer was leaked in lock_mtab(). + From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com> + +2009-10-27 Christos Zoulas <christos@zoulas.com> + + * Deal with errno.h->sys/errno.h better + +2009-10-26 Christos Zoulas <christos@zoulas.com> + + * Fix issue with autoconf 2.63 + + * Fix compile warnings for gcc-4.4.x + +2009-04-15 Christos Zoulas <christos@zoulas.com> + + * Share the LDAP connection between different maps to save resources + on the LDAP server. (Olaf Flebbe <o.flebbe@science-computing.de>) + +2009-03-20 Christos Zoulas <christos@zoulas.com> + + * Fix largefile re-definitions + + * Fix compilation error caused in previous patch + +2009-02-19 Christos Zoulas <christos@zoulas.com> + + * Add a synchronous unmount amq rpc that will wait for the remote + filesystem to be unmounted, or return an error. Enabled by amq -uu + +2009-01-11 Erez Zadok <ezk@fsl.cs.sunysb.edu> + + * amd/ops_udf.c: don't define functions/variables which may not be + used. + + * amd/ops_tmpfs.c (mount_tmpfs): force gcc not to complain about + unused variables. + + * config.guess.long: properly support Fedora Core. + +2009-01-09 Christos Zoulas <christos@zoulas.com> + + * Fix nfs mounts on linux 2.6.26 by explicitly initializing context. + + * Treat an empty sublink as an unset sublink; this allows us to + say sublink:=; in a spec to override the default. (This produces + Bad selector error, but it works. XXX: We need to decide how to + unset a selector. I proposed an unset keyword a while ago). + +2009-01-06 Christos Zoulas <christos@zoulas.com> + + * re-renerate all generated files with newer versions of the + auto-tools. + + * move INSTALL to INSTALL.am-utils to avoid conflicts + + * fix incompatibilities with new m4 and new autoconf. + + * add UDF filesystem support. + + * fix NetBSD nfs file handle detection. + +2009-01-02 Christos Zoulas <christos@zoulas.com> + + * add nocasetrans, nojoliet, rrcaseins for cd9660 filesystems + +2008-12-03 Christos Zoulas <christos@zoulas.com> + + * allow ldap queries try a comma-separated list of servers given as: + + ldap_hostports = host1:port1,host2,host3:port3 + + original patch from Florian Geyer + +2008-09-19 Christos Zoulas <christos@zoulas.com> + + * the auth_create gid on NetBSD is int + + * deal with lossage from flex -P + + * fix missing/incorrect prototypes + +2008-09-17 Christos Zoulas <christos@zoulas.com> + + * fix manual page section issues (sorting, non-existant) + + * add missing forward declarations + + * avoid null pointer derefs (coverity) + + * more portable endian detection support + + * implement tmpfs support + + * use sizeof var instead of constant + + * fix yyerror declaration and definition + + * fix yy function renaming, and correct some renaming issues. + + * work around automake < 1.9 issue where ylwrap is not being run + for a single yacc or lex file. + + * NetBSD + - handle headers that need other headers to compile + - add exfs and tmpfs specific glue + - add options log, noatime, nocoredump, nodevmtime, softdep, + symperm, union + - NetBSD's new mount system call needs the size of the opaque + filesystem specific structure, but passing 0 for now works. + We would need to change a lot more code to pass the size from + the fs-specific calls, so for now punt. + - recvfrom takes socklen_t * on NetBSD + - handle newer NetBSD using statvfs + - NetBSD calls its ufs ffs + + * Linux + - Most recent kernels have trouble with trying to parse the pid + hostname and do locking. What before was a silent failure, now + there is a warning printed and the mount is rejected. This is + the simplest fix: + (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=479884) + +2007-04-13 Erez Zadok <ezk@cs.sunysb.edu> + + * amd/sun_map.c (sun_append_str): When translating '&' from Sun + automounter maps, replace it with "${key}" in the Amd map, not + with the value of the key at the time. This way '*' maps work + too. + + * config.guess.long: don't use -q option to grep because some + systems don't support it. Bug fix for solaris. + +2007-03-11 Christos Zoulas <christos@zoulas.com> + + * amd/opts.c (expand_op): Don't call xstrlcpy() to truncate a + string. It causes spurious xstrlcpy() syslog() errors. Use + memcpy() and explicitly terminate the string. + +2007-01-20 Erez Zadok <ezk@cs.sunysb.edu> + + * updated copyright year to 2007 on all files. + +2006-12-27 Erez Zadok <ezk@cs.sunysb.edu> + + * minor new port: ia64-hp-hpux11.23 + + * m4/macros/check_libwrap_severity.m4 (LIBS): also test if caller + needs to define rfc931_timeout. + + * amd/sun2amd.c: define rfc931_timeout and allow/deny_severity for + libwrap. + + * amd/amq_svc.c: some versions of libwrap require the caller to + define rfc931_timeout in addition to allow/deny_severity. + + * amd/amfs_toplvl.c (amfs_toplvl_init): properly detect when + forced unmount functionality exists for all systems. + + * libamu/mount_fs.c (compute_nfs_args): reset nfs_args_t->pathconf + only if field exists. + + * conf/nfs_prot/nfs_prot_hpux11.h: prevent HPUX 11.23 from + including <tiuser> or <sys/tiuser> (TLI definitions are already + included from elsewhere). + + * configure.in: detect nfs_args_t->pathconf field. + +2006-11-27 Erez Zadok <ezk@cs.sunysb.edu> + + * doc/Makefile.am: properly publish html files using newer + text2html. + +2006-11-27 Erez Zadok <ezk@shekel.local> + + * doc/Makefile.am: obfuscate emails in ChangeLog before it is + published on web site. + + * obfuscate many more emails in the distro, esp. of files which get + posted on the am-utils web site. + +2006-11-26 Erez Zadok <ezk@shekel.local> + + * minor new port: i386-apple-darwin8.8.1. + + * doc/am-utils.texi: remove obvious URLs used by spammers, and + replace them with links to the am-utils web site, which uses PNG + images to obfuscate the actual email/mailman URLs. + +2006-10-30 Erez Zadok <ezk@cs.sunysb.edu> + + * doc/am-utils.texi (Password maps): minor typo reported by + Christoph P. Kukulies. + +2006-10-26 Erez Zadok <ezk@cs.sunysb.edu> + + * minor new port: i386-pc-linux-fc6. + + * m4/macros/linux_headers.m4: handle newer Linux kernels which + removed UTS_RELEASE from <linux/version.h>. + +2006-10-25 Erez Zadok <ezk@cs.sunysb.edu> + + * minor new ports: i386-pc-linux-centos4.4 and + powerpc-apple-darwin8.7.0. + + * config.guess.long: recognize CentOS Linux. + +2006-06-20 Erez Zadok <ezk@cs.sunysb.edu> + + * minor new port: i386-pc-solaris2.11-nexentaos (GNU/OpenSolaris). + + * config.guess.long: recognize NexentaOS (GNU/OpenSolaris) - * Minor new ports: i386-unknown-freebsd6.1 (RELEASE) + * config.guess, config.sub: updates from latest official GNU + distributions. + +2006-05-11 Erez Zadok <ezk@cs.sunysb.edu> + + * Minor new ports: i386-unknown-freebsd6.1 (RELEASE), powerpc-apple-darwin8.6.0, and i386-unknown-openbsd3.9. +2006-05-10 Erez Zadok <ezk@cs.sunysb.edu> + * libamu/mount_fs.c (compute_nfs_attrcache_flags): fix signedness problems on IRIX-6.5. @@ -188,11 +738,14 @@ same $ac_cv_* variable name). Some systems support one header or another. Patch inspired by work Debian did. -2006-02-10 Erez Zadok <ezk@cs.sunysb.edu> +2006-02-16 Daniel P. Ottavio <ottavio@vm.fsl.cs.sunysb.edu> - ******************************************************************* - *** Released am-utils-6.1.4 *** - ******************************************************************* + * amd/sum_map_tok.l: Fixed a bug in a regular expression that + prevented dashes in hostnames. This was posted in BZ by Thomas + A. Fine. + + * README.sun2amd: Fixed a typo. Sentence mentions use of autofs + type when it should be host type. 2006-01-04 Erez Zadok <ezk@cs.sunysb.edu> @@ -302,9 +855,31 @@ 2005-10-10 Erez Zadok <ezk@cs.sunysb.edu> ******************************************************************* - *** Released am-utils-6.1.3 *** + *** Released am-utils-6.1a1 *** ******************************************************************* + * README.sun2amd: revised. + +2005-10-09 Daniel P. Ottavio <dottavio@ic.sunysb.edu> + + * amd/info_nis.c (nis_search): Bug fix for bugzilla #428; make + sure that sun_entry2amd() is not called when yp_match() returns an + error, this is done by checking that 'res' is 0. Bug fix (same + BZ#); free the output allocated by yp_match() instead of freeing + the return value of sun_entry2amd(). + + * amd/sun_map.c (sun_entry2amd): Fix a comment. + + * README.sun2amd: Made a first pass at describing the status of + the sun2amd feature. + Moved the date. + +2005-10-09 Erez Zadok <ezk@cs.sunysb.edu> + + * README.sun2amd: place holder. + + * Makefile.am (EXTRA_DIST): distribute new README.sun2amd file. + 2005-10-07 Erez Zadok <ezk@cs.sunysb.edu> * m4/macros/check_mnttab_type.m4: move the test for MOUNT_* to the @@ -343,6 +918,10 @@ * amd/info_exec.c (exec_map_open): break assignment from inside conditional, to work around an IRIX-6.5 cc bug. + * amd/Makefile.am (amd_LDADD, sun2amd_LDADD): put libaminfo.a + before libamu.la. Some linkers (e.g., IRIX-6.5) incorrectly + complain about undefined symbols. + * fsinfo/fsi_util.c (set_ether_if), amd/map.c (unmount_mp), libamu/xutil.c (expand_error), libamu/strutil.c (xsnprintf): avoid comparison between signed and unsigned integers. @@ -479,15 +1058,10 @@ 2005-10-02 Erez Zadok <ezk@cs.sunysb.edu> - * include/am_utils.h: extern for xvsnprintf(). - - * amd/autil.c: move strsplit() to libamu/strutil.c. - * libamu/Makefile.am: use strutil.c, not util.c. * libamu/strutil.c: rename from util.c to explain better purpose - of file. Move xvsnprintf and xsnprintf from xutil.c to this - file. Sync up with 6.2 version of file. + of file. Move xvsnprintf and xsnprintf from xutil.c to this file. * libamu/xutil.c: explain purpose of file. Move mkdirs/rmdirs code from old util.c. @@ -555,22 +1129,13 @@ 2005-09-26 Erez Zadok <ezk@cs.sunysb.edu> - * libamu/xutil.c (unregister_amq): repair broken meaning of D_AMQ, - which was reversed in am-utils-6.2. Bug fix from Steve Plite - <splite-amutils at sigint.cs.purdue.edu>. - * hlfsd/stubs.c (nfsproc_getattr_2_svc, nfsproc_lookup_2_svc, nfsproc_readlink_2_svc, nfsproc_readdir_2_svc), hlfsd/hlfsd.c (hlfsd_init): use new clocktime() function. 2005-09-18 Erez Zadok <ezk@cs.sunysb.edu> - ******************************************************************* - *** Released am-utils-6.1.2.1 *** - ******************************************************************* - - * README.attrcache: Update status of freebsd and openbsd. - Document netbsd's patchs to support noac. + * README.attrcache: document netbsd's patchs to support noac. * libamu/mount_fs.c (compute_nfs_attrcache_flags): cleanup the code that sets the ac{reg,dir}{min,max} fields so it also sets the @@ -578,13 +1143,10 @@ * configure.in: check for nfs_args fields acregmax and acdirmax. - ******************************************************************* - *** Released am-utils-6.1.2 *** - ******************************************************************* - * README.attrcache: new file documenting in detail OS bugs relating to attribute caching, which can affect Amd's reliability under heavy load. + Update status of freebsd and openbsd. * doc/Makefile.am: install README.attrcache file as attrache.txt file on am-utils Web site. @@ -665,6 +1227,54 @@ amfs_bgmount, amfs_generic_mount_child), amd/amd.c (main): pass NULL to clocktime(). +2005-09-15 Erez Zadok <ezk@cs.sunysb.edu> + + * amd/nfs_subr.c (nfsproc_getattr_2_svc): initialize 'retry', just + in case. + (fh_to_mp3): increment amd_stats.d_stale counter only if we are + actually returning ESTALE. + + * amd/info_exec.c (exec_parse_qanswer), amd/info_file.c + (file_search_or_reload), amd/info_hesiod.c (hesiod_search), + amd/info_ldap.c (amu_ldap_search), amd/info_ndbm.c (search_ndbm), + amd/info_nis.c (nis_search), amd/info_nisplus.c (nisplus_search, + nisplus_search): don't dereference mnt_map->cfm which may be null + if we're not using an amd.conf file. + +2005-09-14 Erez Zadok <ezk@cs.sunysb.edu> + + * libamu/xutil.c (unregister_amq): if failed to de-register Amd + from portmapper, report it under dlog (debugging), not as an + annoying plog that always shows up. + +2005-09-13 Erez Zadok <ezk@cs.sunysb.edu> + + * mk-amd-map/mk-amd-map.c (read_file_file), libamu/util.c + (strsplit), libamu/hasmntopt.c (nextmntopt), amd/sun_map.c + (sun_entry2amd), amd/sun2amd.c (sun2amd_convert_convert), + amd/mapc.c (mapc_add_kv), amd/info_file.c (file_search_or_reload), + amd/info_exec.c (exec_parse_qanswer): cast isspace() and isascii() + arg to unsigned char, which is safer as per Christos. + + * amd/sun_map.c (sun_entry2amd): isspace takes an int, not a char. + + * configure.in: keep a dummy unused AM_PROG_LEX, because old + Automake (1.6.3) looks for it if you refer to LEX in your + Makefile.am files. Silly thing, fixed in newer versions of + Automake (1.9.2). + +2005-09-11 Erez Zadok <ezk@cs.sunysb.edu> + + * Makefile.am (EXTRA_DIST_M4): add prog_{lex,yacc}.m4 to distro. + + * configure.in: use new macros AMU_PROG_YACC and AMU_PROG_LEX. + + * m4/macros/prog_yacc.m4: new macro to check if bison/yacc/byacc + exist, but exist with an error if none found. + + * m4/macros/prog_lex.m4: new macro to check if f/lex exist, but + exit with an error if not found (am-utils requires f/lex). + 2005-09-07 Erez Zadok <ezk@cs.sunysb.edu> * minor new port: powerpc-apple-darwin8.2.0. @@ -683,8 +1293,48 @@ file system on this system (probably because /proc isn't mounted), then provide some default definition for this file to compile. +2005-08-28 Daniel P. Ottavio <dottavio@ic.sunysb.edu> + + * amd/sun_map.c (sun_entry2amd) : Wipe out any trailing white + spaces or '\n' before passing strings to the parser. + + * amd/amd.h : oops, reverting bad changes + + * amd/info_file.c : oops, reverting bad changes + + * amd/mapc.c : oops, reverting bad changes + + * amd/sun_map_parse.y : oops, reverting bad changes + 2005-08-27 Erez Zadok <ezk@cs.sunysb.edu> + * libamu/xutil.c: amd_program_number is a u_long now. + (unregister_amq): if pmap_unset failed to de-register Amd from the + portmapper, print an error message. + (get_amd_program_number): returns a u_long now. + (set_amd_program_number): take a u_long now. + + * include/am_utils.h: get_amd_program_number() returns u_long now. + set_amd_program_number() takes a u_long now. + + * amq/amq.c: amd_program_number is a u_long, not int. + + * amd/nfs_start.c (mount_automounter): when registering Amd with + the portmapper (for Amq service), don't fail if just one of TCP or + UDP failed to register, but only if both transports failed. That + way Amq can still contact Amd using the transport that did + register correctly. However, now, if both transports failed to + register, then set amd_state to "Done" so it would shutdown + cleanly. + + * conf/transp/transp_{sockets,tli{}.c (amu_svc_register): better + comments. + + * libamu/xutil.c: debug_flags should always be initialized to + D_CONTROL (amq,daemon,fork). + (debug_option): allow setting initial immutable debug_flags via + amd.conf; afterward, prevent it (i.e., one tries it via "amq -D"). + * Makefile.am (DISTCLEANFILES): also remove amu_autofs_prot.h, config.cache.old, and dbgcf.h on "make distclean". (CLEANFILES): remove dbgcf on plain "make clean". @@ -692,13 +1342,199 @@ * amd/Makefile.am (DISTCLEANFILES): also remove ops_autofs.c on "make distclean". +2005-08-27 Daniel P. Ottavio <dottavio@ic.sunysb.edu> + + * amd/info_file.c (file_search_or_reload): Changed the key + variable that is passed to the sun_entry2amd. + + * amd/mapc.c (mapc_add_kv): Add support for multiple entries + packed into one line. This is a workaround for handling Sun style + mounts that contains multiple entries on one line: "multi-mount + entries". The sun2amd conversion tools will convert such entries + into type:=auto and pack each of the auto-entries into one line + separated by '\n'. The mapc_add_kv function will now recognize + such entries and add then. + + * amd/sun2amd.c (sun2amd_convert): Add print statement that + includes the line number during a parser failure. + + * sun_map.c: Fix the AMD_MAP_PREF_KW definition. Fix spelling. + (sun_mountpts2amd): removed this function + (sun_hsfs2amd): added some more comments + (sun_nfs2amd): moved support for multi-mount entries from this + function to sun_multi2amd(). + (sun_multi2amd): New function to handle multi-mount entries. This + function will convert the Sun version to an Amd type:=auto. Each + extra auto entry will be appended to the same line separated by a + '\n'. + (sun_entry2amd): Fixed a bug if-statement. This function now + checks for multi-mount entries. + + * amd/sun_map.h: Add a fstype member to the sun_mountpt struct. + + * amd/sun_map_parse.y: Parser now supports fstype for multi-mount + entries. + + * amd/sun_map_tok.l: No longer print the line and column number + when parsing. This is because the parser is handed strings not + files. Therefore, the line number will always be 1. It is now up + to the higher level tools to echo line information during error + when they feed the parser. + 2005-08-24 Erez Zadok <ezk@cs.sunysb.edu> * configure.in: wrap all LDAP and HESIOD tests in test whether --with-OPT was used. +2005-08-20 Daniel P. Ottavio <dottavio@ic.sunysb.edu> + + * amd/sun_map.c: Clean up #defines + (sun_entry2amd) : Verify that the key and entry values passed are + not NULL. Free the Sun entry struct when done. + + * amd/sun_map.h: Add some "not implemented yet" comments to the + map and mmap structures. + + * amd/sun_map_parse.y: Removed automap include functionality, it + will need to be re-implemented using a pre-processor. + Clean up function calls. + +2005-08-16 Daniel P. Ottavio <dottavio@ic.sunysb.edu> + + * amd/sun2amd.c (sun2amd_convert): If the input line is too long + don't return an error just null terminate and continue. Fix bug: + the map key was not written. + + * amd/sun_map.c: Add a new Amd device, and cdfs constant. + (sun_locations2amd): Write the NFS type keyword + for each host of the mount entry. Add a space between each mount + location. + (sun_hsfs2amd): New function to support hsfs to + cdfs. + (sun_nfs2amd): Don't write the nfs type here. Fix + comments. + (sun_entry2amd): Change function parameter var for + clarity. Add support for hsfs. + + * amd/sun_map_parse.y (sun_map_parse_read): Reset the entry list + after it has been returned. + 2005-08-16 Erez Zadok <ezk@cs.sunysb.edu> + * amd/get_args.c (get_args): initialize debug_flags if they've + never been set. + +2005-08-15 Erez Zadok <ezk@cs.sunysb.edu> + + * amd/mapc.c (mapc_create): mapc find takes 4th arg, the mount + point. Now, we can properly initialize the cfm structure of the + mnt_map, so we can have access to the flags (e.g., SUN_MAP_SYNTAX) + inside each info_*.c file. + (mapc_find): takes 4rd arg (mntpt) and passes it to calls to + mapc_create. + (root_newmap): pass NULL as 4th arg (mntpt). + + * amd/amfs_generic.c (amfs_parse_defaults): remove ugly hack to + initialize map cfm structure (including flags) so late. + + * amd/autil.c (amfs_mkcacheref): pass mount point as 4th arg to + mapc_find. + + * amd/amfs_root.c (amfs_root_mount): pass NULL as new 4th arg to + mapc_find. + + * amd/amd.h: extern for mapc_find changed to pass the mount point. + + * libamu/xutil.c: debug_flags should be unsigned. + (dbg_opt): fix comments for updated debug_flags, add "defaults". + (debug_option): Don't allow "immutable" (D_IMMUTABLE) flags to be + changed, because they could mess Amd's state and only make sense + to be set once when Amd starts. Currently these immutable flags + are "daemon," "fork," "amq," and "mtab." If Amd not compiled with + debugging, set default "control" options (daemon,fork,amq). + (unregister_amq): proper use of D_AMQ. + + * include/am_utils.h: define new D_BASIC, D_CONTROL, D_DEFAULT, + D_IMMUTABLE, and D_MASK. Updated definitions of D_ALL and D_TEST. + debug_flags extern should be unsigned. + + * scripts/amd.conf-sample (debug_options): mention new "defaults" + option. + + * scripts/amd.conf.5,doc/am-utils.texi: document new debug option + "defaults" and properly explain the corrected meanings of + "daemon," "fork," "amq," and their "no" inversions. Better + explain "all" and "test" too. Correct default debug_mtab file to + /tmp/mtab. + + * hlfsd/stubs.c (nfsproc_readlink_2_svc): proper use of D_FORK. + + * hlfsd/homedir.c (homedir): proper use of D_FORK. + + * hlfsd/hlfsd.c (main, hlfsd_init, cleanup): proper use of + D_DAEMON. + + * amd/nfs_start.c (mount_automounter): proper use of D_AMQ. + + * amd/amd.h (DEBUG_MNTTAB_FILE): change default to /tmp/mtab, + which is more common on more systems (instead of /tmp/mnttab). + + * amd/amd.c (main): properly use D_DAEMON. + +2005-08-14 Erez Zadok <ezk@cs.sunysb.edu> + + * libamu/xutil.c (xlog_opt): define new pseudo log_option named + "defaults", which is an alias for "fatal,error,user,warning,info". + + * scripts/amd.conf.5, doc/am-utils.texi, amd/amd.8: document new + log_option "defaults". + + * amq/amq.8: typo. Arg name for -D is "debug_options" not + "log_options". + + * libamu/xutil.c: make xlog_level static, and initialize it to + XLOG_DEFAULT. + (cmdoption): take unsigned int as flags argument, and print any + errors as XLOG_ERROR (which cannot be turned off). + (switch_option): remove old code which disallowed you from turning + off flags that were set when Amd started up. Now, you can turn + any log option on/off at start time or later on (via amq -x), + other than the two mandatory options (fatal+error). + + * include/am_utils.h (XLOG_*): remove unused XLOG_DEFSTR. Define + XLOG_MASK to mask out unused flag bits. Define XLOG_DEFAULT to be + what it was before (fatal + error + user + warning + info), but + use the new mask. Remove extern's for xlog_level and + xlog_level_init. Change extern for cmdoption() to take an + unsigned flags argument. + + * doc/am-utils.texi, amq/amq.8, scripts/amd.conf.5, amd/amd.8: + document mandatory log options + (fatal+error) which cannot be turned off and are always on by + default. They must be on so that Amd can report crucial errors, + including those related to setting flags on/off. + + * hlfsd/hlfsd.c (main): remove hack to initialize log_options. + + * wire-test/wire-test.c: remove reference to unused xlog_level. + + * amd/mapc.c (mapc_create): 'alloc' flags variable should be + unsigned. + + * amd/get_args.c (get_args): no need for hack using + xlog_level_init. + + * amd/Makefile.am: separate sources common to amd and sun2amd into + a special, locally-built only, static library called libaminfo.a. + + * libamu/xutil.c (real_plog, xsnprintf): call new xvsnprintf() + wrapper function. + (xvsnprintf): new function which already gets a va_list. This was + needed to avoid nesting va_list's (which apparently isn't + allowed). + + * include/am_utils.h: prototype for new xvsnprintf wrapper. + * configure.in: sinclude([vers.m4]) version number file. * vers.m4: new file to separate version number out of @@ -707,24 +1543,248 @@ * Makefile.am (EXTRA_DIST_M4): include vers.m4 in distro. +2005-08-14 Daniel P. Ottavio <dottavio@ic.sunysb.edu> + + * amd/info_file.c: add key to sun_entry2amd()'s parameters + + * amd/info_hesiod.c: add key to sun_entry2amd()'s parameters + + * amd/info_ldap.c: add key to sun_entry2amd()'s parameters + + * amd/info_ndbm.c: add key to sun_entry2amd()'s parameters + + * amd/info_nis.c: add key to sun_entry2amd()'s parameters + + * amd/info_nisplus.c: add key to sun_entry2amd()'s parameters + + * amd/sun_map.c: New functions to support sun translation to amd. + The function sun_entry2amd's parameters were expanded to include + the key value. sun_entry_2amd() now returns NULL on error. + + * amd/sun_map.h: Expand sun_entry2amd's parameters to include key + value. + + * amd/sun_map_parse.y: Change how file system types are parsed out + of the list of options for each entry. The previous way was not + working properly so now we just look for the 'fstype' keyword in + each option. If it exists we copy its key value. + Added some comments to sun_map_parse_read(). + + * amd/amd.h: Added an extern from info_file.c called + file_read_line(). Previously this function was static but is now + used in sun2amd.c. + + * amd/info_file.c: Changed the static function read_line() to a + public function called file_read_line(). This function is now + used in sun2amd.c + + * amd/sun2amd.8: Filled in the contents of this man page. This is + a conversion utility that converts Sun maps to Amd maps. + + * amd/sun2amd.c: Implemented a working version of this utility. + 2005-08-11 Erez Zadok <ezk@cs.sunysb.edu> + * amd/sun_map_parse.y: instead of using a custom FOO_alloc() + function, use Amd's CALLOC(struct FOO) macro. + + * amd/sun_map.h: remove extern definitions to functions no longer + needed. + + * amd/sun_map.c: removed superfluous *_alloc() functions, some of + which caused conflicts with same-named symbols in the parser + (since we rename 'yyalloc' to 'sun_map_alloc'). + * configure.in: keep AC_INIT on same line, for nightly snapshot build script. + * amd/Makefile.am: f/lex libraries are incompatible with multiple + scanners, so don't link Amd with libl.a/libfl.a. + +2005-08-10 Daniel P. Ottavio <dottavio@ic.sunysb.edu> + + * amd/sun_map_tok.l: Clean up regular expression so HPUX stops + whining. + +2005-08-09 Daniel P. Ottavio <dottavio@ic.sunysb.edu> + + * amd/sun_map_parse.y: Moved license below special yacc bracket to + be portable with HPUX's yacc. Clean up externs. + + * amd/sun_map_tok.l: Moved license below special lex bracket to be + portable with HPUX's lex. Fixed definitions to allow for a + non-flex lex to parse strings instead of files. Added some casts + to strlcpy usage to silence warnings. Moved the % options because + HPUX was complaining, + +2005-08-08 Daniel P. Ottavio <dottavio@ic.sunysb.edu> + + * amd/sun_map_tok.l: Applied some definition goop to handle the + ECHO symbol that lex defines. This symbol causes problems on + RedHat-EL-powerPC platforms. Replaced strncpy with strlcpy. + Renamed the function sun_map_yyinput to sun_map_input. This + function is a utility function that is not generated by lex. + Therefore, the 'yy' may cause confusion. + +2005-08-08 Erez Zadok <ezk@cs.sunysb.edu> + + * amd/sun_map_tok.l: allocate more output slots so lex scanners + don't run out of memory. + + * amd/sun_map_parse.y: declare extern for sun_map_parse(). + + * libamu/xutil.c (xsnprintf): ensure proper comparisons between + signed and unsigned quantities. + +2005-08-06 Erez Zadok <ezk@cs.sunysb.edu> + + * libamu/util.c, amd/autil.c (strsplit): moved strsplit() function + from Amd code to to libamu, so sun2amd could use it. + + * amd/Makefile.am (sbin_PROGRAMS): build sun2amd binary and man + page. + (EXTRA_sun2amd_OBJECTS): sun2amd needs to link with all info_*.c files + + * amd/sun2amd.8: placeholder for man page. + + * amd/sun2amd.c: placeholder for C version of translator from Sun + syntax maps to Amd maps. + + * */*.[0-9]: include file name in nroff source comment. + + * ALL: use '0' properly when assigning or passing it to functions. + If in the context pointer, use NULL. If in the context of a + single char (say within a string), the use '\0'. This is just to + make the code clearer. + + * m4/macros/header_templates.m4: template for HAVE_MAP_SUN. + + * amd/mapc.c (maptypes): add placeholder for Sun-syntax map + methods. + + * amd/Makefile.am (EXTRA_amd_SOURCES): compile info_sun.c + + * amd/info_sun.c: placeholder for meta info parser to get info + from Sun automount-style /etc/auto_master, possibly following + into multiple info services (via /etc/nsswitch.conf). + + * libamu/xutil.c (xsnprintf): if vsnprintf truncated the output + string to avoid an overflow, print an error. Include some code to + break out any possible infinite loop between plog() and + xsnprintf(). + (real_plog): now we can use (carefully) xsnprintf() directly. + + * amd/sun_map.[hc]: cleanup and formatting. + + * amd/sun_map_parse.y: to match the literal string "fstype=" use + double quotes, not single quotes. + + * amd/get_args.c (get_args): call conf_parse() using conf_in. + + * amd/amd.h: use renamed parser symbols (yyparse -> conf_parse; + yyin -> conf_in). + + * ylwrap: Enhance wrapper to avoid the #define hacks done by Gdb, + and suggested by the Automake manual. This enhanced parser will + prefix each conflicting yacc/lex symbol with a unique name + produced from INPUT. For example, if INPUT is foo_parse.y, then + yyparse() becomes foo_parse(). This requires that both your .l + and corresponding .y files have the same prefix (e.g., foo_parse.y + and foo_tok.l). + + * amd/Makefile.am (BUILT_SOURCES): define which yacc/lex .h/.c + source files are built automatically, and therefore should not be + in the distro (IMHO), and should be cleaned upon "make clean". + (amd_SOURCES): include new sun_map_parse.y and sun_map_tok.l files. + + * ylwrap: new file needed because we have two parsers now. + + * amd/sun_map_{parse.y,tok.l}: cleanup and formatting. + +2005-08-06 Daniel P. Ottavio <dottavio@ic.sunysb.edu> + + * amd/Makefile.am: Added new files sun_map.h, sun_map.c, + sun_map_parse.y, and sun_map_tok.l. These files add support for + parsing Sun style maps. The yacc/lex files needed custom rules so + they don't cause symbol conflicts with each other. + + * amd/amd.h: Added "#define INFO_MAX_LINE_LEN" that specifies the + line limit for info services. + + * amd/info_exec.c: Replaced MAX_LINE_LEN with INFO_MAX_LINE_LEN + + * amd/info_file.c: Replaced MAX_LINE_LEN with INFO_MAX_LINE_LEN, + added support for parsing Sun style maps. The support for Sun + maps is done using the sun_entry2amd() function. This function is + called for each entry line that is read only when Sun parsing is + enabled. For each entry line that is passed to the function a + copy of the Amd equivalent is returned. + + * amd/sun_map.h: new header file for Sun style map support + + * amd/sun_map.c: new source file for Sun style map support, clean + up comments, additional sun2amd conversion routines + + * amd/sun_map_parse.y: new yacc file for parsing Sun style maps, + fix copyright notice, put filename below license. + + * amd/sun_map_tok.l: new lex file for parsing Sun style maps, fix + copyright notice, put filename below license. + + * amd/get_args.c: replace usage of strlcat with xstrlcat + + * include/am_utils.h: added 'extern void xstrlcat()' + + * libamu/util.c: Added a xstrlcat() function that wraps the + syscall strlcat() so that string truncations can be logged. + 2005-08-06 Erez Zadok <ezk@cs.sunysb.edu> + * amd/info_file.c (file_search, file_reload): pass mnt_map to + file_search_or_reload. + (file_search_or_reload): ensure that mnt_map is never NULL. + + * amd/info_nis.c (nis_search): call sun_entry2amd() if + sun_map_syntax=yes. + + * amd/info_ldap.c (amu_ldap_search): call sun_entry2amd() if + sun_map_syntax=yes. + + * amd/info_hesiod.c (hesiod_search): call sun_entry2amd() if + sun_map_syntax=yes. + + * amd/info_ndbm.c (ndbm_search): pass mnt_map to search_ndbm. + (search_ndbm): call sun_entry2amd() if sun_map_syntax=yes. + + * amd/info_nisplus.c (nisplus_search): call sun_entry2amd() if + sun_map_syntax=yes. + + * amd/info_exec.c (exec_search): pass mnt_map to + exec_parse_qanswer. + (exec_parse_qanswer): call sun_entry2amd() if sun_map_syntax=yes. + + * doc/am-utils.texi (sun_map_syntax Parameter): document new + common parameter. + * scripts/amd.conf.5: selectors_in_defaults is a common parameter, not just [global]. Use consistent capitalization of Amd/Amq. + Document new sun_map_syntax parameter. * scripts/amd.conf-sample: properly list all of the parameters which are common to both the [global] and the per-map sections. + (sun_map_syntax): example of new parameter. * doc/am-utils.texi (Common Parameters): selectors_in_defaults is a common parameter, not just [global]. * scripts/amd.conf-sample (sun_map_syntax): example of new flag. + * amd/conf.c ({ropt,gopt}_sun_map_syntax): new function to parse + sun_map_syntax flag (global or per map). + + * amd/amd.h (CFM_SUN_MAP_SYNTAX): new flag for users to say if the + map uses Sun automounter syntax. + * cvs-server.txt: update instructions after branching 6.1-stable. 2005-08-02 Erez Zadok <ezk@cs.sunysb.edu> diff --git a/contrib/amd/FAQ b/contrib/amd/FAQ index 18e73a3..3fbcb4c 100644 --- a/contrib/amd/FAQ +++ b/contrib/amd/FAQ @@ -26,7 +26,7 @@ answer your questions, see information in the following sources: listed in bugzilla in https://bugzilla.am-utils.org/ If you have additions to this FAQ, please let us know at -am-utils@am-utils.org. +the am-utils list (see www.am-utils.org). Thank you, The Am-utils development team. diff --git a/contrib/amd/INSTALL b/contrib/amd/INSTALL index 273fe02..2099840 100644 --- a/contrib/amd/INSTALL +++ b/contrib/amd/INSTALL @@ -1,124 +1,370 @@ - am-utils 6.1 compatibility list - -For each system, list if it autoconfigures, compiles, or runs. Fill in -email id of person who confirms the fact. A missing entry means unverified. -A 'no' or 'X' means verified broken or nonexistent (static library). - -SYSTEM CONFIG COMPILE RUN SHLIB AUTOFS -========================= ======= ======= ======= ======= ====== -alpha-dec-osf4.0f ro ro ro - - -alpha-dec-osf5.1 ro ro ro - - -alpha-unknown-linux-gentoo1.4.16 ezk ezk ezk ezk - -alphaev56-dec-osf4.0f ezk ezk ezk ezk - -i386-apple-darwin6.0 ezk ezk ezk ezk - -i386-pc-bsdi2.1 ion ion ion ion[X] ion[X] -i386-pc-linux-deb3.0 ezk ezk ezk ezk - -i386-pc-linux-deb3.1 ezk ezk ezk ezk - -i386-pc-linux-fc1 ezk ezk ezk ezk - -i386-pc-linux-fc2 ezk ezk ezk ezk - -i386-pc-linux-fc3 ezk ezk ezk ezk - -i386-pc-linux-fc4 ezk ezk ezk ezk - -i386-pc-linux-gentoo1.4.16 ezk ezk ezk ezk - -i386-pc-linux-rh6.2 ion ion ion ion ion -i386-pc-linux-rh7.1 ion ion ion ion ion -i386-pc-linux-rh7.2 ion ion ion ion ion -i386-pc-linux-rh7.3 ion ion ion ion ion -i386-pc-linux-rh8.0 ezk ezk ezk ezk - -i386-pc-linux-rh9 ion ion ion ion ion -i386-pc-linux-rhel3 ezk ezk ezk ezk - -i386-pc-linux-rhel4 ezk ezk ezk ezk - -i386-pc-linux-suse8.2 ezk ezk ezk ezk - -i386-pc-linux-suse9.1 ezk ezk ezk ezk - -i386-pc-linux-suse9.2 ezk ezk ezk ezk - -i386-pc-linux-suse9.3 ezk ezk ezk ezk - -i386-pc-solaris2.10 ro ro ro - - -i386-pc-solaris2.9 ro ro ro - - -i386-unknown-freebsd4.10 ezk ezk ezk ezk - -i386-unknown-freebsd4.11 ezk ezk ezk ezk - -i386-unknown-freebsd4.8 ezk ezk ezk ezk - -i386-unknown-freebsd4.9 ezk ezk ezk ezk - -i386-unknown-freebsd5.0 ezk ezk - ezk - -i386-unknown-freebsd5.1 ezk ezk ezk ezk - -i386-unknown-freebsd5.2 ezk ezk ezk ezk - -i386-unknown-freebsd5.2.1 ezk ezk ezk ezk - -i386-unknown-freebsd5.3 ezk ezk ezk ezk - -i386-unknown-freebsd5.4 ezk ezk ezk ezk - -i386-unknown-freebsd6 (BETA5) ezk ezk ezk ezk - -i386-unknown-netbsd1.6A ezk ezk ezk ezk - -i386-unknown-netbsdelf1.6.1 ezk ezk ezk ezk - -i386-unknown-netbsdelf1.6.2 ezk ezk ezk ezk - -i386-unknown-netbsdelf2.0 ezk ezk ezk ezk - -i386-unknown-netbsdelf2.0.2 ezk ezk ezk ezk - -i386-unknown-netbsdelf3.0 ezk ezk ezk ezk - -i386-unknown-openbsd3.3 ezk ezk ezk ezk - -i386-unknown-openbsd3.6 ezk ezk ezk ezk - -i386-unknown-openbsd3.7 ezk ezk ezk ezk - -i686-apple-darwin6.6 ezk ezk ezk ezk - -ia64-hp-hpux11.20 ezk ezk ezk ezk - -ia64-unknown-linux-rh2.1AS ezk ezk - ezk - -ia64-unknown-linux-rh2.1AW ezk ezk ezk ezk - -ia64-unknown-linux-rhel4 ezk ezk ezk ezk - -mips-sgi-irix6.2 ro ro ro - -[3] -mips-sgi-irix6.5 ro ro ro - -[3] -mips-unknown-linux-gentoo1.4.16 ezk ezk ezk ezk - -mipsel-unknown-linux-rhPS2 ezk ezk ezk ezk - -powerpc-apple-darwin7.6.0 ezk ezk ezk ezk - -powerpc-apple-darwin7.7.0 ezk ezk ezk ezk - -powerpc-apple-darwin7.8.0 ezk ezk ezk ezk - -powerpc-apple-darwin7.9.0 ezk ezk ezk ezk - -powerpc-apple-darwin8.2.0 ezk ezk ezk ezk - -powerpc-ibm-aix5.1.0.0 ion ion ion ion[X] ion[1,2] -powerpc-ibm-aix5.2.0.0 ezk ezk ezk ezk - -powerpc-ibm-aix5.3.0.0 ezk ezk ezk ezk - -powerpc-unknown-linux-yellowdog2.3 ezk ezk ezk ezk - -sparc-sun-solaris2.10 ro ro ro - - -sparc-sun-solaris2.5.1 ion ion ion ion ion[1] -sparc-sun-solaris2.6 ion ion ion ion ion -sparc-sun-solaris2.7 ion ion ion ion ion -sparc-sun-solaris2.8 ion ion ion ion ion -sparc-sun-solaris2.9 ro ro ro - - -sparc-unknown-linux-rh62 ion ion ion ion ion -sparc64-unknown-linux-aurora10 ion ion ion ion ion -sparc64-unknown-linux-deb3.0 ezk ezk ezk ezk - -sparc64-unknown-linux-gentoo1.4.16 ezk ezk ezk ezk - -sparc64-unknown-linux-rh62 ion ion ion ion ion -sparc64-unknown-linux-suse7.3 ezk ezk - ezk - -x86_64-unknown-linux-rh2.9.5AS ezk ezk ezk ezk - -x86_64-unknown-linux-rh3.0.0AS ion ion ion ion ion - - -EMAIL ID LEGEND: - -bking: Bevis R W King <B.King@ee.surrey.ac.uk> -dsr: Dan Riley <dsr@mail.lns.cornell.edu> -ezk: Erez Zadok <ezk@cs.columbia.edu> -finkel: Raphael Finkel <raphael@cs.uky.edu> -ion: Ion Badulescu <ion@cs.columbia.edu> -jose: Jose Nazario <jose@biocserver.BIOC.CWRU.Edu> -nrh: Nick Hall <nrh@dcs.ed.ac.uk> -ro: Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> -stolke: Andreas Stolcke <stolcke@speech.sri.com> -wpaul: Bill Paul <wpaul@ctr.columbia.edu> - - -FOOTNOTES: - -[1] Due to limitations in the Sun autofs v1 implementation, some amd features -cannot be properly supported. More precisely, trying to access a link mount -pointing to another amd entry will result in failure and/or deadlock. -Ordinary nfs and link mounts work well, however. - -[2] AIX autofs appears to be a variant of the Sun autofs v1 protocol, but -IBM don't provide any sort of documentation or even header files from it. -It is currently unsupported; we may add some experimental support for it at -some point, though it won't be pretty. Assistance from IBM-ers would be -highly appreciated, hint hint. - -[3] IRIX 6 autofs uses the Sun autofs v1 protocol, too. The header files -are part of the onc3_eoe.sw.autofs (IRIX 6.2) or nfs.sw.autofs (IRIX 6.5) -package, which may not be installed. The autofs code is known to compile, -but hasn't been run yet. SGI's autofsd uses a barely documented system -call, syssgi(SGI_AUTOFS_SYS, ...), which may be required to get working -autofs support. Additional help from SGI would be highly appreciated. - -Erez & Ion +Installation Instructions +************************* + +Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation, +Inc. + + Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without warranty of any kind. + +Basic Installation +================== + + Briefly, the shell command `./configure && make && make install' +should configure, build, and install this package. The following +more-detailed instructions are generic; see the `README' file for +instructions specific to this package. Some packages provide this +`INSTALL' file but do not implement all of the features documented +below. The lack of an optional feature in a given package is not +necessarily a bug. More recommendations for GNU packages can be found +in *note Makefile Conventions: (standards)Makefile Conventions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, and a +file `config.log' containing compiler output (useful mainly for +debugging `configure'). + + It can also use an optional file (typically called `config.cache' +and enabled with `--cache-file=config.cache' or simply `-C') that saves +the results of its tests to speed up reconfiguring. Caching is +disabled by default to prevent problems with accidental use of stale +cache files. + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If you are using the cache, and at +some point `config.cache' contains results you don't want to keep, you +may remove or edit it. + + The file `configure.ac' (or `configure.in') is used to create +`configure' by a program called `autoconf'. You need `configure.ac' if +you want to change it or regenerate `configure' using a newer version +of `autoconf'. + + The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. + + Running `configure' might take a while. While running, it prints + some messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package, generally using the just-built uninstalled binaries. + + 4. Type `make install' to install the programs and any data files and + documentation. When installing into a prefix owned by root, it is + recommended that the package be configured and built as a regular + user, and only the `make install' phase executed with root + privileges. + + 5. Optionally, type `make installcheck' to repeat any self-tests, but + this time using the binaries in their final installed location. + This target does not install anything. Running this target as a + regular user, particularly if the prior `make install' required + root privileges, verifies that the installation completed + correctly. + + 6. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + + 7. Often, you can also type `make uninstall' to remove the installed + files again. In practice, not all packages have tested that + uninstallation works correctly, even though it is required by the + GNU Coding Standards. + + 8. Some packages, particularly those that use Automake, provide `make + distcheck', which can by used by developers to test that all other + targets like `make install' and `make uninstall' work correctly. + This target is generally not run by end users. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. Run `./configure --help' +for details on some of the pertinent environment variables. + + You can give `configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here +is an example: + + ./configure CC=c99 CFLAGS=-g LIBS=-lposix + + *Note Defining Variables::, for more details. + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you can use GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. This +is known as a "VPATH" build. + + With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture. + + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple `-arch' options to the +compiler but only a single `-arch' option to the preprocessor. Like +this: + + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" + + This is not guaranteed to produce working output in all cases, you +may have to build one architecture at a time and combine the results +using the `lipo' tool if you have problems. + +Installation Names +================== + + By default, `make install' installs the package's commands under +`/usr/local/bin', include files under `/usr/local/include', etc. You +can specify an installation prefix other than `/usr/local' by giving +`configure' the option `--prefix=PREFIX', where PREFIX must be an +absolute file name. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +pass the option `--exec-prefix=PREFIX' to `configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=DIR' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. In general, the +default for these options is expressed in terms of `${prefix}', so that +specifying just `--prefix' will affect all of the other directory +specifications that were not explicitly provided. + + The most portable way to affect installation locations is to pass the +correct locations to `configure'; however, many packages provide one or +both of the following shortcuts of passing variable assignments to the +`make install' command line to change installation locations without +having to reconfigure or recompile. + + The first method involves providing an override variable for each +affected directory. For example, `make install +prefix=/alternate/directory' will choose an alternate location for all +directory configuration variables that were expressed in terms of +`${prefix}'. Any directories that were specified during `configure', +but not in terms of `${prefix}', must each be overridden at install +time for the entire installation to be relocated. The approach of +makefile variable overrides for each directory variable is required by +the GNU Coding Standards, and ideally causes no recompilation. +However, some platforms have known limitations with the semantics of +shared libraries that end up requiring recompilation when using this +method, particularly noticeable in packages that use GNU Libtool. + + The second method involves providing the `DESTDIR' variable. For +example, `make install DESTDIR=/alternate/directory' will prepend +`/alternate/directory' before all installation names. The approach of +`DESTDIR' overrides is not required by the GNU Coding Standards, and +does not work on platforms that have drive letters. On the other hand, +it does better at avoiding recompilation issues, and works well even +when some directory options were not specified in terms of `${prefix}' +at `configure' time. + +Optional Features +================= + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + + Some packages offer the ability to configure how verbose the +execution of `make' will be. For these packages, running `./configure +--enable-silent-rules' sets the default to minimal output, which can be +overridden with `make V=1'; while running `./configure +--disable-silent-rules' sets the default to verbose, which can be +overridden with `make V=0'. + +Particular systems +================== + + On HP-UX, the default C compiler is not ANSI C compatible. If GNU +CC is not installed, it is recommended to use the following options in +order to use an ANSI C compiler: + + ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" + +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + + HP-UX `make' updates targets which have the same time stamps as +their prerequisites, which makes it generally unusable when shipped +generated files such as `configure' are involved. Use GNU `make' +instead. + + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +parse its `<wchar.h>' header file. The option `-nodtk' can be used as +a workaround. If GNU CC is not installed, it is therefore recommended +to try + + ./configure CC="cc" + +and if that doesn't work, try + + ./configure CC="cc -nodtk" + + On Solaris, don't put `/usr/ucb' early in your `PATH'. This +directory contains several dysfunctional programs; working variants of +these programs are available in `/usr/bin'. So, if you need `/usr/ucb' +in your `PATH', put it _after_ `/usr/bin'. + + On Haiku, software installed for all users goes in `/boot/common', +not `/usr/local'. It is recommended to use the following options: + + ./configure --prefix=/boot/common + +Specifying the System Type +========================== + + There may be some features `configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, `configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the +`--build=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +where SYSTEM can have one of these forms: + + OS + KERNEL-OS + + See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the option `--target=TYPE' to select the type of system they will +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with `--host=TYPE'. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Defining Variables +================== + + Variables not defined in a site shell script can be set in the +environment passed to `configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the `configure' command line, using `VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +causes the specified `gcc' to be used as the C compiler (unless it is +overridden in the site shell script). + +Unfortunately, this technique does not work for `CONFIG_SHELL' due to +an Autoconf limitation. Until the limitation is lifted, you can use +this workaround: + + CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash + +`configure' Invocation +====================== + + `configure' recognizes the following options to control how it +operates. + +`--help' +`-h' + Print a summary of all of the options to `configure', and exit. + +`--help=short' +`--help=recursive' + Print a summary of the options unique to this package's + `configure', and exit. The `short' variant lists options used + only in the top level, while the `recursive' variant lists options + also present in any nested packages. + +`--version' +`-V' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally `config.cache'. FILE defaults to `/dev/null' to + disable caching. + +`--config-cache' +`-C' + Alias for `--cache-file=config.cache'. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--prefix=DIR' + Use DIR as the installation prefix. *note Installation Names:: + for more details, including other options available for fine-tuning + the installation locations. + +`--no-create' +`-n' + Run the configure checks, but stop before creating any output + files. + +`configure' also accepts some other, not widely useful, options. Run +`configure --help' for more details. diff --git a/contrib/amd/MIRRORS.html b/contrib/amd/MIRRORS.html index 0deeefe..511df2b 100644 --- a/contrib/amd/MIRRORS.html +++ b/contrib/amd/MIRRORS.html @@ -11,8 +11,8 @@ Note: in case of any problems accessing the individual FTP sites, please contact their respective maintainers. If you wish to be added to the -official mirror list, please send mail to <A -HREF="mailto:am-utils-developers@am-utils.org">am-utils-developers@am-utils.org</A> with the +official mirror list, please send mail to +"am-utils-developers AT am-utils.org" with the full URL, maintainer's email, and geographical location. <P> @@ -24,8 +24,8 @@ full URL, maintainer's email, and geographical location. <UL> <LI> FTP: <A HREF="ftp://ftp.am-utils.org/pub/am-utils">ftp.am-utils.org</A>. - Contact person in case of problems <A - HREF="mailto:am-utils-developers@am-utils.org">am-utils-developers@am-utils.org</A>. + Contact person in case of problems +"am-utils-developers AT am-utils.org". </LI> </UL> @@ -33,14 +33,14 @@ full URL, maintainer's email, and geographical location. <UL> <LI> FTP: <A HREF="ftp://ftp.cs.umn.edu/pub/am-utils">ftp.cs.umn.edu</A>. - Maintainer <A HREF="mailto:dokas@cs.umn.edu">dokas@cs.umn.edu</A>. + Maintainer <A HREF="mailto:dokas AT cs.umn.edu">dokas AT cs.umn.edu</A>. </LI> </UL> <LI> Florida (University of Florida) <UL> <LI> FTP: <A HREF="ftp://ftp.cise.ufl.edu/pub/mirrors/am-utils">ftp.cise.ufl.edu</A>. - Maintainer <A HREF="mailto:mirror@cise.ufl.edu">mirror@cise.ufl.edu</A>. + Maintainer <A HREF="mailto:mirror AT cise.ufl.edu">mirror AT cise.ufl.edu</A>. </LI> </UL> @@ -52,24 +52,24 @@ full URL, maintainer's email, and geographical location. <LI> Germany <UL> <LI> FTP: <A HREF="ftp://ftp.fu-berlin.de/unix/network/am-utils">ftp.fu-berlin.de</A>. - Maintainer <A HREF="mailto:ftp-adm@ftp.fu-berlin.de">ftp-adm@ftp.fu-berlin.de</A>. + Maintainer <A HREF="mailto:ftp-adm AT ftp.fu-berlin.de">ftp-adm AT ftp.fu-berlin.de</A>. </LI> <LI> FTP: <A HREF="ftp://ftp.tu-darmstadt.de/pub/networking/filesystems/am-utils/">ftp.tu-darmstadt.de</A>. - Maintainer <A HREF="mailto:networking@ftp.tu-darmstadt.de">networking@ftp.tu-darmstadt.de</A>. + Maintainer <A HREF="mailto:networking AT ftp.tu-darmstadt.de">networking AT ftp.tu-darmstadt.de</A>. </LI> </UL> <LI> Sweden <UL> <LI> FTP: <A HREF="ftp://ftp.sunet.se/pub/unix/admin/am-utils">ftp.sunet.se</A>. - Maintainer <A HREF="mailto:archive@ftp.sunet.se">archive@ftp.sunet.se</A>. + Maintainer <A HREF="mailto:archive AT ftp.sunet.se">archive AT ftp.sunet.se</A>. </LI> </UL> <LI> UK <UL> <LI> FTP: <A HREF="ftp://sunsite.org.uk/package/am-utils">sunsite.org.uk</A>. - Maintainer <A HREF="mailto:lmjm@icparc.ic.ac.uk">lmjm@icparc.ic.ac.uk</A>. + Maintainer <A HREF="mailto:lmjm AT icparc.ic.ac.uk">lmjm AT icparc.ic.ac.uk</A>. </LI> </UL> @@ -81,21 +81,21 @@ full URL, maintainer's email, and geographical location. <LI> Japan <UL> <LI> FTP: <A HREF="ftp://ftp.u-aizu.ac.jp/pub/net/amd/am-utils">ftp.u-aizu.ac.jp</A>. - Maintainer <A HREF="mailto:ftp-admin@u-aizu.ac.jp">ftp-admin@u-aizu.ac.jp</A>. + Maintainer <A HREF="mailto:ftp-admin AT u-aizu.ac.jp">ftp-admin AT u-aizu.ac.jp</A>. </LI> <LI> FTP: <A HREF="ftp://core.ring.gr.jp/pub/net/am-utils/">core.ring.gr.jp</A>. - Maintainer <A HREF="mailto:ftpadmin@ring.gr.jp">ftpadmin@ring.gr.jp</A>. + Maintainer <A HREF="mailto:ftpadmin AT ring.gr.jp">ftpadmin AT ring.gr.jp</A>. </LI> <LI> FTP: <A HREF="ftp://ftp.ring.gr.jp/pub/net/am-utils/">ftp.ring.gr.jp</A>. - Maintainer <A HREF="mailto:ftpadmin@ring.gr.jp">ftpadmin@ring.gr.jp</A>. + Maintainer <A HREF="mailto:ftpadmin AT ring.gr.jp">ftpadmin AT ring.gr.jp</A>. </LI> </UL> </UL> <HR> -<I> Last updated: Jan 5, 2004</I> +<I> Last updated: 2006-11-27</I> </BODY> </HTML> diff --git a/contrib/amd/MIRRORS.txt b/contrib/amd/MIRRORS.txt index b5093e8..087c6cc 100644 --- a/contrib/amd/MIRRORS.txt +++ b/contrib/amd/MIRRORS.txt @@ -2,59 +2,59 @@ Note: in case of any problems accessing the individual FTP sites, please contact their respective maintainers. If you wish to be added to the -official mirror list, please send mail to am-utils-developers@am-utils.org +official mirror list, please send mail to am-utils-developers AT am-utils.org with the full URL, maintainer's email, and geographical location. U.S.A: New York (Stony Brook, Primary Site): ftp://ftp.am-utils.org/pub/am-utils - Maintainer: ezk@am-utils.org + Maintainer: ezk AT am-utils.org Minnesota: ftp://ftp.cs.umn.edu/pub/am-utils - Maintainer: dokas@cs.umn.edu + Maintainer: dokas AT cs.umn.edu #Avoid for now: empty directory # Virginia (Newport News): # ftp://ftp.ferginc.com/pub/unix/am-utils -# Maintainer: Branson.Matheson@FergInc.com +# Maintainer: Branson.Matheson AT FergInc.com #server gone? (Jan 5, 2004) # Ohio (Kent State University): # ftp://info.mcs.kent.edu/pub/am-utils -# Maintainer: root@mcs.kent.edu +# Maintainer: root AT mcs.kent.edu Florida (University of Florida) ftp://ftp.cise.ufl.edu/pub/mirrors/am-utils - Maintainer: mirror@cise.ufl.edu + Maintainer: mirror AT cise.ufl.edu Europe: Germany: ftp://ftp.fu-berlin.de/unix/network/am-utils - Maintainer: ftp-adm@ftp.fu-berlin.de + Maintainer: ftp-adm AT ftp.fu-berlin.de Germany: ftp://ftp.tu-darmstadt.de/pub/networking/filesystems/am-utils/ - Maintainer: networking@ftp.tu-darmstadt.de + Maintainer: networking AT ftp.tu-darmstadt.de Sweden: ftp://ftp.sunet.se/pub/unix/admin/am-utils - Maintainer: archive@ftp.sunet.se + Maintainer: archive AT ftp.sunet.se # not responding (Jan 5, 2004) # Sweden (Stockholm University, Math Depat): # ftp://mirror.matematik.su.se/pub/am-utils -# Maintainer: leifj@matematik.su.se +# Maintainer: leifj AT matematik.su.se UK: ftp://sunsite.org.uk/package/am-utils - Maintainer: lmjm@icparc.ic.ac.uk + Maintainer: lmjm AT icparc.ic.ac.uk Asia: Japan: ftp://ftp.u-aizu.ac.jp/pub/net/amd/am-utils - Maintainer: ftp-admin@u-aizu.ac.jp + Maintainer: ftp-admin AT u-aizu.ac.jp Japan: ftp://core.ring.gr.jp/pub/net/am-utils/ - Maintainer: ftpadmin@ring.gr.jp + Maintainer: ftpadmin AT ring.gr.jp Japan: ftp://ftp.ring.gr.jp/pub/net/am-utils/ - Maintainer: ftpadmin@ring.gr.jp + Maintainer: ftpadmin AT ring.gr.jp # gone? (Jan 5, 2004) # Australia: # Melbourne: # ftp://ftp.sage-au.org.au/pub/network/filesystem/am-utils -# Maintainer: mirror@ftp.sage-au.org.au +# Maintainer: mirror AT ftp.sage-au.org.au diff --git a/contrib/amd/NEWS b/contrib/amd/NEWS index 5cde984..b7fbeda 100644 --- a/contrib/amd/NEWS +++ b/contrib/amd/NEWS @@ -1,4 +1,44 @@ -*** Notes specific to am-utils version 6.1.5 +*** Notes specific to am-utils version 6.2 + + - Removed license advertising clause + - Removed expn program + +*** Notes specific to am-utils version 6.2-rc1 + +Filesystem Support: + - Add support for NFSv4 + - Add support for Lustre + - Add support for ext{2,3,4} + - Add support for linux autofs version 5 + - Add support for TMPFS and UDF +New features: + - Add amq -i (prints information about maps) + - Add synchronous unmount code for amq -uu + - Allow a comma-separated list of LDAP servers for failover +Changes in behavior: + - Empty variable assignments, now unset the variable value. + - Share LDAP connections between different maps to save resources +Portability fixes: + - Changes to work with Linux-2.6.x, Linux-3.x and NetBSD-5.x, NetBSD-6.x, + FreeBSD 7.x, Solaris +Bug fixes: + - Many bug fixes, see ChangeLog + +*** Notes specific to am-utils version 6.2a3 + +- minor new ports: + i386-apple-darwin8.8.1 + i386-pc-linux-centos4.4 (RHEL4 clone) + i386-pc-linux-fc6 (Fedora Core 6) + i386-pc-solaris2.11-nexentaos (GNU/OpenSolaris) + ia64-hp-hpux11.23 (gcc and cc) + powerpc-apple-darwin8.7.0 + +- Bugs fixed: + * reduce annoying warnings from xstrlcpy when expanding options. + * translate '*' Sun maps correctly with "${key}" + +*** Notes specific to am-utils version 6.2a2 New amd.conf global parameter: nfs_allow_any_interface. By default it is set to 'no' which means that Amd accepts local NFS packets only from @@ -11,21 +51,6 @@ Add support for specifying the host to match in the mount selectors netgrp and netgrpd. Now one can use either netgrp(<group-name>) or netgrp(<group-name>,<host-name>). -- Bugs fixed: - * handle old-style filehandles correctly (for mount points longer - than 28 chars) - * don't turn off attribute cache for regular NFS mounts (improves - performance) - * detect G/DBM support via gdbm_compat library (Debian) - * detect NDBM support in libc (FreeBSD 6) - -- minor new ports: - i386-unknown-freebsd6.1 (RELEASE) - i386-unknown-openbsd3.9 - powerpc-apple-darwin8.6.0 - -*** Notes specific to am-utils version 6.1.4 - Support new mount options for type:=pcfs mounts: longname, nowin95, shortname, user=N, group=N, mask=N, and dirmask=N. @@ -41,44 +66,28 @@ better tune Amd's responsiveness under heavy scheduler loads. i386-pc-linux-fc5 (Fedora Core 5) i386-pc-linux-suse10.1 (beta 8) i386-unknown-freebsd6.0 (RELEASE) + i386-unknown-freebsd6.1 (RELEASE) i386-unknown-netbsdelf2.1 i386-unknown-netbsdelf3.0 (RELEASE) i386-unknown-openbsd3.8 + i386-unknown-openbsd3.9 powerpc-apple-darwin8.5.0 + powerpc-apple-darwin8.6.0 - Bugs fixed: * one serious memory leak in amfs_generic (caught by Coverity) * assorted potential (but rare) NULL pointer dereferences (Coverity) * correctly print nfs_args->addr info (sin_family/port/addr) * pawd should resolve path repeatedly until no more to do + * handle old-style filehandles correctly (for mount points longer + than 28 chars) * use-after-free bug in amfs_lookup_mntfs (Coverity) + * don't turn off attribute cache for regular NFS mounts (improves + performance) + * detect G/DBM support via gdbm_compat library (Debian) + * detect NDBM support in libc (FreeBSD 6) -*** Notes specific to am-utils version 6.1.3 - -- Bugs fixed: - * amq should de-register properly on exit - * convert all sprintf to safer xsnprintf - * convert all strcat to safer xstrlcat - * convert all strcpy to safer xstrlcpy - * fix three buffer overruns in expand_op (amd/opts.c) - * pawd was trying UDP only, now try TCP if UDP failed - -Moved pawd's path-matching functionality into Amd, where it can be done a -lot more efficiently (we no longer need to construct and send the whole -mounted tree, only to match small parts of it). This will lessen the CPU -and network load on systems that use pawd heavily, and also minimize the -chance that we exceed default or hard-coded UDP/TCP RPC packet sizes. - -*** Notes specific to am-utils version 6.1.2.1 - -- Bugs fixed: - * properly turn off the attrcache in freebsd and openbsd - * can turn off attrcache on netbsd, but need kernel patch, see - README.attrcache - * pawd goes into an infinite loop on type:=auto - * consistent search for file system mnttab/mount names - -*** Notes specific to am-utils version 6.1.2 +*** Notes specific to am-utils version 6.2a1 MAJOR BUG FIXES: Synchronize Amd's view of its file systems with the kernel's NFS client-side DNLC/dcache. Amd changes its view when it reloads @@ -114,13 +123,82 @@ Amd. Tell syslog not to log automatically to /dev/console; it's unfriendly. If user really wants to, they can set it in /etc/syslog.conf. +Moved pawd's path-matching functionality into Amd, where it can be done a +lot more efficiently (we no longer need to construct and send the whole +mounted tree, only to match small parts of it). This will lessen the CPU +and network load on systems that use pawd heavily, and also minimize the +chance that we exceed default or hard-coded UDP/TCP RPC packet sizes. + +Changed slightly how Amd behaves when you try to change log_options after +Amd started (options can be turned on/off via "amq -x ARG"). It used to be +that Amd won't let you turn off options which were on when Amd started. +That limited users' ability to reduce Amd's logging levels to a minimum. +Now, Amd will allow you to turn on/off any option, other than the two +options "fatal" and "error." Both are on by default and considered +mandatory. These two don't produce a lot of log messages, so your logs will +remain small, but they are important to keep on, so Amd can report serious +problems (including errors relating to incorrectly setting other log +options). + +Amd now understands a new log_option called "defaults" which is synonymous +with "fatal,error,user,warning,info" (and is also what logging happens by +default). + +Amd now understands a new debug_option called "defaults" which is synonymous +with "all,nohrtime,nomtab,noxdrtrace". + +Changed the misleading inverted logic of certain debug_options: + +1. "xdrtrace" is included in "all" because "all" (as the name implies), + should be *all* options, not just a subset. If you want the old behavior + of "all" then use "defaults" (all only adds "xdrtrace" which can be + chatty on some systems). + +2. Certain debug options are hereby declared immutable: they may not be + changed by "amq -D" after Amd starts, because it doesn't make much sense + to change them after Amd starts, and it could really mess up Amd. These + immutable flags are currently "daemon," "fork," "amq," and "mtab." + +3. the debug option "daemon" *will* cause Amd to daemonize. Before, it was + causing Amd NOT to daemonize. This was greatly confusing, especially + since the code, documentation, and comments often conflicted with each + other. If you don't want Amd to daemonize, which is useful for debugging + it, then use the debug option "nodaemon" -- it makes a lot more sense. + +4. Similarly, the "fork" option *will* cause Hlfsd to fork. Use "nofork" if + you don't want Hlfsd to fork. This option is only applicable to Hlfsd. + +5. Similarly, the "amq" option, which is now on by default, will cause Amd + to register itself with the RPC portmapper (for Amq), as is done + normally. If you don't want Amd to register with the portmapper, use + "noamq" -- this naming convention makes more sense. This was also + confusingly documented and coded in places. + + Note: unfortunately, these changes to the "daemon," "fork," and "amq" + debug options may be incompatible with people's previous use of Amd. + Some of you may have to update your amd.conf slightly or your startup + options (if they're hard-coded in your amd startup script). Sorry, but + we have to fix those old problems sooner or later. However, if you never + set any debug_options, or you used to "all," then you won't be affected + by the change in meaning of these three flags. + - minor new ports: i386-pc-linux-deb3.1 - i386-unknown-netbsdelf3.0 + i386-unknown-netbsdelf3.0 (BETA) powerpc-apple-darwin8.2.0 -- bugs fixed: - * minor documentation corrections +- Bugs fixed: + * abort with an error if yacc/lex programs not found + * properly turn off the attrcache in freebsd and openbsd + * can turn off attrcache on netbsd, but need kernel patch, see + README.attrcache + * pawd goes into an infinite loop on type:=auto + * consistent search for file system mnttab/mount names + * convert all sprintf to safer xsnprintf + * convert all strcat to safer xstrlcat + * convert all strcpy to safer xstrlcpy + * fix three buffer overruns in expand_op (amd/opts.c) + * pawd was trying UDP only, now try TCP if UDP failed *** Notes specific to am-utils version 6.1.1 @@ -328,7 +406,7 @@ version (10.3.x) than uname(3) reports. Useful with firewalls and NAT'ed environments. - new amd.conf option "debug_mtab_file". Allows user to define the mtab - file during debug-mtab mode. The default path is "/tmp/mnttab". + file during debug-mtab mode. The default path is "/tmp/mtab". - new function selector xhost(ARG) which will match ARG against the current host name. This works even if ARG is a CNAME (unlike the host==ARG diff --git a/contrib/amd/README b/contrib/amd/README index 0b3ce46..4b4aec0 100644 --- a/contrib/amd/README +++ b/contrib/amd/README @@ -81,7 +81,7 @@ or ./buildall -K To be a developer and be able to run "bootstrap", you must have -autoconf-2.50, automake-1.5, and libtool 1.4 installed on your system (or +autoconf-2.68, automake-1.11.1, and libtool 2.2.6b installed on your system (or later versions thereof). You no longer need to get my special version of automake. Contact me if you'd like to be a maintainer and get access to the CVS server. @@ -94,9 +94,9 @@ before. Let me know if you are having any problems with them. I fully expect, at least initially, to have to be the sole developers of the M4 macros and let others concentrate on C sources. -[E] Report all bugs to am-utils@am-utils.org. Avoid reporting to my -personal email address. It is important to involve the whole list in bug -fixes etc. +[E] Report all bugs via Bugzilla or the am-utils list (see +www.am-utils.org). Avoid reporting to my personal email address. It is +important to involve the whole list in bug fixes etc. Good luck. diff --git a/contrib/amd/README.attrcache b/contrib/amd/README.attrcache index e8522d2..7bd1087 100644 --- a/contrib/amd/README.attrcache +++ b/contrib/amd/README.attrcache @@ -122,8 +122,8 @@ OS. You can run this script as root as follows: # sh test-attrcache If you run this script on an OS whose status is known (and not listed -above), please report it to am-utils@am-utils.org, so we can record it in -this file. +above), please report it to us via Bugzilla or the am-utils mailing list +(see www.am-utils.org), so we can record it in this file. Sincerely, Erez. diff --git a/contrib/amd/README.ldap b/contrib/amd/README.ldap index 7151134..24095ca 100644 --- a/contrib/amd/README.ldap +++ b/contrib/amd/README.ldap @@ -1,12 +1,12 @@ LDAP support for am-utils was originally done by Leif Johansson -<leifj@it.su.se>. He no longer maintains it. +<leifj AT it.su.se>. He no longer maintains it. The current LDAP support for am-utils is for LDAPv2 only. Reportedly, LDAPv3 mostly works. Volunteers and patches are welcome. The IANA has assigned the following Private Enterprise Number to: - 10180 Am-utils Organization Erez Zadok ezk@am-utils.org + 10180 Am-utils Organization Erez Zadok ezk AT am-utils.org There are three files in this directory that relate to LDAP: @@ -33,8 +33,8 @@ Erez. ------- Forwarded Message -From: "IANA Private Enterprise Number" <iana-pen@icann.org> -To: "Erez Zadok" <ezk@cs.columbia.edu> +From: "IANA Private Enterprise Number" <iana-pen AT icann.org> +To: "Erez Zadok" <ezk AT cs.columbia.edu> Subject: RE: Application for Enterprise-number (10180) Date: Sun, 15 Jul 2001 14:43:45 -0700 @@ -43,7 +43,7 @@ Dear Erez, The IANA has assigned the following Private Enterprise Number to: -10180 Am-utils Organization Erez Zadok ezk@am-utils.org +10180 Am-utils Organization Erez Zadok ezk AT am-utils.org Please notify the IANA if there is a change in your contact or company information. diff --git a/contrib/amd/README.y2k b/contrib/amd/README.y2k index e75bd12..b0b887c5 100644 --- a/contrib/amd/README.y2k +++ b/contrib/amd/README.y2k @@ -8,10 +8,10 @@ all, because it does not do anything with dates other than print the date on the log file, in whatever format is provided by your os/libc --- especially the ctime(3) call. -However, on Friday, September 18th 1998, Matthew Crosby <mcrosby@ms.com> +However, on Friday, September 18th 1998, Matthew Crosby <mcrosby AT ms.com> reported that they evaluated 6.0a16 and found it to be compliant. -On March 26, 1999, Paul Balyoz <pbalyoz@sedona.ch.intel.com> submitted a +On March 26, 1999, Paul Balyoz <pbalyoz AT sedona.ch.intel.com> submitted a patch to lostaltmail which makes it print Y2K compliant dates. He used a code scanner and manually "eyeballed" the code and could not find any more problems. Paul's patch is included in am-utils-6.0.1s7 and newer versions. @@ -23,5 +23,4 @@ CERTIFY AM-UTILS AS Y2K COMPLIANT. USE AT YOUR OWN RISK. --- Erez Zadok. Maintainer, am-utils package and am-utils list. -Email: am-utils@am-utils.org WWW: http://www.am-utils.org diff --git a/contrib/amd/amd/am_ops.c b/contrib/amd/amd/am_ops.c index 5a5c336..4d07dc8 100644 --- a/contrib/amd/amd/am_ops.c +++ b/contrib/amd/amd/am_ops.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -96,6 +92,11 @@ static am_ops *vops[] = #ifdef HAVE_FS_XFS &xfs_ops, /* Unix (irix) F/S */ #endif /* HAVE_FS_XFS */ +#ifdef HAVE_FS_EXT + &ext2_ops, /* Unix (linux) F/S */ + &ext3_ops, /* Unix (linux) F/S */ + &ext4_ops, /* Unix (linux) F/S */ +#endif /* HAVE_FS_EXT */ #ifdef HAVE_FS_EFS &efs_ops, /* Unix (irix) F/S */ #endif /* HAVE_FS_EFS */ @@ -111,6 +112,9 @@ static am_ops *vops[] = #ifdef HAVE_FS_CACHEFS &cachefs_ops, /* caching F/S */ #endif /* HAVE_FS_CACHEFS */ +#ifdef HAVE_FS_TMPFS + &tmpfs_ops, /* /tmp (in memory) F/S */ +#endif /* HAVE_FS_TMPFS */ #ifdef HAVE_FS_NULLFS /* FILL IN */ /* null (loopback) F/S */ #endif /* HAVE_FS_NULLFS */ @@ -120,6 +124,12 @@ static am_ops *vops[] = #ifdef HAVE_FS_UMAPFS /* FILL IN */ /* uid/gid mapping F/S */ #endif /* HAVE_FS_UMAPFS */ +#ifdef HAVE_FS_UDF + &udf_ops, /* UDF F/S */ +#endif /* HAVE_FS_UDF */ +#ifdef HAVE_FS_LUSTRE + &lustre_ops, /* Lustre */ +#endif /* HAVE_FS_LUSTRE */ /* * These 4 should be last, in the order: @@ -316,7 +326,7 @@ merge_opts(const char *opts1, const char *opts2) char oneopt[80]; /* one option w/o value if any */ char *revoneopt; /* reverse of oneopt */ size_t len = strlen(opts1) + strlen(opts2) + 2; /* space for "," and NULL */ - char *s1 = strdup(opts1); /* copy of opts1 to munge */ + char *s1 = xstrdup(opts1); /* copy of opts1 to munge */ /* initialization */ mnt2.mnt_opts = (char *) opts2; @@ -327,13 +337,13 @@ merge_opts(const char *opts1, const char *opts2) tmpstr; tmpstr = strtok(NULL, ",")) { /* copy option to temp buffer */ - xstrlcpy(oneopt, tmpstr, 80); + xstrlcpy(oneopt, tmpstr, sizeof(oneopt)); /* if option has a value such as rsize=1024, chop the value part */ - if ((eq = haseq(oneopt))) + if ((eq = strchr(oneopt, '='))) *eq = '\0'; /* find reverse option of oneopt */ revoneopt = reverse_option(oneopt); - /* if option orits reverse exist in opts2, ignore it */ + /* if option or its reverse exist in opts2, ignore it */ if (amu_hasmntopt(&mnt2, oneopt) || amu_hasmntopt(&mnt2, revoneopt)) continue; /* add option to returned string */ @@ -362,7 +372,7 @@ am_ops * ops_search(char *type) { am_ops **vp; - am_ops *rop = 0; + am_ops *rop = NULL; for (vp = vops; (rop = *vp); vp++) if (STREQ(rop->fs_type, type)) break; @@ -373,7 +383,7 @@ ops_search(char *type) am_ops * ops_match(am_opts *fo, char *key, char *g_key, char *path, char *keym, char *map) { - am_ops *rop = 0; + am_ops *rop = NULL; char *link_dir; /* @@ -400,7 +410,7 @@ ops_match(am_opts *fo, char *key, char *g_key, char *path, char *keym, char *map * Otherwise skip past any leading '-'. */ if (fo->opt_opts == 0) - fo->opt_opts = strdup("rw,defaults"); + fo->opt_opts = xstrdup("rw,defaults"); else if (*fo->opt_opts == '-') { /* * We cannot simply do fo->opt_opts++ here since the opts @@ -408,7 +418,7 @@ ops_match(am_opts *fo, char *key, char *g_key, char *path, char *keym, char *map * So just reallocate the thing -- stolcke 11/11/94 */ char *old = fo->opt_opts; - fo->opt_opts = strdup(old + 1); + fo->opt_opts = xstrdup(old + 1); XFREE(old); } @@ -426,7 +436,7 @@ ops_match(am_opts *fo, char *key, char *g_key, char *path, char *keym, char *map XFREE(fo->opt_opts); XFREE(fo->opt_remopts); fo->opt_opts = mergedstr; - fo->opt_remopts = strdup(mergedstr); + fo->opt_remopts = xstrdup(mergedstr); } else { char *mergedstr, *remmergedstr; mergedstr = merge_opts(fo->opt_opts, fo->opt_addopts); @@ -451,7 +461,7 @@ ops_match(am_opts *fo, char *key, char *g_key, char *path, char *keym, char *map /* Normalize the sublink and make it absolute */ link_dir = fo->opt_sublink; if (link_dir && link_dir[0] && link_dir[0] != '/') { - link_dir = str3cat((char *) 0, fo->opt_fs, "/", link_dir); + link_dir = str3cat((char *) NULL, fo->opt_fs, "/", link_dir); normalize_slash(link_dir); XFREE(fo->opt_sublink); fo->opt_sublink = link_dir; @@ -460,8 +470,7 @@ ops_match(am_opts *fo, char *key, char *g_key, char *path, char *keym, char *map /* * Check the filesystem is happy */ - if (fo->fs_mtab) - XFREE(fo->fs_mtab); + XFREE(fo->fs_mtab); fo->fs_mtab = rop->fs_match(fo); if (fo->fs_mtab) diff --git a/contrib/amd/amd/amd.8 b/contrib/amd/amd/amd.8 index efd23f6..90b9591 100644 --- a/contrib/amd/amd/amd.8 +++ b/contrib/amd/amd/amd.8 @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 1997-2006 Erez Zadok +.\" Copyright (c) 1997-2014 Erez Zadok .\" Copyright (c) 1989 Jan-Simon Pendry .\" Copyright (c) 1989 Imperial College of Science, Technology & Medicine .\" Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgment: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors +.\" 3. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" @@ -36,9 +32,8 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %W% (Berkeley) %G% .\" -.\" $Id: amd.8,v 1.14.2.1 2006/01/02 18:48:23 ezk Exp $ +.\" File: am-utils/amd/amd.8 .\" $FreeBSD$ .\" .Dd January 2, 2006 @@ -225,20 +220,20 @@ Specify an in seconds, between attempts to dismount file systems that have exceeded their cached times. The default is 2 minutes. +.TP .It Fl x Ar options -Specify run-time logging options. -The options are a comma separated +Specify run-time logging options. The options are a comma separated list chosen from: -.Li fatal , error , user , warn , info , map , stats , all . +.Li fatal, error, user, warn, info, map, stats, defaults, all . +Note that "fatal" and "error" are mandatory and cannot be turned off. +.TP .It Fl y Ar domain Specify an alternative .Tn NIS domain from which to fetch the .Tn NIS maps. -The default is the system domain name. -This option is ignored if -.Tn NIS +The default is the system domain name. This option is ignored if NIS support is not available. .It Fl A Ar arch Specifies the OS architecture. @@ -360,14 +355,15 @@ number of process context switches. A weird imagination is most useful to gain full advantage of all the features. .Sh SEE ALSO -.Xr domainname 1 , -.Xr hostname 1 , -.Xr syslog 3 , -.Xr amd.conf 5 , -.Xr mtab 5 , -.Xr amq 8 , -.Xr mount 8 , -.Xr umount 8 +.Xr domainname 1, +.Xr hostname 1, +.Xr syslog 3. +.Xr amd.conf 5, +.Xr mtab 5, +.Xr amq 8, +.Xr automount 8, +.Xr mount 8, +.Xr umount 8, .Pp .Dq am-utils .Xr info 1 diff --git a/contrib/amd/amd/amd.c b/contrib/amd/amd/amd.c index 3fc25f8..7ec49ce 100644 --- a/contrib/amd/amd/amd.c +++ b/contrib/amd/amd/amd.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -379,7 +375,7 @@ do_memory_locking(void) #endif /* HAVE_PLOCK || HAVE_MLOCKALL */ #if defined(HAVE_MADVISE) && defined(MADV_PROTECT) - madvise(0, 0, MADV_PROTECT); /* may be redundant of the above worked out */ + madvise(NULL, 0, MADV_PROTECT); /* may be redundant of the above worked out */ #endif /* defined(HAVE_MADVISE) && defined(MADV_PROTECT) */ } @@ -431,6 +427,7 @@ main(int argc, char *argv[]) if (gethostname(hostname, sizeof(hostname)) < 0) { plog(XLOG_FATAL, "gethostname: %m"); going_down(1); + return 1; } hostname[sizeof(hostname) - 1] = '\0'; @@ -440,6 +437,7 @@ main(int argc, char *argv[]) if (!*hostname) { plog(XLOG_FATAL, "host name is not set"); going_down(1); + return 1; } /* @@ -498,7 +496,8 @@ main(int argc, char *argv[]) getwire(&PrimNetName, &PrimNetNum); /* - * Determine command-line arguments + * Determine command-line arguments. + * (Also initialize amd.conf parameters, maps, and more.) */ get_args(argc, argv); @@ -532,6 +531,7 @@ main(int argc, char *argv[]) if (geteuid() != 0) { plog(XLOG_FATAL, "Must be root to mount filesystems (euid = %ld)", (long) geteuid()); going_down(1); + return 1; } #ifdef HAVE_MAP_NIS @@ -543,10 +543,11 @@ main(int argc, char *argv[]) if (gopt.nis_domain && yp_bind(gopt.nis_domain)) { plog(XLOG_FATAL, "Can't bind to NIS domain \"%s\"", gopt.nis_domain); going_down(1); + return 1; } #endif /* HAVE_MAP_NIS */ - if (!amuDebug(D_DAEMON)) + if (amuDebug(D_DAEMON)) ppid = daemon_mode(); /* diff --git a/contrib/amd/amd/amd.h b/contrib/amd/amd/amd.h index 0e371b7..f66f5b7 100644 --- a/contrib/amd/amd/amd.h +++ b/contrib/amd/amd/amd.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -54,9 +50,12 @@ * that support mtab on file. */ #ifdef MOUNT_TABLE_ON_FILE -# define DEBUG_MNTTAB_FILE "/tmp/mnttab" +# define DEBUG_MNTTAB_FILE "/tmp/mtab" #endif /* MOUNT_TABLE_ON_FILE */ +/* Max line length that info services can handle */ +#define INFO_MAX_LINE_LEN 1500 + /* options for amd.conf */ #define CFM_BROWSABLE_DIRS 0x00000001 #define CFM_MOUNT_TYPE_AUTOFS 0x00000002 /* use kernel autofs support */ @@ -76,10 +75,7 @@ #define CFM_NORMALIZE_SLASHES 0x00008000 /* normalize slashes? */ #define CFM_FORCED_UNMOUNTS 0x00010000 /* forced unmounts? */ #define CFM_TRUNCATE_LOG 0x00020000 /* truncate log file? */ -#if 0 -/* XXX: reserved to sync up with am-utils-6.2 */ #define CFM_SUN_MAP_SYNTAX 0x00040000 /* Sun map syntax? */ -#endif #define CFM_NFS_ANY_INTERFACE 0x00080000 /* all interfaces are acceptable */ /* defaults global flags: plock, tcpwrappers, and autofs/lofs */ @@ -212,6 +208,7 @@ typedef struct cf_map cf_map_t; typedef struct kv kv; typedef struct am_node am_node; typedef struct mntfs mntfs; +typedef struct am_loc am_loc; typedef struct am_opts am_opts; typedef struct am_ops am_ops; typedef struct am_stats am_stats; @@ -245,13 +242,17 @@ typedef int (*vmount_fs) (am_node *, mntfs *); typedef int (*vumount_fs) (am_node *, mntfs *); typedef am_node *(*vlookup_child) (am_node *, char *, int *, int); typedef am_node *(*vmount_child) (am_node *, int *); -typedef int (*vreaddir) (am_node *, nfscookie, nfsdirlist *, nfsentry *, u_int); +typedef int (*vreaddir) (am_node *, voidp, voidp, voidp, u_int); typedef am_node *(*vreadlink) (am_node *, int *); typedef void (*vmounted) (mntfs *); typedef void (*vumounted) (mntfs *); typedef fserver *(*vffserver) (mntfs *); typedef wchan_t (*vget_wchan) (mntfs *); +/* + * NFS progran dispatcher + */ +typedef void (*dispatcher_t)(struct svc_req *rqstp, SVCXPRT *transp); /* @@ -314,6 +315,7 @@ struct amu_global_options { #endif /* HAVE_MAP_NIS */ char *nfs_proto; /* NFS protocol (NULL, udp, tcp) */ int nfs_vers; /* NFS version (0, 2, 3, 4) */ + int nfs_vers_ping; /* NFS rpc ping version (0, 2, 3, 4) */ u_int exec_map_timeout; /* timeout (seconds) for executable maps */ }; @@ -349,6 +351,7 @@ struct mnt_map { short alloc; /* Allocation mode */ time_t modify; /* Modify time of map */ u_int reloads; /* Number of times map was reloaded */ + u_int nentries; /* Number of entries in the map */ char *map_name; /* Name of this map */ char *wildcard; /* Wildcard value */ reload_fn *reload; /* Function to be used for reloads */ @@ -420,7 +423,7 @@ struct mntfs { am_opts *mf_fo; /* File opts */ char *mf_mount; /* "/a/kiska/home/kiska" */ char *mf_info; /* Mount info */ - char *mf_auto; /* Automount opts */ + char *mf_auto; /* Mount info */ char *mf_mopts; /* FS mount opts */ char *mf_remopts; /* Remote FS mount opts */ char *mf_loopdev; /* loop device name for /dev/loop mounts */ @@ -435,6 +438,16 @@ struct mntfs { }; /* + * Locations: bindings between keys and mntfs + */ +struct am_loc { + am_opts *al_fo; + mntfs *al_mnt; + int al_refc; +}; + + +/* * List of fileservers */ struct fserver { @@ -463,6 +476,8 @@ struct am_stats { int s_readdir; /* Count of readdirs */ int s_readlink; /* Count of readlinks */ int s_statfs; /* Count of statfs */ + int s_fsinfo; /* Count of fsinfo */ + int s_pathconf; /* Count of pathconf */ }; /* @@ -482,8 +497,8 @@ extern struct amd_stats amd_stats; */ struct am_node { int am_mapno; /* Map number */ - mntfs *am_mnt; /* Mounted filesystem */ - mntfs **am_mfarray; /* Filesystem sources to try to mount */ + am_loc *am_al; /* Mounted filesystem */ + am_loc **am_alarray; /* Filesystem sources to try to mount */ char *am_name; /* "kiska": name of this node */ char *am_path; /* "/home/kiska": path of this node's mount point */ char *am_link; /* "/a/kiska/home/kiska/this/that": link to sub-dir */ @@ -508,6 +523,7 @@ struct am_node { autofs_fh_t *am_autofs_fh; time_t am_autofs_ttl; /* Time to expire autofs nodes */ #endif /* HAVE_FS_AUTOFS */ + int am_fd[2]; /* parent child pipe fd's for sync umount */ }; /* @@ -527,13 +543,18 @@ extern int *amqproc_getpid_1_svc(voidp argp, struct svc_req *rqstp); extern int *amqproc_mount_1_svc(voidp argp, struct svc_req *rqstp); extern int *amqproc_setopt_1_svc(voidp argp, struct svc_req *rqstp); extern voidp amqproc_null_1_svc(voidp argp, struct svc_req *rqstp); -extern voidp amqproc_umnt_1_svc(voidp argp, struct svc_req *rqstp); +extern int *amqproc_umnt_1_svc(voidp argp, struct svc_req *rqstp); +extern int *amqproc_sync_umnt_1_svc_parent(voidp argp, struct svc_req *rqstp); +extern amq_sync_umnt *amqproc_sync_umnt_1_svc_child(voidp argp, struct svc_req *rqstp); +extern amq_sync_umnt *amqproc_sync_umnt_1_svc_async(voidp argp, struct svc_req *rqstp); +extern amq_map_info_list *amqproc_getmapinfo_1_svc(voidp argp, struct svc_req *rqstp); /* other external definitions */ -extern am_nfs_fh *get_root_nfs_fh(char *dir); +extern am_nfs_handle_t *get_root_nfs_fh(char *dir, am_nfs_handle_t *nfh); extern am_node *find_ap(char *); extern am_node *get_ap_child(am_node *, char *); extern bool_t xdr_amq_mount_info_qelem(XDR *xdrs, qelem *qhead); +extern bool_t xdr_amq_map_info_qelem(XDR *xdrs, qelem *qhead); extern fserver *find_nfs_srvr(mntfs *mf); extern int mount_nfs_fh(am_nfs_handle_t *fhp, char *mntdir, char *fs_name, mntfs *mf); extern int process_all_regular_maps(void); @@ -541,7 +562,8 @@ extern cf_map_t *find_cf_map(const char *name); extern int set_conf_kv(const char *section, const char *k, const char *v); extern int mount_node(opaque_t arg); extern int unmount_mp(am_node *mp); -extern int yyparse (void); +extern int conf_parse(void); /* "yyparse" renamed */ +extern FILE *conf_in; /* "yyin" renamed */ extern void amfs_mkcacheref(mntfs *mf); extern int amfs_mount(am_node *mp, mntfs *mf, char *opts); @@ -566,12 +588,15 @@ extern int get_mountd_port(fserver *, u_short *, wchan_t); extern void flush_nfs_fhandle_cache(fserver *); extern mntfs *dup_mntfs(mntfs *); +extern am_loc *dup_loc(am_loc *); extern mntfs *find_mntfs(am_ops *, am_opts *, char *, char *, char *, char *, char *); extern mntfs *locate_mntfs(am_ops *, am_opts *, char *, char *, char *, char *, char *); +extern am_loc *new_loc(void); extern mntfs *new_mntfs(void); extern mntfs *realloc_mntfs(mntfs *, am_ops *, am_opts *, char *, char *, char *, char *, char *); extern void flush_mntfs(void); extern void free_mntfs(voidp); +extern void free_loc(voidp); extern void amq_program_1(struct svc_req *rqstp, SVCXPRT *transp); @@ -579,9 +604,11 @@ extern int background(void); extern void deslashify(char *); extern void do_task_notify(void); extern int eval_fs_opts(am_opts *, char *, char *, char *, char *, char *); +extern int file_read_line(char *, int, FILE *); extern void forcibly_timeout_mp(am_node *); extern void free_map(am_node *); extern void free_opts(am_opts *); +extern am_opts *copy_opts(am_opts *); extern void free_srvr(fserver *); extern int fwd_init(void); extern int fwd_packet(int, char *, int, struct sockaddr_in *, struct sockaddr_in *, opaque_t, fwd_fun *); @@ -596,7 +623,7 @@ extern int make_nfs_auth(void); extern void make_root_node(void); extern void map_flush_srvr(fserver *); extern void mapc_add_kv(mnt_map *, char *, char *); -extern mnt_map *mapc_find(char *, char *, const char *); +extern mnt_map *mapc_find(char *, char *, const char *, const char *); extern void mapc_free(opaque_t); extern int mapc_keyiter(mnt_map *, key_fun, opaque_t); extern void mapc_reload(void); @@ -608,9 +635,11 @@ extern int mount_auto_node(char *, opaque_t); extern int mount_automounter(int); extern int mount_exported(void); extern void mp_to_fh(am_node *, am_nfs_fh *); +extern void mp_to_fh3(am_node *mp, am_nfs_fh3 *fhp); extern void new_ttl(am_node *); extern void nfs_quick_reply(am_node *mp, int error); extern void normalize_slash(char *); +extern void notify_child(am_node *, au_etype, int, int); extern void ops_showamfstypes(char *buf, size_t l); extern void ops_showfstypes(char *outbuf, size_t l); extern void rem_que(qelem *); @@ -639,8 +668,8 @@ extern char hostd[SIZEOF_HOSTD]; /* Host+domain */ /* * Global variables. */ -extern FILE *yyin; extern SVCXPRT *current_transp; /* For nfs_quick_reply() */ +extern dispatcher_t nfs_dispatcher; extern char *conf_tag; #define SIZEOF_UID_STR 12 #define SIZEOF_GID_STR 12 @@ -724,6 +753,19 @@ extern am_ops pcfs_ops; #endif /* HAVE_FS_PCFS */ /* + * UDF File System + * Many systems can't support this, and in any case most of the + * functionality is available with program FS. + */ +#ifdef HAVE_FS_UDF +extern am_ops udf_ops; +#endif /* HAVE_FS_UDF */ + +#ifdef HAVE_FS_LUSTRE +extern am_ops lustre_ops; +#endif /* HAVE_FS_LUSTRE */ + +/* * Caching File System (Solaris) */ #ifdef HAVE_FS_CACHEFS @@ -731,6 +773,12 @@ extern am_ops cachefs_ops; #endif /* HAVE_FS_CACHEFS */ /* + * In memory /tmp filesystem (Linux, NetBSD) + */ +#ifdef HAVE_FS_TMPFS +extern am_ops tmpfs_ops; +#endif /* HAVE_FS_TMPFS */ +/* * Network File System * Good, slow, NFS V.2. */ @@ -753,6 +801,13 @@ extern am_ops ufs_ops; /* Un*x file system */ extern am_ops xfs_ops; /* Un*x file system */ #endif /* HAVE_FS_XFS */ +/* Unix file system (ext*) */ +#ifdef HAVE_FS_EXT +extern am_ops ext2_ops; /* Un*x file system */ +extern am_ops ext3_ops; /* Un*x file system */ +extern am_ops ext4_ops; /* Un*x file system */ +#endif /* HAVE_FS_EXT */ + /* Unix file system (irix) */ #ifdef HAVE_FS_EFS extern am_ops efs_ops; /* Un*x file system */ @@ -772,7 +827,7 @@ extern am_ops amfs_root_ops; /* Root file system */ */ extern am_node *amfs_generic_lookup_child(am_node *mp, char *fname, int *error_return, int op); extern am_node *amfs_generic_mount_child(am_node *ap, int *error_return); -extern int amfs_generic_readdir(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry *ep, u_int count); +extern int amfs_generic_readdir(am_node *mp, voidp cookie, voidp dp, voidp ep, u_int count); extern int amfs_generic_umount(am_node *mp, mntfs *mf); extern void amfs_generic_mounted(mntfs *mf); extern char *amfs_generic_match(am_opts *fo); @@ -808,7 +863,8 @@ extern am_ops amfs_direct_ops; /* Direct Automount file system (this too) */ extern am_ops amfs_error_ops; /* Error file system */ extern am_node *amfs_error_lookup_child(am_node *mp, char *fname, int *error_return, int op); extern am_node *amfs_error_mount_child(am_node *ap, int *error_return); -extern int amfs_error_readdir(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry *ep, u_int count); +extern int amfs_error_readdir(am_node *mp, voidp cookie, voidp dp, voidp ep, u_int count); + #endif /* HAVE_AMU_FS_ERROR */ /* diff --git a/contrib/amd/amd/amfs_auto.c b/contrib/amd/amd/amfs_auto.c index 75a451f..34fdb00 100644 --- a/contrib/amd/amd/amfs_auto.c +++ b/contrib/amd/amd/amfs_auto.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -101,6 +97,8 @@ am_ops amfs_auto_ops = static int amfs_auto_mount(am_node *mp, mntfs *mf) { + if (mp->am_parent == NULL) + return EINVAL; /* * Pseudo-directories are used to provide some structure * to the automounted directories instead @@ -115,7 +113,7 @@ amfs_auto_mount(am_node *mp, mntfs *mf) * Historical - not documented. */ if (mf->mf_info[0] == '.' && mf->mf_info[1] == '\0') - mf->mf_info = strealloc(mf->mf_info, mp->am_parent->am_mnt->mf_info); + mf->mf_info = strealloc(mf->mf_info, mp->am_parent->am_al->al_mnt->mf_info); /* * Compute prefix: @@ -131,12 +129,12 @@ amfs_auto_mount(am_node *mp, mntfs *mf) if (mf->mf_fo->opt_pref) { /* allow pref:=null to set a real null prefix */ if (STREQ(mf->mf_fo->opt_pref, "null")) { - mp->am_pref = strdup(""); + mp->am_pref = xstrdup(""); } else { /* * the prefix specified as an option */ - mp->am_pref = strdup(mf->mf_fo->opt_pref); + mp->am_pref = xstrdup(mf->mf_fo->opt_pref); } } else { /* @@ -147,7 +145,7 @@ amfs_auto_mount(am_node *mp, mntfs *mf) char *ppref = mp->am_parent->am_pref; if (ppref == 0) ppref = ""; - mp->am_pref = str3cat((char *) 0, ppref, mp->am_name, "/"); + mp->am_pref = str3cat((char *) NULL, ppref, mp->am_name, "/"); } #ifdef HAVE_FS_AUTOFS diff --git a/contrib/amd/amd/amfs_direct.c b/contrib/amd/amd/amfs_direct.c index dbef743..b911c2a 100644 --- a/contrib/amd/amd/amfs_direct.c +++ b/contrib/amd/amd/amfs_direct.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -93,8 +89,8 @@ amfs_direct_readlink(am_node *mp, int *error_return) xp = next_nonerror_node(mp->am_child); if (!xp) { - if (!mp->am_mnt->mf_private) - amfs_mkcacheref(mp->am_mnt); /* XXX */ + if (!mp->am_al->al_mnt->mf_private) + amfs_mkcacheref(mp->am_al->al_mnt); xp = amfs_generic_lookup_child(mp, mp->am_path + 1, &rc, VLOOK_CREATE); if (xp && rc < 0) xp = amfs_generic_mount_child(xp, &rc); diff --git a/contrib/amd/amd/amfs_error.c b/contrib/amd/amd/amfs_error.c index 51bdaa6..58a6231 100644 --- a/contrib/amd/amd/amfs_error.c +++ b/contrib/amd/amd/amfs_error.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -92,7 +88,7 @@ am_ops amfs_error_ops = static char * amfs_error_match(am_opts *fo) { - return strdup("(error-hook)"); + return xstrdup("(error-hook)"); } @@ -145,7 +141,7 @@ amfs_error_mount_child(am_node *ap, int *error_return) * If we do then just give an error. */ int -amfs_error_readdir(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry *ep, u_int count) +amfs_error_readdir(am_node *mp, voidp cookie, voidp dp, voidp ep, u_int count) { return ESTALE; } diff --git a/contrib/amd/amd/amfs_generic.c b/contrib/amd/amd/amfs_generic.c index 0d59969..25d734b 100644 --- a/contrib/amd/amd/amfs_generic.c +++ b/contrib/amd/amd/amfs_generic.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -55,7 +51,7 @@ /**************************************************************************** *** MACROS *** ****************************************************************************/ -#define IN_PROGRESS(cp) ((cp)->mp->am_mnt->mf_flags & MFF_MOUNTING) +#define IN_PROGRESS(cp) ((cp)->mp->am_al->al_mnt->mf_flags & MFF_MOUNTING) /**************************************************************************** @@ -80,7 +76,7 @@ struct continuation { int retry; /* Try again? */ time_t start; /* Time we started this mount */ int callout; /* Callout identifier */ - mntfs **mf; /* Current mntfs */ + am_loc **al; /* Current location */ }; @@ -88,9 +84,9 @@ struct continuation { *** FORWARD DEFINITIONS *** ****************************************************************************/ static am_node *amfs_lookup_node(am_node *mp, char *fname, int *error_return); -static mntfs *amfs_lookup_one_mntfs(am_node *new_mp, mntfs *mf, char *ivec, +static am_loc *amfs_lookup_one_location(am_node *new_mp, mntfs *mf, char *ivec, char *def_opts, char *pfname); -static mntfs **amfs_lookup_mntfs(am_node *new_mp, int *error_return); +static am_loc **amfs_lookup_loc(am_node *new_mp, int *error_return); static void amfs_cont(int rc, int term, opaque_t arg); static void amfs_retry(int rc, int term, opaque_t arg); static void free_continuation(struct continuation *cp); @@ -108,7 +104,7 @@ amfs_lookup_node(am_node *mp, char *fname, int *error_return) int error = 0; /* Error so far */ int in_progress = 0; /* # of (un)mount in progress */ mntfs *mf; - char *expanded_fname = 0; + char *expanded_fname = NULL; dlog("in amfs_lookup_node"); @@ -118,7 +114,7 @@ amfs_lookup_node(am_node *mp, char *fname, int *error_return) * about the mount point. */ if (amd_state == Finishing) { - if (mp->am_mnt == 0 || mp->am_mnt->mf_fsflags & FS_DIRECT) { + if (mp->am_al == NULL || mp->am_al->al_mnt == NULL || mp->am_al->al_mnt->mf_fsflags & FS_DIRECT) { dlog("%s mount ignored - going down", fname); } else { dlog("%s/%s mount ignored - going down", mp->am_path, fname); @@ -170,7 +166,7 @@ amfs_lookup_node(am_node *mp, char *fname, int *error_return) * If the error code is undefined then it must be * in progress. */ - mf = new_mp->am_mnt; + mf = new_mp->am_al->al_mnt; if (mf->mf_error < 0) goto in_progrss; @@ -240,7 +236,7 @@ amfs_lookup_node(am_node *mp, char *fname, int *error_return) */ new_mp = get_ap_child(mp, expanded_fname); XFREE(expanded_fname); - if (new_mp == 0) + if (new_mp == NULL) ereturn(ENOSPC); *error_return = -1; @@ -249,19 +245,25 @@ amfs_lookup_node(am_node *mp, char *fname, int *error_return) -static mntfs * -amfs_lookup_one_mntfs(am_node *new_mp, mntfs *mf, char *ivec, - char *def_opts, char *pfname) +static am_loc * +amfs_lookup_one_location(am_node *new_mp, mntfs *mf, char *ivec, + char *def_opts, char *pfname) { am_ops *p; am_opts *fs_opts; + am_loc *new_al; mntfs *new_mf; - char *mp_dir = 0; + char *mp_dir = NULL; #ifdef HAVE_FS_AUTOFS int on_autofs = 1; #endif /* HAVE_FS_AUTOFS */ /* match the operators */ + /* + * although we alloc the fs_opts here, the pointer is 'owned' by the am_loc and will + * be free'd on destruction of the am_loc. If we don't allocate a loc, then we need + * to free this. + */ fs_opts = CALLOC(am_opts); p = ops_match(fs_opts, ivec, def_opts, new_mp->am_path, pfname, mf->mf_info); @@ -269,7 +271,7 @@ amfs_lookup_one_mntfs(am_node *new_mp, mntfs *mf, char *ivec, /* XXX: this should be factored out into an autofs-specific function */ if (new_mp->am_flags & AMF_AUTOFS) { /* ignore user-provided fs if we're using autofs */ - if (fs_opts->opt_sublink) { + if (fs_opts->opt_sublink && fs_opts->opt_sublink[0]) { /* * For sublinks we need to use a hack with autofs: * mount the filesystem on the original opt_fs (which is NOT an @@ -292,6 +294,9 @@ amfs_lookup_one_mntfs(am_node *new_mp, mntfs *mf, char *ivec, /* * Find or allocate a filesystem for this node. + * we search for a matching backend share, since + * we will construct our own al_loc to handle + * any customisations for this usage. */ new_mf = find_mntfs(p, fs_opts, mp_dir, @@ -300,6 +305,7 @@ amfs_lookup_one_mntfs(am_node *new_mp, mntfs *mf, char *ivec, fs_opts->opt_opts, fs_opts->opt_remopts); + /* * See whether this is a real filesystem */ @@ -307,10 +313,16 @@ amfs_lookup_one_mntfs(am_node *new_mp, mntfs *mf, char *ivec, if (p == &amfs_error_ops) { plog(XLOG_MAP, "Map entry %s for %s did not match", ivec, new_mp->am_path); free_mntfs(new_mf); + free_opts(fs_opts); + XFREE(fs_opts); return NULL; } dlog("Got a hit with %s", p->fs_type); + new_al = new_loc(); + free_mntfs(new_al->al_mnt); + new_al->al_mnt = new_mf; + new_al->al_fo = fs_opts; /* now the loc is in charge of free'ing this mem */ #ifdef HAVE_FS_AUTOFS if (new_mp->am_flags & AMF_AUTOFS && on_autofs) { @@ -332,12 +344,12 @@ amfs_lookup_one_mntfs(am_node *new_mp, mntfs *mf, char *ivec, new_mf->mf_flags |= MFF_IS_AUTOFS; #endif /* HAVE_FS_AUTOFS */ - return new_mf; + return new_al; } -static mntfs ** -amfs_lookup_mntfs(am_node *new_mp, int *error_return) +static am_loc ** +amfs_lookup_loc(am_node *new_mp, int *error_return) { am_node *mp; char *info; /* Mount info - where to get the file system */ @@ -348,10 +360,11 @@ amfs_lookup_mntfs(am_node *new_mp, int *error_return) int error = 0; /* Error so far */ char path_name[MAXPATHLEN]; /* General path name buffer */ char *pfname; /* Path for database lookup */ - mntfs *mf, **mf_array; + mntfs* mf; /* The mntfs for the map of our parent */ + am_loc **al_array; /* the generated list of locations */ int count; - dlog("in amfs_lookup_mntfs"); + dlog("in amfs_lookup_loc"); mp = new_mp->am_parent; @@ -369,7 +382,7 @@ amfs_lookup_mntfs(am_node *new_mp, int *error_return) pfname = new_mp->am_name; } - mf = mp->am_mnt; + mf = mp->am_al->al_mnt; dlog("will search map info in %s to find %s", mf->mf_info, pfname); /* @@ -404,8 +417,8 @@ amfs_lookup_mntfs(am_node *new_mp, int *error_return) else def_opts = ""; - orig_def_opts = amfs_parse_defaults(mp, mf, strdup(def_opts)); - def_opts = strdup(orig_def_opts); + orig_def_opts = amfs_parse_defaults(mp, mf, xstrdup(def_opts)); + def_opts = xstrdup(orig_def_opts); /* first build our defaults */ num_ivecs = 0; @@ -423,11 +436,11 @@ amfs_lookup_mntfs(am_node *new_mp, int *error_return) num_ivecs++; } - mf_array = calloc(num_ivecs + 1, sizeof(mntfs *)); + al_array = calloc(num_ivecs + 1, sizeof(am_loc *)); - /* construct the array of struct mntfs for this mount point */ + /* construct the array of struct locations for this key */ for (count = 0, cur_ivec = ivecs; *cur_ivec; cur_ivec++) { - mntfs *new_mf; + am_loc *new_al; if (**cur_ivec == '-') { XFREE(def_opts); @@ -436,18 +449,18 @@ amfs_lookup_mntfs(am_node *new_mp, int *error_return) * If we have a single dash '-' than we need to reset the * default options. */ - def_opts = strdup(orig_def_opts); + def_opts = xstrdup(orig_def_opts); dlog("Resetting the default options, a single dash '-' was found."); } else { /* append options to /default options */ - def_opts = str3cat((char *) 0, orig_def_opts, ";", *cur_ivec + 1); + def_opts = str3cat((char *) NULL, orig_def_opts, ";", *cur_ivec + 1); dlog("Resetting def_opts to \"%s\"", def_opts); } continue; } /* - * If a mntfs has already been found, and we find + * If a loc has already been found, and we find * a cut then don't try any more locations. * * XXX: we do not know when the "/" was added as an equivalent for "||". @@ -455,16 +468,16 @@ amfs_lookup_mntfs(am_node *new_mp, int *error_return) */ if (STREQ(*cur_ivec, "/") || STREQ(*cur_ivec, "||")) { if (count > 0) { - dlog("Cut: not trying any more locations for %s", mp->am_path); + dlog("Cut: not trying any more locations for %s", pfname); break; } continue; } - new_mf = amfs_lookup_one_mntfs(new_mp, mf, *cur_ivec, def_opts, pfname); - if (new_mf == NULL) + new_al = amfs_lookup_one_location(new_mp, mf, *cur_ivec, def_opts, pfname); + if (new_al == NULL) continue; - mf_array[count++] = new_mf; + al_array[count++] = new_al; } /* We're done with ivecs */ @@ -473,11 +486,11 @@ amfs_lookup_mntfs(am_node *new_mp, int *error_return) XFREE(orig_def_opts); XFREE(def_opts); if (count == 0) { /* no match */ - XFREE(mf_array); + XFREE(al_array); ereturn(ENOENT); } - return mf_array; + return al_array; } @@ -491,7 +504,7 @@ amfs_cont(int rc, int term, opaque_t arg) { struct continuation *cp = (struct continuation *) arg; am_node *mp = cp->mp; - mntfs *mf = mp->am_mnt; + mntfs *mf = mp->am_al->al_mnt; dlog("amfs_cont: '%s'", mp->am_path); @@ -556,7 +569,7 @@ amfs_cont(int rc, int term, opaque_t arg) mf->mf_error = rc; mf->mf_flags |= MFF_ERROR; errno = rc; /* XXX */ - if (!STREQ(mp->am_mnt->mf_ops->fs_type, "linkx")) + if (!STREQ(mp->am_al->al_mnt->mf_ops->fs_type, "linkx")) plog(XLOG_ERROR, "%s: mount (amfs_cont): %m", mp->am_path); } } @@ -568,7 +581,7 @@ amfs_cont(int rc, int term, opaque_t arg) * call the background mount routine again */ amd_stats.d_merr++; - cp->mf++; + cp->al++; } amfs_bgmount(cp); if (mp->am_error > 0) @@ -608,13 +621,21 @@ amfs_retry(int rc, int term, opaque_t arg) */ plog(XLOG_INFO, "mount of \"%s\" has timed out", mp->am_path); error = ETIMEDOUT; - while (*cp->mf) - cp->mf++; + while (*cp->al) + cp->al++; /* explicitly forbid further retries after timeout */ cp->retry = FALSE; } if (error || !IN_PROGRESS(cp)) error = amfs_bgmount(cp); + else + /* Normally it's amfs_bgmount() which frees the continuation. However, if + * the mount is already in progress and we're in amfs_retry() for another + * node we don't try mounting the filesystem once again. Still, we have + * to free the continuation as we won't get called again and thus would + * leak the continuation structure and our am_loc references. + */ + free_continuation(cp); reschedule_timeout_mp(); } @@ -626,7 +647,7 @@ amfs_retry(int rc, int term, opaque_t arg) static void free_continuation(struct continuation *cp) { - mntfs **mfp; + am_loc **alp; dlog("free_continuation"); if (cp->callout) @@ -634,13 +655,12 @@ free_continuation(struct continuation *cp) /* * we must free the mntfs's in the list. * so free all of them if there was an error, - * or free all but the used one, if the mount succeeded. */ - for (mfp = cp->mp->am_mfarray; *mfp; mfp++) { - free_mntfs(*mfp); + for (alp = cp->mp->am_alarray; *alp; alp++) { + free_loc(*alp); } - XFREE(cp->mp->am_mfarray); - cp->mp->am_mfarray = 0; + XFREE(cp->mp->am_alarray); + cp->mp->am_alarray = 0; XFREE(cp); } @@ -690,12 +710,13 @@ static int amfs_bgmount(struct continuation *cp) { am_node *mp = cp->mp; - mntfs *mf; /* Current mntfs */ + am_loc *loc; + mntfs *mf; int this_error = -1; /* Per-mount error */ int hard_error = -1; /* Cumulative per-node error */ - if (mp->am_mnt) - free_mntfs(mp->am_mnt); + if (mp->am_al) + free_loc(mp->am_al); /* * Try to mount each location. @@ -704,10 +725,11 @@ amfs_bgmount(struct continuation *cp) * hard_error > 0 indicates everything failed with a hard error * hard_error < 0 indicates nothing could be mounted now */ - for (mp->am_mnt = *cp->mf; *cp->mf; cp->mf++, mp->am_mnt = *cp->mf) { + for (mp->am_al = *cp->al; *cp->al; cp->al++, mp->am_al = *cp->al) { am_ops *p; - mf = dup_mntfs(mp->am_mnt); + loc = dup_loc(mp->am_al); + mf = loc->al_mnt; p = mf->mf_ops; if (hard_error < 0) @@ -737,12 +759,11 @@ amfs_bgmount(struct continuation *cp) goto failed; } - if (mp->am_link) { - XFREE(mp->am_link); - mp->am_link = NULL; - } - if (mf->mf_fo && mf->mf_fo->opt_sublink) - mp->am_link = strdup(mf->mf_fo->opt_sublink); + XFREE(mp->am_link); + mp->am_link = NULL; + + if (loc->al_fo && loc->al_fo->opt_sublink && loc->al_fo->opt_sublink[0]) + mp->am_link = xstrdup(loc->al_fo->opt_sublink); /* * Will usually need to play around with the mount nodes @@ -784,13 +805,13 @@ amfs_bgmount(struct continuation *cp) if (this_error < 0) goto retry; - if (mf->mf_fo && mf->mf_fo->opt_delay) { + if (loc->al_fo && loc->al_fo->opt_delay) { /* - * If there is a delay timer on the mount + * If there is a delay timer on the location * then don't try to mount if the timer * has not expired. */ - int i = atoi(mf->mf_fo->opt_delay); + int i = atoi(loc->al_fo->opt_delay); time_t now = clocktime(NULL); if (i > 0 && now < (cp->start + i)) { dlog("Mount of %s delayed by %lds", mf->mf_mount, (long) (i - now + cp->start)); @@ -866,22 +887,25 @@ amfs_bgmount(struct continuation *cp) return -1; failed: - amd_stats.d_merr++; - mf->mf_error = this_error; - mf->mf_flags |= MFF_ERROR; + if (!FSRV_ISDOWN(mf->mf_server)) { + /* mark the mount as failed unless the server is down */ + amd_stats.d_merr++; + mf->mf_error = this_error; + mf->mf_flags |= MFF_ERROR; #ifdef HAVE_FS_AUTOFS - if (mp->am_autofs_fh) - autofs_release_fh(mp); + if (mp->am_autofs_fh) + autofs_release_fh(mp); #endif /* HAVE_FS_AUTOFS */ - if (mf->mf_flags & MFF_MKMNT) { - rmdirs(mf->mf_mount); - mf->mf_flags &= ~MFF_MKMNT; + if (mf->mf_flags & MFF_MKMNT) { + rmdirs(mf->mf_mount); + mf->mf_flags &= ~MFF_MKMNT; + } } /* * Wakeup anything waiting for this mount */ wakeup(get_mntfs_wchan(mf)); - free_mntfs(mf); + free_loc(loc); /* continue */ } @@ -890,7 +914,10 @@ amfs_bgmount(struct continuation *cp) * there is no more mount information available. */ if (this_error) { - mp->am_mnt = mf = new_mntfs(); + if (mp->am_al) + free_loc(mp->am_al); + mp->am_al = loc = new_loc(); + mf = loc->al_mnt; #ifdef HAVE_FS_AUTOFS if (mp->am_flags & AMF_AUTOFS) @@ -920,7 +947,7 @@ amfs_bgmount(struct continuation *cp) } new_ttl(mp); } else { - mf = mp->am_mnt; + mf = loc->al_mnt; /* * Wakeup anything waiting for this mount */ @@ -959,19 +986,10 @@ amfs_parse_defaults(am_node *mp, mntfs *mf, char *def_opts) /* * Find out if amd.conf overrode any map-specific /defaults. - * - * HACK ALERT: there's no easy way to find out what the map mount point is - * at this point, so I am forced to initialize the mnt_map->cfm field here - * for the first time, upon the very first search for a /defaults entry in - * this map. This initialization is much better done in mapc_create(), - * but it's impossible to do that there with the current code structure. */ - if (mm->cfm == NULL) { /* then initialize it for first time */ - mm->cfm = find_cf_map(mf->mf_mount); - } if (mm->cfm && mm->cfm->cfm_defaults) { dlog("map %s map_defaults override: %s", mf->mf_mount, mm->cfm->cfm_defaults); - dflts = strdup(mm->cfm->cfm_defaults); + dflts = xstrdup(mm->cfm->cfm_defaults); } else if (mapc_search(mm, "/defaults", &dflts) == 0) { dlog("/defaults gave %s", dflts); } else { @@ -1009,7 +1027,7 @@ amfs_parse_defaults(am_node *mp, mntfs *mf, char *def_opts) * get expanded to "/defaults" */ pt = ops_match(&ap, *sp, "", mp->am_path, "/defaults", - mp->am_parent->am_mnt->mf_info); + mp->am_parent->am_al->al_mnt->mf_info); free_opts(&ap); /* don't leak */ if (pt == &amfs_error_ops) { plog(XLOG_MAP, "did not match defaults for \"%s\"", *sp); @@ -1076,8 +1094,9 @@ amfs_generic_mount_child(am_node *new_mp, int *error_return) *error_return = error = 0; /* Error so far */ /* we have an errorfs attached to the am_node, free it */ - free_mntfs(new_mp->am_mnt); - new_mp->am_mnt = 0; + if (new_mp->am_al) + free_loc(new_mp->am_al); + new_mp->am_al = NULL; /* * Construct a continuation @@ -1087,7 +1106,7 @@ amfs_generic_mount_child(am_node *new_mp, int *error_return) cp->mp = new_mp; cp->retry = TRUE; cp->start = clocktime(NULL); - cp->mf = new_mp->am_mfarray; + cp->al = new_mp->am_alarray; /* * Try and mount the file system. If this succeeds immediately (possible @@ -1101,7 +1120,7 @@ amfs_generic_mount_child(am_node *new_mp, int *error_return) /* * Code for quick reply. If current_transp is set, then it's the - * transp that's been passed down from nfs_program_2() or from + * transp that's been passed down from nfs_dispatcher() or from * autofs_program_[123](). * If new_mp->am_transp is not already set, set it by copying in * current_transp. Once am_transp is set, nfs_quick_reply() and @@ -1113,7 +1132,8 @@ amfs_generic_mount_child(am_node *new_mp, int *error_return) new_mp->am_transp = (SVCXPRT *) xmalloc(sizeof(SVCXPRT)); *(new_mp->am_transp) = *current_transp; } - if (error && new_mp->am_mnt && (new_mp->am_mnt->mf_ops == &amfs_error_ops)) + if (error && new_mp->am_al && new_mp->am_al->al_mnt && + (new_mp->am_al->al_mnt->mf_ops == &amfs_error_ops)) new_mp->am_error = error; if (new_mp->am_error > 0) @@ -1132,7 +1152,7 @@ am_node * amfs_generic_lookup_child(am_node *mp, char *fname, int *error_return, int op) { am_node *new_mp; - mntfs **mf_array; + am_loc **al_array; int mp_error; dlog("in amfs_generic_lookup_child"); @@ -1145,7 +1165,7 @@ amfs_generic_lookup_child(am_node *mp, char *fname, int *error_return, int op) return new_mp; /* also return if it's already mounted and known to be up */ - if (*error_return == 0 && FSRV_ISUP(new_mp->am_mnt->mf_server)) + if (*error_return == 0 && FSRV_ISUP(new_mp->am_al->al_mnt->mf_server)) return new_mp; switch (op) { @@ -1161,42 +1181,15 @@ amfs_generic_lookup_child(am_node *mp, char *fname, int *error_return, int op) /* save error_return */ mp_error = *error_return; - mf_array = amfs_lookup_mntfs(new_mp, error_return); - if (!mf_array) { - new_mp->am_error = new_mp->am_mnt->mf_error = *error_return; + al_array = amfs_lookup_loc(new_mp, error_return); + if (!al_array) { + new_mp->am_error = new_mp->am_al->al_mnt->mf_error = *error_return; free_map(new_mp); return NULL; } - /* - * Already mounted but known to be down: - * check if we have any alternatives to mount - */ - if (mp_error == 0) { - mntfs **mfp; - for (mfp = mf_array; *mfp; mfp++) - if (*mfp != new_mp->am_mnt) - break; - if (*mfp != NULL) { - /* - * we found an alternative, so try mounting again. - */ - *error_return = -1; - } else { - for (mfp = mf_array; *mfp; mfp++) - free_mntfs(*mfp); - XFREE(mf_array); - if (new_mp->am_flags & AMF_SOFTLOOKUP) { - ereturn(EIO); - } else { - *error_return = 0; - return new_mp; - } - } - } - /* store the array inside the am_node */ - new_mp->am_mfarray = mf_array; + new_mp->am_alarray = al_array; /* * Note: while it might seem like a good idea to prioritize @@ -1258,5 +1251,5 @@ amfs_generic_match(am_opts *fo) /* * mtab entry turns out to be the name of the mount map */ - return strdup(fo->opt_rfs ? fo->opt_rfs : "."); + return xstrdup(fo->opt_rfs ? fo->opt_rfs : "."); } diff --git a/contrib/amd/amd/amfs_host.c b/contrib/amd/amd/amfs_host.c index 55423c4..a3468ec 100644 --- a/contrib/amd/amd/amfs_host.c +++ b/contrib/amd/amd/amfs_host.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -227,7 +223,14 @@ fetch_fhandle(CLIENT *client, char *dir, am_nfs_handle_t *fhp, u_long nfs_versio plog(XLOG_INFO, "fetch_fhandle: NFS version %d", (int) nfs_version); #ifdef HAVE_FS_NFS3 - if (nfs_version == NFS_VERSION3) { + if (nfs_version == NFS_VERSION3 +#ifdef HAVE_FS_NFS4 +#ifndef NO_FALLBACK + || nfs_version == NFS_VERSION4 +#endif /* NO_FALLBACK */ +#endif /* HAVE_FS_NFS4 */ + ) { + memset((char *) &res3, 0, sizeof(res3)); clnt_stat = clnt_call(client, MOUNTPROC_MNT, @@ -303,8 +306,8 @@ amfs_host_mount(am_node *am, mntfs *mf) int n_export; int j, k; exports exlist = 0, ex; - exports *ep = 0; - am_nfs_handle_t *fp = 0; + exports *ep = NULL; + am_nfs_handle_t *fp = NULL; char *host; int error = 0; struct sockaddr_in sin; @@ -449,13 +452,13 @@ amfs_host_mount(am_node *am, mntfs *mf) /* Check and avoid a duplicated export entry */ if (j > k && ep[k] && STREQ(ep[j]->ex_dir, ep[k]->ex_dir)) { dlog("avoiding dup fhandle requested for %s", ep[j]->ex_dir); - ep[j] = 0; + ep[j] = NULL; } else { k = j; error = fetch_fhandle(client, ep[j]->ex_dir, &fp[j], mf->mf_server->fs_version); if (error) - ep[j] = 0; + ep[j] = NULL; } } @@ -465,8 +468,8 @@ amfs_host_mount(am_node *am, mntfs *mf) * error code 0 at the end. If they all fail then return * the last error code. */ - xstrlcpy(fs_name, mf->mf_info, MAXPATHLEN); - if ((rfs_dir = strchr(fs_name, ':')) == (char *) 0) { + xstrlcpy(fs_name, mf->mf_info, sizeof(fs_name)); + if ((rfs_dir = strchr(fs_name, ':')) == (char *) NULL) { plog(XLOG_FATAL, "amfs_host_mount: mf_info has no colon"); error = EINVAL; goto out; @@ -493,10 +496,8 @@ amfs_host_mount(am_node *am, mntfs *mf) */ out: discard_mntlist(mlist); - if (ep) - XFREE(ep); - if (fp) - XFREE(fp); + XFREE(ep); + XFREE(fp); if (sock != RPC_ANYSOCK) (void) amu_close(sock); if (client) @@ -554,7 +555,7 @@ amfs_host_umount(am_node *am, mntfs *mf) * Reverse list... */ ml = mlist; - mprev = 0; + mprev = NULL; while (ml) { mntlist *ml2 = ml->mnext; ml->mnext = mprev; diff --git a/contrib/amd/amd/amfs_link.c b/contrib/amd/amd/amfs_link.c index e75ab86..0751dd7 100644 --- a/contrib/amd/amd/amfs_link.c +++ b/contrib/amd/amd/amfs_link.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -109,13 +105,13 @@ amfs_link_match(am_opts *fo) */ if (fo->opt_fs[0] == '/') { char *link_hack = str3cat(NULL, ".", fo->opt_fs, ""); - if (!fo->opt_sublink) - fo->opt_sublink = strdup(fo->opt_fs); + if (fo->opt_sublink == NULL || fo->opt_sublink[0] == '\0') + fo->opt_sublink = xstrdup(fo->opt_fs); XFREE(fo->opt_fs); fo->opt_fs = link_hack; } - return strdup(fo->opt_fs); + return xstrdup(fo->opt_fs); } diff --git a/contrib/amd/amd/amfs_linkx.c b/contrib/amd/amd/amfs_linkx.c index e306eda..be95fe5 100644 --- a/contrib/amd/amd/amfs_linkx.c +++ b/contrib/amd/amd/amfs_linkx.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/contrib/amd/amd/amfs_nfsl.c b/contrib/amd/amd/amfs_nfsl.c index bb48f0e..c70a3ee 100644 --- a/contrib/amd/amd/amfs_nfsl.c +++ b/contrib/amd/amd/amfs_nfsl.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -101,7 +97,7 @@ amfs_nfsl_match(am_opts *fo) char *retval; struct stat stb; - if (fo->opt_sublink) + if (fo->opt_sublink && fo->opt_sublink[0]) cp = fo->opt_sublink; else cp = fo->opt_fs; @@ -116,8 +112,9 @@ amfs_nfsl_match(am_opts *fo) * call nfs_ops.fs_match(). * If link value exists (or same host), call amfs_link_ops.fs_match(). */ - if (!STRCEQ(ho, am_get_hostname())) { - plog(XLOG_INFO, "amfs_nfsl: \"%s\" is not local host, using type:=nfs", ho); + if (!STRCEQ(ho, am_get_hostname()) && !STRCEQ(ho, hostd)) { + plog(XLOG_INFO, "amfs_nfsl: \"%s\" is not the local host \"%s\", " + "or \"%s\" using type:=nfs", ho, am_get_hostname(), hostd); retval = nfs_ops.fs_match(fo); } else if (lstat(cp, &stb) < 0) { plog(XLOG_INFO, "amfs_nfsl: \"%s\" does not exist, using type:=nfs", cp); @@ -213,11 +210,16 @@ amfs_nfsl_umounted(mntfs *mf) static fserver * amfs_nfsl_ffserver(mntfs *mf) { - char *cp; - char *ho = mf->mf_fo->opt_rhost; + char *cp, *ho; struct stat stb; - if (mf->mf_fo->opt_sublink) + if (mf->mf_fo == NULL) { + plog(XLOG_ERROR, "%s: NULL mf_fo", __func__); + return NULL; + } + ho = mf->mf_fo->opt_rhost; + + if (mf->mf_fo->opt_sublink && mf->mf_fo->opt_sublink[0]) cp = mf->mf_fo->opt_sublink; else cp = mf->mf_fo->opt_fs; @@ -227,7 +229,8 @@ amfs_nfsl_ffserver(mntfs *mf) * call amfs_link_ops.ffserver(). * If link value exists (or same host), then call ops_nfs.ffserver(). */ - if (!STRCEQ(ho, am_get_hostname()) || lstat(cp, &stb) < 0) { + if ((!STRCEQ(ho, am_get_hostname()) && + !STRCEQ(ho, hostd)) || lstat(cp, &stb) < 0) { return nfs_ops.ffserver(mf); } else { mf->mf_flags |= MFF_NFSLINK; diff --git a/contrib/amd/amd/amfs_nfsx.c b/contrib/amd/amd/amfs_nfsx.c index 91be8af..db1b9fa 100644 --- a/contrib/amd/amd/amfs_nfsx.c +++ b/contrib/amd/amd/amfs_nfsx.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -118,7 +114,7 @@ amfs_nfsx_match(am_opts *fo) } /* set default sublink */ - if (fo->opt_sublink == 0) { + if (fo->opt_sublink == NULL || fo->opt_sublink[0] == '\0') { ptr = strchr(fo->opt_rfs, ','); if (ptr && ptr > (fo->opt_rfs + 1)) fo->opt_sublink = strnsave(fo->opt_rfs + 1, ptr - fo->opt_rfs - 1); @@ -149,7 +145,7 @@ amfs_nfsx_match(am_opts *fo) /* * Determine magic cookie to put in mtab */ - xmtab = str3cat((char *) 0, fo->opt_rhost, ":", fo->opt_rfs); + xmtab = str3cat((char *) NULL, fo->opt_rhost, ":", fo->opt_rfs); dlog("NFSX: mounting remote server \"%s\", remote fs \"%s\" on \"%s\"", fo->opt_rhost, fo->opt_rfs, fo->opt_fs); @@ -190,12 +186,15 @@ amfs_nfsx_init(mntfs *mf) if (nx == 0) { char **ivec; - char *info = 0; + char *info = NULL; char *host; char *pref; int error = 0; - info = strdup(mf->mf_info); + info = xstrdup(mf->mf_info); + if (info == NULL) + return errno; + host = strchr(info, ':'); if (!host) { error = EINVAL; @@ -221,12 +220,12 @@ amfs_nfsx_init(mntfs *mf) nx->nx_c = i - 1; /* i-1 because we don't want the prefix */ nx->nx_v = (amfs_nfsx_mnt *) xmalloc(nx->nx_c * sizeof(amfs_nfsx_mnt)); - nx->nx_mp = 0; + nx->nx_mp = NULL; { - char *mp = 0; - char *xinfo = 0; + char *mp = NULL; + char *xinfo = NULL; char *fs = mf->mf_fo->opt_fs; - char *rfs = 0; + char *rfs = NULL; for (i = 0; i < nx->nx_c; i++) { char *path = ivec[i + 1]; rfs = str3cat(rfs, pref, "/", path); @@ -251,18 +250,14 @@ amfs_nfsx_init(mntfs *mf) /* propagate the on_autofs flag */ nx->nx_v[i].n_mnt->mf_flags |= mf->mf_flags & MFF_ON_AUTOFS; } - if (rfs) - XFREE(rfs); - if (mp) - XFREE(mp); - if (xinfo) - XFREE(xinfo); + XFREE(rfs); + XFREE(mp); + XFREE(xinfo); } XFREE(ivec); errexit: - if (info) - XFREE(info); + XFREE(info); if (error) return error; } @@ -503,7 +498,7 @@ amfs_nfsx_umount(am_node *am, mntfs *mf) } } free_mntfs(m); - n->n_mnt = 0; + n->n_mnt = NULL; n->n_error = -1; } } diff --git a/contrib/amd/amd/amfs_program.c b/contrib/amd/amd/amfs_program.c index 843e805..6bf003f 100644 --- a/contrib/amd/amd/amfs_program.c +++ b/contrib/amd/amd/amfs_program.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -105,7 +101,7 @@ amfs_program_match(am_opts *fo) } prog = strchr(fo->opt_mount, ' '); - return strdup(prog ? prog + 1 : fo->opt_mount); + return xstrdup(prog ? prog + 1 : fo->opt_mount); } @@ -116,11 +112,14 @@ amfs_program_init(mntfs *mf) if (mf->mf_private != NULL) return 0; + if (mf->mf_fo == NULL) + return 0; + /* save unmount (or umount) command */ if (mf->mf_fo->opt_unmount != NULL) - mf->mf_private = (opaque_t) strdup(mf->mf_fo->opt_unmount); + mf->mf_private = (opaque_t) xstrdup(mf->mf_fo->opt_unmount); else - mf->mf_private = (opaque_t) strdup(mf->mf_fo->opt_umount); + mf->mf_private = (opaque_t) xstrdup(mf->mf_fo->opt_umount); mf->mf_prfree = (void (*)(opaque_t)) free; return 0; @@ -136,9 +135,7 @@ amfs_program_exec(char *info) /* * Split copy of command info string */ - info = strdup(info); - if (info == 0) - return ENOBUFS; + info = xstrdup(info); xivec = strsplit(info, ' ', '\''); /* @@ -147,10 +144,12 @@ amfs_program_exec(char *info) (void) fclose(stdout); if (!logfp) logfp = stderr; /* initialize before possible first use */ - (void) dup(fileno(logfp)); + if (dup(fileno(logfp)) == -1) + goto out; if (fileno(logfp) != fileno(stderr)) { (void) fclose(stderr); - (void) dup(fileno(logfp)); + if (dup(fileno(logfp)) == -1) + goto out; } /* @@ -170,13 +169,16 @@ amfs_program_exec(char *info) plog(XLOG_USER, "1st/2nd args missing to (un)mount program"); } else { (void) execv(xivec[0], xivec + 1); + error = errno; + plog(XLOG_ERROR, "exec failed: %m"); + errno = error; } +out: /* * Save error number */ error = errno; - plog(XLOG_ERROR, "exec failed: %m"); /* * Free allocate memory diff --git a/contrib/amd/amd/amfs_root.c b/contrib/amd/amd/amfs_root.c index 243267e..f06c43c 100644 --- a/contrib/amd/amd/amfs_root.c +++ b/contrib/amd/amd/amfs_root.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -92,7 +88,7 @@ static int amfs_root_mount(am_node *mp, mntfs *mf) { mf->mf_mount = strealloc(mf->mf_mount, pid_fsname); - mf->mf_private = (opaque_t) mapc_find(mf->mf_info, "", NULL); + mf->mf_private = (opaque_t) mapc_find(mf->mf_info, "", NULL, NULL); mf->mf_prfree = mapc_free; return 0; diff --git a/contrib/amd/amd/amfs_toplvl.c b/contrib/amd/amd/amfs_toplvl.c index 1b968f1..1b14315 100644 --- a/contrib/amd/amd/amfs_toplvl.c +++ b/contrib/amd/amd/amfs_toplvl.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -148,7 +144,7 @@ amfs_toplvl_init(mntfs *mf) { int error = 0; -#if defined(MNT2_GEN_OPT_FORCE) || defined(MNT2_GEN_OPT_DETACH) +#if (defined(MNT2_GEN_OPT_FORCE) || defined(MNT2_GEN_OPT_DETACH)) && (defined(HAVE_UVMOUNT) || defined(HAVE_UMOUNT2)) if (gopt.flags & CFM_FORCED_UNMOUNTS) { plog(XLOG_INFO, "amfs_toplvl_init: trying forced/lazy unmount of %s", mf->mf_mount); @@ -158,7 +154,7 @@ amfs_toplvl_init(mntfs *mf) else dlog("amfs_toplvl_init: forced/lazy unmount succeeded"); } -#endif /* MNT2_GEN_OPT_FORCE || MNT2_GEN_OPT_DETACH */ +#endif /* (MNT2_GEN_OPT_FORCE || MNT2_GEN_OPT_DETACH) && (HAVE_UVMOUNT || HAVE_UMOUNT2) */ return error; } @@ -227,6 +223,11 @@ amfs_toplvl_mount(am_node *mp, mntfs *mf) xstrlcat(opts, toplvl_opts, sizeof(opts)); } +#ifdef MNTTAB_OPT_NOLOCK + xstrlcat(opts, ",", sizeof(opts)); + xstrlcat(opts, MNTTAB_OPT_NOLOCK, sizeof(opts)); +#endif /* MNTTAB_OPT_NOLOCK */ + #ifdef MNTTAB_OPT_NOAC if (gopt.auto_attrcache == 0) { xstrlcat(opts, ",", sizeof(opts)); diff --git a/contrib/amd/amd/amfs_union.c b/contrib/amd/amd/amfs_union.c index 6adb5b0..9f37a1b 100644 --- a/contrib/amd/amd/amfs_union.c +++ b/contrib/amd/amd/amfs_union.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -95,7 +91,7 @@ create_amfs_union_node(char *dir, opaque_t arg) am_node *am; am = amfs_generic_lookup_child(arg, dir, &error, VLOOK_CREATE); if (am && error < 0) - am = amfs_generic_mount_child(am, &error); + (void)amfs_generic_mount_child(am, &error); if (error > 0) { errno = error; /* XXX */ plog(XLOG_ERROR, "unionfs: could not mount %s: %m", dir); @@ -121,9 +117,9 @@ amfs_union_mounted(mntfs *mf) for (mp = get_first_exported_ap(&index); mp; mp = get_next_exported_ap(&index)) { - if (mp->am_mnt == mf) { + if (mp->am_al->al_mnt == mf) { /* return value from create_amfs_union_node is ignored by mapc_keyiter */ - (void) mapc_keyiter((mnt_map *) mp->am_mnt->mf_private, + (void) mapc_keyiter((mnt_map *) mp->am_al->al_mnt->mf_private, create_amfs_union_node, mp); break; diff --git a/contrib/amd/amd/amq_subr.c b/contrib/amd/amd/amq_subr.c index 79ecafc..ba85c68 100644 --- a/contrib/amd/amd/amq_subr.c +++ b/contrib/amd/amd/amq_subr.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -80,16 +76,68 @@ amqproc_mnttree_1_svc(voidp argp, struct svc_req *rqstp) /* * Unmount a single node */ -voidp +int * amqproc_umnt_1_svc(voidp argp, struct svc_req *rqstp) { - static char res; + static int res = AMQ_UMNT_OK; am_node *mp = find_ap(*(char **) argp); if (mp) forcibly_timeout_mp(mp); - return (voidp) &res; + return &res; +} + + +/* + * Synchronously unmount a single node - parent side. + */ +int * +amqproc_sync_umnt_1_svc_parent(voidp argp, struct svc_req *rqstp) +{ + amqproc_umnt_1_svc(argp, rqstp); + return NULL; +} + + +/* + * Synchronously unmount a single node - child side. + */ +amq_sync_umnt * +amqproc_sync_umnt_1_svc_child(voidp argp, struct svc_req *rqstp) +{ + static amq_sync_umnt rv; + amq_sync_umnt buf; + ssize_t n; + + am_node *mp = find_ap(*(char **) argp); + + memset(&rv, 0, sizeof(rv)); + rv.au_etype = AMQ_UMNT_READ; + if (mp && mp->am_fd[0] >= 0) { + n = read(mp->am_fd[0], &buf, sizeof(buf)); + if (n == sizeof(buf)) + rv = buf; + } + return &rv; +} + + +/* + * Synchronously unmount a single node - use if we can't fork (asynchronous). + */ +amq_sync_umnt * +amqproc_sync_umnt_1_svc_async(voidp argp, struct svc_req *rqstp) +{ + static amq_sync_umnt rv; + + memset(&rv, 0, sizeof(rv)); + rv.au_etype = AMQ_UMNT_FORK; + rv.au_errno = errno; + + amqproc_umnt_1_svc(argp, rqstp); + + return &rv; } @@ -170,6 +218,12 @@ amqproc_getmntfs_1_svc(voidp argp, struct svc_req *rqstp) return (amq_mount_info_list *) ((void *)&mfhead); /* XXX */ } +extern qelem map_list_head; +amq_map_info_list * +amqproc_getmapinfo_1_svc(voidp argp, struct svc_req *rqstp) +{ + return (amq_map_info_list *) ((void *)&map_list_head); /* XXX */ +} amq_string * amqproc_getvers_1_svc(voidp argp, struct svc_req *rqstp) @@ -218,11 +272,11 @@ amqproc_pawd_1_svc(voidp argp, struct svc_req *rqstp) for (mp = get_first_exported_ap(&index); mp; mp = get_next_exported_ap(&index)) { - if (STREQ(mp->am_mnt->mf_ops->fs_type, "toplvl")) + if (STREQ(mp->am_al->al_mnt->mf_ops->fs_type, "toplvl")) continue; - if (STREQ(mp->am_mnt->mf_ops->fs_type, "auto")) + if (STREQ(mp->am_al->al_mnt->mf_ops->fs_type, "auto")) continue; - mountpoint = (mp->am_link ? mp->am_link : mp->am_mnt->mf_mount); + mountpoint = (mp->am_link ? mp->am_link : mp->am_al->al_mnt->mf_mount); len = strlen(mountpoint); if (len == 0) continue; @@ -277,16 +331,16 @@ xdr_amq_mount_tree_node(XDR *xdrs, amq_mount_tree *objp) am_node *mp = (am_node *) objp; long mtime; - if (!xdr_amq_string(xdrs, &mp->am_mnt->mf_info)) { + if (!xdr_amq_string(xdrs, &mp->am_al->al_mnt->mf_info)) { return (FALSE); } if (!xdr_amq_string(xdrs, &mp->am_path)) { return (FALSE); } - if (!xdr_amq_string(xdrs, mp->am_link ? &mp->am_link : &mp->am_mnt->mf_mount)) { + if (!xdr_amq_string(xdrs, mp->am_link ? &mp->am_link : &mp->am_al->al_mnt->mf_mount)) { return (FALSE); } - if (!xdr_amq_string(xdrs, &mp->am_mnt->mf_ops->fs_type)) { + if (!xdr_amq_string(xdrs, &mp->am_al->al_mnt->mf_ops->fs_type)) { return (FALSE); } mtime = mp->am_stats.s_mtime; @@ -412,16 +466,15 @@ xdr_amq_mount_tree_list(XDR *xdrs, amq_mount_tree_list *objp) } - -/* - * Compute length of list - */ bool_t xdr_amq_mount_info_qelem(XDR *xdrs, qelem *qhead) { mntfs *mf; u_int len = 0; + /* + * Compute length of list + */ for (mf = AM_LAST(mntfs, qhead); mf != HEAD(mntfs, qhead); mf = PREV(mntfs, mf)) { if (!(mf->mf_fsflags & FS_AMQINFO)) continue; @@ -468,6 +521,70 @@ xdr_amq_mount_info_qelem(XDR *xdrs, qelem *qhead) return (TRUE); } +bool_t +xdr_amq_map_info_qelem(XDR *xdrs, qelem *qhead) +{ + mnt_map *m; + u_int len = 0; + int x; + char *n; + + /* + * Compute length of list + */ + ITER(m, mnt_map, qhead) { + len++; + } + + if (!xdr_u_int(xdrs, &len)) + return (FALSE); + + /* + * Send individual data items + */ + ITER(m, mnt_map, qhead) { + if (!xdr_amq_string(xdrs, &m->map_name)) { + return (FALSE); + } + + n = m->wildcard ? m->wildcard : ""; + if (!xdr_amq_string(xdrs, &n)) { + return (FALSE); + } + + if (!xdr_long(xdrs, (long *) &m->modify)) { + return (FALSE); + } + + x = m->flags; + if (!xdr_int(xdrs, &x)) { + return (FALSE); + } + + x = m->nentries; + if (!xdr_int(xdrs, &x)) { + return (FALSE); + } + + x = m->reloads; + if (!xdr_int(xdrs, &x)) { + return (FALSE); + } + + if (!xdr_int(xdrs, &m->refc)) { + return (FALSE); + } + + if (m->isup) + x = (*m->isup)(m, m->map_name); + else + x = -1; + if (!xdr_int(xdrs, &x)) { + return (FALSE); + } + } + return (TRUE); +} bool_t xdr_pri_free(XDRPROC_T_TYPE xdr_args, caddr_t args_ptr) diff --git a/contrib/amd/amd/amq_svc.c b/contrib/amd/amd/amq_svc.c index 6fadb16..1f2b3d6 100644 --- a/contrib/amd/amd/amq_svc.c +++ b/contrib/amd/amd/amq_svc.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -57,7 +53,7 @@ typedef char *(*amqsvcproc_t)(voidp, struct svc_req *); * in libwrap, while others don't: so I need to know precisely iff * to define these two severity variables. */ -int allow_severity=0, deny_severity=0; +int allow_severity=0, deny_severity=0, rfc931_timeout=0; # endif /* NEED_LIBWRAP_SEVERITY_VARIABLES */ /* @@ -65,49 +61,88 @@ int allow_severity=0, deny_severity=0; * Returns: 1=allowed, 0=denied. */ static int -amqsvc_is_client_allowed(const struct sockaddr_in *addr, char *remote) +amqsvc_is_client_allowed(const struct sockaddr_in *addr) { - struct hostent *h; - char *name = NULL, **ad; - int ret = 0; /* default is 0==denied */ - - /* Check IP address */ - if (hosts_ctl(AMD_SERVICE_NAME, "", remote, "")) { - ret = 1; - goto out; + struct request_info req; + + request_init(&req, RQ_DAEMON, AMD_SERVICE_NAME, RQ_CLIENT_SIN, addr, 0); + sock_methods(&req); + + if (hosts_access(&req)) + return 1; + + return 0; +} +#endif /* defined(HAVE_TCPD_H) && defined(HAVE_LIBWRAP) */ + + +/* + * Prepare the parent and child: + * 1) Setup IPC pipe. + * 2) Set signal masks. + * 3) Fork by calling background() so that NumChildren is updated. + */ +static int +amq_fork(opaque_t argp) +{ +#ifdef HAVE_SIGACTION + sigset_t new, mask; +#else /* not HAVE_SIGACTION */ + int mask; +#endif /* not HAVE_SIGACTION */ + am_node *mp; + pid_t pid; + + mp = find_ap(*(char **) argp); + if (mp == NULL) { + errno = 0; + return -1; } - /* Get address */ - if (!(h = gethostbyaddr((const char *)&(addr->sin_addr), - sizeof(addr->sin_addr), - AF_INET))) - goto out; - if (!(name = strdup(h->h_name))) - goto out; - /* Paranoia check */ - if (!(h = gethostbyname(name))) - goto out; - for (ad = h->h_addr_list; *ad; ad++) - if (!memcmp(*ad, &(addr->sin_addr), h->h_length)) - break; - if (!*ad) - goto out; - if (hosts_ctl(AMD_SERVICE_NAME, "", h->h_name, "")) { - return 1; - goto out; + + if (pipe(mp->am_fd) == -1) { + mp->am_fd[0] = -1; + mp->am_fd[1] = -1; + return -1; } - /* Check aliases */ - for (ad = h->h_aliases; *ad; ad++) - if (hosts_ctl(AMD_SERVICE_NAME, "", *ad, "")) { - return 1; - goto out; - } - out: - if (name) - XFREE(name); - return ret; +#ifdef HAVE_SIGACTION + sigemptyset(&new); /* initialize signal set we wish to block */ + sigaddset(&new, SIGHUP); + sigaddset(&new, SIGINT); + sigaddset(&new, SIGQUIT); + sigaddset(&new, SIGCHLD); + sigprocmask(SIG_BLOCK, &new, &mask); +#else /* not HAVE_SIGACTION */ + mask = + sigmask(SIGHUP) | + sigmask(SIGINT) | + sigmask(SIGQUIT) | + sigmask(SIGCHLD); + mask = sigblock(mask); +#endif /* not HAVE_SIGACTION */ + + switch ((pid = background())) { + case -1: /* error */ + dlog("amq_fork failed"); + return -1; + + case 0: /* child */ + close(mp->am_fd[1]); /* close output end of pipe */ + mp->am_fd[1] = -1; + return 0; + + default: /* parent */ + close(mp->am_fd[0]); /* close input end of pipe */ + mp->am_fd[0] = -1; + +#ifdef HAVE_SIGACTION + sigprocmask(SIG_SETMASK, &mask, NULL); +#else /* not HAVE_SIGACTION */ + sigsetmask(mask); +#endif /* not HAVE_SIGACTION */ + return pid; + } } -#endif /* defined(HAVE_TCPD_H) && defined(HAVE_LIBWRAP) */ void @@ -121,13 +156,16 @@ amq_program_1(struct svc_req *rqstp, SVCXPRT *transp) char *result; xdrproc_t xdr_argument, xdr_result; amqsvcproc_t local; + amqsvcproc_t child; + amqsvcproc_t parent; + pid_t pid; #if defined(HAVE_TCPD_H) && defined(HAVE_LIBWRAP) if (gopt.flags & CFM_USE_TCPWRAPPERS) { struct sockaddr_in *remote_addr = svc_getcaller(rqstp->rq_xprt); char *remote_hostname = inet_ntoa(remote_addr->sin_addr); - if (!amqsvc_is_client_allowed(remote_addr, remote_hostname)) { + if (!amqsvc_is_client_allowed(remote_addr)) { plog(XLOG_WARNING, "Amd denied remote amq service to %s", remote_hostname); svcerr_auth(transp, AUTH_FAILED); return; @@ -137,6 +175,10 @@ amq_program_1(struct svc_req *rqstp, SVCXPRT *transp) } #endif /* defined(HAVE_TCPD_H) && defined(HAVE_LIBWRAP) */ + local = NULL; + child = NULL; + parent = NULL; + switch (rqstp->rq_proc) { case AMQPROC_NULL: @@ -199,6 +241,21 @@ amq_program_1(struct svc_req *rqstp, SVCXPRT *transp) local = (amqsvcproc_t) amqproc_pawd_1_svc; break; + case AMQPROC_SYNC_UMNT: + xdr_argument = (xdrproc_t) xdr_amq_string; + xdr_result = (xdrproc_t) xdr_amq_sync_umnt; + parent = (amqsvcproc_t) amqproc_sync_umnt_1_svc_parent; + child = (amqsvcproc_t) amqproc_sync_umnt_1_svc_child; + /* used if fork fails */ + local = (amqsvcproc_t) amqproc_sync_umnt_1_svc_async; + break; + + case AMQPROC_GETMAPINFO: + xdr_argument = (xdrproc_t) xdr_void; + xdr_result = (xdrproc_t) xdr_amq_map_info_qelem; + local = (amqsvcproc_t) amqproc_getmapinfo_1_svc; + break; + default: svcerr_noproc(transp); return; @@ -212,7 +269,28 @@ amq_program_1(struct svc_req *rqstp, SVCXPRT *transp) return; } - result = (*local) (&argument, rqstp); + pid = -1; + result = NULL; + + if (child) { + switch ((pid = amq_fork(&argument))) { + case -1: /* error */ + break; + + case 0: /* child */ + result = (*child) (&argument, rqstp); + local = NULL; + break; + + default: /* parent */ + result = (*parent) (&argument, rqstp); + local = NULL; + break; + } + } + + if (local) + result = (*local) (&argument, rqstp); if (result != NULL && !svc_sendreply(transp, (XDRPROC_T_TYPE) xdr_result, @@ -226,4 +304,7 @@ amq_program_1(struct svc_req *rqstp, SVCXPRT *transp) plog(XLOG_FATAL, "unable to free rpc arguments in amqprog_1"); going_down(1); } + + if (pid == 0) + exit(0); /* the child is done! */ } diff --git a/contrib/amd/amd/autil.c b/contrib/amd/amd/autil.c index a5ecd6d..cd9514d 100644 --- a/contrib/amd/amd/autil.c +++ b/contrib/amd/amd/autil.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -160,16 +156,23 @@ valid_key(char *key) void forcibly_timeout_mp(am_node *mp) { - mntfs *mf = mp->am_mnt; + mntfs *mf = mp->am_al->al_mnt; /* * Arrange to timeout this node */ if (mf && ((mp->am_flags & AMF_ROOT) || (mf->mf_flags & (MFF_MOUNTING | MFF_UNMOUNTING)))) { + /* + * We aren't going to schedule a timeout, so we need to notify the + * child here unless we are already unmounting, in which case that + * process is responsible for notifying the child. + */ if (mf->mf_flags & MFF_UNMOUNTING) plog(XLOG_WARNING, "node %s is currently being unmounted, ignoring timeout request", mp->am_path); - else + else { plog(XLOG_WARNING, "ignoring timeout request for active node %s", mp->am_path); + notify_child(mp, AMQ_UMNT_FAILED, EBUSY, 0); + } } else { plog(XLOG_INFO, "\"%s\" forcibly timed out", mp->am_path); mp->am_flags &= ~AMF_NOTIMEOUT; @@ -207,24 +210,11 @@ mf_mounted(mntfs *mf, bool_t call_free_opts) mf->mf_ops->mounted(mf); /* - * Be careful when calling free_ops and XFREE here. Some pseudo file - * systems like nfsx call this function (mf_mounted), even though it - * would be called by the lower-level amd file system functions. nfsx - * needs to call this function because of the other actions it takes. - * So we pass a boolean from the caller (yes, not so clean workaround) - * to determine if we should free or not. If we're not freeing (often - * because we're called from a callback function), then just to be sure, - * we'll zero out the am_opts structure and set the pointer to NULL. - * The parent mntfs node owns this memory and is going to free it with a - * call to mf_mounted(mntfs,TRUE) (see comment in the am_mounted code). + * We used to free the mf_mo (options) here, however they're now stored + * and managed with the mntfs and do not need to be free'd here (this ensures + * that we use the same options to monitor/unmount the system as we used + * to mount it). */ - if (call_free_opts) { - free_opts(mf->mf_fo); /* this free is needed to prevent leaks */ - XFREE(mf->mf_fo); /* (also this one) */ - } else { - memset(mf->mf_fo, 0, sizeof(am_opts)); - mf->mf_fo = NULL; - } } if (mf->mf_flags & MFF_RESTART) { @@ -249,7 +239,7 @@ void am_mounted(am_node *mp) { int notimeout = 0; /* assume normal timeouts initially */ - mntfs *mf = mp->am_mnt; + mntfs *mf = mp->am_al->al_mnt; /* * This is the parent mntfs which does the mf->mf_fo (am_opts type), and @@ -266,7 +256,7 @@ am_mounted(am_node *mp) /* * Patch up path for direct mounts */ - if (mp->am_parent && mp->am_parent->am_mnt->mf_fsflags & FS_DIRECT) + if (mp->am_parent && mp->am_parent->am_al->al_mnt->mf_fsflags & FS_DIRECT) mp->am_path = str3cat(mp->am_path, mp->am_parent->am_path, "/", "."); /* @@ -277,6 +267,7 @@ am_mounted(am_node *mp) if (mf->mf_fsflags & FS_NOTIMEOUT) notimeout = 1; /* next, alter that decision by map flags */ + if (mf->mf_mopts) { mntent_t mnt; mnt.mnt_opts = mf->mf_mopts; @@ -321,7 +312,7 @@ am_mounted(am_node *mp) /* * Update mtime of parent node (copying "struct nfstime" in '=' below) */ - if (mp->am_parent && mp->am_parent->am_mnt) + if (mp->am_parent && mp->am_parent->am_al->al_mnt) mp->am_parent->am_fattr.na_mtime = mp->am_fattr.na_mtime; /* @@ -360,21 +351,27 @@ assign_error_mntfs(am_node *mp) { int error; dlog("assign_error_mntfs"); + + if (mp->am_al == NULL) { + plog(XLOG_ERROR, "%s: Can't assign error", __func__); + return; + } /* * Save the old error code */ error = mp->am_error; if (error <= 0) - error = mp->am_mnt->mf_error; + error = mp->am_al->al_mnt->mf_error; /* * Allocate a new error reference */ - mp->am_mnt = new_mntfs(); + free_loc(mp->am_al); + mp->am_al = new_loc(); /* * Put back the error code */ - mp->am_mnt->mf_error = error; - mp->am_mnt->mf_flags |= MFF_ERROR; + mp->am_al->al_mnt->mf_error = error; + mp->am_al->al_mnt->mf_flags |= MFF_ERROR; /* * Zero the error in the mount point */ @@ -397,7 +394,8 @@ amfs_mkcacheref(mntfs *mf) cache = "none"; mf->mf_private = (opaque_t) mapc_find(mf->mf_info, cache, - (mf->mf_fo ? mf->mf_fo->opt_maptype : NULL)); + (mf->mf_fo ? mf->mf_fo->opt_maptype : NULL), + mf->mf_mount); mf->mf_prfree = mapc_free; } @@ -418,7 +416,7 @@ next_nonerror_node(am_node *xp) * containing hung automounts. */ while (xp && - (!(mf = xp->am_mnt) || /* No mounted filesystem */ + (!(mf = xp->am_al->al_mnt) || /* No mounted filesystem */ mf->mf_error != 0 || /* There was a mntfs error */ xp->am_error != 0 || /* There was a mount error */ !(mf->mf_flags & MFF_MOUNTED) || /* The fs is not mounted */ @@ -453,8 +451,9 @@ amfs_mount(am_node *mp, mntfs *mf, char *opts) mntent_t mnt; MTYPE_TYPE type; int forced_unmount = 0; /* are we using forced unmounts? */ + u_long nfs_version = get_nfs_dispatcher_version(nfs_dispatcher); - memset((voidp) &mnt, 0, sizeof(mnt)); + memset(&mnt, 0, sizeof(mnt)); mnt.mnt_dir = dir; mnt.mnt_fsname = pid_fsname; mnt.mnt_opts = opts; @@ -525,8 +524,7 @@ amfs_mount(am_node *mp, mntfs *mf, char *opts) again: if (!(mf->mf_flags & MFF_IS_AUTOFS)) { nfs_args_t nfs_args; - am_nfs_fh *fhp; - am_nfs_handle_t anh; + am_nfs_handle_t *fhp, anh; #ifndef HAVE_TRANSPORT_TYPE_TLI u_short port; struct sockaddr_in sin; @@ -535,7 +533,7 @@ again: /* * get fhandle of remote path for automount point */ - fhp = get_root_nfs_fh(dir); + fhp = get_root_nfs_fh(dir, &anh); if (!fhp) { plog(XLOG_FATAL, "Can't find root file handle for %s", dir); return EINVAL; @@ -545,7 +543,7 @@ again: /* * Create sockaddr to point to the local machine. */ - memset((voidp) &sin, 0, sizeof(sin)); + memset(&sin, 0, sizeof(sin)); /* as per POSIX, sin_len need not be set (used internally by kernel) */ sin.sin_family = AF_INET; sin.sin_addr = myipaddr; @@ -559,16 +557,15 @@ again: #endif /* not HAVE_TRANSPORT_TYPE_TLI */ /* setup the many fields and flags within nfs_args */ - memmove(&anh.v2, fhp, sizeof(*fhp)); #ifdef HAVE_TRANSPORT_TYPE_TLI compute_nfs_args(&nfs_args, &mnt, genflags, nfsncp, NULL, /* remote host IP addr is set below */ - NFS_VERSION, /* version 2 */ + nfs_version, "udp", - &anh, + fhp, fs_hostname, pid_fsname); /* @@ -587,9 +584,9 @@ again: genflags, NULL, &sin, - NFS_VERSION, /* version 2 */ + nfs_version, "udp", - &anh, + fhp, fs_hostname, pid_fsname); #endif /* not HAVE_TRANSPORT_TYPE_TLI */ @@ -656,10 +653,17 @@ again: void am_unmounted(am_node *mp) { - mntfs *mf = mp->am_mnt; + mntfs *mf = mp->am_al->al_mnt; - if (!foreground) /* firewall - should never happen */ + if (!foreground) { /* firewall - should never happen */ + /* + * This is a coding error. Make sure we hear about it! + */ + plog(XLOG_FATAL, "am_unmounted: illegal use in background (%s)", + mp->am_name); + notify_child(mp, AMQ_UMNT_OK, 0, 0); /* XXX - be safe? */ return; + } /* * Do unmounted callback @@ -707,26 +711,37 @@ am_unmounted(am_node *mp) /* * Update mtime of parent node */ - if (mp->am_parent && mp->am_parent->am_mnt) + if (mp->am_parent && mp->am_parent->am_al->al_mnt) clocktime(&mp->am_parent->am_fattr.na_mtime); if (mp->am_parent && (mp->am_flags & AMF_REMOUNT)) { - char *fname = strdup(mp->am_name); + char *fname = xstrdup(mp->am_name); am_node *mp_parent = mp->am_parent; - mntfs *mf_parent = mp_parent->am_mnt; + mntfs *mf_parent = mp_parent->am_al->al_mnt; + am_node fake_mp; int error = 0; + /* + * We need to use notify_child() after free_map(), so save enough + * to do that in fake_mp. + */ + fake_mp.am_fd[1] = mp->am_fd[1]; + mp->am_fd[1] = -1; + free_map(mp); plog(XLOG_INFO, "am_unmounted: remounting %s", fname); mp = mf_parent->mf_ops->lookup_child(mp_parent, fname, &error, VLOOK_CREATE); if (mp && error < 0) - mp = mf_parent->mf_ops->mount_child(mp, &error); + (void)mf_parent->mf_ops->mount_child(mp, &error); if (error > 0) { errno = error; plog(XLOG_ERROR, "am_unmounted: could not remount %s: %m", fname); + notify_child(&fake_mp, AMQ_UMNT_OK, 0, 0); + } else { + notify_child(&fake_mp, AMQ_UMNT_FAILED, EBUSY, 0); } XFREE(fname); - } else + } else { /* * We have a race here. * If this node has a pending mount and amd is going down (unmounting @@ -734,10 +749,12 @@ am_unmounted(am_node *mp) * while a struct continuation still has a reference to it. So when * amfs_cont is called, it blows up. * We avoid the race by refusing to free any nodes that have - * pending mounts (defined as having a non-NULL am_mfarray). + * pending mounts (defined as having a non-NULL am_alarray). */ - if (!mp->am_mfarray) + notify_child(mp, AMQ_UMNT_OK, 0, 0); /* do this regardless */ + if (!mp->am_alarray) free_map(mp); + } } diff --git a/contrib/amd/amd/clock.c b/contrib/amd/amd/clock.c index 0caa7df..4c6aa54 100644 --- a/contrib/amd/amd/clock.c +++ b/contrib/amd/amd/clock.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/contrib/amd/amd/conf.c b/contrib/amd/amd/conf.c index 2fc587b..57e1b9d 100644 --- a/contrib/amd/amd/conf.c +++ b/contrib/amd/amd/conf.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -77,6 +73,7 @@ struct _func_map { static int gopt_arch(const char *val); static int gopt_auto_attrcache(const char *val); static int gopt_auto_dir(const char *val); +static int gopt_auto_nfs_version(const char *val); static int gopt_autofs_use_lofs(const char *val); static int gopt_browsable_dirs(const char *val); static int gopt_cache_duration(const char *val); @@ -120,6 +117,7 @@ static int gopt_nfs_retry_interval_udp(const char *val); static int gopt_nfs_retry_interval_tcp(const char *val); static int gopt_nfs_retry_interval_toplvl(const char *val); static int gopt_nfs_vers(const char *val); +static int gopt_nfs_vers_ping(const char *val); static int gopt_nis_domain(const char *val); static int gopt_normalize_hostnames(const char *val); static int gopt_normalize_slashes(const char *val); @@ -132,6 +130,7 @@ static int gopt_restart_mounts(const char *val); static int gopt_search_path(const char *val); static int gopt_selectors_in_defaults(const char *val); static int gopt_show_statfs_entries(const char *val); +static int gopt_sun_map_syntax(const char *val); static int gopt_truncate_log(const char *val); static int gopt_unmount_on_exit(const char *val); static int gopt_use_tcpwrappers(const char *val); @@ -146,6 +145,7 @@ static int ropt_map_options(const char *val, cf_map_t *cfm); static int ropt_map_type(const char *val, cf_map_t *cfm); static int ropt_mount_type(const char *val, cf_map_t *cfm); static int ropt_search_path(const char *val, cf_map_t *cfm); +static int ropt_sun_map_syntax(const char *val, cf_map_t *cfm); static int ropt_tag(const char *val, cf_map_t *cfm); static void init_cf_map(cf_map_t *cfm); @@ -159,6 +159,7 @@ static struct _func_map glob_functable[] = { {"arch", gopt_arch}, {"auto_attrcache", gopt_auto_attrcache}, {"auto_dir", gopt_auto_dir}, + {"auto_nfs_version", gopt_auto_nfs_version}, {"autofs_use_lofs", gopt_autofs_use_lofs}, {"browsable_dirs", gopt_browsable_dirs}, {"cache_duration", gopt_cache_duration}, @@ -202,6 +203,7 @@ static struct _func_map glob_functable[] = { {"nfs_retry_interval_tcp", gopt_nfs_retry_interval_tcp}, {"nfs_retry_interval_toplvl", gopt_nfs_retry_interval_toplvl}, {"nfs_vers", gopt_nfs_vers}, + {"nfs_vers_ping", gopt_nfs_vers_ping}, {"nis_domain", gopt_nis_domain}, {"normalize_hostnames", gopt_normalize_hostnames}, {"normalize_slashes", gopt_normalize_slashes}, @@ -215,6 +217,7 @@ static struct _func_map glob_functable[] = { {"selectors_on_default", gopt_selectors_in_defaults}, {"selectors_in_defaults", gopt_selectors_in_defaults}, {"show_statfs_entries", gopt_show_statfs_entries}, + {"sun_map_syntax", gopt_sun_map_syntax}, {"truncate_log", gopt_truncate_log}, {"unmount_on_exit", gopt_unmount_on_exit}, {"use_tcpwrappers", gopt_use_tcpwrappers}, @@ -255,12 +258,14 @@ init_cf_map(cf_map_t *cfm) cfm->cfm_search_path = gopt.search_path; /* - * Initialize flags that are common both to [global] and a local map. + * Initialize flags that are common both to [global] and a local map + * (that is, they could be inherited from the global section). */ cfm->cfm_flags = gopt.flags & (CFM_BROWSABLE_DIRS | CFM_BROWSABLE_DIRS_FULL | CFM_MOUNT_TYPE_AUTOFS | - CFM_SELECTORS_IN_DEFAULTS); + CFM_SELECTORS_IN_DEFAULTS | + CFM_SUN_MAP_SYNTAX ); } @@ -366,7 +371,7 @@ process_global_option(const char *key, const char *val) static int gopt_arch(const char *val) { - gopt.arch = strdup((char *)val); + gopt.arch = xstrdup(val); return 0; } @@ -386,10 +391,23 @@ gopt_auto_attrcache(const char *val) static int gopt_auto_dir(const char *val) { - gopt.auto_dir = strdup((char *)val); + gopt.auto_dir = xstrdup(val); return 0; } +static int +gopt_auto_nfs_version(const char *val) +{ + if (strcmp(val, "2") == 0) + nfs_dispatcher = nfs_program_2; + else if (strcmp(val, "3") == 0) + nfs_dispatcher = nfs_program_3; + else { + fprintf(stderr, "conf: bad auto nfs version : \"%s\"\n", val); + return 1; + } + return 0; +} static int gopt_autofs_use_lofs(const char *val) @@ -439,7 +457,7 @@ gopt_cache_duration(const char *val) static int gopt_cluster(const char *val) { - gopt.cluster = strdup((char *)val); + gopt.cluster = xstrdup(val); return 0; } @@ -447,7 +465,7 @@ gopt_cluster(const char *val) static int gopt_debug_mtab_file(const char *val) { - gopt.debug_mtab_file = strdup((char*)val); + gopt.debug_mtab_file = xstrdup(val); return 0; } @@ -547,7 +565,7 @@ gopt_forced_unmounts(const char *val) static int gopt_full_os(const char *val) { - gopt.op_sys_full = strdup((char *)val); + gopt.op_sys_full = xstrdup(val); return 0; } @@ -572,7 +590,7 @@ static int gopt_hesiod_base(const char *val) { #ifdef HAVE_MAP_HESIOD - gopt.hesiod_base = strdup((char *)val); + gopt.hesiod_base = xstrdup(val); return 0; #else /* not HAVE_MAP_HESIOD */ fprintf(stderr, "conf: hesiod_base option ignored. No Hesiod support available.\n"); @@ -584,7 +602,7 @@ gopt_hesiod_base(const char *val) static int gopt_karch(const char *val) { - gopt.karch = strdup((char *)val); + gopt.karch = xstrdup(val); return 0; } @@ -592,7 +610,7 @@ gopt_karch(const char *val) static int gopt_pid_file(const char *val) { - gopt.pid_file = strdup((char *)val); + gopt.pid_file = xstrdup(val); return 0; } @@ -600,7 +618,7 @@ gopt_pid_file(const char *val) static int gopt_local_domain(const char *val) { - gopt.sub_domain = strdup((char *)val); + gopt.sub_domain = xstrdup(val); return 0; } @@ -608,7 +626,7 @@ gopt_local_domain(const char *val) static int gopt_localhost_address(const char *val) { - gopt.localhost_address = strdup((char *)val); + gopt.localhost_address = xstrdup(val); return 0; } @@ -617,7 +635,7 @@ static int gopt_ldap_base(const char *val) { #ifdef HAVE_MAP_LDAP - gopt.ldap_base = strdup((char *)val); + gopt.ldap_base = xstrdup(val); return 0; #else /* not HAVE_MAP_LDAP */ fprintf(stderr, "conf: ldap_base option ignored. No LDAP support available.\n"); @@ -668,7 +686,7 @@ static int gopt_ldap_hostports(const char *val) { #ifdef HAVE_MAP_LDAP - gopt.ldap_hostports = strdup((char *)val); + gopt.ldap_hostports = xstrdup(val); return 0; #else /* not HAVE_MAP_LDAP */ fprintf(stderr, "conf: ldap_hostports option ignored. No LDAP support available.\n"); @@ -719,7 +737,7 @@ gopt_ldap_proto_version(const char *val) static int gopt_log_file(const char *val) { - gopt.logfile = strdup((char *)val); + gopt.logfile = xstrdup(val); return 0; } @@ -735,7 +753,7 @@ gopt_log_options(const char *val) static int gopt_map_defaults(const char *val) { - gopt.map_defaults = strdup((char *)val); + gopt.map_defaults = xstrdup(val); return 0; } @@ -743,7 +761,7 @@ gopt_map_defaults(const char *val) static int gopt_map_options(const char *val) { - gopt.map_options = strdup((char *)val); + gopt.map_options = xstrdup(val); return 0; } @@ -766,7 +784,7 @@ gopt_map_type(const char *val) fprintf(stderr, "conf: no such map type \"%s\"\n", val); return 1; } - gopt.map_type = strdup((char *)val); + gopt.map_type = xstrdup(val); return 0; } @@ -863,7 +881,7 @@ static int gopt_nfs_proto(const char *val) { if (STREQ(val, "udp") || STREQ(val, "tcp")) { - gopt.nfs_proto = strdup((char *)val); + gopt.nfs_proto = xstrdup(val); return 0; } fprintf(stderr, "conf: illegal nfs_proto \"%s\"\n", val); @@ -946,7 +964,7 @@ gopt_nfs_vers(const char *val) { int i = atoi(val); - if (i == 2 || i == 3) { + if (i == 2 || i == 3 || i == 4) { gopt.nfs_vers = i; return 0; } @@ -956,10 +974,23 @@ gopt_nfs_vers(const char *val) static int +gopt_nfs_vers_ping(const char *val) +{ + int i = atoi(val); + + if (i == 2 || i == 3 || i == 4) { + gopt.nfs_vers_ping = i; + return 0; + } + fprintf(stderr, "conf: illegal nfs_vers_ping \"%s\"\n", val); + return 1; +} + +static int gopt_nis_domain(const char *val) { #ifdef HAVE_MAP_NIS - gopt.nis_domain = strdup((char *)val); + gopt.nis_domain = xstrdup(val); return 0; #else /* not HAVE_MAP_NIS */ fprintf(stderr, "conf: nis_domain option ignored. No NIS support available.\n"); @@ -1003,7 +1034,7 @@ gopt_normalize_slashes(const char *val) static int gopt_os(const char *val) { - gopt.op_sys = strdup((char *)val); + gopt.op_sys = xstrdup(val); return 0; } @@ -1011,7 +1042,7 @@ gopt_os(const char *val) static int gopt_osver(const char *val) { - gopt.op_sys_ver = strdup((char *)val); + gopt.op_sys_ver = xstrdup(val); return 0; } @@ -1084,7 +1115,7 @@ gopt_restart_mounts(const char *val) static int gopt_search_path(const char *val) { - gopt.search_path = strdup((char *)val); + gopt.search_path = xstrdup(val); return 0; } @@ -1122,6 +1153,22 @@ gopt_show_statfs_entries(const char *val) static int +gopt_sun_map_syntax(const char *val) +{ + if (STREQ(val, "yes")) { + gopt.flags |= CFM_SUN_MAP_SYNTAX; + return 0; + } else if (STREQ(val, "no")) { + gopt.flags &= ~CFM_SUN_MAP_SYNTAX; + return 0; + } + + fprintf(stderr, "conf: unknown value to sun_map_syntax \"%s\"\n", val); + return 1; /* unknown value */ +} + + +static int gopt_truncate_log(const char *val) { if (STREQ(val, "yes")) { @@ -1177,7 +1224,7 @@ gopt_use_tcpwrappers(const char *val) static int gopt_vendor(const char *val) { - gopt.op_sys_vendor = strdup((char *)val); + gopt.op_sys_vendor = xstrdup(val); return 0; } @@ -1199,7 +1246,7 @@ process_regular_option(const char *section, const char *key, const char *val, cf /* check if initializing a new map */ if (!cfm->cfm_dir) - cfm->cfm_dir = strdup((char *)section); + cfm->cfm_dir = xstrdup(section); /* check for each possible field */ if (STREQ(key, "browsable_dirs")) @@ -1223,6 +1270,9 @@ process_regular_option(const char *section, const char *key, const char *val, cf if (STREQ(key, "search_path")) return ropt_search_path(val, cfm); + if (STREQ(key, "sun_map_syntax")) + return ropt_sun_map_syntax(val, cfm); + if (STREQ(key, "tag")) return ropt_tag(val, cfm); @@ -1254,7 +1304,7 @@ ropt_browsable_dirs(const char *val, cf_map_t *cfm) static int ropt_map_name(const char *val, cf_map_t *cfm) { - cfm->cfm_name = strdup((char *)val); + cfm->cfm_name = xstrdup(val); return 0; } @@ -1262,7 +1312,7 @@ ropt_map_name(const char *val, cf_map_t *cfm) static int ropt_map_defaults(const char *val, cf_map_t *cfm) { - cfm->cfm_defaults = strdup((char *)val); + cfm->cfm_defaults = xstrdup(val); return 0; } @@ -1270,7 +1320,7 @@ ropt_map_defaults(const char *val, cf_map_t *cfm) static int ropt_map_options(const char *val, cf_map_t *cfm) { - cfm->cfm_opts = strdup((char *)val); + cfm->cfm_opts = xstrdup(val); return 0; } @@ -1283,7 +1333,7 @@ ropt_map_type(const char *val, cf_map_t *cfm) fprintf(stderr, "conf: no such map type \"%s\"\n", val); return 1; } - cfm->cfm_type = strdup((char *)val); + cfm->cfm_type = xstrdup(val); return 0; } @@ -1313,15 +1363,32 @@ ropt_mount_type(const char *val, cf_map_t *cfm) static int ropt_search_path(const char *val, cf_map_t *cfm) { - cfm->cfm_search_path = strdup((char *)val); + cfm->cfm_search_path = xstrdup(val); return 0; } static int +ropt_sun_map_syntax(const char *val, cf_map_t *cfm) +{ + if (STREQ(val, "yes")) { + cfm->cfm_flags |= CFM_SUN_MAP_SYNTAX; + return 0; + + } else if (STREQ(val, "no")) { + cfm->cfm_flags &= ~CFM_SUN_MAP_SYNTAX; + return 0; + } + + fprintf(stderr, "conf: unknown value to sun_map_syntax \"%s\"\n", val); + return 1; /* unknown value */ +} + + +static int ropt_tag(const char *val, cf_map_t *cfm) { - cfm->cfm_tag = strdup((char *)val); + cfm->cfm_tag = xstrdup(val); return 0; } @@ -1397,7 +1464,7 @@ find_cf_map(const char *name) return NULL; while (tmp_map) { - if (STREQ(tmp_map->cfm_dir,name)) { + if (STREQ(tmp_map->cfm_dir, name)) { return tmp_map; } tmp_map = tmp_map->cfm_next; diff --git a/contrib/amd/amd/conf_parse.y b/contrib/amd/amd/conf_parse.y index b397b05..26c1b7a 100644 --- a/contrib/amd/amd/conf_parse.y +++ b/contrib/amd/amd/conf_parse.y @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/contrib/amd/amd/conf_tok.l b/contrib/amd/amd/conf_tok.l index b572e4d..fea2d8b 100644 --- a/contrib/amd/amd/conf_tok.l +++ b/contrib/amd/amd/conf_tok.l @@ -1,6 +1,6 @@ %{ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -17,11 +17,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -74,7 +70,7 @@ */ #ifdef FLEX_SCANNER # ifndef ECHO -# define ECHO (void) fwrite( yytext, yyleng, 1, yyout ) +# define ECHO __IGNORE(fwrite( yytext, yyleng, 1, yyout )) # endif /* not ECHO */ #endif /* FLEX_SCANNER */ @@ -86,9 +82,9 @@ int yylex(void); * which automatically generates yywrap macros and symbols. So I must * distinguish between them and when yywrap is actually needed. */ -#ifndef yywrap +#if !defined(yywrap) || defined(yylex) int yywrap(void); -#endif /* not yywrap */ +#endif /* not yywrap or yylex */ #define TOK_DEBUG 0 @@ -108,6 +104,7 @@ int yywrap(void); /* This option causes Solaris lex to fail. Use flex. See BUGS file */ /* no need to use yyunput() */ %option nounput +%option noinput /* allocate more output slots so lex scanners don't run out of mem */ %o 1024 @@ -131,19 +128,19 @@ NONQUOTE [^\"] \[ { dprintf("%8d: Left bracket \"%s\"\n", yytext); - yylval.strtype = strdup((char *)yytext); + conf_lval.strtype = xstrdup(yytext); amu_return(LEFT_BRACKET); } \] { dprintf("%8d: Right bracket \"%s\"\n", yytext); - yylval.strtype = strdup((char *)yytext); + conf_lval.strtype = xstrdup(yytext); amu_return(RIGHT_BRACKET); } = { dprintf("%8d: Equal \"%s\"\n", yytext); - yylval.strtype = strdup((char *)yytext); + conf_lval.strtype = xstrdup(yytext); amu_return(EQUAL); } @@ -159,7 +156,7 @@ NONQUOTE [^\"] {NONWSCHAR}{NONWSCHAR}* { dprintf("%8d: Non-WS string \"%s\"\n", yytext); - yylval.strtype = strdup((char *)yytext); + conf_lval.strtype = xstrdup(yytext); amu_return(NONWS_STRING); } @@ -167,13 +164,13 @@ NONQUOTE [^\"] dprintf("%8d: QUOTED-Non-WS-EQ string \"%s\"\n", yytext); /* must strip quotes */ yytext[strlen((char *)yytext)-1] = '\0'; - yylval.strtype = strdup((char *)&yytext[1]); + conf_lval.strtype = xstrdup(&yytext[1]); amu_return(QUOTED_NONWSEQ_STRING); } {NONWSEQCHAR}{NONWSEQCHAR}* { dprintf("%8d: Non-WS-EQ string \"%s\"\n", yytext); - yylval.strtype = strdup((char *)yytext); + conf_lval.strtype = xstrdup(yytext); amu_return(NONWSEQ_STRING); } @@ -184,9 +181,9 @@ NONQUOTE [^\"] * which automatically generates yywrap macros and symbols. So I must * distinguish between them and when yywrap is actually needed. */ -#ifndef yywrap +#if !defined(yywrap) || defined(yylex) int yywrap(void) { return 1; } -#endif /* not yywrap */ +#endif /* not yywrap or yylex */ diff --git a/contrib/amd/amd/get_args.c b/contrib/amd/amd/get_args.c index dda7618..74eb874 100644 --- a/contrib/amd/amd/get_args.c +++ b/contrib/amd/amd/get_args.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -84,15 +80,29 @@ get_version_string(void) len = 2048 + wire_buf_len; vers = xmalloc(len); xsnprintf(vers, len, "%s\n%s\n%s\n%s\n", - "Copyright (c) 1997-2006 Erez Zadok", + "Copyright (c) 1997-2014 Erez Zadok", "Copyright (c) 1990 Jan-Simon Pendry", "Copyright (c) 1990 Imperial College of Science, Technology & Medicine", "Copyright (c) 1990 The Regents of the University of California."); xsnprintf(tmpbuf, sizeof(tmpbuf), "%s version %s (build %d).\n", PACKAGE_NAME, PACKAGE_VERSION, AMU_BUILD_VERSION); - strlcat(vers, tmpbuf, len); + xstrlcat(vers, tmpbuf, len); xsnprintf(tmpbuf, sizeof(tmpbuf), "Report bugs to %s.\n", PACKAGE_BUGREPORT); - strlcat(vers, tmpbuf, len); + xstrlcat(vers, tmpbuf, len); +#if 0 + /* + * XXX This block (between from the #if 0 to #endif was in the + * XXX original was in the original merge however in the interest + * XXX of reproduceable builds and the fact that this is redundant + * XXX information, it is effectively removed. + */ + xsnprintf(tmpbuf, sizeof(tmpbuf), "Configured by %s@%s on date %s.\n", + USER_NAME, HOST_NAME, CONFIG_DATE); + xstrlcat(vers, tmpbuf, len); + xsnprintf(tmpbuf, sizeof(tmpbuf), "Built by %s@%s on date %s.\n", + BUILD_USER, BUILD_HOST, BUILD_DATE); + xstrlcat(vers, tmpbuf, len); +#endif xsnprintf(tmpbuf, sizeof(tmpbuf), "Configured by %s@%s on date %s.\n", USER_NAME, HOST_NAME, CONFIG_DATE); strlcat(vers, tmpbuf, len); @@ -101,27 +111,27 @@ get_version_string(void) strlcat(vers, tmpbuf, len); xsnprintf(tmpbuf, sizeof(tmpbuf), "cpu=%s (%s-endian), arch=%s, karch=%s.\n", cpu, endian, gopt.arch, gopt.karch); - strlcat(vers, tmpbuf, len); + xstrlcat(vers, tmpbuf, len); xsnprintf(tmpbuf, sizeof(tmpbuf), "full_os=%s, os=%s, osver=%s, vendor=%s, distro=%s.\n", gopt.op_sys_full, gopt.op_sys, gopt.op_sys_ver, gopt.op_sys_vendor, DISTRO_NAME); - strlcat(vers, tmpbuf, len); + xstrlcat(vers, tmpbuf, len); xsnprintf(tmpbuf, sizeof(tmpbuf), "domain=%s, host=%s, hostd=%s.\n", hostdomain, am_get_hostname(), hostd); - strlcat(vers, tmpbuf, len); + xstrlcat(vers, tmpbuf, len); - strlcat(vers, "Map support for: ", len); + xstrlcat(vers, "Map support for: ", len); mapc_showtypes(tmpbuf, sizeof(tmpbuf)); - strlcat(vers, tmpbuf, len); - strlcat(vers, ".\nAMFS: ", len); + xstrlcat(vers, tmpbuf, len); + xstrlcat(vers, ".\nAMFS: ", len); ops_showamfstypes(tmpbuf, sizeof(tmpbuf)); - strlcat(vers, tmpbuf, len); - strlcat(vers, ", inherit.\nFS: ", len); /* hack: "show" that we support type:=inherit */ + xstrlcat(vers, tmpbuf, len); + xstrlcat(vers, ", inherit.\nFS: ", len); /* hack: "show" that we support type:=inherit */ ops_showfstypes(tmpbuf, sizeof(tmpbuf)); - strlcat(vers, tmpbuf, len); + xstrlcat(vers, tmpbuf, len); /* append list of networks if available */ if (wire_buf) { - strlcat(vers, wire_buf, len); + xstrlcat(vers, wire_buf, len); XFREE(wire_buf); } @@ -331,19 +341,18 @@ get_args(int argc, char *argv[]) perror(buf); exit(1); } - yyin = fp; - yyparse(); + conf_in = fp; + conf_parse(); fclose(fp); if (process_all_regular_maps() != 0) exit(1); } - /* make sure there are some default options defined */ - if (xlog_level_init == ~0) { - switch_option(""); - } #ifdef DEBUG usage += switch_option("debug"); + /* initialize debug options */ + if (!debug_flags) + debug_flags = D_CONTROL; /* CONTROL = "daemon,amq,fork" */ #endif /* DEBUG */ /* log information regarding amd.conf file */ diff --git a/contrib/amd/amd/info_exec.c b/contrib/amd/amd/info_exec.c index 8ccab9a..95216c9 100644 --- a/contrib/amd/amd/info_exec.c +++ b/contrib/amd/amd/info_exec.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -52,8 +48,8 @@ #endif /* HAVE_CONFIG_H */ #include <am_defs.h> #include <amd.h> +#include <sun_map.h> -#define MAX_LINE_LEN 1500 /* forward declarations */ int exec_init(mnt_map *m, char *map, time_t *tp); @@ -74,13 +70,13 @@ fgets_timed(char *s, int size, int rdfd, int secs) if (!s || size < 0 || rdfd < 0) return 0; - s[0] = 0; + s[0] = '\0'; if (size == 0) return s; start = clocktime(NULL); while (s[i] != '\n' && i < size-1) { - s[i+1] = 0; /* places the requisite trailing '\0' */ + s[i+1] = '\0'; /* places the requisite trailing '\0' */ /* ready for reading */ rval = read(rdfd, (void *)(s+i), 1); @@ -114,7 +110,7 @@ fgets_timed(char *s, int size, int rdfd, int secs) FD_ZERO(&fds); FD_SET(rdfd, &fds); - rval = select(rdfd+1, &fds, 0, 0, &timeo); + rval = select(rdfd+1, &fds, NULL, NULL, &timeo); if (rval < 0) { /* error selecting */ plog(XLOG_WARNING, "fgets_timed select error: %m"); @@ -165,9 +161,9 @@ read_line(char *buf, int size, int fd) * Try to locate a value in a query answer */ static int -exec_parse_qanswer(int fd, char *map, char *key, char **pval, time_t *tp) +exec_parse_qanswer(mnt_map *m, int fd, char *map, char *key, char **pval, time_t *tp) { - char qanswer[MAX_LINE_LEN], *dc = 0; + char qanswer[INFO_MAX_LINE_LEN], *dc = NULL; int chuck = 0; int line_no = 0; @@ -197,7 +193,7 @@ exec_parse_qanswer(int fd, char *map, char *key, char **pval, time_t *tp) /* * Find beginning of value (query answer) */ - for (cp = qanswer; *cp && !isascii((int)*cp) && !isspace((int)*cp); cp++) + for (cp = qanswer; *cp && !isascii((unsigned char)*cp) && !isspace((unsigned char)*cp); cp++) ;; /* Ignore blank lines */ @@ -207,7 +203,10 @@ exec_parse_qanswer(int fd, char *map, char *key, char **pval, time_t *tp) /* * Return a copy of the data */ - dc = strdup(cp); + if (m->cfm && (m->cfm->cfm_flags & CFM_SUN_MAP_SYNTAX)) + dc = sun_entry2amd(key, cp); + else + dc = xstrdup(cp); *pval = dc; dlog("%s returns %s", key, dc); @@ -324,7 +323,7 @@ exec_map_open(char *emap, char *key) close(pdes[1]); /* anti-zombie insurance */ - while (waitpid(p1,0,0) < 0) + while (waitpid(p1, 0, 0) < 0) if (errno != EINTR) exit(errno); @@ -416,7 +415,7 @@ exec_search(mnt_map *m, char *map, char *key, char **pval, time_t *tp) if (tp) *tp = clocktime(NULL); - return exec_parse_qanswer(mapfd, map, key, pval, tp); + return exec_parse_qanswer(m, mapfd, map, key, pval, tp); } return errno; diff --git a/contrib/amd/amd/info_file.c b/contrib/amd/amd/info_file.c index 3777a2a..738c7bf 100644 --- a/contrib/amd/amd/info_file.c +++ b/contrib/amd/amd/info_file.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -50,8 +46,8 @@ #endif /* HAVE_CONFIG_H */ #include <am_defs.h> #include <amd.h> +#include <sun_map.h> -#define MAX_LINE_LEN 1500 /* forward declarations */ int file_init_or_mtime(mnt_map *m, char *map, time_t *tp); @@ -59,8 +55,8 @@ int file_reload(mnt_map *m, char *map, void (*fn) (mnt_map *, char *, char *)); int file_search(mnt_map *m, char *map, char *key, char **pval, time_t *tp); -static int -read_line(char *buf, int size, FILE *fp) +int +file_read_line(char *buf, int size, FILE *fp) { int done = 0; @@ -79,7 +75,7 @@ read_line(char *buf, int size, FILE *fp) * Skip leading white space on next line */ while ((ch = getc(fp)) != EOF && - isascii(ch) && isspace(ch)) ; + isascii((unsigned char)ch) && isspace((unsigned char)ch)) ; (void) ungetc(ch, fp); } else { return done; @@ -95,18 +91,18 @@ read_line(char *buf, int size, FILE *fp) * Try to locate a key in a file */ static int -file_search_or_reload(FILE *fp, +file_search_or_reload(mnt_map *m, + FILE *fp, char *map, char *key, char **val, - mnt_map *m, void (*fn) (mnt_map *m, char *, char *)) { - char key_val[MAX_LINE_LEN]; + char key_val[INFO_MAX_LINE_LEN]; int chuck = 0; int line_no = 0; - while (read_line(key_val, sizeof(key_val), fp)) { + while (file_read_line(key_val, sizeof(key_val), fp)) { char *kp; char *cp; char *hash; @@ -133,7 +129,7 @@ file_search_or_reload(FILE *fp, /* * Find start of key */ - for (kp = key_val; *kp && isascii(*kp) && isspace((int)*kp); kp++) ; + for (kp = key_val; *kp && isascii((unsigned char)*kp) && isspace((unsigned char)*kp); kp++) ; /* * Ignore blank lines @@ -144,7 +140,7 @@ file_search_or_reload(FILE *fp, /* * Find end of key */ - for (cp = kp; *cp && (!isascii(*cp) || !isspace((int)*cp)); cp++) ; + for (cp = kp; *cp && (!isascii((unsigned char)*cp) || !isspace((unsigned char)*cp)); cp++) ; /* * Check whether key matches @@ -153,15 +149,20 @@ file_search_or_reload(FILE *fp, *cp++ = '\0'; if (fn || (*key == *kp && STREQ(key, kp))) { - while (*cp && isascii(*cp) && isspace((int)*cp)) + while (*cp && isascii((unsigned char)*cp) && isspace((unsigned char)*cp)) cp++; if (*cp) { /* * Return a copy of the data */ - char *dc = strdup(cp); + char *dc; + /* if m->cfm == NULL, not using amd.conf file */ + if (m->cfm && (m->cfm->cfm_flags & CFM_SUN_MAP_SYNTAX)) + dc = sun_entry2amd(kp, cp); + else + dc = xstrdup(cp); if (fn) { - (*fn) (m, strdup(kp), dc); + (*fn) (m, xstrdup(kp), dc); } else { *val = dc; dlog("%s returns %s", key, dc); @@ -221,10 +222,10 @@ file_init_or_mtime(mnt_map *m, char *map, time_t *tp) int file_reload(mnt_map *m, char *map, void (*fn) (mnt_map *, char *, char *)) { - FILE *mapf = file_open(map, (time_t *) 0); + FILE *mapf = file_open(map, (time_t *) NULL); if (mapf) { - int error = file_search_or_reload(mapf, map, 0, 0, m, fn); + int error = file_search_or_reload(m, mapf, map, NULL, NULL, fn); (void) fclose(mapf); return error; } @@ -244,7 +245,7 @@ file_search(mnt_map *m, char *map, char *key, char **pval, time_t *tp) *tp = t; error = -1; } else { - error = file_search_or_reload(mapf, map, key, pval, 0, 0); + error = file_search_or_reload(m, mapf, map, key, pval, NULL); } (void) fclose(mapf); return error; diff --git a/contrib/amd/amd/info_hesiod.c b/contrib/amd/amd/info_hesiod.c index e345c99..0293f43 100644 --- a/contrib/amd/amd/info_hesiod.c +++ b/contrib/amd/amd/info_hesiod.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -50,6 +46,7 @@ #endif /* HAVE_CONFIG_H */ #include <am_defs.h> #include <amd.h> +#include <sun_map.h> #define HES_PREFIX "hesiod." #define HES_PREFLEN 7 @@ -127,7 +124,11 @@ hesiod_search(mnt_map *m, char *map, char *key, char **pval, time_t *tp) * it (and free subsequent replies) */ if (rvec && *rvec) { - *pval = *rvec; + if (m->cfm && (m->cfm->cfm_flags & CFM_SUN_MAP_SYNTAX)) { + *pval = sun_entry2amd(key, *rvec); + XFREE(*rvec); + } else + *pval = *rvec; while (*++rvec) XFREE(*rvec); return 0; diff --git a/contrib/amd/amd/info_ldap.c b/contrib/amd/amd/info_ldap.c index 36ce1c8..cfed6fd 100644 --- a/contrib/amd/amd/info_ldap.c +++ b/contrib/amd/amd/info_ldap.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -66,6 +62,7 @@ #endif /* HAVE_CONFIG_H */ #include <am_defs.h> #include <amd.h> +#include <sun_map.h> /* @@ -118,12 +115,17 @@ struct he_ent { struct he_ent *next; }; +static ALD *ldap_connection; + /* * FORWARD DECLARATIONS: */ static int amu_ldap_rebind(ALD *a); static int get_ldap_timestamp(ALD *a, char *map, time_t *ts); +int amu_ldap_init(mnt_map *m, char *map, time_t *tsu); +int amu_ldap_search(mnt_map *m, char *map, char *key, char **pval, time_t *ts); +int amu_ldap_mtime(mnt_map *m, char *map, time_t *ts); /* * FUNCTIONS: @@ -144,30 +146,33 @@ string2he(char *s_orig) { char *c, *p; char *s; - HE_ENT *new, *old = NULL; + HE_ENT *first = NULL, *cur = NULL; - if (NULL == s_orig || NULL == (s = strdup(s_orig))) + if (NULL == s_orig) return NULL; - for (p = s; p; p = strchr(p, ',')) { - if (old != NULL) { - new = ALLOC(HE_ENT); - old->next = new; - old = new; - } else { - old = ALLOC(HE_ENT); - old->next = NULL; - } + s = xstrdup(s_orig); + for (p = strtok(s, ","); p; p = strtok(NULL, ",")) { + if (cur != NULL) { + cur->next = ALLOC(HE_ENT); + cur = cur->next; + } else + first = cur = ALLOC(HE_ENT); + + cur->next = NULL; c = strchr(p, ':'); if (c) { /* Host and port */ *c++ = '\0'; - old->host = strdup(p); - old->port = atoi(c); - } else - old->host = strdup(p); - + cur->host = xstrdup(p); + cur->port = atoi(c); + } else { + cur->host = xstrdup(p); + cur->port = LDAP_PORT; + } + plog(XLOG_USER, "Adding ldap server %s:%d", + cur->host, cur->port); } XFREE(s); - return (old); + return first; } @@ -248,10 +253,18 @@ amu_ldap_init(mnt_map *m, char *map, time_t *ts) if (!gopt.map_type || !STREQ(gopt.map_type, AMD_LDAP_TYPE)) { dlog("amu_ldap_init called with map_type <%s>\n", (gopt.map_type ? gopt.map_type : "null")); + return ENOENT; } else { dlog("Map %s is ldap\n", map); } +#ifndef LDAP_CONNECTION_PER_MAP + if (ldap_connection != NULL) { + m->map_data = (void *) ldap_connection; + return 0; + } +#endif + aldh = ALLOC(ALD); creds = ALLOC(CR); aldh->ldap = NULL; @@ -274,11 +287,14 @@ amu_ldap_init(mnt_map *m, char *map, time_t *ts) ald_free(aldh); return (ENOENT); } - m->map_data = (void *) aldh; dlog("Bound to %s:%d\n", aldh->hostent->host, aldh->hostent->port); - if (get_ldap_timestamp(aldh, map, ts)) + if (get_ldap_timestamp(aldh, map, ts)) { + ald_free(aldh); return (ENOENT); + } dlog("Got timestamp for map %s: %ld\n", map, (u_long) *ts); + ldap_connection = aldh; + m->map_data = (void *) ldap_connection; return (0); } @@ -312,7 +328,7 @@ amu_ldap_rebind(ALD *a) for (h = a->hostent; h != NULL; h = h->next) { if ((ld = ldap_open(h->host, h->port)) == NULL) { plog(XLOG_WARNING, "Unable to ldap_open to %s:%d\n", h->host, h->port); - break; + continue; } #if LDAP_VERSION_MAX > LDAP_VERSION2 /* handle LDAPv3 and heigher, if available and amd.conf-igured */ @@ -321,16 +337,16 @@ amu_ldap_rebind(ALD *a) dlog("amu_ldap_rebind: LDAP protocol version set to %ld\n", gopt.ldap_proto_version); } else { - plog(XLOG_WARNING, "Unable to set ldap protocol version to %ld\n", - gopt.ldap_proto_version); - break; + plog(XLOG_WARNING, "Unable to set ldap protocol version to %ld for " + "%s:%d\n", gopt.ldap_proto_version, h->host, h->port); + continue; } } #endif /* LDAP_VERSION_MAX > LDAP_VERSION2 */ if (ldap_bind_s(ld, c->who, c->pw, c->method) != LDAP_SUCCESS) { plog(XLOG_WARNING, "Unable to ldap_bind to %s:%d as %s\n", h->host, h->port, c->who); - break; + continue; } if (gopt.ldap_cache_seconds > 0) { #if defined(HAVE_LDAP_ENABLE_CACHE) && defined(HAVE_EXTERN_LDAP_ENABLE_CACHE) @@ -541,7 +557,10 @@ amu_ldap_search(mnt_map *m, char *map, char *key, char **pval, time_t *ts) } dlog("Map %s, %s => %s\n", map, key, vals[0]); if (vals[0]) { - *pval = strdup(vals[0]); + if (m->cfm && (m->cfm->cfm_flags & CFM_SUN_MAP_SYNTAX)) + *pval = sun_entry2amd(key, vals[0]); + else + *pval = xstrdup(vals[0]); err = 0; } else { plog(XLOG_USER, "Empty value for %s in map %s\n", key, map); diff --git a/contrib/amd/amd/info_ndbm.c b/contrib/amd/amd/info_ndbm.c index 8a52ba9..5f2f52b 100644 --- a/contrib/amd/amd/info_ndbm.c +++ b/contrib/amd/amd/info_ndbm.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -50,6 +46,7 @@ #endif /* HAVE_CONFIG_H */ #include <am_defs.h> #include <amd.h> +#include <sun_map.h> /* forward declarations */ int ndbm_init(mnt_map *m, char *map, time_t *tp); @@ -58,7 +55,7 @@ int ndbm_search(mnt_map *m, char *map, char *key, char **pval, time_t *tp); static int -search_ndbm(DBM *db, char *key, char **val) +search_ndbm(mnt_map *m, DBM *db, char *key, char **val) { datum k, v; @@ -66,7 +63,10 @@ search_ndbm(DBM *db, char *key, char **val) k.dsize = strlen(key) + 1; v = dbm_fetch(db, k); if (v.dptr) { - *val = strdup(v.dptr); + if (m->cfm && (m->cfm->cfm_flags & CFM_SUN_MAP_SYNTAX)) + *val = sun_entry2amd(key, v.dptr); + else + *val = xstrdup(v.dptr); return 0; } return ENOENT; @@ -95,7 +95,7 @@ ndbm_search(mnt_map *m, char *map, char *key, char **pval, time_t *tp) *tp = stb.st_mtime; error = -1; } else { - error = search_ndbm(db, key, pval); + error = search_ndbm(m, db, key, pval); } (void) dbm_close(db); return error; diff --git a/contrib/amd/amd/info_nis.c b/contrib/amd/amd/info_nis.c index bcb87d5..83dc4b7 100644 --- a/contrib/amd/amd/info_nis.c +++ b/contrib/amd/amd/info_nis.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -50,6 +46,7 @@ #endif /* HAVE_CONFIG_H */ #include <am_defs.h> #include <amd.h> +#include <sun_map.h> /* @@ -109,7 +106,7 @@ determine_nis_domain(void) plog(XLOG_WARNING, "NIS domain name is not set. NIS ignored."); return ENOENT; } - gopt.nis_domain = strdup(default_domain); + gopt.nis_domain = xstrdup(default_domain); return 0; } @@ -167,6 +164,7 @@ nis_reload(mnt_map *m, char *map, void (*fn) (mnt_map *, char *, char *)) cbinfo.data = (voidp) &data; cbinfo.foreach = (ypall_callback_fxn_t) callback; + plog(XLOG_INFO, "NIS map %s reloading using yp_all", map); /* * If you are using NIS and your yp_all function is "broken", you have to * get it fixed. The bug in yp_all() is that it does not close a TCP @@ -247,7 +245,7 @@ nis_isup(mnt_map *m, char *map) * Try to locate a key using NIS. */ int -nis_search(mnt_map *m, char *map, char *key, char **val, time_t *tp) +nis_search(mnt_map *m, char *map, char *key, char **pval, time_t *tp) { int outlen; int res; @@ -301,7 +299,15 @@ nis_search(mnt_map *m, char *map, char *key, char **val, time_t *tp) /* * Lookup key */ - res = yp_match(gopt.nis_domain, map, key, strlen(key), val, &outlen); + res = yp_match(gopt.nis_domain, map, key, strlen(key), pval, &outlen); + if (m->cfm && (m->cfm->cfm_flags & CFM_SUN_MAP_SYNTAX) && res == 0) { + char *oldval = *pval; + *pval = sun_entry2amd(key, oldval); + /* We always need to free the output of the yp_match call. */ + XFREE(oldval); + if (*pval == NULL) + return -1; /* sun2amd parser error */ + } /* * Do something interesting with the return code diff --git a/contrib/amd/amd/info_nisplus.c b/contrib/amd/amd/info_nisplus.c index d392b48..79df836 100644 --- a/contrib/amd/amd/info_nisplus.c +++ b/contrib/amd/amd/info_nisplus.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -50,6 +46,7 @@ #endif /* HAVE_CONFIG_H */ #include <am_defs.h> #include <amd.h> +#include <sun_map.h> #define NISPLUS_KEY "key=" #define NISPLUS_ORGDIR ".org_dir" @@ -221,7 +218,12 @@ nisplus_search(mnt_map *m, char *map, char *key, char **val, time_t *tp) if (value != NULL) data.value = strnsave(ENTRY_VAL(value, 1), ENTRY_LEN(value, 1)); } - *val = data.value; + + if (m->cfm && (m->cfm->cfm_flags & CFM_SUN_MAP_SYNTAX)) { + *val = sun_entry2amd(key, data.value); + XFREE(data.value); /* strnsave malloc'ed it above */ + } else + *val = data.value; if (*val) { error = 0; diff --git a/contrib/amd/amd/info_passwd.c b/contrib/amd/amd/info_passwd.c index c8bf388..3c44866 100644 --- a/contrib/amd/amd/info_passwd.c +++ b/contrib/amd/amd/info_passwd.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -94,11 +90,11 @@ passwd_init(mnt_map *m, char *map, time_t *tp) int passwd_search(mnt_map *m, char *map, char *key, char **pval, time_t *tp) { - char *dir = 0; + char *dir = NULL; struct passwd *pw; if (STREQ(key, "/defaults")) { - *pval = strdup("type:=nfs"); + *pval = xstrdup("type:=nfs"); return 0; } pw = getpwnam(key); @@ -123,7 +119,7 @@ passwd_search(mnt_map *m, char *map, char *key, char **pval, time_t *tp) char *p, *q; char val[MAXPATHLEN]; char rhost[MAXHOSTNAMELEN]; - dir = strdup(pw->pw_dir); + dir = xstrdup(pw->pw_dir); /* * Find user name. If no / then Invalid... @@ -180,13 +176,12 @@ passwd_search(mnt_map *m, char *map, char *key, char **pval, time_t *tp) dlog("passwd_search: map=%s key=%s -> %s", map, key, val); if (q) *q = '.'; - *pval = strdup(val); + *pval = xstrdup(val); return 0; } enoent: - if (dir) - XFREE(dir); + XFREE(dir); return ENOENT; } diff --git a/contrib/amd/amd/info_sun.c b/contrib/amd/amd/info_sun.c new file mode 100644 index 0000000..3f56965 --- /dev/null +++ b/contrib/amd/amd/info_sun.c @@ -0,0 +1,53 @@ +/* + * Copyright (c) 1997-2014 Erez Zadok + * Copyright (c) 1990 Jan-Simon Pendry + * Copyright (c) 1990 Imperial College of Science, Technology & Medicine + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Jan-Simon Pendry at Imperial College, London. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * + * File: am-utils/amd/info_sun.c + * + */ + +/* + * Get info from Sun automount-style /etc/auto_master, possibly following + * into multiple info services (via /etc/nsswitch.conf). + */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif /* HAVE_CONFIG_H */ +#include <am_defs.h> +#include <amd.h> +#include <sun_map.h> + + +/* XXX: just a placeholder. fill in */ diff --git a/contrib/amd/amd/info_union.c b/contrib/amd/amd/info_union.c index 8f0631c..df48031 100644 --- a/contrib/amd/amd/info_union.c +++ b/contrib/amd/amd/info_union.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -77,7 +73,7 @@ union_init(mnt_map *m, char *map, time_t *tp) int union_search(mnt_map *m, char *map, char *key, char **pval, time_t *tp) { - char *mapd = strdup(map + UNION_PREFLEN); + char *mapd = xstrdup(map + UNION_PREFLEN); char **v = strsplit(mapd, ':', '\"'); char **p; size_t l; @@ -95,14 +91,15 @@ union_search(mnt_map *m, char *map, char *key, char **pval, time_t *tp) int union_reload(mnt_map *m, char *map, void (*fn) (mnt_map *, char *, char *)) { - char *mapd = strdup(map + UNION_PREFLEN); + static const char fseq[] = "fs:="; + char *mapd = xstrdup(map + UNION_PREFLEN); char **v = strsplit(mapd, ':', '\"'); char **dir; /* * Add fake /defaults entry */ - (*fn) (m, strdup("/defaults"), strdup("type:=link;opts:=nounmount;sublink:=${key}")); + (*fn) (m, xstrdup("/defaults"), xstrdup("type:=link;opts:=nounmount;sublink:=${key}")); for (dir = v; *dir; dir++) { size_t l; @@ -113,7 +110,7 @@ union_reload(mnt_map *m, char *map, void (*fn) (mnt_map *, char *, char *)) plog(XLOG_USER, "Cannot read directory %s: %m", *dir); continue; } - l = strlen(*dir) + 5; + l = strlen(*dir) + sizeof(fseq); dlog("Reading directory %s...", *dir); while ((dp = readdir(dirp))) { @@ -125,8 +122,8 @@ union_reload(mnt_map *m, char *map, void (*fn) (mnt_map *, char *, char *)) dlog("... gives %s", dp->d_name); val = xmalloc(l); - xsnprintf(val, l + 5, "fs:=%s", *dir); - (*fn) (m, strdup(dp->d_name), val); + xsnprintf(val, l, "%s%s", fseq, *dir); + (*fn) (m, xstrdup(dp->d_name), val); } closedir(dirp); } @@ -135,11 +132,11 @@ union_reload(mnt_map *m, char *map, void (*fn) (mnt_map *, char *, char *)) * Add wildcard entry */ { - size_t l = strlen(*(dir-1)) + 5; + size_t l = strlen(*(dir-1)) + sizeof(fseq); char *val = xmalloc(l); - xsnprintf(val, l, "fs:=%s", *(dir-1)); - (*fn) (m, strdup("*"), val); + xsnprintf(val, l, "%s%s", fseq, *(dir-1)); + (*fn) (m, xstrdup("*"), val); } XFREE(mapd); XFREE(v); diff --git a/contrib/amd/amd/map.c b/contrib/amd/amd/map.c index 8696dfd..0d404cf 100644 --- a/contrib/amd/amd/map.c +++ b/contrib/amd/amd/map.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -69,7 +65,7 @@ static u_int am_gen = 2; /* Initial generation number */ static int timeout_mp_id; /* Id from last call to timeout */ static am_node *root_node; /* The root of the mount tree */ -static am_node **exported_ap = (am_node **) 0; +static am_node **exported_ap = (am_node **) NULL; static int exported_ap_size = 0; static int first_free_map = 0; /* First available free slot */ static int last_used_map = -1; /* Last unavailable used slot */ @@ -190,7 +186,7 @@ am_node * get_ap_child(am_node *mp, char *fname) { am_node *new_mp; - mntfs *mf = mp->am_mnt; + mntfs *mf = mp->am_al->al_mnt; /* * Allocate a new map @@ -280,7 +276,7 @@ exported_ap_free(am_node *mp) /* * Zero the slot pointer to avoid double free's */ - exported_ap[mp->am_mapno] = 0; + exported_ap[mp->am_mapno] = NULL; /* * Update the free and last_used indices @@ -325,7 +321,7 @@ insert_am(am_node *mp, am_node *p_mp) mp->am_osib->am_ysib = mp; p_mp->am_child = mp; #ifdef HAVE_FS_AUTOFS - if (p_mp->am_mnt->mf_flags & MFF_IS_AUTOFS) + if (p_mp->am_al->al_mnt->mf_flags & MFF_IS_AUTOFS) mp->am_flags |= AMF_AUTOFS; #endif /* HAVE_FS_AUTOFS */ } @@ -408,13 +404,14 @@ init_map(am_node *mp, char *dir) * mp->am_mapno is initialized by exported_ap_alloc * other fields don't need to be set to zero. */ - mp->am_mnt = new_mntfs(); - mp->am_mfarray = 0; - mp->am_name = strdup(dir); - mp->am_path = strdup(dir); + + mp->am_al = new_loc(); + mp->am_alarray = NULL; + mp->am_name = xstrdup(dir); + mp->am_path = xstrdup(dir); mp->am_gen = new_gen(); #ifdef HAVE_FS_AUTOFS - mp->am_autofs_fh = 0; + mp->am_autofs_fh = NULL; #endif /* HAVE_FS_AUTOFS */ mp->am_timeo = gopt.am_timeo; @@ -430,6 +427,30 @@ init_map(am_node *mp, char *dir) mp->am_stats.s_mtime = mp->am_fattr.na_atime.nt_seconds; mp->am_dev = -1; mp->am_rdev = -1; + mp->am_fd[0] = -1; + mp->am_fd[1] = -1; +} + + +void +notify_child(am_node *mp, au_etype au_etype, int au_errno, int au_signal) +{ + amq_sync_umnt rv; + int err; + + if (mp->am_fd[1] >= 0) { /* we have a child process */ + rv.au_etype = au_etype; + rv.au_signal = au_signal; + rv.au_errno = au_errno; + + err = write(mp->am_fd[1], &rv, sizeof(rv)); + /* XXX: do something else on err? */ + if (err < sizeof(rv)) + plog(XLOG_INFO, "notify_child: write returned %d instead of %d.", + err, (int) sizeof(rv)); + close(mp->am_fd[1]); + mp->am_fd[1] = -1; + } } @@ -442,25 +463,24 @@ free_map(am_node *mp) { remove_am(mp); - if (mp->am_link) - XFREE(mp->am_link); - if (mp->am_name) - XFREE(mp->am_name); - if (mp->am_path) - XFREE(mp->am_path); - if (mp->am_pref) - XFREE(mp->am_pref); - if (mp->am_transp) - XFREE(mp->am_transp); - - if (mp->am_mnt) - free_mntfs(mp->am_mnt); - - if (mp->am_mfarray) { - mntfs **temp_mf; - for (temp_mf = mp->am_mfarray; *temp_mf; temp_mf++) - free_mntfs(*temp_mf); - XFREE(mp->am_mfarray); + if (mp->am_fd[1] != -1) + plog(XLOG_FATAL, "free_map: called prior to notifying the child for %s.", + mp->am_path); + + XFREE(mp->am_link); + XFREE(mp->am_name); + XFREE(mp->am_path); + XFREE(mp->am_pref); + XFREE(mp->am_transp); + + if (mp->am_al) + free_loc(mp->am_al); + + if (mp->am_alarray) { + am_loc **temp_al; + for (temp_al = mp->am_alarray; *temp_al; temp_al++) + free_loc(*temp_al); + XFREE(mp->am_alarray); } #ifdef HAVE_FS_AUTOFS @@ -480,8 +500,8 @@ find_ap_recursive(char *dir, am_node *mp) if (STREQ(mp->am_path, dir)) return mp; - if ((mp->am_mnt->mf_flags & MFF_MOUNTED) && - STREQ(mp->am_mnt->mf_mount, dir)) + if ((mp->am_al->al_mnt->mf_flags & MFF_MOUNTED) && + STREQ(mp->am_al->al_mnt->mf_mount, dir)) return mp; mp2 = find_ap_recursive(dir, mp->am_osib); @@ -518,37 +538,20 @@ find_ap(char *dir) /* - * Find the mount node corresponding - * to the mntfs structure. - */ -am_node * -find_mf(mntfs *mf) -{ - int i; - - for (i = last_used_map; i >= 0; --i) { - am_node *mp = exported_ap[i]; - if (mp && mp->am_mnt == mf) - return mp; - } - - return 0; -} - - -/* * Get the filehandle for a particular named directory. * This is used during the bootstrap to tell the kernel * the filehandles of the initial automount points. */ -am_nfs_fh * -get_root_nfs_fh(char *dir) +am_nfs_handle_t * +get_root_nfs_fh(char *dir, am_nfs_handle_t *nfh) { - static am_nfs_fh nfh; am_node *mp = get_root_ap(dir); if (mp) { - mp_to_fh(mp, &nfh); - return &nfh; + if (nfs_dispatcher == nfs_program_2) + mp_to_fh(mp, &nfh->v2); + else + mp_to_fh3(mp, &nfh->v3); + return nfh; } /* @@ -584,7 +587,8 @@ map_flush_srvr(fserver *fs) for (i = last_used_map; i >= 0; --i) { am_node *mp = exported_ap[i]; - if (mp && mp->am_mnt && mp->am_mnt->mf_server == fs) { + + if (mp && mp->am_al->al_mnt && mp->am_al->al_mnt->mf_server == fs) { plog(XLOG_INFO, "Flushed %s; dependent on %s", mp->am_path, fs->fs_host); mp->am_ttl = clocktime(NULL); done = 1; @@ -608,7 +612,7 @@ mount_auto_node(char *dir, opaque_t arg) am_node *mp = (am_node *) arg; am_node *new_mp; - new_mp = mp->am_mnt->mf_ops->lookup_child(mp, dir, &error, VLOOK_CREATE); + new_mp = mp->am_al->al_mnt->mf_ops->lookup_child(mp, dir, &error, VLOOK_CREATE); if (new_mp && error < 0) { /* * We can't allow the fileid of the root node to change. @@ -616,7 +620,7 @@ mount_auto_node(char *dir, opaque_t arg) */ new_mp->am_gen = new_mp->am_fattr.na_fileid = 1; - new_mp = mp->am_mnt->mf_ops->mount_child(new_mp, &error); + (void) mp->am_al->al_mnt->mf_ops->mount_child(new_mp, &error); } if (error > 0) { @@ -647,7 +651,7 @@ mount_exported(void) void make_root_node(void) { - mntfs *root_mnt; + mntfs *root_mf; char *rootmap = ROOT_MAP; root_node = exported_ap_alloc(); @@ -659,24 +663,24 @@ make_root_node(void) /* * Allocate a new mounted filesystem */ - root_mnt = find_mntfs(&amfs_root_ops, (am_opts *) 0, "", rootmap, "", "", ""); + root_mf = find_mntfs(&amfs_root_ops, (am_opts *) NULL, "", rootmap, "", "", ""); /* * Replace the initial null reference */ - free_mntfs(root_node->am_mnt); - root_node->am_mnt = root_mnt; + free_mntfs(root_node->am_al->al_mnt); + root_node->am_al->al_mnt = root_mf; /* * Initialize the root */ - if (root_mnt->mf_ops->fs_init) - (*root_mnt->mf_ops->fs_init) (root_mnt); + if (root_mf->mf_ops->fs_init) + (*root_mf->mf_ops->fs_init) (root_mf); /* * Mount the root */ - root_mnt->mf_error = root_mnt->mf_ops->mount_fs(root_node, root_mnt); + root_mf->mf_error = root_mf->mf_ops->mount_fs(root_node, root_mf); } @@ -687,68 +691,81 @@ make_root_node(void) void umount_exported(void) { - int i; + int i, work_done; - for (i = last_used_map; i >= 0; --i) { - am_node *mp = exported_ap[i]; - mntfs *mf; + do { + work_done = 0; - if (!mp) - continue; + for (i = last_used_map; i >= 0; --i) { + am_node *mp = exported_ap[i]; + mntfs *mf; - mf = mp->am_mnt; - if (mf->mf_flags & MFF_UNMOUNTING) { - /* - * If this node is being unmounted then just ignore it. However, - * this could prevent amd from finishing if the unmount gets blocked - * since the am_node will never be free'd. am_unmounted needs - * telling about this possibility. - XXX - */ - continue; - } + if (!mp) + continue; - if (!(mf->mf_fsflags & FS_DIRECTORY)) /* - * When shutting down this had better - * look like a directory, otherwise it - * can't be unmounted! + * Wait for children to be removed first */ - mk_fattr(&mp->am_fattr, NFDIR); + if (mp->am_child) + continue; - if ((--immediate_abort < 0 && - !(mp->am_flags & AMF_ROOT) && mp->am_parent) || - (mf->mf_flags & MFF_RESTART)) { + mf = mp->am_al->al_mnt; + if (mf->mf_flags & MFF_UNMOUNTING) { + /* + * If this node is being unmounted then just ignore it. However, + * this could prevent amd from finishing if the unmount gets blocked + * since the am_node will never be free'd. am_unmounted needs + * telling about this possibility. - XXX + */ + continue; + } + + if (!(mf->mf_fsflags & FS_DIRECTORY)) + /* + * When shutting down this had better + * look like a directory, otherwise it + * can't be unmounted! + */ + mk_fattr(&mp->am_fattr, NFDIR); + + if ((--immediate_abort < 0 && + !(mp->am_flags & AMF_ROOT) && mp->am_parent) || + (mf->mf_flags & MFF_RESTART)) { + + work_done++; - /* - * Just throw this node away without bothering to unmount it. If - * the server is not known to be up then don't discard the mounted - * on directory or Amd might hang... - */ - if (mf->mf_server && - (mf->mf_server->fs_flags & (FSF_DOWN | FSF_VALID)) != FSF_VALID) - mf->mf_flags &= ~MFF_MKMNT; - if (gopt.flags & CFM_UNMOUNT_ON_EXIT || mp->am_flags & AMF_AUTOFS) { - plog(XLOG_INFO, "on-exit attempt to unmount %s", mf->mf_mount); /* - * use unmount_mp, not unmount_node, so that unmounts be - * backgrounded as needed. + * Just throw this node away without bothering to unmount it. If + * the server is not known to be up then don't discard the mounted + * on directory or Amd might hang... */ - unmount_mp((opaque_t) mp); + if (mf->mf_server && + (mf->mf_server->fs_flags & (FSF_DOWN | FSF_VALID)) != FSF_VALID) + mf->mf_flags &= ~MFF_MKMNT; + if (gopt.flags & CFM_UNMOUNT_ON_EXIT || mp->am_flags & AMF_AUTOFS) { + plog(XLOG_INFO, "on-exit attempt to unmount %s", mf->mf_mount); + /* + * use unmount_mp, not unmount_node, so that unmounts be + * backgrounded as needed. + */ + unmount_mp((opaque_t) mp); + } else { + am_unmounted(mp); + } + if (!(mf->mf_flags & (MFF_UNMOUNTING|MFF_MOUNTED))) + exported_ap[i] = NULL; } else { - am_unmounted(mp); + /* + * Any other node gets forcibly timed out. + */ + mp->am_flags &= ~AMF_NOTIMEOUT; + mp->am_al->al_mnt->mf_flags &= ~MFF_RSTKEEP; + mp->am_ttl = 0; + mp->am_timeo = 1; + mp->am_timeo_w = 0; } - exported_ap[i] = 0; - } else { - /* - * Any other node gets forcibly timed out. - */ - mp->am_flags &= ~AMF_NOTIMEOUT; - mp->am_mnt->mf_flags &= ~MFF_RSTKEEP; - mp->am_ttl = 0; - mp->am_timeo = 1; - mp->am_timeo_w = 0; } - } + } while (work_done); } @@ -762,7 +779,7 @@ int mount_node(opaque_t arg) { am_node *mp = (am_node *) arg; - mntfs *mf = mp->am_mnt; + mntfs *mf = mp->am_al->al_mnt; int error = 0; #ifdef HAVE_FS_AUTOFS @@ -784,7 +801,7 @@ static int unmount_node(opaque_t arg) { am_node *mp = (am_node *) arg; - mntfs *mf = mp->am_mnt; + mntfs *mf = mp->am_al->al_mnt; int error = 0; if (mf->mf_flags & MFF_ERROR) { @@ -805,7 +822,7 @@ unmount_node(opaque_t arg) } /* do this again, it might have changed */ - mf = mp->am_mnt; + mf = mp->am_al->al_mnt; if (error) { errno = error; /* XXX */ dlog("%s: unmount: %m", mf->mf_mount); @@ -819,7 +836,7 @@ static void free_map_if_success(int rc, int term, opaque_t arg) { am_node *mp = (am_node *) arg; - mntfs *mf = mp->am_mnt; + mntfs *mf = mp->am_al->al_mnt; wchan_t wchan = get_mntfs_wchan(mf); /* @@ -836,6 +853,7 @@ free_map_if_success(int rc, int term, opaque_t arg) reschedule_timeout_mp(); } if (term) { + notify_child(mp, AMQ_UMNT_SIGNAL, 0, term); plog(XLOG_ERROR, "unmount for %s got signal %d", mp->am_path, term); #if defined(DEBUG) && defined(SIGTRAP) /* @@ -852,18 +870,24 @@ free_map_if_success(int rc, int term, opaque_t arg) #endif /* HAVE_FS_AUTOFS */ amd_stats.d_uerr++; } else if (rc) { + notify_child(mp, AMQ_UMNT_FAILED, rc, 0); if (mf->mf_ops == &amfs_program_ops || rc == EBUSY) plog(XLOG_STATS, "\"%s\" on %s still active", mp->am_path, mf->mf_mount); else plog(XLOG_ERROR, "%s: unmount: %s", mp->am_path, strerror(rc)); #ifdef HAVE_FS_AUTOFS - if (mf->mf_flags & MFF_IS_AUTOFS) - autofs_get_mp(mp); - if (mp->am_flags & AMF_AUTOFS) - autofs_umount_failed(mp); + if (rc != ENOENT) { + if (mf->mf_flags & MFF_IS_AUTOFS) + autofs_get_mp(mp); + if (mp->am_flags & AMF_AUTOFS) + autofs_umount_failed(mp); + } #endif /* HAVE_FS_AUTOFS */ amd_stats.d_uerr++; } else { + /* + * am_unmounted() will call notify_child() appropriately. + */ am_unmounted(mp); } @@ -878,11 +902,11 @@ int unmount_mp(am_node *mp) { int was_backgrounded = 0; - mntfs *mf = mp->am_mnt; + mntfs *mf = mp->am_al->al_mnt; #ifdef notdef plog(XLOG_INFO, "\"%s\" on %s timed out (flags 0x%x)", - mp->am_path, mp->am_mnt->mf_mount, (int) mf->mf_flags); + mp->am_path, mf->mf_mount, (int) mf->mf_flags); #endif /* notdef */ #ifndef MNT2_NFS_OPT_SYMTTL @@ -914,10 +938,11 @@ unmount_mp(am_node *mp) plog(XLOG_STATS, "file server %s is down - timeout of \"%s\" ignored", mf->mf_server->fs_host, mp->am_path); mf->mf_flags |= MFF_LOGDOWN; } + notify_child(mp, AMQ_UMNT_SERVER, 0, 0); return 0; } - dlog("\"%s\" on %s timed out", mp->am_path, mp->am_mnt->mf_mount); + dlog("\"%s\" on %s timed out", mp->am_path, mf->mf_mount); mf->mf_flags |= MFF_UNMOUNTING; #ifdef HAVE_FS_AUTOFS @@ -926,7 +951,8 @@ unmount_mp(am_node *mp) #endif /* HAVE_FS_AUTOFS */ if ((mf->mf_fsflags & FS_UBACKGROUND) && - (mf->mf_flags & MFF_MOUNTED)) { + (mf->mf_flags & MFF_MOUNTED) && + !(mf->mf_flags & MFF_ON_AUTOFS)) { dlog("Trying unmount in background"); run_task(unmount_node, (opaque_t) mp, free_map_if_success, (opaque_t) mp); @@ -964,7 +990,7 @@ timeout_mp(opaque_t v) /* argument not used?! */ /* * Pick up mounted filesystem */ - mf = mp->am_mnt; + mf = mp->am_al->al_mnt; if (!mf) continue; @@ -1056,7 +1082,7 @@ timeout_mp(opaque_t v) /* argument not used?! */ t = now + 1; dlog("Next mount timeout in %lds", (long) (t - now)); - timeout_mp_id = timeout(t - now, timeout_mp, 0); + timeout_mp_id = timeout(t - now, timeout_mp, NULL); } @@ -1068,5 +1094,5 @@ reschedule_timeout_mp(void) { if (timeout_mp_id) untimeout(timeout_mp_id); - timeout_mp_id = timeout(0, timeout_mp, 0); + timeout_mp_id = timeout(0, timeout_mp, NULL); } diff --git a/contrib/amd/amd/mapc.c b/contrib/amd/amd/mapc.c index d7efdbc..cd4b9b9 100644 --- a/contrib/amd/amd/mapc.c +++ b/contrib/amd/amd/mapc.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -96,7 +92,7 @@ static struct opt_tab mapc_opt[] = {"regexp", MAPC_RE}, #endif /* HAVE_REGEXEC */ {"sync", MAPC_SYNC}, - {0, 0} + {NULL, 0} }; /* @@ -137,6 +133,7 @@ static const char *get_full_path(const char *map, const char *path, const char * static int mapc_meta_search(mnt_map *, char *, char **, int); static void mapc_sync(mnt_map *); static void mapc_clear(mnt_map *); +static void mapc_clear_kvhash(kv **); /* ROOT MAP */ static int root_init(mnt_map *, char *, time_t *); @@ -198,12 +195,6 @@ extern int ndbm_search(mnt_map *, char *, char *, char **, time_t *); extern int ndbm_mtime(mnt_map *, char *, time_t *); #endif /* HAVE_MAP_NDBM */ -/* EXECUTABLE MAPS */ -#ifdef HAVE_MAP_EXEC -extern int exec_init(mnt_map *, char *, time_t *); -extern int exec_search(mnt_map *, char *, char *, char **, time_t *); -#endif /* HAVE_MAP_EXEC */ - /* FILE MAPS */ #ifdef HAVE_MAP_FILE extern int file_init_or_mtime(mnt_map *, char *, time_t *); @@ -211,6 +202,16 @@ extern int file_reload(mnt_map *, char *, add_fn *); extern int file_search(mnt_map *, char *, char *, char **, time_t *); #endif /* HAVE_MAP_FILE */ +/* EXECUTABLE MAPS */ +#ifdef HAVE_MAP_EXEC +extern int exec_init(mnt_map *, char *, time_t *); +extern int exec_search(mnt_map *, char *, char *, char **, time_t *); +#endif /* HAVE_MAP_EXEC */ + +/* Sun-syntax MAPS */ +#ifdef HAVE_MAP_SUN +/* XXX: fill in */ +#endif /* HAVE_MAP_SUN */ /* note that the choice of MAPC_{INC,ALL} will affect browsable_dirs */ static map_type maptypes[] = @@ -323,6 +324,20 @@ static map_type maptypes[] = MAPC_INC }, #endif /* HAVE_MAP_EXEC */ +#ifdef notyet /* probe function needs to be there or SEGV */ +#ifdef HAVE_MAP_SUN + { + /* XXX: fill in */ + "sun", + NULL, + NULL, + NULL, /* isup function */ + NULL, + NULL, + 0 + }, +#endif /* HAVE_MAP_SUN */ +#endif { "error", error_init, @@ -412,6 +427,44 @@ mapc_add_kv(mnt_map *m, char *key, char *val) dlog("add_kv: %s -> %s", key, val); + if (val != NULL && strchr(val, '\n') != NULL) { + /* + * If the entry value contains multiple lines we need to break + * them up and add them recursively. This is a workaround to + * support Sun style multi-mounts. Amd converts Sun style + * mulit-mounts to type:=auto. The problem is that Sun packs all + * the entries on one line. When Amd does the conversion it puts + * each type:=auto entry on the same line separated by '\n'. + */ + char *entry, *tok; + + /* + * The first line should contain the first entry. The key for + * this entry is the key passed into this function. + */ + if ((tok = strtok(val, "\n")) != NULL) { + mapc_add_kv(m, key, xstrdup(tok)); + } + + /* + * For the rest of the entries we need to tokenize them by '\n' + * and separate the keys from there entries. + */ + while ((tok = strtok(NULL, "\n")) != NULL) { + key = tok; + /* find the entry */ + for (entry = key; *entry && !isspace((unsigned char)*entry); entry++); + if (*entry) { + *entry++ = '\0'; + } + + mapc_add_kv(m, xstrdup(key), xstrdup(entry)); + } + + XFREE(val); + return; + } + #ifdef HAVE_REGEXEC if (MAPC_ISRE(m)) { char pattern[MAXPATHLEN]; @@ -431,7 +484,8 @@ mapc_add_kv(mnt_map *m, char *key, char *val) plog(XLOG_USER, "error compiling RE \"%s\": %s", pattern, errstr); return; } - } + } else + memset(&re, 0, sizeof(re)); #endif /* HAVE_REGEXEC */ h = &m->kvhash[hash]; @@ -443,6 +497,7 @@ mapc_add_kv(mnt_map *m, char *key, char *val) n->val = val; n->next = *h; *h = n; + m->nentries++; } @@ -506,7 +561,7 @@ mapc_find_wildcard(mnt_map *m) int rc = search_map(m, wildcard, &m->wildcard); if (rc != 0) - m->wildcard = 0; + m->wildcard = NULL; } @@ -520,7 +575,7 @@ static int mapc_reload_map(mnt_map *m) { int error, ret = 0; - kv *maphash[NKVHASH], *tmphash[NKVHASH]; + kv *maphash[NKVHASH]; time_t t; error = (*m->mtime) (m, m->map_name, &t); @@ -546,6 +601,7 @@ mapc_reload_map(mnt_map *m) memset((voidp) m->kvhash, 0, sizeof(m->kvhash)); dlog("calling map reload on %s", m->map_name); + m->nentries = 0; error = (*m->reload) (m, m->map_name, mapc_add_kv); if (error) { if (m->reloads == 0) @@ -561,19 +617,19 @@ mapc_reload_map(mnt_map *m) else plog(XLOG_INFO, "reload #%d of map %s succeeded", m->reloads, m->map_name); - memcpy((voidp) tmphash, (voidp) m->kvhash, sizeof(m->kvhash)); - memcpy((voidp) m->kvhash, (voidp) maphash, sizeof(m->kvhash)); - mapc_clear(m); - memcpy((voidp) m->kvhash, (voidp) tmphash, sizeof(m->kvhash)); + mapc_clear_kvhash(maphash); + if (m->wildcard) { + XFREE(m->wildcard); + m->wildcard = NULL; + } m->modify = t; ret = 1; } - m->wildcard = 0; dlog("calling mapc_search for wildcard"); error = mapc_search(m, wildcard, &m->wildcard); if (error) - m->wildcard = 0; + m->wildcard = NULL; return ret; } @@ -582,12 +638,12 @@ mapc_reload_map(mnt_map *m) * Create a new map */ static mnt_map * -mapc_create(char *map, char *opt, const char *type) +mapc_create(char *map, char *opt, const char *type, const char *mntpt) { mnt_map *m = ALLOC(struct mnt_map); map_type *mt; time_t modify = 0; - int alloc = 0; + u_int alloc = 0; cmdoption(opt, mapc_opt, &alloc); @@ -632,6 +688,7 @@ mapc_create(char *map, char *opt, const char *type) /* assert: mt in maptypes */ m->flags = alloc & ~MAPC_CACHE_MASK; + m->nentries = 0; alloc &= MAPC_CACHE_MASK; if (alloc == MAPC_DFLT) @@ -678,12 +735,12 @@ mapc_create(char *map, char *opt, const char *type) m->search = alloc >= MAPC_ALL ? error_search : mt->search; m->mtime = mt->mtime; memset((voidp) m->kvhash, 0, sizeof(m->kvhash)); - m->map_name = strdup(map); + m->map_name = xstrdup(map); m->refc = 1; - m->wildcard = 0; + m->wildcard = NULL; m->reloads = 0; - /* Unfortunately with current code structure, this cannot be initialized here */ - m->cfm = NULL; + /* initialize per-map information (flags, etc.) */ + m->cfm = find_cf_map(mntpt); /* * synchronize cache with reality @@ -695,10 +752,10 @@ mapc_create(char *map, char *opt, const char *type) /* - * Free the cached data in a map + * Free the cached data in a map hash */ static void -mapc_clear(mnt_map *m) +mapc_clear_kvhash(kv **kvhash) { int i; @@ -707,16 +764,25 @@ mapc_clear(mnt_map *m) * along free'ing the data. */ for (i = 0; i < NKVHASH; i++) { - kv *k = m->kvhash[i]; + kv *k = kvhash[i]; while (k) { kv *n = k->next; XFREE(k->key); - if (k->val) - XFREE(k->val); + XFREE(k->val); XFREE(k); k = n; } } +} + + +/* + * Free the cached data in a map + */ +static void +mapc_clear(mnt_map *m) +{ + mapc_clear_kvhash(m->kvhash); /* * Zero the hash slots @@ -726,10 +792,10 @@ mapc_clear(mnt_map *m) /* * Free the wildcard if it exists */ - if (m->wildcard) { - XFREE(m->wildcard); - m->wildcard = 0; - } + XFREE(m->wildcard); + m->wildcard = NULL; + + m->nentries = 0; } @@ -737,7 +803,7 @@ mapc_clear(mnt_map *m) * Find a map, or create one if it does not exist */ mnt_map * -mapc_find(char *map, char *opt, const char *maptype) +mapc_find(char *map, char *opt, const char *maptype, const char *mntpt) { mnt_map *m; @@ -751,7 +817,7 @@ mapc_find(char *map, char *opt, const char *maptype) ITER(m, mnt_map, &map_list_head) if (STREQ(m->map_name, map)) return mapc_dup(m); - m = mapc_create(map, opt, maptype); + m = mapc_create(map, opt, maptype, mntpt); ins_que(&m->hdr, &map_list_head); return m; @@ -788,7 +854,7 @@ static int mapc_meta_search(mnt_map *m, char *key, char **pval, int recurse) { int error = 0; - kv *k = 0; + kv *k = NULL; /* * Firewall @@ -839,7 +905,7 @@ mapc_meta_search(mnt_map *m, char *key, char **pval, int recurse) int retval; /* XXX: this code was recently ported, and must be tested -Erez */ - retval = regexec(&k->re, key, 0, 0, 0); + retval = regexec(&k->re, key, 0, NULL, 0); if (retval == 0) { /* succeeded */ break; } else { /* failed to match, log error */ @@ -863,7 +929,7 @@ mapc_meta_search(mnt_map *m, char *key, char **pval, int recurse) */ if (k) { if (k->val) - *pval = strdup(k->val); + *pval = xstrdup(k->val); else error = ENOENT; } else if (m->alloc >= MAPC_ALL) { @@ -880,7 +946,7 @@ mapc_meta_search(mnt_map *m, char *key, char **pval, int recurse) */ error = search_map(m, key, pval); if (!error && m->alloc == MAPC_INC) - mapc_add_kv(m, strdup(key), strdup(*pval)); + mapc_add_kv(m, xstrdup(key), xstrdup(*pval)); } /* @@ -911,11 +977,11 @@ mapc_meta_search(mnt_map *m, char *key, char **pval, int recurse) dlog("mapc recurses on %s", wildname); error = mapc_meta_search(m, wildname, pval, MREC_PART); if (error) - *subp = 0; + *subp = '\0'; } if (error > 0 && m->wildcard) { - *pval = strdup(m->wildcard); + *pval = xstrdup(m->wildcard); error = 0; } } @@ -1031,7 +1097,7 @@ root_newmap(const char *dir, const char *opts, const char *map, const cf_map_t * * First make sure we have a root map to talk about... */ if (!root_map) - root_map = mapc_find(ROOT_MAP, "mapdefault", NULL); + root_map = mapc_find(ROOT_MAP, "mapdefault", NULL, NULL); /* * Then add the entry... @@ -1071,7 +1137,7 @@ root_newmap(const char *dir, const char *opts, const char *map, const cf_map_t * else xstrlcpy(str, opts, sizeof(str)); } - mapc_repl_kv(root_map, strdup((char *)dir), strdup(str)); + mapc_repl_kv(root_map, xstrdup(dir), xstrdup(str)); } diff --git a/contrib/amd/amd/mntfs.c b/contrib/amd/amd/mntfs.c index 6021838..a26ff8f 100644 --- a/contrib/amd/amd/mntfs.c +++ b/contrib/amd/amd/mntfs.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -52,6 +48,16 @@ qelem mfhead = {&mfhead, &mfhead}; int mntfs_allocated; +am_loc * +dup_loc(am_loc *loc) +{ + loc->al_refc++; + if (loc->al_mnt) { + dup_mntfs(loc->al_mnt); + } + return loc; +} + mntfs * dup_mntfs(mntfs *mf) { @@ -71,24 +77,27 @@ init_mntfs(mntfs *mf, am_ops *ops, am_opts *mo, char *mp, char *info, char *auto { mf->mf_ops = ops; mf->mf_fsflags = ops->nfs_fs_flags; - mf->mf_fo = mo; - mf->mf_mount = strdup(mp); - mf->mf_info = strdup(info); - mf->mf_auto = strdup(auto_opts); - mf->mf_mopts = strdup(mopts); - mf->mf_remopts = strdup(remopts); + mf->mf_fo = 0; + if (mo) + mf->mf_fo = copy_opts(mo); + + mf->mf_mount = xstrdup(mp); + mf->mf_info = xstrdup(info); + mf->mf_auto = xstrdup(auto_opts); + mf->mf_mopts = xstrdup(mopts); + mf->mf_remopts = xstrdup(remopts); mf->mf_loopdev = NULL; mf->mf_refc = 1; mf->mf_flags = 0; mf->mf_error = -1; mf->mf_cid = 0; - mf->mf_private = 0; - mf->mf_prfree = 0; + mf->mf_private = NULL; + mf->mf_prfree = NULL; if (ops->ffserver) mf->mf_server = (*ops->ffserver) (mf); else - mf->mf_server = 0; + mf->mf_server = NULL; } @@ -138,7 +147,7 @@ locate_mntfs(am_ops *ops, am_opts *mo, char *mp, char *info, char *auto_opts, ch } dlog("mf->mf_flags = %#x", mf->mf_flags); - mf->mf_fo = mo; + if ((mf->mf_flags & MFF_RESTART) && amd_state < Finishing) { /* * Restart a previously mounted filesystem. @@ -171,7 +180,7 @@ locate_mntfs(am_ops *ops, am_opts *mo, char *mp, char *info, char *auto_opts, ch if (mf->mf_private && mf->mf_prfree) { mf->mf_prfree(mf->mf_private); - mf->mf_private = 0; + mf->mf_private = NULL; } fs = ops->ffserver ? (*ops->ffserver) (mf) : (fserver *) NULL; @@ -202,26 +211,35 @@ find_mntfs(am_ops *ops, am_opts *mo, char *mp, char *info, char *auto_opts, char mntfs * new_mntfs(void) { - return alloc_mntfs(&amfs_error_ops, (am_opts *) 0, "//nil//", ".", "", "", ""); + return alloc_mntfs(&amfs_error_ops, (am_opts *) NULL, "//nil//", ".", "", "", ""); +} + +am_loc * +new_loc(void) +{ + am_loc *loc = CALLOC(struct am_loc); + loc->al_fo = 0; + loc->al_mnt = new_mntfs(); + loc->al_refc = 1; + return loc; } static void uninit_mntfs(mntfs *mf) { - if (mf->mf_auto) - XFREE(mf->mf_auto); - if (mf->mf_mopts) - XFREE(mf->mf_mopts); - if (mf->mf_remopts) - XFREE(mf->mf_remopts); - if (mf->mf_info) - XFREE(mf->mf_info); + if (mf->mf_fo) { + free_opts(mf->mf_fo); + XFREE(mf->mf_fo); + } + XFREE(mf->mf_auto); + XFREE(mf->mf_mopts); + XFREE(mf->mf_remopts); + XFREE(mf->mf_info); if (mf->mf_private && mf->mf_prfree) (*mf->mf_prfree) (mf->mf_private); - if (mf->mf_mount) - XFREE(mf->mf_mount); + XFREE(mf->mf_mount); /* * Clean up the file server @@ -255,6 +273,16 @@ discard_mntfs(voidp v) --mntfs_allocated; } +static void +discard_loc(voidp v) +{ + am_loc *loc = v; + if (loc->al_fo) { + free_opts(loc->al_fo); + XFREE(loc->al_fo); + } + XFREE(loc); +} void flush_mntfs(void) @@ -270,6 +298,23 @@ flush_mntfs(void) } } +void +free_loc(opaque_t arg) +{ + am_loc *loc = (am_loc *) arg; + dlog("free_loc %p", loc); + + if (loc->al_refc <= 0) { + plog(XLOG_ERROR, "IGNORING free_loc for 0x%p", loc); + return; + } + + if (loc->al_mnt) + free_mntfs(loc->al_mnt); + if (--loc->al_refc == 0) { + discard_loc(loc); + } +} void free_mntfs(opaque_t arg) @@ -356,7 +401,6 @@ realloc_mntfs(mntfs *mf, am_ops *ops, am_opts *mo, char *mp, char *info, char *a if (mf->mf_ops != &amfs_error_ops && (mf->mf_flags & MFF_MOUNTED) && !FSRV_ISDOWN(mf->mf_server)) { - mf->mf_fo = mo; return mf; } diff --git a/contrib/amd/amd/nfs_prot_svc.c b/contrib/amd/amd/nfs_prot_svc.c index 0dd6992..cbde172 100644 --- a/contrib/amd/amd/nfs_prot_svc.c +++ b/contrib/amd/amd/nfs_prot_svc.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -69,6 +65,7 @@ extern nfsstatfsres *nfsproc_statfs_2_svc(am_nfs_fh *, struct svc_req *); /* global variables */ SVCXPRT *current_transp; +dispatcher_t nfs_dispatcher = nfs_program_2; /* typedefs */ typedef char *(*nfssvcproc_t)(voidp, struct svc_req *); @@ -299,3 +296,193 @@ nfs_program_2(struct svc_req *rqstp, SVCXPRT *transp) going_down(1); } } + +void +nfs_program_3(struct svc_req *rqstp, register SVCXPRT *transp) +{ + union { + am_GETATTR3args am_nfs3_getattr_3_arg; + am_SETATTR3args am_nfs3_setattr_3_arg; + am_LOOKUP3args am_nfs3_lookup_3_arg; + am_ACCESS3args am_nfs3_access_3_arg; + am_READLINK3args am_nfs3_readlink_3_arg; + am_READ3args am_nfs3_read_3_arg; + am_WRITE3args am_nfs3_write_3_arg; + am_CREATE3args am_nfs3_create_3_arg; + am_MKDIR3args am_nfs3_mkdir_3_arg; + am_SYMLINK3args am_nfs3_symlink_3_arg; + am_MKNOD3args am_nfs3_mknod_3_arg; + am_REMOVE3args am_nfs3_remove_3_arg; + am_RMDIR3args am_nfs3_rmdir_3_arg; + am_RENAME3args am_nfs3_rename_3_arg; + am_LINK3args am_nfs3_link_3_arg; + am_READDIR3args am_nfs3_readdir_3_arg; + am_READDIRPLUS3args am_nfs3_readdirplus_3_arg; + am_FSSTAT3args am_nfs3_fsstat_3_arg; + am_FSINFO3args am_nfs3_fsinfo_3_arg; + am_PATHCONF3args am_nfs3_pathconf_3_arg; + am_COMMIT3args am_nfs3_commit_3_arg; + } argument; + char *result; + xdrproc_t _xdr_argument, _xdr_result; + nfssvcproc_t local; + + switch (rqstp->rq_proc) { + case AM_NFS3_NULL: + _xdr_argument = (xdrproc_t) xdr_void; + _xdr_result = (xdrproc_t) xdr_void; + local = (nfssvcproc_t) am_nfs3_null_3_svc; + break; + + case AM_NFS3_GETATTR: + _xdr_argument = (xdrproc_t) xdr_am_GETATTR3args; + _xdr_result = (xdrproc_t) xdr_am_GETATTR3res; + local = (nfssvcproc_t) (char *(*)(char *, struct svc_req *)) am_nfs3_getattr_3_svc; + break; + + case AM_NFS3_SETATTR: + _xdr_argument = (xdrproc_t) xdr_am_SETATTR3args; + _xdr_result = (xdrproc_t) xdr_am_SETATTR3res; + local = (nfssvcproc_t) (char *(*)(char *, struct svc_req *)) am_nfs3_setattr_3_svc; + break; + + case AM_NFS3_LOOKUP: + _xdr_argument = (xdrproc_t) xdr_am_LOOKUP3args; + _xdr_result = (xdrproc_t) xdr_am_LOOKUP3res; + local = (nfssvcproc_t) (char *(*)(char *, struct svc_req *)) am_nfs3_lookup_3_svc; + break; + + case AM_NFS3_ACCESS: + _xdr_argument = (xdrproc_t) xdr_am_ACCESS3args; + _xdr_result = (xdrproc_t) xdr_am_ACCESS3res; + local = (nfssvcproc_t) (char *(*)(char *, struct svc_req *)) am_nfs3_access_3_svc; + break; + + case AM_NFS3_READLINK: + _xdr_argument = (xdrproc_t) xdr_am_READLINK3args; + _xdr_result = (xdrproc_t) xdr_am_READLINK3res; + local = (nfssvcproc_t) (char *(*)(char *, struct svc_req *)) am_nfs3_readlink_3_svc; + break; + + case AM_NFS3_READ: + _xdr_argument = (xdrproc_t) xdr_am_READ3args; + _xdr_result = (xdrproc_t) xdr_am_READ3res; + local = (nfssvcproc_t) (char *(*)(char *, struct svc_req *)) am_nfs3_read_3_svc; + break; + + case AM_NFS3_WRITE: + _xdr_argument = (xdrproc_t) xdr_am_WRITE3args; + _xdr_result = (xdrproc_t) xdr_am_WRITE3res; + local = (nfssvcproc_t) (char *(*)(char *, struct svc_req *)) am_nfs3_write_3_svc; + break; + + case AM_NFS3_CREATE: + _xdr_argument = (xdrproc_t) xdr_am_CREATE3args; + _xdr_result = (xdrproc_t) xdr_am_CREATE3res; + local = (nfssvcproc_t) (char *(*)(char *, struct svc_req *)) am_nfs3_create_3_svc; + break; + + case AM_NFS3_MKDIR: + _xdr_argument = (xdrproc_t) xdr_am_MKDIR3args; + _xdr_result = (xdrproc_t) xdr_am_MKDIR3res; + local = (nfssvcproc_t) (char *(*)(char *, struct svc_req *)) am_nfs3_mkdir_3_svc; + break; + + case AM_NFS3_SYMLINK: + _xdr_argument = (xdrproc_t) xdr_am_SYMLINK3args; + _xdr_result = (xdrproc_t) xdr_am_SYMLINK3res; + local = (nfssvcproc_t) (char *(*)(char *, struct svc_req *)) am_nfs3_symlink_3_svc; + break; + + case AM_NFS3_MKNOD: + _xdr_argument = (xdrproc_t) xdr_am_MKNOD3args; + _xdr_result = (xdrproc_t) xdr_am_MKNOD3res; + local = (nfssvcproc_t) (char *(*)(char *, struct svc_req *)) am_nfs3_mknod_3_svc; + break; + + case AM_NFS3_REMOVE: + _xdr_argument = (xdrproc_t) xdr_am_REMOVE3args; + _xdr_result = (xdrproc_t) xdr_am_REMOVE3res; + local = (nfssvcproc_t) (char *(*)(char *, struct svc_req *)) am_nfs3_remove_3_svc; + break; + + case AM_NFS3_RMDIR: + _xdr_argument = (xdrproc_t) xdr_am_RMDIR3args; + _xdr_result = (xdrproc_t) xdr_am_RMDIR3res; + local = (nfssvcproc_t) (char *(*)(char *, struct svc_req *)) am_nfs3_rmdir_3_svc; + break; + + case AM_NFS3_RENAME: + _xdr_argument = (xdrproc_t) xdr_am_RENAME3args; + _xdr_result = (xdrproc_t) xdr_am_RENAME3res; + local = (nfssvcproc_t) (char *(*)(char *, struct svc_req *)) am_nfs3_rename_3_svc; + break; + + case AM_NFS3_LINK: + _xdr_argument = (xdrproc_t) xdr_am_LINK3args; + _xdr_result = (xdrproc_t) xdr_am_LINK3res; + local = (nfssvcproc_t) (char *(*)(char *, struct svc_req *)) am_nfs3_link_3_svc; + break; + + case AM_NFS3_READDIR: + _xdr_argument = (xdrproc_t) xdr_am_READDIR3args; + _xdr_result = (xdrproc_t) xdr_am_READDIR3res; + local = (nfssvcproc_t) (char *(*)(char *, struct svc_req *)) am_nfs3_readdir_3_svc; + break; + + case AM_NFS3_READDIRPLUS: + _xdr_argument = (xdrproc_t) xdr_am_READDIRPLUS3args; + _xdr_result = (xdrproc_t) xdr_am_READDIRPLUS3res; + local = (nfssvcproc_t) (char *(*)(char *, struct svc_req *)) am_nfs3_readdirplus_3_svc; + break; + + case AM_NFS3_FSSTAT: + _xdr_argument = (xdrproc_t) xdr_am_FSSTAT3args; + _xdr_result = (xdrproc_t) xdr_am_FSSTAT3res; + local = (nfssvcproc_t) (char *(*)(char *, struct svc_req *)) am_nfs3_fsstat_3_svc; + break; + + case AM_NFS3_FSINFO: + _xdr_argument = (xdrproc_t) xdr_am_FSINFO3args; + _xdr_result = (xdrproc_t) xdr_am_FSINFO3res; + local = (nfssvcproc_t) (char *(*)(char *, struct svc_req *)) am_nfs3_fsinfo_3_svc; + break; + + case AM_NFS3_PATHCONF: + _xdr_argument = (xdrproc_t) xdr_am_PATHCONF3args; + _xdr_result = (xdrproc_t) xdr_am_PATHCONF3res; + local = (nfssvcproc_t) (char *(*)(char *, struct svc_req *)) am_nfs3_pathconf_3_svc; + break; + + case AM_NFS3_COMMIT: + _xdr_argument = (xdrproc_t) xdr_am_COMMIT3args; + _xdr_result = (xdrproc_t) xdr_am_COMMIT3res; + local = (nfssvcproc_t) (char *(*)(char *, struct svc_req *)) am_nfs3_commit_3_svc; + break; + + default: + svcerr_noproc (transp); + return; + } + + memset ((char *)&argument, 0, sizeof (argument)); + + if (!svc_getargs(transp, (xdrproc_t) _xdr_argument, (caddr_t) &argument)) { + plog(XLOG_ERROR, + "NFS xdr decode failed for %d %d %d", + (int) rqstp->rq_prog, (int) rqstp->rq_vers, (int) rqstp->rq_proc); + svcerr_decode(transp); + return; + } + + result = (*local) (&argument, rqstp); + if (result != NULL && !svc_sendreply(transp, (xdrproc_t) _xdr_result, result)) { + svcerr_systemerr (transp); + } + + if (!svc_freeargs (transp, (xdrproc_t) _xdr_argument, (caddr_t) &argument)) { + plog(XLOG_FATAL, "unable to free rpc arguments in nfs_program_3"); + going_down(1); + } + return; +} diff --git a/contrib/amd/amd/nfs_start.c b/contrib/amd/amd/nfs_start.c index f6aba94..b6c544d 100644 --- a/contrib/amd/amd/nfs_start.c +++ b/contrib/amd/amd/nfs_start.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -65,12 +61,11 @@ u_short nfs_port = 0; static void checkup(void) { - static int max_fd = 0; - static char *max_mem = 0; - + static char *max_mem = NULL; int next_fd = dup(0); caddr_t next_mem = sbrk(0); + close(next_fd); if (max_fd < next_fd) { @@ -135,8 +130,8 @@ do_select(int smask, int fds, fd_set *fdp, struct timeval *tvp) /* * Wait for input */ - nsel = select(fds, fdp, (fd_set *) 0, (fd_set *) 0, - tvp->tv_sec ? tvp : (struct timeval *) 0); + nsel = select(fds, fdp, (fd_set *) NULL, (fd_set *) NULL, + tvp->tv_sec ? tvp : (struct timeval *) NULL); } #ifdef HAVE_SIGACTION @@ -171,7 +166,7 @@ rpc_pending_now(void) FD_SET(fwd_sock, &readfds); tvv.tv_sec = tvv.tv_usec = 0; - nsel = select(FD_SETSIZE, &readfds, (fd_set *) 0, (fd_set *) 0, &tvv); + nsel = select(FD_SETSIZE, &readfds, (fd_set *) NULL, (fd_set *) NULL, &tvv); if (nsel < 1) return (0); if (FD_ISSET(fwd_sock, &readfds)) @@ -365,15 +360,16 @@ mount_automounter(int ppid) * already created the service during restart_automounter_nodes(). */ if (nfs_port == 0) { - ret = create_nfs_service(&soNFS, &nfs_port, &nfsxprt, nfs_program_2); + ret = create_nfs_service(&soNFS, &nfs_port, &nfsxprt, nfs_dispatcher, + get_nfs_dispatcher_version(nfs_dispatcher)); if (ret != 0) return ret; } xsnprintf(pid_fsname, sizeof(pid_fsname), "%s:(pid%ld,port%u)", am_get_hostname(), (long) am_mypid, nfs_port); - /* security: if user sets -D amq, don't even create listening socket */ - if (!amuDebug(D_AMQ)) { + /* security: if user sets -D noamq, don't even create listening socket */ + if (amuDebug(D_AMQ)) { ret = create_amq_service(&udp_soAMQ, &udp_amqp, &udp_amqncp, @@ -416,25 +412,33 @@ mount_automounter(int ppid) return 0; } - if (!amuDebug(D_AMQ)) { + if (amuDebug(D_AMQ)) { /* * Complete registration of amq (first TCP service then UDP) */ - unregister_amq(); - - ret = amu_svc_register(tcp_amqp, get_amd_program_number(), AMQ_VERSION, - amq_program_1, IPPROTO_TCP, tcp_amqncp); - if (ret != 1) { - plog(XLOG_FATAL, "unable to register (AMQ_PROGRAM=%d, AMQ_VERSION, tcp)", get_amd_program_number()); + int tcp_ok = 0, udp_ok = 0; + + unregister_amq(); /* unregister leftover Amd, if any, just in case */ + + tcp_ok = amu_svc_register(tcp_amqp, get_amd_program_number(), AMQ_VERSION, + amq_program_1, IPPROTO_TCP, tcp_amqncp); + if (!tcp_ok) + plog(XLOG_FATAL, + "unable to register (AMQ_PROGRAM=%lu, AMQ_VERSION, tcp)", + get_amd_program_number()); + + udp_ok = amu_svc_register(udp_amqp, get_amd_program_number(), AMQ_VERSION, + amq_program_1, IPPROTO_UDP, udp_amqncp); + if (!udp_ok) + plog(XLOG_FATAL, + "unable to register (AMQ_PROGRAM=%lu, AMQ_VERSION, udp)", + get_amd_program_number()); + + /* return error only if both failed */ + if (!tcp_ok && !udp_ok) { + amd_state = Done; return 3; } - - ret = amu_svc_register(udp_amqp, get_amd_program_number(), AMQ_VERSION, - amq_program_1, IPPROTO_UDP, udp_amqncp); - if (ret != 1) { - plog(XLOG_FATAL, "unable to register (AMQ_PROGRAM=%d, AMQ_VERSION, udp)", get_amd_program_number()); - return 4; - } } /* diff --git a/contrib/amd/amd/nfs_subr.c b/contrib/amd/amd/nfs_subr.c index 80d3ca8..734c698 100644 --- a/contrib/amd/amd/nfs_subr.c +++ b/contrib/amd/amd/nfs_subr.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -78,6 +74,17 @@ struct am_fh { } u; }; +struct am_fh3 { + u_int fhh_gen; /* generation number */ + union { + struct { + int fhh_type; /* old or new am_fh */ + pid_t fhh_pid; /* process id */ + int fhh_id; /* map id */ + } s; + char fhh_path[AM_FHSIZE3-sizeof(u_int)]; /* path to am_node */ + } u; +}; /* forward declarations */ /* converting am-filehandles to mount-points */ @@ -96,10 +103,10 @@ do_readlink(am_node *mp, int *error_return) * otherwise if a link exists use that, * otherwise use the mount point. */ - if (mp->am_mnt->mf_ops->readlink) { + if (mp->am_al->al_mnt->mf_ops->readlink) { int retry = 0; - mp = (*mp->am_mnt->mf_ops->readlink) (mp, &retry); - if (mp == 0) { + mp = (*mp->am_al->al_mnt->mf_ops->readlink) (mp, &retry); + if (mp == NULL) { *error_return = retry; return 0; } @@ -109,7 +116,7 @@ do_readlink(am_node *mp, int *error_return) if (mp->am_link) { ln = mp->am_link; } else { - ln = mp->am_mnt->mf_mount; + ln = mp->am_al->al_mnt->mf_mount; } return ln; @@ -130,14 +137,14 @@ nfsproc_getattr_2_svc(am_nfs_fh *argp, struct svc_req *rqstp) { static nfsattrstat res; am_node *mp; - int retry; + int retry = 0; time_t now = clocktime(NULL); if (amuDebug(D_TRACE)) plog(XLOG_DEBUG, "getattr:"); mp = fh_to_mp3(argp, &retry, VLOOK_CREATE); - if (mp == 0) { + if (mp == NULL) { if (amuDebug(D_TRACE)) plog(XLOG_DEBUG, "\tretry=%d", retry); @@ -209,7 +216,7 @@ nfsproc_lookup_2_svc(nfsdiropargs *argp, struct svc_req *rqstp) xsnprintf(opt_gid, sizeof(gid_str), "%d", (int) gid); mp = fh_to_mp3(&argp->da_fhandle, &retry, VLOOK_CREATE); - if (mp == 0) { + if (mp == NULL) { if (retry < 0) { amd_stats.d_drops++; return 0; @@ -220,9 +227,9 @@ nfsproc_lookup_2_svc(nfsdiropargs *argp, struct svc_req *rqstp) am_node *ap; if (amuDebug(D_TRACE)) plog(XLOG_DEBUG, "\tlookup(%s, %s)", mp->am_path, argp->da_name); - ap = mp->am_mnt->mf_ops->lookup_child(mp, argp->da_name, &error, VLOOK_CREATE); + ap = mp->am_al->al_mnt->mf_ops->lookup_child(mp, argp->da_name, &error, VLOOK_CREATE); if (ap && error < 0) - ap = mp->am_mnt->mf_ops->mount_child(ap, &error); + ap = mp->am_al->al_mnt->mf_ops->mount_child(ap, &error); if (ap == 0) { if (error < 0) { amd_stats.d_drops++; @@ -285,7 +292,7 @@ nfs_quick_reply(am_node *mp, int error) * Free up transp. It's only used for one reply. */ XFREE(mp->am_transp); - dlog("Quick reply sent for %s", mp->am_mnt->mf_mount); + dlog("Quick reply sent for %s", mp->am_al->al_mnt->mf_mount); } } @@ -301,7 +308,7 @@ nfsproc_readlink_2_svc(am_nfs_fh *argp, struct svc_req *rqstp) plog(XLOG_DEBUG, "readlink:"); mp = fh_to_mp3(argp, &retry, VLOOK_CREATE); - if (mp == 0) { + if (mp == NULL) { readlink_retry: if (retry < 0) { amd_stats.d_drops++; @@ -379,7 +386,7 @@ unlink_or_rmdir(nfsdiropargs *argp, struct svc_req *rqstp, int unlinkp) int retry; am_node *mp = fh_to_mp3(&argp->da_fhandle, &retry, VLOOK_DELETE); - if (mp == 0) { + if (mp == NULL) { if (retry < 0) { amd_stats.d_drops++; return 0; @@ -396,8 +403,8 @@ unlink_or_rmdir(nfsdiropargs *argp, struct svc_req *rqstp, int unlinkp) if (amuDebug(D_TRACE)) plog(XLOG_DEBUG, "\tremove(%s, %s)", mp->am_path, argp->da_name); - mp = mp->am_mnt->mf_ops->lookup_child(mp, argp->da_name, &retry, VLOOK_DELETE); - if (mp == 0) { + mp = mp->am_al->al_mnt->mf_ops->lookup_child(mp, argp->da_name, &retry, VLOOK_DELETE); + if (mp == NULL) { /* * Ignore retries... */ @@ -510,7 +517,7 @@ nfsproc_readdir_2_svc(nfsreaddirargs *argp, struct svc_req *rqstp) plog(XLOG_DEBUG, "readdir:"); mp = fh_to_mp3(&argp->rda_fhandle, &retry, VLOOK_CREATE); - if (mp == 0) { + if (mp == NULL) { if (retry < 0) { amd_stats.d_drops++; return 0; @@ -519,7 +526,7 @@ nfsproc_readdir_2_svc(nfsreaddirargs *argp, struct svc_req *rqstp) } else { if (amuDebug(D_TRACE)) plog(XLOG_DEBUG, "\treaddir(%s)", mp->am_path); - res.rdr_status = nfs_error((*mp->am_mnt->mf_ops->readdir) + res.rdr_status = nfs_error((*mp->am_al->al_mnt->mf_ops->readdir) (mp, argp->rda_cookie, &res.rdr_u.rdr_reply_u, e_res, argp->rda_count)); mp->am_stats.s_readdir++; @@ -541,7 +548,7 @@ nfsproc_statfs_2_svc(am_nfs_fh *argp, struct svc_req *rqstp) plog(XLOG_DEBUG, "statfs:"); mp = fh_to_mp3(argp, &retry, VLOOK_CREATE); - if (mp == 0) { + if (mp == NULL) { if (retry < 0) { amd_stats.d_drops++; return 0; @@ -562,8 +569,8 @@ nfsproc_statfs_2_svc(am_nfs_fh *argp, struct svc_req *rqstp) /* check if map is browsable and show_statfs_entries=yes */ if ((gopt.flags & CFM_SHOW_STATFS_ENTRIES) && - mp->am_mnt && mp->am_mnt->mf_mopts) { - mnt.mnt_opts = mp->am_mnt->mf_mopts; + mp->am_al->al_mnt && mp->am_al->al_mnt->mf_mopts) { + mnt.mnt_opts = mp->am_al->al_mnt->mf_mopts; if (amu_hasmntopt(&mnt, "browsable")) { count_map_entries(mp, &fp->sfrok_blocks, @@ -599,7 +606,7 @@ count_map_entries(const am_node *mp, u_int *out_blocks, u_int *out_bfree, u_int blocks = bfree = bavail = 0; if (!mp) goto out; - mf = mp->am_mnt; + mf = mp->am_al->al_mnt; if (!mf) goto out; mmp = (mnt_map *) mf->mf_private; @@ -625,58 +632,18 @@ out: *out_bavail = bavail; } - -/* - * Convert from file handle to automount node. - */ static am_node * -fh_to_mp3(am_nfs_fh *fhp, int *rp, int vop) +validate_ap(am_node *node, int *rp, u_int fhh_gen) { - struct am_fh *fp = (struct am_fh *) fhp; - am_node *ap = 0; - - if (fp->u.s.fhh_type != 0) { - /* New filehandle type */ - int len = sizeof(*fhp) - sizeof(fp->fhh_gen); - char *path = xmalloc(len+1); - /* - * Because fhp is treated as a filehandle we use memcpy - * instead of xstrlcpy. - */ - memcpy(path, (char *) fp->u.fhh_path, len); - path[len] = '\0'; - /* dlog("fh_to_mp3: new filehandle: %s", path); */ - - ap = path_to_exported_ap(path); - XFREE(path); - } else { - /* dlog("fh_to_mp3: old filehandle: %d", fp->u.s.fhh_id); */ - /* - * Check process id matches - * If it doesn't then it is probably - * from an old kernel-cached filehandle - * which is now out of date. - */ - if (fp->u.s.fhh_pid != get_server_pid()) { - dlog("fh_to_mp3: wrong pid %ld != my pid %ld", - (long) fp->u.s.fhh_pid, get_server_pid()); - goto drop; - } - - /* - * Get hold of the supposed mount node - */ - ap = get_exported_ap(fp->u.s.fhh_id); - } - + am_node *ap = node; /* * Check the generation number in the node * matches the one from the kernel. If not * then the old node has been timed out and * a new one allocated. */ - if (ap != NULL && ap->am_gen != fp->fhh_gen) - ap = 0; + if (node != NULL && node->am_gen != fhh_gen) + ap = NULL; /* * If it doesn't exists then drop the request @@ -690,12 +657,12 @@ fh_to_mp3(am_nfs_fh *fhp, int *rp, int vop) * for it. This implements the replicated filesystem * retries. */ - if (ap->am_mnt && FSRV_ISDOWN(ap->am_mnt->mf_server) && ap->am_parent) { + if (ap->am_al->al_mnt && FSRV_ISDOWN(ap->am_al->al_mnt->mf_server) && ap->am_parent) { int error; am_node *orig_ap = ap; - dlog("fh_to_mp3: %s (%s) is hung: lookup alternative file server", - orig_ap->am_path, orig_ap->am_mnt->mf_info); + dlog("%s: %s (%s) is hung: lookup alternative file server", __func__, + orig_ap->am_path, orig_ap->am_al->al_mnt->mf_info); /* * Update modify time of parent node. @@ -712,11 +679,11 @@ fh_to_mp3(am_nfs_fh *fhp, int *rp, int vop) * to the caller. */ if (vop == VLOOK_CREATE) { - ap = orig_ap->am_parent->am_mnt->mf_ops->lookup_child(orig_ap->am_parent, orig_ap->am_name, &error, vop); + ap = orig_ap->am_parent->am_al->al_mnt->mf_ops->lookup_child(orig_ap->am_parent, orig_ap->am_name, &error, vop); if (ap && error < 0) - ap = orig_ap->am_parent->am_mnt->mf_ops->mount_child(ap, &error); + ap = orig_ap->am_parent->am_al->al_mnt->mf_ops->mount_child(ap, &error); } else { - ap = 0; + ap = NULL; error = ESTALE; } if (ap == 0) { @@ -735,13 +702,13 @@ fh_to_mp3(am_nfs_fh *fhp, int *rp, int vop) new_ttl(orig_ap); } -#endif +#endif /* 0 */ /* * Disallow references to objects being unmounted, unless * they are automount points. */ - if (ap->am_mnt && (ap->am_mnt->mf_flags & MFF_UNMOUNTING) && + if (ap->am_al->al_mnt && (ap->am_al->al_mnt->mf_flags & MFF_UNMOUNTING) && !(ap->am_flags & AMF_ROOT)) { if (amd_state == Finishing) *rp = ENOENT; @@ -752,7 +719,7 @@ fh_to_mp3(am_nfs_fh *fhp, int *rp, int vop) new_ttl(ap); drop: - if (!ap || !ap->am_mnt) { + if (!ap || !ap->am_al->al_mnt) { /* * If we are shutting down then it is likely * that this node has disappeared because of @@ -764,14 +731,60 @@ drop: */ if (amd_state == Finishing) *rp = ENOENT; - else + else { *rp = ESTALE; - amd_stats.d_stale++; + amd_stats.d_stale++; + } } return ap; } +/* + * Convert from file handle to automount node. + */ +static am_node * +fh_to_mp3(am_nfs_fh *fhp, int *rp, int vop) +{ + struct am_fh *fp = (struct am_fh *) fhp; + am_node *ap = NULL; + + if (fp->u.s.fhh_type != 0) { + /* New filehandle type */ + int len = sizeof(*fhp) - sizeof(fp->fhh_gen); + char *path = xmalloc(len+1); + /* + * Because fhp is treated as a filehandle we use memcpy + * instead of xstrlcpy. + */ + memcpy(path, (char *) fp->u.fhh_path, len); + path[len] = '\0'; + dlog("%s: new filehandle: %s", __func__, path); + + ap = path_to_exported_ap(path); + XFREE(path); + } else { + dlog("%s: old filehandle: %d", __func__, fp->u.s.fhh_id); + /* + * Check process id matches + * If it doesn't then it is probably + * from an old kernel-cached filehandle + * which is now out of date. + */ + if (fp->u.s.fhh_pid != get_server_pid()) { + dlog("%s: wrong pid %ld != my pid %ld", __func__, + (long) fp->u.s.fhh_pid, get_server_pid()); + goto done; + } + + /* + * Get hold of the supposed mount node + */ + ap = get_exported_ap(fp->u.s.fhh_id); + } +done: + return validate_ap(ap, rp, fp->fhh_gen); +} static am_node * fh_to_mp(am_nfs_fh *fhp) @@ -781,6 +794,56 @@ fh_to_mp(am_nfs_fh *fhp) return fh_to_mp3(fhp, &dummy, VLOOK_CREATE); } +static am_node * +fh3_to_mp3(am_nfs_fh3 *fhp, int *rp, int vop) +{ + struct am_fh3 *fp = (struct am_fh3 *) fhp->am_fh3_data; + am_node *ap = NULL; + + if (fp->u.s.fhh_type != 0) { + /* New filehandle type */ + int len = sizeof(*fp) - sizeof(fp->fhh_gen); + char *path = xmalloc(len+1); + /* + * Because fhp is treated as a filehandle we use memcpy + * instead of xstrlcpy. + */ + memcpy(path, (char *) fp->u.fhh_path, len); + path[len] = '\0'; + dlog("%s: new filehandle: %s", __func__, path); + + ap = path_to_exported_ap(path); + XFREE(path); + } else { + dlog("%s: old filehandle: %d", __func__, fp->u.s.fhh_id); + /* + * Check process id matches + * If it doesn't then it is probably + * from an old kernel-cached filehandle + * which is now out of date. + */ + if (fp->u.s.fhh_pid != get_server_pid()) { + dlog("%s: wrong pid %ld != my pid %ld", __func__, + (long) fp->u.s.fhh_pid, get_server_pid()); + goto done; + } + + /* + * Get hold of the supposed mount node + */ + ap = get_exported_ap(fp->u.s.fhh_id); + } +done: + return validate_ap(ap, rp, fp->fhh_gen); +} + +static am_node * +fh3_to_mp(am_nfs_fh3 *fhp) +{ + int dummy; + + return fh3_to_mp3(fhp, &dummy, VLOOK_CREATE); +} /* * Convert from automount node to file handle. @@ -826,3 +889,975 @@ mp_to_fh(am_node *mp, am_nfs_fh *fhp) /* dlog("mp_to_fh: old filehandle: %d", fp->u.s.fhh_id); */ } } +void +mp_to_fh3(am_node *mp, am_nfs_fh3 *fhp) +{ + u_int pathlen; + struct am_fh3 *fp = (struct am_fh3 *) fhp->am_fh3_data; + + memset((char *) fhp, 0, sizeof(am_nfs_fh3)); + fhp->am_fh3_length = AM_FHSIZE3; + + /* Store the generation number */ + fp->fhh_gen = mp->am_gen; + + pathlen = strlen(mp->am_path); + if (pathlen <= sizeof(*fp) - sizeof(fp->fhh_gen)) { + /* dlog("mp_to_fh: new filehandle: %s", mp->am_path); */ + + /* + * Because fhp is treated as a filehandle we use memcpy instead of + * xstrlcpy. + */ + memcpy(fp->u.fhh_path, mp->am_path, pathlen); /* making a filehandle */ + } else { + /* + * Take the process id + */ + fp->u.s.fhh_pid = get_server_pid(); + + /* + * ... the map number + */ + fp->u.s.fhh_id = mp->am_mapno; + + /* + * ... and the generation number (previously stored) + * to make a "unique" triple that will never + * be reallocated except across reboots (which doesn't matter) + * or if we are unlucky enough to be given the same + * pid as a previous amd (very unlikely). + */ + /* dlog("mp_to_fh: old filehandle: %d", fp->u.s.fhh_id); */ + } +} + +#ifdef HAVE_FS_NFS3 +static am_ftype3 ftype_to_ftype3(nfsftype ftype) +{ + if (ftype == NFFIFO) + return AM_NF3FIFO; + else + return ftype; +} + +static void nfstime_to_am_nfstime3(nfstime *time, am_nfstime3 *time3) +{ + time3->seconds = time->seconds; + time3->nseconds = time->useconds * 1000; +} + +static void rdev_to_am_specdata3(u_int rdev, am_specdata3 *rdev3) +{ + /* No device node here */ + rdev3->specdata1 = (u_int) -1; + rdev3->specdata2 = (u_int) -1; +} + +static void fattr_to_fattr3(nfsfattr *fattr, am_fattr3 *fattr3) +{ + fattr3->type = ftype_to_ftype3(fattr->na_type); + fattr3->mode = (am_mode3) fattr->na_mode; + fattr3->nlink = fattr->na_nlink; + fattr3->uid = (am_uid3) fattr->na_uid; + fattr3->gid = (am_uid3) fattr->na_gid; + fattr3->size = (am_size3) fattr->na_size; + fattr3->used = (am_size3) fattr->na_size; + rdev_to_am_specdata3(fattr->na_rdev, &fattr3->rdev); + fattr3->fsid = (uint64) fattr->na_fsid; + fattr3->fileid = (uint64) fattr->na_fileid; + nfstime_to_am_nfstime3(&fattr->na_atime, &fattr3->atime); + nfstime_to_am_nfstime3(&fattr->na_mtime, &fattr3->mtime); + nfstime_to_am_nfstime3(&fattr->na_ctime, &fattr3->ctime); +} + +static void fattr_to_wcc_attr(nfsfattr *fattr, am_wcc_attr *wcc_attr) +{ + wcc_attr->size = (am_size3) fattr->na_size; + nfstime_to_am_nfstime3(&fattr->na_mtime, &wcc_attr->mtime); + nfstime_to_am_nfstime3(&fattr->na_ctime, &wcc_attr->ctime); +} + +static am_nfsstat3 return_estale_or_rofs(am_nfs_fh3 *fh, + am_pre_op_attr *pre_op, + am_post_op_attr *post_op) +{ + am_node *mp; + + mp = fh3_to_mp(fh); + if (!mp) { + pre_op->attributes_follow = 0; + post_op->attributes_follow = 0; + return nfs_error(ESTALE); + } else { + am_fattr3 *fattr3 = &post_op->am_post_op_attr_u.attributes; + am_wcc_attr *wcc_attr = &pre_op->am_pre_op_attr_u.attributes; + nfsfattr *fattr = &mp->am_fattr; + pre_op->attributes_follow = 1; + fattr_to_wcc_attr(fattr, wcc_attr); + post_op->attributes_follow = 1; + fattr_to_fattr3(fattr, fattr3); + return nfs_error(EROFS); + } +} + +static am_nfsstat3 unlink3_or_rmdir3(am_diropargs3 *argp, + am_wcc_data *wcc_data, int unlinkp) +{ + static am_nfsstat3 res; + am_nfs_fh3 *dir = &argp->dir; + am_filename3 name = argp->name; + am_pre_op_attr *pre_op_dir = &wcc_data->before; + am_post_op_attr *post_op_dir = &wcc_data->after; + nfsfattr *fattr; + am_wcc_attr *wcc_attr; + am_node *mp, *ap; + int retry; + + post_op_dir->attributes_follow = 0; + + mp = fh3_to_mp3(dir, &retry, VLOOK_DELETE); + if (!mp) { + pre_op_dir->attributes_follow = 0; + if (retry < 0) { + amd_stats.d_drops++; + return 0; + } + res = nfs_error(retry); + goto out; + } + + pre_op_dir->attributes_follow = 1; + fattr = &mp->am_fattr; + wcc_attr = &pre_op_dir->am_pre_op_attr_u.attributes; + fattr_to_wcc_attr(fattr, wcc_attr); + + if (mp->am_fattr.na_type != NFDIR) { + res = nfs_error(ENOTDIR); + goto out; + } + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "\tremove(%s, %s)", mp->am_path, name); + + ap = mp->am_al->al_mnt->mf_ops->lookup_child(mp, name, &retry, VLOOK_DELETE); + if (!ap) { + /* + * Ignore retries... + */ + if (retry < 0) + retry = 0; + /* + * Usual NFS workaround... + */ + else if (retry == ENOENT) + retry = 0; + res = nfs_error(retry); + } else { + forcibly_timeout_mp(mp); + res = AM_NFS3_OK; + } + +out: + return res; +} + +voidp +am_nfs3_null_3_svc(voidp argp, struct svc_req *rqstp) +{ + static char * result; + + return (voidp) &result; +} + +am_GETATTR3res * +am_nfs3_getattr_3_svc(am_GETATTR3args *argp, struct svc_req *rqstp) +{ + static am_GETATTR3res result; + am_nfs_fh3 *fh = (am_nfs_fh3 *) &argp->object; + am_fattr3 *fattr3; + nfsfattr *fattr; + am_node *mp; + int retry = 0; + time_t now = clocktime(NULL); + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "getattr_3:"); + + mp = fh3_to_mp3(fh, &retry, VLOOK_CREATE); + if (!mp) { + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "\tretry=%d", retry); + + if (retry < 0) { + amd_stats.d_drops++; + return 0; + } + result.status = nfs_error(retry); + return &result; + } + + fattr = &mp->am_fattr; + fattr3 = (am_fattr3 *) &result.res_u.ok.obj_attributes; + fattr_to_fattr3(fattr, fattr3); + + result.status = AM_NFS3_OK; + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "\tstat(%s), size = %lu, mtime=%d.%d", + mp->am_path, + (u_long) fattr3->size, + (u_int) fattr3->mtime.seconds, + (u_int) fattr3->mtime.nseconds); + + /* Delay unmount of what was looked up */ + if (mp->am_timeo_w < 4 * gopt.am_timeo_w) + mp->am_timeo_w += gopt.am_timeo_w; + mp->am_ttl = now + mp->am_timeo_w; + + mp->am_stats.s_getattr++; + + return &result; +} + +am_SETATTR3res * +am_nfs3_setattr_3_svc(am_SETATTR3args *argp, struct svc_req *rqstp) +{ + static am_SETATTR3res result; + am_nfs_fh3 *fh = (am_nfs_fh3 *) &argp->object; + am_pre_op_attr *pre_op_obj = &result.res_u.fail.obj_wcc.before; + am_post_op_attr *post_op_obj = &result.res_u.fail.obj_wcc.after; + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "setattr_3:"); + + result.status = return_estale_or_rofs(fh, pre_op_obj, post_op_obj); + + return &result; +} + +am_LOOKUP3res * +am_nfs3_lookup_3_svc(am_LOOKUP3args *argp, struct svc_req *rqstp) +{ + static am_LOOKUP3res result; + am_nfs_fh3 *dir = &argp->what.dir; + am_post_op_attr *post_op_dir; + am_post_op_attr *post_op_obj; + am_node *mp; + int retry; + uid_t uid; + gid_t gid; + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "lookup_3:"); + + /* finally, find the effective uid/gid from RPC request */ + if (getcreds(rqstp, &uid, &gid, nfsxprt) < 0) + plog(XLOG_ERROR, "cannot get uid/gid from RPC credentials"); + xsnprintf(opt_uid, sizeof(uid_str), "%d", (int) uid); + xsnprintf(opt_gid, sizeof(gid_str), "%d", (int) gid); + + mp = fh3_to_mp3(dir, &retry, VLOOK_CREATE); + if (!mp) { + post_op_dir = &result.res_u.fail.dir_attributes; + post_op_dir->attributes_follow = 0; + if (retry < 0) { + amd_stats.d_drops++; + return 0; + } + result.status = nfs_error(retry); + } else { + post_op_dir = &result.res_u.ok.dir_attributes; + post_op_obj = &result.res_u.ok.obj_attributes; + am_filename3 name; + am_fattr3 *fattr3; + nfsfattr *fattr; + am_node *ap; + int error; + + /* dir attributes */ + post_op_dir->attributes_follow = 1; + fattr = &mp->am_fattr; + fattr3 = &post_op_dir->am_post_op_attr_u.attributes; + fattr_to_fattr3(fattr, fattr3); + + post_op_obj->attributes_follow = 0; + + name = argp->what.name; + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "\tlookup_3(%s, %s)", mp->am_path, name); + + ap = mp->am_al->al_mnt->mf_ops->lookup_child(mp, name, &error, VLOOK_CREATE); + if (ap && error < 0) + ap = mp->am_al->al_mnt->mf_ops->mount_child(ap, &error); + if (ap == 0) { + if (error < 0) { + amd_stats.d_drops++; + return 0; + } + result.status = nfs_error(error); + } else { + /* + * XXX: EXPERIMENTAL! Delay unmount of what was looked up. This + * should reduce the chance for race condition between unmounting an + * entry synchronously, and re-mounting it asynchronously. + */ + if (ap->am_ttl < mp->am_ttl) + ap->am_ttl = mp->am_ttl; + + mp_to_fh3(ap, &result.res_u.ok.object); + + /* mount attributes */ + post_op_obj->attributes_follow = 1; + fattr = &ap->am_fattr; + fattr3 = &post_op_obj->am_post_op_attr_u.attributes; + fattr_to_fattr3(fattr, fattr3); + + result.status = AM_NFS3_OK; + } + mp->am_stats.s_lookup++; + } + return &result; +} + +am_ACCESS3res * +am_nfs3_access_3_svc(am_ACCESS3args *argp, struct svc_req *rqstp) +{ + static am_ACCESS3res result; + + am_nfs_fh3 *obj = &argp->object; + u_int accessbits = argp->access; + u_int accessmask = AM_ACCESS3_LOOKUP|AM_ACCESS3_READ; + am_post_op_attr *post_op_obj; + am_node *mp; + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "access_3:"); + + mp = fh3_to_mp(obj); + if (!mp) { + post_op_obj = &result.res_u.fail.obj_attributes; + post_op_obj->attributes_follow = 0; + result.status = nfs_error(ENOENT); + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "access_3: ENOENT"); + } else { + nfsfattr *fattr = &mp->am_fattr; + am_fattr3 *fattr3; + post_op_obj = &result.res_u.ok.obj_attributes; + fattr3 = &post_op_obj->am_post_op_attr_u.attributes; + post_op_obj->attributes_follow = 1; + fattr_to_fattr3(fattr, fattr3); + + result.res_u.ok.access = accessbits & accessmask; + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "access_3: b=%x m=%x", accessbits, accessmask); + + result.status = AM_NFS3_OK; + } + + return &result; +} + +am_READLINK3res * +am_nfs3_readlink_3_svc(am_READLINK3args *argp, struct svc_req *rqstp) +{ + static am_READLINK3res result; + + am_nfs_fh3 *symlink = (am_nfs_fh3 *) &argp->symlink; + am_post_op_attr *post_op_sym; + am_node *mp; + int retry = 0; + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "readlink_3:"); + + mp = fh3_to_mp3(symlink, &retry, VLOOK_CREATE); + if (!mp) { + readlink_retry: + if (retry < 0) { + amd_stats.d_drops++; + return 0; + } + post_op_sym = &result.res_u.fail.symlink_attributes; + post_op_sym->attributes_follow = 0; + result.status = nfs_error(retry); + } else { + nfsfattr *fattr; + am_fattr3 *fattr3; + char *ln; + + ln = do_readlink(mp, &retry); + if (!ln) + goto readlink_retry; + + if (amuDebug(D_TRACE) && ln) + plog(XLOG_DEBUG, "\treadlink_3(%s) = %s", mp->am_path, ln); + + result.res_u.ok.data = ln; + + post_op_sym = &result.res_u.ok.symlink_attributes; + post_op_sym->attributes_follow = 1; + fattr = &mp->am_fattr; + fattr3 = &post_op_sym->am_post_op_attr_u.attributes; + fattr_to_fattr3(fattr, fattr3); + + mp->am_stats.s_readlink++; + result.status = AM_NFS3_OK; + } + + return &result; +} + +am_READ3res * +am_nfs3_read_3_svc(am_READ3args *argp, struct svc_req *rqstp) +{ + static am_READ3res result; + + am_nfs_fh3 *file = (am_nfs_fh3 *) &argp->file; + am_post_op_attr *post_op_file; + am_node *mp; + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "read_3:"); + + post_op_file = &result.res_u.fail.file_attributes; + result.status = nfs_error(EACCES); + + mp = fh3_to_mp(file); + if (!mp) + post_op_file->attributes_follow = 0; + else { + nfsfattr *fattr = &mp->am_fattr; + am_fattr3 *fattr3 = &post_op_file->am_post_op_attr_u.attributes; + post_op_file->attributes_follow = 1; + fattr_to_fattr3(fattr, fattr3); + } + + return &result; +} + +am_WRITE3res * +am_nfs3_write_3_svc(am_WRITE3args *argp, struct svc_req *rqstp) +{ + static am_WRITE3res result; + + am_nfs_fh3 *file = (am_nfs_fh3 *) &argp->file; + am_pre_op_attr *pre_op_file = &result.res_u.fail.file_wcc.before; + am_post_op_attr *post_op_file = &result.res_u.fail.file_wcc.after; + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "write_3:"); + + result.status = return_estale_or_rofs(file, pre_op_file, post_op_file); + + return &result; +} + +am_CREATE3res * +am_nfs3_create_3_svc(am_CREATE3args *argp, struct svc_req *rqstp) +{ + static am_CREATE3res result; + + am_nfs_fh3 *dir = (am_nfs_fh3 *) &argp->where.dir; + am_pre_op_attr *pre_op_dir = &result.res_u.fail.dir_wcc.before; + am_post_op_attr *post_op_dir = &result.res_u.fail.dir_wcc.after; + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "create_3:"); + + result.status = return_estale_or_rofs(dir, pre_op_dir, post_op_dir); + + return &result; +} + +am_MKDIR3res * +am_nfs3_mkdir_3_svc(am_MKDIR3args *argp, struct svc_req *rqstp) +{ + static am_MKDIR3res result; + + am_nfs_fh3 *dir = (am_nfs_fh3 *) &argp->where.dir; + am_pre_op_attr *pre_op_dir = &result.res_u.fail.dir_wcc.before; + am_post_op_attr *post_op_dir = &result.res_u.fail.dir_wcc.after; + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "mkdir_3:"); + + result.status = return_estale_or_rofs(dir, pre_op_dir, post_op_dir); + + return &result; +} + +am_SYMLINK3res * +am_nfs3_symlink_3_svc(am_SYMLINK3args *argp, struct svc_req *rqstp) +{ + static am_SYMLINK3res result; + + am_nfs_fh3 *dir = (am_nfs_fh3 *) &argp->where.dir; + am_pre_op_attr *pre_op_dir = &result.res_u.fail.dir_wcc.before; + am_post_op_attr *post_op_dir = &result.res_u.fail.dir_wcc.after; + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "symlink_3:"); + + result.status = return_estale_or_rofs(dir, pre_op_dir, post_op_dir); + + return &result; +} + +am_MKNOD3res * +am_nfs3_mknod_3_svc(am_MKNOD3args *argp, struct svc_req *rqstp) +{ + static am_MKNOD3res result; + + am_nfs_fh3 *dir = (am_nfs_fh3 *) &argp->where.dir; + am_pre_op_attr *pre_op_dir = &result.res_u.fail.dir_wcc.before; + am_post_op_attr *post_op_dir = &result.res_u.fail.dir_wcc.after; + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "mknod_3:"); + + result.status = return_estale_or_rofs(dir, pre_op_dir, post_op_dir); + return &result; +} + +am_REMOVE3res * +am_nfs3_remove_3_svc(am_REMOVE3args *argp, struct svc_req *rqstp) +{ + static am_REMOVE3res result; + + am_diropargs3 *obj = &argp->object; + am_wcc_data dir_wcc; + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "remove_3:"); + + result.status = unlink3_or_rmdir3(obj, &dir_wcc, TRUE); + + result.res_u.ok.dir_wcc = dir_wcc; + + return &result; +} + +am_RMDIR3res * +am_nfs3_rmdir_3_svc(am_RMDIR3args *argp, struct svc_req *rqstp) +{ + static am_RMDIR3res result; + + am_diropargs3 *obj = &argp->object; + am_wcc_data dir_wcc; + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "rmdir_3:"); + + result.status = unlink3_or_rmdir3(obj, &dir_wcc, TRUE); + + result.res_u.ok.dir_wcc = dir_wcc; + + return &result; +} + +am_RENAME3res * +am_nfs3_rename_3_svc(am_RENAME3args *argp, struct svc_req *rqstp) +{ + static am_RENAME3res result; + + am_nfs_fh3 *fromdir = (am_nfs_fh3 *) &argp->from.dir; + am_nfs_fh3 *todir = (am_nfs_fh3 *) &argp->to.dir; + am_filename3 name = argp->to.name; + am_node *to_mp, *from_mp; + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "rename_3:"); + + if (!(from_mp = fh3_to_mp(fromdir)) || !(to_mp = fh3_to_mp(todir))) + result.status = nfs_error(ESTALE); + /* + * If the kernel is doing clever things with referenced files + * then let it pretend... + */ + else { + am_wcc_attr *wcc_attr; + am_fattr3 *fattr3; + am_wcc_data *to_wcc_data, *from_wcc_data; + am_pre_op_attr *pre_op_to, *pre_op_from; + am_post_op_attr *post_op_to, *post_op_from; + nfsfattr *fattr; + + to_wcc_data = &result.res_u.ok.todir_wcc; + + pre_op_to = &to_wcc_data->before; + post_op_to = &to_wcc_data->after; + + pre_op_to->attributes_follow = 1; + fattr = &to_mp->am_fattr; + wcc_attr = &pre_op_to->am_pre_op_attr_u.attributes; + fattr_to_wcc_attr(fattr, wcc_attr); + post_op_to->attributes_follow = 1; + fattr3 = &post_op_to->am_post_op_attr_u.attributes; + fattr_to_fattr3(fattr, fattr3); + + from_wcc_data = &result.res_u.ok.fromdir_wcc; + + pre_op_from = &from_wcc_data->before; + post_op_from = &from_wcc_data->after; + + pre_op_from->attributes_follow = 1; + fattr = &from_mp->am_fattr; + wcc_attr = &pre_op_from->am_pre_op_attr_u.attributes; + fattr_to_wcc_attr(fattr, wcc_attr); + post_op_from->attributes_follow = 1; + fattr3 = &post_op_from->am_post_op_attr_u.attributes; + fattr_to_fattr3(fattr, fattr3); + + if (NSTREQ(name, ".nfs", 4)) + result.status = AM_NFS3_OK; + /* + * otherwise a failure + */ + else + result.status = nfs_error(EROFS); + } + + return &result; +} + +am_LINK3res * +am_nfs3_link_3_svc(am_LINK3args *argp, struct svc_req *rqstp) +{ + static am_LINK3res result; + + am_nfs_fh3 *file = (am_nfs_fh3 *) &argp->file; + am_nfs_fh3 *dir = (am_nfs_fh3 *) &argp->link.dir; + am_post_op_attr *post_op_file; + am_pre_op_attr *pre_op_dir; + am_post_op_attr *post_op_dir; + am_node *mp_file, *mp_dir; + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "link_3:"); + + post_op_file = &result.res_u.fail.file_attributes; + post_op_file->attributes_follow = 0; + + mp_file = fh3_to_mp(file); + if (mp_file) { + nfsfattr *fattr = &mp_file->am_fattr; + am_fattr3 *fattr3 = &post_op_file->am_post_op_attr_u.attributes; + fattr_to_fattr3(fattr, fattr3); + } + + pre_op_dir = &result.res_u.fail.linkdir_wcc.before; + pre_op_dir->attributes_follow = 0; + post_op_dir = &result.res_u.fail.linkdir_wcc.after; + post_op_dir->attributes_follow = 0; + + mp_dir = fh3_to_mp(dir); + if (mp_dir) { + nfsfattr *fattr = &mp_dir->am_fattr; + am_fattr3 *fattr3 = &post_op_dir->am_post_op_attr_u.attributes; + am_wcc_attr *wcc_attr = &pre_op_dir->am_pre_op_attr_u.attributes; + + pre_op_dir->attributes_follow = 1; + fattr_to_wcc_attr(fattr, wcc_attr); + post_op_dir->attributes_follow = 1; + fattr_to_fattr3(fattr, fattr3); + } + + if (!mp_file || !mp_dir) + result.status = nfs_error(ESTALE); + else + result.status = nfs_error(EROFS); + + return &result; +} + +am_READDIR3res * +am_nfs3_readdir_3_svc(am_READDIR3args *argp, struct svc_req *rqstp) +{ + static am_READDIR3res result; + static am_entry3 entries[MAX_READDIR_ENTRIES]; + am_nfs_fh3 *dir = (am_nfs_fh3 *) &argp->dir; + am_cookie3 cookie = argp->cookie; + am_cookieverf3 cookieverf; + am_count3 count = argp->count; + am_post_op_attr *post_op_dir; + am_node *mp; + int retry; + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "readdir_3:"); + + memcpy(&cookieverf, &argp->cookieverf, sizeof(am_cookieverf3)); + + mp = fh3_to_mp3(dir, &retry, VLOOK_CREATE); + if (mp == NULL) { + if (retry < 0) { + amd_stats.d_drops++; + return 0; + } + post_op_dir = &result.res_u.fail.dir_attributes; + post_op_dir->attributes_follow = 0; + result.status = nfs_error(retry); + } else { + am_dirlist3 *list = &result.res_u.ok.reply; + am_nfsstat3 status; + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "\treaddir_3(%s)", mp->am_path); + + status = mp->am_al->al_mnt->mf_ops->readdir(mp, + (voidp)&cookie, list, entries, count); + if (status == 0) { + post_op_dir = &result.res_u.ok.dir_attributes; + nfsfattr *fattr; + am_fattr3 *fattr3; + + fattr = &mp->am_fattr; + fattr3 = &post_op_dir->am_post_op_attr_u.attributes; + post_op_dir->attributes_follow = 1; + fattr_to_fattr3(fattr, fattr3); + result.status = AM_NFS3_OK; + } else { + post_op_dir = &result.res_u.fail.dir_attributes; + post_op_dir->attributes_follow = 0; + result.status = nfs_error(status); + } + + mp->am_stats.s_readdir++; + } + + return &result; +} + +am_READDIRPLUS3res * +am_nfs3_readdirplus_3_svc(am_READDIRPLUS3args *argp, struct svc_req *rqstp) +{ + static am_READDIRPLUS3res result; + am_nfs_fh3 *dir = (am_nfs_fh3 *) &argp->dir; + am_post_op_attr *post_op_dir; + nfsfattr *fattr; + am_fattr3 *fattr3; + am_node *mp; + int retry; + + mp = fh3_to_mp3(dir, &retry, VLOOK_CREATE); + if (mp == NULL) { + if (retry < 0) { + amd_stats.d_drops++; + return 0; + } + post_op_dir = &result.res_u.fail.dir_attributes; + post_op_dir->attributes_follow = 0; + result.status = nfs_error(retry); + } else { + post_op_dir = &result.res_u.ok.dir_attributes; + fattr = &mp->am_fattr; + fattr3 = &post_op_dir->am_post_op_attr_u.attributes; + post_op_dir->attributes_follow = 1; + fattr_to_fattr3(fattr, fattr3); + result.status = AM_NFS3ERR_NOTSUPP; + } + + return &result; +} + +am_FSSTAT3res * +am_nfs3_fsstat_3_svc(am_FSSTAT3args *argp, struct svc_req *rqstp) +{ + static am_FSSTAT3res result; + + am_nfs_fh3 *fsroot = (am_nfs_fh3 *) &argp->fsroot; + am_post_op_attr *post_op_fsroot; + am_node *mp; + int retry; + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "fsstat_3:"); + + mp = fh3_to_mp3(fsroot, &retry, VLOOK_CREATE); + if (!mp) { + if (retry < 0) { + amd_stats.d_drops++; + return 0; + } + post_op_fsroot = &result.res_u.fail.obj_attributes; + post_op_fsroot->attributes_follow = 0; + result.status = nfs_error(retry); + } else { + am_FSSTAT3resok *ok = &result.res_u.ok; + u_int blocks, bfree, bavail; + nfsfattr *fattr; + am_fattr3 *fattr3; + mntent_t mnt; + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "\tfsstat_3(%s)", mp->am_path); + + fattr = &mp->am_fattr; + post_op_fsroot = &ok->obj_attributes; + post_op_fsroot->attributes_follow = 1; + fattr3 = &post_op_fsroot->am_post_op_attr_u.attributes; + fattr_to_fattr3(fattr, fattr3); + + /* + * just return faked up file system information + */ + ok->tbytes = 1024; + ok->invarsec = 0; + + /* check if map is browsable and show_statfs_entries=yes */ + if ((gopt.flags & CFM_SHOW_STATFS_ENTRIES) && + mp->am_al->al_mnt && mp->am_al->al_mnt->mf_mopts) { + mnt.mnt_opts = mp->am_al->al_mnt->mf_mopts; + if (amu_hasmntopt(&mnt, "browsable")) { + count_map_entries(mp, &blocks, &bfree, &bavail); + } + ok->fbytes = bfree; + ok->abytes = bavail; + ok->ffiles = bfree; + ok->afiles = bavail; + ok->tfiles = blocks; + } else { + ok->fbytes = 0; + ok->abytes = 0; + ok->ffiles = 0; + ok->afiles = 0; + ok->tfiles = 0; /* set to 1 if you don't want empty automounts */ + } + + result.status = AM_NFS3_OK; + mp->am_stats.s_statfs++; + } + + return &result; +} + +#define FSF3_HOMOGENEOUS 0x0008 + +am_FSINFO3res * +am_nfs3_fsinfo_3_svc(am_FSINFO3args *argp, struct svc_req *rqstp) +{ + static am_FSINFO3res result; + + am_nfs_fh3 *fsroot = (am_nfs_fh3 *) &argp->fsroot; + am_post_op_attr *post_op_fsroot; + am_node *mp; + int retry; + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "fsinfo_3:"); + + mp = fh3_to_mp3(fsroot, &retry, VLOOK_CREATE); + if (!mp) { + if (retry < 0) { + amd_stats.d_drops++; + return 0; + } + post_op_fsroot = &result.res_u.fail.obj_attributes; + post_op_fsroot->attributes_follow = 0; + result.status = nfs_error(retry); + } else { + am_FSINFO3resok *ok = &result.res_u.ok; + nfsfattr *fattr; + am_fattr3 *fattr3; + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "\tfsinfo_3(%s)", mp->am_path); + + fattr = &mp->am_fattr; + post_op_fsroot = &ok->obj_attributes; + post_op_fsroot->attributes_follow = 1; + fattr3 = &post_op_fsroot->am_post_op_attr_u.attributes; + fattr_to_fattr3(fattr, fattr3); + + /* + * just return faked up file system information + */ + ok->rtmax = 0; + ok->rtpref = 0; + ok->rtmult = 0; + ok->wtmax = 0; + ok->wtpref = 0; + ok->wtmult = 0; + ok->dtpref = 1024; + ok->maxfilesize = 0; + ok->time_delta.seconds = 1; + ok->time_delta.nseconds = 0; + ok->properties = FSF3_HOMOGENEOUS; + + result.status = AM_NFS3_OK; + mp->am_stats.s_fsinfo++; + } + + return &result; +} + +am_PATHCONF3res * +am_nfs3_pathconf_3_svc(am_PATHCONF3args *argp, struct svc_req *rqstp) +{ + static am_PATHCONF3res result; + + am_nfs_fh3 *obj = (am_nfs_fh3 *) &argp->object; + am_post_op_attr *post_op_obj; + am_node *mp; + int retry; + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "pathconf_3:"); + + mp = fh3_to_mp3(obj, &retry, VLOOK_CREATE); + if (!mp) { + if (retry < 0) { + amd_stats.d_drops++; + return 0; + } + post_op_obj = &result.res_u.fail.obj_attributes; + post_op_obj->attributes_follow = 0; + result.status = nfs_error(retry); + } else { + am_PATHCONF3resok *ok = &result.res_u.ok; + nfsfattr *fattr; + am_fattr3 *fattr3; + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "\tpathconf_3(%s)", mp->am_path); + + fattr = &mp->am_fattr; + post_op_obj = &ok->obj_attributes; + post_op_obj->attributes_follow = 1; + fattr3 = &post_op_obj->am_post_op_attr_u.attributes; + fattr_to_fattr3(fattr, fattr3); + + ok->linkmax = 0; + ok->name_max = NAME_MAX; + ok->no_trunc = 1; + ok->chown_restricted = 1; + ok->case_insensitive = 0; + ok->case_preserving = 1; + + result.status = AM_NFS3_OK; + mp->am_stats.s_pathconf++; + } + + return &result; +} + +am_COMMIT3res * +am_nfs3_commit_3_svc(am_COMMIT3args *argp, struct svc_req *rqstp) +{ + static am_COMMIT3res result; + + am_nfs_fh3 *file = (am_nfs_fh3 *) &argp->file; + am_pre_op_attr *pre_op_file = &result.res_u.fail.file_wcc.before; + am_post_op_attr *post_op_file = &result.res_u.fail.file_wcc.after; + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "commit_3:"); + + result.status = return_estale_or_rofs(file, pre_op_file, post_op_file); + + return &result; +} +#endif /* HAVE_FS_NFS3 */ diff --git a/contrib/amd/amd/ops_TEMPLATE.c b/contrib/amd/amd/ops_TEMPLATE.c index 3f74219..b873c8e 100644 --- a/contrib/amd/amd/ops_TEMPLATE.c +++ b/contrib/amd/amd/ops_TEMPLATE.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -64,7 +60,7 @@ static int foofs_init(mntfs *mf); static int foofs_mount(am_node *mp, mntfs *mf); static int foofs_umount(am_node *mp, mntfs *mf); static am_node *foofs_lookuppn(am_node *mp, char *fname, int *error_return, int op); -static int foofs_readdir(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry *ep, u_int count); +static int foofs_readdir(am_node *mp, void cookie, voidp dp, voidp ep, u_int count); static am_node *foofs_readlink(am_node *mp, int *error_return); static void foofs_mounted(am_node *am, mntfs *mf); static void foofs_umounted(am_node *mp, mntfs *mf); @@ -220,7 +216,7 @@ foofs_lookuppn(am_node *mp, char *fname, int *error_return, int op) * If OK, fills in ep with chain of directory entries. */ static int -foofs_readdir(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry *ep, u_int count) +foofs_readdir(am_node *mp, void cookie, voidp dp, voidp ep, u_int count) { int error = 0; diff --git a/contrib/amd/amd/ops_cachefs.c b/contrib/amd/amd/ops_cachefs.c index d3e303b..26a3335 100644 --- a/contrib/amd/amd/ops_cachefs.c +++ b/contrib/amd/amd/ops_cachefs.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -99,7 +95,7 @@ cachefs_match(am_opts *fo) dlog("CACHEFS: using cache directory \"%s\"", fo->opt_cachedir); /* determine magic cookie to put in mtab */ - return strdup(fo->opt_cachedir); + return xstrdup(fo->opt_cachedir); } @@ -114,7 +110,7 @@ cachefs_init(mntfs *mf) * Save cache directory name */ if (!mf->mf_private) { - mf->mf_private = (voidp) strdup(mf->mf_fo->opt_cachedir); + mf->mf_private = (voidp) xstrdup(mf->mf_fo->opt_cachedir); mf->mf_prfree = (void (*)(voidp)) free; } diff --git a/contrib/amd/amd/ops_cdfs.c b/contrib/amd/amd/ops_cdfs.c index 40355ac..6ceb764 100644 --- a/contrib/amd/amd/ops_cdfs.c +++ b/contrib/amd/amd/ops_cdfs.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -97,7 +93,7 @@ cdfs_match(am_opts *fo) /* * Determine magic cookie to put in mtab */ - return strdup(fo->opt_dev); + return xstrdup(fo->opt_dev); } @@ -148,6 +144,7 @@ mount_cdfs(char *mntdir, char *fs_name, char *opts, int on_autofs) if (amu_hasmntopt(&mnt, MNTTAB_OPT_RRIP)) cdfs_flags |= MNT2_CDFS_OPT_RRIP; #endif /* defined(MNT2_CDFS_OPT_RRIP) && defined(MNTTAB_OPT_RRIP) */ + #if defined(MNT2_CDFS_OPT_NORRIP) && defined(MNTTAB_OPT_NORRIP) if (amu_hasmntopt(&mnt, MNTTAB_OPT_NORRIP)) cdfs_flags |= MNT2_CDFS_OPT_NORRIP; @@ -157,11 +154,27 @@ mount_cdfs(char *mntdir, char *fs_name, char *opts, int on_autofs) if (amu_hasmntopt(&mnt, MNTTAB_OPT_GENS)) cdfs_flags |= MNT2_CDFS_OPT_GENS; #endif /* defined(MNT2_CDFS_OPT_GENS) && defined(MNTTAB_OPT_GENS) */ + #if defined(MNT2_CDFS_OPT_EXTATT) && defined(MNTTAB_OPT_EXTATT) if (amu_hasmntopt(&mnt, MNTTAB_OPT_EXTATT)) cdfs_flags |= MNT2_CDFS_OPT_EXTATT; #endif /* defined(MNT2_CDFS_OPT_EXTATT) && defined(MNTTAB_OPT_EXTATT) */ +#if defined(MNT2_CDFS_OPT_NOCASETRANS) && defined(MNTTAB_OPT_NOCASETRANS) + if (amu_hasmntopt(&mnt, MNTTAB_OPT_NOCASETRANS)) + cdfs_flags |= MNT2_CDFS_OPT_NOCASETRANS; +#endif /* defined(MNT2_CDFS_OPT_NOCASETRANS) && defined(MNTTAB_OPT_NOCASETRANS) */ + +#if defined(MNT2_CDFS_OPT_NOJOLIET) && defined(MNTTAB_OPT_NOJOLIET) + if (amu_hasmntopt(&mnt, MNTTAB_OPT_NOJOLIET)) + cdfs_flags |= MNT2_CDFS_OPT_NOJOLIET; +#endif /* defined(MNT2_CDFS_OPT_NOJOLIET) && defined(MNTTAB_OPT_NOJOLIET) */ + +#if defined(MNT2_CDFS_OPT_RRCASEINS) && defined(MNTTAB_OPT_RRCASEINS) + if (amu_hasmntopt(&mnt, MNTTAB_OPT_RRCASEINS)) + cdfs_flags |= MNT2_CDFS_OPT_RRCASEINS; +#endif /* defined(MNT2_CDFS_OPT_RRCASEINS) && defined(MNTTAB_OPT_RRCASEINS) */ + genflags = compute_mount_flags(&mnt); #ifdef HAVE_FS_AUTOFS if (on_autofs) diff --git a/contrib/amd/amd/ops_efs.c b/contrib/amd/amd/ops_efs.c index 047fe1e..58bf8f0 100644 --- a/contrib/amd/amd/ops_efs.c +++ b/contrib/amd/amd/ops_efs.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -98,7 +94,7 @@ efs_match(am_opts *fo) /* * Determine magic cookie to put in mtab */ - return strdup(fo->opt_dev); + return xstrdup(fo->opt_dev); } @@ -137,6 +133,9 @@ mount_efs(char *mntdir, char *fs_name, char *opts, int on_autofs) #ifdef HAVE_EFS_ARGS_T_FSPEC efs_args.fspec = fs_name; #endif /* HAVE_EFS_ARGS_T_FSPEC */ +#if defined(HAVE_EFS_ARGS_T_VERSION) && defined(EFS_MNT_VERSION) + efs_args.version = EFS_MNT_VERSION; +#endif /* HAVE_EFS_ARGS_T_VERSION && EFS_MNT_VERSION */ /* * Call generic mount routine diff --git a/contrib/amd/amd/ops_ext.c b/contrib/amd/amd/ops_ext.c new file mode 100644 index 0000000..106ab31 --- /dev/null +++ b/contrib/amd/amd/ops_ext.c @@ -0,0 +1,223 @@ +/* + * Copyright (c) 1997-2014 Erez Zadok + * Copyright (c) 1990 Jan-Simon Pendry + * Copyright (c) 1990 Imperial College of Science, Technology & Medicine + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Jan-Simon Pendry at Imperial College, London. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * + * File: am-utils/amd/ops_ext.c + * + */ + +/* + * Irix UN*X file system: EXT (Extended File System) + */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif /* HAVE_CONFIG_H */ +#include <am_defs.h> +#include <amd.h> + +/* forward declarations */ +static char *ext_match(am_opts *fo); +static int ext2_mount(am_node *am, mntfs *mf); +static int ext3_mount(am_node *am, mntfs *mf); +static int ext4_mount(am_node *am, mntfs *mf); +static int ext_umount(am_node *am, mntfs *mf); + +/* + * Ops structure + */ +am_ops ext2_ops = +{ + "ext2", + ext_match, + 0, /* ext_init */ + ext2_mount, + ext_umount, + amfs_error_lookup_child, + amfs_error_mount_child, + amfs_error_readdir, + 0, /* ext_readlink */ + 0, /* ext_mounted */ + 0, /* ext_umounted */ + amfs_generic_find_srvr, + 0, /* ext_get_wchan */ + FS_MKMNT | FS_NOTIMEOUT | FS_UBACKGROUND | FS_AMQINFO, /* nfs_fs_flags */ +#ifdef HAVE_FS_AUTOFS + AUTOFS_EXT_FS_FLAGS, +#endif /* HAVE_FS_AUTOFS */ +}; + +am_ops ext3_ops = +{ + "ext3", + ext_match, + 0, /* ext_init */ + ext3_mount, + ext_umount, + amfs_error_lookup_child, + amfs_error_mount_child, + amfs_error_readdir, + 0, /* ext_readlink */ + 0, /* ext_mounted */ + 0, /* ext_umounted */ + amfs_generic_find_srvr, + 0, /* ext_get_wchan */ + FS_MKMNT | FS_NOTIMEOUT | FS_UBACKGROUND | FS_AMQINFO, /* nfs_fs_flags */ +#ifdef HAVE_FS_AUTOFS + AUTOFS_EXT_FS_FLAGS, +#endif /* HAVE_FS_AUTOFS */ +}; + +am_ops ext4_ops = +{ + "ext4", + ext_match, + 0, /* ext_init */ + ext4_mount, + ext_umount, + amfs_error_lookup_child, + amfs_error_mount_child, + amfs_error_readdir, + 0, /* ext_readlink */ + 0, /* ext_mounted */ + 0, /* ext_umounted */ + amfs_generic_find_srvr, + 0, /* ext_get_wchan */ + FS_MKMNT | FS_NOTIMEOUT | FS_UBACKGROUND | FS_AMQINFO, /* nfs_fs_flags */ +#ifdef HAVE_FS_AUTOFS + AUTOFS_EXT_FS_FLAGS, +#endif /* HAVE_FS_AUTOFS */ +}; + +/* + * EXT needs local filesystem and device. + */ +static char * +ext_match(am_opts *fo) +{ + + if (!fo->opt_dev) { + plog(XLOG_USER, "ext: no device specified"); + return 0; + } + + dlog("EXT: mounting device \"%s\" on \"%s\"", fo->opt_dev, fo->opt_fs); + + /* + * Determine magic cookie to put in mtab + */ + return xstrdup(fo->opt_dev); +} + + +static int +mount_ext(char *mntdir, char *fs_name, char *opts, int on_autofs, char * + mount_type, const char *mnttab_type) +{ + ext_args_t ext_args; + mntent_t mnt; + int flags; + + /* + * Figure out the name of the file system type. + */ + MTYPE_TYPE type = mount_type; + + memset((voidp) &ext_args, 0, sizeof(ext_args)); /* Paranoid */ + + /* + * Fill in the mount structure + */ + memset((voidp) &mnt, 0, sizeof(mnt)); + mnt.mnt_dir = mntdir; + mnt.mnt_fsname = fs_name; + mnt.mnt_type = mnttab_type; + mnt.mnt_opts = opts; + + flags = compute_mount_flags(&mnt); +#ifdef HAVE_FS_AUTOFS + if (on_autofs) + flags |= autofs_compute_mount_flags(&mnt); +#endif /* HAVE_FS_AUTOFS */ + + /* + * Call generic mount routine + */ + return mount_fs(&mnt, flags, (caddr_t) &ext_args, 0, type, 0, NULL, mnttab_file_name, on_autofs); +} + + +static int +ext_mount(am_node *am, mntfs *mf, char *mount_type, + const char *mnttab_type) +{ + int on_autofs = mf->mf_flags & MFF_ON_AUTOFS; + int error; + + error = mount_ext(mf->mf_mount, mf->mf_info, mf->mf_mopts, on_autofs, + mount_type, mnttab_type); + if (error) { + errno = error; + plog(XLOG_ERROR, "mount_ext: %m"); + return error; + } + + return 0; +} + +static int +ext2_mount(am_node *am, mntfs *mf) +{ + return ext_mount(am, mf, MOUNT_TYPE_EXT2, MNTTAB_TYPE_EXT2); +} + +static int +ext3_mount(am_node *am, mntfs *mf) +{ + return ext_mount(am, mf, MOUNT_TYPE_EXT3, MNTTAB_TYPE_EXT3); +} + +static int +ext4_mount(am_node *am, mntfs *mf) +{ + return ext_mount(am, mf, MOUNT_TYPE_EXT4, MNTTAB_TYPE_EXT4); +} + +static int +ext_umount(am_node *am, mntfs *mf) +{ + int unmount_flags = (mf->mf_flags & MFF_ON_AUTOFS) ? AMU_UMOUNT_AUTOFS : 0; + + return UMOUNT_FS(mf->mf_mount, mnttab_file_name, unmount_flags); +} diff --git a/contrib/amd/amd/ops_lofs.c b/contrib/amd/amd/ops_lofs.c index 26fdc9f..b04f643 100644 --- a/contrib/amd/amd/ops_lofs.c +++ b/contrib/amd/amd/ops_lofs.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -97,7 +93,7 @@ lofs_match(am_opts *fo) /* * Determine magic cookie to put in mtab */ - return strdup(fo->opt_rfs); + return xstrdup(fo->opt_rfs); } diff --git a/contrib/amd/amd/ops_lustre.c b/contrib/amd/amd/ops_lustre.c new file mode 100644 index 0000000..1b321ce --- /dev/null +++ b/contrib/amd/amd/ops_lustre.c @@ -0,0 +1,203 @@ +/* + * Copyright (c) 2011 Christos Zoulas + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * + * File: am-utils/amd/ops_lustre.c + * + */ + +/* + * Lustre file system + */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif /* HAVE_CONFIG_H */ +#ifdef HAVE_FS_LUSTRE +#include <am_defs.h> +#include <amd.h> + +/* forward declarations */ +static char *lustre_match(am_opts *fo); +static int lustre_mount(am_node *am, mntfs *mf); +static int lustre_umount(am_node *am, mntfs *mf); + +/* + * Ops structure + */ +am_ops lustre_ops = +{ + "lustre", + lustre_match, + 0, /* lustre_init */ + lustre_mount, + lustre_umount, + amfs_error_lookup_child, + amfs_error_mount_child, + amfs_error_readdir, + 0, /* lustre_readlink */ + 0, /* lustre_mounted */ + 0, /* lustre_umounted */ + amfs_generic_find_srvr, + 0, /* lustre_get_wchan */ + FS_MKMNT | FS_UBACKGROUND | FS_AMQINFO, /* nfs_fs_flags */ +#ifdef HAVE_FS_AUTOFS + AUTOFS_LUSTRE_FS_FLAGS, +#endif /* HAVE_FS_AUTOFS */ +}; + + +/* + * Lustre needs remote filesystem and host. + */ +static char * +lustre_match(am_opts *fo) +{ + char *xmtab, *cp; + size_t l; + char *rhost, *ptr, *remhost; + struct in_addr addr; + + if (fo->opt_fs && !fo->opt_rfs) + fo->opt_rfs = fo->opt_fs; + if (!fo->opt_rfs) { + plog(XLOG_USER, "lustre: no remote filesystem specified"); + return NULL; + } + if (!fo->opt_rhost) { + plog(XLOG_USER, "lustre: no remote host specified"); + return NULL; + } + + /* + * Determine magic cookie to put in mtab + */ + rhost = xstrdup(fo->opt_rhost); + remhost = NULL; + for (ptr = strtok(rhost, ":"); ptr; ptr = strtok(NULL, ":")) { + char *at = strchr(ptr, '@'); + if (at == NULL) { + plog(XLOG_USER, "lustre: missing protocol in host `%s'", ptr); + XFREE(rhost); + return NULL; + } + *at = '\0'; + /* + * Convert symbolic addresses to numbers that the kernel likes + */ + if (inet_aton(ptr, &addr) == 0) { + struct hostent *hp; + if ((hp = gethostbyname(ptr)) == NULL) { + plog(XLOG_USER, "lustre: unknown host `%s'", ptr); + XFREE(rhost); + return NULL; + } + if (hp->h_length != sizeof(addr.s_addr)) { + plog(XLOG_USER, "lustre: bad address length %zu != %d for %s", + sizeof(addr), hp->h_length, ptr); + XFREE(rhost); + return NULL; + } + memcpy(&addr.s_addr, hp->h_addr, sizeof(addr)); + } + *at = '@'; + + cp = remhost; + if (remhost) + remhost = strvcat(cp, ":", inet_ntoa(addr), at, NULL); + else + remhost = strvcat(inet_ntoa(addr), at, NULL); + XFREE(cp); + } + if (remhost == NULL) { + plog(XLOG_USER, "lustre: empty host"); + XFREE(rhost); + return NULL; + } + + XFREE(rhost); + XFREE(fo->opt_rhost); + fo->opt_rhost = remhost; + + l = strlen(fo->opt_rhost) + strlen(fo->opt_rfs) + 2; + xmtab = xmalloc(l); + xsnprintf(xmtab, l, "%s:%s", fo->opt_rhost, fo->opt_rfs); + dlog("lustre: mounting remote server \"%s\", remote fs \"%s\" on \"%s\"", + fo->opt_rhost, fo->opt_rfs, fo->opt_fs); + + + return xmtab; +} + +static int +lustre_mount(am_node *am, mntfs *mf) +{ + mntent_t mnt; + int genflags, error; + int on_autofs = mf->mf_flags & MFF_ON_AUTOFS; + + /* + * Figure out the name of the file system type. + */ + MTYPE_TYPE type = MOUNT_TYPE_LUSTRE; + + /* + * Fill in the mount structure + */ + memset(&mnt, 0, sizeof(mnt)); + mnt.mnt_dir = mf->mf_mount; + mnt.mnt_fsname = mf->mf_info; + mnt.mnt_type = MNTTAB_TYPE_LUSTRE; + mnt.mnt_opts = mf->mf_mopts; + + genflags = compute_mount_flags(&mnt); +#ifdef HAVE_FS_AUTOFS + if (on_autofs) + genflags |= autofs_compute_mount_flags(&mnt); +#endif /* HAVE_FS_AUTOFS */ + + /* + * Call generic mount routine + */ + error = mount_fs(&mnt, genflags, NULL, 0, type, 0, + NULL, mnttab_file_name, on_autofs); + if (error) { + errno = error; + plog(XLOG_ERROR, "mount_lustre: %m"); + return error; + } + + return 0; +} + + +static int +lustre_umount(am_node *am, mntfs *mf) +{ + int unmount_flags = (mf->mf_flags & MFF_ON_AUTOFS) ? AMU_UMOUNT_AUTOFS : 0; + + return UMOUNT_FS(mf->mf_mount, mnttab_file_name, unmount_flags); +} +#endif diff --git a/contrib/amd/amd/ops_mfs.c b/contrib/amd/amd/ops_mfs.c index ccaa49c..822a265 100644 --- a/contrib/amd/amd/ops_mfs.c +++ b/contrib/amd/amd/ops_mfs.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/contrib/amd/amd/ops_nfs.c b/contrib/amd/amd/ops_nfs.c index a6a8585..2dbfa5b5 100644 --- a/contrib/amd/amd/ops_nfs.c +++ b/contrib/amd/amd/ops_nfs.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -113,6 +109,13 @@ static int call_mountd(fh_cache *fp, u_long proc, fwd_fun f, wchan_t wchan); static int webnfs_lookup(fh_cache *fp, fwd_fun f, wchan_t wchan); static int fh_id = 0; +/* + * clamp the filehandle version to 3, so that we can fail back to nfsv3 + * since nfsv4 does not have file handles + */ +#define SET_FH_VERSION(fs) \ + (fs)->fs_version > NFS_VERSION3 ? NFS_VERSION3 : (fs)->fs_version; + /* globals */ AUTH *nfs_auth; qelem fh_head = {&fh_head, &fh_head}; @@ -145,7 +148,7 @@ am_ops nfs_ops = static fh_cache * find_nfs_fhandle_cache(opaque_t arg, int done) { - fh_cache *fp, *fp2 = 0; + fh_cache *fp, *fp2 = NULL; int id = (long) arg; /* for 64-bit archs */ ITER(fp, fh_cache, &fh_head) { @@ -201,6 +204,10 @@ got_nfs_fh_mount(voidp pkt, int len, struct sockaddr_in *sa, struct sockaddr_in memmove(fp->fh_nfs_handle.v3.am_fh3_data, res3.mountres3_u.mountinfo.fhandle.fhandle3_val, fp->fh_nfs_handle.v3.am_fh3_length); + + XFREE(res3.mountres3_u.mountinfo.fhandle.fhandle3_val); + if (res3.mountres3_u.mountinfo.auth_flavors.auth_flavors_val) + XFREE(res3.mountres3_u.mountinfo.auth_flavors.auth_flavors_val); } else { #endif /* HAVE_FS_NFS3 */ memset(&res, 0, sizeof(res)); @@ -326,8 +333,7 @@ discard_fh(opaque_t arg) dlog("Discarding filehandle for %s:%s", fp->fh_fs->fs_host, fp->fh_path); free_srvr(fp->fh_fs); } - if (fp->fh_path) - XFREE(fp->fh_path); + XFREE(fp->fh_path); XFREE(fp); } @@ -338,7 +344,7 @@ discard_fh(opaque_t arg) static int prime_nfs_fhandle_cache(char *path, fserver *fs, am_nfs_handle_t *fhbuf, mntfs *mf) { - fh_cache *fp, *fp_save = 0; + fh_cache *fp, *fp_save = NULL; int error; int reuse_id = FALSE; @@ -466,11 +472,11 @@ prime_nfs_fhandle_cache(char *path, fserver *fs, am_nfs_handle_t *fhbuf, mntfs * fp->fh_sin = *fs->fs_ip; if (!(mf->mf_flags & MFF_WEBNFS)) fp->fh_sin.sin_port = 0; - fp->fh_nfs_version = fs->fs_version; + fp->fh_nfs_version = SET_FH_VERSION(fs); } fp->fh_fs = dup_srvr(fs); - fp->fh_path = strdup(path); + fp->fh_path = xstrdup(path); if (mf->mf_flags & MFF_WEBNFS) error = webnfs_lookup(fp, got_nfs_fh_webnfs, get_mntfs_wchan(mf)); @@ -544,7 +550,9 @@ call_mountd(fh_cache *fp, u_long proc, fwd_fun fun, wchan_t wchan) if (error) return error; fp->fh_sin.sin_port = mountd_port; - } + dlog("%s: New %d mountd port", __func__, fp->fh_sin.sin_port); + } else + dlog("%s: Already had %d mountd port", __func__, fp->fh_sin.sin_port); /* find the right version of the mount protocol */ #ifdef HAVE_FS_NFS3 @@ -605,7 +613,7 @@ webnfs_lookup(fh_cache *fp, fwd_fun fun, wchan_t wchan) nfsdiropargs args; #ifdef HAVE_FS_NFS3 am_LOOKUP3args args3; -#endif +#endif /* HAVE_FS_NFS3 */ char *wnfs_path; size_t l; @@ -724,6 +732,17 @@ nfs_init(mntfs *mf) am_nfs_handle_t fhs; char *colon; +#ifdef NO_FALLBACK + /* + * We don't need file handles for NFS version 4, but we can fall back to + * version 3, so we allocate anyway + */ +#ifdef HAVE_FS_NFS4 + if (mf->mf_server->fs_version == NFS_VERSION4) + return 0; +#endif /* HAVE_FS_NFS4 */ +#endif /* NO_FALLBACK */ + if (mf->mf_private) { if (mf->mf_flags & MFF_NFS_SCALEDOWN) { fserver *fs; @@ -732,6 +751,9 @@ nfs_init(mntfs *mf) mf->mf_ops->umounted(mf); mf->mf_prfree(mf->mf_private); + mf->mf_private = NULL; + mf->mf_prfree = NULL; + fs = mf->mf_ops->ffserver(mf); free_srvr(mf->mf_server); mf->mf_server = fs; @@ -769,7 +791,11 @@ mount_nfs_fh(am_nfs_handle_t *fhp, char *mntdir, char *fs_name, mntfs *mf) int retry; int proto = AMU_TYPE_NONE; mntent_t mnt; + void *argsp; nfs_args_t nfs_args; +#ifdef HAVE_FS_NFS4 + nfs4_args_t nfs4_args; +#endif /* HAVE_FS_NFS4 */ /* * Extract HOST name to give to kernel. @@ -829,10 +855,7 @@ mount_nfs_fh(am_nfs_handle_t *fhp, char *mntdir, char *fs_name, mntfs *mf) /* * Set mount types accordingly */ -#ifndef HAVE_FS_NFS3 - type = MOUNT_TYPE_NFS; - mnt.mnt_type = MNTTAB_TYPE_NFS; -#else /* HAVE_FS_NFS3 */ +#ifdef HAVE_FS_NFS3 if (nfs_version == NFS_VERSION3) { type = MOUNT_TYPE_NFS3; /* @@ -843,16 +866,25 @@ mount_nfs_fh(am_nfs_handle_t *fhp, char *mntdir, char *fs_name, mntfs *mf) * So on those systems, set it to "nfs". * Note: MNTTAB_OPT_VERS is always set for NFS3 (see am_compat.h). */ + argsp = &nfs_args; # if defined(MNTTAB_OPT_VERS) && defined(MOUNT_TABLE_ON_FILE) mnt.mnt_type = MNTTAB_TYPE_NFS; # else /* defined(MNTTAB_OPT_VERS) && defined(MOUNT_TABLE_ON_FILE) */ mnt.mnt_type = MNTTAB_TYPE_NFS3; # endif /* defined(MNTTAB_OPT_VERS) && defined(MOUNT_TABLE_ON_FILE) */ - } else { +# ifdef HAVE_FS_NFS4 + } else if (nfs_version == NFS_VERSION4) { + argsp = &nfs4_args; + type = MOUNT_TYPE_NFS4; + mnt.mnt_type = MNTTAB_TYPE_NFS4; +# endif /* HAVE_FS_NFS4 */ + } else +#endif /* HAVE_FS_NFS3 */ + { + argsp = &nfs_args; type = MOUNT_TYPE_NFS; mnt.mnt_type = MNTTAB_TYPE_NFS; } -#endif /* HAVE_FS_NFS3 */ plog(XLOG_INFO, "mount_nfs_fh: NFS version %d", (int) nfs_version); plog(XLOG_INFO, "mount_nfs_fh: using NFS transport %s", nfs_proto); @@ -866,32 +898,44 @@ mount_nfs_fh(am_nfs_handle_t *fhp, char *mntdir, char *fs_name, mntfs *mf) genflags |= autofs_compute_mount_flags(&mnt); #endif /* HAVE_FS_AUTOFS */ - /* setup the many fields and flags within nfs_args */ - compute_nfs_args(&nfs_args, - &mnt, - genflags, - NULL, /* struct netconfig *nfsncp */ - fs->fs_ip, - nfs_version, - nfs_proto, - fhp, - host, - fs_name); + /* setup the many fields and flags within nfs_args */ + compute_nfs_args(argsp, + &mnt, + genflags, + NULL, /* struct netconfig *nfsncp */ + fs->fs_ip, + nfs_version, + nfs_proto, + fhp, + host, + fs_name); /* finally call the mounting function */ if (amuDebug(D_TRACE)) { - print_nfs_args(&nfs_args, nfs_version); + print_nfs_args(argsp, nfs_version); plog(XLOG_DEBUG, "Generic mount flags 0x%x used for NFS mount", genflags); } - error = mount_fs(&mnt, genflags, (caddr_t) &nfs_args, retry, type, - nfs_version, nfs_proto, mnttab_file_name, on_autofs); - XFREE(xopts); + error = mount_fs(&mnt, genflags, argsp, retry, type, + nfs_version, nfs_proto, mnttab_file_name, on_autofs); + XFREE(mnt.mnt_opts); + discard_nfs_args(argsp, nfs_version); -#ifdef HAVE_TRANSPORT_TYPE_TLI - free_knetconfig(nfs_args.knconf); - if (nfs_args.addr) - XFREE(nfs_args.addr); /* allocated in compute_nfs_args() */ -#endif /* HAVE_TRANSPORT_TYPE_TLI */ +#ifdef HAVE_FS_NFS4 +# ifndef NO_FALLBACK + /* + * If we are using a v4 file handle, we try a v3 if we get back: + * ENOENT: NFS v4 has a different export list than v3 + * EPERM: Kernels <= 2.6.18 return that, instead of ENOENT + */ + if ((error == ENOENT || error == EPERM) && nfs_version == NFS_VERSION4) { + plog(XLOG_DEBUG, "Could not find NFS 4 mount, trying again with NFS 3"); + fs->fs_version = NFS_VERSION3; + error = mount_nfs_fh(fhp, mntdir, fs_name, mf); + if (error) + fs->fs_version = NFS_VERSION4; + } +# endif /* NO_FALLBACK */ +#endif /* HAVE_FS_NFS4 */ return error; } @@ -903,11 +947,16 @@ nfs_mount(am_node *am, mntfs *mf) int error = 0; mntent_t mnt; - if (!mf->mf_private) { + if (!mf->mf_private && mf->mf_server->fs_version != 4) { plog(XLOG_ERROR, "Missing filehandle for %s", mf->mf_info); return EINVAL; } + if (mf->mf_mopts == NULL) { + plog(XLOG_ERROR, "Missing mount options for %s", mf->mf_info); + return EINVAL; + } + mnt.mnt_opts = mf->mf_mopts; if (amu_hasmntopt(&mnt, "softlookup") || (amu_hasmntopt(&mnt, "soft") && !amu_hasmntopt(&mnt, "nosoftlookup"))) @@ -932,6 +981,7 @@ nfs_umount(am_node *am, mntfs *mf) { int unmount_flags, new_unmount_flags, error; + dlog("attempting nfs umount"); unmount_flags = (mf->mf_flags & MFF_ON_AUTOFS) ? AMU_UMOUNT_AUTOFS : 0; error = UMOUNT_FS(mf->mf_mount, mnttab_file_name, unmount_flags); @@ -1031,12 +1081,12 @@ nfs_umounted(mntfs *mf) f.fh_path = path; f.fh_sin = *fs->fs_ip; f.fh_sin.sin_port = (u_short) 0; - f.fh_nfs_version = fs->fs_version; + f.fh_nfs_version = SET_FH_VERSION(fs); f.fh_fs = fs; f.fh_id = 0; f.fh_error = 0; - prime_nfs_fhandle_cache(colon + 1, mf->mf_server, (am_nfs_handle_t *) 0, mf); - call_mountd(&f, MOUNTPROC_UMNT, (fwd_fun *) 0, (wchan_t) 0); + prime_nfs_fhandle_cache(colon + 1, mf->mf_server, (am_nfs_handle_t *) NULL, mf); + call_mountd(&f, MOUNTPROC_UMNT, (fwd_fun *) NULL, (wchan_t) NULL); *colon = ':'; } } diff --git a/contrib/amd/amd/ops_nfs3.c b/contrib/amd/amd/ops_nfs3.c index db3c7f9..e07811b 100644 --- a/contrib/amd/amd/ops_nfs3.c +++ b/contrib/amd/amd/ops_nfs3.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/contrib/amd/amd/ops_nfs4.c b/contrib/amd/amd/ops_nfs4.c new file mode 100644 index 0000000..3798590 --- /dev/null +++ b/contrib/amd/amd/ops_nfs4.c @@ -0,0 +1,50 @@ +/* + * Copyright (c) 1997-2014 Erez Zadok + * Copyright (c) 1990 Jan-Simon Pendry + * Copyright (c) 1990 Imperial College of Science, Technology & Medicine + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Jan-Simon Pendry at Imperial College, London. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * + * File: am-utils/amd/ops_nfs4.c + * + */ + +/* + * Network file system version 4.0 + */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif /* HAVE_CONFIG_H */ +#include <am_defs.h> +#include <amd.h> + +/* FEEL FREE TO IMPLEMENT THIS... :-) */ diff --git a/contrib/amd/amd/ops_nullfs.c b/contrib/amd/amd/ops_nullfs.c index cf621ec..73d1f0e 100644 --- a/contrib/amd/amd/ops_nullfs.c +++ b/contrib/amd/amd/ops_nullfs.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/contrib/amd/amd/ops_pcfs.c b/contrib/amd/amd/ops_pcfs.c index 527dc92..b4c8dcd 100644 --- a/contrib/amd/amd/ops_pcfs.c +++ b/contrib/amd/amd/ops_pcfs.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -97,7 +93,7 @@ pcfs_match(am_opts *fo) /* * Determine magic cookie to put in mtab */ - return strdup(fo->opt_dev); + return xstrdup(fo->opt_dev); } diff --git a/contrib/amd/amd/ops_tfs.c b/contrib/amd/amd/ops_tfs.c index 142c320..3276a6e 100644 --- a/contrib/amd/amd/ops_tfs.c +++ b/contrib/amd/amd/ops_tfs.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/contrib/amd/amd/ops_tmpfs.c b/contrib/amd/amd/ops_tmpfs.c index eddd755..d9a15ea 100644 --- a/contrib/amd/amd/ops_tmpfs.c +++ b/contrib/amd/amd/ops_tmpfs.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -51,4 +47,146 @@ #include <am_defs.h> #include <amd.h> -/* FEEL FREE TO IMPLEMENT THIS... :-) */ +/* forward declarations */ +static char *tmpfs_match(am_opts *fo); +static int tmpfs_mount(am_node *am, mntfs *mf); +static int tmpfs_umount(am_node *am, mntfs *mf); + +/* + * Ops structure + */ +am_ops tmpfs_ops = +{ + "tmpfs", + tmpfs_match, + 0, /* tmpfs_init */ + tmpfs_mount, + tmpfs_umount, + amfs_error_lookup_child, + amfs_error_mount_child, + amfs_error_readdir, + 0, /* tmpfs_readlink */ + 0, /* tmpfs_mounted */ + 0, /* tmpfs_umounted */ + amfs_generic_find_srvr, + 0, /* tmpfs_get_wchan */ + FS_MKMNT | FS_NOTIMEOUT | FS_UBACKGROUND | FS_AMQINFO, /* nfs_fs_flags */ +#if defined(HAVE_FS_AUTOFS) && defined(AUTOFS_TMPFS_FS_FLAGS) + AUTOFS_TMPFS_FS_FLAGS, +#endif /* HAVE_FS_AUTOFS */ +}; + + +/* + * EFS needs local filesystem and device. + */ +static char * +tmpfs_match(am_opts *fo) +{ + + if (!fo->opt_dev) { + plog(XLOG_USER, "tmpfs: no device specified"); + return 0; + } + + dlog("EFS: mounting device \"%s\" on \"%s\"", fo->opt_dev, fo->opt_fs); + + /* + * Determine magic cookie to put in mtab + */ + return xstrdup(fo->opt_dev); +} + + +static int +mount_tmpfs(char *mntdir, char *fs_name, char *opts, int on_autofs) +{ + tmpfs_args_t tmpfs_args; + mntent_t mnt; + int flags; + const char *p; + + /* + * Figure out the name of the file system type. + */ + MTYPE_TYPE type = MOUNT_TYPE_TMPFS; + + p = NULL; + memset((voidp) &tmpfs_args, 0, sizeof(tmpfs_args)); /* Paranoid */ + + /* + * Fill in the mount structure + */ + memset((voidp) &mnt, 0, sizeof(mnt)); + mnt.mnt_dir = mntdir; + mnt.mnt_fsname = fs_name; + mnt.mnt_type = MNTTAB_TYPE_TMPFS; + mnt.mnt_opts = opts; + + flags = compute_mount_flags(&mnt); +#ifdef HAVE_FS_AUTOFS + if (on_autofs) + flags |= autofs_compute_mount_flags(&mnt); +#endif /* HAVE_FS_AUTOFS */ + +#if defined(HAVE_TMPFS_ARGS_T_TA_VERSION) && defined(TMPFS_ARGS_VERSION) + tmpfs_args.ta_version = TMPFS_ARGS_VERSION; +#endif /* HAVE_TMPFS_ARGS_T_TA_VERSION && TMPFS_ARGS_VERSION */ +#ifdef HAVE_TMPFS_ARGS_T_TA_NODES_MAX + if ((p = amu_hasmntopt(&mnt, "nodes")) == NULL) + p = "1000000"; + tmpfs_args.ta_nodes_max = atoi(p); +#endif /* HAVE_TMPFS_ARGS_T_TA_SIZE_MAX */ +#ifdef HAVE_TMPFS_ARGS_T_TA_SIZE_MAX + if ((p = amu_hasmntopt(&mnt, "size")) == NULL) + p = "10000000"; + tmpfs_args.ta_size_max = atoi(p); +#endif /* HAVE_TMPFS_ARGS_T_TA_SIZE_MAX */ +#ifdef HAVE_TMPFS_ARGS_T_TA_ROOT_UID + if ((p = amu_hasmntopt(&mnt, "uid")) == NULL) + p = "0"; + tmpfs_args.ta_root_uid = atoi(p); +#endif /* HAVE_TMPFS_ARGS_T_TA_ROOT_UID */ +#ifdef HAVE_TMPFS_ARGS_T_TA_ROOT_GID + if ((p = amu_hasmntopt(&mnt, "gid")) == NULL) + p = "0"; + tmpfs_args.ta_root_gid = atoi(p); +#endif /* HAVE_TMPFS_ARGS_T_TA_ROOT_GID */ +#ifdef HAVE_TMPFS_ARGS_T_TA_ROOT_MODE + if ((p = amu_hasmntopt(&mnt, "mode")) == NULL) + p = "01777"; + tmpfs_args.ta_root_mode = strtol(p, NULL, 8); +#endif /* HAVE_TMPFS_ARGS_T_TA_ROOT_MODE */ + + /* + * Call generic mount routine + */ + return mount_fs(&mnt, flags, (caddr_t) &tmpfs_args, 0, type, 0, NULL, mnttab_file_name, on_autofs); +} + + +static int +tmpfs_mount(am_node *am, mntfs *mf) +{ + int on_autofs = mf->mf_flags & MFF_ON_AUTOFS; + int error; + + error = mount_tmpfs(mf->mf_mount, mf->mf_info, mf->mf_mopts, on_autofs); + if (error) { + errno = error; + plog(XLOG_ERROR, "mount_tmpfs: %m"); + return error; + } + + return 0; +} + + +static int +tmpfs_umount(am_node *am, mntfs *mf) +{ + int unmount_flags = (mf->mf_flags & MFF_ON_AUTOFS) ? AMU_UMOUNT_AUTOFS : 0; + + return UMOUNT_FS(mf->mf_mount, mnttab_file_name, unmount_flags); +} + diff --git a/contrib/amd/amd/ops_udf.c b/contrib/amd/amd/ops_udf.c new file mode 100644 index 0000000..4230c5b --- /dev/null +++ b/contrib/amd/amd/ops_udf.c @@ -0,0 +1,272 @@ +/* + * Copyright (c) 1997-2014 Erez Zadok + * Copyright (c) 1990 Jan-Simon Pendry + * Copyright (c) 1990 Imperial College of Science, Technology & Medicine + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Jan-Simon Pendry at Imperial College, London. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * + * File: am-utils/amd/ops_udf.c + * + */ + +/* + * UDF file system + */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif /* HAVE_CONFIG_H */ +#include <am_defs.h> +#include <amd.h> + +/* forward definitions */ +static char *udf_match(am_opts *fo); +static int udf_mount(am_node *am, mntfs *mf); +static int udf_umount(am_node *am, mntfs *mf); + +/* + * Ops structure + */ +am_ops udf_ops = +{ + "udf", + udf_match, + 0, /* udf_init */ + udf_mount, + udf_umount, + amfs_error_lookup_child, + amfs_error_mount_child, + amfs_error_readdir, + 0, /* udf_readlink */ + 0, /* udf_mounted */ + 0, /* udf_umounted */ + amfs_generic_find_srvr, + 0, /* udf_get_wchan */ + FS_MKMNT | FS_UBACKGROUND | FS_AMQINFO, /* nfs_fs_flags */ +#ifdef HAVE_FS_AUTOFS + AUTOFS_UDF_FS_FLAGS, +#endif /* HAVE_FS_AUTOFS */ +}; + +#if defined(HAVE_UDF_ARGS_T_NOBODY_GID) || defined(HAVE_UDF_ARGS_T_NOBODY_UID) +static int +a_num(const char *s, const char *id_type) +{ + int id; + char *ep; + + id = strtol(s, &ep, 0); + if (*ep || s == ep || id < 0) { + plog(XLOG_ERROR, "mount_udf: unknown %s: %s", id_type, s); + return 0; + } + return id; +} +#endif /* defined(HAVE_UDF_ARGS_T_NOBODY_GID) || defined(HAVE_UDF_ARGS_T_NOBODY_UID) */ + +#if defined(HAVE_UDF_ARGS_T_NOBODY_GID) +static gid_t +a_gid(const char *s, const char *id_type) +{ + struct group *gr; + + if ((gr = getgrnam(s)) != NULL) + return gr->gr_gid; + return a_num(s, id_type); +} +#endif /* defined(HAVE_UDF_ARGS_T_NOBODY_GID) */ + +#if defined(HAVE_UDF_ARGS_T_NOBODY_UID) +static uid_t +a_uid(const char *s, const char *id_type) +{ + struct passwd *pw; + + if ((pw = getpwnam(s)) != NULL) + return pw->pw_uid; + return a_num(s, id_type); +} +#endif /* defined(HAVE_UDF_ARGS_T_NOBODY_UID) */ + +/* + * UDF needs remote filesystem. + */ +static char * +udf_match(am_opts *fo) +{ + + if (!fo->opt_dev) { + plog(XLOG_USER, "udf: no source device specified"); + return 0; + } + dlog("UDF: mounting device \"%s\" on \"%s\"", fo->opt_dev, fo->opt_fs); + + /* + * Determine magic cookie to put in mtab + */ + return xstrdup(fo->opt_dev); +} + +static int +mount_udf(char *mntdir, char *fs_name, char *opts, int on_autofs) +{ + udf_args_t udf_args; + mntent_t mnt; + int flags; + char *str; +#if defined(HAVE_UDF_ARGS_T_NOBODY_UID) || defined(HAVE_UDF_ARGS_T_ANON_UID) + uid_t uid_nobody; + gid_t gid_nobody; +#endif /* defined(HAVE_UDF_ARGS_T_NOBODY_UID) || defined(HAVE_UDF_ARGS_T_ANON_UID) */ + /* + * Figure out the name of the file system type. + */ + MTYPE_TYPE type = MOUNT_TYPE_UDF; + +#if defined(HAVE_UDF_ARGS_T_NOBODY_UID) || defined(HAVE_UDF_ARGS_T_ANON_UID) + uid_nobody = a_uid("nobody", "user"); + if (uid_nobody == 0) { + plog(XLOG_ERROR, "mount_udf: invalid uid for nobody"); + return EPERM; + } +#endif /* defined(HAVE_UDF_ARGS_T_NOBODY_UID) || defined(HAVE_UDF_ARGS_T_ANON_UID) */ + +#if defined(HAVE_UDF_ARGS_T_NOBODY_GID) || defined(HAVE_UDF_ARGS_T_ANON_GID) + gid_nobody = a_gid("nobody", "group"); + if (gid_nobody == 0) { + plog(XLOG_ERROR, "mount_udf: invalid gid for nobody"); + return EPERM; + } +#endif /* defined(HAVE_UDF_ARGS_T_NOBODY_GID) || defined(HAVE_UDF_ARGS_T_ANON_GID) */ + + str = NULL; + memset((voidp) &udf_args, 0, sizeof(udf_args)); /* Paranoid */ + + /* + * Fill in the mount structure + */ + memset((voidp)&mnt, 0, sizeof(mnt)); + mnt.mnt_dir = mntdir; + mnt.mnt_fsname = fs_name; + mnt.mnt_type = MNTTAB_TYPE_UDF; + mnt.mnt_opts = opts; + + flags = compute_mount_flags(&mnt); + +#ifdef HAVE_UDF_ARGS_T_UDFMFLAGS +# if defined(MNT2_UDF_OPT_CLOSESESSION) && defined(MNTTAB_OPT_CLOSESESSION) + if (amu_hasmntopt(&mnt, MNTTAB_OPT_CLOSESESSION)) + udf_args.udfmflags |= MNT2_UDF_OPT_CLOSESESSION; +# endif /* defined(MNT2_UDF_OPT_CLOSESESSION) && defined(MNTTAB_OPT_CLOSESESSION) */ +#endif /* HAVE_UDF_ARGS_T_UDFMFLAGS */ + +#ifdef HAVE_UDF_ARGS_T_NOBODY_UID + udf_args.nobody_uid = uid_nobody; +#endif /* HAVE_UDF_ARGS_T_NOBODY_UID */ + +#ifdef HAVE_UDF_ARGS_T_NOBODY_GID + udf_args.nobody_gid = gid_nobody; +#endif /* HAVE_UDF_ARGS_T_NOBODY_GID */ + +#ifdef HAVE_UDF_ARGS_T_ANON_UID + udf_args.anon_uid = uid_nobody; /* default to nobody */ + if ((str = hasmntstr(&mnt, MNTTAB_OPT_USER)) != NULL) { + udf_args.anon_uid = a_uid(str, MNTTAB_OPT_USER); + XFREE(str); + } +#endif /* HAVE_UDF_ARGS_T_ANON_UID */ + +#ifdef HAVE_UDF_ARGS_T_ANON_GID + udf_args.anon_gid = gid_nobody; /* default to nobody */ + if ((str = hasmntstr(&mnt, MNTTAB_OPT_GROUP)) != NULL) { + udf_args.anon_gid = a_gid(str, MNTTAB_OPT_GROUP); + XFREE(str); + } +#endif /* HAVE_UDF_ARGS_T_ANON_GID */ + +#ifdef HAVE_UDF_ARGS_T_GMTOFF + udf_args.gmtoff = 0; + if ((str = hasmntstr(&mnt, MNTTAB_OPT_GMTOFF)) != NULL) { + udf_args.gmtoff = a_num(str, MNTTAB_OPT_GMTOFF); + XFREE(str); + } +#endif /* HAVE_UDF_ARGS_T_GMTOFF */ + +#ifdef HAVE_UDF_ARGS_T_SESSIONNR + udf_args.sessionnr = 0; + if ((str = hasmntstr(&mnt, MNTTAB_OPT_SESSIONNR)) != NULL) { + udf_args.sessionnr = a_num(str, MNTTAB_OPT_SESSIONNR); + XFREE(str); + } +#endif /* HAVE_UDF_ARGS_T_SESSIONNR */ + +#ifdef HAVE_UDF_ARGS_T_VERSION +# ifdef UDFMNT_VERSION + udf_args.version = UDFMNT_VERSION; +# endif /* UDFMNT_VERSION */ +#endif /* HAVE_UDF_ARGS_T_VERSION */ + +#ifdef HAVE_UDF_ARGS_T_FSPEC + udf_args.fspec = fs_name; +#endif /* HAVE_UFS_ARGS_T_FSPEC */ + + /* + * Call generic mount routine + */ + return mount_fs(&mnt, flags, (caddr_t)&udf_args, 0, type, 0, NULL, + mnttab_file_name, on_autofs); +} + +static int +udf_mount(am_node *am, mntfs *mf) +{ + int on_autofs; + int error; + + on_autofs = mf->mf_flags & MFF_ON_AUTOFS; + error = mount_udf(mf->mf_mount, mf->mf_info, mf->mf_mopts, on_autofs); + if (error) { + errno = error; + plog(XLOG_ERROR, "mount_udf: %m"); + return error; + } + return 0; +} + + +static int +udf_umount(am_node *am, mntfs *mf) +{ + int unmount_flags; + + unmount_flags = (mf->mf_flags & MFF_ON_AUTOFS) ? AMU_UMOUNT_AUTOFS : 0; + return UMOUNT_FS(mf->mf_mount, mnttab_file_name, unmount_flags); +} diff --git a/contrib/amd/amd/ops_ufs.c b/contrib/amd/amd/ops_ufs.c index fd82a5c..0d8f306 100644 --- a/contrib/amd/amd/ops_ufs.c +++ b/contrib/amd/amd/ops_ufs.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -61,7 +57,11 @@ static int ufs_umount(am_node *am, mntfs *mf); */ am_ops ufs_ops = { +#ifndef __NetBSD__ "ufs", +#else + "ffs", +#endif ufs_match, 0, /* ufs_init */ ufs_mount, @@ -98,7 +98,7 @@ ufs_match(am_opts *fo) /* * Determine magic cookie to put in mtab */ - return strdup(fo->opt_dev); + return xstrdup(fo->opt_dev); } diff --git a/contrib/amd/amd/ops_umapfs.c b/contrib/amd/amd/ops_umapfs.c index 5ba735e..6f9d39d 100644 --- a/contrib/amd/amd/ops_umapfs.c +++ b/contrib/amd/amd/ops_umapfs.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/contrib/amd/amd/ops_unionfs.c b/contrib/amd/amd/ops_unionfs.c index 73f8d66..e6286133 100644 --- a/contrib/amd/amd/ops_unionfs.c +++ b/contrib/amd/amd/ops_unionfs.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/contrib/amd/amd/ops_xfs.c b/contrib/amd/amd/ops_xfs.c index e0e740b..6e1495e 100644 --- a/contrib/amd/amd/ops_xfs.c +++ b/contrib/amd/amd/ops_xfs.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -98,7 +94,7 @@ xfs_match(am_opts *fo) /* * Determine magic cookie to put in mtab */ - return strdup(fo->opt_dev); + return xstrdup(fo->opt_dev); } diff --git a/contrib/amd/amd/opts.c b/contrib/amd/amd/opts.c index a3d3534..4bc833a 100644 --- a/contrib/amd/amd/opts.c +++ b/contrib/amd/amd/opts.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -539,7 +535,7 @@ eval_selectors(char *opts, char *mapkey) char *f; int ret = 0; - o = old_o = strdup(opts); + o = old_o = xstrdup(opts); /* * For each user-specified option @@ -570,7 +566,7 @@ eval_selectors(char *opts, char *mapkey) /* null-terminate the argument */ *arg++ = '\0'; fx = strchr(arg, ')'); - if (!arg || fx == arg) { + if (fx == NULL || fx == arg) { plog(XLOG_USER, "key %s: Malformed function in \"%s\"", mapkey, f); continue; } @@ -606,8 +602,10 @@ eval_selectors(char *opts, char *mapkey) } } else { if (eq[1] == '\0' || eq == f) { - /* misformed selector */ +#ifdef notdef + /* We allow empty assignments */ plog(XLOG_USER, "key %s: Bad selector \"%s\"", mapkey, f); +#endif continue; } } @@ -968,9 +966,7 @@ f_true(char *arg) static void free_op(opt_apply *p, int b) { - if (*p->opt) { - XFREE(*p->opt); - } + XFREE(*p->opt); } @@ -1016,7 +1012,7 @@ normalize_slash(char *p) /* assert(*f == 0 || *f == '/'); */ } while (*f); - *t = 0; /* derived from fix by Steven Glassman */ + *t = '\0'; /* derived from fix by Steven Glassman */ } } @@ -1238,8 +1234,14 @@ expand_op(char *opt, int sel_p) } if (BUFSPACE(ep, vlen+1)) { - xstrlcpy(ep, vptr, vlen+1); + /* + * Don't call xstrlcpy() to truncate a string here. It causes + * spurious xstrlcpy() syslog() errors. Use memcpy() and + * explicitly terminate the string. + */ + memcpy(ep, vptr, vlen+1); ep += vlen; + *ep = '\0'; } else { plog(XLOG_ERROR, EXPAND_ERROR, opt); goto out; @@ -1292,7 +1294,7 @@ out: * Handle common case - no expansion */ if (cp == opt) { - opt = strdup(cp); + opt = xstrdup(cp); } else { /* * Finish off the expansion @@ -1308,7 +1310,7 @@ out: /* * Save the expansion */ - opt = strdup(expbuf); + opt = xstrdup(expbuf); } normalize_slash(opt); @@ -1372,6 +1374,45 @@ free_opts(am_opts *fo) apply_opts(free_op, to_free, FALSE); } +am_opts * +copy_opts(am_opts *old) +{ + am_opts *newopts; + newopts = CALLOC(struct am_opts); + +#define _AM_OPT_COPY(field) do { \ + if (old->field) \ + newopts->field = xstrdup(old->field); \ + } while (0) + + _AM_OPT_COPY(fs_glob); + _AM_OPT_COPY(fs_local); + _AM_OPT_COPY(fs_mtab); + _AM_OPT_COPY(opt_dev); + _AM_OPT_COPY(opt_delay); + _AM_OPT_COPY(opt_dir); + _AM_OPT_COPY(opt_fs); + _AM_OPT_COPY(opt_group); + _AM_OPT_COPY(opt_mount); + _AM_OPT_COPY(opt_opts); + _AM_OPT_COPY(opt_remopts); + _AM_OPT_COPY(opt_pref); + _AM_OPT_COPY(opt_cache); + _AM_OPT_COPY(opt_rfs); + _AM_OPT_COPY(opt_rhost); + _AM_OPT_COPY(opt_sublink); + _AM_OPT_COPY(opt_type); + _AM_OPT_COPY(opt_mount_type); + _AM_OPT_COPY(opt_unmount); + _AM_OPT_COPY(opt_umount); + _AM_OPT_COPY(opt_user); + _AM_OPT_COPY(opt_maptype); + _AM_OPT_COPY(opt_cachedir); + _AM_OPT_COPY(opt_addopts); + + return newopts; +} + /* * Expand selectors (variables that cannot be assigned to or overridden) diff --git a/contrib/amd/amd/readdir.c b/contrib/amd/amd/readdir.c index d025c91..e75c038 100644 --- a/contrib/amd/amd/readdir.c +++ b/contrib/amd/amd/readdir.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -42,6 +38,7 @@ */ +#include <stdint.h> #ifdef HAVE_CONFIG_H # include <config.h> #endif /* HAVE_CONFIG_H */ @@ -63,6 +60,7 @@ static int key_already_in_chain(char *keyname, const nfsentry *chain); static nfsentry *make_entry_chain(am_node *mp, const nfsentry *current_chain, int fully_browsable); static int amfs_readdir_browsable(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry *ep, u_int count, int fully_browsable); +static const u_int dotdotcookie = DOT_DOT_COOKIE; /**************************************************************************** *** FUNCTIONS *** @@ -108,14 +106,14 @@ make_entry_chain(am_node *mp, const nfsentry *current_chain, int fully_browsable plog(XLOG_DEBUG, "make_entry_chain: mp is (NULL)"); return retval; } - mf = mp->am_mnt; + mf = mp->am_al->al_mnt; if (!mf) { - plog(XLOG_DEBUG, "make_entry_chain: mp->am_mnt is (NULL)"); + plog(XLOG_DEBUG, "make_entry_chain: mp->am_al->al_mnt is (NULL)"); return retval; } mmp = (mnt_map *) mf->mf_private; if (!mmp) { - plog(XLOG_DEBUG, "make_entry_chain: mp->am_mnt->mf_private is (NULL)"); + plog(XLOG_DEBUG, "make_entry_chain: mp->am_al->al_mnt->mf_private is (NULL)"); return retval; } @@ -170,7 +168,7 @@ make_entry_chain(am_node *mp, const nfsentry *current_chain, int fully_browsable /* out of space */ plog(XLOG_DEBUG, "make_entry_chain: no more space in chain"); if (num_entries > 0) { - chain[num_entries - 1].ne_nextentry = 0; + chain[num_entries - 1].ne_nextentry = NULL; retval = &chain[0]; } return retval; @@ -190,7 +188,7 @@ make_entry_chain(am_node *mp, const nfsentry *current_chain, int fully_browsable /* terminate chain */ if (num_entries > 0) { - chain[num_entries - 1].ne_nextentry = 0; + chain[num_entries - 1].ne_nextentry = NULL; retval = &chain[0]; } @@ -203,7 +201,7 @@ make_entry_chain(am_node *mp, const nfsentry *current_chain, int fully_browsable static int amfs_readdir_browsable(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry *ep, u_int count, int fully_browsable) { - u_int gen = *(u_int *) cookie; + u_int gen = *(u_int *) (uintptr_t) cookie; int chain_length, i; static nfsentry *te, *te_next; static int j; @@ -223,7 +221,7 @@ amfs_readdir_browsable(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry * * to be returned in a single packet. If it isn't (which would be * fairly unbelievable) then tough. */ - dlog("amfs_readdir_browsable: default search"); + dlog("%s: default search", __func__); /* * Check for enough room. This is extremely approximate but is more * than enough space. Really need 2 times: @@ -262,8 +260,8 @@ amfs_readdir_browsable(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry * ep[1].ne_fileid = mp->am_gen; ep[1].ne_name = ".."; - ep[1].ne_nextentry = 0; - *(u_int *) ep[1].ne_cookie = DOT_DOT_COOKIE; + ep[1].ne_nextentry = NULL; + (void)memcpy(ep[1].ne_cookie, &dotdotcookie, sizeof(dotdotcookie)); /* * If map is browsable, call a function make_entry_chain() to construct @@ -308,12 +306,12 @@ amfs_readdir_browsable(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry * return 0; } /* end of "if (gen == 0)" statement */ - dlog("amfs_readdir_browsable: real child"); + dlog("%s: real child", __func__); if (gen == DOT_DOT_COOKIE) { - dlog("amfs_readdir_browsable: End of readdir in %s", mp->am_path); + dlog("%s: End of readdir in %s", __func__, mp->am_path); dp->dl_eof = TRUE; - dp->dl_entries = 0; + dp->dl_entries = NULL; return 0; } @@ -327,7 +325,7 @@ amfs_readdir_browsable(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry * te = te_next; /* reset 'te' from last saved te_next */ if (!te) { /* another indicator of end of readdir */ - dp->dl_entries = 0; + dp->dl_entries = NULL; return 0; } /* @@ -360,29 +358,14 @@ amfs_readdir_browsable(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry * return 0; } - -/* - * This readdir function which call a special version of it that allows - * browsing if browsable_dirs=yes was set on the map. - */ -int -amfs_generic_readdir(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry *ep, u_int count) +static int +amfs_readdir(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry *ep, u_int count) { - u_int gen = *(u_int *) cookie; + u_int gen = *(u_int *) (uintptr_t) cookie; am_node *xp; - mntent_t mnt; dp->dl_eof = FALSE; /* assume readdir not done */ - /* check if map is browsable */ - if (mp->am_mnt && mp->am_mnt->mf_mopts) { - mnt.mnt_opts = mp->am_mnt->mf_mopts; - if (amu_hasmntopt(&mnt, "fullybrowsable")) - return amfs_readdir_browsable(mp, cookie, dp, ep, count, TRUE); - if (amu_hasmntopt(&mnt, "browsable")) - return amfs_readdir_browsable(mp, cookie, dp, ep, count, FALSE); - } - /* when gen is 0, we start reading from the beginning of the directory */ if (gen == 0) { /* @@ -393,7 +376,7 @@ amfs_generic_readdir(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry *ep * to be returned in a single packet. If it isn't (which would be * fairly unbelievable) then tough. */ - dlog("amfs_generic_readdir: default search"); + dlog("%s: default search", __func__); /* * Check for enough room. This is extremely approximate but is more * than enough space. Really need 2 times: @@ -402,8 +385,11 @@ amfs_generic_readdir(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry *ep * 4byte name length * 4byte name * plus the dirlist structure */ - if (count < (2 * (2 * (sizeof(*ep) + sizeof("..") + 4) + sizeof(*dp)))) +#define NEEDROOM (2 * (2 * (sizeof(*ep) + sizeof("..") + 4) + sizeof(*dp))) + if (count < NEEDROOM) { + dlog("%s: not enough room %u < %zu", __func__, count, NEEDROOM); return EINVAL; + } xp = next_nonerror_node(mp->am_child); dp->dl_entries = ep; @@ -420,8 +406,9 @@ amfs_generic_readdir(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry *ep else ep[1].ne_fileid = mp->am_gen; ep[1].ne_name = ".."; - ep[1].ne_nextentry = 0; - *(u_int *) ep[1].ne_cookie = (xp ? xp->am_gen : DOT_DOT_COOKIE); + ep[1].ne_nextentry = NULL; + (void)memcpy(ep[1].ne_cookie, (xp ? &xp->am_gen : &dotdotcookie), + sizeof(dotdotcookie)); if (!xp) dp->dl_eof = TRUE; /* by default assume readdir done */ @@ -435,12 +422,12 @@ amfs_generic_readdir(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry *ep } return 0; } - dlog("amfs_generic_readdir: real child"); + dlog("%s: real child", __func__); if (gen == DOT_DOT_COOKIE) { - dlog("amfs_generic_readdir: End of readdir in %s", mp->am_path); + dlog("%s: End of readdir in %s", __func__, mp->am_path); dp->dl_eof = TRUE; - dp->dl_entries = 0; + dp->dl_entries = NULL; if (amuDebug(D_READDIR)) plog(XLOG_DEBUG, "end of readdir eof=TRUE, dl_entries=0\n"); return 0; @@ -483,7 +470,7 @@ amfs_generic_readdir(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry *ep } } while (todo > 0); - ep->ne_nextentry = 0; + ep->ne_nextentry = NULL; if (amuDebug(D_READDIR)) { nfsentry *ne; @@ -496,3 +483,460 @@ amfs_generic_readdir(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry *ep } return ESTALE; } + +/* + * Search a chain for an entry with some name. + */ +static int +key_already_in_chain3(char *keyname, const am_entry3 *chain) +{ + const am_entry3 *tmpchain = chain; + + while (tmpchain) { + if (keyname && tmpchain->name && STREQ(keyname, tmpchain->name)) + return 1; + tmpchain = tmpchain->nextentry; + } + + return 0; +} + +/* + * Create a chain of entries which are not linked. + */ +static am_entry3 * +make_entry_chain3(am_node *mp, const am_entry3 *current_chain, int fully_browsable) +{ + static uint64 last_cookie = (uint64) 2; /* monotonically increasing */ + static am_entry3 chain[MAX_CHAIN]; + static int max_entries = MAX_CHAIN; + char *key; + int num_entries = 0, i; + u_int preflen = 0; + am_entry3 *retval = (am_entry3 *) NULL; + mntfs *mf; + mnt_map *mmp; + + if (!mp) { + plog(XLOG_DEBUG, "make_entry_chain3: mp is (NULL)"); + return retval; + } + mf = mp->am_al->al_mnt; + if (!mf) { + plog(XLOG_DEBUG, "make_entry_chain3: mp->am_al->al_mnt is (NULL)"); + return retval; + } + mmp = (mnt_map *) mf->mf_private; + if (!mmp) { + plog(XLOG_DEBUG, "make_entry_chain3: mp->am_al->al_mnt->mf_private is (NULL)"); + return retval; + } + + if (mp->am_pref) + preflen = strlen(mp->am_pref); + + /* iterate over keys */ + for (i = 0; i < NKVHASH; i++) { + kv *k; + for (k = mmp->kvhash[i]; k ; k = k->next) { + + /* + * Skip unwanted entries which are either not real entries or + * very difficult to interpret (wildcards...) This test needs + * lots of improvement. Any takers? + */ + key = k->key; + if (!key) + continue; + + /* Skip '/defaults' */ + if (STREQ(key, "/defaults")) + continue; + + /* Skip '*' */ + if (!fully_browsable && strchr(key, '*')) + continue; + + /* + * If the map has a prefix-string then check if the key starts with + * this string, and if it does, skip over this prefix. If it has a + * prefix and it doesn't match the start of the key, skip it. + */ + if (preflen) { + if (preflen > strlen(key)) + continue; + if (!NSTREQ(key, mp->am_pref, preflen)) + continue; + key += preflen; + } + + /* no more '/' are allowed, unless browsable_dirs=full was used */ + if (!fully_browsable && strchr(key, '/')) + continue; + + /* no duplicates allowed */ + if (key_already_in_chain3(key, current_chain)) + continue; + + /* fill in a cell and link the entry */ + if (num_entries >= max_entries) { + /* out of space */ + plog(XLOG_DEBUG, "make_entry_chain3: no more space in chain"); + if (num_entries > 0) { + chain[num_entries - 1].nextentry = NULL; + retval = &chain[0]; + } + return retval; + } + + /* we have space. put entry in next cell */ + ++last_cookie; + chain[num_entries].fileid = last_cookie; + chain[num_entries].cookie = last_cookie; + chain[num_entries].name = key; + if (num_entries < max_entries - 1) { /* link to next one */ + chain[num_entries].nextentry = &chain[num_entries + 1]; + } + ++num_entries; + } /* end of "while (k)" */ + } /* end of "for (i ... NKVHASH ..." */ + + /* terminate chain */ + if (num_entries > 0) { + chain[num_entries - 1].nextentry = NULL; + retval = &chain[0]; + } + + return retval; +} + +static size_t needroom3(void) +{ + /* + * Check for enough room. This is extremely approximate but should + * be enough space. Really need 2 times: + * (8byte fileid + * 8byte cookie + * 8byte name pointer + * 8byte next entry addres) = sizeof(am_entry3) + * 2byte name + 1byte terminator + * plus the size of the am_dirlist3 structure */ + return ((2 * ((sizeof(am_entry3) + sizeof("..") + 1))) + sizeof(am_dirlist3)); +} + +/* This one is called only if map is browsable */ +static int +amfs_readdir3_browsable(am_node *mp, am_cookie3 cookie, + am_dirlist3 *dp, am_entry3 *ep, u_int count, + int fully_browsable) +{ + uint64 gen = *(uint64 *) (uintptr_t) cookie; + int chain_length, i; + static am_entry3 *te, *te_next; + static int j; + + dp->eof = FALSE; /* assume readdir not done */ + + if (amuDebug(D_READDIR)) + plog(XLOG_DEBUG, "amfs_readdir3_browsable gen=%lu, count=%d", (long unsigned) gen, count); + + if (gen == 0) { + size_t needed = needroom3(); + /* + * In the default instance (which is used to start a search) we return + * "." and "..". + * + * This assumes that the count is big enough to allow both "." and ".." + * to be returned in a single packet. If it isn't (which would be + * fairly unbelievable) then tough. + */ + dlog("%s: default search", __func__); + + if (count < needed) { + dlog("%s: not enough room %u < %zu", __func__, count, needed); + return EINVAL; + } + + /* + * compute # of entries to send in this chain. + * heuristics: 128 bytes per entry. + * This is too much probably, but it seems to work better because + * of the re-entrant nature of nfs_readdir, and esp. on systems + * like OpenBSD 2.2. + */ + chain_length = count / 128; + + /* reset static state counters */ + te = te_next = NULL; + + dp->entries = ep; + + /* construct "." */ + ep[0].fileid = mp->am_gen; + ep[0].name = "."; + ep[0].nextentry = &ep[1]; + ep[0].cookie = 0; + + /* construct ".." */ + if (mp->am_parent) + ep[1].fileid = mp->am_parent->am_gen; + else + ep[1].fileid = mp->am_gen; + + ep[1].name = ".."; + ep[1].nextentry = NULL; + ep[1].cookie = dotdotcookie; + + /* + * If map is browsable, call a function make_entry_chain() to construct + * a linked list of unmounted keys, and return it. Then link the chain + * to the regular list. Get the chain only once, but return + * chunks of it each time. + */ + te = make_entry_chain3(mp, dp->entries, fully_browsable); + if (!te) + return 0; + if (amuDebug(D_READDIR)) { + am_entry3 *ne; + for (j = 0, ne = te; ne; ne = ne->ne_nextentry) + plog(XLOG_DEBUG, "gen1 key %4d \"%s\"", j++, ne->ne_name); + } + + /* return only "chain_length" entries */ + te_next = te; + for (i=1; i<chain_length; ++i) { + te_next = te_next->nextentry; + if (!te_next) + break; + } + if (te_next) { + am_entry3 *te_saved = te_next->nextentry; + te_next->nextentry = NULL; /* terminate "te" chain */ + te_next = te_saved; /* save rest of "te" for next iteration */ + dp->eof = FALSE; /* tell readdir there's more */ + } else { + dp->eof = TRUE; /* tell readdir that's it */ + } + ep[1].nextentry = te; /* append this chunk of "te" chain */ + if (amuDebug(D_READDIR)) { + am_entry3 *ne; + for (j = 0, ne = te; ne; ne = ne->ne_nextentry) + plog(XLOG_DEBUG, "gen2 key %4d \"%s\"", j++, ne->name); + for (j = 0, ne = ep; ne; ne = ne->ne_nextentry) { + plog(XLOG_DEBUG, "gen2+ key %4d \"%s\" fi=%lu ck=%lu", + j++, ne->name, (long unsigned) ne->fileid, (long unsigned) ne->cookie); + } + plog(XLOG_DEBUG, "EOF is %d", dp->eof); + } + return 0; + } /* end of "if (gen == 0)" statement */ + + dlog("%s: real child", __func__); + + if (gen == DOT_DOT_COOKIE) { + dlog("%s: End of readdir in %s", __func__, mp->am_path); + dp->eof = TRUE; + dp->entries = NULL; + return 0; + } + + /* + * If browsable directories, then continue serving readdir() with another + * chunk of entries, starting from where we left off (when gen was equal + * to 0). Once again, assume last chunk served to readdir. + */ + dp->eof = TRUE; + dp->entries = ep; + + te = te_next; /* reset 'te' from last saved te_next */ + if (!te) { /* another indicator of end of readdir */ + dp->entries = NULL; + return 0; + } + /* + * compute # of entries to send in this chain. + * heuristics: 128 bytes per entry. + */ + chain_length = count / 128; + + /* return only "chain_length" entries */ + for (i = 1; i < chain_length; ++i) { + te_next = te_next->nextentry; + if (!te_next) + break; + } + if (te_next) { + am_entry3 *te_saved = te_next->nextentry; + te_next->nextentry = NULL; /* terminate "te" chain */ + te_next = te_saved; /* save rest of "te" for next iteration */ + dp->eof = FALSE; /* tell readdir there's more */ + } + ep = te; /* send next chunk of "te" chain */ + dp->entries = ep; + if (amuDebug(D_READDIR)) { + am_entry3 *ne; + plog(XLOG_DEBUG, + "entries=%p, te_next=%p, eof=%d", dp->entries, te_next, dp->eof); + for (ne = te; ne; ne = ne->nextentry) + plog(XLOG_DEBUG, "gen3 key %4d \"%s\"", j++, ne->name); + } + return 0; +} + +static int +amfs_readdir3(am_node *mp, am_cookie3 cookie, + am_dirlist3 *dp, am_entry3 *ep, u_int count) +{ + uint64 gen = *(uint64 *) (uintptr_t) cookie; + am_node *xp; + + if (amuDebug(D_READDIR)) + plog(XLOG_DEBUG, "amfs_readdir3 gen=%lu, count=%d", (long unsigned) gen, count); + + dp->eof = FALSE; /* assume readdir not done */ + + /* when gen is 0, we start reading from the beginning of the directory */ + if (gen == 0) { + size_t needed = needroom3(); + /* + * In the default instance (which is used to start a search) we return + * "." and "..". + * + * This assumes that the count is big enough to allow both "." and ".." + * to be returned in a single packet. If it isn't (which would be + * fairly unbelievable) then tough. + */ + dlog("%s: default search", __func__); + + if (count < needed) { + dlog("%s: not enough room %u < %zu", __func__, count, needed); + return EINVAL; + } + + xp = next_nonerror_node(mp->am_child); + dp->entries = ep; + + /* construct "." */ + ep[0].fileid = mp->am_gen; + ep[0].name = "."; + ep[0].cookie = 0; + ep[0].nextentry = &ep[1]; + + /* construct ".." */ + if (mp->am_parent) + ep[1].fileid = mp->am_parent->am_gen; + else + ep[1].fileid = mp->am_gen; + ep[1].name = ".."; + ep[1].nextentry = NULL; + ep[1].cookie = (xp ? xp->am_gen : dotdotcookie); + + if (!xp) + dp->eof = TRUE; /* by default assume readdir done */ + + if (amuDebug(D_READDIR)) { + am_entry3 *ne; + int j; + for (j = 0, ne = ep; ne; ne = ne->nextentry) { + plog(XLOG_DEBUG, "gen1 key %4d \"%s\" fi=%lu ck=%lu", + j++, ne->name, (long unsigned) ne->fileid, (long unsigned) ne->cookie); + } + } + return 0; + } + dlog("%s: real child", __func__); + + if (gen == (uint64) DOT_DOT_COOKIE) { + dlog("%s: End of readdir in %s", __func__, mp->am_path); + dp->eof = TRUE; + dp->entries = NULL; + if (amuDebug(D_READDIR)) + plog(XLOG_DEBUG, "end of readdir eof=TRUE, dl_entries=0\n"); + return 0; + } + + /* non-browsable directories code */ + xp = mp->am_child; + while (xp && xp->am_gen != gen) + xp = xp->am_osib; + + if (xp) { + int nbytes = count / 2; /* conservative */ + int todo = MAX_READDIR_ENTRIES; + + dp->entries = ep; + do { + am_node *xp_next = next_nonerror_node(xp->am_osib); + + if (xp_next) { + ep->cookie = xp_next->am_gen; + } else { + ep->cookie = (uint64) dotdotcookie; + dp->eof = TRUE; + } + + ep->fileid = xp->am_gen; + ep->name = xp->am_name; + nbytes -= sizeof(*ep) + 1; + if (xp->am_name) + nbytes -= strlen(xp->am_name); + + xp = xp_next; + + if (nbytes > 0 && !dp->dl_eof && todo > 1) { + ep->nextentry = ep + 1; + ep++; + --todo; + } else { + todo = 0; + } + } while (todo > 0); + + ep->nextentry = NULL; + + if (amuDebug(D_READDIR)) { + am_entry3 *ne; + int j; + for (j = 0, ne = ep; ne; ne = ne->nextentry) { + plog(XLOG_DEBUG, "gen2 key %4d \"%s\" fi=%lu ck=%lu", + j++, ne->name, (long unsigned) ne->fileid, (long unsigned) ne->cookie); + } + } + return 0; + } + return ESTALE; +} + +/* + * This readdir function which call a special version of it that allows + * browsing if browsable_dirs=yes was set on the map. + */ +int +amfs_generic_readdir(am_node *mp, voidp cookie, voidp dp, voidp ep, u_int count) +{ + int browsable, full; + + /* check if map is browsable */ + browsable = 0; + if (mp->am_al->al_mnt && mp->am_al->al_mnt->mf_mopts) { + mntent_t mnt; + mnt.mnt_opts = mp->am_al->al_mnt->mf_mopts; + if (amu_hasmntopt(&mnt, "fullybrowsable")) + browsable = 2; + else if (amu_hasmntopt(&mnt, "browsable")) + browsable = 1; + } + full = (browsable == 2); + + if (nfs_dispatcher == nfs_program_2) { + if (browsable) + return amfs_readdir_browsable(mp, cookie, dp, ep, count, full); + else + return amfs_readdir(mp, cookie, dp, ep, count); + } else { + if (browsable) + return amfs_readdir3_browsable(mp, (am_cookie3) (uintptr_t) cookie, dp, ep, count, full); + else + return amfs_readdir3(mp, (am_cookie3) (uintptr_t) cookie, dp, ep, count); + } +} diff --git a/contrib/amd/amd/restart.c b/contrib/amd/amd/restart.c index 4f71e38..de38bcf 100644 --- a/contrib/amd/amd/restart.c +++ b/contrib/amd/amd/restart.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -59,21 +55,21 @@ restart_fake_mntfs(mntent_t *me, am_ops *fs_ops) * Partially fake up an opts structure */ memset(&mo, 0, sizeof(mo)); - mo.opt_rhost = 0; - mo.opt_rfs = 0; + mo.opt_rhost = NULL; + mo.opt_rfs = NULL; cp = strchr(me->mnt_fsname, ':'); if (cp) { *cp = '\0'; - mo.opt_rhost = strdup(me->mnt_fsname); - mo.opt_rfs = strdup(cp + 1); + mo.opt_rhost = xstrdup(me->mnt_fsname); + mo.opt_rfs = xstrdup(cp + 1); *cp = ':'; } else if (STREQ(me->mnt_type, MNTTAB_TYPE_NFS)) { /* * Hacky workaround for mnttab NFS entries that only list the server */ plog(XLOG_WARNING, "NFS server entry assumed to be %s:/", me->mnt_fsname); - mo.opt_rhost = strdup(me->mnt_fsname); - mo.opt_rfs = strdup("/"); + mo.opt_rhost = xstrdup(me->mnt_fsname); + mo.opt_rfs = xstrdup("/"); me->mnt_fsname = str3cat(me->mnt_fsname, mo.opt_rhost, ":", "/"); } mo.opt_fs = me->mnt_dir; @@ -87,7 +83,6 @@ restart_fake_mntfs(mntent_t *me, am_ops *fs_ops) if (mf->mf_refc == 1) { mf->mf_flags |= MFF_RESTART | MFF_MOUNTED; mf->mf_error = 0; /* Already mounted correctly */ - mf->mf_fo = 0; /* * Only timeout non-NFS entries */ @@ -110,10 +105,8 @@ restart_fake_mntfs(mntent_t *me, am_ops *fs_ops) /* * Clean up mo */ - if (mo.opt_rhost) - XFREE(mo.opt_rhost); - if (mo.opt_rfs) - XFREE(mo.opt_rfs); + XFREE(mo.opt_rhost); + XFREE(mo.opt_rfs); } @@ -140,7 +133,7 @@ restart(void) mlp; mlp = mlp->mnext) { mntent_t *me = mlp->mnt; - am_ops *fs_ops = 0; + am_ops *fs_ops = NULL; if (STREQ(me->mnt_type, MNTTAB_TYPE_NFS)) { /* @@ -203,7 +196,7 @@ restart_automounter_nodes(void) mlp; mlp = mlp->mnext) { mntent_t *me = mlp->mnt; - am_ops *fs_ops = 0; + am_ops *fs_ops = NULL; char *colon; long pid; u_short port; @@ -263,7 +256,8 @@ restart_automounter_nodes(void) if (old_ports[i] == 0) { int soNFS; SVCXPRT *nfsxprt; - if (create_nfs_service(&soNFS, &port, &nfsxprt, nfs_program_2) != 0) { + if (create_nfs_service(&soNFS, &port, &nfsxprt, nfs_dispatcher, + get_nfs_dispatcher_version(nfs_dispatcher)) != 0) { plog(XLOG_WARNING, "Can't bind to port %u", port); goto give_up; } diff --git a/contrib/amd/amd/rpc_fwd.c b/contrib/amd/amd/rpc_fwd.c index b3c8be4..757b437 100644 --- a/contrib/amd/amd/rpc_fwd.c +++ b/contrib/amd/amd/rpc_fwd.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -94,7 +90,7 @@ static rpc_forward * fwd_alloc(void) { time_t now = clocktime(NULL); - rpc_forward *p = 0, *p2; + rpc_forward *p = NULL, *p2; /* * First search for an existing expired one. @@ -183,7 +179,7 @@ fwd_init(void) /* * Some things we talk to require a priv port - so make one here */ - if (bind_resv_port(fwd_sock, (u_short *) 0) < 0) + if (bind_resv_port(fwd_sock, (u_short *) NULL) < 0) plog(XLOG_ERROR, "can't bind privileged port (rpc_fwd)"); if (fcntl(fwd_sock, F_SETFL, FNDELAY) < 0 diff --git a/contrib/amd/amd/sched.c b/contrib/amd/amd/sched.c index 8efe57a..5c816b4 100644 --- a/contrib/amd/amd/sched.c +++ b/contrib/amd/amd/sched.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -262,7 +258,7 @@ sigchld(int sig) #ifdef HAVE_WAITPID while ((pid = waitpid((pid_t) -1, &w, WNOHANG)) > 0) { #else /* not HAVE_WAITPID */ - while ((pid = wait3( &w, WNOHANG, (struct rusage *) 0)) > 0) { + while ((pid = wait3( &w, WNOHANG, (struct rusage *) NULL)) > 0) { #endif /* not HAVE_WAITPID */ pjob *p, *p2; diff --git a/contrib/amd/amd/srvr_amfs_auto.c b/contrib/amd/amd/srvr_amfs_auto.c index 4742cf6..44b1302 100644 --- a/contrib/amd/amd/srvr_amfs_auto.c +++ b/contrib/amd/amd/srvr_amfs_auto.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -69,14 +65,14 @@ amfs_generic_find_srvr(mntfs *mf) if (!fs) { fs = ALLOC(struct fserver); fs->fs_refc = 0; - fs->fs_host = strdup("localhost"); - fs->fs_ip = 0; + fs->fs_host = xstrdup("localhost"); + fs->fs_ip = NULL; fs->fs_cid = 0; fs->fs_pinger = AM_PINGER; fs->fs_flags = FSF_VALID | FSF_PING_UNINIT; fs->fs_type = "local"; - fs->fs_private = 0; - fs->fs_prfree = 0; + fs->fs_private = NULL; + fs->fs_prfree = NULL; ins_que(&fs->fs_q, &amfs_auto_srvr_list); @@ -135,8 +131,7 @@ timeout_srvr(voidp v) /* * Free the net address */ - if (fs->fs_ip) - XFREE(fs->fs_ip); + XFREE(fs->fs_ip); /* * Free the host name. diff --git a/contrib/amd/amd/srvr_nfs.c b/contrib/amd/amd/srvr_nfs.c index 0c74a65..b7c852c 100644 --- a/contrib/amd/amd/srvr_nfs.c +++ b/contrib/amd/amd/srvr_nfs.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -75,6 +71,7 @@ typedef struct nfs_private { u_short np_mountd; /* Mount daemon port number */ char np_mountd_inval; /* Port *may* be invalid */ + /* 'Y' invalid, 'N' valid, 'P' permanent */ int np_ping; /* Number of failed ping attempts */ time_t np_ttl; /* Time when server is thought dead */ int np_xid; /* RPC transaction id for pings */ @@ -88,7 +85,9 @@ qelem nfs_srvr_list = {&nfs_srvr_list, &nfs_srvr_list}; static int global_xid; /* For NFS pings */ #define XID_ALLOC() (++global_xid) -#ifdef HAVE_FS_NFS3 +#if defined(HAVE_FS_NFS4) +# define NUM_NFS_VERS 3 +#elif defined(HAVE_FS_NFS3) # define NUM_NFS_VERS 2 #else /* not HAVE_FS_NFS3 */ # define NUM_NFS_VERS 1 @@ -124,8 +123,8 @@ flush_srvr_nfs_cache(fserver *fs) ITER(fs2, fserver, &nfs_srvr_list) { if (fs == NULL || fs == fs2) { nfs_private *np = (nfs_private *) fs2->fs_private; - if (np) { - np->np_mountd_inval = TRUE; + if (np && np->np_mountd_inval != 'P') { + np->np_mountd_inval = 'Y'; np->np_error = -1; } } @@ -147,9 +146,9 @@ create_ping_payload(u_long nfs_version) */ if (nfs_version == 0) { nfs_version = NFS_VERSION; - plog(XLOG_WARNING, "create_ping_payload: nfs_version = 0, changed to 2"); + plog(XLOG_WARNING, "%s: nfs_version = 0, changed to 2", __func__); } else - plog(XLOG_INFO, "create_ping_payload: nfs_version: %d", (int) nfs_version); + plog(XLOG_INFO, "%s: nfs_version: %d", __func__, (int) nfs_version); rpc_msg_init(&ping_msg, NFS_PROGRAM, nfs_version, NFSPROC_NULL); @@ -164,6 +163,7 @@ create_ping_payload(u_long nfs_version) if (!xdr_callmsg(&ping_xdr, &ping_msg)) { plog(XLOG_ERROR, "Couldn't create ping RPC message"); going_down(3); + return; } /* * Find out how long it is @@ -184,7 +184,7 @@ static void got_portmap(voidp pkt, int len, struct sockaddr_in *sa, struct sockaddr_in *ia, voidp idv, int done) { fserver *fs2 = (fserver *) idv; - fserver *fs = 0; + fserver *fs = NULL; /* * Find which fileserver we are talking about @@ -207,7 +207,7 @@ got_portmap(voidp pkt, int len, struct sockaddr_in *sa, struct sockaddr_in *ia, * network ordering. */ np->np_mountd = htons((u_short) port); - np->np_mountd_inval = FALSE; + np->np_mountd_inval = 'N'; np->np_error = 0; } else { dlog("Error fetching port for mountd on %s", fs->fs_host); @@ -291,9 +291,9 @@ recompute_portmap(fserver *fs) } if (fs->fs_version == 0) - plog(XLOG_WARNING, "recompute_portmap: nfs_version = 0 fixed"); + plog(XLOG_WARNING, "%s: nfs_version = 0 fixed", __func__); - plog(XLOG_INFO, "recompute_portmap: NFS version %d on %s", + plog(XLOG_INFO, "%s: NFS version %d on %s", __func__, (int) fs->fs_version, fs->fs_host); #ifdef HAVE_FS_NFS3 if (fs->fs_version == NFS_VERSION3) @@ -311,6 +311,7 @@ int get_mountd_port(fserver *fs, u_short *port, wchan_t wchan) { int error = -1; + if (FSRV_ISDOWN(fs)) return EWOULDBLOCK; @@ -329,10 +330,18 @@ get_mountd_port(fserver *fs, u_short *port, wchan_t wchan) * indication that the mountd may be invalid, not * that it is known to be invalid. */ - if (np->np_mountd_inval) + switch (np->np_mountd_inval) { + case 'Y': recompute_portmap(fs); - else - np->np_mountd_inval = TRUE; + break; + case 'N': + np->np_mountd_inval = 'Y'; + break; + case 'P': + break; + default: + abort(); + } } if (error < 0 && wchan && !(fs->fs_flags & FSF_WANT)) { /* @@ -425,7 +434,7 @@ nfs_keepalive_callback(voidp pkt, int len, struct sockaddr_in *sp, struct sockad /* * Recompute portmap information if not known */ - if (np->np_mountd_inval) + if (np->np_mountd_inval == 'Y') recompute_portmap(fs); found_map++; @@ -454,7 +463,7 @@ check_fs_addr_change(fserver *fs) sizeof(fs->fs_ip->sin_addr)) == 0) return; /* if got here: downed server changed IP address */ - old_ipaddr = strdup(inet_ntoa(fs->fs_ip->sin_addr)); + old_ipaddr = xstrdup(inet_ntoa(fs->fs_ip->sin_addr)); memmove((voidp) &ia, (voidp) hp->h_addr, sizeof(struct in_addr)); new_ipaddr = inet_ntoa(ia); /* ntoa uses static buf */ plog(XLOG_WARNING, "EZK: down fileserver %s changed ip: %s -> %s", @@ -474,7 +483,7 @@ check_fs_addr_change(fserver *fs) #if 0 flush_nfs_fhandle_cache(fs); /* done in caller: nfs_keepalive_timeout */ /* XXX: need to purge nfs_private so that somehow it will get re-initialized? */ -#endif +#endif /* 0 */ } @@ -562,22 +571,24 @@ nfs_keepalive(voidp v) int error; nfs_private *np = (nfs_private *) fs->fs_private; int fstimeo = -1; + int fs_version = nfs_valid_version(gopt.nfs_vers_ping) && + gopt.nfs_vers_ping < fs->fs_version ? gopt.nfs_vers_ping : fs->fs_version; /* * Send an NFS ping to this node */ - if (ping_len[fs->fs_version - NFS_VERSION] == 0) - create_ping_payload(fs->fs_version); + if (ping_len[fs_version - NFS_VERSION] == 0) + create_ping_payload(fs_version); /* * Queue the packet... */ error = fwd_packet(MK_RPC_XID(RPC_XID_NFSPING, np->np_xid), - ping_buf[fs->fs_version - NFS_VERSION], - ping_len[fs->fs_version - NFS_VERSION], + ping_buf[fs_version - NFS_VERSION], + ping_len[fs_version - NFS_VERSION], fs->fs_ip, - (struct sockaddr_in *) 0, + (struct sockaddr_in *) NULL, (voidp) ((long) np->np_xid), /* cast needed for 64-bit archs */ nfs_keepalive_callback); @@ -673,7 +684,7 @@ start_nfs_pings(fserver *fs, int pingval) fserver * find_nfs_srvr(mntfs *mf) { - char *host = mf->mf_fo->opt_rhost; + char *host; fserver *fs; int pingval; mntent_t mnt; @@ -687,6 +698,11 @@ find_nfs_srvr(mntfs *mf) int nfs_port_opt = 0; int fserver_is_down = 0; + if (mf->mf_fo == NULL) { + plog(XLOG_ERROR, "%s: NULL mf_fo", __func__); + return NULL; + } + host = mf->mf_fo->opt_rhost; /* * Get ping interval from mount options. * Current only used to decide whether pings @@ -702,7 +718,8 @@ find_nfs_srvr(mntfs *mf) */ nfs_version = NFS_VERSION; nfs_proto = "udp"; - plog(XLOG_WARNING, "find_nfs_srvr: NFS mount failed, trying again with NFSv2/UDP"); + plog(XLOG_WARNING, "%s: NFS mount failed, trying again with NFSv2/UDP", + __func__); mf->mf_flags &= ~MFF_NFS_SCALEDOWN; } else { /* @@ -742,12 +759,13 @@ find_nfs_srvr(mntfs *mf) /* check if we've globally overridden the NFS version/protocol */ if (gopt.nfs_vers) { nfs_version = gopt.nfs_vers; - plog(XLOG_INFO, "find_nfs_srvr: force NFS version to %d", + plog(XLOG_INFO, "%s: force NFS version to %d", __func__, (int) nfs_version); } if (gopt.nfs_proto) { nfs_proto = gopt.nfs_proto; - plog(XLOG_INFO, "find_nfs_srvr: force NFS protocol transport to %s", nfs_proto); + plog(XLOG_INFO, "%s: force NFS protocol transport to %s", __func__, + nfs_proto); } } @@ -769,7 +787,7 @@ find_nfs_srvr(mntfs *mf) if (hp) { switch (hp->h_addrtype) { case AF_INET: - ip = ALLOC(struct sockaddr_in); + ip = CALLOC(struct sockaddr_in); memset((voidp) ip, 0, sizeof(*ip)); /* as per POSIX, sin_len need not be set (used internally by kernel) */ ip->sin_family = AF_INET; @@ -795,8 +813,7 @@ find_nfs_srvr(mntfs *mf) STREQ(host, fs->fs_host)) { plog(XLOG_WARNING, "fileserver %s is already hung - not running NFS proto/version discovery", host); fs->fs_refc++; - if (ip) - XFREE(ip); + XFREE(ip); return fs; } } @@ -821,10 +838,12 @@ find_nfs_srvr(mntfs *mf) plog(XLOG_INFO, "%s option used, NOT contacting the portmapper on %s", MNTTAB_OPT_PUBLIC, host); /* - * Prefer NFSv3/tcp if the client supports it (cf. RFC 2054, 7). + * Prefer NFSv4/tcp if the client supports it (cf. RFC 2054, 7). */ if (!nfs_version) { -#ifdef HAVE_FS_NFS3 +#if defined(HAVE_FS_NFS4) + nfs_version = NFS_VERSION4; +#elif defined(HAVE_FS_NFS3) nfs_version = NFS_VERSION3; #else /* not HAVE_FS_NFS3 */ nfs_version = NFS_VERSION; @@ -833,11 +852,11 @@ find_nfs_srvr(mntfs *mf) (int) nfs_version); } if (!nfs_proto) { -#if defined(MNTTAB_OPT_PROTO) || defined(HAVE_FS_NFS3) +#if defined(MNTTAB_OPT_PROTO) || defined(HAVE_FS_NFS3) || defined(HAVE_FS_NFS4) nfs_proto = "tcp"; -#else /* not defined(MNTTAB_OPT_PROTO) || defined(HAVE_FS_NFS3) */ +#else /* not defined(MNTTAB_OPT_PROTO) || defined(HAVE_FS_NFS3) || defined(HAVE_FS_NFS4) */ nfs_proto = "udp"; -#endif /* not defined(MNTTAB_OPT_PROTO) || defined(HAVE_FS_NFS3) */ +#endif /* not defined(MNTTAB_OPT_PROTO) || defined(HAVE_FS_NFS3) || defined(HAVE_FS_NFS4) */ plog(XLOG_INFO, "No NFS protocol transport specified, will use %s", nfs_proto); } @@ -849,7 +868,8 @@ find_nfs_srvr(mntfs *mf) */ if (check_pmap_up(host, ip)) { if (nfs_proto) { - best_nfs_version = get_nfs_version(host, ip, nfs_version, nfs_proto); + best_nfs_version = get_nfs_version(host, ip, nfs_version, nfs_proto, + gopt.nfs_vers); nfs_port = ip->sin_port; } #ifdef MNTTAB_OPT_PROTO @@ -858,8 +878,8 @@ find_nfs_srvr(mntfs *mf) char **p; for (p = protocols; *p; p++) { - proto_nfs_version = get_nfs_version(host, ip, nfs_version, *p); - + proto_nfs_version = get_nfs_version(host, ip, nfs_version, *p, + gopt.nfs_vers); if (proto_nfs_version > best_nfs_version) { best_nfs_version = proto_nfs_version; nfs_proto = *p; @@ -908,8 +928,8 @@ find_nfs_srvr(mntfs *mf) if (!nfs_port) nfs_port = htons(NFS_PORT); - dlog("find_nfs_srvr: using port %d for nfs on %s", - (int) ntohs(nfs_port), host); + dlog("%s: using port %d for nfs on %s", __func__, + (int) ntohs(nfs_port), host); ip->sin_port = nfs_port; no_dns: @@ -935,7 +955,7 @@ no_dns: sizeof(fs->fs_ip->sin_addr)) != 0) { struct in_addr ia; char *old_ipaddr, *new_ipaddr; - old_ipaddr = strdup(inet_ntoa(fs->fs_ip->sin_addr)); + old_ipaddr = xstrdup(inet_ntoa(fs->fs_ip->sin_addr)); memmove((voidp) &ia, (voidp) hp->h_addr, sizeof(struct in_addr)); new_ipaddr = inet_ntoa(ia); /* ntoa uses static buf */ plog(XLOG_WARNING, "fileserver %s changed ip: %s -> %s", @@ -962,24 +982,28 @@ no_dns: */ if (!(fs->fs_flags & FSF_PINGING)) { np = (nfs_private *) fs->fs_private; - np->np_mountd_inval = TRUE; - np->np_xid = XID_ALLOC(); - np->np_error = -1; - np->np_ping = 0; - /* - * Initially the server will be deemed dead - * after MAX_ALLOWED_PINGS of the fast variety - * have failed. - */ - np->np_ttl = MAX_ALLOWED_PINGS * FAST_NFS_PING + clocktime(NULL) - 1; - start_nfs_pings(fs, pingval); - if (fserver_is_down) - fs->fs_flags |= FSF_VALID | FSF_DOWN; + if (np->np_mountd_inval != 'P') { + np->np_mountd_inval = TRUE; + np->np_xid = XID_ALLOC(); + np->np_error = -1; + np->np_ping = 0; + /* + * Initially the server will be deemed dead + * after MAX_ALLOWED_PINGS of the fast variety + * have failed. + */ + np->np_ttl = MAX_ALLOWED_PINGS * FAST_NFS_PING + clocktime(NULL) - 1; + start_nfs_pings(fs, pingval); + if (fserver_is_down) + fs->fs_flags |= FSF_VALID | FSF_DOWN; + } else { + fs->fs_flags = FSF_VALID; + } + } fs->fs_refc++; - if (ip) - XFREE(ip); + XFREE(ip); return fs; } } @@ -993,7 +1017,7 @@ no_dns: */ fs = ALLOC(struct fserver); fs->fs_refc = 1; - fs->fs_host = strdup(hp ? hp->h_name : "unknown_hostname"); + fs->fs_host = xstrdup(hp ? hp->h_name : "unknown_hostname"); if (gopt.flags & CFM_NORMALIZE_HOSTNAMES) host_normalize(&fs->fs_host); fs->fs_ip = ip; @@ -1014,9 +1038,18 @@ no_dns: fs->fs_flags |= FSF_PING_UNINIT; /* pinger hasn't been initialized */ np = ALLOC(struct nfs_private); memset((voidp) np, 0, sizeof(*np)); - np->np_mountd_inval = TRUE; - np->np_xid = XID_ALLOC(); - np->np_error = -1; + np->np_mountd = htons(hasmntval(&mnt, "mountport")); + if (np->np_mountd == 0) { + np->np_mountd_inval = 'Y'; + np->np_xid = XID_ALLOC(); + np->np_error = -1; + } else { + plog(XLOG_INFO, "%s: using mountport: %d", __func__, + (int) ntohs(np->np_mountd)); + np->np_mountd_inval = 'P'; + np->np_xid = 0; + np->np_error = 0; + } /* * Initially the server will be deemed dead after diff --git a/contrib/amd/amd/sun2amd.8 b/contrib/amd/amd/sun2amd.8 new file mode 100644 index 0000000..67d241f --- /dev/null +++ b/contrib/amd/amd/sun2amd.8 @@ -0,0 +1,92 @@ +.\" +.\" Copyright (c) 1997-2014 Erez Zadok +.\" Copyright (c) 2005 Daniel P. Ottavio +.\" Copyright (c) 1990 Jan-Simon Pendry +.\" Copyright (c) 1990 Imperial College of Science, Technology & Medicine +.\" Copyright (c) 1990 The Regents of the University of California. +.\" All rights reserved. +.\" +.\" This code is derived from software contributed to Berkeley by +.\" Jan-Simon Pendry at Imperial College, London. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" +.\" File: am-utils/amd/sun2amd.8 +.\" +.TH SUN2AMD 8L "14 August 2005" + +.SH NAME +sun2amd \- converts Sun automount maps to Amd maps + +.SH SYNOPSIS +.B sun2amd +[-hH] [-i infile] [-o outfile] + +.SH DESCRIPTION +.B sun2amd +is used to convert Sun style automount maps to Amd style automount +maps. By default +.B sun2amd +reads from stdin and writes to stdout. + +.SH OPTIONS +.TP +.B -h +Help +.TP +.B -i +Read Sun map information from specified file. +.TP +.B -o +Write Amd map information to specified file. + +.SH EXAMPLE +To convert a Sun automount file called auto_foo to an Amd file called +auto.amd type: + +.B sun2amd +-i auto_foo -o auto.amd + +.SH BUGS +* Can not convert master maps yet. + +* NFS is the only automount type currently supported. + +total_bug_count = number_found + 1; + +.SH "SEE ALSO" +.BR automount(8), +.BR amd(8) + +.I "Linux NFS and Automounter Administration" +by Erez Zadok, ISBN 0-7821-2739-8, (Sybex, 2001). +.LP +.I http://www.am-utils.org +.LP + +.SH AUTHOR +Daniel P. Ottavio +.I <dottavio@ic.sunysb.edu> diff --git a/contrib/amd/amd/sun2amd.c b/contrib/amd/amd/sun2amd.c new file mode 100644 index 0000000..ee6fbb5 --- /dev/null +++ b/contrib/amd/amd/sun2amd.c @@ -0,0 +1,203 @@ +/* + * Copyright (c) 1997-2014 Erez Zadok + * Copyright (c) 2005 Daniel P. Ottavio + * Copyright (c) 1989 Jan-Simon Pendry + * Copyright (c) 1989 Imperial College of Science, Technology & Medicine + * Copyright (c) 1989 The Regents of the University of California. + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Jan-Simon Pendry at Imperial College, London. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * + * File: am-utils/amd/sun2amd.c + * + */ + +/* + * Translate Sun-syntax maps to Amd maps + */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif /* HAVE_CONFIG_H */ +#include <am_defs.h> +#include <amd.h> +#include <sun_map.h> + + +/* dummies to make the program compile and link */ +struct amu_global_options gopt; +#if defined(HAVE_TCPD_H) && defined(HAVE_LIBWRAP) +# ifdef NEED_LIBWRAP_SEVERITY_VARIABLES +/* + * Some systems that define libwrap already define these two variables + * in libwrap, while others don't: so I need to know precisely iff + * to define these two severity variables. + */ +int allow_severity=0, deny_severity=0, rfc931_timeout=0; +# endif /* NEED_LIBWRAP_SEVERITY_VARIABLES */ +#endif /* defined(HAVE_TCPD_H) && defined(HAVE_LIBWRAP) */ + + +/* + * Parse the stream sun_in, convert the map information to amd, write + * the results to amd_out. + */ +static int +sun2amd_convert(FILE *sun_in, FILE *amd_out) +{ + char line_buff[INFO_MAX_LINE_LEN], *tmp, *key, *entry; + int pos, line = 0, retval = 1; + + /* just to be safe */ + memset(line_buff, 0, sizeof(line_buff)); + + /* Read the input line by line and do the conversion. */ + while ((pos = file_read_line(line_buff, sizeof(line_buff), sun_in))) { + line++; + line_buff[pos - 1] = '\0'; + + /* remove comments */ + if ((tmp = strchr(line_buff, '#')) != NULL) { + *tmp = '\0'; + } + + /* find start of key */ + key = line_buff; + while (*key != '\0' && isspace((unsigned char)*key)) { + key++; + } + + /* ignore blank lines */ + if (*key == '\0') { + continue; + } + + /* find the end of the key and NULL terminate */ + tmp = key; + while (*tmp != '\0' && isspace((unsigned char)*tmp) == 0) { + tmp++; + } + if (*tmp == '\0') { + plog(XLOG_ERROR, "map line %d has no entry", line); + goto err; + } + *tmp++ = '\0'; + if (*tmp == '\0') { + plog(XLOG_ERROR, "map line %d has no entry", line); + goto err; + } + entry = tmp; + + /* convert the sun entry to an amd entry */ + if ((tmp = sun_entry2amd(key, entry)) == NULL) { + plog(XLOG_ERROR, "parse error on line %d", line); + goto err; + } + + if (fprintf(amd_out, "%s %s\n", key, tmp) < 0) { + plog(XLOG_ERROR, "can't write to output stream: %s", strerror(errno)); + goto err; + } + + /* just to be safe */ + memset(line_buff, 0, sizeof(line_buff)); + } + + /* success */ + retval = 0; + + err: + return retval; +} + + +/* + * wrapper open function + */ +static FILE * +sun2amd_open(const char *path, const char *mode) +{ + FILE *retval = NULL; + + if ((retval = fopen(path,mode)) == NULL) { + plog(XLOG_ERROR,"could not open file %s",path); + } + + return retval; +} + + +/* + * echo the usage and exit + */ +static void +sun2amd_usage(void) +{ + fprintf(stderr, + "usage : sun2amd [-hH] [-i infile] [-o outfile]\n" + "-h\thelp\n" + "-i\tspecify an infile (defaults to stdin)\n" + "-o\tspecify an outfile (defaults to stdout)\n"); +} + + +int +main(int argc, char **argv) +{ + /* default in/out to stdin/stdout */ + FILE *sun_in = stdin, *amd_out = stdout; + int opt, retval = 1; + + while ((opt = getopt(argc, argv , "i:o:hH")) != -1) { + switch (opt) { + + case 'i': + if ((sun_in = sun2amd_open(optarg,"r")) == NULL) { + goto err; + } + break; + + case 'o': + if ((amd_out = sun2amd_open(optarg,"w")) == NULL) { + goto err; + } + break; + + case 'h': + case 'H': + sun2amd_usage(); + goto err; + } + } + + retval = sun2amd_convert(sun_in,amd_out); + + err: + exit(retval); +} diff --git a/contrib/amd/amd/sun_map.c b/contrib/amd/amd/sun_map.c new file mode 100644 index 0000000..8e35599 --- /dev/null +++ b/contrib/amd/amd/sun_map.c @@ -0,0 +1,595 @@ +/* + * Copyright (c) 1997-2014 Erez Zadok + * Copyright (c) 2005 Daniel P. Ottavio + * Copyright (c) 1990 Jan-Simon Pendry + * Copyright (c) 1990 Imperial College of Science, Technology & Medicine + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Jan-Simon Pendry at Imperial College, London. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * + * File: am-utils/amd/sun_map.c + * + */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif /* HAVE_CONFIG_H */ +#include <am_defs.h> +#include <amd.h> +#include <sun_map.h> + + + +/* + * Add a data pointer to the end of the list. + */ +void +sun_list_add(struct sun_list *list, qelem *item) +{ + if (list->last == NULL) { + list->last = item; + list->first = item; + item->q_back = NULL; + } + else { + list->last->q_forw = item; + item->q_back = list->last; + list->last = item; + } + + item->q_forw = NULL; +} + + +/* + * Sun2Amd conversion routines + */ + +/* + * AMD entry keywords + */ +#define AMD_OPTS_KW "addopts:=" /* add entry options */ +#define AMD_RHOST_KW "rhost:=" /* remote host */ +#define AMD_RFS_KW "rfs:=" /* remote file system */ +#define AMD_FS_KW "fs:=" /* local file system */ +#define AMD_DEV_KW "dev:=" /* device */ +#define AMD_TYPE_NFS_KW "type:=nfs;" /* fs type nfs */ +#define AMD_TYPE_AUTO_KW "type:=auto;" /* fs type auto */ +#define AMD_TYPE_CDFS_KW "type:=cdfs;" /* fs type cd */ +#define AMD_MAP_FS_KW "fs:=${map};" /* set the mount map as current map */ +#define AMD_MAP_PREF_KW "pref:=${key}/" /* set the mount map as current map */ + +/* + * A set of string Sun fstypes. + */ +#define SUN_NFS_TYPE "nfs" +#define SUN_HSFS_TYPE "hsfs" /* CD fs */ +#define SUN_AUTOFS_TYPE "autofs" +#define SUN_CACHEFS_TYPE "cachefs" + +#define SUN_KEY_SUB "&" /* Sun key substitution */ + +/* a set a Sun variable substitutions for map entries */ +#define SUN_ARCH "$ARCH" /* host architecture */ +#define SUN_CPU "$CPU" /* processor type */ +#define SUN_HOST "$HOST" /* host name */ +#define SUN_OSNAME "$OSNAME" /* OS name */ +#define SUN_OSREL "$OSREL" /* OS release */ +#define SUN_OSVERS "$OSVERS" /* OS version */ +#define SUN_NATISA "$NATISA" /* native instruction set */ + +/* a set of Amd variable substitutions */ +#define AMD_ARCH "${arch}" /* host architecture */ +#define AMD_HOST "${host}" /* host name */ +#define AMD_OSNAME "${os}" /* OS name */ +#define AMD_OSVER "${osver}" /* OS version */ + + +/* + * Return a copy of src that has all occurrences of 'str' replaced + * with sub. + * + * param src - the original string + * param str - string that is the replaced with str + * param sub - string that replaces an occurrences of 'delim' + * + * return - new string with str substitutions, NULL on error + */ +static char * +sun_strsub(const char *src, const char *str, const char *sub) +{ + + char *retval = NULL, *str_start, *str_end, *src_end; + size_t total_size, first_half, second_half, sub_size; + + /* assign pointers to the start and end of str */ + if ((str_start = strstr(src, str)) == NULL) { + return retval; + } + str_end = (strlen(str) - 1) + str_start; + + /* assign to the end of the src. */ + src_end = (strlen(src) - 1) + (char*)src; + + /* size from the beginning of src to the start of str */ + first_half = (size_t)(str_start - src); + + /* size from the end of str to the end of src */ + second_half = (size_t)(src_end - str_end); + + sub_size = strlen(sub); + + total_size = (first_half + sub_size + second_half + 1); + + retval = (char*)xmalloc(total_size); + memset(retval, 0, total_size); + + /* + * Put together the string such that the first half is copied + * followed the sub and second half. + * + * We use strncpy instead of xstrlcpy because we are intentionally + * causing truncation and we don't want this to cause errors in the + * log. + */ + (void)strncpy(retval, src, first_half); + (void)strncat(retval, sub, sub_size); + (void)strncat(retval, str_end + 1, second_half); + + if (strstr(retval, str) != NULL) { + /* + * If there is another occurrences of str call this function + * recursively. + */ + char* tmp; + if ((tmp = sun_strsub(retval, str, sub)) != NULL) { + XFREE(retval); + retval = tmp; + } + } + return retval; +} + + +/* + * Return a new string that is a copy of str, all occurrences of a Sun + * variable substitutions are replaced by there equivalent Amd + * substitutions. + * + * param str - source string + * + * return - A new string with the expansions, NULL if str does not + * exist in src or error. + */ +static char * +sun_expand2amd(const char *str) +{ + + char *retval = NULL, *tmp = NULL, *tmp2 = NULL; + const char *pos; + + /* + * Iterator through the string looking for '$' chars. For each '$' + * found try to replace it with Sun variable substitutions. If we + * find a '$' that is not a substation each of the i.e $blah than + * each of the replace attempt will fail and we'll move on to the + * next char. + */ + tmp = xstrdup(str); + for (pos = str; *pos != '\0'; pos++) { + if (*pos != '$') { + continue; + } + if (tmp2 != NULL) { + XFREE(tmp); + tmp = tmp2; + } + + /* + * If a 'replace' does not return NULL than a variable was + * successfully substituted. + */ + + /* architecture */ + if ((tmp2 = sun_strsub(tmp, SUN_ARCH, AMD_ARCH)) != NULL) { + continue; + } + /* cpu - there is not POSIX uname for cpu so just use machine */ + if ((tmp2 = sun_strsub(tmp, SUN_CPU, AMD_ARCH)) != NULL) { + continue; + } + /* hostname */ + if ((tmp2 = sun_strsub(tmp, SUN_HOST, AMD_HOST)) != NULL) { + continue; + } + /* os name */ + if ((tmp2 = sun_strsub(tmp, SUN_OSNAME, AMD_OSNAME)) != NULL) { + continue; + } + /* + * os release - Amd doesn't hava a OS release var just usr os + * version or now. + */ + if ((tmp2 = sun_strsub(tmp, SUN_OSREL, AMD_OSVER)) != NULL) { + continue; + } + /* os version */ + if ((tmp2 = sun_strsub(tmp, SUN_OSVERS, AMD_OSVER)) != NULL) { + continue; + } + /* native instruction set - there is no POSIX natisa so just use system */ + if ((tmp2 = sun_strsub(tmp, SUN_NATISA, AMD_ARCH)) != NULL) { + continue; + } + } + if (tmp2 == NULL) { + retval = tmp; + } + else { + retval = tmp2; + XFREE(tmp); + } + + return retval; +} + + +/* + * This is a wrapper function for appending Amd entry information to a + * buffer. Any Sun variable substitutions will be converted into Amd + * equivalents. + * + * param dest - destination buffer + * param deslen - destination buffer length + * param key - entry key, this might be needed for key substitutions + * param str - string to append + */ +static void +sun_append_str(char *dest, + size_t destlen, + const char *key, + const char *str) +{ + char *sub = NULL, *sub2 = NULL, *out = NULL; + + /* By default we are going to just write the original string. */ + out = (char*)str; + + /* + * Resolve variable substitutions in two steps; 1) replace any key + * map substitutions with the entry key 2) expand any variable + * substitutions i.e $HOST. + * + * Try to replace the key substitution '&'. If this function returns + * with a new string, one or more key subs. where replaced with the + * entry key. + */ + if ((sub = sun_strsub(str, SUN_KEY_SUB, "${key}")) != NULL) { + out = sub; + /* + * Try to convert any variable substitutions. If this function + * returns a new string one or more var subs where expanded. + */ + if ((sub2 = sun_expand2amd(sub)) != NULL) { + out = sub2; + } + } + /* + * Try to convert any variable substitutions. If this function + * returns a new string one or more var subs where expanded. + */ + else if (out != NULL && (sub = sun_expand2amd(out)) != NULL) { + out = sub; + } + + if (out != NULL) { + xstrlcat(dest, out, destlen); + } + XFREE(sub); + XFREE(sub2); +} + + +/* + * Convert the list of Sun mount options to Amd mount options. The + * result is concatenated to dest. + * + * param dest - destination buffer + * param destlen - destination buffer length + * param key - automount key + * param opt_list - list of Sun mount options + */ +static void +sun_opts2amd(char *dest, + size_t destlen, + const char *key, + const struct sun_opt *opt_list) +{ + const struct sun_opt *opt; + + xstrlcat(dest, AMD_OPTS_KW, destlen); + + /* Iterate through each option and append it to the buffer. */ + for(opt = opt_list; opt != NULL; opt = NEXT(struct sun_opt, opt)) { + sun_append_str(dest, destlen, key, opt->str); + /* If there are more options add some commas. */ + if (NEXT(struct sun_opt, opt) != NULL) { + xstrlcat(dest, ",", destlen); + } + } + xstrlcat(dest, ";", destlen); +} + + +/* + * Convert the list of Sun mount locations to a list of Amd mount + * locations. The result is concatenated to dest. + * + * param dest - destination buffer + * param destlen - destination buffer length + * param key - automount key + * param local_list - list of Sun mount locations + */ +static void +sun_locations2amd(char *dest, + size_t destlen, + const char *key, + const struct sun_location *local_list) +{ + const struct sun_location *local; + const struct sun_host *host; + + for (local = local_list; + local != NULL; + local = NEXT(struct sun_location,local)) { + /* + * Check to see if the list of hosts is empty. Some mount types + * i.e cd-rom may have mount location with no host. + */ + if (local->host_list != NULL) { + /* Write each host that belongs to this location. */ + for (host = local->host_list; + host != NULL; + host = NEXT(struct sun_host, host)) { + /* set fstype NFS */ + xstrlcat(dest, AMD_TYPE_NFS_KW, destlen); + /* add rhost key word */ + xstrlcat(dest, AMD_RHOST_KW, destlen); + /* add host name */ + sun_append_str(dest, destlen, key, host->name); + xstrlcat(dest, ";", destlen); + /* add remote fs key word */ + xstrlcat(dest, AMD_RFS_KW, destlen); + /* add local path */ + sun_append_str(dest, destlen, key, local->path); + if (NEXT(struct sun_host, host) != NULL) { + xstrlcat(dest, ";", destlen); + xstrlcat(dest, " ", destlen); + } + } + } + else { + /* no host location */ + xstrlcat(dest, AMD_FS_KW, destlen); + sun_append_str(dest, destlen, key, local->path); + } + if (NEXT(struct sun_location, local) != NULL) { + /* add a space to separate each location */ + xstrlcat(dest, " ", destlen); + } + } +} + + +/* + * Convert a Sun HSFS mount point to an Amd. The result is + * concatenated intp dest. + * + * param dest - destination buffer + * param destlen - destination buffer length + * param key - automount key + * param s_entry - Sun entry + */ +static void +sun_hsfs2amd(char *dest, + size_t destlen, + const char *key, + const struct sun_entry *s_entry) +{ + /* set fstype CDFS */ + xstrlcat(dest, AMD_TYPE_CDFS_KW, destlen); + /* set the cdrom device */ + xstrlcat(dest, AMD_DEV_KW, destlen); + /* XXX: For now just assume that there is only one device. */ + xstrlcat(dest, s_entry->location_list->path, destlen); +} + + +/* + * Convert a Sun NFS automount entry to an Amd. The result is concatenated + * into dest. + * + * param dest - destination buffer + * param destlen - destination buffer length + * param key - automount key + * param s_entry - Sun entry + */ +static void +sun_nfs2amd(char *dest, + size_t destlen, + const char *key, + const struct sun_entry *s_entry) +{ + if (s_entry->location_list != NULL) { + /* write out the list of mountpoint locations */ + sun_locations2amd(dest, destlen, key, s_entry->location_list); + } +} + + +/* + * Convert a Sun multi-mount point entry to an Amd. This is done + * using the Amd type auto. Each auto entry is separated with a \n. + * + * param dest - destination buffer + * param destlen - destination buffer length + * param key - automount key + * param s_entry - Sun entry + */ +static void +sun_multi2amd(char *dest, + size_t destlen, + const char *key, + const struct sun_entry *s_entry) +{ + const struct sun_mountpt *mountpt; + + /* We need to setup a auto fs Amd automount point. */ + xstrlcat(dest, AMD_TYPE_AUTO_KW, destlen); + xstrlcat(dest, AMD_MAP_FS_KW, destlen); + xstrlcat(dest, AMD_MAP_PREF_KW, destlen); + + /* write the mountpts to dest */ + for (mountpt = s_entry->mountpt_list; + mountpt != NULL; + mountpt = NEXT(struct sun_mountpt, mountpt)) { + xstrlcat(dest, "\n", destlen); + /* write the key */ + xstrlcat(dest, key, destlen); + /* write the mount path */ + sun_append_str(dest, destlen, key, mountpt->path); + /* space */ + xstrlcat(dest, " ", destlen); + /* Write all the host locations for this mount point. */ + sun_locations2amd(dest, destlen, key, mountpt->location_list); + } +} + + +/* + * Convert the sun_entry into an Amd equivalent string. + * + * param key - automount key + * param s_entry - Sun style automap entry + * + * return - Amd entry on succes, NULL on error + */ +char * +sun_entry2amd(const char *key, const char *s_entry_str) +{ + char *retval = NULL; + char line_buff[INFO_MAX_LINE_LEN]; + int ws; + struct sun_entry *s_entry = NULL; + + /* The key should not be NULL. */ + if (key == NULL) { + plog(XLOG_ERROR,"Sun key value was null"); + goto err; + } + /* The Sun entry string should never be NULL. */ + if (s_entry_str == NULL) { + plog(XLOG_ERROR,"Sun entry value was null"); + goto err; + } + + /* Make sure there are no trailing white spaces or '\n'. */ + xstrlcpy(line_buff, s_entry_str, sizeof(line_buff)); + ws = strlen(line_buff) - 1; + while (ws >= 0 && (isspace((unsigned char)line_buff[ws]) || line_buff[ws] == '\n')) { + line_buff[ws--] = '\0'; + } + + /* Parse the sun entry line. */ + s_entry = sun_map_parse_read(line_buff); + if (s_entry == NULL) { + plog(XLOG_ERROR,"could not parse Sun style map"); + goto err; + } + + memset(line_buff, 0, sizeof(line_buff)); + + if (s_entry->opt_list != NULL) { + /* write the mount options to the buffer */ + sun_opts2amd(line_buff, sizeof(line_buff), key, s_entry->opt_list); + } + + /* Check if this is a multi-mount entry. */ + if (s_entry->mountpt_list != NULL) { + /* multi-mount point */ + sun_multi2amd(line_buff, sizeof(line_buff), key, s_entry); + retval = xstrdup(line_buff); + } + else { + /* single mount point */ + if (s_entry->fstype != NULL) { + if (NSTREQ(s_entry->fstype, SUN_NFS_TYPE, strlen(SUN_NFS_TYPE))) { + /* NFS Type */ + sun_nfs2amd(line_buff, sizeof(line_buff), key, s_entry); + retval = xstrdup(line_buff); + } + else if (NSTREQ(s_entry->fstype, SUN_HSFS_TYPE, strlen(SUN_HSFS_TYPE))) { + /* HSFS Type (CD fs) */ + sun_hsfs2amd(line_buff, sizeof(line_buff), key, s_entry); + retval = xstrdup(line_buff); + } + /* + * XXX: The following fstypes are not yet supported. + */ + else if (NSTREQ(s_entry->fstype, SUN_AUTOFS_TYPE, strlen(SUN_AUTOFS_TYPE))) { + /* AutoFS Type */ + plog(XLOG_ERROR, "Sun fstype %s is currently not supported by Amd.", + s_entry->fstype); + goto err; + + } + else if (NSTREQ(s_entry->fstype, SUN_CACHEFS_TYPE, strlen(SUN_CACHEFS_TYPE))) { + /* CacheFS Type */ + plog(XLOG_ERROR, "Sun fstype %s is currently not supported by Amd.", + s_entry->fstype); + goto err; + } + else { + plog(XLOG_ERROR, "Sun fstype %s is currently not supported by Amd.", + s_entry->fstype); + goto err; + } + } + else { + plog(XLOG_INFO, "No SUN fstype specified defaulting to NFS."); + sun_nfs2amd(line_buff, sizeof(line_buff), key, s_entry); + retval = xstrdup(line_buff); + } + } + + err: + XFREE(s_entry); + return retval; +} diff --git a/contrib/amd/amd/sun_map.h b/contrib/amd/amd/sun_map.h new file mode 100644 index 0000000..75e707a --- /dev/null +++ b/contrib/amd/amd/sun_map.h @@ -0,0 +1,123 @@ +/* + * Copyright (c) 1997-2014 Erez Zadok + * Copyright (c) 2005 Daniel P. Ottavio + * Copyright (c) 1990 Jan-Simon Pendry + * Copyright (c) 1990 Imperial College of Science, Technology & Medicine + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Jan-Simon Pendry at Imperial College, London. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * + * File: am-utils/amd/sun_map.h + * + */ + +#ifndef _SUN_MAP_H +#define _SUN_MAP_H + +/* host */ +struct sun_host { + qelem head; /* link-list header */ + char *name; /* hostname */ + int weight; /* weight given to the host */ +}; + +/* location */ +struct sun_location { + qelem head; /* link-list header */ + char *path; /* server path */ + struct sun_host *host_list; /* list of hosts */ +}; + +/* sun mount option */ +struct sun_opt { + qelem head; /* link-list header */ + char *str; /* option string */ +}; + +/* mount point */ +struct sun_mountpt { + qelem head; /* link-list header */ + char *path; /* optional mount point path */ + char *fstype; /* filesystem type */ + struct sun_opt *opt_list; /* list of option strings */ + struct sun_location *location_list; /* list of 'struct s2a_location' */ +}; + +/* automount entry */ +struct sun_entry { + qelem head; /* link-list header */ + char *key; /* auto map key */ + char *fstype; /* filesystem type */ + struct sun_opt *opt_list; /* list of mount options */ + struct sun_location *location_list; /* list of mount locations */ + struct sun_mountpt *mountpt_list; /* list of mount points */ +}; + +/* + * automount map file + * + * XXX: Only a place holder structure, not implemented yet. + */ +struct sun_map { + qelem head; /* link-list header */ + char *path; /* directory path of the map file */ + char *mount_dir; /* top level mount point for this map */ + int lookup; /* lookup type i.e file, yp, program, etc. */ + int direct_bool; /* set true if this map is a direct map */ + struct sun_opt *opt_list; /* list of global map options */ + struct sun_opt *include_list; /* list of included map files */ + struct sun_entry *entry_list; /* list of 'struct s2a_entry' */ +}; + +/* + * master map file + * + * XXX: Only a place holder structure, not implemented yet. + */ +struct sun_mmap { + qelem head; /* link-list header */ + struct sun_opt *include_list; /* list of included master maps */ + struct sun_map *amap_list; /* list of 'struct s2a_amap' */ +}; + +struct sun_list { + qelem *first; + qelem *last; +}; + + +/* + * EXTERNS + */ +extern char *sun_entry2amd(const char *, const char *); +extern struct sun_entry *sun_map_parse_read(const char *); +extern void sun_list_add(struct sun_list *, qelem *); + +#endif /* not _SUN_MAP_H */ diff --git a/contrib/amd/amd/sun_map_parse.y b/contrib/amd/amd/sun_map_parse.y new file mode 100644 index 0000000..ccf258e --- /dev/null +++ b/contrib/amd/amd/sun_map_parse.y @@ -0,0 +1,492 @@ +%{ +/* + * Copyright (c) 1997-2014 Erez Zadok + * Copyright (c) 2005 Daniel P. Ottavio + * Copyright (c) 1990 Jan-Simon Pendry + * Copyright (c) 1990 Imperial College of Science, Technology & Medicine + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Jan-Simon Pendry at Imperial College, London. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * + * File: am-utils/amd/sun_map_parse.y + * + */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif /* HAVE_CONFIG_H */ +#include <am_defs.h> +#include <amd.h> +#include <sun_map.h> + + +#define SUN_FSTYPE_STR "fstype=" + + +extern int sun_map_lex(void); +extern int sun_map_error(const char *); +extern void sun_map_tok_setbuff(const char *); +extern int sun_map_parse(void); + +struct sun_entry *sun_map_parse_read(const char *); + +static struct sun_list *sun_entry_list = NULL; +static struct sun_list *sun_opt_list = NULL; +static struct sun_list *sun_host_list = NULL; +static struct sun_list *sun_location_list = NULL; +static struct sun_list *mountpt_list = NULL; +static char *tmpFsType = NULL; + + +/* + * Each get* function returns a pointer to the corresponding global + * list structure. If the structure is NULL than a new instance is + * returned. + */ +static struct sun_list *get_sun_opt_list(void); +static struct sun_list *get_sun_host_list(void); +static struct sun_list *get_sun_location_list(void); +static struct sun_list *get_mountpt_list(void); +static struct sun_list *get_sun_entry_list(void); + +%} + +%union { + char strval[2048]; +} + +%token NEWLINE COMMENT WSPACE +%token <strval> WORD + +%% + +amap : file + ; + +file : new_lines entries + | entries + ; + +entries : entry + | entry new_lines + | entry new_lines entries + ; + +new_lines : NEWLINE + | NEWLINE new_lines + ; + +entry : locations { + + struct sun_list *list; + struct sun_entry *entry; + + /* allocate an entry */ + entry = CALLOC(struct sun_entry); + + /* + * Assign the global location list to this entry and reset the + * global pointer. Reseting the global pointer will create a new + * list instance next time get_sun_location_list() is called. + */ + list = get_sun_location_list(); + entry->location_list = (struct sun_location *)list->first; + sun_location_list = NULL; + + /* Add this entry to the entry list. */ + sun_list_add(get_sun_entry_list(), (qelem *)entry); +} + +| '-' options WSPACE locations { + + struct sun_list *list; + struct sun_entry *entry; + + entry = CALLOC(struct sun_entry); + + /* An fstype may have been defined in the 'options'. */ + if (tmpFsType != NULL) { + entry->fstype = tmpFsType; + tmpFsType = NULL; + } + + /* + * Assign the global location list to this entry and reset the + * global pointer. Reseting the global pointer will create a new + * list instance next time get_sun_location_list() is called. + */ + list = get_sun_location_list(); + entry->location_list = (struct sun_location *)list->first; + sun_location_list = NULL; + + /* + * Assign the global opt list to this entry and reset the global + * pointer. Reseting the global pointer will create a new list + * instance next time get_sun_opt_list() is called. + */ + list = get_sun_opt_list(); + entry->opt_list = (struct sun_opt *)list->first; + sun_opt_list = NULL; + + /* Add this entry to the entry list. */ + sun_list_add(get_sun_entry_list(), (qelem *)entry); +} + +| mountpoints { + + struct sun_list *list; + struct sun_entry *entry; + + /* allocate an entry */ + entry = CALLOC(struct sun_entry); + + /* + * Assign the global mountpt list to this entry and reset the global + * pointer. Reseting the global pointer will create a new list + * instance next time get_mountpt_list() is called. + */ + list = get_mountpt_list(); + entry->mountpt_list = (struct sun_mountpt *)list->first; + mountpt_list = NULL; + + /* Add this entry to the entry list. */ + sun_list_add(get_sun_entry_list(), (qelem *)entry); +} + +| '-' options WSPACE mountpoints { + + struct sun_list *list; + struct sun_entry *entry; + + /* allocate an entry */ + entry = CALLOC(struct sun_entry); + + /* An fstype may have been defined in the 'options'. */ + if (tmpFsType != NULL) { + entry->fstype = tmpFsType; + tmpFsType = NULL; + } + + /* + * Assign the global mountpt list to this entry and reset the global + * pointer. Reseting the global pointer will create a new list + * instance next time get_mountpt_list() is called. + */ + list = get_mountpt_list(); + entry->mountpt_list = (struct sun_mountpt *)list->first; + mountpt_list = NULL; + + /* + * Assign the global opt list to this entry and reset the global + * pointer. Reseting the global pointer will create a new list + * instance next time get_sun_opt_list() is called. + */ + list = get_sun_opt_list(); + entry->opt_list = (struct sun_opt *)list->first; + sun_opt_list = NULL; + + /* Add this entry to the entry list. */ + sun_list_add(get_sun_entry_list(), (qelem *)entry); +} +; + +mountpoints : mountpoint + | mountpoint WSPACE mountpoints + ; + +mountpoint : WORD WSPACE location { + + struct sun_list *list; + struct sun_mountpt *mountpt; + + /* allocate a mountpt */ + mountpt = CALLOC(struct sun_mountpt); + + /* + * Assign the global loaction list to this entry and reset the + * global pointer. Reseting the global pointer will create a new + * list instance next time get_sun_location_list() is called. + */ + list = get_sun_location_list(); + mountpt->location_list = (struct sun_location *)list->first; + sun_location_list = NULL; + + mountpt->path = xstrdup($1); + + /* Add this mountpt to the mountpt list. */ + sun_list_add(get_mountpt_list(), (qelem *)mountpt); +} + +| WORD WSPACE '-' options WSPACE location { + + struct sun_list *list; + struct sun_mountpt *mountpt; + + /* allocate a mountpt */ + mountpt = CALLOC(struct sun_mountpt); + + /* An fstype may have been defined in the 'options'. */ + if (tmpFsType != NULL) { + mountpt->fstype = tmpFsType; + tmpFsType = NULL; + } + + /* + * Assign the global location list to this entry and reset the + * global pointer. Reseting the global pointer will create a new + * list instance next time get_sun_location_list() is called. + */ + list = get_sun_location_list(); + mountpt->location_list = (struct sun_location *)list->first; + sun_location_list = NULL; + + /* + * Assign the global opt list to this entry and reset the global + * pointer. Reseting the global pointer will create a new list + * instance next time get_sun_opt_list() is called. + */ + list = get_sun_opt_list(); + mountpt->opt_list = (struct sun_opt *)list->first; + sun_opt_list = NULL; + + mountpt->path = xstrdup($1); + + /* Add this mountpt to the mountpt list. */ + sun_list_add(get_mountpt_list(), (qelem *)mountpt); +} +; + +locations : location + | location WSPACE locations + ; + +location : hosts ':' WORD { + + struct sun_list *list; + struct sun_location *location; + + /* allocate a new location */ + location = CALLOC(struct sun_location); + + /* + * Assign the global opt list to this entry and reset the global + * pointer. Reseting the global pointer will create a new list + * instance next time get_sun_opt_list() is called. + */ + list = get_sun_host_list(); + location->host_list = (struct sun_host *)list->first; + sun_host_list = NULL; + + location->path = xstrdup($3); + + /* Add this location to the location list. */ + sun_list_add(get_sun_location_list(), (qelem *)location); +} + +| ':' WORD { + + struct sun_location *location; + + /* allocate a new location */ + location = CALLOC(struct sun_location); + + location->path = xstrdup($2); + + /* Add this location to the location list. */ + sun_list_add(get_sun_location_list(), (qelem *)location); +} +; + +hosts : host + | host ',' hosts + ; + +host : WORD { + + /* allocate a new host */ + struct sun_host *host = CALLOC(struct sun_host); + + host->name = xstrdup($1); + + /* Add this host to the host list. */ + sun_list_add(get_sun_host_list(),(qelem *)host); +} + +| WORD weight { + + /* + * It is assumed that the host for this rule was allocated by the + * 'weight' rule and assigned to be the last host item on the host + * list. + */ + struct sun_host *host = (struct sun_host *)sun_host_list->last; + + host->name = xstrdup($1); +} +; + +weight : '(' WORD ')' { + + int val; + /* allocate a new host */ + struct sun_host *host = CALLOC(struct sun_host); + + val = atoi($2); + + host->weight = val; + + /* Add this host to the host list. */ + sun_list_add(get_sun_host_list(), (qelem *)host); +} +; + +options : option + | option ',' options + ; + +option : WORD { + + char *type; + + /* check if this is an fstype option */ + if ((type = strstr($1,SUN_FSTYPE_STR)) != NULL) { + /* parse out the fs type from the Sun fstype keyword */ + if ((type = type + strlen(SUN_FSTYPE_STR)) != NULL) { + /* + * This global fstype str will be assigned to the current being + * parsed later in the parsing. + */ + tmpFsType = xstrdup(type); + } + } + else { + /* + * If it is not an fstype option allocate an opt struct and assign + * the value. + */ + struct sun_opt *opt = CALLOC(struct sun_opt); + opt->str = xstrdup($1); + /* Add this opt to the opt list. */ + sun_list_add(get_sun_opt_list(), (qelem *)opt); + } +} + +; + +%% + +/* + * Parse 'map_data' which is assumed to be a Sun-syle map. If + * successful a sun_entry is returned. + * + * The parser is designed to parse map entries with out the keys. For + * example the entry: + * + * usr -ro pluto:/usr/local + * + * should be passed to the parser as: + * + * -ro pluto:/usr/local + * + * The reason for this is that the Amd info services already strip off + * the key when they read map info. + */ +struct sun_entry * +sun_map_parse_read(const char *map_data) +{ + struct sun_entry *retval = NULL; + + /* pass map_data to lex */ + sun_map_tok_setbuff(map_data); + + /* call yacc */ + sun_map_parse(); + + if (sun_entry_list != NULL) { + /* return the first Sun entry in the list */ + retval = (struct sun_entry*)sun_entry_list->first; + sun_entry_list = NULL; + } + else { + plog(XLOG_ERROR, "Sun map parser did not produce data structs."); + } + + return retval; +} + + +static struct sun_list * +get_sun_entry_list(void) +{ + if (sun_entry_list == NULL) { + sun_entry_list = CALLOC(struct sun_list); + } + return sun_entry_list; +} + + +static struct sun_list * +get_mountpt_list(void) +{ + if (mountpt_list == NULL) { + mountpt_list = CALLOC(struct sun_list); + } + return mountpt_list; +} + + +static struct sun_list * +get_sun_location_list(void) +{ + if (sun_location_list == NULL) { + sun_location_list = CALLOC(struct sun_list); + } + return sun_location_list; +} + + +static struct sun_list * +get_sun_host_list(void) +{ + if (sun_host_list == NULL) { + sun_host_list = CALLOC(struct sun_list); + } + return sun_host_list; +} + + +static struct sun_list * +get_sun_opt_list(void) +{ + if (sun_opt_list == NULL) { + sun_opt_list = CALLOC(struct sun_list); + } + return sun_opt_list; +} diff --git a/contrib/amd/amd/sun_map_tok.l b/contrib/amd/amd/sun_map_tok.l new file mode 100644 index 0000000..f979bea --- /dev/null +++ b/contrib/amd/amd/sun_map_tok.l @@ -0,0 +1,233 @@ +%{ +/* + * Copyright (c) 1997-2014 Erez Zadok + * Copyright (c) 2005 Daniel P. Ottavio + * Copyright (c) 1990 Jan-Simon Pendry + * Copyright (c) 1990 Imperial College of Science, Technology & Medicine + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Jan-Simon Pendry at Imperial College, London. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * + * File: am-utils/amd/sun_map_tok.l + * + */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif /* HAVE_CONFIG_H */ +/* + * Some systems include a definition for the macro ECHO in <sys/ioctl.h>, + * and their (bad) version of lex defines it too at the very beginning of + * the generated lex.yy.c file (before it can be easily undefined), + * resulting in a conflict. So undefine it here before needed. + * Luckily, it does not appear that this macro is actually used in the rest + * of the generated lex.yy.c file. + */ +#ifdef ECHO +# undef ECHO +#endif /* ECHO */ +#include <am_defs.h> +#include <amd.h> +#include <sun_map_parse.h> +/* and once again undefine this, just in case */ +#ifdef ECHO +# undef ECHO +#endif /* ECHO */ + +/* + * There are some things that need to be defined only if using GNU flex. + * These must not be defined if using standard lex + */ +#ifdef FLEX_SCANNER +# ifndef ECHO +# define ECHO __IGNORE(fwrite( yytext, yyleng, 1, yyout )) +# endif /* not ECHO */ +#endif /* FLEX_SCANNER */ + +int yylex(void); +int sun_map_error(const char *); + +/* + * We need to configure lex to parse from a string + * instead of a file. Each version of lex has it's + * own way of doing this (sigh). + */ + +/* assign the buffer to parse */ +void sun_map_tok_setbuff(const char* buff); + +/* buffer that contains the string to parse */ +const char *sun_map_tok_buff = NULL; + +#ifdef FLEX_SCANNER +/* + * The flex scanner uses the YY_INPUT to parse the input. + * We need to redefine it so that it can parse strings. + * In addition to the above string buffer we need to have + * a position pointer and a end pointer. + */ + +/* current position of the buffer */ +const char *sun_map_tok_pos = NULL; + +/* size of the buffer */ +const char *sun_map_tok_end = NULL; + +/* copies the current position + maxsize into buff */ +int sun_map_input(char *buff, int maxsize); + +# undef YY_INPUT +# define YY_INPUT(buff,result,maxsize) (result = sun_map_input(buff,maxsize)) + +#else +/* + * If this is not Flex than fall back to an AT&T style lex. + * We can parse strings by redefining input and unput. + */ +#undef input +#undef unput +#define input() (*(char *)sun_map_tok_buff++) +#define unput(c) (*(char *)--sun_map_tok_buff = c) + +#endif /* FLEX_SCANNER */ + +/* + * some systems such as DU-4.x have a different GNU flex in /usr/bin + * which automatically generates yywrap macros and symbols. So I must + * distinguish between them and when yywrap is actually needed. + */ +#if !defined(yywrap) || defined(yylex) +int yywrap(void); +#endif /* not yywrap or yylex */ + +/* no need to use yywrap() */ +#define YY_SKIP_YYWRAP + +int sun_map_line = 1; +int sun_map_tokpos = 1; + +%} + +/* This option causes Solaris lex to fail. Use flex. See BUGS file */ +/* no need to use yyunput() */ +%option nounput +%option noinput + +/* allocate more output slots so lex scanners don't run out of mem */ +%o 1024 + +WORD_REX [A-Za-z0-9_/&\.$=]+[A-Za-z0-9_/&\.$=-]* +COMMENT_REX ^#.*\n +WSPACE_REX [ \t]* +NEWLINE_REX [ \t]*\n +CONTINUE_REX "\\"\n + +%% + +{WORD_REX} { + sun_map_tokpos += yyleng; + xstrlcpy((char *)sun_map_lval.strval,(const char *)yytext,sizeof(sun_map_lval.strval)); + return WORD; + } + +{WSPACE_REX} { + sun_map_tokpos += yyleng; + return WSPACE; + } + +{NEWLINE_REX} { + sun_map_tokpos = 0; + sun_map_line++; + return NEWLINE; + } + +{CONTINUE_REX} { + sun_map_tokpos = 0; + sun_map_line++; + } + +{COMMENT_REX} { + sun_map_line++; + } + +. { + return yytext[0]; + } + +%% + + +int +sun_map_error(const char* s) +{ + return 1; +} + +#ifdef FLEX_SCANNER +void +sun_map_tok_setbuff(const char* buff) +{ + sun_map_tok_end = buff + strlen(buff); + sun_map_tok_pos = buff; + sun_map_tok_buff = buff; +} + + +int +sun_map_input(char *buff, int maxsize) +{ + int size = MIN(maxsize, (sun_map_tok_end - sun_map_tok_pos)); + if (size > 0) { + memcpy(buff,sun_map_tok_pos,size); + sun_map_tok_pos += size; + } + + return size; +} +#else +void +sun_map_tok_setbuff(const char* buff) +{ + sun_map_tok_buff = buff; +} + +#endif /* FLEX_SCANNER */ + +/* + * some systems such as DU-4.x have a different GNU flex in /usr/bin + * which automatically generates yywrap macros and symbols. So I must + * distinguish between them and when yywrap is actually needed. + */ +#if !defined(yywrap) || defined(yylex) +int yywrap(void) +{ + return 1; +} +#endif /* not yywrap or yylex */ diff --git a/contrib/amd/amd/test1.sh b/contrib/amd/amd/test1.sh new file mode 100755 index 0000000..44cafbc --- /dev/null +++ b/contrib/amd/amd/test1.sh @@ -0,0 +1,2 @@ +#!/bin/sh +./amd -v 2> /dev/null diff --git a/contrib/amd/amq/amq.8 b/contrib/amd/amq/amq.8 index 1faebc6..4cfdf84 100644 --- a/contrib/amd/amq/amq.8 +++ b/contrib/amd/amq/amq.8 @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 1997-2006 Erez Zadok +.\" Copyright (c) 1997-2014 Erez Zadok .\" Copyright (c) 1990 Jan-Simon Pendry .\" Copyright (c) 1990 Imperial College of Science, Technology & Medicine .\" Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgment: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors +.\" 3. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" @@ -36,12 +32,11 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %W% (Berkeley) %G% .\" -.\" $Id: amq.8,v 1.15.2.1 2006/01/02 18:48:24 ezk Exp $ +.\" File: am-utils/amq/amq.8 .\" $FreeBSD$ .\" -.Dd January 2, 2006 +.Dd August 31, 2016 .Dt AMQ 8 .Os .Sh NAME @@ -49,7 +44,7 @@ .Nd automounter query tool .Sh SYNOPSIS .Nm -.Op Fl fmpsvwHTU +.Op Fl fimpqsvwHTU .Op Fl h Ar hostname .Op Fl l Ar log_file .Op Fl x Ar log_options @@ -57,6 +52,13 @@ .Op Fl P Ar program_number .Op Oo Fl u Oc Ar directory ... .Sh DESCRIPTION +.Bf -symbolic +This command is obsolete. +Users are advised to use +.Xr autofs 5 +instead. +.Ef +.Pp The .Nm utility @@ -89,6 +91,10 @@ an .Tn HP-UX cluster, the root server is queried by default, since that is the system on which the automounter is normally run. +.TP +.It Fl i +Print information about the mount maps. +.TP .It Fl l Ar log_file Tell .Xr amd 8 @@ -119,6 +125,13 @@ search through the process table. This option is used in the .Pa ctl-amd script. +.TP +.It Fl q +Suppress error messages produced when attempting synchronous unmounts +with the +.B \-u +option. +.TP .It Fl s Ask the automounter to provide system-wide mount statistics. .It Fl u @@ -131,9 +144,19 @@ They merely cause the mounted file system to timeout, which will be picked up by .Nm amd Ns 's main scheduler thus causing the normal timeout action to be taken. +If the +.B \-u +option is repeated, +.B amq +will attempt to unmount the file system synchronously by waiting until +the timeout action is taken and returning an error if the unmount +fails. +Any error messages produced may be suppressed with the +.B \-q +option. +.TP .It Fl v -Ask the automounter for its version information. -This is a subset of the +Ask the automounter for its version information. This is a subset of the information output by .Xr amd 8 Ns 's .Fl v @@ -150,8 +173,10 @@ is running. .It Fl x Ar log_options Ask the automounter to use the logging options specified in .Ar log_options -from now on. +from now on. Note that the "fatal" and "error" options cannot be turned +off. .It Fl D Ar debug_options +.BI \-D " debug_options" Ask the automounter to use the debugging options specified in .Ar debug_options from now on. @@ -237,11 +262,13 @@ add this line to and this line to .Pa /etc/hosts.deny : .Pp +.RS .Dl "amd: ALL" .Sh SEE ALSO .Xr amd.conf 5 , -.Xr hosts_access 5 , -.Xr amd 8 +.Xr hosts_access 5 . +.Xr amd 8 , +.\" .Xr ctl-amd 8 , .Pp .Dq am-utils .Xr info 1 diff --git a/contrib/amd/amq/amq.c b/contrib/amd/amq/amq.c index 2379b62..7140784 100644 --- a/contrib/amd/amq/amq.c +++ b/contrib/amd/amq/amq.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -53,14 +49,17 @@ /* locals */ static int flush_flag; -static int minfo_flag; static int getpid_flag; -static int unmount_flag; -static int stats_flag; -static int getvers_flag; -static int amd_program_number = AMQ_PROGRAM; -static int use_tcp_flag, use_udp_flag; static int getpwd_flag; +static int getvers_flag; +static int minfo_flag; +static int mapinfo_flag; +static int quiet_flag; +static int stats_flag; +static int unmount_flag; +static int use_tcp_flag; +static int use_udp_flag; +static u_long amd_program_number = AMQ_PROGRAM; static char *debug_opts; static char *amq_logfile; static char *xlog_optstr; @@ -77,6 +76,17 @@ enum show_opt { }; +static void +time_print(time_type tt) +{ + time_t t = (time_t)*tt; + struct tm *tp = localtime(&t); + printf("%02d/%02d/%04d %02d:%02d:%02d", + tp->tm_mon + 1, tp->tm_mday, + tp->tm_year < 1900 ? tp->tm_year + 1900 : tp->tm_year, + tp->tm_hour, tp->tm_min, tp->tm_sec); +} + /* * If (e) is Calc then just calculate the sizes * Otherwise display the mount node on stdout @@ -101,8 +111,7 @@ show_mti(amq_mount_tree *mt, enum show_opt e, int *mwid, int *dwid, int *twid) case Full: { - struct tm *tp = localtime((time_t *) ((voidp) &mt->mt_mounttime)); - printf("%-*.*s %-*.*s %-*.*s %s\n\t%-5d %-7d %-6d %-7d %-7d %-6d %02d/%02d/%04d %02d:%02d:%02d\n", + printf("%-*.*s %-*.*s %-*.*s %s\n\t%-5d %-7d %-6d %-7d %-7d %-6d", *dwid, *dwid, *mt->mt_directory ? mt->mt_directory : "/", /* XXX */ *twid, *twid, @@ -116,18 +125,15 @@ show_mti(amq_mount_tree *mt, enum show_opt e, int *mwid, int *dwid, int *twid) mt->mt_lookup, mt->mt_readdir, mt->mt_readlink, - mt->mt_statfs, - - tp->tm_mon + 1, tp->tm_mday, - tp->tm_year < 1900 ? tp->tm_year + 1900 : tp->tm_year, - tp->tm_hour, tp->tm_min, tp->tm_sec); + mt->mt_statfs); + time_print(mt->mt_mounttime); + printf("\n"); } break; case Stats: { - struct tm *tp = localtime((time_t *) ((voidp) &mt->mt_mounttime)); - printf("%-*.*s %-5d %-7d %-6d %-7d %-7d %-6d %02d/%02d/%02d %02d:%02d:%04d\n", + printf("%-*.*s %-5d %-7d %-6d %-7d %-7d %-6d ", *dwid, *dwid, *mt->mt_directory ? mt->mt_directory : "/", /* XXX */ @@ -136,11 +142,9 @@ show_mti(amq_mount_tree *mt, enum show_opt e, int *mwid, int *dwid, int *twid) mt->mt_lookup, mt->mt_readdir, mt->mt_readlink, - mt->mt_statfs, - - tp->tm_mon + 1, tp->tm_mday, - tp->tm_year < 1900 ? tp->tm_year + 1900 : tp->tm_year, - tp->tm_hour, tp->tm_min, tp->tm_sec); + mt->mt_statfs); + time_print(mt->mt_mounttime); + printf("\n"); } break; @@ -229,7 +233,7 @@ show_mi(amq_mount_info_list *ml, enum show_opt e, int *mwid, int *dwid, int *twi { for (i = 0; i < ml->amq_mount_info_list_len; i++) { amq_mount_info *mi = &ml->amq_mount_info_list_val[i]; - printf("%-*.*s %-*.*s %-*.*s %-3d %s is %s", + printf("%-*.*s %-*.*s %-*.*s %-3d %s is %s ", *mwid, *mwid, mi->mi_mountinfo, *dwid, *dwid, mi->mi_mountpt, *twid, *twid, mi->mi_type, @@ -251,6 +255,55 @@ show_mi(amq_mount_info_list *ml, enum show_opt e, int *mwid, int *dwid, int *twi } } +static void +show_map(amq_map_info *mi) +{ +} + +static void +show_mapinfo(amq_map_info_list *ml, enum show_opt e, int *nwid, int *wwid) +{ + u_int i; + + switch (e) { + + case Calc: + { + for (i = 0; i < ml->amq_map_info_list_len; i++) { + amq_map_info *mi = &ml->amq_map_info_list_val[i]; + int nw = strlen(mi->mi_name); + int ww = strlen(mi->mi_wildcard ? mi->mi_wildcard : "(null"); + if (nw > *nwid) + *nwid = nw; + if (ww > *wwid) + *wwid = ww; + } + } + break; + + case Full: + { + printf("%-*.*s %-*.*s %-8.8s %-7.7s %-7.7s %-7.7s %-s Modified\n", + *nwid, *nwid, "Name", + *wwid, *wwid, "Wild", + "Flags", "Refcnt", "Entries", "Reloads", "Stat"); + for (i = 0; i < ml->amq_map_info_list_len; i++) { + amq_map_info *mi = &ml->amq_map_info_list_val[i]; + printf("%-*.*s %*.*s %-8x %-7d %-7d %-7d %s ", + *nwid, *nwid, mi->mi_name, + *wwid, *wwid, mi->mi_wildcard, + mi->mi_flags, mi->mi_refc, mi->mi_nentries, mi->mi_reloads, + mi->mi_up == -1 ? "root" : (mi->mi_up ? " up" : "down")); + time_print(mi->mi_modify); + fputc('\n', stdout); + } + } + break; + + default: + break; + } +} /* * Display general mount statistics @@ -287,6 +340,72 @@ cluster_server(void) #endif /* defined(HAVE_CLUSTER_H) && defined(HAVE_CNODEID) && defined(HAVE_GETCCENT) */ +static void +print_umnt_error(amq_sync_umnt *rv, const char *fs) +{ + + switch (rv->au_etype) { + case AMQ_UMNT_OK: + break; + case AMQ_UMNT_FAILED: + printf("unmount failed: %s\n", strerror(rv->au_errno)); + break; + case AMQ_UMNT_FORK: + if (rv->au_errno == 0) + printf("%s is not mounted\n", fs); + else + printf("falling back to asynchronous unmount: %s\n", + strerror(rv->au_errno)); + break; + case AMQ_UMNT_READ: + printf("pipe read error: %s\n", strerror(rv->au_errno)); + break; + case AMQ_UMNT_SERVER: + printf("amd server down\n"); + break; + case AMQ_UMNT_SIGNAL: + printf("got signal: %d\n", rv->au_signal); + break; + /* + * Omit default so the compiler can check for missing cases. + * + default: + break; + */ + } +} + + +static int +amu_sync_umnt_to_retval(amq_sync_umnt *rv) +{ + switch (rv->au_etype) { + case AMQ_UMNT_FORK: + if (rv->au_errno == 0) { + /* + * We allow this error so that things like: + * amq -uu /l/cd0d && eject cd0 + * will work when /l/cd0d is not mounted. + * XXX - We still print an error message. + */ + return 0; + } + /*FALLTHROUGH*/ + default: + return rv->au_etype; + } +} + + +static int +clnt_failed(CLIENT *clnt, char *server) +{ + fprintf(stderr, "%s: ", am_get_progname()); + clnt_perror(clnt, server); + return 1; +} + + /* * MAIN */ @@ -320,7 +439,7 @@ main(int argc, char *argv[]) /* * Parse arguments */ - while ((opt_ch = getopt(argc, argv, "Hfh:l:msuvx:D:pP:TUw")) != -1) + while ((opt_ch = getopt(argc, argv, "Hfh:il:mqsuvx:D:pP:TUw")) != -1) switch (opt_ch) { case 'H': goto show_usage; @@ -335,6 +454,11 @@ main(int argc, char *argv[]) def_server = optarg; break; + case 'i': + mapinfo_flag = 1; + nodefault = 1; + break; + case 'l': amq_logfile = optarg; nodefault = 1; @@ -350,13 +474,18 @@ main(int argc, char *argv[]) nodefault = 1; break; + case 'q': + quiet_flag = 1; + nodefault = 1; + break; + case 's': stats_flag = 1; nodefault = 1; break; case 'u': - unmount_flag = 1; + unmount_flag++; nodefault = 1; break; @@ -403,9 +532,9 @@ main(int argc, char *argv[]) if (errs) { show_usage: fprintf(stderr, "\ -Usage: %s [-fmpsvwHTU] [-h hostname] [-l log_file|\"syslog\"]\n\ +Usage: %s [-fimpqsvwHTU] [-h hostname] [-l log_file|\"syslog\"]\n\ \t[-x log_options] [-D debug_options]\n\ -\t[-P program_number] [[-u] directory ...]\n", +\t[-P program_number] [[-u[u]] directory ...]\n", am_get_progname() ); exit(1); @@ -538,16 +667,19 @@ Usage: %s [-fmpsvwHTU] [-h hostname] [-l log_file|\"syslog\"]\n\ */ if (getpwd_flag) { char path[MAXPATHLEN+1]; - char *wd = getcwd(path, MAXPATHLEN+1); - amq_mount_tree_list *mlp = amqproc_export_1((voidp) 0, clnt); + char *wd; + amq_mount_tree_list *mlp; amq_mount_tree_p mt; u_int i; int flag; + wd = getcwd(path, MAXPATHLEN+1); if (!wd) { - perror("getcwd"); + fprintf(stderr, "%s: getcwd failed (%s)", am_get_progname(), + strerror(errno)); exit(1); } + mlp = amqproc_export_1((voidp) 0, clnt); for (i = 0; mlp && i < mlp->amq_mount_tree_list_len; i++) { mt = mlp->amq_mount_tree_list_val[i]; while (1) { @@ -582,6 +714,26 @@ Usage: %s [-fmpsvwHTU] [-h hostname] [-l log_file|\"syslog\"]\n\ } } + + /* + * Map + */ + if (mapinfo_flag) { + int dummy; + amq_map_info_list *ml = amqproc_getmapinfo_1(&dummy, clnt); + if (ml) { + int mwid = 0, wwid = 0; + show_mapinfo(ml, Calc, &mwid, &wwid); + mwid++; + if (wwid) + wwid++; + show_mapinfo(ml, Full, &mwid, &wwid); + } else { + fprintf(stderr, "%s: amd on %s cannot provide map info\n", + am_get_progname(), server); + } + } + /* * Get Version */ @@ -616,7 +768,20 @@ Usage: %s [-fmpsvwHTU] [-h hostname] [-l log_file|\"syslog\"]\n\ if (optind < argc) { do { char *fs = argv[optind++]; - if (unmount_flag) { + if (unmount_flag > 1) { + amq_sync_umnt *sup; + /* + * Synchronous unmount request + */ + sup = amqproc_sync_umnt_1(&fs, clnt); + if (sup) { + if (quiet_flag == 0) + print_umnt_error(sup, fs); + errs = amu_sync_umnt_to_retval(sup); + } else { + errs = clnt_failed(clnt, server); + } + } else if (unmount_flag) { /* * Unmount request */ @@ -641,9 +806,7 @@ Usage: %s [-fmpsvwHTU] [-h hostname] [-l log_file|\"syslog\"]\n\ } xdr_pri_free((XDRPROC_T_TYPE) xdr_amq_mount_tree_p, (caddr_t) mtp); } else { - fprintf(stderr, "%s: ", am_get_progname()); - clnt_perror(clnt, server); - errs = 1; + errs = clnt_failed(clnt, server); } } } while (optind < argc); @@ -656,9 +819,7 @@ Usage: %s [-fmpsvwHTU] [-h hostname] [-l log_file|\"syslog\"]\n\ if (ms) { show_ms(ms); } else { - fprintf(stderr, "%s: ", am_get_progname()); - clnt_perror(clnt, server); - errs = 1; + errs = clnt_failed(clnt, server); } } else if (!nodefault) { @@ -682,9 +843,7 @@ Usage: %s [-fmpsvwHTU] [-h hostname] [-l log_file|\"syslog\"]\n\ } } else { - fprintf(stderr, "%s: ", am_get_progname()); - clnt_perror(clnt, server); - errs = 1; + errs = clnt_failed(clnt, server); } } exit(errs); diff --git a/contrib/amd/amq/amq.h b/contrib/amd/amq/amq.h index 2f36b81..3c894d6 100644 --- a/contrib/amd/amq/amq.h +++ b/contrib/amd/amq/amq.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -51,10 +47,12 @@ extern voidp amqproc_null_1(voidp argp, CLIENT *rqstp); extern amq_mount_tree_p *amqproc_mnttree_1(amq_string *argp, CLIENT *rqstp); extern voidp amqproc_umnt_1(amq_string *argp, CLIENT *rqstp); +extern amq_sync_umnt *amqproc_sync_umnt_1(amq_string *argp, CLIENT *rqstp); extern amq_mount_stats *amqproc_stats_1(voidp argp, CLIENT *rqstp); extern amq_mount_tree_list *amqproc_export_1(voidp argp, CLIENT *rqstp); extern int *amqproc_setopt_1(amq_setopt *argp, CLIENT *rqstp); extern amq_mount_info_list *amqproc_getmntfs_1(voidp argp, CLIENT *rqstp); +extern amq_map_info_list *amqproc_getmapinfo_1(voidp argp, CLIENT *rqstp); extern int *amqproc_mount_1(voidp argp, CLIENT *rqstp); extern amq_string *amqproc_getvers_1(voidp argp, CLIENT *rqstp); extern int *amqproc_getpid_1(voidp argp, CLIENT *rqstp); diff --git a/contrib/amd/amq/amq_clnt.c b/contrib/amd/amq/amq_clnt.c index ddfeb67..c5f1e87 100644 --- a/contrib/amd/amq/amq_clnt.c +++ b/contrib/amd/amq/amq_clnt.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -99,6 +95,23 @@ amqproc_umnt_1(amq_string *argp, CLIENT *clnt) } +amq_sync_umnt * +amqproc_sync_umnt_1(amq_string *argp, CLIENT *clnt) +{ + static amq_sync_umnt res; + enum clnt_stat rv; + + memset((char *) &res, 0, sizeof(res)); + if ((rv = clnt_call(clnt, AMQPROC_SYNC_UMNT, + (XDRPROC_T_TYPE) xdr_amq_string, (SVC_IN_ARG_TYPE) argp, + (XDRPROC_T_TYPE) xdr_amq_sync_umnt, (SVC_IN_ARG_TYPE) &res, + TIMEOUT)) != RPC_SUCCESS) { + return (NULL); + } + return &res; +} + + amq_mount_stats * amqproc_stats_1(voidp argp, CLIENT *clnt) { @@ -161,6 +174,20 @@ amqproc_getmntfs_1(voidp argp, CLIENT *clnt) return (&res); } +amq_map_info_list * +amqproc_getmapinfo_1(voidp argp, CLIENT *clnt) +{ + static amq_map_info_list res; + + memset((char *) &res, 0, sizeof(res)); + if (clnt_call(clnt, AMQPROC_GETMAPINFO, (XDRPROC_T_TYPE) xdr_void, argp, + (XDRPROC_T_TYPE) xdr_amq_map_info_list, + (SVC_IN_ARG_TYPE) &res, TIMEOUT) != RPC_SUCCESS) { + return (NULL); + } + return (&res); +} + int * amqproc_mount_1(voidp argp, CLIENT *clnt) diff --git a/contrib/amd/amq/amq_xdr.c b/contrib/amd/amq/amq_xdr.c index 692a0a4..b9a1c20 100644 --- a/contrib/amd/amq/amq_xdr.c +++ b/contrib/amd/amq/amq_xdr.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -187,6 +183,59 @@ xdr_amq_mount_info_list(XDR *xdrs, amq_mount_info_list *objp) return (TRUE); } +bool_t +xdr_amq_map_info(XDR *xdrs, amq_map_info *objp) +{ + if (!xdr_amq_string(xdrs, &objp->mi_name)) { + return (FALSE); + } + + if (!xdr_amq_string(xdrs, &objp->mi_wildcard)) { + return (FALSE); + } + + if (!xdr_time_type(xdrs, &objp->mi_modify)) { + return (FALSE); + } + + if (!xdr_int(xdrs, &objp->mi_flags)) { + return (FALSE); + } + + if (!xdr_int(xdrs, &objp->mi_nentries)) { + return (FALSE); + } + + if (!xdr_int(xdrs, &objp->mi_reloads)) { + return (FALSE); + } + + if (!xdr_int(xdrs, &objp->mi_refc)) { + return (FALSE); + } + + if (!xdr_int(xdrs, &objp->mi_up)) { + return (FALSE); + } + + return (TRUE); +} + + +bool_t +xdr_amq_map_info_list(XDR *xdrs, amq_map_info_list *objp) +{ + if (!xdr_array(xdrs, + (char **) ((voidp) &objp->amq_map_info_list_val), + (u_int *) &objp->amq_map_info_list_len, + ~0, + sizeof(amq_map_info), + (XDRPROC_T_TYPE) xdr_amq_map_info)) { + return (FALSE); + } + return (TRUE); +} + bool_t xdr_amq_mount_tree_list(XDR *xdrs, amq_mount_tree_list *objp) diff --git a/contrib/amd/amq/pawd.1 b/contrib/amd/amq/pawd.1 index cdd8ce5..571ff4e 100644 --- a/contrib/amd/amq/pawd.1 +++ b/contrib/amd/amq/pawd.1 @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 1997-2006 Erez Zadok +.\" Copyright (c) 1997-2014 Erez Zadok .\" Copyright (c) 1990 Jan-Simon Pendry .\" Copyright (c) 1990 Imperial College of Science, Technology & Medicine .\" Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgment: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors +.\" 3. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" @@ -36,9 +32,8 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %W% (Berkeley) %G% .\" -.\" $Id: pawd.1,v 1.9.2.1 2006/01/02 18:48:24 ezk Exp $ +.\" File: am-utils/amq/pawd.1 .\" $FreeBSD$ .\" .Dd January 2, 2006 diff --git a/contrib/amd/amq/pawd.c b/contrib/amd/amq/pawd.c index c9a32b1..bab6657 100644 --- a/contrib/amd/amq/pawd.c +++ b/contrib/amd/amq/pawd.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/contrib/amd/bootstrap b/contrib/amd/bootstrap index 6c35138..000b016 100755 --- a/contrib/amd/bootstrap +++ b/contrib/amd/bootstrap @@ -5,6 +5,16 @@ # this is not meant to go into the distributions # Erez Zadok <ezk@cs.columbia.edu> +validateversion() { + local v="$(autoreconf --version 2>&1 | head -1)" + case "$v" in + *2.69) ;; + *) echo "am-utils requires autoconf 2.69, you have:" + echo " $v" + exit 1;; + esac +} + # test cwd test -f ../amd/amd.c && cd .. if [ ! -f amd/amd.c ]; then @@ -37,67 +47,13 @@ test -f acinclude.m4 && mv -f acinclude.m4 acinclude.m4.old cat TRAILER ) > acinclude.m4 -# generate aclocal.m4 file -echo "AMU: aclocal..." -test -f aclocal.m4 && mv -f aclocal.m4 aclocal.m4.old -# show version -aclocal --version 2>&1 | head -1 -if aclocal ; then - : -else - echo "aclocal command failed. fix errors and rerun $0." - exit 2 -fi - -# produce new configure.in (temp) script -echo "AMU: autoconf..." -# show version -autoconf --version 2>&1 | head -1 -LOG=/tmp/amu-$$.log -rm -f ${LOG} -autoconf configure.in > configure.new 2> ${LOG} -# until Automake requires Autoconf 2.50, manual says to ignore this -CUTWARNMSG1="warning: AC_PROG_LEX invoked multiple times|do not use m4_(patsubst|regexp):" -egrep -v "${CUTWARNMSG1}" ${LOG} > ${LOG}.new -mv ${LOG}.new ${LOG} -if test -s ${LOG}; then - echo "AUTOCONF ERRORS (MUST FIX):" - cat ${LOG} - rm -f ${LOG} - exit 2 -fi -# now prepare the real configure script -test -f configure && mv -f configure configure.old -mv -f configure.new configure -chmod a+rx configure -rm -f configure.old - -# run autoheader to produce C header .in files -echo "AMU: autoheader..." -# show version -autoheader --version 2>&1 | head -1 -autoheader configure.in > config.h.in 2> ${LOG} -CUTWARNMSG2="autoheader: \`config.h.in' is updated" -egrep -v "${CUTWARNMSG2}" ${LOG} > ${LOG}.new -mv ${LOG}.new ${LOG} -if test -s ${LOG}; then - echo "AUTOHEADER ERRORS (MUST FIX):" - cat ${LOG} - rm -f ${LOG} - exit 2 -fi -rm -f ${LOG} - -# generate makefiles -cmd="automake --add-missing --copy --ignore-deps" -#cmd="automake --add-missing" -echo "AMU: $cmd..." -# show version -automake --version 2>&1 | head -1 -if ${cmd} ; then +# generate the rest of the scripts +echo "AMU: autoreconf..." +validateversion +if autoreconf -f -i; then : else - echo "automake command failed. fix errors and rerun $0." + echo "autoreconf command failed. fix errors and rerun $0." exit 2 fi diff --git a/contrib/amd/conf/checkmount/checkmount_bsd44.c b/contrib/amd/conf/checkmount/checkmount_bsd44.c index a6ec243..6c6b21d 100644 --- a/contrib/amd/conf/checkmount/checkmount_bsd44.c +++ b/contrib/amd/conf/checkmount/checkmount_bsd44.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -45,6 +41,9 @@ # include <config.h> #endif /* HAVE_CONFIG_H */ #include <am_defs.h> +#if __NetBSD_Version__ > 200030000 +#define statfs statvfs +#endif extern int is_same_host(char *name1, char *name2, struct in_addr addr2); int fixmount_check_mount(char *host, struct in_addr hostaddr, char *path); diff --git a/contrib/amd/conf/mtab/mtab_bsd.c b/contrib/amd/conf/mtab/mtab_bsd.c index fe3991a..203a265 100644 --- a/contrib/amd/conf/mtab/mtab_bsd.c +++ b/contrib/amd/conf/mtab/mtab_bsd.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -53,6 +49,9 @@ #include <am_defs.h> #include <amu.h> +#if __NetBSD_Version__ > 200030000 +#define statfs statvfs +#endif static mntent_t * mnt_dup(struct statfs *mp) @@ -60,8 +59,8 @@ mnt_dup(struct statfs *mp) mntent_t *new_mp = ALLOC(mntent_t); char *ty; - new_mp->mnt_fsname = strdup(mp->f_mntfromname); - new_mp->mnt_dir = strdup(mp->f_mntonname); + new_mp->mnt_fsname = xstrdup(mp->f_mntfromname); + new_mp->mnt_dir = xstrdup(mp->f_mntonname); #ifdef HAVE_STRUCT_STATFS_F_FSTYPENAME ty = mp->f_fstypename; @@ -93,8 +92,8 @@ mnt_dup(struct statfs *mp) } #endif /* not HAVE_STRUCT_STATFS_F_FSTYPENAME */ - new_mp->mnt_type = strdup(ty); - new_mp->mnt_opts = strdup("unset"); + new_mp->mnt_type = xstrdup(ty); + new_mp->mnt_opts = xstrdup("unset"); new_mp->mnt_freq = 0; new_mp->mnt_passno = 0; @@ -138,7 +137,7 @@ read_mtab(char *fs, const char *mnttabname) /* * Terminate the list */ - *mpp = 0; + *mpp = NULL; return mhp; } diff --git a/contrib/amd/conf/nfs_prot/nfs_prot_freebsd2.h b/contrib/amd/conf/nfs_prot/nfs_prot_freebsd2.h index cf7ba33..73661c9 100644 --- a/contrib/amd/conf/nfs_prot/nfs_prot_freebsd2.h +++ b/contrib/amd/conf/nfs_prot/nfs_prot_freebsd2.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -139,7 +135,7 @@ typedef writeargs nfswriteargs; */ #if 0 #define MOUNT_NFS3 MOUNT_NFS -#endif +#endif /* 0 */ #endif /* not _AMU_NFS_PROT_H */ diff --git a/contrib/amd/conf/nfs_prot/nfs_prot_freebsd3.h b/contrib/amd/conf/nfs_prot/nfs_prot_freebsd3.h index 4e1e84a..a415b8b 100644 --- a/contrib/amd/conf/nfs_prot/nfs_prot_freebsd3.h +++ b/contrib/amd/conf/nfs_prot/nfs_prot_freebsd3.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -103,9 +99,11 @@ struct ufs_extattr_per_mount; #define na_ctime ctime #define na_fileid fileid #define na_fsid fsid +#define na_gid gid #define na_mode mode #define na_mtime mtime #define na_nlink nlink +#define na_rdev rdev #define na_size size #define na_type type #define na_uid uid diff --git a/contrib/amd/conf/transp/transp_sockets.c b/contrib/amd/conf/transp/transp_sockets.c index 025e1f3..b3ad5fc 100644 --- a/contrib/amd/conf/transp/transp_sockets.c +++ b/contrib/amd/conf/transp/transp_sockets.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -171,7 +167,7 @@ get_mount_client(char *unused_host, struct sockaddr_in *sin, struct timeval *tv, /* * Bind to a privileged port */ - if (bind_resv_port(*sock, (u_short *) 0) < 0) + if (bind_resv_port(*sock, (u_short *) NULL) < 0) plog(XLOG_ERROR, "can't bind privileged port (socket)"); /* @@ -198,7 +194,7 @@ get_mount_client(char *unused_host, struct sockaddr_in *sin, struct timeval *tv, /* * Bind to a privileged port */ - if (bind_resv_port(*sock, (u_short *) 0) < 0) + if (bind_resv_port(*sock, (u_short *) NULL) < 0) plog(XLOG_ERROR, "can't bind privileged port"); /* @@ -231,13 +227,15 @@ amu_svc_getcaller(SVCXPRT *xprt) /* - * register an RPC server + * Register an RPC server: + * return 1 on success, 0 otherwise. */ int amu_svc_register(SVCXPRT *xprt, u_long prognum, u_long versnum, void (*dispatch)(struct svc_req *rqstp, SVCXPRT *transp), u_long protocol, struct netconfig *dummy) { + /* on Sockets: svc_register returns 1 on success, 0 otherwise */ return svc_register(xprt, prognum, versnum, dispatch, protocol); } @@ -246,9 +244,8 @@ amu_svc_register(SVCXPRT *xprt, u_long prognum, u_long versnum, * Create the nfs service for amd */ int -create_nfs_service(int *soNFSp, u_short *nfs_portp, SVCXPRT **nfs_xprtp, void (*dispatch_fxn)(struct svc_req *rqstp, SVCXPRT *transp)) +create_nfs_service(int *soNFSp, u_short *nfs_portp, SVCXPRT **nfs_xprtp, void (*dispatch_fxn)(struct svc_req *rqstp, SVCXPRT *transp), u_long nfs_version) { - *soNFSp = socket(AF_INET, SOCK_DGRAM, 0); if (*soNFSp < 0 || bind_resv_port(*soNFSp, nfs_portp) < 0) { @@ -268,9 +265,9 @@ create_nfs_service(int *soNFSp, u_short *nfs_portp, SVCXPRT **nfs_xprtp, void (* close(*soNFSp); return 1; } - if (!svc_register(*nfs_xprtp, NFS_PROGRAM, NFS_VERSION, dispatch_fxn, 0)) { - plog(XLOG_FATAL, "unable to register (%ld, %ld, 0)", - (u_long) NFS_PROGRAM, (u_long) NFS_VERSION); + if (!svc_register(*nfs_xprtp, NFS_PROGRAM, nfs_version, dispatch_fxn, 0)) { + plog(XLOG_FATAL, "unable to register (%lu, %lu, 0)", + (u_long) NFS_PROGRAM, nfs_version); svc_destroy(*nfs_xprtp); close(*soNFSp); return 3; @@ -386,8 +383,8 @@ int check_pmap_up(char *host, struct sockaddr_in* sin) if (client == (CLIENT *) NULL) { plog(XLOG_ERROR, - "check_pmap_up: cannot create connection to contact portmapper on host \"%s\"%s", - host, clnt_spcreateerror("")); + "%s: cannot create connection to contact portmapper on host \"%s\"%s", + __func__, host, clnt_spcreateerror("")); return 0; } @@ -406,8 +403,8 @@ int check_pmap_up(char *host, struct sockaddr_in* sin) if (clnt_stat == RPC_TIMEDOUT) { plog(XLOG_ERROR, - "check_pmap_up: failed to contact portmapper on host \"%s\": %s", - host, clnt_sperrno(clnt_stat)); + "%s: failed to contact portmapper on host \"%s\": %s", + __func__, host, clnt_sperrno(clnt_stat)); return 0; } return 1; @@ -418,7 +415,7 @@ int check_pmap_up(char *host, struct sockaddr_in* sin) * Find the best NFS version for a host and protocol. */ u_long -get_nfs_version(char *host, struct sockaddr_in *sin, u_long nfs_version, const char *proto) +get_nfs_version(char *host, struct sockaddr_in *sin, u_long nfs_version, const char *proto, u_long def) { CLIENT *clnt; int again = 0; @@ -431,68 +428,64 @@ get_nfs_version(char *host, struct sockaddr_in *sin, u_long nfs_version, const c * If not set or set wrong, then try from NFS_VERS_MAX on down. If * set, then try from nfs_version on down. */ - if (nfs_version <= 0 || nfs_version > NFS_VERS_MAX) { - nfs_version = NFS_VERS_MAX; + if (!nfs_valid_version(nfs_version)) { + if (nfs_valid_version(def)) + nfs_version = def; + else + nfs_version = NFS_VERS_MAX; again = 1; } tv.tv_sec = 2; /* retry every 2 seconds, but also timeout */ tv.tv_usec = 0; -#ifdef HAVE_FS_NFS3 -try_again: -#endif /* HAVE_FS_NFS3 */ - - sock = RPC_ANYSOCK; - errstr = NULL; - if (STREQ(proto, "tcp")) - clnt = clnttcp_create(sin, NFS_PROGRAM, nfs_version, &sock, 0, 0); - else if (STREQ(proto, "udp")) - clnt = clntudp_create(sin, NFS_PROGRAM, nfs_version, tv, &sock); - else - clnt = NULL; - - if (clnt != NULL) { - /* Try three times (6/2=3) to verify the CLIENT handle. */ - tv.tv_sec = 6; - clnt_stat = clnt_call(clnt, - NFSPROC_NULL, - (XDRPROC_T_TYPE) xdr_void, - 0, - (XDRPROC_T_TYPE) xdr_void, - 0, - tv); - - if (clnt_stat != RPC_SUCCESS) - errstr = clnt_sperrno(clnt_stat); - - close(sock); - clnt_destroy(clnt); - } else { -#ifdef HAVE_CLNT_SPCREATEERROR - errstr = clnt_spcreateerror(""); -#else /* not HAVE_CLNT_SPCREATEERROR */ - errstr = ""; -#endif /* not HAVE_CLNT_SPCREATEERROR */ - } + for (; nfs_version >= NFS_VERS_MIN; nfs_version--) { + + sock = RPC_ANYSOCK; + errstr = NULL; + if (STREQ(proto, "tcp")) + clnt = clnttcp_create(sin, NFS_PROGRAM, nfs_version, &sock, 0, 0); + else if (STREQ(proto, "udp")) + clnt = clntudp_create(sin, NFS_PROGRAM, nfs_version, tv, &sock); + else + clnt = NULL; + + if (clnt != NULL) { + /* Try three times (6/2=3) to verify the CLIENT handle. */ + tv.tv_sec = 6; + clnt_stat = clnt_call(clnt, + NFSPROC_NULL, + (XDRPROC_T_TYPE) xdr_void, + 0, + (XDRPROC_T_TYPE) xdr_void, + 0, + tv); + + if (clnt_stat != RPC_SUCCESS) + errstr = clnt_sperrno(clnt_stat); + + close(sock); + clnt_destroy(clnt); + if (clnt_stat == RPC_SUCCESS) + break; + } else { + #ifdef HAVE_CLNT_SPCREATEERROR + errstr = clnt_spcreateerror(""); + #else /* not HAVE_CLNT_SPCREATEERROR */ + errstr = ""; + #endif /* not HAVE_CLNT_SPCREATEERROR */ + } - if (errstr) { - plog(XLOG_INFO, "get_nfs_version NFS(%d,%s) failed for %s%s", - (int) nfs_version, proto, host, errstr); - if (again) { -#ifdef HAVE_FS_NFS3 - if (nfs_version == NFS_VERSION3) { - nfs_version = NFS_VERSION; - again = 0; - plog(XLOG_INFO, "get_nfs_version trying a lower version: NFS(%d,%s)", (int) nfs_version, proto); - } - goto try_again; -#endif /* HAVE_FS_NFS3 */ + if (errstr) { + plog(XLOG_INFO, "%s: NFS(%lu,%s) failed for %s: %s", __func__, + nfs_version, proto, host, errstr); } - return 0; } - plog(XLOG_INFO, "get_nfs_version: returning NFS(%d,%s) on host %s", - (int) nfs_version, proto, host); + if (nfs_version < NFS_VERS_MIN) + nfs_version = 0; + + plog(XLOG_INFO, "%s: returning NFS(%lu,%s) on host %s", __func__, + nfs_version, proto, host); return nfs_version; } diff --git a/contrib/amd/conf/umount/umount_bsd44.c b/contrib/amd/conf/umount/umount_bsd44.c index d05944d..da44129 100644 --- a/contrib/amd/conf/umount/umount_bsd44.c +++ b/contrib/amd/conf/umount/umount_bsd44.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -105,6 +101,7 @@ int umount2_fs(const char *mntdir, u_int unmount_flags) { int error = 0; + if (unmount_flags & AMU_UMOUNT_FORCE) { plog(XLOG_INFO, "umount2_fs: trying unmount/forced on %s", mntdir); error = unmount(mntdir, MNT2_GEN_OPT_FORCE); diff --git a/contrib/amd/doc/am-utils.texi b/contrib/amd/doc/am-utils.texi index 1cc46b6..2430baf 100644 --- a/contrib/amd/doc/am-utils.texi +++ b/contrib/amd/doc/am-utils.texi @@ -1,6 +1,6 @@ \input texinfo @c -*-texinfo-*- @c -@c Copyright (c) 1997-2006 Erez Zadok +@c Copyright (c) 1997-2014 Erez Zadok @c Copyright (c) 1989 Jan-Simon Pendry @c Copyright (c) 1989 Imperial College of Science, Technology & Medicine @c Copyright (c) 1989 The Regents of the University of California. @@ -17,11 +17,7 @@ @c 2. Redistributions in binary form must reproduce the above copyright @c notice, this list of conditions and the following disclaimer in the @c documentation and/or other materials provided with the distribution. -@c 3. All advertising materials mentioning features or use of this software -@c must display the following acknowledgment: -@c This product includes software developed by the University of -@c California, Berkeley and its contributors. -@c 4. Neither the name of the University nor the names of its contributors +@c 3. Neither the name of the University nor the names of its contributors @c may be used to endorse or promote products derived from this software @c without specific prior written permission. @c @@ -60,14 +56,14 @@ (Originally by Jan-Simon Pendry and Nick Williams) @page -Copyright @copyright{} 1997-2006 Erez Zadok +Copyright @copyright{} 1997-2014 Erez Zadok @* Copyright @copyright{} 1989 Jan-Simon Pendry @* Copyright @copyright{} 1989 Imperial College of Science, Technology & Medicine @* Copyright @copyright{} 1989 The Regents of the University of California. -@sp +@sp 1 All Rights Reserved. @vskip 1ex Permission to copy this document, or any portion of it, as @@ -93,7 +89,7 @@ For version @value{VERSION}, @value{UPDATED} @* (Originally by Jan-Simon Pendry and Nick Williams) -Copyright @copyright{} 1997-2006 Erez Zadok +Copyright @copyright{} 1997-2014 Erez Zadok @* Copyright @copyright{} 1989 Jan-Simon Pendry @* @@ -179,16 +175,6 @@ notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. @item -All advertising materials mentioning features or use of this software -must display the following acknowledgment: - -@cartouche -``This product includes software developed by the University of -California, Berkeley and its contributors, as well as the Trustees of -Columbia University.'' -@end cartouche - -@item Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. @@ -234,7 +220,7 @@ Revision 5.3bsdnet, a late alpha version of 5.3, was part of the BSD network version 2 distribution Revision 6.0 was made independently by -@email{ezk@@cs.columbia.edu,Erez Zadok} at the Computer Science +Erez Zadok at the Computer Science Department of @uref{http://www.cs.columbia.edu/,Columbia University}, as part of his @uref{http://www.fsl.cs.sunysb.edu/docs/zadok-thesis-proposal/,PhD @@ -262,7 +248,8 @@ If you find a problem and hopefully you can reproduce it, please describe it in detail and @uref{https://bugzilla.filesystems.org/,submit a bug report} via @uref{http://www.bugzilla.org/,Bugzilla}. Alternatively, you can send -your bug report to @email{am-utils@@am-utils.org} quoting the details +your bug report to the ``am-utils'' list (see +@url{http://www.am-utils.org/} under ``Mailing Lists'') quoting the details of the release and your configuration. These details can be obtained by running the command @samp{amd -v}. It would greatly help if you could provide a reproducible procedure for detecting the bug you are @@ -297,11 +284,10 @@ discussions of new features for am-utils implementation and porting issues @end itemize -To subscribe, visit -@url{http://lists.am-utils.org/mailman/listinfo/am-utils}. After -subscribing, you can post a message to this list at -@email{am-utils@@am-utils.org}. To avoid as much spam as -possible, only subscribers to this list may post to it. +To subscribe, visit @url{http://www.am-utils.org/} under ``Mailing +Lists.'' After subscribing, you can post a message to this list. To +avoid as much spam as possible, only subscribers to this list may post +to it. Subscribers of @samp{am-utils} are most helpful if they have the time and resources to test new and development versions of amd, on as many @@ -318,7 +304,7 @@ before January 1st, 2004. Please use the new name, @samp{am-utils}. @item The announcements mailing list, @samp{am-utils-announce} is for announcements only (mostly new releases). To subscribe, visit -@url{http://lists.am-utils.org/mailman/listinfo/am-utils-announce}. +@url{http://www.am-utils.org/} under ``Mailing Lists.'' This list is read-only: only am-utils developers may post to it. @item @@ -326,17 +312,18 @@ We distribute nightly CVS snapshots in @url{ftp://ftp.am-utils.org/pub/am-utils/snapshots/daily/}. If you like to get email notices of commits to the am-utils CVS repository, subscribe to the CVS logs mailing list, @samp{am-utils-cvs} at -@url{http://lists.am-utils.org/mailman/listinfo/am-utils-cvs}. +@url{http://www.am-utils.org/} under ``Mailing Lists.'' @item The older list which was used to user discussions, @samp{amd-workers}, is defunct as of January 2004. (Its last address was -@email{amd-workers@@majordomo.glue.umd.edu}.) Don't use +@email{amd-workers AT majordomo.glue.umd.edu}.) Don't use @samp{amd-workers}: use the newer, more active @samp{am-utils} list. @item For completeness, there's a developers-only closed list called -@samp{am-utils-developers@@am-utils.org}. +@samp{am-utils-developers} (see @url{http://www.am-utils.org/} under +``Mailing Lists''). @end enumerate @@ -346,7 +333,7 @@ For completeness, there's a developers-only closed list called @cindex Automounter book @cindex book -@email{ezk@@cs.sunysb.edu,Erez Zadok} wrote a +@uref{http://www.cs.sunysb.edu/~ezk,Erez Zadok} wrote a @uref{http://www.fsl.cs.sunysb.edu/docs/amd-book/,book}, titled @i{Linux NFS and Automounter Administration}, ISBN 0-7821-2739-8, (Sybex, 2001). The book is full of details and examples that go beyond what this manual @@ -389,7 +376,7 @@ numerous flavors of Unix. The @i{Amd} package has been without an official maintainer since 1992. Several people have stepped in to maintain it unofficially. Most notable were the `upl' (Unofficial Patch Level) releases of @i{Amd}, -created by me (@email{ezk@@cs.sunysb.edu,Erez Zadok}), and available from +created by me (@uref{http://www.cs.sunysb.edu/~ezk,Erez Zadok}), and available from @url{ftp://ftp.am-utils.org/pub/amd/}. The last such unofficial release was `upl102'. @@ -428,7 +415,7 @@ end-user, aside from the fact that @code{/bin/pwd} now always returns the correct amd-ified path. The administrator can easily switch between NFS and autofs mounts by changing one parameter in @code{amd.conf}. Autofs support and maintenance was developed in -conjunction with @email{ionut@@badula.org,Ion Badulescu}. +conjunction with @email{ionut AT badula.org,Ion Badulescu}. @c ################################################################ @node Overview, Supported Platforms, History, Top @@ -1040,7 +1027,7 @@ Similarly, if the password file entry was the map entry used by @i{Amd} would be @example -rfs:=/home/sugar;rhost:=sugar.cc;sublink:=jsp +rfs:=/home/sugar;rhost:=sugar.cc;sublink:=mhj @end example @c ---------------------------------------------------------------- @@ -1795,8 +1782,8 @@ Always evaluates to false. @i{ARG} is ignored. The argument @i{ARG} of this selector is a netgroup name followed optionally by a comma and a host name. If the host name is not specified, it defaults to @code{$@{host@}}. If the host name (short -name) is a member of the netgroup, this selector evaluates to -true. Otherwise it evaluates to false. +name) is a member of the netgroup, this selector evaluates to true. +Otherwise it evaluates to false. For example, suppose you have a netgroup @samp{ppp-hosts}, and for reasons of performance, these have a local @file{/home} partition, @@ -2098,6 +2085,10 @@ Ignore this mount by @b{df}(1). @cindex Mount flags; cache Allow data to be cached from a remote server for this mount. +@item closesession +@cindex Mount flags; closesession +For UDF mounts, close the session when unmounting. + @item compress @cindex Mount flags; compress Use NFS compression protocol. @@ -2137,10 +2128,16 @@ Set ID of filesystem. Enable generations in ISO-9660 file systems. Generations allow you to see all versions of a given file. +@item gmtoff=@var{n} +@cindex Mount flags; gmtoff +For UDF mounts, set the time zone offset from UTC to @var{n} seconds, +with positive values indicating east of the Prime Meridian. If not +set, the user's current time zone will be used. + @item group=@var{n} @cindex Mount flags; group -For PCFS mounts, set the group of the files in the file system to -@var{n} (which can either be a group name or a GID number). The +For PCFS and UDF mounts, set the group of the files in the file system +to @var{n} (which can either be a group name or a GID number). The default group is the group of the directory on which the file system is being mounted. @@ -2199,6 +2196,11 @@ is used. Do not allow data to be cached from a remote server for this mount. +@item nocasetrans +@cindex Mount flags; nocasetrans +Don't do case translation. Useful for CD-ROMS formatted as +ISO-9660. + @item noconn @cindex Mount flags; noconn Don't make a connection on datagram transports. @@ -2226,6 +2228,10 @@ Don't allow program execution. @cindex Mount flags; noint Do not allow keyboard interrupts for this mount +@item nojoliet +@cindex Mount flags; nojoliet +Turn off the Joliet extensions. Useful for CD-ROMS formatted as ISO-9660. + @item nolock @cindex Mount flags; nolock Do not use the NFS locking protocol @@ -2320,6 +2326,11 @@ trying}. @cindex Mount flags; retry Set the NFS retry counter. +@item rrcaseins +@cindex Mount flags; rrcaseins +Enable the Rock Ridge Interchange Protocol (RRIP) case insensitive extensions. +Useful for CD-ROMS formatted as ISO-9660. + @item rrip @cindex Mount flags; rrip Uses the Rock Ridge Interchange Protocol (RRIP) extensions to ISO-9660. @@ -2333,6 +2344,10 @@ NFS/UDP through a gateway or a slow link. @cindex Mount flags; rw Allow reads and writes on this filesystem. +@item sessionnr=@var{n} +@cindex Mount Flags; sessionnr +For multisession UDF mounts, use session number @var{n} when mounting. + @item shortname @cindex Mount Flags; longname For PCFS mounts, force old DOS short names only. @@ -2368,8 +2383,8 @@ The NFS timeout, in tenth-seconds, before a request is retransmitted. @item user=@var{n} @cindex Mount flags; user -For PCFS mounts, set the owner of the files in the file system to -@var{n} (which can either be a user name or a UID number). The +For PCFS and UDF mounts, set the owner of the files in the file system +to @var{n} (which can either be a user name or a UID number). The default owner is the owner of the directory on which the file system is being mounted. @@ -2824,13 +2839,13 @@ Copyright (c) 1990 Jan-Simon Pendry Copyright (c) 1990 Imperial College of Science, Technology & Medicine Copyright (c) 1990 The Regents of the University of California. am-utils version 6.0a15 (build 61). -Built by ezk@@cs.columbia.edu on date Wed Oct 22 15:21:03 EDT 1997. +Built by ezk@@example.com on date Wed Oct 22 15:21:03 EDT 1997. cpu=sparc (big-endian), arch=sun4, karch=sun4u. full_os=solaris2.5.1, os=sos5, osver=5.5.1, vendor=sun. Map support for: root, passwd, union, nisplus, nis, ndbm, file, error. AMFS: nfs, link, nfsx, nfsl, host, linkx, program, union, inherit, ufs, lofs, hsfs, pcfs, auto, direct, toplvl, error. -FS: autofs, cachefs, cdfs, lofs, nfs, nfs3, pcfs, tfs, tmpfs, ufs. +FS: autofs, cachefs, cdfs, lofs, nfs, nfs3, pcfs, tfs, tmpfs, udf, ufs. Network 1: wire="mcl-lab-net.cs.columbia.edu" (netnumber=128.59.13). Network 2: wire="14-net.cs.columbia.edu" (netnumber=128.59.14). Network 3: wire="old-net.cs.columbia.edu" (netnumber=128.59.16). @@ -2879,9 +2894,9 @@ a comma separated list selected from the following options: @table @code @item fatal -Fatal errors +Fatal errors (cannot be turned off) @item error -Non-fatal errors +Non-fatal errors (cannot be turned off) @item user Non-fatal user errors @item warn @@ -2896,10 +2911,15 @@ Mount map usage Additional statistics @item all All of the above +@item defaults +An alias for "fatal,error,user,warning,info". @end table Initially a set of default logging flags is enabled. This is as if -@samp{-x all,nomap,nostats} had been selected. The command line is +@samp{-x defaults} +or +@samp{-x fatal,error,user,warning,info} +had been selected. The command line is parsed and logging is controlled by the @code{-x} option. The very first set of logging flags is saved and can not be subsequently disabled using @i{Amq}. This default set of options is useful for general production @@ -2932,7 +2952,6 @@ of the message types.@refill @samp{LOG_INFO} @end table - The options can be prefixed by the string @samp{no} to indicate that this option should be turned off. For example, to obtain all but @samp{info} messages the option @samp{-x all,noinfo} would be used. @@ -3011,13 +3030,17 @@ can be prefixed with @samp{no} to turn it off. @table @code @item all -all ``reasonable'' options (currently trace|str|full|mem|info|readdir) +all options (excluding hrtime and mtab) +@item defaults +``sensible'' default options (all--excluding hrtime, mtab, and xdrtrace) +@item test +full debug options plus mtab,nodaemon,nofork,noamq @item amq -do not register for amq +register @i{Amd} with the RPC portmapper, for @i{Amq} @item daemon -do not enter daemon mode +enter daemon mode @item fork -do not fork child worker (hlfsd only) +fork child worker (hlfsd only) @item full program trace @item hrtime @@ -3028,16 +3051,14 @@ print high resolution time stamps (only if @b{syslog}(3) is not used) info service specific debugging (hesiod, nis, etc.) In the case of hesiod maps, turns on the hesiod RES_DEBUG internal debugging option. @item mem -trace memory allocations. Needs to be explicitly enabled at compile +trace memory allocations. Needs to be explicitly enabled at compile time with --enable-debug=mem. @item mtab -use local @file{./mtab} file +use local mount-table file (defaults to @file{/tmp/mtab}, @pxref{debug_mtab_file Parameter}) @item readdir show readdir progress @item str debug string munging -@item test -full debug but no daemon @item trace trace RPC protocol and NFS mount arguments @item xdrtrace @@ -3150,6 +3171,7 @@ effect visible to the user.@refill * Unix Filesystem:: Native disk filesystem. * Caching Filesystem:: Caching from remote server filesystem. * CD-ROM Filesystem:: ISO9660 CD ROM. +* UDF Filesystem:: Universal Disk Format filesystem. * Loopback Filesystem:: Local loopback-mount filesystem. * Memory/RAM Filesystem:: A memory or RAM-based filesystem. * Null Filesystem:: 4.4BSD's loopback-mount filesystem. @@ -3475,7 +3497,7 @@ inconsistent, requiring running the command @file{fsck -F cachefs @end enumerate @c ---------------------------------------------------------------- -@node CD-ROM Filesystem, Loopback Filesystem, Caching Filesystem, Filesystem Types +@node CD-ROM Filesystem, UDF Filesystem, Caching Filesystem, Filesystem Types @comment node-name, next, previous, up @section CD-ROM Filesystem (@samp{cdfs}) @cindex CD-ROM Filesystem @@ -3504,7 +3526,36 @@ cdfs os==sunos4;type:=cdfs;dev:=/dev/sr0 \ @end example @c ---------------------------------------------------------------- -@node Loopback Filesystem, Memory/RAM Filesystem, CD-ROM Filesystem, Filesystem Types +@node UDF Filesystem, Loopback Filesystem, CD-ROM Filesystem, Filesystem Types +@comment node-name, next, previous, up +@section CD-ROM Filesystem (@samp{udf}) +@cindex CD-ROM Filesystem +@cindex udf, filesystem type +@cindex Filesystem type; udf + +The @dfn{udf} (@samp{type:=udf}) filesystem mounts media with a +Universal Disk Format (UDF) filesystem on it, e.g., a video DVD. + +@noindent +The following option must be specified: + +@table @code +@cindex dev, mount option +@cindex Mount option; dev +@item dev +the block special device to be mounted. +@end table + +Some operating systems will fail to mount read-only media unless the +@samp{ro} option is specified. A udf entry might be: + +@example +udf os==sunos4;type:=udf;dev:=/dev/sr0 \ + os==sunos5;addopts:=ro;type:=udf;dev:=/dev/dsk/c0t6d0s2 +@end example + +@c ---------------------------------------------------------------- +@node Loopback Filesystem, Memory/RAM Filesystem, UDF Filesystem, Filesystem Types @comment node-name, next, previous, up @section Loopback Filesystem (@samp{lofs}) @cindex Loopback Filesystem @@ -4203,6 +4254,7 @@ sections that follow. * mount_type Parameter:: * search_path Parameter:: * selectors_in_defaults Parameter:: +* sun_map_syntax Parameter:: @end menu @c ---------------------------------------------------------------- @@ -4326,7 +4378,7 @@ sites can allow for local map customizations and overrides, and can distributed maps in several locations as needed. @c ---------------------------------------------------------------- -@node selectors_in_defaults Parameter, , search_path Parameter, Common Parameters +@node selectors_in_defaults Parameter, sun_map_syntax Parameter, search_path Parameter, Common Parameters @comment node-name, next, previous, up @subsection @t{selectors_in_defaults} Parameter @cindex selectors_in_defaults Parameter @@ -4346,6 +4398,15 @@ performance over slow slip-based networks as follows: Deprecated form: selectors_on_default. +@c ---------------------------------------------------------------- +@node sun_map_syntax Parameter, , selectors_in_defaults Parameter, Common Parameters +@comment node-name, next, previous, up +@subsection @t{sun_map_syntax} Parameter +@cindex sun_map_syntax Parameter + +(type=boolean, default=@samp{no}). If @samp{yes}, then @i{Amd} will +parse the map according to the Sun Automount syntax. + @c ================================================================ @node Global Parameters, Regular Map Parameters, Common Parameters, Amd Configuration File @@ -4527,14 +4588,14 @@ remain in the cache. (type=string, default no cluster). Same as the @code{-C} option to @i{Amd}. Specifies the alternate HP-UX cluster to use. -@c ---------------------------------------------------------------- -@node debug_mtab_file Parameter, debug_options Parameter, cluster Parameter, Global Parameters -@comment node-name, next, previous, up -@subsection @t{debug_mtab_file} Parameter -@cindex debug_mtab_file Parameter +@c ---------------------------------------------------------------- +@node debug_mtab_file Parameter, debug_options Parameter, cluster Parameter, Global Parameters +@comment node-name, next, previous, up +@subsection @t{debug_mtab_file} Parameter +@cindex debug_mtab_file Parameter -(type=string, default="/tmp/mnttab"). Path to mtab file that is used -by @i{Amd} to store a list of mounted file systems during debug-mtab mode. +(type=string, default="/tmp/mtab"). Path to mtab file that is used +by @i{Amd} to store a list of mounted file systems during debug-mtab mode. This option only applies to systems that store mtab information on disk. @c ---------------------------------------------------------------- @@ -4774,7 +4835,7 @@ is generally a bad idea to use those reserved for other services such as @subsection @t{log_options} Parameter @cindex log_options Parameter -(type=string, default no logging options). Same as the @code{-x} +(type=string, default=``defaults''). Same as the @code{-x} option to @i{Amd}. Specify any logging options for @i{Amd}. Options are comma delimited, and can be preceded by the string @samp{no} to negate their meaning. The @samp{debug} logging option is only available @@ -4785,12 +4846,14 @@ values are: @table @samp @item all all messages +@item defaults +an alias for "fatal,error,user,warning,info" @item debug debug messages @item error -non-fatal system errors +non-fatal system errors (cannot be turned off) @item fatal -fatal errors +fatal errors (cannot be turned off) @item info information @item map @@ -5271,7 +5334,7 @@ restart_mounts = yes auto_dir = /n log_file = /var/log/amd log_options = all -#debug_options = all +#debug_options = defaults plock = no selectors_in_defaults = yes # config.guess picks up "sunos5" and I don't want to edit my maps yet @@ -5436,6 +5499,7 @@ mount point. * Amq -m option:: Obtaining mount statistics. * Amq -p option:: Getting Amd's process ID. * Amq -P option:: Contacting alternate Amd processes. +* Amq -q option:: Suppress synchronous unmounting errors. * Amq -s option:: Obtaining global statistics. * Amq -T option:: Use TCP transport. * Amq -U option:: Use UDP transport. @@ -5641,7 +5705,7 @@ rather not have to search through the process table. This option is used in the @file{ctl-amd} script. @c ---------------------------------------------------------------- -@node Amq -P option, Amq -s option, Amq -p option, Controlling Amd +@node Amq -P option, Amq -q option, Amq -p option, Controlling Amd @comment node-name, next, previous, up @subsection @i{Amq} @code{-P} option @cindex Multiple Amd processes @@ -5664,7 +5728,16 @@ kill `amq -p -P 300020` @end example @c ---------------------------------------------------------------- -@node Amq -s option, Amq -T option, Amq -P option, Controlling Amd +@node Amq -q option, Amq -s option, Amq -P option, Controlling Amd +@comment node-name, next, previous, up +@subsection @i{Amq} @code{-q} option +@cindex Unmounting a filesystem + +Suppress any error messages produced when a synchronous unmount fails. +See @ref{Amq -u option}. + +@c ---------------------------------------------------------------- +@node Amq -s option, Amq -T option, Amq -q option, Controlling Amd @comment node-name, next, previous, up @subsection @i{Amq} @code{-s} option @cindex Global statistics @@ -5729,11 +5802,19 @@ and if that failed, will try UDP. @cindex Forcing filesystem to time out @cindex Unmounting a filesystem -The @code{-u} option causes the time-to-live interval of the named mount -points to be expired, thus causing an unmount attempt. This is the only -safe way to unmount an automounted filesystem. It is not possible to -unmount a filesystem which has been mounted with the @samp{nounmount} -flag. +The @code{-u} option causes the time-to-live interval of the named +mount points to be expired, thus causing an unmount attempt. This is +the only safe way to unmount an automounted filesystem. If @code{-u} +is repeated, then @i{Amd} will attempt to unmount the filesystem +synchronously. This makes things like + +@example +amq -uu /t/cd0d && eject cd0 +@end example + +@noindent +work as expected. Any error messages this might produce can be +suppressed with the @code{-q} option. See @ref{Amq -q option}. @c The @code{-H} option informs @i{Amd} that the specified mount point @c has hung - as if its keepalive timer had expired. @@ -5769,11 +5850,10 @@ as a whole, rather than any particular filesystem. The @code{-x} and @code{-D} options have exactly the same effect as @i{Amd}'s corresponding command line options. -When @i{Amd} receives a @code{-x} flag it limits the log options being -modified to those which were not enabled at startup. This prevents a -user turning @emph{off} any logging option which was specified at -startup, though any which have been turned on since then can still be -turned off. The @code{-D} option has a similar behavior. +When @i{Amd} receives the @code{-x} flag, it disallows turning off the +@samp{fatal} or @samp{error} flags. Both are on by default. They are +mandatory so that @i{Amd} could report important errors, including +errors relating to turning flags on/off. @c ################################################################ @node FSinfo, Hlfsd, Run-time Administration, Top @@ -6904,8 +6984,8 @@ symbolic link to subdirectory within a user's home directory, depending on the user which accessed that link. It was primarily designed to redirect incoming mail to users' home directories, so that it can be read from anywhere. It was designed and implemented by -@email{ezk@@cs.columbia.edu,Erez Zadok} and -@email{dupuy@@cs.columbia.edu,Alexander Dupuy}, at the +@uref{http://www.cs.sunysb.edu/~ezk,Erez Zadok} and +@email{dupuy AT cs.columbia.edu,Alexander Dupuy}, at the @uref{http://www.cs.columbia.edu/,Computer Science Department} of @uref{http://www.columbia.edu/,Columbia University}. A @uref{http://www.fsl.cs.sunysb.edu/docs/hlfsd/hlfsd.html,paper} @@ -7522,7 +7602,6 @@ am-utils, and get installed. * automount2amd:: * ctl-amd:: * ctl-hlfsd:: -* expn:: * fix-amd-map:: * fixmount:: * fixrmtab:: @@ -7649,7 +7728,7 @@ then start a new process --- only if the previous one died cleanly. @xref{Run-time Administration}, for more details. @c ---------------------------------------------------------------- -@node ctl-hlfsd, expn, ctl-amd, Assorted Tools +@node ctl-hlfsd, fix-amd-map, ctl-amd, Assorted Tools @comment node-name, next, previous, up @section ctl-hlfsd @pindex ctl-hlfsd @@ -7671,27 +7750,7 @@ died cleanly. @xref{Hlfsd}, for more details. @c ---------------------------------------------------------------- -@node expn, fix-amd-map, ctl-hlfsd, Assorted Tools -@comment node-name, next, previous, up -@section expn -@pindex expn - -A script to expand email addresses into their full name. It is -generally useful when using with the @file{lostaltmail} script, but is a -useful tools otherwise. - -@example -$ expn -v ezk@@cs.columbia.edu -ezk@@cs.columbia.edu -> - ezk@@shekel.mcl.cs.columbia.edu -ezk@@shekel.mcl.cs.columbia.edu -> - Erez Zadok <"| /usr/local/mh/lib/slocal -user ezk || exit 75> - Erez Zadok <\ezk> - Erez Zadok </u/zing/ezk/.mailspool/backup> -@end example - -@c ---------------------------------------------------------------- -@node fix-amd-map, fixmount, expn, Assorted Tools +@node fix-amd-map, fixmount, ctl-hlfsd, Assorted Tools @comment node-name, next, previous, up @section fix-amd-map @pindex fix-amd-map @@ -8581,7 +8640,7 @@ XXX: This section needs to be updated @comment node-name, next, previous, up @unnumbered Acknowledgments & Trademarks -Many thanks to the @email{am-utils@@am-utils.org,Am-Utils Users} +Many thanks to the Am-Utils Users mailing list through the months developing am-utils. These members have contributed to the discussions, ideas, code and documentation, and subjected their systems to alpha quality code. Special thanks go @@ -8589,10 +8648,10 @@ to those @uref{http://www.am-utils.org/docs/am-utils/AUTHORS.txt,authors} who ha submitted patches, and especially to the maintainers: @itemize @bullet -@item @email{ezk@@cs.sunysb.edu,Erez Zadok} -@item @email{ib42@@cs.columbia.edu,Ion Badulescu} -@item @email{ro@@techfak.uni-bielefeld.de,Rainer Orth} -@item @email{nick.williams@@morganstanley.com,Nick Williams} +@item @uref{http://www.cs.sunysb.edu/~ezk,Erez Zadok} +@item @email{ionut AT badula.org,Ion Badulescu} +@item @email{ro AT techfak.uni-bielefeld.de,Rainer Orth} +@item @email{nick.williams AT morganstanley.com,Nick Williams} @end itemize Thanks to the Formal Methods Group at Imperial College for suffering @@ -8602,7 +8661,7 @@ Thanks to the many people who have helped with the development of @i{Amd}, especially Piete Brooks at the Cambridge University Computing Lab for many hours of testing, experimentation and discussion. -Thanks to the older @email{amd-workers@@majordomo.glue.umd.edu,Amd +Thanks to the older @email{amd-workers AT majordomo.glue.umd.edu,Amd Workers} mailing list (now defunct) members for many suggestions and bug reports to @i{Amd}. diff --git a/contrib/amd/doc/stamp-vti b/contrib/amd/doc/stamp-vti index 41b19a3..9a4feda 100644 --- a/contrib/amd/doc/stamp-vti +++ b/contrib/amd/doc/stamp-vti @@ -1,4 +1,4 @@ -@set UPDATED 20 April 2006 -@set UPDATED-MONTH April 2006 -@set EDITION 6.1.5 -@set VERSION 6.1.5 +@set UPDATED 28 October 2014 +@set UPDATED-MONTH October 2014 +@set EDITION 6.2 +@set VERSION 6.2 diff --git a/contrib/amd/doc/texinfo.tex b/contrib/amd/doc/texinfo.tex index e758ced..85f184c 100644 --- a/contrib/amd/doc/texinfo.tex +++ b/contrib/amd/doc/texinfo.tex @@ -1,18 +1,18 @@ % texinfo.tex -- TeX macros to handle Texinfo files. -% +% % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2004-09-06.16} +\def\texinfoversion{2013-02-01.11} % -% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, -% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software -% Foundation, Inc. +% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, +% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, +% 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc. % -% This texinfo.tex file is free software; you can redistribute it and/or +% This texinfo.tex file is free software: you can redistribute it and/or % modify it under the terms of the GNU General Public License as -% published by the Free Software Foundation; either version 2, or (at -% your option) any later version. +% published by the Free Software Foundation, either version 3 of the +% License, or (at your option) any later version. % % This texinfo.tex file is distributed in the hope that it will be % useful, but WITHOUT ANY WARRANTY; without even the implied warranty @@ -20,19 +20,18 @@ % General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with this texinfo.tex file; see the file COPYING. If not, write -% to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -% Boston, MA 02111-1307, USA. +% along with this program. If not, see <http://www.gnu.org/licenses/>. % % As a special exception, when this file is read by TeX when processing % a Texinfo source document, you may use the result without -% restriction. (This has been our intent since Texinfo was invented.) +% restriction. This Exception is an additional permission under section 7 +% of the GNU General Public License, version 3 ("GPLv3"). % % Please try the latest version of texinfo.tex before submitting bug % reports; you can get the latest version from: -% http://www.gnu.org/software/texinfo/ (the Texinfo home page), or -% ftp://tug.org/tex/texinfo.tex -% (and all CTAN mirrors, see http://www.ctan.org). +% http://ftp.gnu.org/gnu/texinfo/ (the Texinfo release area), or +% http://ftpmirror.gnu.org/texinfo/ (same, via a mirror), or +% http://www.gnu.org/software/texinfo/ (the Texinfo home page) % The texinfo.tex in any given distribution could well be out % of date, so if that's what you're using, please check. % @@ -67,7 +66,6 @@ \everyjob{\message{[Texinfo version \texinfoversion]}% \catcode`+=\active \catcode`\_=\active} -\message{Basics,} \chardef\other=12 % We never want plain's \outer definition of \+ in Texinfo. @@ -89,15 +87,19 @@ \let\ptexhat=^ \let\ptexi=\i \let\ptexindent=\indent -\let\ptexnoindent=\noindent \let\ptexinsert=\insert \let\ptexlbrace=\{ \let\ptexless=< +\let\ptexnewwrite\newwrite +\let\ptexnoindent=\noindent \let\ptexplus=+ +\let\ptexraggedright=\raggedright \let\ptexrbrace=\} \let\ptexslash=\/ \let\ptexstar=\* \let\ptext=\t +\let\ptextop=\top +{\catcode`\'=\active \global\let\ptexquoteright'}% active in plain's math mode % If this character appears in an error message or help string, it % starts a new line in the output. @@ -115,10 +117,11 @@ % Set up fixed words for English if not already set. \ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi \ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi +\ifx\putworderror\undefined \gdef\putworderror{error}\fi \ifx\putwordfile\undefined \gdef\putwordfile{file}\fi \ifx\putwordin\undefined \gdef\putwordin{in}\fi -\ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi -\ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi +\ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi +\ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi \ifx\putwordInfo\undefined \gdef\putwordInfo{Info}\fi \ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi \ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi @@ -152,20 +155,25 @@ \ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi \ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi -% In some macros, we cannot use the `\? notation---the left quote is -% in some cases the escape char. +% Since the category of space is not known, we have to be careful. +\chardef\spacecat = 10 +\def\spaceisspace{\catcode`\ =\spacecat} + +% sometimes characters are active, so we need control sequences. +\chardef\ampChar = `\& \chardef\colonChar = `\: \chardef\commaChar = `\, +\chardef\dashChar = `\- \chardef\dotChar = `\. \chardef\exclamChar= `\! +\chardef\hashChar = `\# +\chardef\lquoteChar= `\` \chardef\questChar = `\? +\chardef\rquoteChar= `\' \chardef\semiChar = `\; +\chardef\slashChar = `\/ \chardef\underChar = `\_ -\chardef\spaceChar = `\ % -\chardef\spacecat = 10 -\def\spaceisspace{\catcode\spaceChar=\spacecat} - % Ignore a token. % \def\gobble#1{} @@ -194,36 +202,7 @@ % that mark overfull boxes (in case you have decided % that the text looks ok even though it passes the margin). % -\def\finalout{\overfullrule=0pt} - -% @| inserts a changebar to the left of the current line. It should -% surround any changed text. This approach does *not* work if the -% change spans more than two lines of output. To handle that, we would -% have adopt a much more difficult approach (putting marks into the main -% vertical list for the beginning and end of each change). -% -\def\|{% - % \vadjust can only be used in horizontal mode. - \leavevmode - % - % Append this vertical mode material after the current line in the output. - \vadjust{% - % We want to insert a rule with the height and depth of the current - % leading; that is exactly what \strutbox is supposed to record. - \vskip-\baselineskip - % - % \vadjust-items are inserted at the left edge of the type. So - % the \llap here moves out into the left-hand margin. - \llap{% - % - % For a thicker or thinner bar, change the `1pt'. - \vrule height\baselineskip width1pt - % - % This is the space between the bar and the text. - \hskip 12pt - }% - }% -} +\def\finalout{\overfullrule=0pt } % Sometimes it is convenient to have everything in the transcript file % and nothing on the terminal. We don't just call \tracingall here, @@ -241,7 +220,7 @@ \tracingmacros2 \tracingrestores1 \showboxbreadth\maxdimen \showboxdepth\maxdimen - \ifx\eTeXversion\undefined\else % etex gives us more logging + \ifx\eTeXversion\thisisundefined\else % etex gives us more logging \tracingscantokens1 \tracingifs1 \tracinggroups1 @@ -252,6 +231,13 @@ \errorcontextlines16 }% +% @errormsg{MSG}. Do the index-like expansions on MSG, but if things +% aren't perfect, it's not the end of the world, being an error message, +% after all. +% +\def\errormsg{\begingroup \indexnofonts \doerrormsg} +\def\doerrormsg#1{\errmessage{#1}} + % add check for \lastpenalty to plain's definitions. If the last thing % we did was a \nobreak, we don't want to insert more space. % @@ -262,7 +248,6 @@ \def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount \removelastskip\penalty-200\bigskip\fi\fi} -% For @cropmarks command. % Do @cropmarks to get crop marks. % \newif\ifcropmarks @@ -276,6 +261,50 @@ \newdimen\cornerthick \cornerthick=.3pt \newdimen\topandbottommargin \topandbottommargin=.75in +% Output a mark which sets \thischapter, \thissection and \thiscolor. +% We dump everything together because we only have one kind of mark. +% This works because we only use \botmark / \topmark, not \firstmark. +% +% A mark contains a subexpression of the \ifcase ... \fi construct. +% \get*marks macros below extract the needed part using \ifcase. +% +% Another complication is to let the user choose whether \thischapter +% (\thissection) refers to the chapter (section) in effect at the top +% of a page, or that at the bottom of a page. The solution is +% described on page 260 of The TeXbook. It involves outputting two +% marks for the sectioning macros, one before the section break, and +% one after. I won't pretend I can describe this better than DEK... +\def\domark{% + \toks0=\expandafter{\lastchapterdefs}% + \toks2=\expandafter{\lastsectiondefs}% + \toks4=\expandafter{\prevchapterdefs}% + \toks6=\expandafter{\prevsectiondefs}% + \toks8=\expandafter{\lastcolordefs}% + \mark{% + \the\toks0 \the\toks2 + \noexpand\or \the\toks4 \the\toks6 + \noexpand\else \the\toks8 + }% +} +% \topmark doesn't work for the very first chapter (after the title +% page or the contents), so we use \firstmark there -- this gets us +% the mark with the chapter defs, unless the user sneaks in, e.g., +% @setcolor (or @url, or @link, etc.) between @contents and the very +% first @chapter. +\def\gettopheadingmarks{% + \ifcase0\topmark\fi + \ifx\thischapter\empty \ifcase0\firstmark\fi \fi +} +\def\getbottomheadingmarks{\ifcase1\botmark\fi} +\def\getcolormarks{\ifcase2\topmark\fi} + +% Avoid "undefined control sequence" errors. +\def\lastchapterdefs{} +\def\lastsectiondefs{} +\def\prevchapterdefs{} +\def\prevsectiondefs{} +\def\lastcolordefs{} + % Main output routine. \chardef\PAGE = 255 \output = {\onepageout{\pagecontents\PAGE}} @@ -293,7 +322,9 @@ % % Do this outside of the \shipout so @code etc. will be expanded in % the headline as they should be, not taken literally (outputting ''code). + \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}% + \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}% % {% @@ -301,10 +332,14 @@ % take effect in \write's, yet the group defined by the \vbox ends % before the \shipout runs. % - \escapechar = `\\ % use backslash in output files. \indexdummies % don't expand commands in the output. \normalturnoffactive % \ in index entries must not stay \, e.g., if - % the page break happens to be in the middle of an example. + % the page break happens to be in the middle of an example. + % We don't want .vr (or whatever) entries like this: + % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}} + % "\acronym" won't work when it's read back in; + % it needs to be + % {\code {{\tt \backslashcurfont }acronym} \shipout\vbox{% % Do this early so pdf references go to the beginning of the page. \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi @@ -332,9 +367,9 @@ \pagebody{#1}% \ifdim\ht\footlinebox > 0pt % Only leave this space if the footline is nonempty. - % (We lessened \vsize for it in \oddfootingxxx.) + % (We lessened \vsize for it in \oddfootingyyy.) % The \baselineskip=24pt in plain's \makefootline has no effect. - \vskip 2\baselineskip + \vskip 24pt \unvbox\footlinebox \fi % @@ -355,7 +390,7 @@ \egroup % \vbox from first cropmarks clause \fi }% end of \shipout\vbox - }% end of group with \normalturnoffactive + }% end of group with \indexdummies \advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi } @@ -368,7 +403,7 @@ % marginal hacks, juha@viisa.uucp (Juha Takala) \ifvoid\margin\else % marginal info is present \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi -\dimen@=\dp#1 \unvbox#1 +\dimen@=\dp#1\relax \unvbox#1\relax \ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi \ifr@ggedbottom \kern-\dimen@ \vfil \fi} } @@ -390,7 +425,7 @@ % \def\parsearg{\parseargusing{}} \def\parseargusing#1#2{% - \def\next{#2}% + \def\argtorun{#2}% \begingroup \obeylines \spaceisspace @@ -409,7 +444,7 @@ \def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm} \def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm} -% Each occurence of `\^^M' or `<space>\^^M' is replaced by a single space. +% Each occurrence of `\^^M' or `<space>\^^M' is replaced by a single space. % % \argremovec might leave us with trailing space, e.g., % @end itemize @c foo @@ -421,8 +456,7 @@ \def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{% \def\temp{#3}% \ifx\temp\empty - % We cannot use \next here, as it holds the macro to run; - % thus we reuse \temp. + % Do not use \next, perhaps the caller of \parsearg uses it; reuse \temp: \let\temp\finishparsearg \else \let\temp\argcheckspaces @@ -434,14 +468,14 @@ % If a _delimited_ argument is enclosed in braces, they get stripped; so % to get _exactly_ the rest of the line, we had to prevent such situation. % We prepended an \empty token at the very beginning and we expand it now, -% just before passing the control to \next. -% (Similarily, we have to think about #3 of \argcheckspacesY above: it is +% just before passing the control to \argtorun. +% (Similarly, we have to think about #3 of \argcheckspacesY above: it is % either the null string, or it ends with \^^M---thus there is no danger % that a pair of braces would be stripped. % % But first, we have to remove the trailing space token. % -\def\finishparsearg#1 \ArgTerm{\expandafter\next\expandafter{#1}} +\def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}} % \parseargdef\foo{...} % is roughly equivalent to @@ -492,12 +526,12 @@ % used to check whether the current environment is the one expected. % % Non-false conditionals (@iftex, @ifset) don't fit into this, so they -% are not treated as enviroments; they don't open a group. (The +% are not treated as environments; they don't open a group. (The % implementation of @end takes care not to call \endgroup in this % special case.) -% At runtime, environments start with this: +% At run-time, environments start with this: \def\startenvironment#1{\begingroup\def\thisenv{#1}} % initialize \let\thisenv\empty @@ -515,7 +549,7 @@ \fi } -% Evironment mismatch, #1 expected: +% Environment mismatch, #1 expected: \def\badenverr{% \errhelp = \EMsimple \errmessage{This command can appear only \inenvironment\temp, @@ -523,7 +557,7 @@ } \def\inenvironment#1{% \ifx#1\empty - out of any environment% + outside of any environment% \else in environment \expandafter\string#1% \fi @@ -535,7 +569,7 @@ \parseargdef\end{% \if 1\csname iscond.#1\endcsname \else - % The general wording of \badenverr may not be ideal, but... --kasal, 06nov03 + % The general wording of \badenverr may not be ideal. \expandafter\checkenv\csname#1\endcsname \csname E#1\endcsname \endgroup @@ -545,85 +579,6 @@ \newhelp\EMsimple{Press RETURN to continue.} -%% Simple single-character @ commands - -% @@ prints an @ -% Kludge this until the fonts are right (grr). -\def\@{{\tt\char64}} - -% This is turned off because it was never documented -% and you can use @w{...} around a quote to suppress ligatures. -%% Define @` and @' to be the same as ` and ' -%% but suppressing ligatures. -%\def\`{{`}} -%\def\'{{'}} - -% Used to generate quoted braces. -\def\mylbrace {{\tt\char123}} -\def\myrbrace {{\tt\char125}} -\let\{=\mylbrace -\let\}=\myrbrace -\begingroup - % Definitions to produce \{ and \} commands for indices, - % and @{ and @} for the aux file. - \catcode`\{ = \other \catcode`\} = \other - \catcode`\[ = 1 \catcode`\] = 2 - \catcode`\! = 0 \catcode`\\ = \other - !gdef!lbracecmd[\{]% - !gdef!rbracecmd[\}]% - !gdef!lbraceatcmd[@{]% - !gdef!rbraceatcmd[@}]% -!endgroup - -% @comma{} to avoid , parsing problems. -\let\comma = , - -% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent -% Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H. -\let\, = \c -\let\dotaccent = \. -\def\ringaccent#1{{\accent23 #1}} -\let\tieaccent = \t -\let\ubaraccent = \b -\let\udotaccent = \d - -% Other special characters: @questiondown @exclamdown @ordf @ordm -% Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss. -\def\questiondown{?`} -\def\exclamdown{!`} -\def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}} -\def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}} - -% Dotless i and dotless j, used for accents. -\def\imacro{i} -\def\jmacro{j} -\def\dotless#1{% - \def\temp{#1}% - \ifx\temp\imacro \ptexi - \else\ifx\temp\jmacro \j - \else \errmessage{@dotless can be used only with i or j}% - \fi\fi -} - -% The \TeX{} logo, as in plain, but resetting the spacing so that a -% period following counts as ending a sentence. (Idea found in latex.) -% -\edef\TeX{\TeX \spacefactor=1000 } - -% @LaTeX{} logo. Not quite the same results as the definition in -% latex.ltx, since we use a different font for the raised A; it's most -% convenient for us to use an explicitly smaller font, rather than using -% the \scriptstyle font (since we don't reset \scriptstyle and -% \scriptscriptstyle). -% -\def\LaTeX{% - L\kern-.36em - {\setbox0=\hbox{T}% - \vbox to \ht0{\hbox{\selectfonts\lllsize A}\vss}}% - \kern-.15em - \TeX -} - % Be sure we're in horizontal mode when doing a tie, since we make space % equivalent to this in @example-like environments. Otherwise, a space % at the beginning of a line will start with \penalty -- and @@ -640,19 +595,34 @@ \def\:{\spacefactor=1000 } % @* forces a line break. -\def\*{\hfil\break\hbox{}\ignorespaces} +\def\*{\unskip\hfil\break\hbox{}\ignorespaces} % @/ allows a line break. \let\/=\allowbreak % @. is an end-of-sentence period. -\def\.{.\spacefactor=3000 } +\def\.{.\spacefactor=\endofsentencespacefactor\space} % @! is an end-of-sentence bang. -\def\!{!\spacefactor=3000 } +\def\!{!\spacefactor=\endofsentencespacefactor\space} % @? is an end-of-sentence query. -\def\?{?\spacefactor=3000 } +\def\?{?\spacefactor=\endofsentencespacefactor\space} + +% @frenchspacing on|off says whether to put extra space after punctuation. +% +\def\onword{on} +\def\offword{off} +% +\parseargdef\frenchspacing{% + \def\temp{#1}% + \ifx\temp\onword \plainfrenchspacing + \else\ifx\temp\offword \plainnonfrenchspacing + \else + \errhelp = \EMsimple + \errmessage{Unknown @frenchspacing option `\temp', must be on|off}% + \fi\fi +} % @w prevents a word break. Without the \leavevmode, @w at the % beginning of a paragraph, when TeX is still in vertical mode, would @@ -732,15 +702,6 @@ where each line of input produces a line of output.} \newdimen\mil \mil=0.001in -% Old definition--didn't work. -%\parseargdef\need{\par % -%% This method tries to make TeX break the page naturally -%% if the depth of the box does not fit. -%{\baselineskip=0pt% -%\vtop to #1\mil{\vfil}\kern -#1\mil\nobreak -%\prevdepth=-1000pt -%}} - \parseargdef\need{% % Ensure vertical mode, so we don't make a big box in the middle of a % paragraph. @@ -804,7 +765,7 @@ where each line of input produces a line of output.} % @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current % paragraph. For more general purposes, use the \margin insertion -% class. WHICH is `l' or `r'. +% class. WHICH is `l' or `r'. Not documented, written for gawk manual. % \newskip\inmarginspacing \inmarginspacing=1cm \def\strutdepth{\dp\strutbox} @@ -851,15 +812,51 @@ where each line of input produces a line of output.} \temp } -% @include file insert text of that file as input. +% @| inserts a changebar to the left of the current line. It should +% surround any changed text. This approach does *not* work if the +% change spans more than two lines of output. To handle that, we would +% have adopt a much more difficult approach (putting marks into the main +% vertical list for the beginning and end of each change). This command +% is not documented, not supported, and doesn't work. +% +\def\|{% + % \vadjust can only be used in horizontal mode. + \leavevmode + % + % Append this vertical mode material after the current line in the output. + \vadjust{% + % We want to insert a rule with the height and depth of the current + % leading; that is exactly what \strutbox is supposed to record. + \vskip-\baselineskip + % + % \vadjust-items are inserted at the left edge of the type. So + % the \llap here moves out into the left-hand margin. + \llap{% + % + % For a thicker or thinner bar, change the `1pt'. + \vrule height\baselineskip width1pt + % + % This is the space between the bar and the text. + \hskip 12pt + }% + }% +} + +% @include FILE -- \input text of FILE. % \def\include{\parseargusing\filenamecatcodes\includezzz} \def\includezzz#1{% \pushthisfilestack \def\thisfile{#1}% {% - \makevalueexpandable - \def\temp{\input #1 }% + \makevalueexpandable % we want to expand any @value in FILE. + \turnoffactive % and allow special characters in the expansion + \indexnofonts % Allow `@@' and other weird things in file names. + \wlog{texinfo.tex: doing @include of #1^^J}% + \edef\temp{\noexpand\input #1 }% + % + % This trickery is to read FILE outside of a group, in case it makes + % definitions, etc. \expandafter }\temp \popthisfilestack @@ -874,6 +871,8 @@ where each line of input produces a line of output.} \catcode`>=\other \catcode`+=\other \catcode`-=\other + \catcode`\`=\other + \catcode`\'=\other } \def\pushthisfilestack{% @@ -889,7 +888,7 @@ where each line of input produces a line of output.} \def\popthisfilestack{\errthisfilestackempty} \def\errthisfilestackempty{\errmessage{Internal error: the stack of filenames is empty.}} - +% \def\thisfile{} % @center line @@ -897,36 +896,46 @@ where each line of input produces a line of output.} % \parseargdef\center{% \ifhmode - \let\next\centerH + \let\centersub\centerH \else - \let\next\centerV + \let\centersub\centerV \fi - \next{\hfil \ignorespaces#1\unskip \hfil}% + \centersub{\hfil \ignorespaces#1\unskip \hfil}% + \let\centersub\relax % don't let the definition persist, just in case } -\def\centerH#1{% - {% - \hfil\break - \advance\hsize by -\leftskip - \advance\hsize by -\rightskip - \line{#1}% - \break - }% +\def\centerH#1{{% + \hfil\break + \advance\hsize by -\leftskip + \advance\hsize by -\rightskip + \line{#1}% + \break +}} +% +\newcount\centerpenalty +\def\centerV#1{% + % The idea here is the same as in \startdefun, \cartouche, etc.: if + % @center is the first thing after a section heading, we need to wipe + % out the negative parskip inserted by \sectionheading, but still + % prevent a page break here. + \centerpenalty = \lastpenalty + \ifnum\centerpenalty>10000 \vskip\parskip \fi + \ifnum\centerpenalty>9999 \penalty\centerpenalty \fi + \line{\kern\leftskip #1\kern\rightskip}% } -\def\centerV#1{\line{\kern\leftskip #1\kern\rightskip}} % @sp n outputs n lines of vertical space - +% \parseargdef\sp{\vskip #1\baselineskip} % @comment ...line which is ignored... % @c is the same as @comment % @ignore ... @end ignore is another way to write a comment - +% \def\comment{\begingroup \catcode`\^^M=\other% \catcode`\@=\other \catcode`\{=\other \catcode`\}=\other% \commentxxx} {\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}} - +% \let\c=\comment % @paragraphindent NCHARS @@ -1019,86 +1028,6 @@ where each line of input produces a line of output.} } -% @asis just yields its argument. Used with @table, for example. -% -\def\asis#1{#1} - -% @math outputs its argument in math mode. -% -% One complication: _ usually means subscripts, but it could also mean -% an actual _ character, as in @math{@var{some_variable} + 1}. So make -% _ active, and distinguish by seeing if the current family is \slfam, -% which is what @var uses. -{ - \catcode\underChar = \active - \gdef\mathunderscore{% - \catcode\underChar=\active - \def_{\ifnum\fam=\slfam \_\else\sb\fi}% - } -} -% Another complication: we want \\ (and @\) to output a \ character. -% FYI, plain.tex uses \\ as a temporary control sequence (why?), but -% this is not advertised and we don't care. Texinfo does not -% otherwise define @\. -% -% The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\. -\def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi} -% -\def\math{% - \tex - \mathunderscore - \let\\ = \mathbackslash - \mathactive - $\finishmath -} -\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex. - -% Some active characters (such as <) are spaced differently in math. -% We have to reset their definitions in case the @math was an argument -% to a command which sets the catcodes (such as @item or @section). -% -{ - \catcode`^ = \active - \catcode`< = \active - \catcode`> = \active - \catcode`+ = \active - \gdef\mathactive{% - \let^ = \ptexhat - \let< = \ptexless - \let> = \ptexgtr - \let+ = \ptexplus - } -} - -% @bullet and @minus need the same treatment as @math, just above. -\def\bullet{$\ptexbullet$} -\def\minus{$-$} - -% @dots{} outputs an ellipsis using the current font. -% We do .5em per period so that it has the same spacing in a typewriter -% font as three actual period characters. -% -\def\dots{% - \leavevmode - \hbox to 1.5em{% - \hskip 0pt plus 0.25fil - .\hfil.\hfil.% - \hskip 0pt plus 0.5fil - }% -} - -% @enddots{} is an end-of-sentence ellipsis. -% -\def\enddots{% - \dots - \spacefactor=3000 -} - -% @comma{} is so commas can be inserted into text without messing up -% Texinfo's parsing. -% -\let\comma = , - % @refill is a no-op. \let\refill=\relax @@ -1163,9 +1092,8 @@ where each line of input produces a line of output.} \newif\ifpdfmakepagedest % when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1 -% can be set). So we test for \relax and 0 as well as \undefined, -% borrowed from ifpdf.sty. -\ifx\pdfoutput\undefined +% can be set). So we test for \relax and 0 as well as being undefined. +\ifx\pdfoutput\thisisundefined \else \ifx\pdfoutput\relax \else @@ -1175,40 +1103,157 @@ where each line of input produces a line of output.} \fi \fi \fi -% + +% PDF uses PostScript string constants for the names of xref targets, +% for display in the outlines, and in other places. Thus, we have to +% double any backslashes. Otherwise, a name like "\node" will be +% interpreted as a newline (\n), followed by o, d, e. Not good. +% +% See http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html and +% related messages. The final outcome is that it is up to the TeX user +% to double the backslashes and otherwise make the string valid, so +% that's what we do. pdftex 1.30.0 (ca.2005) introduced a primitive to +% do this reliably, so we use it. + +% #1 is a control sequence in which to do the replacements, +% which we \xdef. +\def\txiescapepdf#1{% + \ifx\pdfescapestring\thisisundefined + % No primitive available; should we give a warning or log? + % Many times it won't matter. + \else + % The expandable \pdfescapestring primitive escapes parentheses, + % backslashes, and other special chars. + \xdef#1{\pdfescapestring{#1}}% + \fi +} + +\newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images +with PDF output, and none of those formats could be found. (.eps cannot +be supported due to the design of the PDF format; use regular TeX (DVI +output) for that.)} + \ifpdf - \input pdfcolor - \pdfcatalog{/PageMode /UseOutlines}% + % + % Color manipulation macros based on pdfcolor.tex, + % except using rgb instead of cmyk; the latter is said to render as a + % very dark gray on-screen and a very dark halftone in print, instead + % of actual black. + \def\rgbDarkRed{0.50 0.09 0.12} + \def\rgbBlack{0 0 0} + % + % k sets the color for filling (usual text, etc.); + % K sets the color for stroking (thin rules, e.g., normal _'s). + \def\pdfsetcolor#1{\pdfliteral{#1 rg #1 RG}} + % + % Set color, and create a mark which defines \thiscolor accordingly, + % so that \makeheadline knows which color to restore. + \def\setcolor#1{% + \xdef\lastcolordefs{\gdef\noexpand\thiscolor{#1}}% + \domark + \pdfsetcolor{#1}% + } + % + \def\maincolor{\rgbBlack} + \pdfsetcolor{\maincolor} + \edef\thiscolor{\maincolor} + \def\lastcolordefs{} + % + \def\makefootline{% + \baselineskip24pt + \line{\pdfsetcolor{\maincolor}\the\footline}% + } + % + \def\makeheadline{% + \vbox to 0pt{% + \vskip-22.5pt + \line{% + \vbox to8.5pt{}% + % Extract \thiscolor definition from the marks. + \getcolormarks + % Typeset the headline with \maincolor, then restore the color. + \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}% + }% + \vss + }% + \nointerlineskip + } + % + % + \pdfcatalog{/PageMode /UseOutlines} + % + % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto). \def\dopdfimage#1#2#3{% - \def\imagewidth{#2}% - \def\imageheight{#3}% - % without \immediate, pdftex seg faults when the same image is + \def\pdfimagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% + \def\pdfimageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% + % + % pdftex (and the PDF format) support .pdf, .png, .jpg (among + % others). Let's try in that order, PDF first since if + % someone has a scalable image, presumably better to use that than a + % bitmap. + \let\pdfimgext=\empty + \begingroup + \openin 1 #1.pdf \ifeof 1 + \openin 1 #1.PDF \ifeof 1 + \openin 1 #1.png \ifeof 1 + \openin 1 #1.jpg \ifeof 1 + \openin 1 #1.jpeg \ifeof 1 + \openin 1 #1.JPG \ifeof 1 + \errhelp = \nopdfimagehelp + \errmessage{Could not find image file #1 for pdf}% + \else \gdef\pdfimgext{JPG}% + \fi + \else \gdef\pdfimgext{jpeg}% + \fi + \else \gdef\pdfimgext{jpg}% + \fi + \else \gdef\pdfimgext{png}% + \fi + \else \gdef\pdfimgext{PDF}% + \fi + \else \gdef\pdfimgext{pdf}% + \fi + \closein 1 + \endgroup + % + % without \immediate, ancient pdftex seg faults when the same image is % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.) \ifnum\pdftexversion < 14 \immediate\pdfimage \else \immediate\pdfximage \fi - \ifx\empty\imagewidth\else width \imagewidth \fi - \ifx\empty\imageheight\else height \imageheight \fi + \ifdim \wd0 >0pt width \pdfimagewidth \fi + \ifdim \wd2 >0pt height \pdfimageheight \fi \ifnum\pdftexversion<13 - #1.pdf% + #1.\pdfimgext \else - {#1.pdf}% + {#1.\pdfimgext}% \fi \ifnum\pdftexversion < 14 \else \pdfrefximage \pdflastximage \fi} + % \def\pdfmkdest#1{{% - % We have to set dummies so commands such as @code in a section title - % aren't expanded. - \atdummies - \normalturnoffactive - \pdfdest name{#1} xyz% + % We have to set dummies so commands such as @code, and characters + % such as \, aren't expanded when present in a section title. + \indexnofonts + \turnoffactive + \makevalueexpandable + \def\pdfdestname{#1}% + \txiescapepdf\pdfdestname + \safewhatsit{\pdfdest name{\pdfdestname} xyz}% }} + % + % used to mark target names; must be expandable. \def\pdfmkpgn#1{#1} - \let\linkcolor = \Blue % was Cyan, but that seems light? - \def\endlink{\Black\pdfendlink} + % + % by default, use a color that is dark enough to print on paper as + % nearly black, but still distinguishable for online viewing. + \def\urlcolor{\rgbDarkRed} + \def\linkcolor{\rgbDarkRed} + \def\endlink{\setcolor{\maincolor}\pdfendlink} + % % Adding outlines to PDF; macros for calculating structure of outlines % come from Petr Olsak \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0% @@ -1217,38 +1262,44 @@ where each line of input produces a line of output.} \advance\tempnum by 1 \expandafter\xdef\csname#1\endcsname{\the\tempnum}} % - % #1 is the section text. #2 is the pdf expression for the number - % of subentries (or empty, for subsubsections). #3 is the node - % text, which might be empty if this toc entry had no - % corresponding node. #4 is the page number. + % #1 is the section text, which is what will be displayed in the + % outline by the pdf viewer. #2 is the pdf expression for the number + % of subentries (or empty, for subsubsections). #3 is the node text, + % which might be empty if this toc entry had no corresponding node. + % #4 is the page number % \def\dopdfoutline#1#2#3#4{% % Generate a link to the node text if that exists; else, use the % page number. We could generate a destination for the section % text in the case where a section has no node, but it doesn't - % seem worthwhile, since most documents are normally structured. - \def\pdfoutlinedest{#3}% - \ifx\pdfoutlinedest\empty \def\pdfoutlinedest{#4}\fi + % seem worth the trouble, since most documents are normally structured. + \edef\pdfoutlinedest{#3}% + \ifx\pdfoutlinedest\empty + \def\pdfoutlinedest{#4}% + \else + \txiescapepdf\pdfoutlinedest + \fi + % + % Also escape PDF chars in the display string. + \edef\pdfoutlinetext{#1}% + \txiescapepdf\pdfoutlinetext % - \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{#1}% + \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}% } % \def\pdfmakeoutlines{% \begingroup - % Thanh's hack / proper braces in bookmarks - \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace - \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace - % % Read toc silently, to get counts of subentries for \pdfoutline. + \def\partentry##1##2##3##4{}% ignore parts in the outlines \def\numchapentry##1##2##3##4{% \def\thischapnum{##2}% - \let\thissecnum\empty - \let\thissubsecnum\empty + \def\thissecnum{0}% + \def\thissubsecnum{0}% }% \def\numsecentry##1##2##3##4{% \advancenumber{chap\thischapnum}% \def\thissecnum{##2}% - \let\thissubsecnum\empty + \def\thissubsecnum{0}% }% \def\numsubsecentry##1##2##3##4{% \advancenumber{sec\thissecnum}% @@ -1257,9 +1308,9 @@ where each line of input produces a line of output.} \def\numsubsubsecentry##1##2##3##4{% \advancenumber{subsec\thissubsecnum}% }% - \let\thischapnum\empty - \let\thissecnum\empty - \let\thissubsecnum\empty + \def\thischapnum{0}% + \def\thissecnum{0}% + \def\thissubsecnum{0}% % % use \def rather than \let here because we redefine \chapentry et % al. a second time, below. @@ -1271,7 +1322,7 @@ where each line of input produces a line of output.} \def\unnsecentry{\numsecentry}% \def\unnsubsecentry{\numsubsecentry}% \def\unnsubsubsecentry{\numsubsubsecentry}% - \input \jobname.toc + \readdatafile{toc}% % % Read toc second time, this time actually producing the outlines. % The `-' means take the \expnumber as the absolute number of @@ -1293,64 +1344,63 @@ where each line of input produces a line of output.} % Latin 2 (0xea) gets translated to a | character. Info from % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100. % - % xx to do this right, we have to translate 8-bit characters to - % their "best" equivalent, based on the @documentencoding. Right - % now, I guess we'll just let the pdf reader have its way. + % TODO this right, we have to translate 8-bit characters to + % their "best" equivalent, based on the @documentencoding. Too + % much work for too little return. Just use the ASCII equivalents + % we use for the index sort strings. + % \indexnofonts - \turnoffactive - \input \jobname.toc + \setupdatafile + % We can have normal brace characters in the PDF outlines, unlike + % Texinfo index files. So set that up. + \def\{{\lbracecharliteral}% + \def\}{\rbracecharliteral}% + \catcode`\\=\active \otherbackslash + \input \tocreadfilename \endgroup } + {\catcode`[=1 \catcode`]=2 + \catcode`{=\other \catcode`}=\other + \gdef\lbracecharliteral[{]% + \gdef\rbracecharliteral[}]% + ] % - \def\makelinks #1,{% - \def\params{#1}\def\E{END}% - \ifx\params\E - \let\nextmakelinks=\relax - \else - \let\nextmakelinks=\makelinks - \ifnum\lnkcount>0,\fi - \picknum{#1}% - \startlink attr{/Border [0 0 0]} - goto name{\pdfmkpgn{\the\pgn}}% - \linkcolor #1% - \advance\lnkcount by 1% - \endlink - \fi - \nextmakelinks - } - \def\picknum#1{\expandafter\pn#1} - \def\pn#1{% - \def\p{#1}% - \ifx\p\lbrace - \let\nextpn=\ppn - \else - \let\nextpn=\ppnn - \def\first{#1} - \fi - \nextpn - } - \def\ppn#1{\pgn=#1\gobble} - \def\ppnn{\pgn=\first} - \def\pdfmklnk#1{\lnkcount=0\makelinks #1,END,} \def\skipspaces#1{\def\PP{#1}\def\D{|}% \ifx\PP\D\let\nextsp\relax \else\let\nextsp\skipspaces - \ifx\p\space\else\addtokens{\filename}{\PP}% - \advance\filenamelength by 1 - \fi + \addtokens{\filename}{\PP}% + \advance\filenamelength by 1 \fi \nextsp} - \def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax} + \def\getfilename#1{% + \filenamelength=0 + % If we don't expand the argument now, \skipspaces will get + % snagged on things like "@value{foo}". + \edef\temp{#1}% + \expandafter\skipspaces\temp|\relax + } \ifnum\pdftexversion < 14 \let \startlink \pdfannotlink \else \let \startlink \pdfstartlink \fi + % make a live url in pdf output. \def\pdfurl#1{% \begingroup - \normalturnoffactive\def\@{@}% + % it seems we really need yet another set of dummies; have not + % tried to figure out what each command should do in the context + % of @url. for now, just make @/ a no-op, that's the only one + % people have actually reported a problem with. + % + \normalturnoffactive + \def\@{@}% + \let\/=\empty \makevalueexpandable - \leavevmode\Red + % do we want to go so far as to use \indexnofonts instead of just + % special-casing \var here? + \def\var##1{##1}% + % + \leavevmode\setcolor{\urlcolor}% \startlink attr{/Border [0 0 0]}% user{/Subtype /Link /A << /S /URI /URI (#1) >>}% \endgroup} @@ -1377,13 +1427,15 @@ where each line of input produces a line of output.} {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} \def\pdflink#1{% \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}} - \linkcolor #1\endlink} + \setcolor{\linkcolor}#1\endlink} \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} \else + % non-pdf mode \let\pdfmkdest = \gobble \let\pdfurl = \gobble \let\endlink = \relax - \let\linkcolor = \relax + \let\setcolor = \gobble + \let\pdfsetcolor = \gobble \let\pdfmakeoutlines = \relax \fi % \ifx\pdfoutput @@ -1406,9 +1458,13 @@ where each line of input produces a line of output.} \def\rm{\fam=0 \setfontstyle{rm}} \def\it{\fam=\itfam \setfontstyle{it}} \def\sl{\fam=\slfam \setfontstyle{sl}} -\def\bf{\fam=\bffam \setfontstyle{bf}} +\def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf} \def\tt{\fam=\ttfam \setfontstyle{tt}} +% Unfortunately, we have to override this for titles and the like, since +% in those cases "rm" is bold. Sigh. +\def\rmisbold{\rm\def\curfontstyle{bf}} + % Texinfo sort of supports the sans serif font style, which plain TeX does not. % So we set up a \sf. \newfam\sffam @@ -1418,8 +1474,6 @@ where each line of input produces a line of output.} % We don't need math for this font style. \def\ttsl{\setfontstyle{ttsl}} -% Default leading. -\newdimen\textleading \textleading = 13.2pt % Set the baselineskip to #1, and the lineskip and strut size % correspondingly. There is no deep meaning behind these magic numbers @@ -1429,8 +1483,13 @@ where each line of input produces a line of output.} \def\strutheightpercent{.70833} \def\strutdepthpercent {.29167} % +% can get a sort of poor man's double spacing by redefining this. +\def\baselinefactor{1} +% +\newdimen\textleading \def\setleading#1{% - \normalbaselineskip = #1\relax + \dimen0 = #1\relax + \normalbaselineskip = \baselinefactor\dimen0 \normallineskip = \lineskipfactor\normalbaselineskip \normalbaselines \setbox\strutbox =\hbox{% @@ -1439,20 +1498,295 @@ where each line of input produces a line of output.} }% } -% Set the font macro #1 to the font named #2, adding on the -% specified font prefix (normally `cm'). -% #3 is the font's design size, #4 is a scale factor -\def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4} +% PDF CMaps. See also LaTeX's t1.cmap. +% +% do nothing with this by default. +\expandafter\let\csname cmapOT1\endcsname\gobble +\expandafter\let\csname cmapOT1IT\endcsname\gobble +\expandafter\let\csname cmapOT1TT\endcsname\gobble + +% if we are producing pdf, and we have \pdffontattr, then define cmaps. +% (\pdffontattr was introduced many years ago, but people still run +% older pdftex's; it's easy to conditionalize, so we do.) +\ifpdf \ifx\pdffontattr\thisisundefined \else + \begingroup + \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. + \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap +%%DocumentNeededResources: ProcSet (CIDInit) +%%IncludeResource: ProcSet (CIDInit) +%%BeginResource: CMap (TeX-OT1-0) +%%Title: (TeX-OT1-0 TeX OT1 0) +%%Version: 1.000 +%%EndComments +/CIDInit /ProcSet findresource begin +12 dict begin +begincmap +/CIDSystemInfo +<< /Registry (TeX) +/Ordering (OT1) +/Supplement 0 +>> def +/CMapName /TeX-OT1-0 def +/CMapType 2 def +1 begincodespacerange +<00> <7F> +endcodespacerange +8 beginbfrange +<00> <01> <0393> +<09> <0A> <03A8> +<23> <26> <0023> +<28> <3B> <0028> +<3F> <5B> <003F> +<5D> <5E> <005D> +<61> <7A> <0061> +<7B> <7C> <2013> +endbfrange +40 beginbfchar +<02> <0398> +<03> <039B> +<04> <039E> +<05> <03A0> +<06> <03A3> +<07> <03D2> +<08> <03A6> +<0B> <00660066> +<0C> <00660069> +<0D> <0066006C> +<0E> <006600660069> +<0F> <00660066006C> +<10> <0131> +<11> <0237> +<12> <0060> +<13> <00B4> +<14> <02C7> +<15> <02D8> +<16> <00AF> +<17> <02DA> +<18> <00B8> +<19> <00DF> +<1A> <00E6> +<1B> <0153> +<1C> <00F8> +<1D> <00C6> +<1E> <0152> +<1F> <00D8> +<21> <0021> +<22> <201D> +<27> <2019> +<3C> <00A1> +<3D> <003D> +<3E> <00BF> +<5C> <201C> +<5F> <02D9> +<60> <2018> +<7D> <02DD> +<7E> <007E> +<7F> <00A8> +endbfchar +endcmap +CMapName currentdict /CMap defineresource pop +end +end +%%EndResource +%%EOF + }\endgroup + \expandafter\edef\csname cmapOT1\endcsname#1{% + \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% + }% +% +% \cmapOT1IT + \begingroup + \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. + \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap +%%DocumentNeededResources: ProcSet (CIDInit) +%%IncludeResource: ProcSet (CIDInit) +%%BeginResource: CMap (TeX-OT1IT-0) +%%Title: (TeX-OT1IT-0 TeX OT1IT 0) +%%Version: 1.000 +%%EndComments +/CIDInit /ProcSet findresource begin +12 dict begin +begincmap +/CIDSystemInfo +<< /Registry (TeX) +/Ordering (OT1IT) +/Supplement 0 +>> def +/CMapName /TeX-OT1IT-0 def +/CMapType 2 def +1 begincodespacerange +<00> <7F> +endcodespacerange +8 beginbfrange +<00> <01> <0393> +<09> <0A> <03A8> +<25> <26> <0025> +<28> <3B> <0028> +<3F> <5B> <003F> +<5D> <5E> <005D> +<61> <7A> <0061> +<7B> <7C> <2013> +endbfrange +42 beginbfchar +<02> <0398> +<03> <039B> +<04> <039E> +<05> <03A0> +<06> <03A3> +<07> <03D2> +<08> <03A6> +<0B> <00660066> +<0C> <00660069> +<0D> <0066006C> +<0E> <006600660069> +<0F> <00660066006C> +<10> <0131> +<11> <0237> +<12> <0060> +<13> <00B4> +<14> <02C7> +<15> <02D8> +<16> <00AF> +<17> <02DA> +<18> <00B8> +<19> <00DF> +<1A> <00E6> +<1B> <0153> +<1C> <00F8> +<1D> <00C6> +<1E> <0152> +<1F> <00D8> +<21> <0021> +<22> <201D> +<23> <0023> +<24> <00A3> +<27> <2019> +<3C> <00A1> +<3D> <003D> +<3E> <00BF> +<5C> <201C> +<5F> <02D9> +<60> <2018> +<7D> <02DD> +<7E> <007E> +<7F> <00A8> +endbfchar +endcmap +CMapName currentdict /CMap defineresource pop +end +end +%%EndResource +%%EOF + }\endgroup + \expandafter\edef\csname cmapOT1IT\endcsname#1{% + \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% + }% +% +% \cmapOT1TT + \begingroup + \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. + \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap +%%DocumentNeededResources: ProcSet (CIDInit) +%%IncludeResource: ProcSet (CIDInit) +%%BeginResource: CMap (TeX-OT1TT-0) +%%Title: (TeX-OT1TT-0 TeX OT1TT 0) +%%Version: 1.000 +%%EndComments +/CIDInit /ProcSet findresource begin +12 dict begin +begincmap +/CIDSystemInfo +<< /Registry (TeX) +/Ordering (OT1TT) +/Supplement 0 +>> def +/CMapName /TeX-OT1TT-0 def +/CMapType 2 def +1 begincodespacerange +<00> <7F> +endcodespacerange +5 beginbfrange +<00> <01> <0393> +<09> <0A> <03A8> +<21> <26> <0021> +<28> <5F> <0028> +<61> <7E> <0061> +endbfrange +32 beginbfchar +<02> <0398> +<03> <039B> +<04> <039E> +<05> <03A0> +<06> <03A3> +<07> <03D2> +<08> <03A6> +<0B> <2191> +<0C> <2193> +<0D> <0027> +<0E> <00A1> +<0F> <00BF> +<10> <0131> +<11> <0237> +<12> <0060> +<13> <00B4> +<14> <02C7> +<15> <02D8> +<16> <00AF> +<17> <02DA> +<18> <00B8> +<19> <00DF> +<1A> <00E6> +<1B> <0153> +<1C> <00F8> +<1D> <00C6> +<1E> <0152> +<1F> <00D8> +<20> <2423> +<27> <2019> +<60> <2018> +<7F> <00A8> +endbfchar +endcmap +CMapName currentdict /CMap defineresource pop +end +end +%%EndResource +%%EOF + }\endgroup + \expandafter\edef\csname cmapOT1TT\endcsname#1{% + \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% + }% +\fi\fi + + +% Set the font macro #1 to the font named \fontprefix#2. +% #3 is the font's design size, #4 is a scale factor, #5 is the CMap +% encoding (only OT1, OT1IT and OT1TT are allowed, or empty to omit). +% Example: +% #1 = \textrm +% #2 = \rmshape +% #3 = 10 +% #4 = \mainmagstep +% #5 = OT1 +% +\def\setfont#1#2#3#4#5{% + \font#1=\fontprefix#2#3 scaled #4 + \csname cmap#5\endcsname#1% +} +% This is what gets called when #5 of \setfont is empty. +\let\cmap\gobble +% +% (end of cmaps) % Use cm as the default font prefix. % To specify the font prefix, you must define \fontprefix % before you read in texinfo.tex. -\ifx\fontprefix\undefined +\ifx\fontprefix\thisisundefined \def\fontprefix{cm} \fi % Support font families that don't use the same naming scheme as CM. \def\rmshape{r} -\def\rmbshape{bx} %where the normal face is bold +\def\rmbshape{bx} % where the normal face is bold \def\bfshape{b} \def\bxshape{bx} \def\ttshape{tt} @@ -1467,118 +1801,291 @@ where each line of input produces a line of output.} \def\scshape{csc} \def\scbshape{csc} +% Definitions for a main text size of 11pt. (The default in Texinfo.) +% +\def\definetextfontsizexi{% % Text fonts (11.2pt, magstep1). -\newcount\mainmagstep -\ifx\bigger\relax - % not really supported. - \mainmagstep=\magstep1 - \setfont\textrm\rmshape{12}{1000} - \setfont\texttt\ttshape{12}{1000} -\else - \mainmagstep=\magstephalf - \setfont\textrm\rmshape{10}{\mainmagstep} - \setfont\texttt\ttshape{10}{\mainmagstep} -\fi -\setfont\textbf\bfshape{10}{\mainmagstep} -\setfont\textit\itshape{10}{\mainmagstep} -\setfont\textsl\slshape{10}{\mainmagstep} -\setfont\textsf\sfshape{10}{\mainmagstep} -\setfont\textsc\scshape{10}{\mainmagstep} -\setfont\textttsl\ttslshape{10}{\mainmagstep} +\def\textnominalsize{11pt} +\edef\mainmagstep{\magstephalf} +\setfont\textrm\rmshape{10}{\mainmagstep}{OT1} +\setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT} +\setfont\textbf\bfshape{10}{\mainmagstep}{OT1} +\setfont\textit\itshape{10}{\mainmagstep}{OT1IT} +\setfont\textsl\slshape{10}{\mainmagstep}{OT1} +\setfont\textsf\sfshape{10}{\mainmagstep}{OT1} +\setfont\textsc\scshape{10}{\mainmagstep}{OT1} +\setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT} \font\texti=cmmi10 scaled \mainmagstep \font\textsy=cmsy10 scaled \mainmagstep +\def\textecsize{1095} % A few fonts for @defun names and args. -\setfont\defbf\bfshape{10}{\magstep1} -\setfont\deftt\ttshape{10}{\magstep1} -\setfont\defttsl\ttslshape{10}{\magstep1} +\setfont\defbf\bfshape{10}{\magstep1}{OT1} +\setfont\deftt\ttshape{10}{\magstep1}{OT1TT} +\setfont\defttsl\ttslshape{10}{\magstep1}{OT1TT} \def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf} % Fonts for indices, footnotes, small examples (9pt). -\setfont\smallrm\rmshape{9}{1000} -\setfont\smalltt\ttshape{9}{1000} -\setfont\smallbf\bfshape{10}{900} -\setfont\smallit\itshape{9}{1000} -\setfont\smallsl\slshape{9}{1000} -\setfont\smallsf\sfshape{9}{1000} -\setfont\smallsc\scshape{10}{900} -\setfont\smallttsl\ttslshape{10}{900} +\def\smallnominalsize{9pt} +\setfont\smallrm\rmshape{9}{1000}{OT1} +\setfont\smalltt\ttshape{9}{1000}{OT1TT} +\setfont\smallbf\bfshape{10}{900}{OT1} +\setfont\smallit\itshape{9}{1000}{OT1IT} +\setfont\smallsl\slshape{9}{1000}{OT1} +\setfont\smallsf\sfshape{9}{1000}{OT1} +\setfont\smallsc\scshape{10}{900}{OT1} +\setfont\smallttsl\ttslshape{10}{900}{OT1TT} \font\smalli=cmmi9 \font\smallsy=cmsy9 +\def\smallecsize{0900} % Fonts for small examples (8pt). -\setfont\smallerrm\rmshape{8}{1000} -\setfont\smallertt\ttshape{8}{1000} -\setfont\smallerbf\bfshape{10}{800} -\setfont\smallerit\itshape{8}{1000} -\setfont\smallersl\slshape{8}{1000} -\setfont\smallersf\sfshape{8}{1000} -\setfont\smallersc\scshape{10}{800} -\setfont\smallerttsl\ttslshape{10}{800} +\def\smallernominalsize{8pt} +\setfont\smallerrm\rmshape{8}{1000}{OT1} +\setfont\smallertt\ttshape{8}{1000}{OT1TT} +\setfont\smallerbf\bfshape{10}{800}{OT1} +\setfont\smallerit\itshape{8}{1000}{OT1IT} +\setfont\smallersl\slshape{8}{1000}{OT1} +\setfont\smallersf\sfshape{8}{1000}{OT1} +\setfont\smallersc\scshape{10}{800}{OT1} +\setfont\smallerttsl\ttslshape{10}{800}{OT1TT} \font\smalleri=cmmi8 \font\smallersy=cmsy8 +\def\smallerecsize{0800} % Fonts for title page (20.4pt): -\setfont\titlerm\rmbshape{12}{\magstep3} -\setfont\titleit\itbshape{10}{\magstep4} -\setfont\titlesl\slbshape{10}{\magstep4} -\setfont\titlett\ttbshape{12}{\magstep3} -\setfont\titlettsl\ttslshape{10}{\magstep4} -\setfont\titlesf\sfbshape{17}{\magstep1} +\def\titlenominalsize{20pt} +\setfont\titlerm\rmbshape{12}{\magstep3}{OT1} +\setfont\titleit\itbshape{10}{\magstep4}{OT1IT} +\setfont\titlesl\slbshape{10}{\magstep4}{OT1} +\setfont\titlett\ttbshape{12}{\magstep3}{OT1TT} +\setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT} +\setfont\titlesf\sfbshape{17}{\magstep1}{OT1} \let\titlebf=\titlerm -\setfont\titlesc\scbshape{10}{\magstep4} +\setfont\titlesc\scbshape{10}{\magstep4}{OT1} \font\titlei=cmmi12 scaled \magstep3 \font\titlesy=cmsy10 scaled \magstep4 -\def\authorrm{\secrm} -\def\authortt{\sectt} +\def\titleecsize{2074} % Chapter (and unnumbered) fonts (17.28pt). -\setfont\chaprm\rmbshape{12}{\magstep2} -\setfont\chapit\itbshape{10}{\magstep3} -\setfont\chapsl\slbshape{10}{\magstep3} -\setfont\chaptt\ttbshape{12}{\magstep2} -\setfont\chapttsl\ttslshape{10}{\magstep3} -\setfont\chapsf\sfbshape{17}{1000} +\def\chapnominalsize{17pt} +\setfont\chaprm\rmbshape{12}{\magstep2}{OT1} +\setfont\chapit\itbshape{10}{\magstep3}{OT1IT} +\setfont\chapsl\slbshape{10}{\magstep3}{OT1} +\setfont\chaptt\ttbshape{12}{\magstep2}{OT1TT} +\setfont\chapttsl\ttslshape{10}{\magstep3}{OT1TT} +\setfont\chapsf\sfbshape{17}{1000}{OT1} \let\chapbf=\chaprm -\setfont\chapsc\scbshape{10}{\magstep3} +\setfont\chapsc\scbshape{10}{\magstep3}{OT1} \font\chapi=cmmi12 scaled \magstep2 \font\chapsy=cmsy10 scaled \magstep3 +\def\chapecsize{1728} % Section fonts (14.4pt). -\setfont\secrm\rmbshape{12}{\magstep1} -\setfont\secit\itbshape{10}{\magstep2} -\setfont\secsl\slbshape{10}{\magstep2} -\setfont\sectt\ttbshape{12}{\magstep1} -\setfont\secttsl\ttslshape{10}{\magstep2} -\setfont\secsf\sfbshape{12}{\magstep1} +\def\secnominalsize{14pt} +\setfont\secrm\rmbshape{12}{\magstep1}{OT1} +\setfont\secit\itbshape{10}{\magstep2}{OT1IT} +\setfont\secsl\slbshape{10}{\magstep2}{OT1} +\setfont\sectt\ttbshape{12}{\magstep1}{OT1TT} +\setfont\secttsl\ttslshape{10}{\magstep2}{OT1TT} +\setfont\secsf\sfbshape{12}{\magstep1}{OT1} \let\secbf\secrm -\setfont\secsc\scbshape{10}{\magstep2} +\setfont\secsc\scbshape{10}{\magstep2}{OT1} \font\seci=cmmi12 scaled \magstep1 \font\secsy=cmsy10 scaled \magstep2 +\def\sececsize{1440} % Subsection fonts (13.15pt). -\setfont\ssecrm\rmbshape{12}{\magstephalf} -\setfont\ssecit\itbshape{10}{1315} -\setfont\ssecsl\slbshape{10}{1315} -\setfont\ssectt\ttbshape{12}{\magstephalf} -\setfont\ssecttsl\ttslshape{10}{1315} -\setfont\ssecsf\sfbshape{12}{\magstephalf} +\def\ssecnominalsize{13pt} +\setfont\ssecrm\rmbshape{12}{\magstephalf}{OT1} +\setfont\ssecit\itbshape{10}{1315}{OT1IT} +\setfont\ssecsl\slbshape{10}{1315}{OT1} +\setfont\ssectt\ttbshape{12}{\magstephalf}{OT1TT} +\setfont\ssecttsl\ttslshape{10}{1315}{OT1TT} +\setfont\ssecsf\sfbshape{12}{\magstephalf}{OT1} \let\ssecbf\ssecrm -\setfont\ssecsc\scbshape{10}{1315} +\setfont\ssecsc\scbshape{10}{1315}{OT1} \font\sseci=cmmi12 scaled \magstephalf \font\ssecsy=cmsy10 scaled 1315 +\def\ssececsize{1200} % Reduced fonts for @acro in text (10pt). -\setfont\reducedrm\rmshape{10}{1000} -\setfont\reducedtt\ttshape{10}{1000} -\setfont\reducedbf\bfshape{10}{1000} -\setfont\reducedit\itshape{10}{1000} -\setfont\reducedsl\slshape{10}{1000} -\setfont\reducedsf\sfshape{10}{1000} -\setfont\reducedsc\scshape{10}{1000} -\setfont\reducedttsl\ttslshape{10}{1000} +\def\reducednominalsize{10pt} +\setfont\reducedrm\rmshape{10}{1000}{OT1} +\setfont\reducedtt\ttshape{10}{1000}{OT1TT} +\setfont\reducedbf\bfshape{10}{1000}{OT1} +\setfont\reducedit\itshape{10}{1000}{OT1IT} +\setfont\reducedsl\slshape{10}{1000}{OT1} +\setfont\reducedsf\sfshape{10}{1000}{OT1} +\setfont\reducedsc\scshape{10}{1000}{OT1} +\setfont\reducedttsl\ttslshape{10}{1000}{OT1TT} \font\reducedi=cmmi10 \font\reducedsy=cmsy10 +\def\reducedecsize{1000} + +\textleading = 13.2pt % line spacing for 11pt CM +\textfonts % reset the current fonts +\rm +} % end of 11pt text font size definitions, \definetextfontsizexi + + +% Definitions to make the main text be 10pt Computer Modern, with +% section, chapter, etc., sizes following suit. This is for the GNU +% Press printing of the Emacs 22 manual. Maybe other manuals in the +% future. Used with @smallbook, which sets the leading to 12pt. +% +\def\definetextfontsizex{% +% Text fonts (10pt). +\def\textnominalsize{10pt} +\edef\mainmagstep{1000} +\setfont\textrm\rmshape{10}{\mainmagstep}{OT1} +\setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT} +\setfont\textbf\bfshape{10}{\mainmagstep}{OT1} +\setfont\textit\itshape{10}{\mainmagstep}{OT1IT} +\setfont\textsl\slshape{10}{\mainmagstep}{OT1} +\setfont\textsf\sfshape{10}{\mainmagstep}{OT1} +\setfont\textsc\scshape{10}{\mainmagstep}{OT1} +\setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT} +\font\texti=cmmi10 scaled \mainmagstep +\font\textsy=cmsy10 scaled \mainmagstep +\def\textecsize{1000} + +% A few fonts for @defun names and args. +\setfont\defbf\bfshape{10}{\magstephalf}{OT1} +\setfont\deftt\ttshape{10}{\magstephalf}{OT1TT} +\setfont\defttsl\ttslshape{10}{\magstephalf}{OT1TT} +\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf} + +% Fonts for indices, footnotes, small examples (9pt). +\def\smallnominalsize{9pt} +\setfont\smallrm\rmshape{9}{1000}{OT1} +\setfont\smalltt\ttshape{9}{1000}{OT1TT} +\setfont\smallbf\bfshape{10}{900}{OT1} +\setfont\smallit\itshape{9}{1000}{OT1IT} +\setfont\smallsl\slshape{9}{1000}{OT1} +\setfont\smallsf\sfshape{9}{1000}{OT1} +\setfont\smallsc\scshape{10}{900}{OT1} +\setfont\smallttsl\ttslshape{10}{900}{OT1TT} +\font\smalli=cmmi9 +\font\smallsy=cmsy9 +\def\smallecsize{0900} + +% Fonts for small examples (8pt). +\def\smallernominalsize{8pt} +\setfont\smallerrm\rmshape{8}{1000}{OT1} +\setfont\smallertt\ttshape{8}{1000}{OT1TT} +\setfont\smallerbf\bfshape{10}{800}{OT1} +\setfont\smallerit\itshape{8}{1000}{OT1IT} +\setfont\smallersl\slshape{8}{1000}{OT1} +\setfont\smallersf\sfshape{8}{1000}{OT1} +\setfont\smallersc\scshape{10}{800}{OT1} +\setfont\smallerttsl\ttslshape{10}{800}{OT1TT} +\font\smalleri=cmmi8 +\font\smallersy=cmsy8 +\def\smallerecsize{0800} + +% Fonts for title page (20.4pt): +\def\titlenominalsize{20pt} +\setfont\titlerm\rmbshape{12}{\magstep3}{OT1} +\setfont\titleit\itbshape{10}{\magstep4}{OT1IT} +\setfont\titlesl\slbshape{10}{\magstep4}{OT1} +\setfont\titlett\ttbshape{12}{\magstep3}{OT1TT} +\setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT} +\setfont\titlesf\sfbshape{17}{\magstep1}{OT1} +\let\titlebf=\titlerm +\setfont\titlesc\scbshape{10}{\magstep4}{OT1} +\font\titlei=cmmi12 scaled \magstep3 +\font\titlesy=cmsy10 scaled \magstep4 +\def\titleecsize{2074} + +% Chapter fonts (14.4pt). +\def\chapnominalsize{14pt} +\setfont\chaprm\rmbshape{12}{\magstep1}{OT1} +\setfont\chapit\itbshape{10}{\magstep2}{OT1IT} +\setfont\chapsl\slbshape{10}{\magstep2}{OT1} +\setfont\chaptt\ttbshape{12}{\magstep1}{OT1TT} +\setfont\chapttsl\ttslshape{10}{\magstep2}{OT1TT} +\setfont\chapsf\sfbshape{12}{\magstep1}{OT1} +\let\chapbf\chaprm +\setfont\chapsc\scbshape{10}{\magstep2}{OT1} +\font\chapi=cmmi12 scaled \magstep1 +\font\chapsy=cmsy10 scaled \magstep2 +\def\chapecsize{1440} + +% Section fonts (12pt). +\def\secnominalsize{12pt} +\setfont\secrm\rmbshape{12}{1000}{OT1} +\setfont\secit\itbshape{10}{\magstep1}{OT1IT} +\setfont\secsl\slbshape{10}{\magstep1}{OT1} +\setfont\sectt\ttbshape{12}{1000}{OT1TT} +\setfont\secttsl\ttslshape{10}{\magstep1}{OT1TT} +\setfont\secsf\sfbshape{12}{1000}{OT1} +\let\secbf\secrm +\setfont\secsc\scbshape{10}{\magstep1}{OT1} +\font\seci=cmmi12 +\font\secsy=cmsy10 scaled \magstep1 +\def\sececsize{1200} + +% Subsection fonts (10pt). +\def\ssecnominalsize{10pt} +\setfont\ssecrm\rmbshape{10}{1000}{OT1} +\setfont\ssecit\itbshape{10}{1000}{OT1IT} +\setfont\ssecsl\slbshape{10}{1000}{OT1} +\setfont\ssectt\ttbshape{10}{1000}{OT1TT} +\setfont\ssecttsl\ttslshape{10}{1000}{OT1TT} +\setfont\ssecsf\sfbshape{10}{1000}{OT1} +\let\ssecbf\ssecrm +\setfont\ssecsc\scbshape{10}{1000}{OT1} +\font\sseci=cmmi10 +\font\ssecsy=cmsy10 +\def\ssececsize{1000} + +% Reduced fonts for @acro in text (9pt). +\def\reducednominalsize{9pt} +\setfont\reducedrm\rmshape{9}{1000}{OT1} +\setfont\reducedtt\ttshape{9}{1000}{OT1TT} +\setfont\reducedbf\bfshape{10}{900}{OT1} +\setfont\reducedit\itshape{9}{1000}{OT1IT} +\setfont\reducedsl\slshape{9}{1000}{OT1} +\setfont\reducedsf\sfshape{9}{1000}{OT1} +\setfont\reducedsc\scshape{10}{900}{OT1} +\setfont\reducedttsl\ttslshape{10}{900}{OT1TT} +\font\reducedi=cmmi9 +\font\reducedsy=cmsy9 +\def\reducedecsize{0900} + +\divide\parskip by 2 % reduce space between paragraphs +\textleading = 12pt % line spacing for 10pt CM +\textfonts % reset the current fonts +\rm +} % end of 10pt text font size definitions, \definetextfontsizex + + +% We provide the user-level command +% @fonttextsize 10 +% (or 11) to redefine the text font size. pt is assumed. +% +\def\xiword{11} +\def\xword{10} +\def\xwordpt{10pt} +% +\parseargdef\fonttextsize{% + \def\textsizearg{#1}% + %\wlog{doing @fonttextsize \textsizearg}% + % + % Set \globaldefs so that documents can use this inside @tex, since + % makeinfo 4.8 does not support it, but we need it nonetheless. + % + \begingroup \globaldefs=1 + \ifx\textsizearg\xword \definetextfontsizex + \else \ifx\textsizearg\xiword \definetextfontsizexi + \else + \errhelp=\EMsimple + \errmessage{@fonttextsize only supports `10' or `11', not `\textsizearg'} + \fi\fi + \endgroup +} + % In order for the font changes to affect most math symbols and letters, % we have to define the \textfont of the standard families. Since @@ -1608,6 +2115,7 @@ where each line of input produces a line of output.} \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl + \def\curfontsize{text}% \def\lsize{reduced}\def\lllsize{smaller}% \resetmathfonts \setleading{\textleading}} \def\titlefonts{% @@ -1615,13 +2123,16 @@ where each line of input produces a line of output.} \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy \let\tenttsl=\titlettsl + \def\curfontsize{title}% \def\lsize{chap}\def\lllsize{subsec}% - \resetmathfonts \setleading{25pt}} -\def\titlefont#1{{\titlefonts\rm #1}} + \resetmathfonts \setleading{27pt}} +\def\titlefont#1{{\titlefonts\rmisbold #1}} \def\chapfonts{% \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc - \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy \let\tenttsl=\chapttsl + \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy + \let\tenttsl=\chapttsl + \def\curfontsize{chap}% \def\lsize{sec}\def\lllsize{text}% \resetmathfonts \setleading{19pt}} \def\secfonts{% @@ -1629,6 +2140,7 @@ where each line of input produces a line of output.} \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy \let\tenttsl=\secttsl + \def\curfontsize{sec}% \def\lsize{subsec}\def\lllsize{reduced}% \resetmathfonts \setleading{16pt}} \def\subsecfonts{% @@ -1636,6 +2148,7 @@ where each line of input produces a line of output.} \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy \let\tenttsl=\ssecttsl + \def\curfontsize{ssec}% \def\lsize{text}\def\lllsize{small}% \resetmathfonts \setleading{15pt}} \let\subsubsecfonts = \subsecfonts @@ -1644,6 +2157,7 @@ where each line of input produces a line of output.} \let\tenbf=\reducedbf \let\tentt=\reducedtt \let\reducedcaps=\reducedsc \let\tensf=\reducedsf \let\teni=\reducedi \let\tensy=\reducedsy \let\tenttsl=\reducedttsl + \def\curfontsize{reduced}% \def\lsize{small}\def\lllsize{smaller}% \resetmathfonts \setleading{10.5pt}} \def\smallfonts{% @@ -1651,6 +2165,7 @@ where each line of input produces a line of output.} \let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy \let\tenttsl=\smallttsl + \def\curfontsize{small}% \def\lsize{smaller}\def\lllsize{smaller}% \resetmathfonts \setleading{10.5pt}} \def\smallerfonts{% @@ -1658,9 +2173,20 @@ where each line of input produces a line of output.} \let\tenbf=\smallerbf \let\tentt=\smallertt \let\smallcaps=\smallersc \let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy \let\tenttsl=\smallerttsl + \def\curfontsize{smaller}% \def\lsize{smaller}\def\lllsize{smaller}% \resetmathfonts \setleading{9.5pt}} +% Fonts for short table of contents. +\setfont\shortcontrm\rmshape{12}{1000}{OT1} +\setfont\shortcontbf\bfshape{10}{\magstep1}{OT1} % no cmb12 +\setfont\shortcontsl\slshape{12}{1000}{OT1} +\setfont\shortconttt\ttshape{12}{1000}{OT1TT} + +% Define these just so they can be easily changed for other fonts. +\def\angleleft{$\langle$} +\def\angleright{$\rangle$} + % Set the fonts to use with the @small... environments. \let\smallexamplefonts = \smallfonts @@ -1674,55 +2200,219 @@ where each line of input produces a line of output.} % % By the way, for comparison, here's what fits with @example (10pt): % 8.5x11=71 smallbook=60 a4=75 a5=58 -% -% I wish the USA used A4 paper. % --karl, 24jan03. - % Set up the default fonts, so we can use them for creating boxes. % -\textfonts \rm +\definetextfontsizexi -% Define these so they can be easily changed for other fonts. -\def\angleleft{$\langle$} -\def\angleright{$\rangle$} + +\message{markup,} + +% Check if we are currently using a typewriter font. Since all the +% Computer Modern typewriter fonts have zero interword stretch (and +% shrink), and it is reasonable to expect all typewriter fonts to have +% this property, we can check that font parameter. +% +\def\ifmonospace{\ifdim\fontdimen3\font=0pt } + +% Markup style infrastructure. \defmarkupstylesetup\INITMACRO will +% define and register \INITMACRO to be called on markup style changes. +% \INITMACRO can check \currentmarkupstyle for the innermost +% style and the set of \ifmarkupSTYLE switches for all styles +% currently in effect. +\newif\ifmarkupvar +\newif\ifmarkupsamp +\newif\ifmarkupkey +%\newif\ifmarkupfile % @file == @samp. +%\newif\ifmarkupoption % @option == @samp. +\newif\ifmarkupcode +\newif\ifmarkupkbd +%\newif\ifmarkupenv % @env == @code. +%\newif\ifmarkupcommand % @command == @code. +\newif\ifmarkuptex % @tex (and part of @math, for now). +\newif\ifmarkupexample +\newif\ifmarkupverb +\newif\ifmarkupverbatim + +\let\currentmarkupstyle\empty + +\def\setupmarkupstyle#1{% + \csname markup#1true\endcsname + \def\currentmarkupstyle{#1}% + \markupstylesetup +} + +\let\markupstylesetup\empty + +\def\defmarkupstylesetup#1{% + \expandafter\def\expandafter\markupstylesetup + \expandafter{\markupstylesetup #1}% + \def#1% +} + +% Markup style setup for left and right quotes. +\defmarkupstylesetup\markupsetuplq{% + \expandafter\let\expandafter \temp + \csname markupsetuplq\currentmarkupstyle\endcsname + \ifx\temp\relax \markupsetuplqdefault \else \temp \fi +} + +\defmarkupstylesetup\markupsetuprq{% + \expandafter\let\expandafter \temp + \csname markupsetuprq\currentmarkupstyle\endcsname + \ifx\temp\relax \markupsetuprqdefault \else \temp \fi +} + +{ +\catcode`\'=\active +\catcode`\`=\active + +\gdef\markupsetuplqdefault{\let`\lq} +\gdef\markupsetuprqdefault{\let'\rq} + +\gdef\markupsetcodequoteleft{\let`\codequoteleft} +\gdef\markupsetcodequoteright{\let'\codequoteright} +} + +\let\markupsetuplqcode \markupsetcodequoteleft +\let\markupsetuprqcode \markupsetcodequoteright +% +\let\markupsetuplqexample \markupsetcodequoteleft +\let\markupsetuprqexample \markupsetcodequoteright +% +\let\markupsetuplqkbd \markupsetcodequoteleft +\let\markupsetuprqkbd \markupsetcodequoteright +% +\let\markupsetuplqsamp \markupsetcodequoteleft +\let\markupsetuprqsamp \markupsetcodequoteright +% +\let\markupsetuplqverb \markupsetcodequoteleft +\let\markupsetuprqverb \markupsetcodequoteright +% +\let\markupsetuplqverbatim \markupsetcodequoteleft +\let\markupsetuprqverbatim \markupsetcodequoteright + +% Allow an option to not use regular directed right quote/apostrophe +% (char 0x27), but instead the undirected quote from cmtt (char 0x0d). +% The undirected quote is ugly, so don't make it the default, but it +% works for pasting with more pdf viewers (at least evince), the +% lilypond developers report. xpdf does work with the regular 0x27. +% +\def\codequoteright{% + \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax + \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax + '% + \else \char'15 \fi + \else \char'15 \fi +} +% +% and a similar option for the left quote char vs. a grave accent. +% Modern fonts display ASCII 0x60 as a grave accent, so some people like +% the code environments to do likewise. +% +\def\codequoteleft{% + \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax + \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax + % [Knuth] pp. 380,381,391 + % \relax disables Spanish ligatures ?` and !` of \tt font. + \relax`% + \else \char'22 \fi + \else \char'22 \fi +} + +% Commands to set the quote options. +% +\parseargdef\codequoteundirected{% + \def\temp{#1}% + \ifx\temp\onword + \expandafter\let\csname SETtxicodequoteundirected\endcsname + = t% + \else\ifx\temp\offword + \expandafter\let\csname SETtxicodequoteundirected\endcsname + = \relax + \else + \errhelp = \EMsimple + \errmessage{Unknown @codequoteundirected value `\temp', must be on|off}% + \fi\fi +} +% +\parseargdef\codequotebacktick{% + \def\temp{#1}% + \ifx\temp\onword + \expandafter\let\csname SETtxicodequotebacktick\endcsname + = t% + \else\ifx\temp\offword + \expandafter\let\csname SETtxicodequotebacktick\endcsname + = \relax + \else + \errhelp = \EMsimple + \errmessage{Unknown @codequotebacktick value `\temp', must be on|off}% + \fi\fi +} + +% [Knuth] pp. 380,381,391, disable Spanish ligatures ?` and !` of \tt font. +\def\noligaturesquoteleft{\relax\lq} % Count depth in font-changes, for error checks \newcount\fontdepth \fontdepth=0 -% Fonts for short table of contents. -\setfont\shortcontrm\rmshape{12}{1000} -\setfont\shortcontbf\bfshape{10}{\magstep1} % no cmb12 -\setfont\shortcontsl\slshape{12}{1000} -\setfont\shortconttt\ttshape{12}{1000} - -%% Add scribe-like font environments, plus @l for inline lisp (usually sans -%% serif) and @ii for TeX italic - -% \smartitalic{ARG} outputs arg in italics, followed by an italic correction -% unless the following character is such as not to need one. -\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else - \ptexslash\fi\fi\fi} -\def\smartslanted#1{{\ifusingtt\ttsl\sl #1}\futurelet\next\smartitalicx} -\def\smartitalic#1{{\ifusingtt\ttsl\it #1}\futurelet\next\smartitalicx} - -% like \smartslanted except unconditionally uses \ttsl. -% @var is set to this for defun arguments. -\def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx} - -% like \smartslanted except unconditionally use \sl. We never want +% Font commands. + +% #1 is the font command (\sl or \it), #2 is the text to slant. +% If we are in a monospaced environment, however, 1) always use \ttsl, +% and 2) do not add an italic correction. +\def\dosmartslant#1#2{% + \ifusingtt + {{\ttsl #2}\let\next=\relax}% + {\def\next{{#1#2}\futurelet\next\smartitaliccorrection}}% + \next +} +\def\smartslanted{\dosmartslant\sl} +\def\smartitalic{\dosmartslant\it} + +% Output an italic correction unless \next (presumed to be the following +% character) is such as not to need one. +\def\smartitaliccorrection{% + \ifx\next,% + \else\ifx\next-% + \else\ifx\next.% + \else\ptexslash + \fi\fi\fi + \aftersmartic +} + +% Unconditional use \ttsl, and no ic. @var is set to this for defuns. +\def\ttslanted#1{{\ttsl #1}} + +% @cite is like \smartslanted except unconditionally use \sl. We never want % ttsl for book titles, do we? -\def\cite#1{{\sl #1}\futurelet\next\smartitalicx} +\def\cite#1{{\sl #1}\futurelet\next\smartitaliccorrection} + +\def\aftersmartic{} +\def\var#1{% + \let\saveaftersmartic = \aftersmartic + \def\aftersmartic{\null\let\aftersmartic=\saveaftersmartic}% + \smartslanted{#1}% +} \let\i=\smartitalic \let\slanted=\smartslanted -\let\var=\smartslanted \let\dfn=\smartslanted \let\emph=\smartitalic +% Explicit font changes: @r, @sc, undocumented @ii. +\def\r#1{{\rm #1}} % roman font +\def\sc#1{{\smallcaps#1}} % smallcaps font +\def\ii#1{{\it #1}} % italic font + +% @b, explicit bold. Also @strong. \def\b#1{{\bf #1}} \let\strong=\b +% @sansserif, explicit sans. +\def\sansserif#1{{\sf #1}} + % We can't just use \exhyphenpenalty, because that only has effect at % the end of a paragraph. Restore normal hyphenation at the end of the % group within which \nohyphenation is presumably called. @@ -1735,35 +2425,34 @@ where each line of input produces a line of output.} % sometimes \x has an active definition that messes things up. % \catcode`@=11 - \def\frenchspacing{% + \def\plainfrenchspacing{% \sfcode\dotChar =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m + \def\endofsentencespacefactor{1000}% for @. and friends + } + \def\plainnonfrenchspacing{% + \sfcode`\.3000\sfcode`\?3000\sfcode`\!3000 + \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250 + \def\endofsentencespacefactor{3000}% for @. and friends } \catcode`@=\other +\def\endofsentencespacefactor{3000}% default +% @t, explicit typewriter. \def\t#1{% - {\tt \rawbackslash \frenchspacing #1}% + {\tt \rawbackslash \plainfrenchspacing #1}% \null } -\def\samp#1{`\tclose{#1}'\null} -\setfont\keyrm\rmshape{8}{1000} -\font\keysy=cmsy9 -\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% - \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% - \vbox{\hrule\kern-0.4pt - \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% - \kern-0.4pt\hrule}% - \kern-.06em\raise0.4pt\hbox{\angleright}}}} -% The old definition, with no lozenge: -%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null} -\def\ctrl #1{{\tt \rawbackslash \hat}#1} -% @file, @option are the same as @samp. -\let\file=\samp -\let\option=\samp +% @samp. +\def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}} -% @code is a modification of @t, -% which makes spaces the same size as normal in the surrounding text. +% @indicateurl is \samp, that is, with quotes. +\let\indicateurl=\samp + +% @code (and similar) prints in typewriter, but with spaces the same +% size as normal in the surrounding text, without hyphenation, etc. +% This is a subroutine for that. \def\tclose#1{% {% % Change normal interword space to be same as for the current font. @@ -1779,33 +2468,44 @@ where each line of input produces a line of output.} \nohyphenation % \rawbackslash - \frenchspacing + \plainfrenchspacing #1% }% - \null + \null % reset spacefactor to 1000 } % We *must* turn on hyphenation at `-' and `_' in @code. % Otherwise, it is too hard to avoid overfull hboxes % in the Emacs manual, the Library manual, etc. - +% % Unfortunately, TeX uses one parameter (\hyphenchar) to control % both hyphenation at - and hyphenation within words. % We must therefore turn them both off (\tclose does that) % and arrange explicitly to hyphenate at a dash. % -- rms. { - \catcode`\-=\active - \catcode`\_=\active + \catcode`\-=\active \catcode`\_=\active + \catcode`\'=\active \catcode`\`=\active + \global\let'=\rq \global\let`=\lq % default definitions % \global\def\code{\begingroup - \catcode`\-=\active \let-\codedash - \catcode`\_=\active \let_\codeunder + \setupmarkupstyle{code}% + % The following should really be moved into \setupmarkupstyle handlers. + \catcode\dashChar=\active \catcode\underChar=\active + \ifallowcodebreaks + \let-\codedash + \let_\codeunder + \else + \let-\normaldash + \let_\realunder + \fi \codex } } -\def\realdash{-} +\def\codex #1{\tclose{#1}\endgroup} + +\def\normaldash{-} \def\codedash{-\discretionary{}{}{}} \def\codeunder{% % this is all so @math{@code{var_name}+1} can work. In math mode, _ @@ -1818,53 +2518,44 @@ where each line of input produces a line of output.} \discretionary{}{}{}}% {\_}% } -\def\codex #1{\tclose{#1}\endgroup} -% @kbd is like @code, except that if the argument is just one @key command, -% then @kbd has no effect. +% An additional complication: the above will allow breaks after, e.g., +% each of the four underscores in __typeof__. This is bad. +% @allowcodebreaks provides a document-level way to turn breaking at - +% and _ on and off. +% +\newif\ifallowcodebreaks \allowcodebreakstrue -% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always), -% `example' (@kbd uses ttsl only inside of @example and friends), -% or `code' (@kbd uses normal tty font always). -\parseargdef\kbdinputstyle{% - \def\arg{#1}% - \ifx\arg\worddistinct - \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}% - \else\ifx\arg\wordexample - \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}% - \else\ifx\arg\wordcode - \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}% +\def\keywordtrue{true} +\def\keywordfalse{false} + +\parseargdef\allowcodebreaks{% + \def\txiarg{#1}% + \ifx\txiarg\keywordtrue + \allowcodebreakstrue + \else\ifx\txiarg\keywordfalse + \allowcodebreaksfalse \else \errhelp = \EMsimple - \errmessage{Unknown @kbdinputstyle option `\arg'}% - \fi\fi\fi + \errmessage{Unknown @allowcodebreaks option `\txiarg', must be true|false}% + \fi\fi } -\def\worddistinct{distinct} -\def\wordexample{example} -\def\wordcode{code} - -% Default is `distinct.' -\kbdinputstyle distinct - -\def\xkey{\key} -\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}% -\ifx\one\xkey\ifx\threex\three \key{#2}% -\else{\tclose{\kbdfont\look}}\fi -\else{\tclose{\kbdfont\look}}\fi} -% For @indicateurl, @env, @command quotes seem unnecessary, so use \code. -\let\indicateurl=\code -\let\env=\code +% For @command, @env, @file, @option quotes seem unnecessary, +% so use \code rather than \samp. \let\command=\code +\let\env=\code +\let\file=\code +\let\option=\code % @uref (abbreviation for `urlref') takes an optional (comma-separated) % second argument specifying the text to display and an optional third % arg as text to display instead of (rather than in addition to) the url -% itself. First (mandatory) arg is the url. Perhaps eventually put in -% a hypertex \special here. -% -\def\uref#1{\douref #1,,,\finish} -\def\douref#1,#2,#3,#4\finish{\begingroup +% itself. First (mandatory) arg is the url. +% (This \urefnobreak definition isn't used now, leaving it for a while +% for comparison.) +\def\urefnobreak#1{\dourefnobreak #1,,,\finish} +\def\dourefnobreak#1,#2,#3,#4\finish{\begingroup \unsepspaces \pdfurl{#1}% \setbox0 = \hbox{\ignorespaces #3}% @@ -1885,6 +2576,103 @@ where each line of input produces a line of output.} \endlink \endgroup} +% This \urefbreak definition is the active one. +\def\urefbreak{\begingroup \urefcatcodes \dourefbreak} +\let\uref=\urefbreak +\def\dourefbreak#1{\urefbreakfinish #1,,,\finish} +\def\urefbreakfinish#1,#2,#3,#4\finish{% doesn't work in @example + \unsepspaces + \pdfurl{#1}% + \setbox0 = \hbox{\ignorespaces #3}% + \ifdim\wd0 > 0pt + \unhbox0 % third arg given, show only that + \else + \setbox0 = \hbox{\ignorespaces #2}% + \ifdim\wd0 > 0pt + \ifpdf + \unhbox0 % PDF: 2nd arg given, show only it + \else + \unhbox0\ (\urefcode{#1})% DVI: 2nd arg given, show both it and url + \fi + \else + \urefcode{#1}% only url given, so show it + \fi + \fi + \endlink +\endgroup} + +% Allow line breaks around only a few characters (only). +\def\urefcatcodes{% + \catcode\ampChar=\active \catcode\dotChar=\active + \catcode\hashChar=\active \catcode\questChar=\active + \catcode\slashChar=\active +} +{ + \urefcatcodes + % + \global\def\urefcode{\begingroup + \setupmarkupstyle{code}% + \urefcatcodes + \let&\urefcodeamp + \let.\urefcodedot + \let#\urefcodehash + \let?\urefcodequest + \let/\urefcodeslash + \codex + } + % + % By default, they are just regular characters. + \global\def&{\normalamp} + \global\def.{\normaldot} + \global\def#{\normalhash} + \global\def?{\normalquest} + \global\def/{\normalslash} +} + +% we put a little stretch before and after the breakable chars, to help +% line breaking of long url's. The unequal skips make look better in +% cmtt at least, especially for dots. +\def\urefprestretch{\urefprebreak \hskip0pt plus.13em } +\def\urefpoststretch{\urefpostbreak \hskip0pt plus.1em } +% +\def\urefcodeamp{\urefprestretch \&\urefpoststretch} +\def\urefcodedot{\urefprestretch .\urefpoststretch} +\def\urefcodehash{\urefprestretch \#\urefpoststretch} +\def\urefcodequest{\urefprestretch ?\urefpoststretch} +\def\urefcodeslash{\futurelet\next\urefcodeslashfinish} +{ + \catcode`\/=\active + \global\def\urefcodeslashfinish{% + \urefprestretch \slashChar + % Allow line break only after the final / in a sequence of + % slashes, to avoid line break between the slashes in http://. + \ifx\next/\else \urefpoststretch \fi + } +} + +% One more complication: by default we'll break after the special +% characters, but some people like to break before the special chars, so +% allow that. Also allow no breaking at all, for manual control. +% +\parseargdef\urefbreakstyle{% + \def\txiarg{#1}% + \ifx\txiarg\wordnone + \def\urefprebreak{\nobreak}\def\urefpostbreak{\nobreak} + \else\ifx\txiarg\wordbefore + \def\urefprebreak{\allowbreak}\def\urefpostbreak{\nobreak} + \else\ifx\txiarg\wordafter + \def\urefprebreak{\nobreak}\def\urefpostbreak{\allowbreak} + \else + \errhelp = \EMsimple + \errmessage{Unknown @urefbreakstyle setting `\txiarg'}% + \fi\fi\fi +} +\def\wordafter{after} +\def\wordbefore{before} +\def\wordnone{none} + +\urefbreakstyle after + % @url synonym for @uref, since that's how everyone uses it. % \let\url=\uref @@ -1906,34 +2694,81 @@ where each line of input produces a line of output.} \let\email=\uref \fi -% Check if we are currently using a typewriter font. Since all the -% Computer Modern typewriter fonts have zero interword stretch (and -% shrink), and it is reasonable to expect all typewriter fonts to have -% this property, we can check that font parameter. -% -\def\ifmonospace{\ifdim\fontdimen3\font=0pt } +% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always), +% `example' (@kbd uses ttsl only inside of @example and friends), +% or `code' (@kbd uses normal tty font always). +\parseargdef\kbdinputstyle{% + \def\txiarg{#1}% + \ifx\txiarg\worddistinct + \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}% + \else\ifx\txiarg\wordexample + \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}% + \else\ifx\txiarg\wordcode + \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}% + \else + \errhelp = \EMsimple + \errmessage{Unknown @kbdinputstyle setting `\txiarg'}% + \fi\fi\fi +} +\def\worddistinct{distinct} +\def\wordexample{example} +\def\wordcode{code} + +% Default is `distinct'. +\kbdinputstyle distinct + +% @kbd is like @code, except that if the argument is just one @key command, +% then @kbd has no effect. +\def\kbd#1{{\def\look{#1}\expandafter\kbdsub\look??\par}} + +\def\xkey{\key} +\def\kbdsub#1#2#3\par{% + \def\one{#1}\def\three{#3}\def\threex{??}% + \ifx\one\xkey\ifx\threex\three \key{#2}% + \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi + \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi +} + +% definition of @key that produces a lozenge. Doesn't adjust to text size. +%\setfont\keyrm\rmshape{8}{1000}{OT1} +%\font\keysy=cmsy9 +%\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% +% \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% +% \vbox{\hrule\kern-0.4pt +% \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% +% \kern-0.4pt\hrule}% +% \kern-.06em\raise0.4pt\hbox{\angleright}}}} + +% definition of @key with no lozenge. If the current font is already +% monospace, don't change it; that way, we respect @kbdinputstyle. But +% if it isn't monospace, then use \tt. +% +\def\key#1{{\setupmarkupstyle{key}% + \nohyphenation + \ifmonospace\else\tt\fi + #1}\null} + +% @clicksequence{File @click{} Open ...} +\def\clicksequence#1{\begingroup #1\endgroup} + +% @clickstyle @arrow (by default) +\parseargdef\clickstyle{\def\click{#1}} +\def\click{\arrow} % Typeset a dimension, e.g., `in' or `pt'. The only reason for the % argument is to make the input look right: @dmn{pt} instead of @dmn{}pt. % \def\dmn#1{\thinspace #1} -\def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par} - % @l was never documented to mean ``switch to the Lisp font'', % and it is not used as such in any manual I can find. We need it for % Polish suppressed-l. --karl, 22sep96. %\def\l#1{{\li #1}\null} -% Explicit font changes: @r, @sc, undocumented @ii. -\def\r#1{{\rm #1}} % roman font -\def\sc#1{{\smallcaps#1}} % smallcaps font -\def\ii#1{{\it #1}} % italic font - % @acronym for "FBI", "NATO", and the like. % We print this one point size smaller, since it's intended for % all-uppercase. -% +% \def\acronym#1{\doacronym #1,,\finish} \def\doacronym#1,#2,#3\finish{% {\selectfonts\lsize #1}% @@ -1941,24 +2776,392 @@ where each line of input produces a line of output.} \ifx\temp\empty \else \space ({\unsepspaces \ignorespaces \temp \unskip})% \fi + \null % reset \spacefactor=1000 } % @abbr for "Comput. J." and the like. % No font change, but don't do end-of-sentence spacing. -% +% \def\abbr#1{\doabbr #1,,\finish} \def\doabbr#1,#2,#3\finish{% - {\frenchspacing #1}% + {\plainfrenchspacing #1}% \def\temp{#2}% \ifx\temp\empty \else \space ({\unsepspaces \ignorespaces \temp \unskip})% \fi + \null % reset \spacefactor=1000 +} + +% @asis just yields its argument. Used with @table, for example. +% +\def\asis#1{#1} + +% @math outputs its argument in math mode. +% +% One complication: _ usually means subscripts, but it could also mean +% an actual _ character, as in @math{@var{some_variable} + 1}. So make +% _ active, and distinguish by seeing if the current family is \slfam, +% which is what @var uses. +{ + \catcode`\_ = \active + \gdef\mathunderscore{% + \catcode`\_=\active + \def_{\ifnum\fam=\slfam \_\else\sb\fi}% + } +} +% Another complication: we want \\ (and @\) to output a math (or tt) \. +% FYI, plain.tex uses \\ as a temporary control sequence (for no +% particular reason), but this is not advertised and we don't care. +% +% The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\. +\def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi} +% +\def\math{% + \tex + \mathunderscore + \let\\ = \mathbackslash + \mathactive + % make the texinfo accent commands work in math mode + \let\"=\ddot + \let\'=\acute + \let\==\bar + \let\^=\hat + \let\`=\grave + \let\u=\breve + \let\v=\check + \let\~=\tilde + \let\dotaccent=\dot + $\finishmath +} +\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex. + +% Some active characters (such as <) are spaced differently in math. +% We have to reset their definitions in case the @math was an argument +% to a command which sets the catcodes (such as @item or @section). +% +{ + \catcode`^ = \active + \catcode`< = \active + \catcode`> = \active + \catcode`+ = \active + \catcode`' = \active + \gdef\mathactive{% + \let^ = \ptexhat + \let< = \ptexless + \let> = \ptexgtr + \let+ = \ptexplus + \let' = \ptexquoteright + } +} + +% ctrl is no longer a Texinfo command, but leave this definition for fun. +\def\ctrl #1{{\tt \rawbackslash \hat}#1} + +% @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}. +% Ignore unless FMTNAME == tex; then it is like @iftex and @tex, +% except specified as a normal braced arg, so no newlines to worry about. +% +\def\outfmtnametex{tex} +% +\long\def\inlinefmt#1{\doinlinefmt #1,\finish} +\long\def\doinlinefmt#1,#2,\finish{% + \def\inlinefmtname{#1}% + \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi +} +% For raw, must switch into @tex before parsing the argument, to avoid +% setting catcodes prematurely. Doing it this way means that, for +% example, @inlineraw{html, foo{bar} gets a parse error instead of being +% ignored. But this isn't important because if people want a literal +% *right* brace they would have to use a command anyway, so they may as +% well use a command to get a left brace too. We could re-use the +% delimiter character idea from \verb, but it seems like overkill. +% +\long\def\inlineraw{\tex \doinlineraw} +\long\def\doinlineraw#1{\doinlinerawtwo #1,\finish} +\def\doinlinerawtwo#1,#2,\finish{% + \def\inlinerawname{#1}% + \ifx\inlinerawname\outfmtnametex \ignorespaces #2\fi + \endgroup % close group opened by \tex. +} + + +\message{glyphs,} +% and logos. + +% @@ prints an @, as does @atchar{}. +\def\@{\char64 } +\let\atchar=\@ + +% @{ @} @lbracechar{} @rbracechar{} all generate brace characters. +% Unless we're in typewriter, use \ecfont because the CM text fonts do +% not have braces, and we don't want to switch into math. +\def\mylbrace{{\ifmonospace\else\ecfont\fi \char123}} +\def\myrbrace{{\ifmonospace\else\ecfont\fi \char125}} +\let\{=\mylbrace \let\lbracechar=\{ +\let\}=\myrbrace \let\rbracechar=\} +\begingroup + % Definitions to produce \{ and \} commands for indices, + % and @{ and @} for the aux/toc files. + \catcode`\{ = \other \catcode`\} = \other + \catcode`\[ = 1 \catcode`\] = 2 + \catcode`\! = 0 \catcode`\\ = \other + !gdef!lbracecmd[\{]% + !gdef!rbracecmd[\}]% + !gdef!lbraceatcmd[@{]% + !gdef!rbraceatcmd[@}]% +!endgroup + +% @comma{} to avoid , parsing problems. +\let\comma = , + +% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent +% Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H. +\let\, = \ptexc +\let\dotaccent = \ptexdot +\def\ringaccent#1{{\accent23 #1}} +\let\tieaccent = \ptext +\let\ubaraccent = \ptexb +\let\udotaccent = \d + +% Other special characters: @questiondown @exclamdown @ordf @ordm +% Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss. +\def\questiondown{?`} +\def\exclamdown{!`} +\def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}} +\def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}} + +% Dotless i and dotless j, used for accents. +\def\imacro{i} +\def\jmacro{j} +\def\dotless#1{% + \def\temp{#1}% + \ifx\temp\imacro \ifmmode\imath \else\ptexi \fi + \else\ifx\temp\jmacro \ifmmode\jmath \else\j \fi + \else \errmessage{@dotless can be used only with i or j}% + \fi\fi } +% The \TeX{} logo, as in plain, but resetting the spacing so that a +% period following counts as ending a sentence. (Idea found in latex.) +% +\edef\TeX{\TeX \spacefactor=1000 } + +% @LaTeX{} logo. Not quite the same results as the definition in +% latex.ltx, since we use a different font for the raised A; it's most +% convenient for us to use an explicitly smaller font, rather than using +% the \scriptstyle font (since we don't reset \scriptstyle and +% \scriptscriptstyle). +% +\def\LaTeX{% + L\kern-.36em + {\setbox0=\hbox{T}% + \vbox to \ht0{\hbox{% + \ifx\textnominalsize\xwordpt + % for 10pt running text, \lllsize (8pt) is too small for the A in LaTeX. + % Revert to plain's \scriptsize, which is 7pt. + \count255=\the\fam $\fam\count255 \scriptstyle A$% + \else + % For 11pt, we can use our lllsize. + \selectfonts\lllsize A% + \fi + }% + \vss + }}% + \kern-.15em + \TeX +} + +% Some math mode symbols. +\def\bullet{$\ptexbullet$} +\def\geq{\ifmmode \ge\else $\ge$\fi} +\def\leq{\ifmmode \le\else $\le$\fi} +\def\minus{\ifmmode -\else $-$\fi} + +% @dots{} outputs an ellipsis using the current font. +% We do .5em per period so that it has the same spacing in the cm +% typewriter fonts as three actual period characters; on the other hand, +% in other typewriter fonts three periods are wider than 1.5em. So do +% whichever is larger. +% +\def\dots{% + \leavevmode + \setbox0=\hbox{...}% get width of three periods + \ifdim\wd0 > 1.5em + \dimen0 = \wd0 + \else + \dimen0 = 1.5em + \fi + \hbox to \dimen0{% + \hskip 0pt plus.25fil + .\hskip 0pt plus1fil + .\hskip 0pt plus1fil + .\hskip 0pt plus.5fil + }% +} + +% @enddots{} is an end-of-sentence ellipsis. +% +\def\enddots{% + \dots + \spacefactor=\endofsentencespacefactor +} + +% @point{}, @result{}, @expansion{}, @print{}, @equiv{}. +% +% Since these characters are used in examples, they should be an even number of +% \tt widths. Each \tt character is 1en, so two makes it 1em. +% +\def\point{$\star$} +\def\arrow{\leavevmode\raise.05ex\hbox to 1em{\hfil$\rightarrow$\hfil}} +\def\result{\leavevmode\raise.05ex\hbox to 1em{\hfil$\Rightarrow$\hfil}} +\def\expansion{\leavevmode\hbox to 1em{\hfil$\mapsto$\hfil}} +\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}} +\def\equiv{\leavevmode\hbox to 1em{\hfil$\ptexequiv$\hfil}} + +% The @error{} command. +% Adapted from the TeXbook's \boxit. +% +\newbox\errorbox +% +{\tentt \global\dimen0 = 3em}% Width of the box. +\dimen2 = .55pt % Thickness of rules +% The text. (`r' is open on the right, `e' somewhat less so on the left.) +\setbox0 = \hbox{\kern-.75pt \reducedsf \putworderror\kern-1.5pt} +% +\setbox\errorbox=\hbox to \dimen0{\hfil + \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. + \advance\hsize by -2\dimen2 % Rules. + \vbox{% + \hrule height\dimen2 + \hbox{\vrule width\dimen2 \kern3pt % Space to left of text. + \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below. + \kern3pt\vrule width\dimen2}% Space to right. + \hrule height\dimen2} + \hfil} +% +\def\error{\leavevmode\lower.7ex\copy\errorbox} + % @pounds{} is a sterling sign, which Knuth put in the CM italic font. % \def\pounds{{\it\$}} +% @euro{} comes from a separate font, depending on the current style. +% We use the free feym* fonts from the eurosym package by Henrik +% Theiling, which support regular, slanted, bold and bold slanted (and +% "outlined" (blackboard board, sort of) versions, which we don't need). +% It is available from http://www.ctan.org/tex-archive/fonts/eurosym. +% +% Although only regular is the truly official Euro symbol, we ignore +% that. The Euro is designed to be slightly taller than the regular +% font height. +% +% feymr - regular +% feymo - slanted +% feybr - bold +% feybo - bold slanted +% +% There is no good (free) typewriter version, to my knowledge. +% A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide. +% Hmm. +% +% Also doesn't work in math. Do we need to do math with euro symbols? +% Hope not. +% +% +\def\euro{{\eurofont e}} +\def\eurofont{% + % We set the font at each command, rather than predefining it in + % \textfonts and the other font-switching commands, so that + % installations which never need the symbol don't have to have the + % font installed. + % + % There is only one designed size (nominal 10pt), so we always scale + % that to the current nominal size. + % + % By the way, simply using "at 1em" works for cmr10 and the like, but + % does not work for cmbx10 and other extended/shrunken fonts. + % + \def\eurosize{\csname\curfontsize nominalsize\endcsname}% + % + \ifx\curfontstyle\bfstylename + % bold: + \font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize + \else + % regular: + \font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize + \fi + \thiseurofont +} + +% Glyphs from the EC fonts. We don't use \let for the aliases, because +% sometimes we redefine the original macro, and the alias should reflect +% the redefinition. +% +% Use LaTeX names for the Icelandic letters. +\def\DH{{\ecfont \char"D0}} % Eth +\def\dh{{\ecfont \char"F0}} % eth +\def\TH{{\ecfont \char"DE}} % Thorn +\def\th{{\ecfont \char"FE}} % thorn +% +\def\guillemetleft{{\ecfont \char"13}} +\def\guillemotleft{\guillemetleft} +\def\guillemetright{{\ecfont \char"14}} +\def\guillemotright{\guillemetright} +\def\guilsinglleft{{\ecfont \char"0E}} +\def\guilsinglright{{\ecfont \char"0F}} +\def\quotedblbase{{\ecfont \char"12}} +\def\quotesinglbase{{\ecfont \char"0D}} +% +% This positioning is not perfect (see the ogonek LaTeX package), but +% we have the precomposed glyphs for the most common cases. We put the +% tests to use those glyphs in the single \ogonek macro so we have fewer +% dummy definitions to worry about for index entries, etc. +% +% ogonek is also used with other letters in Lithuanian (IOU), but using +% the precomposed glyphs for those is not so easy since they aren't in +% the same EC font. +\def\ogonek#1{{% + \def\temp{#1}% + \ifx\temp\macrocharA\Aogonek + \else\ifx\temp\macrochara\aogonek + \else\ifx\temp\macrocharE\Eogonek + \else\ifx\temp\macrochare\eogonek + \else + \ecfont \setbox0=\hbox{#1}% + \ifdim\ht0=1ex\accent"0C #1% + \else\ooalign{\unhbox0\crcr\hidewidth\char"0C \hidewidth}% + \fi + \fi\fi\fi\fi + }% +} +\def\Aogonek{{\ecfont \char"81}}\def\macrocharA{A} +\def\aogonek{{\ecfont \char"A1}}\def\macrochara{a} +\def\Eogonek{{\ecfont \char"86}}\def\macrocharE{E} +\def\eogonek{{\ecfont \char"A6}}\def\macrochare{e} +% +% Use the ec* fonts (cm-super in outline format) for non-CM glyphs. +\def\ecfont{% + % We can't distinguish serif/sans and italic/slanted, but this + % is used for crude hacks anyway (like adding French and German + % quotes to documents typeset with CM, where we lose kerning), so + % hopefully nobody will notice/care. + \edef\ecsize{\csname\curfontsize ecsize\endcsname}% + \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}% + \ifmonospace + % typewriter: + \font\thisecfont = ectt\ecsize \space at \nominalsize + \else + \ifx\curfontstyle\bfstylename + % bold: + \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize + \else + % regular: + \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize + \fi + \fi + \thisecfont +} + % @registeredsymbol - R in a circle. The font for the R should really % be smaller yet, but lllsize is the best we can do for now. % Adapted from the plain.tex definition of \copyright. @@ -1969,14 +3172,24 @@ where each line of input produces a line of output.} }$% } +% @textdegree - the normal degrees sign. +% +\def\textdegree{$^\circ$} + % Laurent Siebenmann reports \Orb undefined with: % Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38 % so we'll define it if necessary. -% -\ifx\Orb\undefined +% +\ifx\Orb\thisisundefined \def\Orb{\mathhexbox20D} \fi +% Quotes. +\chardef\quotedblleft="5C +\chardef\quotedblright=`\" +\chardef\quoteleft=`\` +\chardef\quoteright=`\' + \message{page headings,} @@ -1995,8 +3208,9 @@ where each line of input produces a line of output.} \newif\ifsetshortcontentsaftertitlepage \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue -\parseargdef\shorttitlepage{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}% - \endgroup\page\hbox{}\page} +\parseargdef\shorttitlepage{% + \begingroup \hbox{}\vskip 1.5in \chaprm \centerline{#1}% + \endgroup\page\hbox{}\page} \envdef\titlepage{% % Open one extra group, as we want to close it in the middle of \Etitlepage. @@ -2056,17 +3270,28 @@ where each line of input produces a line of output.} \finishedtitlepagetrue } -%%% Macros to be used within @titlepage: +% Settings used for typesetting titles: no hyphenation, no indentation, +% don't worry much about spacing, ragged right. This should be used +% inside a \vbox, and fonts need to be set appropriately first. Because +% it is always used for titles, nothing else, we call \rmisbold. \par +% should be specified before the end of the \vbox, since a vbox is a group. +% +\def\raggedtitlesettings{% + \rmisbold + \hyphenpenalty=10000 + \parindent=0pt + \tolerance=5000 + \ptexraggedright +} + +% Macros to be used within @titlepage: \let\subtitlerm=\tenrm \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines} -\def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines - \let\tt=\authortt} - \parseargdef\title{% \checkenv\titlepage - \leftline{\titlefonts\rm #1} + \vbox{\titlefonts \raggedtitlesettings #1\par}% % print a rule at the page bottom also. \finishedtitlepagefalse \vskip4pt \hrule height 4pt width \hsize \vskip4pt @@ -2087,12 +3312,12 @@ where each line of input produces a line of output.} \else \checkenv\titlepage \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi - {\authorfont \leftline{#1}}% + {\secfonts\rmisbold \leftline{#1}}% \fi } -%%% Set up page headings and footings. +% Set up page headings and footings. \let\thispage=\folio @@ -2140,12 +3365,39 @@ where each line of input produces a line of output.} % % Leave some space for the footline. Hopefully ok to assume % @evenfooting will not be used by itself. - \global\advance\pageheight by -\baselineskip - \global\advance\vsize by -\baselineskip + \global\advance\pageheight by -12pt + \global\advance\vsize by -12pt } \parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}} +% @evenheadingmarks top \thischapter <- chapter at the top of a page +% @evenheadingmarks bottom \thischapter <- chapter at the bottom of a page +% +% The same set of arguments for: +% +% @oddheadingmarks +% @evenfootingmarks +% @oddfootingmarks +% @everyheadingmarks +% @everyfootingmarks + +\def\evenheadingmarks{\headingmarks{even}{heading}} +\def\oddheadingmarks{\headingmarks{odd}{heading}} +\def\evenfootingmarks{\headingmarks{even}{footing}} +\def\oddfootingmarks{\headingmarks{odd}{footing}} +\def\everyheadingmarks#1 {\headingmarks{even}{heading}{#1} + \headingmarks{odd}{heading}{#1} } +\def\everyfootingmarks#1 {\headingmarks{even}{footing}{#1} + \headingmarks{odd}{footing}{#1} } +% #1 = even/odd, #2 = heading/footing, #3 = top/bottom. +\def\headingmarks#1#2#3 {% + \expandafter\let\expandafter\temp \csname get#3headingmarks\endcsname + \global\expandafter\let\csname get#1#2marks\endcsname \temp +} + +\everyheadingmarks bottom +\everyfootingmarks bottom % @headings double turns headings on for double-sided printing. % @headings single turns headings on for single-sided printing. @@ -2159,10 +3411,14 @@ where each line of input produces a line of output.} \def\headings #1 {\csname HEADINGS#1\endcsname} -\def\HEADINGSoff{% -\global\evenheadline={\hfil} \global\evenfootline={\hfil} -\global\oddheadline={\hfil} \global\oddfootline={\hfil}} -\HEADINGSoff +\def\headingsoff{% non-global headings elimination + \evenheadline={\hfil}\evenfootline={\hfil}% + \oddheadline={\hfil}\oddfootline={\hfil}% +} + +\def\HEADINGSoff{{\globaldefs=1 \headingsoff}} % global setting +\HEADINGSoff % it's the default + % When we turn headings on, set the page number to 1. % For double-sided printing, put current file name in lower left corner, % chapter name on inside top of right hand pages, document @@ -2213,7 +3469,7 @@ where each line of input produces a line of output.} % This produces Day Month Year style of output. % Only define if not already defined, in case a txi-??.tex file has set % up a different format (e.g., txi-cs.tex does this). -\ifx\today\undefined +\ifx\today\thisisundefined \def\today{% \number\day\space \ifcase\month @@ -2274,7 +3530,7 @@ where each line of input produces a line of output.} \begingroup \advance\leftskip by-\tableindent \advance\hsize by\tableindent - \advance\rightskip by0pt plus1fil + \advance\rightskip by0pt plus1fil\relax \leavevmode\unhbox0\par \endgroup % @@ -2288,7 +3544,7 @@ where each line of input produces a line of output.} % cause the example and the item to crash together. So we use this % bizarre value of 10001 as a signal to \aboveenvbreak to insert % \parskip glue after all. Section titles are handled this way also. - % + % \penalty 10001 \endgroup \itemxneedsnegativevskipfalse @@ -2314,15 +3570,26 @@ where each line of input produces a line of output.} % @table, @ftable, @vtable. \envdef\table{% \let\itemindex\gobble - \tablex + \tablecheck{table}% } \envdef\ftable{% \def\itemindex ##1{\doind {fn}{\code{##1}}}% - \tablex + \tablecheck{ftable}% } \envdef\vtable{% \def\itemindex ##1{\doind {vr}{\code{##1}}}% - \tablex + \tablecheck{vtable}% +} +\def\tablecheck#1{% + \ifnum \the\catcode`\^^M=\active + \endgroup + \errmessage{This command won't work in this context; perhaps the problem is + that we are \inenvironment\thisenv}% + \def\next{\doignore{#1}}% + \else + \let\next\tablex + \fi + \next } \def\tablex#1{% \def\itemindicate{#1}% @@ -2371,9 +3638,18 @@ where each line of input produces a line of output.} \parindent=0pt \parskip=\smallskipamount \ifdim\parskip=0pt \parskip=2pt \fi + % + % Try typesetting the item mark that if the document erroneously says + % something like @itemize @samp (intending @table), there's an error + % right away at the @itemize. It's not the best error message in the + % world, but it's better than leaving it to the @item. This means if + % the user wants an empty mark, they have to say @w{} not just @w. \def\itemcontents{#1}% + \setbox0 = \hbox{\itemcontents}% + % % @itemize with no arg is equivalent to @itemize @bullet. \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi + % \let\item=\itemizeitem } @@ -2394,6 +3670,7 @@ where each line of input produces a line of output.} \ifnum\lastpenalty<10000 \parskip=0in \fi \noindent \hbox to 0pt{\hss \itemcontents \kern\itemmargin}% + % \vadjust{\penalty 1200}}% not good to break after first line of item. \flushcr } @@ -2615,12 +3892,19 @@ where each line of input produces a line of output.} % % @headitem starts a heading row, which we typeset in bold. % Assignments have to be global since we are inside the implicit group -% of an alignment entry. Note that \everycr resets \everytab. -\def\headitem{\checkenv\multitable \crcr \global\everytab={\bf}\the\everytab}% +% of an alignment entry. \everycr resets \everytab so we don't have to +% undo it ourselves. +\def\headitemfont{\b}% for people to use in the template row; not changeable +\def\headitem{% + \checkenv\multitable + \crcr + \global\everytab={\bf}% can't use \headitemfont since the parsing differs + \the\everytab % for the first item +}% % % A \tab used to include \hskip1sp. But then the space in a template % line is not enough. That is bad. So let's go back to just `&' until -% we encounter the problem it was intended to solve again. +% we again encounter the problem the 1sp was intended to solve. % --karl, nathan@acm.org, 20apr99. \def\tab{\checkenv\multitable &\the\everytab}% @@ -2721,31 +4005,29 @@ where each line of input produces a line of output.} \global\setpercentfalse } -\def\setmultitablespacing{% test to see if user has set \multitablelinespace. -% If so, do nothing. If not, give it an appropriate dimension based on -% current baselineskip. +\def\setmultitablespacing{% + \def\multistrut{\strut}% just use the standard line spacing + % + % Compute \multitablelinespace (if not defined by user) for use in + % \multitableparskip calculation. We used define \multistrut based on + % this, but (ironically) that caused the spacing to be off. + % See bug-texinfo report from Werner Lemberg, 31 Oct 2004 12:52:20 +0100. \ifdim\multitablelinespace=0pt \setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip \global\advance\multitablelinespace by-\ht0 -%% strut to put in table in case some entry doesn't have descenders, -%% to keep lines equally spaced -\let\multistrut = \strut -\else -%% FIXME: what is \box0 supposed to be? -\gdef\multistrut{\vrule height\multitablelinespace depth\dp0 -width0pt\relax} \fi -%% Test to see if parskip is larger than space between lines of -%% table. If not, do nothing. -%% If so, set to same dimension as multitablelinespace. +\fi +% Test to see if parskip is larger than space between lines of +% table. If not, do nothing. +% If so, set to same dimension as multitablelinespace. \ifdim\multitableparskip>\multitablelinespace \global\multitableparskip=\multitablelinespace -\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller - %% than skip between lines in the table. +\global\advance\multitableparskip-7pt % to keep parskip somewhat smaller + % than skip between lines in the table. \fi% \ifdim\multitableparskip=0pt \global\multitableparskip=\multitablelinespace -\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller - %% than skip between lines in the table. +\global\advance\multitableparskip-7pt % to keep parskip somewhat smaller + % than skip between lines in the table. \fi} @@ -2791,6 +4073,7 @@ width0pt\relax} \fi \def\doignore#1{\begingroup % Scan in ``verbatim'' mode: + \obeylines \catcode`\@ = \other \catcode`\{ = \other \catcode`\} = \other @@ -2811,16 +4094,16 @@ width0pt\relax} \fi \gdef\dodoignore#1{% % #1 contains the command name as a string, e.g., `ifinfo'. % - % Define a command to find the next `@end #1', which must be on a line - % by itself. - \long\def\doignoretext##1^^M@end #1{\doignoretextyyy##1^^M@#1\_STOP_}% + % Define a command to find the next `@end #1'. + \long\def\doignoretext##1^^M@end #1{% + \doignoretextyyy##1^^M@#1\_STOP_}% + % % And this command to find another #1 command, at the beginning of a % line. (Otherwise, we would consider a line `@c @ifset', for % example, to count as an @ifset for nesting.) \long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}% % % And now expand that command. - \obeylines % \doignoretext ^^M% }% } @@ -2850,7 +4133,12 @@ width0pt\relax} \fi } % Finish off ignored text. -\def\enddoignore{\endgroup\ignorespaces} +{ \obeylines% + % Ignore anything after the last `@end #1'; this matters in verbatim + % environments, where otherwise the newline after an ignored conditional + % would result in a blank line in the output. + \gdef\enddoignore#1^^M{\endgroup\ignorespaces}% +} % @set VAR sets the variable VAR to an empty value. @@ -2900,7 +4188,7 @@ width0pt\relax} \fi % ..., but we might end up with active ones in the argument if % we're called from @code, as @code{@value{foo-bar_}}, though. % So \let them to their normal equivalents. - \let-\realdash \let_\normalunderscore + \let-\normaldash \let_\normalunderscore } } @@ -2940,7 +4228,7 @@ width0pt\relax} \fi } \def\ifsetfail{\doignore{ifset}} -% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been +% @ifclear VAR ... @end executes the `...' iff VAR has never been % defined with @set, or has been undefined with @clear. % % The `\else' inside the `\doifset' parameter is a trick to reuse the @@ -2951,6 +4239,35 @@ width0pt\relax} \fi \def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}} \def\ifclearfail{\doignore{ifclear}} +% @ifcommandisdefined CMD ... @end executes the `...' if CMD (written +% without the @) is in fact defined. We can only feasibly check at the +% TeX level, so something like `mathcode' is going to considered +% defined even though it is not a Texinfo command. +% +\makecond{ifcommanddefined} +\def\ifcommanddefined{\parsearg{\doifcmddefined{\let\next=\ifcmddefinedfail}}} +% +\def\doifcmddefined#1#2{{% + \makevalueexpandable + \let\next=\empty + \expandafter\ifx\csname #2\endcsname\relax + #1% If not defined, \let\next as above. + \fi + \expandafter + }\next +} +\def\ifcmddefinedfail{\doignore{ifcommanddefined}} + +% @ifcommandnotdefined CMD ... handled similar to @ifclear above. +\makecond{ifcommandnotdefined} +\def\ifcommandnotdefined{% + \parsearg{\doifcmddefined{\else \let\next=\ifcmdnotdefinedfail}}} +\def\ifcmdnotdefinedfail{\doignore{ifcommandnotdefined}} + +% Set the `txicommandconditionals' variable, so documents have a way to +% test if the @ifcommand...defined conditionals are available. +\set txicommandconditionals + % @dircategory CATEGORY -- specify a category of the dir file % which this file should belong to. Ignore this in TeX. \let\dircategory=\comment @@ -2963,9 +4280,8 @@ width0pt\relax} \fi % Index generation facilities % Define \newwrite to be identical to plain tex's \newwrite -% except not \outer, so it can be used within \newindex. -{\catcode`\@=11 -\gdef\newwrite{\alloc@7\write\chardef\sixt@@n}} +% except not \outer, so it can be used within macros and \if's. +\edef\newwrite{\makecsname{ptexnewwrite}} % \newindex {foo} defines an index named foo. % It automatically defines \fooindex such that @@ -3016,11 +4332,11 @@ width0pt\relax} \fi \def\dosynindex#1#2#3{% % Only do \closeout if we haven't already done it, else we'll end up % closing the target index. - \expandafter \ifx\csname donesynindex#2\endcsname \undefined + \expandafter \ifx\csname donesynindex#2\endcsname \relax % The \closeout helps reduce unnecessary open files; the limit on the % Acorn RISC OS is a mere 16 files. \expandafter\closeout\csname#2indfile\endcsname - \expandafter\let\csname\donesynindex#2\endcsname = 1 + \expandafter\let\csname donesynindex#2\endcsname = 1 \fi % redefine \fooindfile: \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname @@ -3051,42 +4367,53 @@ width0pt\relax} \fi % we have to laboriously prevent expansion for those that we don't. % \def\indexdummies{% + \escapechar = `\\ % use backslash in output files. \def\@{@}% change to @@ when we switch to @ as escape char in index files. \def\ {\realbackslash\space }% - % Need these in case \tex is in effect and \{ is a \delimiter again. - % But can't use \lbracecmd and \rbracecmd because texindex assumes - % braces and backslashes are used only as delimiters. - \let\{ = \mylbrace - \let\} = \myrbrace - % - % \definedummyword defines \#1 as \realbackslash #1\space, thus - % effectively preventing its expansion. This is used only for control - % words, not control letters, because the \space would be incorrect - % for control characters, but is needed to separate the control word - % from whatever follows. % - % For control letters, we have \definedummyletter, which omits the - % space. - % - % These can be used both for control words that take an argument and - % those that do not. If it is followed by {arg} in the input, then - % that will dutifully get written to the index (or wherever). - % - \def\definedummyword##1{% - \expandafter\def\csname ##1\endcsname{\realbackslash ##1\space}% - }% - \def\definedummyletter##1{% - \expandafter\def\csname ##1\endcsname{\realbackslash ##1}% - }% - \let\definedummyaccent\definedummyletter + % Need these unexpandable (because we define \tt as a dummy) + % definitions when @{ or @} appear in index entry text. Also, more + % complicated, when \tex is in effect and \{ is a \delimiter again. + % We can't use \lbracecmd and \rbracecmd because texindex assumes + % braces and backslashes are used only as delimiters. Perhaps we + % should define @lbrace and @rbrace commands a la @comma. + \def\{{{\tt\char123}}% + \def\}{{\tt\char125}}% + % + % I don't entirely understand this, but when an index entry is + % generated from a macro call, the \endinput which \scanmacro inserts + % causes processing to be prematurely terminated. This is, + % apparently, because \indexsorttmp is fully expanded, and \endinput + % is an expandable command. The redefinition below makes \endinput + % disappear altogether for that purpose -- although logging shows that + % processing continues to some further point. On the other hand, it + % seems \endinput does not hurt in the printed index arg, since that + % is still getting written without apparent harm. + % + % Sample source (mac-idx3.tex, reported by Graham Percival to + % help-texinfo, 22may06): + % @macro funindex {WORD} + % @findex xyz + % @end macro + % ... + % @funindex commtest + % + % The above is not enough to reproduce the bug, but it gives the flavor. + % + % Sample whatsit resulting: + % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}} + % + % So: + \let\endinput = \empty % % Do the redefinitions. \commondummies } -% For the aux file, @ is the escape character. So we want to redefine -% everything using @ instead of \realbackslash. When everything uses -% @, this will be simpler. +% For the aux and toc files, @ is the escape character. So we want to +% redefine everything using @ as the escape character (instead of +% \realbackslash, still used for index files). When everything uses @, +% this will be simpler. % \def\atdummies{% \def\@{@@}% @@ -3094,146 +4421,184 @@ width0pt\relax} \fi \let\{ = \lbraceatcmd \let\} = \rbraceatcmd % - % (See comments in \indexdummies.) - \def\definedummyword##1{% - \expandafter\def\csname ##1\endcsname{@##1\space}% - }% - \def\definedummyletter##1{% - \expandafter\def\csname ##1\endcsname{@##1}% - }% - \let\definedummyaccent\definedummyletter - % % Do the redefinitions. \commondummies + \otherbackslash } -% Called from \indexdummies and \atdummies. \definedummyword and -% \definedummyletter must be defined first. +% Called from \indexdummies and \atdummies. % \def\commondummies{% % - \normalturnoffactive + % \definedummyword defines \#1 as \string\#1\space, thus effectively + % preventing its expansion. This is used only for control words, + % not control letters, because the \space would be incorrect for + % control characters, but is needed to separate the control word + % from whatever follows. + % + % For control letters, we have \definedummyletter, which omits the + % space. + % + % These can be used both for control words that take an argument and + % those that do not. If it is followed by {arg} in the input, then + % that will dutifully get written to the index (or wherever). + % + \def\definedummyword ##1{\def##1{\string##1\space}}% + \def\definedummyletter##1{\def##1{\string##1}}% + \let\definedummyaccent\definedummyletter % \commondummiesnofonts % - \definedummyletter{_}% + \definedummyletter\_% + \definedummyletter\-% % % Non-English letters. - \definedummyword{AA}% - \definedummyword{AE}% - \definedummyword{L}% - \definedummyword{OE}% - \definedummyword{O}% - \definedummyword{aa}% - \definedummyword{ae}% - \definedummyword{l}% - \definedummyword{oe}% - \definedummyword{o}% - \definedummyword{ss}% - \definedummyword{exclamdown}% - \definedummyword{questiondown}% - \definedummyword{ordf}% - \definedummyword{ordm}% + \definedummyword\AA + \definedummyword\AE + \definedummyword\DH + \definedummyword\L + \definedummyword\O + \definedummyword\OE + \definedummyword\TH + \definedummyword\aa + \definedummyword\ae + \definedummyword\dh + \definedummyword\exclamdown + \definedummyword\l + \definedummyword\o + \definedummyword\oe + \definedummyword\ordf + \definedummyword\ordm + \definedummyword\questiondown + \definedummyword\ss + \definedummyword\th % % Although these internal commands shouldn't show up, sometimes they do. - \definedummyword{bf}% - \definedummyword{gtr}% - \definedummyword{hat}% - \definedummyword{less}% - \definedummyword{sf}% - \definedummyword{sl}% - \definedummyword{tclose}% - \definedummyword{tt}% - % - \definedummyword{LaTeX}% - \definedummyword{TeX}% + \definedummyword\bf + \definedummyword\gtr + \definedummyword\hat + \definedummyword\less + \definedummyword\sf + \definedummyword\sl + \definedummyword\tclose + \definedummyword\tt + % + \definedummyword\LaTeX + \definedummyword\TeX % % Assorted special characters. - \definedummyword{bullet}% - \definedummyword{comma}% - \definedummyword{copyright}% - \definedummyword{registeredsymbol}% - \definedummyword{dots}% - \definedummyword{enddots}% - \definedummyword{equiv}% - \definedummyword{error}% - \definedummyword{expansion}% - \definedummyword{minus}% - \definedummyword{pounds}% - \definedummyword{point}% - \definedummyword{print}% - \definedummyword{result}% + \definedummyword\arrow + \definedummyword\bullet + \definedummyword\comma + \definedummyword\copyright + \definedummyword\registeredsymbol + \definedummyword\dots + \definedummyword\enddots + \definedummyword\entrybreak + \definedummyword\equiv + \definedummyword\error + \definedummyword\euro + \definedummyword\expansion + \definedummyword\geq + \definedummyword\guillemetleft + \definedummyword\guillemetright + \definedummyword\guilsinglleft + \definedummyword\guilsinglright + \definedummyword\lbracechar + \definedummyword\leq + \definedummyword\minus + \definedummyword\ogonek + \definedummyword\pounds + \definedummyword\point + \definedummyword\print + \definedummyword\quotedblbase + \definedummyword\quotedblleft + \definedummyword\quotedblright + \definedummyword\quoteleft + \definedummyword\quoteright + \definedummyword\quotesinglbase + \definedummyword\rbracechar + \definedummyword\result + \definedummyword\textdegree + % + % We want to disable all macros so that they are not expanded by \write. + \macrolist + % + \normalturnoffactive % % Handle some cases of @value -- where it does not contain any % (non-fully-expandable) commands. \makevalueexpandable - % - % Normal spaces, not active ones. - \unsepspaces - % - % No macro expansion. - \turnoffmacros } % \commondummiesnofonts: common to \commondummies and \indexnofonts. % -% Better have this without active chars. -{ - \catcode`\~=\other - \gdef\commondummiesnofonts{% - % Control letters and accents. - \definedummyletter{!}% - \definedummyaccent{"}% - \definedummyaccent{'}% - \definedummyletter{*}% - \definedummyaccent{,}% - \definedummyletter{.}% - \definedummyletter{/}% - \definedummyletter{:}% - \definedummyaccent{=}% - \definedummyletter{?}% - \definedummyaccent{^}% - \definedummyaccent{`}% - \definedummyaccent{~}% - \definedummyword{u}% - \definedummyword{v}% - \definedummyword{H}% - \definedummyword{dotaccent}% - \definedummyword{ringaccent}% - \definedummyword{tieaccent}% - \definedummyword{ubaraccent}% - \definedummyword{udotaccent}% - \definedummyword{dotless}% - % - % Texinfo font commands. - \definedummyword{b}% - \definedummyword{i}% - \definedummyword{r}% - \definedummyword{sc}% - \definedummyword{t}% - % - % Commands that take arguments. - \definedummyword{acronym}% - \definedummyword{cite}% - \definedummyword{code}% - \definedummyword{command}% - \definedummyword{dfn}% - \definedummyword{emph}% - \definedummyword{env}% - \definedummyword{file}% - \definedummyword{kbd}% - \definedummyword{key}% - \definedummyword{math}% - \definedummyword{option}% - \definedummyword{samp}% - \definedummyword{strong}% - \definedummyword{tie}% - \definedummyword{uref}% - \definedummyword{url}% - \definedummyword{var}% - \definedummyword{verb}% - \definedummyword{w}% - } +\def\commondummiesnofonts{% + % Control letters and accents. + \definedummyletter\!% + \definedummyaccent\"% + \definedummyaccent\'% + \definedummyletter\*% + \definedummyaccent\,% + \definedummyletter\.% + \definedummyletter\/% + \definedummyletter\:% + \definedummyaccent\=% + \definedummyletter\?% + \definedummyaccent\^% + \definedummyaccent\`% + \definedummyaccent\~% + \definedummyword\u + \definedummyword\v + \definedummyword\H + \definedummyword\dotaccent + \definedummyword\ogonek + \definedummyword\ringaccent + \definedummyword\tieaccent + \definedummyword\ubaraccent + \definedummyword\udotaccent + \definedummyword\dotless + % + % Texinfo font commands. + \definedummyword\b + \definedummyword\i + \definedummyword\r + \definedummyword\sansserif + \definedummyword\sc + \definedummyword\slanted + \definedummyword\t + % + % Commands that take arguments. + \definedummyword\abbr + \definedummyword\acronym + \definedummyword\anchor + \definedummyword\cite + \definedummyword\code + \definedummyword\command + \definedummyword\dfn + \definedummyword\dmn + \definedummyword\email + \definedummyword\emph + \definedummyword\env + \definedummyword\file + \definedummyword\image + \definedummyword\indicateurl + \definedummyword\inforef + \definedummyword\kbd + \definedummyword\key + \definedummyword\math + \definedummyword\option + \definedummyword\pxref + \definedummyword\ref + \definedummyword\samp + \definedummyword\strong + \definedummyword\tie + \definedummyword\uref + \definedummyword\url + \definedummyword\var + \definedummyword\verb + \definedummyword\w + \definedummyword\xref } % \indexnofonts is used when outputting the strings to sort the index @@ -3243,14 +4608,10 @@ width0pt\relax} \fi % \def\indexnofonts{% % Accent commands should become @asis. - \def\definedummyaccent##1{% - \expandafter\let\csname ##1\endcsname\asis - }% + \def\definedummyaccent##1{\let##1\asis}% % We can just ignore other control letters. - \def\definedummyletter##1{% - \expandafter\def\csname ##1\endcsname{}% - }% - % Hopefully, all control words can become @asis. + \def\definedummyletter##1{\let##1\empty}% + % All control words become @asis by default; overrides below. \let\definedummyword\definedummyaccent % \commondummiesnofonts @@ -3262,50 +4623,95 @@ width0pt\relax} \fi % \def\ { }% \def\@{@}% - % how to handle braces? \def\_{\normalunderscore}% + \def\-{}% @- shouldn't affect sorting + % + % Unfortunately, texindex is not prepared to handle braces in the + % content at all. So for index sorting, we map @{ and @} to strings + % starting with |, since that ASCII character is between ASCII { and }. + \def\{{|a}% + \def\lbracechar{|a}% + % + \def\}{|b}% + \def\rbracechar{|b}% % % Non-English letters. \def\AA{AA}% \def\AE{AE}% + \def\DH{DZZ}% \def\L{L}% \def\OE{OE}% \def\O{O}% + \def\TH{ZZZ}% \def\aa{aa}% \def\ae{ae}% + \def\dh{dzz}% + \def\exclamdown{!}% \def\l{l}% \def\oe{oe}% - \def\o{o}% - \def\ss{ss}% - \def\exclamdown{!}% - \def\questiondown{?}% \def\ordf{a}% \def\ordm{o}% + \def\o{o}% + \def\questiondown{?}% + \def\ss{ss}% + \def\th{zzz}% % \def\LaTeX{LaTeX}% \def\TeX{TeX}% % % Assorted special characters. % (The following {} will end up in the sort string, but that's ok.) + \def\arrow{->}% \def\bullet{bullet}% \def\comma{,}% \def\copyright{copyright}% - \def\registeredsymbol{R}% \def\dots{...}% \def\enddots{...}% \def\equiv{==}% \def\error{error}% + \def\euro{euro}% \def\expansion{==>}% + \def\geq{>=}% + \def\guillemetleft{<<}% + \def\guillemetright{>>}% + \def\guilsinglleft{<}% + \def\guilsinglright{>}% + \def\leq{<=}% \def\minus{-}% - \def\pounds{pounds}% \def\point{.}% + \def\pounds{pounds}% \def\print{-|}% + \def\quotedblbase{"}% + \def\quotedblleft{"}% + \def\quotedblright{"}% + \def\quoteleft{`}% + \def\quoteright{'}% + \def\quotesinglbase{,}% + \def\registeredsymbol{R}% \def\result{=>}% + \def\textdegree{o}% % - % Don't write macro names. - \emptyusermacros + \expandafter\ifx\csname SETtxiindexlquoteignore\endcsname\relax + \else \indexlquoteignore \fi + % + % We need to get rid of all macros, leaving only the arguments (if present). + % Of course this is not nearly correct, but it is the best we can do for now. + % makeinfo does not expand macros in the argument to @deffn, which ends up + % writing an index entry, and texindex isn't prepared for an index sort entry + % that starts with \. + % + % Since macro invocations are followed by braces, we can just redefine them + % to take a single TeX argument. The case of a macro invocation that + % goes to end-of-line is not handled. + % + \macrolist } +% Undocumented (for FSFS 2nd ed.): @set txiindexlquoteignore makes us +% ignore left quotes in the sort term. +{\catcode`\`=\active + \gdef\indexlquoteignore{\let`=\empty}} + \let\indexbackslash=0 %overridden during \printindex. \let\SETmarginindex=\relax % put index entries in margin (undocumented)? @@ -3331,11 +4737,7 @@ width0pt\relax} \fi % \edef\writeto{\csname#1indfile\endcsname}% % - \ifvmode - \dosubindsanitize - \else - \dosubindwrite - \fi + \safewhatsit\dosubindwrite }% \fi } @@ -3350,7 +4752,6 @@ width0pt\relax} \fi % % Remember, we are within a group. \indexdummies % Must do this here, since \bf, etc expand at this stage - \escapechar=`\\ \def\backslashcurfont{\indexbackslash}% \indexbackslash isn't defined now % so it will be output as is; and it will print as backslash. % @@ -3373,13 +4774,13 @@ width0pt\relax} \fi \temp } -% Take care of unwanted page breaks: +% Take care of unwanted page breaks/skips around a whatsit: % % If a skip is the last thing on the list now, preserve it % by backing up by \lastskip, doing the \write, then inserting % the skip again. Otherwise, the whatsit generated by the -% \write will make \lastskip zero. The result is that sequences -% like this: +% \write or \pdfdest will make \lastskip zero. The result is that +% sequences like this: % @end defun % @tindex whatever % @defun ... @@ -3403,25 +4804,30 @@ width0pt\relax} \fi % \edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname} % +\newskip\whatsitskip +\newcount\whatsitpenalty +% % ..., ready, GO: % -\def\dosubindsanitize{% +\def\safewhatsit#1{\ifhmode + #1% + \else % \lastskip and \lastpenalty cannot both be nonzero simultaneously. - \skip0 = \lastskip + \whatsitskip = \lastskip \edef\lastskipmacro{\the\lastskip}% - \count255 = \lastpenalty + \whatsitpenalty = \lastpenalty % % If \lastskip is nonzero, that means the last item was a % skip. And since a skip is discardable, that means this - % -\skip0 glue we're inserting is preceded by a + % -\whatsitskip glue we're inserting is preceded by a % non-discardable item, therefore it is not a potential % breakpoint, therefore no \nobreak needed. \ifx\lastskipmacro\zeroskipmacro \else - \vskip-\skip0 + \vskip-\whatsitskip \fi % - \dosubindwrite + #1% % \ifx\lastskipmacro\zeroskipmacro % If \lastskip was zero, perhaps the last item was a penalty, and @@ -3429,20 +4835,19 @@ width0pt\relax} \fi % to re-insert the same penalty (values >10000 are used for various % signals); since we just inserted a non-discardable item, any % following glue (such as a \parskip) would be a breakpoint. For example: - % % @deffn deffn-whatever % @vindex index-whatever % Description. % would allow a break between the index-whatever whatsit % and the "Description." paragraph. - \ifnum\count255>9999 \penalty\count255 \fi + \ifnum\whatsitpenalty>9999 \penalty\whatsitpenalty \fi \else % On the other hand, if we had a nonzero \lastskip, % this make-up glue would be preceded by a non-discardable item % (the whatsit from the \write), so we must insert a \nobreak. - \nobreak\vskip\skip0 + \nobreak\vskip\whatsitskip \fi -} +\fi} % The index entry written in the file actually looks like % \entry {sortstring}{page}{topic} @@ -3484,6 +4889,7 @@ width0pt\relax} \fi % \smallfonts \rm \tolerance = 9500 + \plainfrenchspacing \everypar = {}% don't want the \kern\-parindent from indentation suppression. % % See if the index file exists and is nonempty. @@ -3557,10 +4963,9 @@ width0pt\relax} \fi % % A straightforward implementation would start like this: % \def\entry#1#2{... -% But this frozes the catcodes in the argument, and can cause problems to +% But this freezes the catcodes in the argument, and can cause problems to % @code, which sets - active. This problem was fixed by a kludge--- % ``-'' was active throughout whole index, but this isn't really right. -% % The right solution is to prevent \entry from swallowing the whole text. % --kasal, 21nov03 \def\entry{% @@ -3597,10 +5002,17 @@ width0pt\relax} \fi % columns. \vskip 0pt plus1pt % + % When reading the text of entry, convert explicit line breaks + % from @* into spaces. The user might give these in long section + % titles, for instance. + \def\*{\unskip\space\ignorespaces}% + \def\entrybreak{\hfil\break}% + % % Swallow the left brace of the text (first parameter): \afterassignment\doentry \let\temp = } +\def\entrybreak{\unskip\space\ignorespaces}% \def\doentry{% \bgroup % Instead of the swallowed brace. \noindent @@ -3613,11 +5025,8 @@ width0pt\relax} \fi % The following is kludged to not output a line of dots in the index if % there are no page numbers. The next person who breaks this will be % cursed by a Unix daemon. - \def\tempa{{\rm }}% - \def\tempb{#1}% - \edef\tempc{\tempa}% - \edef\tempd{\tempb}% - \ifx\tempc\tempd + \setbox\boxA = \hbox{#1}% + \ifdim\wd\boxA = 0pt \ % \else % @@ -3641,9 +5050,9 @@ width0pt\relax} \fi \endgroup } -% Like \dotfill except takes at least 1 em. +% Like plain.tex's \dotfill, except uses up at least 1 em. \def\indexdotfill{\cleaders - \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill} + \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1fill} \def\primary #1{\line{#1\hfil}} @@ -3753,6 +5162,34 @@ width0pt\relax} \fi % % All done with double columns. \def\enddoublecolumns{% + % The following penalty ensures that the page builder is exercised + % _before_ we change the output routine. This is necessary in the + % following situation: + % + % The last section of the index consists only of a single entry. + % Before this section, \pagetotal is less than \pagegoal, so no + % break occurs before the last section starts. However, the last + % section, consisting of \initial and the single \entry, does not + % fit on the page and has to be broken off. Without the following + % penalty the page builder will not be exercised until \eject + % below, and by that time we'll already have changed the output + % routine to the \balancecolumns version, so the next-to-last + % double-column page will be processed with \balancecolumns, which + % is wrong: The two columns will go to the main vertical list, with + % the broken-off section in the recent contributions. As soon as + % the output routine finishes, TeX starts reconsidering the page + % break. The two columns and the broken-off section both fit on the + % page, because the two columns now take up only half of the page + % goal. When TeX sees \eject from below which follows the final + % section, it invokes the new output routine that we've set after + % \balancecolumns below; \onepageout will try to fit the two columns + % and the final section into the vbox of \pageheight (see + % \pagebody), causing an overfull box. + % + % Note that glue won't work here, because glue does not exercise the + % page builder, unlike penalties (see The TeXbook, pp. 280-281). + \penalty0 + % \output = {% % Split the last of the double-column material. Leave it on the % current page, no automatic page break. @@ -3808,7 +5245,22 @@ width0pt\relax} \fi \message{sectioning,} % Chapters, sections, etc. -% \unnumberedno is an oxymoron, of course. But we count the unnumbered +% Let's start with @part. +\outer\parseargdef\part{\partzzz{#1}} +\def\partzzz#1{% + \chapoddpage + \null + \vskip.3\vsize % move it down on the page a bit + \begingroup + \noindent \titlefonts\rmisbold #1\par % the text + \let\lastnode=\empty % no node to associate with + \writetocentry{part}{#1}{}% but put it in the toc + \headingsoff % no headline or footline on the part page + \chapoddpage + \endgroup +} + +% \unnumberedno is an oxymoron. But we count the unnumbered % sections so that we can refer to them unambiguously in the pdf % outlines by their "section number". We avoid collisions with chapter % numbers by starting them at 10000. (If a document ever has 10000 @@ -3862,11 +5314,15 @@ width0pt\relax} \fi \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} -% Each @chapter defines this as the name of the chapter. -% page headings and footings can use it. @section does likewise. -% However, they are not reliable, because we don't use marks. +% Each @chapter defines these (using marks) as the number+name, number +% and name of the chapter. Page headings and footings can use +% these. @section does likewise. \def\thischapter{} +\def\thischapternum{} +\def\thischaptername{} \def\thissection{} +\def\thissectionnum{} +\def\thissectionname{} \newcount\absseclevel % used to calculate proper heading level \newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count @@ -3883,8 +5339,8 @@ width0pt\relax} \fi \chardef\maxseclevel = 3 % % A numbered section within an unnumbered changes to unnumbered too. -% To achive this, remember the "biggest" unnum. sec. we are currently in: -\chardef\unmlevel = \maxseclevel +% To achieve this, remember the "biggest" unnum. sec. we are currently in: +\chardef\unnlevel = \maxseclevel % % Trace whether the current chapter is an appendix or not: % \chapheadtype is "N" or "A", unnumbered chapters are ignored. @@ -3909,8 +5365,8 @@ width0pt\relax} \fi % The heading type: \def\headtype{#1}% \if \headtype U% - \ifnum \absseclevel < \unmlevel - \chardef\unmlevel = \absseclevel + \ifnum \absseclevel < \unnlevel + \chardef\unnlevel = \absseclevel \fi \else % Check for appendix sections: @@ -3922,10 +5378,10 @@ width0pt\relax} \fi \fi\fi \fi % Check for numbered within unnumbered: - \ifnum \absseclevel > \unmlevel + \ifnum \absseclevel > \unnlevel \def\headtype{U}% \else - \chardef\unmlevel = 3 + \chardef\unnlevel = 3 \fi \fi % Now print the heading: @@ -3979,7 +5435,9 @@ width0pt\relax} \fi \gdef\chaplevelprefix{\the\chapno.}% \resetallfloatnos % - \message{\putwordChapter\space \the\chapno}% + % \putwordChapter can contain complex things in translations. + \toks0=\expandafter{\putwordChapter}% + \message{\the\toks0 \space \the\chapno}% % % Write the actual heading. \chapmacro{#1}{Ynumbered}{\the\chapno}% @@ -3990,15 +5448,17 @@ width0pt\relax} \fi \global\let\subsubsection = \numberedsubsubsec } -\outer\parseargdef\appendix{\apphead0{#1}} % normally apphead0 calls appendixzzz +\outer\parseargdef\appendix{\apphead0{#1}} % normally calls appendixzzz +% \def\appendixzzz#1{% \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\advance\appendixno by 1 \gdef\chaplevelprefix{\appendixletter.}% \resetallfloatnos % - \def\appendixnum{\putwordAppendix\space \appendixletter}% - \message{\appendixnum}% + % \putwordAppendix can contain complex things in translations. + \toks0=\expandafter{\putwordAppendix}% + \message{\the\toks0 \space \appendixletter}% % \chapmacro{#1}{Yappendix}{\appendixletter}% % @@ -4007,7 +5467,8 @@ width0pt\relax} \fi \global\let\subsubsection = \appendixsubsubsec } -\outer\parseargdef\unnumbered{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz +% normally unnmhead0 calls unnumberedzzz: +\outer\parseargdef\unnumbered{\unnmhead0{#1}} \def\unnumberedzzz#1{% \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\advance\unnumberedno by 1 @@ -4051,40 +5512,47 @@ width0pt\relax} \fi \let\top\unnumbered % Sections. +% \outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz \def\seczzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}% } -\outer\parseargdef\appendixsection{\apphead1{#1}} % normally calls appendixsectionzzz +% normally calls appendixsectionzzz: +\outer\parseargdef\appendixsection{\apphead1{#1}} \def\appendixsectionzzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}% } \let\appendixsec\appendixsection -\outer\parseargdef\unnumberedsec{\unnmhead1{#1}} % normally calls unnumberedseczzz +% normally calls unnumberedseczzz: +\outer\parseargdef\unnumberedsec{\unnmhead1{#1}} \def\unnumberedseczzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}% } % Subsections. -\outer\parseargdef\numberedsubsec{\numhead2{#1}} % normally calls numberedsubseczzz +% +% normally calls numberedsubseczzz: +\outer\parseargdef\numberedsubsec{\numhead2{#1}} \def\numberedsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}% } -\outer\parseargdef\appendixsubsec{\apphead2{#1}} % normally calls appendixsubseczzz +% normally calls appendixsubseczzz: +\outer\parseargdef\appendixsubsec{\apphead2{#1}} \def\appendixsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Yappendix}% {\appendixletter.\the\secno.\the\subsecno}% } -\outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} %normally calls unnumberedsubseczzz +% normally calls unnumberedsubseczzz: +\outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} \def\unnumberedsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Ynothing}% @@ -4092,21 +5560,25 @@ width0pt\relax} \fi } % Subsubsections. -\outer\parseargdef\numberedsubsubsec{\numhead3{#1}} % normally numberedsubsubseczzz +% +% normally numberedsubsubseczzz: +\outer\parseargdef\numberedsubsubsec{\numhead3{#1}} \def\numberedsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Ynumbered}% {\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}% } -\outer\parseargdef\appendixsubsubsec{\apphead3{#1}} % normally appendixsubsubseczzz +% normally appendixsubsubseczzz: +\outer\parseargdef\appendixsubsubsec{\apphead3{#1}} \def\appendixsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Yappendix}% {\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}% } -\outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} %normally unnumberedsubsubseczzz +% normally unnumberedsubsubseczzz: +\outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} \def\unnumberedsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Ynothing}% @@ -4122,15 +5594,6 @@ width0pt\relax} \fi % Define @majorheading, @heading and @subheading -% NOTE on use of \vbox for chapter headings, section headings, and such: -% 1) We use \vbox rather than the earlier \line to permit -% overlong headings to fold. -% 2) \hyphenpenalty is set to 10000 because hyphenation in a -% heading is obnoxious; this forbids it. -% 3) Likewise, headings look best if no \parindent is used, and -% if justification is not attempted. Hence \raggedright. - - \def\majorheading{% {\advance\chapheadingskip by 10pt \chapbreak }% \parsearg\chapheadingzzz @@ -4138,10 +5601,8 @@ width0pt\relax} \fi \def\chapheading{\chapbreak \parsearg\chapheadingzzz} \def\chapheadingzzz#1{% - {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}% - \bigskip \par\penalty 200\relax + \vbox{\chapfonts \raggedtitlesettings #1\par}% + \nobreak\bigskip \nobreak \suppressfirstparagraphindent } @@ -4157,17 +5618,28 @@ width0pt\relax} \fi % (including whitespace, linebreaking, etc. around it), % given all the information in convenient, parsed form. -%%% Args are the skip and penalty (usually negative) +% Args are the skip and penalty (usually negative) \def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi} -%%% Define plain chapter starts, and page on/off switching for it % Parameter controlling skip before chapter headings (if needed) - \newskip\chapheadingskip +% Define plain chapter starts, and page on/off switching for it. \def\chapbreak{\dobreak \chapheadingskip {-4000}} \def\chappager{\par\vfill\supereject} -\def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi} +% Because \domark is called before \chapoddpage, the filler page will +% get the headings for the next chapter, which is wrong. But we don't +% care -- we just disable all headings on the filler page. +\def\chapoddpage{% + \chappager + \ifodd\pageno \else + \begingroup + \headingsoff + \null + \chappager + \endgroup + \fi +} \def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname} @@ -4201,41 +5673,78 @@ width0pt\relax} \fi \def\Yappendixkeyword{Yappendix} % \def\chapmacro#1#2#3{% + % Insert the first mark before the heading break (see notes for \domark). + \let\prevchapterdefs=\lastchapterdefs + \let\prevsectiondefs=\lastsectiondefs + \gdef\lastsectiondefs{\gdef\thissectionname{}\gdef\thissectionnum{}% + \gdef\thissection{}}% + % + \def\temptype{#2}% + \ifx\temptype\Ynothingkeyword + \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}% + \gdef\thischapter{\thischaptername}}% + \else\ifx\temptype\Yomitfromtockeyword + \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}% + \gdef\thischapter{}}% + \else\ifx\temptype\Yappendixkeyword + \toks0={#1}% + \xdef\lastchapterdefs{% + \gdef\noexpand\thischaptername{\the\toks0}% + \gdef\noexpand\thischapternum{\appendixletter}% + % \noexpand\putwordAppendix avoids expanding indigestible + % commands in some of the translations. + \gdef\noexpand\thischapter{\noexpand\putwordAppendix{} + \noexpand\thischapternum: + \noexpand\thischaptername}% + }% + \else + \toks0={#1}% + \xdef\lastchapterdefs{% + \gdef\noexpand\thischaptername{\the\toks0}% + \gdef\noexpand\thischapternum{\the\chapno}% + % \noexpand\putwordChapter avoids expanding indigestible + % commands in some of the translations. + \gdef\noexpand\thischapter{\noexpand\putwordChapter{} + \noexpand\thischapternum: + \noexpand\thischaptername}% + }% + \fi\fi\fi + % + % Output the mark. Pass it through \safewhatsit, to take care of + % the preceding space. + \safewhatsit\domark + % + % Insert the chapter heading break. \pchapsepmacro + % + % Now the second mark, after the heading break. No break points + % between here and the heading. + \let\prevchapterdefs=\lastchapterdefs + \let\prevsectiondefs=\lastsectiondefs + \domark + % {% - \chapfonts \rm + \chapfonts \rmisbold % - % Have to define \thissection before calling \donoderef, because the + % Have to define \lastsection before calling \donoderef, because the % xref code eventually uses it. On the other hand, it has to be called % after \pchapsepmacro, or the headline will change too soon. - \gdef\thissection{#1}% - \gdef\thischaptername{#1}% + \gdef\lastsection{#1}% % % Only insert the separating space if we have a chapter/appendix % number, and don't print the unnumbered ``number''. - \def\temptype{#2}% \ifx\temptype\Ynothingkeyword \setbox0 = \hbox{}% \def\toctype{unnchap}% - \def\thischapter{#1}% \else\ifx\temptype\Yomitfromtockeyword \setbox0 = \hbox{}% contents like unnumbered, but no toc entry \def\toctype{omit}% - \xdef\thischapter{}% \else\ifx\temptype\Yappendixkeyword \setbox0 = \hbox{\putwordAppendix{} #3\enspace}% \def\toctype{app}% - % We don't substitute the actual chapter name into \thischapter - % because we don't want its macros evaluated now. And we don't - % use \thissection because that changes with each section. - % - \xdef\thischapter{\putwordAppendix{} \appendixletter: - \noexpand\thischaptername}% \else \setbox0 = \hbox{#3\enspace}% \def\toctype{numchap}% - \xdef\thischapter{\putwordChapter{} \the\chapno: - \noexpand\thischaptername}% \fi\fi\fi % % Write the toc entry for this chapter. Must come before the @@ -4251,8 +5760,8 @@ width0pt\relax} \fi \donoderef{#2}% % % Typeset the actual heading. - \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright - \hangindent=\wd0 \centerparametersmaybe + \nobreak % Avoid page breaks at the interline glue. + \vbox{\raggedtitlesettings \hangindent=\wd0 \centerparametersmaybe \unhbox0 #1\par}% }% \nobreak\bigskip % no page break after a chapter title @@ -4274,18 +5783,18 @@ width0pt\relax} \fi \def\setchapterstyle #1 {\csname CHAPF#1\endcsname} % \def\unnchfopen #1{% -\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}\bigskip \par\nobreak + \chapoddpage + \vbox{\chapfonts \raggedtitlesettings #1\par}% + \nobreak\bigskip\nobreak } \def\chfopen #1#2{\chapoddpage {\chapfonts \vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}% \par\penalty 5000 % } \def\centerchfopen #1{% -\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt - \hfill {\rm #1}\hfill}}\bigskip \par\nobreak + \chapoddpage + \vbox{\chapfonts \raggedtitlesettings \hfill #1\hfill}% + \nobreak\bigskip \nobreak } \def\CHAPFopen{% \global\let\chapmacro=\chfopen @@ -4313,47 +5822,110 @@ width0pt\relax} \fi % the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the % section number. % +\def\seckeyword{sec} +% \def\sectionheading#1#2#3#4{% {% + \checkenv{}% should not be in an environment. + % % Switch to the right set of fonts. - \csname #2fonts\endcsname \rm + \csname #2fonts\endcsname \rmisbold + % + \def\sectionlevel{#2}% + \def\temptype{#3}% + % + % Insert first mark before the heading break (see notes for \domark). + \let\prevsectiondefs=\lastsectiondefs + \ifx\temptype\Ynothingkeyword + \ifx\sectionlevel\seckeyword + \gdef\lastsectiondefs{\gdef\thissectionname{#1}\gdef\thissectionnum{}% + \gdef\thissection{\thissectionname}}% + \fi + \else\ifx\temptype\Yomitfromtockeyword + % Don't redefine \thissection. + \else\ifx\temptype\Yappendixkeyword + \ifx\sectionlevel\seckeyword + \toks0={#1}% + \xdef\lastsectiondefs{% + \gdef\noexpand\thissectionname{\the\toks0}% + \gdef\noexpand\thissectionnum{#4}% + % \noexpand\putwordSection avoids expanding indigestible + % commands in some of the translations. + \gdef\noexpand\thissection{\noexpand\putwordSection{} + \noexpand\thissectionnum: + \noexpand\thissectionname}% + }% + \fi + \else + \ifx\sectionlevel\seckeyword + \toks0={#1}% + \xdef\lastsectiondefs{% + \gdef\noexpand\thissectionname{\the\toks0}% + \gdef\noexpand\thissectionnum{#4}% + % \noexpand\putwordSection avoids expanding indigestible + % commands in some of the translations. + \gdef\noexpand\thissection{\noexpand\putwordSection{} + \noexpand\thissectionnum: + \noexpand\thissectionname}% + }% + \fi + \fi\fi\fi + % + % Go into vertical mode. Usually we'll already be there, but we + % don't want the following whatsit to end up in a preceding paragraph + % if the document didn't happen to have a blank line. + \par + % + % Output the mark. Pass it through \safewhatsit, to take care of + % the preceding space. + \safewhatsit\domark % % Insert space above the heading. \csname #2headingbreak\endcsname % - % Only insert the space after the number if we have a section number. - \def\sectionlevel{#2}% - \def\temptype{#3}% + % Now the second mark, after the heading break. No break points + % between here and the heading. + \let\prevsectiondefs=\lastsectiondefs + \domark % + % Only insert the space after the number if we have a section number. \ifx\temptype\Ynothingkeyword \setbox0 = \hbox{}% \def\toctype{unn}% - \gdef\thissection{#1}% + \gdef\lastsection{#1}% \else\ifx\temptype\Yomitfromtockeyword % for @headings -- no section number, don't include in toc, - % and don't redefine \thissection. + % and don't redefine \lastsection. \setbox0 = \hbox{}% \def\toctype{omit}% \let\sectionlevel=\empty \else\ifx\temptype\Yappendixkeyword \setbox0 = \hbox{#4\enspace}% \def\toctype{app}% - \gdef\thissection{#1}% + \gdef\lastsection{#1}% \else \setbox0 = \hbox{#4\enspace}% \def\toctype{num}% - \gdef\thissection{#1}% + \gdef\lastsection{#1}% \fi\fi\fi % - % Write the toc entry (before \donoderef). See comments in \chfplain. + % Write the toc entry (before \donoderef). See comments in \chapmacro. \writetocentry{\toctype\sectionlevel}{#1}{#4}% % % Write the node reference (= pdf destination for pdftex). - % Again, see comments in \chfplain. + % Again, see comments in \chapmacro. \donoderef{#3}% % + % Interline glue will be inserted when the vbox is completed. + % That glue will be a valid breakpoint for the page, since it'll be + % preceded by a whatsit (usually from the \donoderef, or from the + % \writetocentry if there was no node). We don't want to allow that + % break, since then the whatsits could end up on page n while the + % section is on page n+1, thus toc/etc. are wrong. Debian bug 276000. + \nobreak + % % Output the actual section heading. - \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright + \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright \hangindent=\wd0 % zero if no section number \unhbox0 #1}% }% @@ -4367,15 +5939,15 @@ width0pt\relax} \fi % % We'll almost certainly start a paragraph next, so don't let that % glue accumulate. (Not a breakpoint because it's preceded by a - % discardable item.) + % discardable item.) However, when a paragraph is not started next + % (\startdefun, \cartouche, \center, etc.), this needs to be wiped out + % or the negative glue will cause weirdly wrong output, typically + % obscuring the section heading with something else. \vskip-\parskip - % - % This is purely so the last item on the list is a known \penalty > - % 10000. This is so \startdefun can avoid allowing breakpoints after - % section headings. Otherwise, it would insert a valid breakpoint between: - % - % @section sec-whatever - % @deffn def-whatever + % + % This is so the last item on the main vertical list is a known + % \penalty > 10000, so \startdefun, etc., can recognize the situation + % and do the needful. \penalty 10001 } @@ -4410,11 +5982,11 @@ width0pt\relax} \fi \fi % \iflinks - \toks0 = {#2}% - \toks2 = \expandafter{\lastnode}% - \edef\temp{\write\tocfile{\realbackslash #1entry{\the\toks0}{#3}% - {\the\toks2}{\noexpand\folio}}}% - \temp + {\atdummies + \edef\temp{% + \write\tocfile{@#1entry{#2}{#3}{\lastnode}{\noexpand\folio}}}% + \temp + }% \fi \fi % @@ -4427,6 +5999,31 @@ width0pt\relax} \fi \ifpdf \global\pdfmakepagedesttrue \fi } + +% These characters do not print properly in the Computer Modern roman +% fonts, so we must take special care. This is more or less redundant +% with the Texinfo input format setup at the end of this file. +% +\def\activecatcodes{% + \catcode`\"=\active + \catcode`\$=\active + \catcode`\<=\active + \catcode`\>=\active + \catcode`\\=\active + \catcode`\^=\active + \catcode`\_=\active + \catcode`\|=\active + \catcode`\~=\active +} + + +% Read the toc file, which is essentially Texinfo input. +\def\readtocfile{% + \setupdatafile + \activecatcodes + \input \tocreadfilename +} + \newskip\contentsrightmargin \contentsrightmargin=1in \newcount\savepageno \newcount\lastnegativepageno \lastnegativepageno = -1 @@ -4443,29 +6040,29 @@ width0pt\relax} \fi % % Don't need to put `Contents' or `Short Contents' in the headline. % It is abundantly clear what they are. - \def\thischapter{}% \chapmacro{#1}{Yomitfromtoc}{}% % \savepageno = \pageno \begingroup % Set up to handle contents files properly. - \catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\@=11 - % We can't do this, because then an actual ^ in a section - % title fails, e.g., @chapter ^ -- exponentiation. --karl, 9jul97. - %\catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi - \raggedbottom % Worry more about breakpoints than the bottom. + \raggedbottom % Worry more about breakpoints than the bottom. \advance\hsize by -\contentsrightmargin % Don't use the full line length. % % Roman numerals for page numbers. \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi } +% redefined for the two-volume lispref. We always output on +% \jobname.toc even if this is redefined. +% +\def\tocreadfilename{\jobname.toc} % Normal (long) toc. +% \def\contents{% \startcontents{\putwordTOC}% - \openin 1 \jobname.toc + \openin 1 \tocreadfilename\space \ifeof 1 \else - \input \jobname.toc + \readtocfile \fi \vfill \eject \contentsalignmacro % in case @setchapternewpage odd is in effect @@ -4482,6 +6079,7 @@ width0pt\relax} \fi \def\summarycontents{% \startcontents{\putwordShortTOC}% % + \let\partentry = \shortpartentry \let\numchapentry = \shortchapentry \let\appentry = \shortchapentry \let\unnchapentry = \shortunnchapentry @@ -4501,9 +6099,9 @@ width0pt\relax} \fi \let\numsubsubsecentry = \numsecentry \let\appsubsubsecentry = \numsecentry \let\unnsubsubsecentry = \numsecentry - \openin 1 \jobname.toc + \openin 1 \tocreadfilename\space \ifeof 1 \else - \input \jobname.toc + \readtocfile \fi \closein 1 \vfill \eject @@ -4537,6 +6135,19 @@ width0pt\relax} \fi % The last argument is the page number. % The arguments in between are the chapter number, section number, ... +% Parts, in the main contents. Replace the part number, which doesn't +% exist, with an empty box. Let's hope all the numbers have the same width. +% Also ignore the page number, which is conventionally not printed. +\def\numeralbox{\setbox0=\hbox{8}\hbox to \wd0{\hfil}} +\def\partentry#1#2#3#4{\dochapentry{\numeralbox\labelspace#1}{}} +% +% Parts, in the short toc. +\def\shortpartentry#1#2#3#4{% + \penalty-300 + \vskip.5\baselineskip plus.15\baselineskip minus.1\baselineskip + \shortchapentry{{\bf #1}}{\numeralbox}{}{}% +} + % Chapters, in the main contents. \def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}} % @@ -4626,45 +6237,12 @@ width0pt\relax} \fi \message{environments,} % @foo ... @end foo. -% @point{}, @result{}, @expansion{}, @print{}, @equiv{}. -% -% Since these characters are used in examples, it should be an even number of -% \tt widths. Each \tt character is 1en, so two makes it 1em. -% -\def\point{$\star$} -\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}} -\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}} -\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}} -\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}} - -% The @error{} command. -% Adapted from the TeXbook's \boxit. -% -\newbox\errorbox -% -{\tentt \global\dimen0 = 3em}% Width of the box. -\dimen2 = .55pt % Thickness of rules -% The text. (`r' is open on the right, `e' somewhat less so on the left.) -\setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt} -% -\setbox\errorbox=\hbox to \dimen0{\hfil - \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. - \advance\hsize by -2\dimen2 % Rules. - \vbox{% - \hrule height\dimen2 - \hbox{\vrule width\dimen2 \kern3pt % Space to left of text. - \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below. - \kern3pt\vrule width\dimen2}% Space to right. - \hrule height\dimen2} - \hfil} -% -\def\error{\leavevmode\lower.7ex\copy\errorbox} - -% @tex ... @end tex escapes into raw Tex temporarily. +% @tex ... @end tex escapes into raw TeX temporarily. % One exception: @ is still an escape character, so that @end tex works. -% But \@ or @@ will get a plain tex @ character. +% But \@ or @@ will get a plain @ character. \envdef\tex{% + \setupmarkupstyle{tex}% \catcode `\\=0 \catcode `\{=1 \catcode `\}=2 \catcode `\$=3 \catcode `\&=4 \catcode `\#=6 \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie @@ -4674,8 +6252,14 @@ width0pt\relax} \fi \catcode `\|=\other \catcode `\<=\other \catcode `\>=\other + \catcode`\`=\other + \catcode`\'=\other \escapechar=`\\ % + % ' is active in math mode (mathcode"8000). So reset it, and all our + % other math active characters (just in case), to plain's definitions. + \mathactive + % \let\b=\ptexb \let\bullet=\ptexbullet \let\c=\ptexc @@ -4693,6 +6277,8 @@ width0pt\relax} \fi \let\/=\ptexslash \let\*=\ptexstar \let\t=\ptext + \expandafter \let\csname top\endcsname=\ptextop % outer + \let\frenchspacing=\plainfrenchspacing % \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}% \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}% @@ -4738,7 +6324,8 @@ width0pt\relax} \fi \let\afterenvbreak = \aboveenvbreak -% \nonarrowing is a flag. If "set", @lisp etc don't narrow margins. +% \nonarrowing is a flag. If "set", @lisp etc don't narrow margins; it will +% also clear it, so that its embedded environments do the narrowing again. \let\nonarrowing=\relax % @cartouche ... @end cartouche: draw rectangle w/rounded corners around @@ -4775,7 +6362,13 @@ width0pt\relax} \fi % each corner char, and rule thickness \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip % Flag to tell @lisp, etc., not to narrow margin. - \let\nonarrowing=\comment + \let\nonarrowing = t% + % + % If this cartouche directly follows a sectioning command, we need the + % \parskip glue (backspaced over by default) or the cartouche can + % collide with the section heading. + \ifnum\lastpenalty>10000 \vskip\parskip \penalty\lastpenalty \fi + % \vbox\bgroup \baselineskip=0pt\parskip=0pt\lineskip=0pt \carttop @@ -4789,7 +6382,7 @@ width0pt\relax} \fi \lineskip=\normlskip \parskip=\normpskip \vskip -\parskip - \comment % For explanation, see the end of \def\group. + \comment % For explanation, see the end of def\group. } \def\Ecartouche{% \ifhmode\par\fi @@ -4806,6 +6399,7 @@ width0pt\relax} \fi % This macro is called at the beginning of all the @example variants, % inside a group. +\newdimen\nonfillparindent \def\nonfillstart{% \aboveenvbreak \hfuzz = 12pt % Don't be fussy @@ -4813,17 +6407,40 @@ width0pt\relax} \fi \let\par = \lisppar % don't ignore blank lines \obeylines % each line of input is a line of output \parskip = 0pt + % Turn off paragraph indentation but redefine \indent to emulate + % the normal \indent. + \nonfillparindent=\parindent \parindent = 0pt + \let\indent\nonfillindent + % \emergencystretch = 0pt % don't try to avoid overfull boxes - % @cartouche defines \nonarrowing to inhibit narrowing - % at next level down. \ifx\nonarrowing\relax \advance \leftskip by \lispnarrowing \exdentamount=\lispnarrowing + \else + \let\nonarrowing = \relax \fi \let\exdent=\nofillexdent } +\begingroup +\obeyspaces +% We want to swallow spaces (but not other tokens) after the fake +% @indent in our nonfill-environments, where spaces are normally +% active and set to @tie, resulting in them not being ignored after +% @indent. +\gdef\nonfillindent{\futurelet\temp\nonfillindentcheck}% +\gdef\nonfillindentcheck{% +\ifx\temp % +\expandafter\nonfillindentgobble% +\else% +\leavevmode\nonfillindentbox% +\fi% +}% +\endgroup +\def\nonfillindentgobble#1{\nonfillindent} +\def\nonfillindentbox{\hbox to \nonfillparindent{\hss}} + % If you want all examples etc. small: @set dispenvsize small. % If you want even small examples the full size: @set dispenvsize nosmall. % This affects the following displayed environments: @@ -4834,53 +6451,59 @@ width0pt\relax} \fi \let\SETdispenvsize\relax \def\setnormaldispenv{% \ifx\SETdispenvsize\smallword + % end paragraph for sake of leading, in case document has no blank + % line. This is redundant with what happens in \aboveenvbreak, but + % we need to do it before changing the fonts, and it's inconvenient + % to change the fonts afterward. + \ifnum \lastpenalty=10000 \else \endgraf \fi \smallexamplefonts \rm \fi } \def\setsmalldispenv{% \ifx\SETdispenvsize\nosmallword \else + \ifnum \lastpenalty=10000 \else \endgraf \fi \smallexamplefonts \rm \fi } % We often define two environments, @foo and @smallfoo. -% Let's do it by one command: -\def\makedispenv #1#2{ - \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2} - \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2} +% Let's do it in one command. #1 is the env name, #2 the definition. +\def\makedispenvdef#1#2{% + \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2}% + \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2}% \expandafter\let\csname E#1\endcsname \afterenvbreak \expandafter\let\csname Esmall#1\endcsname \afterenvbreak } -% Define two synonyms: -\def\maketwodispenvs #1#2#3{ - \makedispenv{#1}{#3} - \makedispenv{#2}{#3} +% Define two environment synonyms (#1 and #2) for an environment. +\def\maketwodispenvdef#1#2#3{% + \makedispenvdef{#1}{#3}% + \makedispenvdef{#2}{#3}% } - -% @lisp: indented, narrowed, typewriter font; @example: same as @lisp. +% +% @lisp: indented, narrowed, typewriter font; +% @example: same as @lisp. % % @smallexample and @smalllisp: use smaller fonts. % Originally contributed by Pavel@xerox. % -\maketwodispenvs {lisp}{example}{% +\maketwodispenvdef{lisp}{example}{% \nonfillstart - \tt + \tt\setupmarkupstyle{example}% \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. - \gobble % eat return + \gobble % eat return } - % @display/@smalldisplay: same as @lisp except keep current font. % -\makedispenv {display}{% +\makedispenvdef{display}{% \nonfillstart \gobble } % @format/@smallformat: same as @display except don't narrow margins. % -\makedispenv{format}{% +\makedispenvdef{format}{% \let\nonarrowing = t% \nonfillstart \gobble @@ -4899,27 +6522,47 @@ width0pt\relax} \fi \envdef\flushright{% \let\nonarrowing = t% \nonfillstart - \advance\leftskip by 0pt plus 1fill + \advance\leftskip by 0pt plus 1fill\relax \gobble } \let\Eflushright = \afterenvbreak +% @raggedright does more-or-less normal line breaking but no right +% justification. From plain.tex. +\envdef\raggedright{% + \rightskip0pt plus2em \spaceskip.3333em \xspaceskip.5em\relax +} +\let\Eraggedright\par + +\envdef\raggedleft{% + \parindent=0pt \leftskip0pt plus2em + \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt + \hbadness=10000 % Last line will usually be underfull, so turn off + % badness reporting. +} +\let\Eraggedleft\par + +\envdef\raggedcenter{% + \parindent=0pt \rightskip0pt plus1em \leftskip0pt plus1em + \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt + \hbadness=10000 % Last line will usually be underfull, so turn off + % badness reporting. +} +\let\Eraggedcenter\par + + % @quotation does normal linebreaking (hence we can't use \nonfillstart) % and narrows the margins. We keep \parskip nonzero in general, since % we're doing normal filling. So, when using \aboveenvbreak and % \afterenvbreak, temporarily make \parskip 0. % -\envdef\quotation{% - {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip - \parindent=0pt - % - % @cartouche defines \nonarrowing to inhibit narrowing at next level down. +\makedispenvdef{quotation}{\quotationstart} +% +\def\quotationstart{% + \indentedblockstart % same as \indentedblock, but increase right margin too. \ifx\nonarrowing\relax - \advance\leftskip by \lispnarrowing \advance\rightskip by \lispnarrowing - \exdentamount = \lispnarrowing - \let\nonarrowing = \relax \fi \parsearg\quotationlabel } @@ -4929,12 +6572,13 @@ width0pt\relax} \fi % \def\Equotation{% \par - \ifx\quotationauthor\undefined\else + \ifx\quotationauthor\thisisundefined\else % indent a bit. \leftline{\kern 2\leftskip \sl ---\quotationauthor}% \fi {\parskip=0pt \afterenvbreak}% } +\def\Esmallquotation{\Equotation} % If we're given an argument, typeset it in bold with a colon after. \def\quotationlabel#1{% @@ -4944,6 +6588,32 @@ width0pt\relax} \fi \fi } +% @indentedblock is like @quotation, but indents only on the left and +% has no optional argument. +% +\makedispenvdef{indentedblock}{\indentedblockstart} +% +\def\indentedblockstart{% + {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip + \parindent=0pt + % + % @cartouche defines \nonarrowing to inhibit narrowing at next level down. + \ifx\nonarrowing\relax + \advance\leftskip by \lispnarrowing + \exdentamount = \lispnarrowing + \else + \let\nonarrowing = \relax + \fi +} + +% Keep a nonzero parskip for the environment, since we're doing normal filling. +% +\def\Eindentedblock{% + \par + {\parskip=0pt \afterenvbreak}% +} +\def\Esmallindentedblock{\Eindentedblock} + % LaTeX-like @verbatim...@end verbatim and @verb{<char>...<char>} % If we want to allow any <char> as delimiter, @@ -4959,18 +6629,16 @@ width0pt\relax} \fi \do\ \do\\\do\{\do\}\do\$\do\&% \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~% \do\<\do\>\do\|\do\@\do+\do\"% + % Don't do the quotes -- if we do, @set txicodequoteundirected and + % @set txicodequotebacktick will not have effect on @verb and + % @verbatim, and ?` and !` ligatures won't get disabled. + %\do\`\do\'% } % % [Knuth] p. 380 \def\uncatcodespecials{% \def\do##1{\catcode`##1=\other}\dospecials} % -% [Knuth] pp. 380,381,391 -% Disable Spanish ligatures ?` and !` of \tt font -\begingroup - \catcode`\`=\active\gdef`{\relax\lq} -\endgroup -% % Setup for the @verb command. % % Eight spaces for a tab @@ -4982,7 +6650,7 @@ width0pt\relax} \fi \def\setupverb{% \tt % easiest (and conventionally used) font for verbatim \def\par{\leavevmode\endgraf}% - \catcode`\`=\active + \setupmarkupstyle{verb}% \tabeightspaces % Respect line breaks, % print special symbols as themselves, and @@ -4993,35 +6661,46 @@ width0pt\relax} \fi % Setup for the @verbatim environment % -% Real tab expansion +% Real tab expansion. \newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount % -\def\starttabbox{\setbox0=\hbox\bgroup} +% We typeset each line of the verbatim in an \hbox, so we can handle +% tabs. The \global is in case the verbatim line starts with an accent, +% or some other command that starts with a begin-group. Otherwise, the +% entire \verbbox would disappear at the corresponding end-group, before +% it is typeset. Meanwhile, we can't have nested verbatim commands +% (can we?), so the \global won't be overwriting itself. +\newbox\verbbox +\def\starttabbox{\global\setbox\verbbox=\hbox\bgroup} +% \begingroup \catcode`\^^I=\active \gdef\tabexpand{% \catcode`\^^I=\active \def^^I{\leavevmode\egroup - \dimen0=\wd0 % the width so far, or since the previous tab - \divide\dimen0 by\tabw - \multiply\dimen0 by\tabw % compute previous multiple of \tabw - \advance\dimen0 by\tabw % advance to next multiple of \tabw - \wd0=\dimen0 \box0 \starttabbox + \dimen\verbbox=\wd\verbbox % the width so far, or since the previous tab + \divide\dimen\verbbox by\tabw + \multiply\dimen\verbbox by\tabw % compute previous multiple of \tabw + \advance\dimen\verbbox by\tabw % advance to next multiple of \tabw + \wd\verbbox=\dimen\verbbox \box\verbbox \starttabbox }% } \endgroup + +% start the verbatim environment. \def\setupverbatim{% + \let\nonarrowing = t% \nonfillstart - \advance\leftskip by -\defbodyindent - % Easiest (and conventionally used) font for verbatim - \tt - \def\par{\leavevmode\egroup\box0\endgraf}% - \catcode`\`=\active + \tt % easiest (and conventionally used) font for verbatim + % The \leavevmode here is for blank lines. Otherwise, we would + % never \starttabox and the \egroup would end verbatim mode. + \def\par{\leavevmode\egroup\box\verbbox\endgraf}% \tabexpand + \setupmarkupstyle{verbatim}% % Respect line breaks, % print special symbols as themselves, and - % make each space count - % must do in this order: + % make each space count. + % Must do in this order: \obeylines \uncatcodespecials \sepspaces \everypar{\starttabbox}% } @@ -5077,6 +6756,8 @@ width0pt\relax} \fi {% \makevalueexpandable \setupverbatim + \indexnofonts % Allow `@@' and other weird things in file names. + \wlog{texinfo.tex: doing @verbatiminclude of #1^^J}% \input #1 \afterenvbreak }% @@ -5102,27 +6783,35 @@ width0pt\relax} \fi \endgroup } + \message{defuns,} % @defun etc. \newskip\defbodyindent \defbodyindent=.4in \newskip\defargsindent \defargsindent=50pt \newskip\deflastargmargin \deflastargmargin=18pt +\newcount\defunpenalty % Start the processing of @deffn: \def\startdefun{% \ifnum\lastpenalty<10000 \medbreak + \defunpenalty=10003 % Will keep this @deffn together with the + % following @def command, see below. \else % If there are two @def commands in a row, we'll have a \nobreak, % which is there to keep the function description together with its % header. But if there's nothing but headers, we need to allow a % break somewhere. Check specifically for penalty 10002, inserted - % by \defargscommonending, instead of 10000, since the sectioning + % by \printdefunline, instead of 10000, since the sectioning % commands also insert a nobreak penalty, and we don't want to allow % a break between a section heading and a defun. - % - \ifnum\lastpenalty=10002 \penalty2000 \fi + % + % As a further refinement, we avoid "club" headers by signalling + % with penalty of 10003 after the very first @deffn in the + % sequence (see above), and penalty of 10002 after any following + % @def command. + \ifnum\lastpenalty=10002 \penalty2000 \else \defunpenalty=10002 \fi % % Similarly, after a section heading, do not allow a break. % But do insert the glue. @@ -5140,7 +6829,7 @@ width0pt\relax} \fi % % As above, allow line break if we have multiple x headers in a row. % It's not a great place, though. - \ifnum\lastpenalty=10002 \penalty3000 \fi + \ifnum\lastpenalty=10002 \penalty3000 \else \defunpenalty=10002 \fi % % And now, it's time to reuse the body of the original defun: \expandafter\gobbledefun#1% @@ -5155,10 +6844,10 @@ width0pt\relax} \fi #1#2 \endheader % common ending: \interlinepenalty = 10000 - \advance\rightskip by 0pt plus 1fil + \advance\rightskip by 0pt plus 1fil\relax \endgraf \nobreak\vskip -\parskip - \penalty 10002 % signal to \startdefun and \dodefunx + \penalty\defunpenalty % signal to \startdefun and \dodefunx % Some of the @defun-type tags do not enable magic parentheses, % rendering the following check redundant. But we don't optimize. \checkparencounts @@ -5168,7 +6857,7 @@ width0pt\relax} \fi \def\Edefun{\endgraf\medbreak} % \makedefun{deffn} creates \deffn, \deffnx and \Edeffn; -% the only thing remainnig is to define \deffnheader. +% the only thing remaining is to define \deffnheader. % \def\makedefun#1{% \expandafter\let\csname E#1\endcsname = \Edefun @@ -5185,13 +6874,36 @@ width0pt\relax} \fi \def\domakedefun#1#2#3{% \envdef#1{% \startdefun + \doingtypefnfalse % distinguish typed functions from all else \parseargusing\activeparens{\printdefunline#3}% }% \def#2{\dodefunx#1}% \def#3% } -%%% Untyped functions: +\newif\ifdoingtypefn % doing typed function? +\newif\ifrettypeownline % typeset return type on its own line? + +% @deftypefnnewline on|off says whether the return type of typed functions +% are printed on their own line. This affects @deftypefn, @deftypefun, +% @deftypeop, and @deftypemethod. +% +\parseargdef\deftypefnnewline{% + \def\temp{#1}% + \ifx\temp\onword + \expandafter\let\csname SETtxideftypefnnl\endcsname + = \empty + \else\ifx\temp\offword + \expandafter\let\csname SETtxideftypefnnl\endcsname + = \relax + \else + \errhelp = \EMsimple + \errmessage{Unknown @txideftypefnnl value `\temp', + must be on|off}% + \fi\fi +} + +% Untyped functions: % @deffn category name args \makedefun{deffn}{\deffngeneral{}} @@ -5210,7 +6922,7 @@ width0pt\relax} \fi \defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}% } -%%% Typed functions: +% Typed functions: % @deftypefn category type name args \makedefun{deftypefn}{\deftypefngeneral{}} @@ -5225,10 +6937,11 @@ width0pt\relax} \fi % \def\deftypefngeneral#1#2 #3 #4 #5\endheader{% \dosubind{fn}{\code{#4}}{#1}% + \doingtypefntrue \defname{#2}{#3}{#4}\defunargs{#5\unskip}% } -%%% Typed variables: +% Typed variables: % @deftypevr category type var args \makedefun{deftypevr}{\deftypecvgeneral{}} @@ -5246,7 +6959,7 @@ width0pt\relax} \fi \defname{#2}{#3}{#4}\defunargs{#5\unskip}% } -%%% Untyped variables: +% Untyped variables: % @defvr category var args \makedefun{defvr}#1 {\deftypevrheader{#1} {} } @@ -5257,7 +6970,8 @@ width0pt\relax} \fi % \defcvof {category of}class var args \def\defcvof#1#2 {\deftypecvof{#1}#2 {} } -%%% Type: +% Types: + % @deftp category name args \makedefun{deftp}#1 #2 #3\endheader{% \doind{tp}{\code{#2}}% @@ -5285,25 +6999,49 @@ width0pt\relax} \fi % We are followed by (but not passed) the arguments, if any. % \def\defname#1#2#3{% + \par % Get the values of \leftskip and \rightskip as they were outside the @def... \advance\leftskip by -\defbodyindent % - % How we'll format the type name. Putting it in brackets helps + % Determine if we are typesetting the return type of a typed function + % on a line by itself. + \rettypeownlinefalse + \ifdoingtypefn % doing a typed function specifically? + % then check user option for putting return type on its own line: + \expandafter\ifx\csname SETtxideftypefnnl\endcsname\relax \else + \rettypeownlinetrue + \fi + \fi + % + % How we'll format the category name. Putting it in brackets helps % distinguish it from the body text that may end up on the next line % just below it. \def\temp{#1}% \setbox0=\hbox{\kern\deflastargmargin \ifx\temp\empty\else [\rm\temp]\fi} % - % Figure out line sizes for the paragraph shape. + % Figure out line sizes for the paragraph shape. We'll always have at + % least two. + \tempnum = 2 + % % The first line needs space for \box0; but if \rightskip is nonzero, % we need only space for the part of \box0 which exceeds it: \dimen0=\hsize \advance\dimen0 by -\wd0 \advance\dimen0 by \rightskip + % + % If doing a return type on its own line, we'll have another line. + \ifrettypeownline + \advance\tempnum by 1 + \def\maybeshapeline{0in \hsize}% + \else + \def\maybeshapeline{}% + \fi + % % The continuations: \dimen2=\hsize \advance\dimen2 by -\defargsindent - % (plain.tex says that \dimen1 should be used only as global.) - \parshape 2 0in \dimen0 \defargsindent \dimen2 % - % Put the type name to the right margin. + % The final paragraph shape: + \parshape \tempnum 0in \dimen0 \maybeshapeline \defargsindent \dimen2 + % + % Put the category name at the right margin. \noindent \hbox to 0pt{% \hfil\box0 \kern-\hsize @@ -5325,8 +7063,16 @@ width0pt\relax} \fi % . this still does not fix the ?` and !` ligatures, but so far no % one has made identifiers using them :). \df \tt - \def\temp{#2}% return value type - \ifx\temp\empty\else \tclose{\temp} \fi + \def\temp{#2}% text of the return type + \ifx\temp\empty\else + \tclose{\temp}% typeset the return type + \ifrettypeownline + % put return type on its own line; prohibit line break following: + \hfil\vadjust{\nobreak}\break + \else + \space % type on same line, so just followed by a space + \fi + \fi % no return type #3% output function name }% {\rm\enskip}% hskip 0.5 em of \tenrm @@ -5346,8 +7092,11 @@ width0pt\relax} \fi \df \sl \hyphenchar\font=0 % % On the other hand, if an argument has two dashes (for instance), we - % want a way to get ttsl. Let's try @var for that. - \let\var=\ttslanted + % want a way to get ttsl. We used to recommend @var for that, so + % leave the code in, but it's strange for @var to lead to typewriter. + % Nowadays we recommend @code, since the difference between a ttsl hyphen + % and a tt hyphen is pretty tiny. @code also disables ?` !`. + \def\var##1{{\setupmarkupstyle{var}\ttslanted{##1}}}% #1% \sl\hyphenchar\font=45 } @@ -5427,12 +7176,14 @@ width0pt\relax} \fi \ifnum\parencount=0 \else \badparencount \fi \ifnum\brackcount=0 \else \badbrackcount \fi } +% these should not use \errmessage; the glibc manual, at least, actually +% has such constructs (when documenting function pointers). \def\badparencount{% - \errmessage{Unbalanced parentheses in @def}% + \message{Warning: unbalanced parentheses in @def...}% \global\parencount=0 } \def\badbrackcount{% - \errmessage{Unbalanced square braces in @def}% + \message{Warning: unbalanced square brackets in @def...}% \global\brackcount=0 } @@ -5442,7 +7193,7 @@ width0pt\relax} \fi % To do this right we need a feature of e-TeX, \scantokens, % which we arrange to emulate with a temporary file in ordinary TeX. -\ifx\eTeXversion\undefined +\ifx\eTeXversion\thisisundefined \newwrite\macscribble \def\scantokens#1{% \toks0={#1}% @@ -5453,26 +7204,30 @@ width0pt\relax} \fi } \fi -\def\scanmacro#1{% - \begingroup - \newlinechar`\^^M - \let\xeatspaces\eatspaces - % Undo catcode changes of \startcontents and \doprintindex - % When called from @insertcopying or (short)caption, we need active - % backslash to get it printed correctly. Previously, we had - % \catcode`\\=\other instead. We'll see whether a problem appears - % with macro expansion. --kasal, 19aug04 - \catcode`\@=0 \catcode`\\=\active \escapechar=`\@ - % ... and \example - \spaceisspace - % - % Append \endinput to make sure that TeX does not see the ending newline. - % - % I've verified that it is necessary both for e-TeX and for ordinary TeX - % --kasal, 29nov03 - \scantokens{#1\endinput}% - \endgroup -} +\def\scanmacro#1{\begingroup + \newlinechar`\^^M + \let\xeatspaces\eatspaces + % + % Undo catcode changes of \startcontents and \doprintindex + % When called from @insertcopying or (short)caption, we need active + % backslash to get it printed correctly. Previously, we had + % \catcode`\\=\other instead. We'll see whether a problem appears + % with macro expansion. --kasal, 19aug04 + \catcode`\@=0 \catcode`\\=\active \escapechar=`\@ + % + % ... and for \example: + \spaceisspace + % + % The \empty here causes a following catcode 5 newline to be eaten as + % part of reading whitespace after a control sequence. It does not + % eat a catcode 13 newline. There's no good way to handle the two + % cases (untried: maybe e-TeX's \everyeof could help, though plain TeX + % would then have different behavior). See the Macro Details node in + % the manual for the workaround we recommend for macros and + % line-oriented commands. + % + \scantokens{#1\empty}% +\endgroup} \def\scanexp#1{% \edef\temp{\noexpand\scanmacro{#1}}% @@ -5482,14 +7237,25 @@ width0pt\relax} \fi \newcount\paramno % Count of parameters \newtoks\macname % Macro name \newif\ifrecursive % Is it recursive? -\def\macrolist{} % List of all defined macros in the form - % \do\macro1\do\macro2... + +% List of all defined macros in the form +% \definedummyword\macro1\definedummyword\macro2... +% Currently is also contains all @aliases; the list can be split +% if there is a need. +\def\macrolist{} + +% Add the macro to \macrolist +\def\addtomacrolist#1{\expandafter \addtomacrolistxxx \csname#1\endcsname} +\def\addtomacrolistxxx#1{% + \toks0 = \expandafter{\macrolist\definedummyword#1}% + \xdef\macrolist{\the\toks0}% +} % Utility routines. % This does \let #1 = #2, with \csnames; that is, % \let \csname#1\endcsname = \csname#2\endcsname % (except of course we have to play expansion games). -% +% \def\cslet#1#2{% \expandafter\let \csname#1\expandafter\endcsname @@ -5515,13 +7281,18 @@ width0pt\relax} \fi % Macro bodies are absorbed as an argument in a context where % all characters are catcode 10, 11 or 12, except \ which is active -% (as in normal texinfo). It is necessary to change the definition of \. - +% (as in normal texinfo). It is necessary to change the definition of \ +% to recognize macro arguments; this is the job of \mbodybackslash. +% +% Non-ASCII encodings make 8-bit characters active, so un-activate +% them to avoid their expansion. Must do this non-globally, to +% confine the change to the current group. +% % It's necessary to have hard CRs when the macro is executed. This is -% done by making ^^M (\endlinechar) catcode 12 when reading the macro +% done by making ^^M (\endlinechar) catcode 12 when reading the macro % body, and then making it the \newlinechar in \scanmacro. - -\def\scanctxt{% +% +\def\scanctxt{% used as subroutine \catcode`\"=\other \catcode`\+=\other \catcode`\<=\other @@ -5531,15 +7302,16 @@ width0pt\relax} \fi \catcode`\_=\other \catcode`\|=\other \catcode`\~=\other + \ifx\declaredencoding\ascii \else \setnonasciicharscatcodenonglobal\other \fi } -\def\scanargctxt{% +\def\scanargctxt{% used for copying and captions, not macros. \scanctxt \catcode`\\=\other \catcode`\^^M=\other } -\def\macrobodyctxt{% +\def\macrobodyctxt{% used for @macro definitions \scanctxt \catcode`\{=\other \catcode`\}=\other @@ -5547,32 +7319,56 @@ width0pt\relax} \fi \usembodybackslash } -\def\macroargctxt{% +\def\macroargctxt{% used when scanning invocations \scanctxt - \catcode`\\=\other + \catcode`\\=0 } +% why catcode 0 for \ in the above? To recognize \\ \{ \} as "escapes" +% for the single characters \ { }. Thus, we end up with the "commands" +% that would be written @\ @{ @} in a Texinfo document. +% +% We already have @{ and @}. For @\, we define it here, and only for +% this purpose, to produce a typewriter backslash (so, the @\ that we +% define for @math can't be used with @macro calls): +% +\def\\{\normalbackslash}% +% +% We would like to do this for \, too, since that is what makeinfo does. +% But it is not possible, because Texinfo already has a command @, for a +% cedilla accent. Documents must use @comma{} instead. +% +% \anythingelse will almost certainly be an error of some kind. + % \mbodybackslash is the definition of \ in @macro bodies. % It maps \foo\ => \csname macarg.foo\endcsname => #N % where N is the macro parameter number. % We define \csname macarg.\endcsname to be \realbackslash, so % \\ in macro replacement text gets you a backslash. - +% {\catcode`@=0 @catcode`@\=@active @gdef@usembodybackslash{@let\=@mbodybackslash} @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname} } \expandafter\def\csname macarg.\endcsname{\realbackslash} +\def\margbackslash#1{\char`\#1 } + \def\macro{\recursivefalse\parsearg\macroxxx} \def\rmacro{\recursivetrue\parsearg\macroxxx} \def\macroxxx#1{% - \getargs{#1}% now \macname is the macname and \argl the arglist + \getargs{#1}% now \macname is the macname and \argl the arglist \ifx\argl\empty % no arguments - \paramno=0% + \paramno=0\relax \else \expandafter\parsemargdef \argl;% + \if\paramno>256\relax + \ifx\eTeXversion\thisisundefined + \errhelp = \EMsimple + \errmessage{You need eTeX to compile a file with macros with more than 256 arguments} + \fi + \fi \fi \if1\csname ismacro.\the\macname\endcsname \message{Warning: redefining \the\macname}% @@ -5581,10 +7377,7 @@ width0pt\relax} \fi \else \errmessage{Macro name \the\macname\space already defined}\fi \global\cslet{macsave.\the\macname}{\the\macname}% \global\expandafter\let\csname ismacro.\the\macname\endcsname=1% - % Add the macroname to \macrolist - \toks0 = \expandafter{\macrolist\do}% - \xdef\macrolist{\the\toks0 - \expandafter\noexpand\csname\the\macname\endcsname}% + \addtomacrolist{\the\macname}% \fi \begingroup \macrobodyctxt \ifrecursive \expandafter\parsermacbody @@ -5598,7 +7391,7 @@ width0pt\relax} \fi % Remove the macro name from \macrolist: \begingroup \expandafter\let\csname#1\endcsname \relax - \let\do\unmacrodo + \let\definedummyword\unmacrodo \xdef\macrolist{\macrolist}% \endgroup \else @@ -5610,10 +7403,10 @@ width0pt\relax} \fi % macro definitions that have been changed to \relax. % \def\unmacrodo#1{% - \ifx#1\relax + \ifx #1\relax % remove this \else - \noexpand\do \noexpand #1% + \noexpand\definedummyword \noexpand#1% \fi } @@ -5622,46 +7415,269 @@ width0pt\relax} \fi % an opening brace, and that opening brace is not consumed. \def\getargs#1{\getargsxxx#1{}} \def\getargsxxx#1#{\getmacname #1 \relax\getmacargs} -\def\getmacname #1 #2\relax{\macname={#1}} +\def\getmacname#1 #2\relax{\macname={#1}} \def\getmacargs#1{\def\argl{#1}} +% For macro processing make @ a letter so that we can make Texinfo private macro names. +\edef\texiatcatcode{\the\catcode`\@} +\catcode `@=11\relax + % Parse the optional {params} list. Set up \paramno and \paramlist -% so \defmacro knows what to do. Define \macarg.blah for each blah -% in the params list, to be ##N where N is the position in that list. +% so \defmacro knows what to do. Define \macarg.BLAH for each BLAH +% in the params list to some hook where the argument si to be expanded. If +% there are less than 10 arguments that hook is to be replaced by ##N where N +% is the position in that list, that is to say the macro arguments are to be +% defined `a la TeX in the macro body. +% % That gets used by \mbodybackslash (above). - +% % We need to get `macro parameter char #' into several definitions. -% The technique used is stolen from LaTeX: let \hash be something +% The technique used is stolen from LaTeX: let \hash be something % unexpandable, insert that wherever you need a #, and then redefine % it to # just before using the token list produced. % % The same technique is used to protect \eatspaces till just before % the macro is used. - -\def\parsemargdef#1;{\paramno=0\def\paramlist{}% - \let\hash\relax\let\xeatspaces\relax\parsemargdefxxx#1,;,} +% +% If there are 10 or more arguments, a different technique is used, where the +% hook remains in the body, and when macro is to be expanded the body is +% processed again to replace the arguments. +% +% In that case, the hook is \the\toks N-1, and we simply set \toks N-1 to the +% argument N value and then \edef the body (nothing else will expand because of +% the catcode regime underwhich the body was input). +% +% If you compile with TeX (not eTeX), and you have macros with 10 or more +% arguments, you need that no macro has more than 256 arguments, otherwise an +% error is produced. +\def\parsemargdef#1;{% + \paramno=0\def\paramlist{}% + \let\hash\relax + \let\xeatspaces\relax + \parsemargdefxxx#1,;,% + % In case that there are 10 or more arguments we parse again the arguments + % list to set new definitions for the \macarg.BLAH macros corresponding to + % each BLAH argument. It was anyhow needed to parse already once this list + % in order to count the arguments, and as macros with at most 9 arguments + % are by far more frequent than macro with 10 or more arguments, defining + % twice the \macarg.BLAH macros does not cost too much processing power. + \ifnum\paramno<10\relax\else + \paramno0\relax + \parsemmanyargdef@@#1,;,% 10 or more arguments + \fi +} \def\parsemargdefxxx#1,{% \if#1;\let\next=\relax \else \let\next=\parsemargdefxxx - \advance\paramno by 1% + \advance\paramno by 1 \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname {\xeatspaces{\hash\the\paramno}}% \edef\paramlist{\paramlist\hash\the\paramno,}% \fi\next} +\def\parsemmanyargdef@@#1,{% + \if#1;\let\next=\relax + \else + \let\next=\parsemmanyargdef@@ + \edef\tempb{\eatspaces{#1}}% + \expandafter\def\expandafter\tempa + \expandafter{\csname macarg.\tempb\endcsname}% + % Note that we need some extra \noexpand\noexpand, this is because we + % don't want \the to be expanded in the \parsermacbody as it uses an + % \xdef . + \expandafter\edef\tempa + {\noexpand\noexpand\noexpand\the\toks\the\paramno}% + \advance\paramno by 1\relax + \fi\next} + % These two commands read recursive and nonrecursive macro bodies. % (They're different since rec and nonrec macros end differently.) +% +\catcode `\@\texiatcatcode \long\def\parsemacbody#1@end macro% {\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% \long\def\parsermacbody#1@end rmacro% {\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% +\catcode `\@=11\relax + +\let\endargs@\relax +\let\nil@\relax +\def\nilm@{\nil@}% +\long\def\nillm@{\nil@}% + +% This macro is expanded during the Texinfo macro expansion, not during its +% definition. It gets all the arguments values and assigns them to macros +% macarg.ARGNAME +% +% #1 is the macro name +% #2 is the list of argument names +% #3 is the list of argument values +\def\getargvals@#1#2#3{% + \def\macargdeflist@{}% + \def\saveparamlist@{#2}% Need to keep a copy for parameter expansion. + \def\paramlist{#2,\nil@}% + \def\macroname{#1}% + \begingroup + \macroargctxt + \def\argvaluelist{#3,\nil@}% + \def\@tempa{#3}% + \ifx\@tempa\empty + \setemptyargvalues@ + \else + \getargvals@@ + \fi +} + +% +\def\getargvals@@{% + \ifx\paramlist\nilm@ + % Some sanity check needed here that \argvaluelist is also empty. + \ifx\argvaluelist\nillm@ + \else + \errhelp = \EMsimple + \errmessage{Too many arguments in macro `\macroname'!}% + \fi + \let\next\macargexpandinbody@ + \else + \ifx\argvaluelist\nillm@ + % No more arguments values passed to macro. Set remaining named-arg + % macros to empty. + \let\next\setemptyargvalues@ + \else + % pop current arg name into \@tempb + \def\@tempa##1{\pop@{\@tempb}{\paramlist}##1\endargs@}% + \expandafter\@tempa\expandafter{\paramlist}% + % pop current argument value into \@tempc + \def\@tempa##1{\longpop@{\@tempc}{\argvaluelist}##1\endargs@}% + \expandafter\@tempa\expandafter{\argvaluelist}% + % Here \@tempb is the current arg name and \@tempc is the current arg value. + % First place the new argument macro definition into \@tempd + \expandafter\macname\expandafter{\@tempc}% + \expandafter\let\csname macarg.\@tempb\endcsname\relax + \expandafter\def\expandafter\@tempe\expandafter{% + \csname macarg.\@tempb\endcsname}% + \edef\@tempd{\long\def\@tempe{\the\macname}}% + \push@\@tempd\macargdeflist@ + \let\next\getargvals@@ + \fi + \fi + \next +} + +\def\push@#1#2{% + \expandafter\expandafter\expandafter\def + \expandafter\expandafter\expandafter#2% + \expandafter\expandafter\expandafter{% + \expandafter#1#2}% +} + +% Replace arguments by their values in the macro body, and place the result +% in macro \@tempa +\def\macvalstoargs@{% + % To do this we use the property that token registers that are \the'ed + % within an \edef expand only once. So we are going to place all argument + % values into respective token registers. + % + % First we save the token context, and initialize argument numbering. + \begingroup + \paramno0\relax + % Then, for each argument number #N, we place the corresponding argument + % value into a new token list register \toks#N + \expandafter\putargsintokens@\saveparamlist@,;,% + % Then, we expand the body so that argument are replaced by their + % values. The trick for values not to be expanded themselves is that they + % are within tokens and that tokens expand only once in an \edef . + \edef\@tempc{\csname mac.\macroname .body\endcsname}% + % Now we restore the token stack pointer to free the token list registers + % which we have used, but we make sure that expanded body is saved after + % group. + \expandafter + \endgroup + \expandafter\def\expandafter\@tempa\expandafter{\@tempc}% + } + +\def\macargexpandinbody@{% + %% Define the named-macro outside of this group and then close this group. + \expandafter + \endgroup + \macargdeflist@ + % First the replace in body the macro arguments by their values, the result + % is in \@tempa . + \macvalstoargs@ + % Then we point at the \norecurse or \gobble (for recursive) macro value + % with \@tempb . + \expandafter\let\expandafter\@tempb\csname mac.\macroname .recurse\endcsname + % Depending on whether it is recursive or not, we need some tailing + % \egroup . + \ifx\@tempb\gobble + \let\@tempc\relax + \else + \let\@tempc\egroup + \fi + % And now we do the real job: + \edef\@tempd{\noexpand\@tempb{\macroname}\noexpand\scanmacro{\@tempa}\@tempc}% + \@tempd +} + +\def\putargsintokens@#1,{% + \if#1;\let\next\relax + \else + \let\next\putargsintokens@ + % First we allocate the new token list register, and give it a temporary + % alias \@tempb . + \toksdef\@tempb\the\paramno + % Then we place the argument value into that token list register. + \expandafter\let\expandafter\@tempa\csname macarg.#1\endcsname + \expandafter\@tempb\expandafter{\@tempa}% + \advance\paramno by 1\relax + \fi + \next +} + +% Save the token stack pointer into macro #1 +\def\texisavetoksstackpoint#1{\edef#1{\the\@cclvi}} +% Restore the token stack pointer from number in macro #1 +\def\texirestoretoksstackpoint#1{\expandafter\mathchardef\expandafter\@cclvi#1\relax} +% newtoks that can be used non \outer . +\def\texinonouternewtoks{\alloc@ 5\toks \toksdef \@cclvi} -% This defines the macro itself. There are six cases: recursive and -% nonrecursive macros of zero, one, and many arguments. +% Tailing missing arguments are set to empty +\def\setemptyargvalues@{% + \ifx\paramlist\nilm@ + \let\next\macargexpandinbody@ + \else + \expandafter\setemptyargvaluesparser@\paramlist\endargs@ + \let\next\setemptyargvalues@ + \fi + \next +} + +\def\setemptyargvaluesparser@#1,#2\endargs@{% + \expandafter\def\expandafter\@tempa\expandafter{% + \expandafter\def\csname macarg.#1\endcsname{}}% + \push@\@tempa\macargdeflist@ + \def\paramlist{#2}% +} + +% #1 is the element target macro +% #2 is the list macro +% #3,#4\endargs@ is the list value +\def\pop@#1#2#3,#4\endargs@{% + \def#1{#3}% + \def#2{#4}% +} +\long\def\longpop@#1#2#3,#4\endargs@{% + \long\def#1{#3}% + \long\def#2{#4}% +} + +% This defines a Texinfo @macro. There are eight cases: recursive and +% nonrecursive macros of zero, one, up to nine, and many arguments. % Much magic with \expandafter here. % \xdef is used so that macro definitions will survive the file % they're defined in; @include reads the file inside a group. +% \def\defmacro{% \let\hash=##% convert placeholders to macro parameter chars \ifrecursive @@ -5676,17 +7692,25 @@ width0pt\relax} \fi \expandafter\noexpand\csname\the\macname xxx\endcsname}% \expandafter\xdef\csname\the\macname xxx\endcsname##1{% \egroup\noexpand\scanmacro{\temp}}% - \else % many - \expandafter\xdef\csname\the\macname\endcsname{% - \bgroup\noexpand\macroargctxt - \noexpand\csname\the\macname xx\endcsname}% - \expandafter\xdef\csname\the\macname xx\endcsname##1{% - \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% - \expandafter\expandafter - \expandafter\xdef - \expandafter\expandafter - \csname\the\macname xxx\endcsname - \paramlist{\egroup\noexpand\scanmacro{\temp}}% + \else + \ifnum\paramno<10\relax % at most 9 + \expandafter\xdef\csname\the\macname\endcsname{% + \bgroup\noexpand\macroargctxt + \noexpand\csname\the\macname xx\endcsname}% + \expandafter\xdef\csname\the\macname xx\endcsname##1{% + \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% + \expandafter\expandafter + \expandafter\xdef + \expandafter\expandafter + \csname\the\macname xxx\endcsname + \paramlist{\egroup\noexpand\scanmacro{\temp}}% + \else % 10 or more + \expandafter\xdef\csname\the\macname\endcsname{% + \noexpand\getargvals@{\the\macname}{\argl}% + }% + \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp + \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\gobble + \fi \fi \else \ifcase\paramno @@ -5703,63 +7727,57 @@ width0pt\relax} \fi \egroup \noexpand\norecurse{\the\macname}% \noexpand\scanmacro{\temp}\egroup}% - \else % many - \expandafter\xdef\csname\the\macname\endcsname{% - \bgroup\noexpand\macroargctxt - \expandafter\noexpand\csname\the\macname xx\endcsname}% - \expandafter\xdef\csname\the\macname xx\endcsname##1{% - \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% - \expandafter\expandafter - \expandafter\xdef - \expandafter\expandafter - \csname\the\macname xxx\endcsname - \paramlist{% - \egroup - \noexpand\norecurse{\the\macname}% - \noexpand\scanmacro{\temp}\egroup}% + \else % at most 9 + \ifnum\paramno<10\relax + \expandafter\xdef\csname\the\macname\endcsname{% + \bgroup\noexpand\macroargctxt + \expandafter\noexpand\csname\the\macname xx\endcsname}% + \expandafter\xdef\csname\the\macname xx\endcsname##1{% + \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% + \expandafter\expandafter + \expandafter\xdef + \expandafter\expandafter + \csname\the\macname xxx\endcsname + \paramlist{% + \egroup + \noexpand\norecurse{\the\macname}% + \noexpand\scanmacro{\temp}\egroup}% + \else % 10 or more: + \expandafter\xdef\csname\the\macname\endcsname{% + \noexpand\getargvals@{\the\macname}{\argl}% + }% + \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp + \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\norecurse + \fi \fi \fi} +\catcode `\@\texiatcatcode\relax + \def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}} % \braceorline decides whether the next nonwhitespace character is a % {. If so it reads up to the closing }, if not, it reads the whole % line. Whatever was read is then fed to the next control sequence -% as an argument (by \parsebrace or \parsearg) -\def\braceorline#1{\let\next=#1\futurelet\nchar\braceorlinexxx} +% as an argument (by \parsebrace or \parsearg). +% +\def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx} \def\braceorlinexxx{% \ifx\nchar\bgroup\else \expandafter\parsearg - \fi \next} - -% We want to disable all macros during \shipout so that they are not -% expanded by \write. -\def\turnoffmacros{\begingroup \def\do##1{\let\noexpand##1=\relax}% - \edef\next{\macrolist}\expandafter\endgroup\next} - -% For \indexnofonts, we need to get rid of all macros, leaving only the -% arguments (if present). Of course this is not nearly correct, but it -% is the best we can do for now. makeinfo does not expand macros in the -% argument to @deffn, which ends up writing an index entry, and texindex -% isn't prepared for an index sort entry that starts with \. -% -% Since macro invocations are followed by braces, we can just redefine them -% to take a single TeX argument. The case of a macro invocation that -% goes to end-of-line is not handled. -% -\def\emptyusermacros{\begingroup - \def\do##1{\let\noexpand##1=\noexpand\asis}% - \edef\next{\macrolist}\expandafter\endgroup\next} + \fi \macnamexxx} % @alias. % We need some trickery to remove the optional spaces around the equal -% sign. Just make them active and then expand them all to nothing. +% sign. Make them active and then expand them all to nothing. +% \def\alias{\parseargusing\obeyspaces\aliasxxx} \def\aliasxxx #1{\aliasyyy#1\relax} \def\aliasyyy #1=#2\relax{% {% \expandafter\let\obeyedspace=\empty + \addtomacrolist{#1}% \xdef\next{\global\let\makecsname{#1}=\makecsname{#2}}% }% \next @@ -5769,13 +7787,13 @@ width0pt\relax} \fi \message{cross references,} \newwrite\auxfile - \newif\ifhavexrefs % True if xref values are known. \newif\ifwarnedxrefs % True if we warned once that they aren't known. % @inforef is relatively simple. \def\inforef #1{\inforefzzz #1,,,,**} -\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}}, +\def\inforefzzz #1,#2,#3,#4**{% + \putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}}, node \samp{\ignorespaces#1{}}} % @node's only job in TeX is to define \lastnode, which is used in @@ -5814,7 +7832,7 @@ width0pt\relax} \fi % \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an % anchor), which consists of three parts: -% 1) NAME-title - the current sectioning name taken from \thissection, +% 1) NAME-title - the current sectioning name taken from \lastsection, % or the anchor name. % 2) NAME-snt - section number and type, passed as the SNT arg, or % empty for anchors. @@ -5829,20 +7847,39 @@ width0pt\relax} \fi \iflinks {% \atdummies % preserve commands, but don't expand them - \turnoffactive - \otherbackslash \edef\writexrdef##1##2{% \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef ##1}{##2}}% these are parameters of \writexrdef }% - \toks0 = \expandafter{\thissection}% + \toks0 = \expandafter{\lastsection}% \immediate \writexrdef{title}{\the\toks0 }% \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc. - \writexrdef{pg}{\folio}% will be written later, during \shipout + \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, at \shipout }% \fi } +% @xrefautosectiontitle on|off says whether @section(ing) names are used +% automatically in xrefs, if the third arg is not explicitly specified. +% This was provided as a "secret" @set xref-automatic-section-title +% variable, now it's official. +% +\parseargdef\xrefautomaticsectiontitle{% + \def\temp{#1}% + \ifx\temp\onword + \expandafter\let\csname SETxref-automatic-section-title\endcsname + = \empty + \else\ifx\temp\offword + \expandafter\let\csname SETxref-automatic-section-title\endcsname + = \relax + \else + \errhelp = \EMsimple + \errmessage{Unknown @xrefautomaticsectiontitle value `\temp', + must be on|off}% + \fi\fi +} + +% % @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is % the node name, #2 the name of the Info cross-reference, #3 the printed % node name, #4 the name of the Info file, #5 the name of the printed @@ -5851,26 +7888,41 @@ width0pt\relax} \fi \def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]} \def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]} \def\ref#1{\xrefX[#1,,,,,,,]} +% +\newbox\toprefbox +\newbox\printedrefnamebox +\newbox\infofilenamebox +\newbox\printedmanualbox +% \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup \unsepspaces - \def\printedmanual{\ignorespaces #5}% + % + % Get args without leading/trailing spaces. \def\printedrefname{\ignorespaces #3}% - \setbox1=\hbox{\printedmanual\unskip}% - \setbox0=\hbox{\printedrefname\unskip}% - \ifdim \wd0 = 0pt + \setbox\printedrefnamebox = \hbox{\printedrefname\unskip}% + % + \def\infofilename{\ignorespaces #4}% + \setbox\infofilenamebox = \hbox{\infofilename\unskip}% + % + \def\printedmanual{\ignorespaces #5}% + \setbox\printedmanualbox = \hbox{\printedmanual\unskip}% + % + % If the printed reference name (arg #3) was not explicitly given in + % the @xref, figure out what we want to use. + \ifdim \wd\printedrefnamebox = 0pt % No printed node name was explicitly given. - \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax - % Use the node name inside the square brackets. + \expandafter\ifx\csname SETxref-automatic-section-title\endcsname \relax + % Not auto section-title: use node name inside the square brackets. \def\printedrefname{\ignorespaces #1}% \else - % Use the actual chapter/section title appear inside - % the square brackets. Use the real section title if we have it. - \ifdim \wd1 > 0pt - % It is in another manual, so we don't have it. + % Auto section-title: use chapter/section title inside + % the square brackets if we have it. + \ifdim \wd\printedmanualbox > 0pt + % It is in another manual, so we don't have it; use node name. \def\printedrefname{\ignorespaces #1}% \else \ifhavexrefs - % We know the real title if we have the xref values. + % We (should) know the real title if we have the xref values. \def\printedrefname{\refx{#1-title}{}}% \else % Otherwise just copy the Info node name. @@ -5882,18 +7934,32 @@ width0pt\relax} \fi % % Make link in pdf output. \ifpdf - \leavevmode - \getfilename{#4}% - {\turnoffactive \otherbackslash + {\indexnofonts + \turnoffactive + \makevalueexpandable + % This expands tokens, so do it after making catcode changes, so _ + % etc. don't get their TeX definitions. This ignores all spaces in + % #4, including (wrongly) those in the middle of the filename. + \getfilename{#4}% + % + % This (wrongly) does not take account of leading or trailing + % spaces in #1, which should be ignored. + \edef\pdfxrefdest{#1}% + \ifx\pdfxrefdest\empty + \def\pdfxrefdest{Top}% no empty targets + \else + \txiescapepdf\pdfxrefdest % escape PDF special chars + \fi + % + \leavevmode + \startlink attr{/Border [0 0 0]}% \ifnum\filenamelength>0 - \startlink attr{/Border [0 0 0]}% - goto file{\the\filename.pdf} name{#1}% + goto file{\the\filename.pdf} name{\pdfxrefdest}% \else - \startlink attr{/Border [0 0 0]}% - goto name{\pdfmkpgn{#1}}% + goto name{\pdfmkpgn{\pdfxrefdest}}% \fi }% - \linkcolor + \setcolor{\linkcolor}% \fi % % Float references are printed completely differently: "Figure 1.2" @@ -5904,60 +7970,98 @@ width0pt\relax} \fi % include an _ in the xref name, etc. \indexnofonts \turnoffactive - \otherbackslash \expandafter\global\expandafter\let\expandafter\Xthisreftitle \csname XR#1-title\endcsname }% \iffloat\Xthisreftitle % If the user specified the print name (third arg) to the ref, % print it instead of our usual "Figure 1.2". - \ifdim\wd0 = 0pt - \refx{#1-snt}% + \ifdim\wd\printedrefnamebox = 0pt + \refx{#1-snt}{}% \else \printedrefname \fi % - % if the user also gave the printed manual name (fifth arg), append + % If the user also gave the printed manual name (fifth arg), append % "in MANUALNAME". - \ifdim \wd1 > 0pt + \ifdim \wd\printedmanualbox > 0pt \space \putwordin{} \cite{\printedmanual}% \fi \else % node/anchor (non-float) references. + % + % If we use \unhbox to print the node names, TeX does not insert + % empty discretionaries after hyphens, which means that it will not + % find a line break at a hyphen in a node names. Since some manuals + % are best written with fairly long node names, containing hyphens, + % this is a loss. Therefore, we give the text of the node name + % again, so it is as if TeX is seeing it for the first time. + % + \ifdim \wd\printedmanualbox > 0pt + % Cross-manual reference with a printed manual name. + % + \crossmanualxref{\cite{\printedmanual\unskip}}% + % + \else\ifdim \wd\infofilenamebox > 0pt + % Cross-manual reference with only an info filename (arg 4), no + % printed manual name (arg 5). This is essentially the same as + % the case above; we output the filename, since we have nothing else. + % + \crossmanualxref{\code{\infofilename\unskip}}% % - % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not - % insert empty discretionaries after hyphens, which means that it will - % not find a line break at a hyphen in a node names. Since some manuals - % are best written with fairly long node names, containing hyphens, this - % is a loss. Therefore, we give the text of the node name again, so it - % is as if TeX is seeing it for the first time. - \ifdim \wd1 > 0pt - \putwordsection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}% \else + % Reference within this manual. + % % _ (for example) has to be the character _ for the purposes of the % control sequence corresponding to the node, but it has to expand % into the usual \leavevmode...\vrule stuff for purposes of % printing. So we \turnoffactive for the \refx-snt, back on for the % printing, back off for the \refx-pg. - {\turnoffactive \otherbackslash + {\turnoffactive % Only output a following space if the -snt ref is nonempty; for % @unnumbered and @anchor, it won't be. \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}% \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi }% - % output the `[mynode]' via a macro so it can be overridden. + % output the `[mynode]' via the macro below so it can be overridden. \xrefprintnodename\printedrefname % % But we always want a comma and a space: ,\space % % output the `page 3'. - \turnoffactive \otherbackslash \putwordpage\tie\refx{#1-pg}{}% - \fi + \turnoffactive \putwordpage\tie\refx{#1-pg}{}% + \fi\fi \fi \endlink \endgroup} +% Output a cross-manual xref to #1. Used just above (twice). +% +% Only include the text "Section ``foo'' in" if the foo is neither +% missing or Top. Thus, @xref{,,,foo,The Foo Manual} outputs simply +% "see The Foo Manual", the idea being to refer to the whole manual. +% +% But, this being TeX, we can't easily compare our node name against the +% string "Top" while ignoring the possible spaces before and after in +% the input. By adding the arbitrary 7sp below, we make it much less +% likely that a real node name would have the same width as "Top" (e.g., +% in a monospaced font). Hopefully it will never happen in practice. +% +% For the same basic reason, we retypeset the "Top" at every +% reference, since the current font is indeterminate. +% +\def\crossmanualxref#1{% + \setbox\toprefbox = \hbox{Top\kern7sp}% + \setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}% + \ifdim \wd2 > 7sp % nonempty? + \ifdim \wd2 = \wd\toprefbox \else % same as Top? + \putwordSection{} ``\printedrefname'' \putwordin{}\space + \fi + \fi + #1% +} + % This macro is called from \xrefX for the `[nodename]' part of xref % output. It's a separate macro only so it can be changed more easily, % since square brackets don't work well in some documents. Particularly @@ -6008,7 +8112,8 @@ width0pt\relax} \fi \angleleft un\-de\-fined\angleright \iflinks \ifhavexrefs - \message{\linenumber Undefined cross reference `#1'.}% + {\toks0 = {#1}% avoid expansion of possibly-complex value + \message{\linenumber Undefined cross reference `\the\toks0'.}}% \else \ifwarnedxrefs\else \global\warnedxrefstrue @@ -6028,10 +8133,18 @@ width0pt\relax} \fi % collisions). But if this is a float type, we have more work to do. % \def\xrdef#1#2{% - \expandafter\gdef\csname XR#1\endcsname{#2}% remember this xref value. + {% The node name might contain 8-bit characters, which in our current + % implementation are changed to commands like @'e. Don't let these + % mess up the control sequence name. + \indexnofonts + \turnoffactive + \xdef\safexrefname{#1}% + }% + % + \expandafter\gdef\csname XR\safexrefname\endcsname{#2}% remember this xref % % Was that xref control sequence that we just defined for a float? - \expandafter\iffloat\csname XR#1\endcsname + \expandafter\iffloat\csname XR\safexrefname\endcsname % it was a float, and we have the (safe) float type in \iffloattype. \expandafter\let\expandafter\floatlist \csname floatlist\iffloattype\endcsname @@ -6046,7 +8159,8 @@ width0pt\relax} \fi % % Remember this xref in the control sequence \floatlistFLOATTYPE, % for later use in \listoffloats. - \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0{#1}}% + \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0 + {\safexrefname}}% \fi } @@ -6055,13 +8169,13 @@ width0pt\relax} \fi \def\tryauxfile{% \openin 1 \jobname.aux \ifeof 1 \else - \readauxfile + \readdatafile{aux}% \global\havexrefstrue \fi \closein 1 } -\def\readauxfile{\begingroup +\def\setupdatafile{% \catcode`\^^@=\other \catcode`\^^A=\other \catcode`\^^B=\other @@ -6130,11 +8244,11 @@ width0pt\relax} \fi % % Make the characters 128-255 be printing characters. {% - \count 1=128 + \count1=128 \def\loop{% - \catcode\count 1=\other - \advance\count 1 by 1 - \ifnum \count 1<256 \loop \fi + \catcode\count1=\other + \advance\count1 by 1 + \ifnum \count1<256 \loop \fi }% }% % @@ -6142,8 +8256,12 @@ width0pt\relax} \fi \catcode`\{=1 \catcode`\}=2 \catcode`\@=0 - % - \input \jobname.aux +} + +\def\readdatafile#1{% +\begingroup + \setupdatafile + \input\jobname.#1 \endgroup} @@ -6159,7 +8277,7 @@ width0pt\relax} \fi % space to prevent strange expansion errors.) \def\supereject{\par\penalty -20000\footnoteno =0 } -% @footnotestyle is meaningful for info output only. +% @footnotestyle is meaningful for Info output only. \let\footnotestyle=\comment {\catcode `\@=11 @@ -6222,6 +8340,8 @@ width0pt\relax} \fi % expands into a box, it must come within the paragraph, lest it % provide a place where TeX can split the footnote. \footstrut + % + % Invoke rest of plain TeX footnote routine. \futurelet\next\fo@t } }%end \catcode `\@=11 @@ -6229,7 +8349,7 @@ width0pt\relax} \fi % In case a @footnote appears in a vbox, save the footnote text and create % the real \insert just after the vbox finished. Otherwise, the insertion % would be lost. -% Similarily, if a @footnote appears inside an alignment, save the footnote +% Similarly, if a @footnote appears inside an alignment, save the footnote % text to a box and make the \insert when a row of the table is finished. % And the same can be done for other insert classes. --kasal, 16nov03. @@ -6309,7 +8429,7 @@ width0pt\relax} \fi it from ftp://tug.org/tex/epsf.tex.} % \def\image#1{% - \ifx\epsfbox\undefined + \ifx\epsfbox\thisisundefined \ifwarnednoepsf \else \errhelp = \noepsfhelp \errmessage{epsf.tex not found, images will be ignored}% @@ -6325,7 +8445,7 @@ width0pt\relax} \fi % #2 is (optional) width, #3 is (optional) height. % #4 is (ignored optional) html alt text. % #5 is (ignored optional) extension. -% #6 is just the usual extra ignored arg for parsing this stuff. +% #6 is just the usual extra ignored arg for parsing stuff. \newif\ifimagevmode \def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup \catcode`\^^M = 5 % in case we're inside an example @@ -6333,15 +8453,30 @@ width0pt\relax} \fi % If the image is by itself, center it. \ifvmode \imagevmodetrue - \nobreak\bigskip + \else \ifx\centersub\centerV + % for @center @image, we need a vbox so we can have our vertical space + \imagevmodetrue + \vbox\bgroup % vbox has better behavior than vtop herev + \fi\fi + % + \ifimagevmode + \nobreak\medskip % Usually we'll have text after the image which will insert % \parskip glue, so insert it here too to equalize the space % above and below. \nobreak\vskip\parskip \nobreak - \line\bgroup\hss \fi % + % Leave vertical mode so that indentation from an enclosing + % environment such as @quotation is respected. + % However, if we're at the top level, we don't want the + % normal paragraph indentation. + % On the other hand, if we are in the case of @center @image, we don't + % want to start a paragraph, which will create a hsize-width box and + % eradicate the centering. + \ifx\centersub\centerV\else \noindent \fi + % % Output the image. \ifpdf \dopdfimage{#1}{#2}{#3}% @@ -6352,7 +8487,10 @@ width0pt\relax} \fi \epsfbox{#1.eps}% \fi % - \ifimagevmode \hss \egroup \bigbreak \fi % space after the image + \ifimagevmode + \medskip % space after a standalone image + \fi + \ifx\centersub\centerV \egroup \fi \endgroup} @@ -6419,13 +8557,13 @@ width0pt\relax} \fi \global\advance\floatno by 1 % {% - % This magic value for \thissection is output by \setref as the + % This magic value for \lastsection is output by \setref as the % XREFLABEL-title value. \xrefX uses it to distinguish float % labels (which have a completely different output format) from % node and anchor labels. And \xrdef uses it to construct the % lists of floats. % - \edef\thissection{\floatmagic=\safefloattype}% + \edef\lastsection{\floatmagic=\safefloattype}% \setref{\floatlabel}{Yfloat}% }% \fi @@ -6492,7 +8630,8 @@ width0pt\relax} \fi % \floatlabel-lof. Besides \floatident, we include the short % caption if specified, else the full caption if specified, else nothing. {% - \atdummies \turnoffactive \otherbackslash + \atdummies + % % since we read the caption text in the macro world, where ^^M % is turned into a normal character, we have to scan it back, so % we don't write the literal three characters "^^M" into the aux file. @@ -6513,8 +8652,9 @@ width0pt\relax} \fi % % place the captured inserts % - % BEWARE: when the floats start float, we have to issue warning whenever an - % insert appears inside a float which could possibly float. --kasal, 26may04 + % BEWARE: when the floats start floating, we have to issue warning + % whenever an insert appears inside a float which could possibly + % float. --kasal, 26may04 % \checkinserts } @@ -6558,7 +8698,7 @@ width0pt\relax} \fi % #1 is the control sequence we are passed; we expand into a conditional % which is true if #1 represents a float ref. That is, the magic -% \thissection value which we \setref above. +% \lastsection value which we \setref above. % \def\iffloat#1{\expandafter\doiffloat#1==\finish} % @@ -6619,39 +8759,909 @@ width0pt\relax} \fi \writeentry }} + \message{localization,} -% and i18n. -% @documentlanguage is usually given very early, just after -% @setfilename. If done too late, it may not override everything -% properly. Single argument is the language abbreviation. -% It would be nice if we could set up a hyphenation file here. +% For single-language documents, @documentlanguage is usually given very +% early, just after @documentencoding. Single argument is the language +% (de) or locale (de_DE) abbreviation. % -\parseargdef\documentlanguage{% +{ + \catcode`\_ = \active + \globaldefs=1 +\parseargdef\documentlanguage{\begingroup + \let_=\normalunderscore % normal _ character for filenames \tex % read txi-??.tex file in plain TeX. - % Read the file if it exists. + % Read the file by the name they passed if it exists. \openin 1 txi-#1.tex \ifeof 1 - \errhelp = \nolanghelp - \errmessage{Cannot read language file txi-#1.tex}% + \documentlanguagetrywithoutunderscore{#1_\finish}% \else + \globaldefs = 1 % everything in the txi-LL files needs to persist \input txi-#1.tex \fi \closein 1 - \endgroup + \endgroup % end raw TeX +\endgroup} +% +% If they passed de_DE, and txi-de_DE.tex doesn't exist, +% try txi-de.tex. +% +\gdef\documentlanguagetrywithoutunderscore#1_#2\finish{% + \openin 1 txi-#1.tex + \ifeof 1 + \errhelp = \nolanghelp + \errmessage{Cannot read language file txi-#1.tex}% + \else + \globaldefs = 1 % everything in the txi-LL files needs to persist + \input txi-#1.tex + \fi + \closein 1 } +}% end of special _ catcode +% \newhelp\nolanghelp{The given language definition file cannot be found or -is empty. Maybe you need to install it? In the current directory -should work if nowhere else does.} +is empty. Maybe you need to install it? Putting it in the current +directory should work if nowhere else does.} +% This macro is called from txi-??.tex files; the first argument is the +% \language name to set (without the "\lang@" prefix), the second and +% third args are \{left,right}hyphenmin. +% +% The language names to pass are determined when the format is built. +% See the etex.log file created at that time, e.g., +% /usr/local/texlive/2008/texmf-var/web2c/pdftex/etex.log. +% +% With TeX Live 2008, etex now includes hyphenation patterns for all +% available languages. This means we can support hyphenation in +% Texinfo, at least to some extent. (This still doesn't solve the +% accented characters problem.) +% +\catcode`@=11 +\def\txisetlanguage#1#2#3{% + % do not set the language if the name is undefined in the current TeX. + \expandafter\ifx\csname lang@#1\endcsname \relax + \message{no patterns for #1}% + \else + \global\language = \csname lang@#1\endcsname + \fi + % but there is no harm in adjusting the hyphenmin values regardless. + \global\lefthyphenmin = #2\relax + \global\righthyphenmin = #3\relax +} -% @documentencoding should change something in TeX eventually, most -% likely, but for now just recognize it. -\let\documentencoding = \comment +% Helpers for encodings. +% Set the catcode of characters 128 through 255 to the specified number. +% +\def\setnonasciicharscatcode#1{% + \count255=128 + \loop\ifnum\count255<256 + \global\catcode\count255=#1\relax + \advance\count255 by 1 + \repeat +} +\def\setnonasciicharscatcodenonglobal#1{% + \count255=128 + \loop\ifnum\count255<256 + \catcode\count255=#1\relax + \advance\count255 by 1 + \repeat +} -% Page size parameters. +% @documentencoding sets the definition of non-ASCII characters +% according to the specified encoding. % +\parseargdef\documentencoding{% + % Encoding being declared for the document. + \def\declaredencoding{\csname #1.enc\endcsname}% + % + % Supported encodings: names converted to tokens in order to be able + % to compare them with \ifx. + \def\ascii{\csname US-ASCII.enc\endcsname}% + \def\latnine{\csname ISO-8859-15.enc\endcsname}% + \def\latone{\csname ISO-8859-1.enc\endcsname}% + \def\lattwo{\csname ISO-8859-2.enc\endcsname}% + \def\utfeight{\csname UTF-8.enc\endcsname}% + % + \ifx \declaredencoding \ascii + \asciichardefs + % + \else \ifx \declaredencoding \lattwo + \setnonasciicharscatcode\active + \lattwochardefs + % + \else \ifx \declaredencoding \latone + \setnonasciicharscatcode\active + \latonechardefs + % + \else \ifx \declaredencoding \latnine + \setnonasciicharscatcode\active + \latninechardefs + % + \else \ifx \declaredencoding \utfeight + \setnonasciicharscatcode\active + \utfeightchardefs + % + \else + \message{Unknown document encoding #1, ignoring.}% + % + \fi % utfeight + \fi % latnine + \fi % latone + \fi % lattwo + \fi % ascii +} + +% A message to be logged when using a character that isn't available +% the default font encoding (OT1). +% +\def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}} + +% Take account of \c (plain) vs. \, (Texinfo) difference. +\def\cedilla#1{\ifx\c\ptexc\c{#1}\else\,{#1}\fi} + +% First, make active non-ASCII characters in order for them to be +% correctly categorized when TeX reads the replacement text of +% macros containing the character definitions. +\setnonasciicharscatcode\active +% +% Latin1 (ISO-8859-1) character definitions. +\def\latonechardefs{% + \gdef^^a0{\tie} + \gdef^^a1{\exclamdown} + \gdef^^a2{\missingcharmsg{CENT SIGN}} + \gdef^^a3{{\pounds}} + \gdef^^a4{\missingcharmsg{CURRENCY SIGN}} + \gdef^^a5{\missingcharmsg{YEN SIGN}} + \gdef^^a6{\missingcharmsg{BROKEN BAR}} + \gdef^^a7{\S} + \gdef^^a8{\"{}} + \gdef^^a9{\copyright} + \gdef^^aa{\ordf} + \gdef^^ab{\guillemetleft} + \gdef^^ac{$\lnot$} + \gdef^^ad{\-} + \gdef^^ae{\registeredsymbol} + \gdef^^af{\={}} + % + \gdef^^b0{\textdegree} + \gdef^^b1{$\pm$} + \gdef^^b2{$^2$} + \gdef^^b3{$^3$} + \gdef^^b4{\'{}} + \gdef^^b5{$\mu$} + \gdef^^b6{\P} + % + \gdef^^b7{$^.$} + \gdef^^b8{\cedilla\ } + \gdef^^b9{$^1$} + \gdef^^ba{\ordm} + % + \gdef^^bb{\guillemetright} + \gdef^^bc{$1\over4$} + \gdef^^bd{$1\over2$} + \gdef^^be{$3\over4$} + \gdef^^bf{\questiondown} + % + \gdef^^c0{\`A} + \gdef^^c1{\'A} + \gdef^^c2{\^A} + \gdef^^c3{\~A} + \gdef^^c4{\"A} + \gdef^^c5{\ringaccent A} + \gdef^^c6{\AE} + \gdef^^c7{\cedilla C} + \gdef^^c8{\`E} + \gdef^^c9{\'E} + \gdef^^ca{\^E} + \gdef^^cb{\"E} + \gdef^^cc{\`I} + \gdef^^cd{\'I} + \gdef^^ce{\^I} + \gdef^^cf{\"I} + % + \gdef^^d0{\DH} + \gdef^^d1{\~N} + \gdef^^d2{\`O} + \gdef^^d3{\'O} + \gdef^^d4{\^O} + \gdef^^d5{\~O} + \gdef^^d6{\"O} + \gdef^^d7{$\times$} + \gdef^^d8{\O} + \gdef^^d9{\`U} + \gdef^^da{\'U} + \gdef^^db{\^U} + \gdef^^dc{\"U} + \gdef^^dd{\'Y} + \gdef^^de{\TH} + \gdef^^df{\ss} + % + \gdef^^e0{\`a} + \gdef^^e1{\'a} + \gdef^^e2{\^a} + \gdef^^e3{\~a} + \gdef^^e4{\"a} + \gdef^^e5{\ringaccent a} + \gdef^^e6{\ae} + \gdef^^e7{\cedilla c} + \gdef^^e8{\`e} + \gdef^^e9{\'e} + \gdef^^ea{\^e} + \gdef^^eb{\"e} + \gdef^^ec{\`{\dotless i}} + \gdef^^ed{\'{\dotless i}} + \gdef^^ee{\^{\dotless i}} + \gdef^^ef{\"{\dotless i}} + % + \gdef^^f0{\dh} + \gdef^^f1{\~n} + \gdef^^f2{\`o} + \gdef^^f3{\'o} + \gdef^^f4{\^o} + \gdef^^f5{\~o} + \gdef^^f6{\"o} + \gdef^^f7{$\div$} + \gdef^^f8{\o} + \gdef^^f9{\`u} + \gdef^^fa{\'u} + \gdef^^fb{\^u} + \gdef^^fc{\"u} + \gdef^^fd{\'y} + \gdef^^fe{\th} + \gdef^^ff{\"y} +} + +% Latin9 (ISO-8859-15) encoding character definitions. +\def\latninechardefs{% + % Encoding is almost identical to Latin1. + \latonechardefs + % + \gdef^^a4{\euro} + \gdef^^a6{\v S} + \gdef^^a8{\v s} + \gdef^^b4{\v Z} + \gdef^^b8{\v z} + \gdef^^bc{\OE} + \gdef^^bd{\oe} + \gdef^^be{\"Y} +} + +% Latin2 (ISO-8859-2) character definitions. +\def\lattwochardefs{% + \gdef^^a0{\tie} + \gdef^^a1{\ogonek{A}} + \gdef^^a2{\u{}} + \gdef^^a3{\L} + \gdef^^a4{\missingcharmsg{CURRENCY SIGN}} + \gdef^^a5{\v L} + \gdef^^a6{\'S} + \gdef^^a7{\S} + \gdef^^a8{\"{}} + \gdef^^a9{\v S} + \gdef^^aa{\cedilla S} + \gdef^^ab{\v T} + \gdef^^ac{\'Z} + \gdef^^ad{\-} + \gdef^^ae{\v Z} + \gdef^^af{\dotaccent Z} + % + \gdef^^b0{\textdegree} + \gdef^^b1{\ogonek{a}} + \gdef^^b2{\ogonek{ }} + \gdef^^b3{\l} + \gdef^^b4{\'{}} + \gdef^^b5{\v l} + \gdef^^b6{\'s} + \gdef^^b7{\v{}} + \gdef^^b8{\cedilla\ } + \gdef^^b9{\v s} + \gdef^^ba{\cedilla s} + \gdef^^bb{\v t} + \gdef^^bc{\'z} + \gdef^^bd{\H{}} + \gdef^^be{\v z} + \gdef^^bf{\dotaccent z} + % + \gdef^^c0{\'R} + \gdef^^c1{\'A} + \gdef^^c2{\^A} + \gdef^^c3{\u A} + \gdef^^c4{\"A} + \gdef^^c5{\'L} + \gdef^^c6{\'C} + \gdef^^c7{\cedilla C} + \gdef^^c8{\v C} + \gdef^^c9{\'E} + \gdef^^ca{\ogonek{E}} + \gdef^^cb{\"E} + \gdef^^cc{\v E} + \gdef^^cd{\'I} + \gdef^^ce{\^I} + \gdef^^cf{\v D} + % + \gdef^^d0{\DH} + \gdef^^d1{\'N} + \gdef^^d2{\v N} + \gdef^^d3{\'O} + \gdef^^d4{\^O} + \gdef^^d5{\H O} + \gdef^^d6{\"O} + \gdef^^d7{$\times$} + \gdef^^d8{\v R} + \gdef^^d9{\ringaccent U} + \gdef^^da{\'U} + \gdef^^db{\H U} + \gdef^^dc{\"U} + \gdef^^dd{\'Y} + \gdef^^de{\cedilla T} + \gdef^^df{\ss} + % + \gdef^^e0{\'r} + \gdef^^e1{\'a} + \gdef^^e2{\^a} + \gdef^^e3{\u a} + \gdef^^e4{\"a} + \gdef^^e5{\'l} + \gdef^^e6{\'c} + \gdef^^e7{\cedilla c} + \gdef^^e8{\v c} + \gdef^^e9{\'e} + \gdef^^ea{\ogonek{e}} + \gdef^^eb{\"e} + \gdef^^ec{\v e} + \gdef^^ed{\'{\dotless{i}}} + \gdef^^ee{\^{\dotless{i}}} + \gdef^^ef{\v d} + % + \gdef^^f0{\dh} + \gdef^^f1{\'n} + \gdef^^f2{\v n} + \gdef^^f3{\'o} + \gdef^^f4{\^o} + \gdef^^f5{\H o} + \gdef^^f6{\"o} + \gdef^^f7{$\div$} + \gdef^^f8{\v r} + \gdef^^f9{\ringaccent u} + \gdef^^fa{\'u} + \gdef^^fb{\H u} + \gdef^^fc{\"u} + \gdef^^fd{\'y} + \gdef^^fe{\cedilla t} + \gdef^^ff{\dotaccent{}} +} + +% UTF-8 character definitions. +% +% This code to support UTF-8 is based on LaTeX's utf8.def, with some +% changes for Texinfo conventions. It is included here under the GPL by +% permission from Frank Mittelbach and the LaTeX team. +% +\newcount\countUTFx +\newcount\countUTFy +\newcount\countUTFz + +\gdef\UTFviiiTwoOctets#1#2{\expandafter + \UTFviiiDefined\csname u8:#1\string #2\endcsname} +% +\gdef\UTFviiiThreeOctets#1#2#3{\expandafter + \UTFviiiDefined\csname u8:#1\string #2\string #3\endcsname} +% +\gdef\UTFviiiFourOctets#1#2#3#4{\expandafter + \UTFviiiDefined\csname u8:#1\string #2\string #3\string #4\endcsname} + +\gdef\UTFviiiDefined#1{% + \ifx #1\relax + \message{\linenumber Unicode char \string #1 not defined for Texinfo}% + \else + \expandafter #1% + \fi +} + +\begingroup + \catcode`\~13 + \catcode`\"12 + + \def\UTFviiiLoop{% + \global\catcode\countUTFx\active + \uccode`\~\countUTFx + \uppercase\expandafter{\UTFviiiTmp}% + \advance\countUTFx by 1 + \ifnum\countUTFx < \countUTFy + \expandafter\UTFviiiLoop + \fi} + + \countUTFx = "C2 + \countUTFy = "E0 + \def\UTFviiiTmp{% + \xdef~{\noexpand\UTFviiiTwoOctets\string~}} + \UTFviiiLoop + + \countUTFx = "E0 + \countUTFy = "F0 + \def\UTFviiiTmp{% + \xdef~{\noexpand\UTFviiiThreeOctets\string~}} + \UTFviiiLoop + + \countUTFx = "F0 + \countUTFy = "F4 + \def\UTFviiiTmp{% + \xdef~{\noexpand\UTFviiiFourOctets\string~}} + \UTFviiiLoop +\endgroup + +\begingroup + \catcode`\"=12 + \catcode`\<=12 + \catcode`\.=12 + \catcode`\,=12 + \catcode`\;=12 + \catcode`\!=12 + \catcode`\~=13 + + \gdef\DeclareUnicodeCharacter#1#2{% + \countUTFz = "#1\relax + %\wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}% + \begingroup + \parseXMLCharref + \def\UTFviiiTwoOctets##1##2{% + \csname u8:##1\string ##2\endcsname}% + \def\UTFviiiThreeOctets##1##2##3{% + \csname u8:##1\string ##2\string ##3\endcsname}% + \def\UTFviiiFourOctets##1##2##3##4{% + \csname u8:##1\string ##2\string ##3\string ##4\endcsname}% + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter + \gdef\UTFviiiTmp{#2}% + \endgroup} + + \gdef\parseXMLCharref{% + \ifnum\countUTFz < "A0\relax + \errhelp = \EMsimple + \errmessage{Cannot define Unicode char value < 00A0}% + \else\ifnum\countUTFz < "800\relax + \parseUTFviiiA,% + \parseUTFviiiB C\UTFviiiTwoOctets.,% + \else\ifnum\countUTFz < "10000\relax + \parseUTFviiiA;% + \parseUTFviiiA,% + \parseUTFviiiB E\UTFviiiThreeOctets.{,;}% + \else + \parseUTFviiiA;% + \parseUTFviiiA,% + \parseUTFviiiA!% + \parseUTFviiiB F\UTFviiiFourOctets.{!,;}% + \fi\fi\fi + } + + \gdef\parseUTFviiiA#1{% + \countUTFx = \countUTFz + \divide\countUTFz by 64 + \countUTFy = \countUTFz + \multiply\countUTFz by 64 + \advance\countUTFx by -\countUTFz + \advance\countUTFx by 128 + \uccode `#1\countUTFx + \countUTFz = \countUTFy} + + \gdef\parseUTFviiiB#1#2#3#4{% + \advance\countUTFz by "#10\relax + \uccode `#3\countUTFz + \uppercase{\gdef\UTFviiiTmp{#2#3#4}}} +\endgroup + +\def\utfeightchardefs{% + \DeclareUnicodeCharacter{00A0}{\tie} + \DeclareUnicodeCharacter{00A1}{\exclamdown} + \DeclareUnicodeCharacter{00A3}{\pounds} + \DeclareUnicodeCharacter{00A8}{\"{ }} + \DeclareUnicodeCharacter{00A9}{\copyright} + \DeclareUnicodeCharacter{00AA}{\ordf} + \DeclareUnicodeCharacter{00AB}{\guillemetleft} + \DeclareUnicodeCharacter{00AD}{\-} + \DeclareUnicodeCharacter{00AE}{\registeredsymbol} + \DeclareUnicodeCharacter{00AF}{\={ }} + + \DeclareUnicodeCharacter{00B0}{\ringaccent{ }} + \DeclareUnicodeCharacter{00B4}{\'{ }} + \DeclareUnicodeCharacter{00B8}{\cedilla{ }} + \DeclareUnicodeCharacter{00BA}{\ordm} + \DeclareUnicodeCharacter{00BB}{\guillemetright} + \DeclareUnicodeCharacter{00BF}{\questiondown} + + \DeclareUnicodeCharacter{00C0}{\`A} + \DeclareUnicodeCharacter{00C1}{\'A} + \DeclareUnicodeCharacter{00C2}{\^A} + \DeclareUnicodeCharacter{00C3}{\~A} + \DeclareUnicodeCharacter{00C4}{\"A} + \DeclareUnicodeCharacter{00C5}{\AA} + \DeclareUnicodeCharacter{00C6}{\AE} + \DeclareUnicodeCharacter{00C7}{\cedilla{C}} + \DeclareUnicodeCharacter{00C8}{\`E} + \DeclareUnicodeCharacter{00C9}{\'E} + \DeclareUnicodeCharacter{00CA}{\^E} + \DeclareUnicodeCharacter{00CB}{\"E} + \DeclareUnicodeCharacter{00CC}{\`I} + \DeclareUnicodeCharacter{00CD}{\'I} + \DeclareUnicodeCharacter{00CE}{\^I} + \DeclareUnicodeCharacter{00CF}{\"I} + + \DeclareUnicodeCharacter{00D0}{\DH} + \DeclareUnicodeCharacter{00D1}{\~N} + \DeclareUnicodeCharacter{00D2}{\`O} + \DeclareUnicodeCharacter{00D3}{\'O} + \DeclareUnicodeCharacter{00D4}{\^O} + \DeclareUnicodeCharacter{00D5}{\~O} + \DeclareUnicodeCharacter{00D6}{\"O} + \DeclareUnicodeCharacter{00D8}{\O} + \DeclareUnicodeCharacter{00D9}{\`U} + \DeclareUnicodeCharacter{00DA}{\'U} + \DeclareUnicodeCharacter{00DB}{\^U} + \DeclareUnicodeCharacter{00DC}{\"U} + \DeclareUnicodeCharacter{00DD}{\'Y} + \DeclareUnicodeCharacter{00DE}{\TH} + \DeclareUnicodeCharacter{00DF}{\ss} + + \DeclareUnicodeCharacter{00E0}{\`a} + \DeclareUnicodeCharacter{00E1}{\'a} + \DeclareUnicodeCharacter{00E2}{\^a} + \DeclareUnicodeCharacter{00E3}{\~a} + \DeclareUnicodeCharacter{00E4}{\"a} + \DeclareUnicodeCharacter{00E5}{\aa} + \DeclareUnicodeCharacter{00E6}{\ae} + \DeclareUnicodeCharacter{00E7}{\cedilla{c}} + \DeclareUnicodeCharacter{00E8}{\`e} + \DeclareUnicodeCharacter{00E9}{\'e} + \DeclareUnicodeCharacter{00EA}{\^e} + \DeclareUnicodeCharacter{00EB}{\"e} + \DeclareUnicodeCharacter{00EC}{\`{\dotless{i}}} + \DeclareUnicodeCharacter{00ED}{\'{\dotless{i}}} + \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}} + \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}} + + \DeclareUnicodeCharacter{00F0}{\dh} + \DeclareUnicodeCharacter{00F1}{\~n} + \DeclareUnicodeCharacter{00F2}{\`o} + \DeclareUnicodeCharacter{00F3}{\'o} + \DeclareUnicodeCharacter{00F4}{\^o} + \DeclareUnicodeCharacter{00F5}{\~o} + \DeclareUnicodeCharacter{00F6}{\"o} + \DeclareUnicodeCharacter{00F8}{\o} + \DeclareUnicodeCharacter{00F9}{\`u} + \DeclareUnicodeCharacter{00FA}{\'u} + \DeclareUnicodeCharacter{00FB}{\^u} + \DeclareUnicodeCharacter{00FC}{\"u} + \DeclareUnicodeCharacter{00FD}{\'y} + \DeclareUnicodeCharacter{00FE}{\th} + \DeclareUnicodeCharacter{00FF}{\"y} + + \DeclareUnicodeCharacter{0100}{\=A} + \DeclareUnicodeCharacter{0101}{\=a} + \DeclareUnicodeCharacter{0102}{\u{A}} + \DeclareUnicodeCharacter{0103}{\u{a}} + \DeclareUnicodeCharacter{0104}{\ogonek{A}} + \DeclareUnicodeCharacter{0105}{\ogonek{a}} + \DeclareUnicodeCharacter{0106}{\'C} + \DeclareUnicodeCharacter{0107}{\'c} + \DeclareUnicodeCharacter{0108}{\^C} + \DeclareUnicodeCharacter{0109}{\^c} + \DeclareUnicodeCharacter{0118}{\ogonek{E}} + \DeclareUnicodeCharacter{0119}{\ogonek{e}} + \DeclareUnicodeCharacter{010A}{\dotaccent{C}} + \DeclareUnicodeCharacter{010B}{\dotaccent{c}} + \DeclareUnicodeCharacter{010C}{\v{C}} + \DeclareUnicodeCharacter{010D}{\v{c}} + \DeclareUnicodeCharacter{010E}{\v{D}} + + \DeclareUnicodeCharacter{0112}{\=E} + \DeclareUnicodeCharacter{0113}{\=e} + \DeclareUnicodeCharacter{0114}{\u{E}} + \DeclareUnicodeCharacter{0115}{\u{e}} + \DeclareUnicodeCharacter{0116}{\dotaccent{E}} + \DeclareUnicodeCharacter{0117}{\dotaccent{e}} + \DeclareUnicodeCharacter{011A}{\v{E}} + \DeclareUnicodeCharacter{011B}{\v{e}} + \DeclareUnicodeCharacter{011C}{\^G} + \DeclareUnicodeCharacter{011D}{\^g} + \DeclareUnicodeCharacter{011E}{\u{G}} + \DeclareUnicodeCharacter{011F}{\u{g}} + + \DeclareUnicodeCharacter{0120}{\dotaccent{G}} + \DeclareUnicodeCharacter{0121}{\dotaccent{g}} + \DeclareUnicodeCharacter{0124}{\^H} + \DeclareUnicodeCharacter{0125}{\^h} + \DeclareUnicodeCharacter{0128}{\~I} + \DeclareUnicodeCharacter{0129}{\~{\dotless{i}}} + \DeclareUnicodeCharacter{012A}{\=I} + \DeclareUnicodeCharacter{012B}{\={\dotless{i}}} + \DeclareUnicodeCharacter{012C}{\u{I}} + \DeclareUnicodeCharacter{012D}{\u{\dotless{i}}} + + \DeclareUnicodeCharacter{0130}{\dotaccent{I}} + \DeclareUnicodeCharacter{0131}{\dotless{i}} + \DeclareUnicodeCharacter{0132}{IJ} + \DeclareUnicodeCharacter{0133}{ij} + \DeclareUnicodeCharacter{0134}{\^J} + \DeclareUnicodeCharacter{0135}{\^{\dotless{j}}} + \DeclareUnicodeCharacter{0139}{\'L} + \DeclareUnicodeCharacter{013A}{\'l} + + \DeclareUnicodeCharacter{0141}{\L} + \DeclareUnicodeCharacter{0142}{\l} + \DeclareUnicodeCharacter{0143}{\'N} + \DeclareUnicodeCharacter{0144}{\'n} + \DeclareUnicodeCharacter{0147}{\v{N}} + \DeclareUnicodeCharacter{0148}{\v{n}} + \DeclareUnicodeCharacter{014C}{\=O} + \DeclareUnicodeCharacter{014D}{\=o} + \DeclareUnicodeCharacter{014E}{\u{O}} + \DeclareUnicodeCharacter{014F}{\u{o}} + + \DeclareUnicodeCharacter{0150}{\H{O}} + \DeclareUnicodeCharacter{0151}{\H{o}} + \DeclareUnicodeCharacter{0152}{\OE} + \DeclareUnicodeCharacter{0153}{\oe} + \DeclareUnicodeCharacter{0154}{\'R} + \DeclareUnicodeCharacter{0155}{\'r} + \DeclareUnicodeCharacter{0158}{\v{R}} + \DeclareUnicodeCharacter{0159}{\v{r}} + \DeclareUnicodeCharacter{015A}{\'S} + \DeclareUnicodeCharacter{015B}{\'s} + \DeclareUnicodeCharacter{015C}{\^S} + \DeclareUnicodeCharacter{015D}{\^s} + \DeclareUnicodeCharacter{015E}{\cedilla{S}} + \DeclareUnicodeCharacter{015F}{\cedilla{s}} + + \DeclareUnicodeCharacter{0160}{\v{S}} + \DeclareUnicodeCharacter{0161}{\v{s}} + \DeclareUnicodeCharacter{0162}{\cedilla{t}} + \DeclareUnicodeCharacter{0163}{\cedilla{T}} + \DeclareUnicodeCharacter{0164}{\v{T}} + + \DeclareUnicodeCharacter{0168}{\~U} + \DeclareUnicodeCharacter{0169}{\~u} + \DeclareUnicodeCharacter{016A}{\=U} + \DeclareUnicodeCharacter{016B}{\=u} + \DeclareUnicodeCharacter{016C}{\u{U}} + \DeclareUnicodeCharacter{016D}{\u{u}} + \DeclareUnicodeCharacter{016E}{\ringaccent{U}} + \DeclareUnicodeCharacter{016F}{\ringaccent{u}} + + \DeclareUnicodeCharacter{0170}{\H{U}} + \DeclareUnicodeCharacter{0171}{\H{u}} + \DeclareUnicodeCharacter{0174}{\^W} + \DeclareUnicodeCharacter{0175}{\^w} + \DeclareUnicodeCharacter{0176}{\^Y} + \DeclareUnicodeCharacter{0177}{\^y} + \DeclareUnicodeCharacter{0178}{\"Y} + \DeclareUnicodeCharacter{0179}{\'Z} + \DeclareUnicodeCharacter{017A}{\'z} + \DeclareUnicodeCharacter{017B}{\dotaccent{Z}} + \DeclareUnicodeCharacter{017C}{\dotaccent{z}} + \DeclareUnicodeCharacter{017D}{\v{Z}} + \DeclareUnicodeCharacter{017E}{\v{z}} + + \DeclareUnicodeCharacter{01C4}{D\v{Z}} + \DeclareUnicodeCharacter{01C5}{D\v{z}} + \DeclareUnicodeCharacter{01C6}{d\v{z}} + \DeclareUnicodeCharacter{01C7}{LJ} + \DeclareUnicodeCharacter{01C8}{Lj} + \DeclareUnicodeCharacter{01C9}{lj} + \DeclareUnicodeCharacter{01CA}{NJ} + \DeclareUnicodeCharacter{01CB}{Nj} + \DeclareUnicodeCharacter{01CC}{nj} + \DeclareUnicodeCharacter{01CD}{\v{A}} + \DeclareUnicodeCharacter{01CE}{\v{a}} + \DeclareUnicodeCharacter{01CF}{\v{I}} + + \DeclareUnicodeCharacter{01D0}{\v{\dotless{i}}} + \DeclareUnicodeCharacter{01D1}{\v{O}} + \DeclareUnicodeCharacter{01D2}{\v{o}} + \DeclareUnicodeCharacter{01D3}{\v{U}} + \DeclareUnicodeCharacter{01D4}{\v{u}} + + \DeclareUnicodeCharacter{01E2}{\={\AE}} + \DeclareUnicodeCharacter{01E3}{\={\ae}} + \DeclareUnicodeCharacter{01E6}{\v{G}} + \DeclareUnicodeCharacter{01E7}{\v{g}} + \DeclareUnicodeCharacter{01E8}{\v{K}} + \DeclareUnicodeCharacter{01E9}{\v{k}} + + \DeclareUnicodeCharacter{01F0}{\v{\dotless{j}}} + \DeclareUnicodeCharacter{01F1}{DZ} + \DeclareUnicodeCharacter{01F2}{Dz} + \DeclareUnicodeCharacter{01F3}{dz} + \DeclareUnicodeCharacter{01F4}{\'G} + \DeclareUnicodeCharacter{01F5}{\'g} + \DeclareUnicodeCharacter{01F8}{\`N} + \DeclareUnicodeCharacter{01F9}{\`n} + \DeclareUnicodeCharacter{01FC}{\'{\AE}} + \DeclareUnicodeCharacter{01FD}{\'{\ae}} + \DeclareUnicodeCharacter{01FE}{\'{\O}} + \DeclareUnicodeCharacter{01FF}{\'{\o}} + + \DeclareUnicodeCharacter{021E}{\v{H}} + \DeclareUnicodeCharacter{021F}{\v{h}} + + \DeclareUnicodeCharacter{0226}{\dotaccent{A}} + \DeclareUnicodeCharacter{0227}{\dotaccent{a}} + \DeclareUnicodeCharacter{0228}{\cedilla{E}} + \DeclareUnicodeCharacter{0229}{\cedilla{e}} + \DeclareUnicodeCharacter{022E}{\dotaccent{O}} + \DeclareUnicodeCharacter{022F}{\dotaccent{o}} + + \DeclareUnicodeCharacter{0232}{\=Y} + \DeclareUnicodeCharacter{0233}{\=y} + \DeclareUnicodeCharacter{0237}{\dotless{j}} + + \DeclareUnicodeCharacter{02DB}{\ogonek{ }} + + \DeclareUnicodeCharacter{1E02}{\dotaccent{B}} + \DeclareUnicodeCharacter{1E03}{\dotaccent{b}} + \DeclareUnicodeCharacter{1E04}{\udotaccent{B}} + \DeclareUnicodeCharacter{1E05}{\udotaccent{b}} + \DeclareUnicodeCharacter{1E06}{\ubaraccent{B}} + \DeclareUnicodeCharacter{1E07}{\ubaraccent{b}} + \DeclareUnicodeCharacter{1E0A}{\dotaccent{D}} + \DeclareUnicodeCharacter{1E0B}{\dotaccent{d}} + \DeclareUnicodeCharacter{1E0C}{\udotaccent{D}} + \DeclareUnicodeCharacter{1E0D}{\udotaccent{d}} + \DeclareUnicodeCharacter{1E0E}{\ubaraccent{D}} + \DeclareUnicodeCharacter{1E0F}{\ubaraccent{d}} + + \DeclareUnicodeCharacter{1E1E}{\dotaccent{F}} + \DeclareUnicodeCharacter{1E1F}{\dotaccent{f}} + + \DeclareUnicodeCharacter{1E20}{\=G} + \DeclareUnicodeCharacter{1E21}{\=g} + \DeclareUnicodeCharacter{1E22}{\dotaccent{H}} + \DeclareUnicodeCharacter{1E23}{\dotaccent{h}} + \DeclareUnicodeCharacter{1E24}{\udotaccent{H}} + \DeclareUnicodeCharacter{1E25}{\udotaccent{h}} + \DeclareUnicodeCharacter{1E26}{\"H} + \DeclareUnicodeCharacter{1E27}{\"h} + + \DeclareUnicodeCharacter{1E30}{\'K} + \DeclareUnicodeCharacter{1E31}{\'k} + \DeclareUnicodeCharacter{1E32}{\udotaccent{K}} + \DeclareUnicodeCharacter{1E33}{\udotaccent{k}} + \DeclareUnicodeCharacter{1E34}{\ubaraccent{K}} + \DeclareUnicodeCharacter{1E35}{\ubaraccent{k}} + \DeclareUnicodeCharacter{1E36}{\udotaccent{L}} + \DeclareUnicodeCharacter{1E37}{\udotaccent{l}} + \DeclareUnicodeCharacter{1E3A}{\ubaraccent{L}} + \DeclareUnicodeCharacter{1E3B}{\ubaraccent{l}} + \DeclareUnicodeCharacter{1E3E}{\'M} + \DeclareUnicodeCharacter{1E3F}{\'m} + + \DeclareUnicodeCharacter{1E40}{\dotaccent{M}} + \DeclareUnicodeCharacter{1E41}{\dotaccent{m}} + \DeclareUnicodeCharacter{1E42}{\udotaccent{M}} + \DeclareUnicodeCharacter{1E43}{\udotaccent{m}} + \DeclareUnicodeCharacter{1E44}{\dotaccent{N}} + \DeclareUnicodeCharacter{1E45}{\dotaccent{n}} + \DeclareUnicodeCharacter{1E46}{\udotaccent{N}} + \DeclareUnicodeCharacter{1E47}{\udotaccent{n}} + \DeclareUnicodeCharacter{1E48}{\ubaraccent{N}} + \DeclareUnicodeCharacter{1E49}{\ubaraccent{n}} + + \DeclareUnicodeCharacter{1E54}{\'P} + \DeclareUnicodeCharacter{1E55}{\'p} + \DeclareUnicodeCharacter{1E56}{\dotaccent{P}} + \DeclareUnicodeCharacter{1E57}{\dotaccent{p}} + \DeclareUnicodeCharacter{1E58}{\dotaccent{R}} + \DeclareUnicodeCharacter{1E59}{\dotaccent{r}} + \DeclareUnicodeCharacter{1E5A}{\udotaccent{R}} + \DeclareUnicodeCharacter{1E5B}{\udotaccent{r}} + \DeclareUnicodeCharacter{1E5E}{\ubaraccent{R}} + \DeclareUnicodeCharacter{1E5F}{\ubaraccent{r}} + + \DeclareUnicodeCharacter{1E60}{\dotaccent{S}} + \DeclareUnicodeCharacter{1E61}{\dotaccent{s}} + \DeclareUnicodeCharacter{1E62}{\udotaccent{S}} + \DeclareUnicodeCharacter{1E63}{\udotaccent{s}} + \DeclareUnicodeCharacter{1E6A}{\dotaccent{T}} + \DeclareUnicodeCharacter{1E6B}{\dotaccent{t}} + \DeclareUnicodeCharacter{1E6C}{\udotaccent{T}} + \DeclareUnicodeCharacter{1E6D}{\udotaccent{t}} + \DeclareUnicodeCharacter{1E6E}{\ubaraccent{T}} + \DeclareUnicodeCharacter{1E6F}{\ubaraccent{t}} + + \DeclareUnicodeCharacter{1E7C}{\~V} + \DeclareUnicodeCharacter{1E7D}{\~v} + \DeclareUnicodeCharacter{1E7E}{\udotaccent{V}} + \DeclareUnicodeCharacter{1E7F}{\udotaccent{v}} + + \DeclareUnicodeCharacter{1E80}{\`W} + \DeclareUnicodeCharacter{1E81}{\`w} + \DeclareUnicodeCharacter{1E82}{\'W} + \DeclareUnicodeCharacter{1E83}{\'w} + \DeclareUnicodeCharacter{1E84}{\"W} + \DeclareUnicodeCharacter{1E85}{\"w} + \DeclareUnicodeCharacter{1E86}{\dotaccent{W}} + \DeclareUnicodeCharacter{1E87}{\dotaccent{w}} + \DeclareUnicodeCharacter{1E88}{\udotaccent{W}} + \DeclareUnicodeCharacter{1E89}{\udotaccent{w}} + \DeclareUnicodeCharacter{1E8A}{\dotaccent{X}} + \DeclareUnicodeCharacter{1E8B}{\dotaccent{x}} + \DeclareUnicodeCharacter{1E8C}{\"X} + \DeclareUnicodeCharacter{1E8D}{\"x} + \DeclareUnicodeCharacter{1E8E}{\dotaccent{Y}} + \DeclareUnicodeCharacter{1E8F}{\dotaccent{y}} + + \DeclareUnicodeCharacter{1E90}{\^Z} + \DeclareUnicodeCharacter{1E91}{\^z} + \DeclareUnicodeCharacter{1E92}{\udotaccent{Z}} + \DeclareUnicodeCharacter{1E93}{\udotaccent{z}} + \DeclareUnicodeCharacter{1E94}{\ubaraccent{Z}} + \DeclareUnicodeCharacter{1E95}{\ubaraccent{z}} + \DeclareUnicodeCharacter{1E96}{\ubaraccent{h}} + \DeclareUnicodeCharacter{1E97}{\"t} + \DeclareUnicodeCharacter{1E98}{\ringaccent{w}} + \DeclareUnicodeCharacter{1E99}{\ringaccent{y}} + + \DeclareUnicodeCharacter{1EA0}{\udotaccent{A}} + \DeclareUnicodeCharacter{1EA1}{\udotaccent{a}} + + \DeclareUnicodeCharacter{1EB8}{\udotaccent{E}} + \DeclareUnicodeCharacter{1EB9}{\udotaccent{e}} + \DeclareUnicodeCharacter{1EBC}{\~E} + \DeclareUnicodeCharacter{1EBD}{\~e} + + \DeclareUnicodeCharacter{1ECA}{\udotaccent{I}} + \DeclareUnicodeCharacter{1ECB}{\udotaccent{i}} + \DeclareUnicodeCharacter{1ECC}{\udotaccent{O}} + \DeclareUnicodeCharacter{1ECD}{\udotaccent{o}} + + \DeclareUnicodeCharacter{1EE4}{\udotaccent{U}} + \DeclareUnicodeCharacter{1EE5}{\udotaccent{u}} + + \DeclareUnicodeCharacter{1EF2}{\`Y} + \DeclareUnicodeCharacter{1EF3}{\`y} + \DeclareUnicodeCharacter{1EF4}{\udotaccent{Y}} + + \DeclareUnicodeCharacter{1EF8}{\~Y} + \DeclareUnicodeCharacter{1EF9}{\~y} + + \DeclareUnicodeCharacter{2013}{--} + \DeclareUnicodeCharacter{2014}{---} + \DeclareUnicodeCharacter{2018}{\quoteleft} + \DeclareUnicodeCharacter{2019}{\quoteright} + \DeclareUnicodeCharacter{201A}{\quotesinglbase} + \DeclareUnicodeCharacter{201C}{\quotedblleft} + \DeclareUnicodeCharacter{201D}{\quotedblright} + \DeclareUnicodeCharacter{201E}{\quotedblbase} + \DeclareUnicodeCharacter{2022}{\bullet} + \DeclareUnicodeCharacter{2026}{\dots} + \DeclareUnicodeCharacter{2039}{\guilsinglleft} + \DeclareUnicodeCharacter{203A}{\guilsinglright} + \DeclareUnicodeCharacter{20AC}{\euro} + + \DeclareUnicodeCharacter{2192}{\expansion} + \DeclareUnicodeCharacter{21D2}{\result} + + \DeclareUnicodeCharacter{2212}{\minus} + \DeclareUnicodeCharacter{2217}{\point} + \DeclareUnicodeCharacter{2261}{\equiv} +}% end of \utfeightchardefs + + +% US-ASCII character definitions. +\def\asciichardefs{% nothing need be done + \relax +} + +% Make non-ASCII characters printable again for compatibility with +% existing Texinfo documents that may use them, even without declaring a +% document encoding. +% +\setnonasciicharscatcode \other + + +\message{formatting,} + \newdimen\defaultparindent \defaultparindent = 15pt \chapheadingskip = 15pt plus 4pt minus 2pt @@ -6661,10 +9671,10 @@ should work if nowhere else does.} % Prevent underfull vbox error messages. \vbadness = 10000 -% Don't be so finicky about underfull hboxes, either. -\hbadness = 2000 +% Don't be very finicky about underfull hboxes, either. +\hbadness = 6666 -% Following George Bush, just get rid of widows and orphans. +% Following George Bush, get rid of widows and orphans. \widowpenalty=10000 \clubpenalty=10000 @@ -6682,9 +9692,9 @@ should work if nowhere else does.} \fi } -% Parameters in order: 1) textheight; 2) textwidth; 3) voffset; -% 4) hoffset; 5) binding offset; 6) topskip; 7) physical page height; 8) -% physical page width. +% Parameters in order: 1) textheight; 2) textwidth; +% 3) voffset; 4) hoffset; 5) binding offset; 6) topskip; +% 7) physical page height; 8) physical page width. % % We also call \setleading{\textleading}, so the caller should define % \textleading. The caller should also set \parskip. @@ -6711,6 +9721,10 @@ should work if nowhere else does.} \ifpdf \pdfpageheight #7\relax \pdfpagewidth #8\relax + % if we don't reset these, they will remain at "1 true in" of + % whatever layout pdftex was dumped with. + \pdfhorigin = 1 true in + \pdfvorigin = 1 true in \fi % \setleading{\textleading} @@ -6725,19 +9739,19 @@ should work if nowhere else does.} \textleading = 13.2pt % % If page is nothing but text, make it come out even. - \internalpagesizes{46\baselineskip}{6in}% + \internalpagesizes{607.2pt}{6in}% that's 46 lines {\voffset}{.25in}% {\bindingoffset}{36pt}% {11in}{8.5in}% }} -% Use @smallbook to reset parameters for 7x9.5 (or so) format. +% Use @smallbook to reset parameters for 7x9.25 trim size. \def\smallbook{{\globaldefs = 1 \parskip = 2pt plus 1pt \textleading = 12pt % \internalpagesizes{7.5in}{5in}% - {\voffset}{.25in}% + {-.2in}{0in}% {\bindingoffset}{16pt}% {9.25in}{7in}% % @@ -6748,6 +9762,24 @@ should work if nowhere else does.} \defbodyindent = .5cm }} +% Use @smallerbook to reset parameters for 6x9 trim size. +% (Just testing, parameters still in flux.) +\def\smallerbook{{\globaldefs = 1 + \parskip = 1.5pt plus 1pt + \textleading = 12pt + % + \internalpagesizes{7.4in}{4.8in}% + {-.2in}{-.4in}% + {0pt}{14pt}% + {9in}{6in}% + % + \lispnarrowing = 0.25in + \tolerance = 700 + \hfuzz = 1pt + \contentsrightmargin = 0pt + \defbodyindent = .4cm +}} + % Use @afourpaper to print on European A4 paper. \def\afourpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt @@ -6763,7 +9795,7 @@ should work if nowhere else does.} % \global\normaloffset = -6mm % \global\bindingoffset = 10mm % @end tex - \internalpagesizes{51\baselineskip}{160mm} + \internalpagesizes{673.2pt}{160mm}% that's 51 lines {\voffset}{\hoffset}% {\bindingoffset}{44pt}% {297mm}{210mm}% @@ -6828,7 +9860,7 @@ should work if nowhere else does.} \parskip = 3pt plus 2pt minus 1pt \setleading{\textleading}% % - \dimen0 = #1 + \dimen0 = #1\relax \advance\dimen0 by \voffset % \dimen2 = \hsize @@ -6847,25 +9879,21 @@ should work if nowhere else does.} \message{and turning on texinfo input format.} +\def^^L{\par} % remove \outer, so ^L can appear in an @comment + +% DEL is a comment character, in case @c does not suffice. +\catcode`\^^? = 14 + % Define macros to output various characters with catcode for normal text. -\catcode`\"=\other -\catcode`\~=\other -\catcode`\^=\other -\catcode`\_=\other -\catcode`\|=\other -\catcode`\<=\other -\catcode`\>=\other -\catcode`\+=\other -\catcode`\$=\other -\def\normaldoublequote{"} -\def\normaltilde{~} -\def\normalcaret{^} -\def\normalunderscore{_} -\def\normalverticalbar{|} -\def\normalless{<} -\def\normalgreater{>} -\def\normalplus{+} -\def\normaldollar{$}%$ font-lock fix +\catcode`\"=\other \def\normaldoublequote{"} +\catcode`\$=\other \def\normaldollar{$}%$ font-lock fix +\catcode`\+=\other \def\normalplus{+} +\catcode`\<=\other \def\normalless{<} +\catcode`\>=\other \def\normalgreater{>} +\catcode`\^=\other \def\normalcaret{^} +\catcode`\_=\other \def\normalunderscore{_} +\catcode`\|=\other \def\normalverticalbar{|} +\catcode`\~=\other \def\normaltilde{~} % This macro is used to make a character print one way in \tt % (where it can probably be output as-is), and another way in other fonts, @@ -6900,6 +9928,7 @@ should work if nowhere else does.} \catcode`\_=\active \def_{\ifusingtt\normalunderscore\_} +\let\realunder=_ % Subroutine for the previous macro. \def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em } @@ -6922,6 +9951,13 @@ should work if nowhere else does.} % \otherifyactive is called near the end of this file. \def\otherifyactive{\catcode`+=\other \catcode`\_=\other} +% Used sometimes to turn off (effectively) the active characters even after +% parsing them. +\def\turnoffactive{% + \normalturnoffactive + \otherbackslash +} + \catcode`\@=0 % \backslashcurfont outputs one backslash character in current font, @@ -6929,43 +9965,55 @@ should work if nowhere else does.} \global\chardef\backslashcurfont=`\\ \global\let\rawbackslashxx=\backslashcurfont % let existing .??s files work +% \realbackslash is an actual character `\' with catcode other, and +% \doublebackslash is two of them (for the pdf outlines). +{\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}} + +% In texinfo, backslash is an active character; it prints the backslash +% in fixed width font. +\catcode`\\=\active % @ for escape char from now on. + +% The story here is that in math mode, the \char of \backslashcurfont +% ends up printing the roman \ from the math symbol font (because \char +% in math mode uses the \mathcode, and plain.tex sets +% \mathcode`\\="026E). It seems better for @backslashchar{} to always +% print a typewriter backslash, hence we use an explicit \mathchar, +% which is the decimal equivalent of "715c (class 7, e.g., use \fam; +% ignored family value; char position "5C). We can't use " for the +% usual hex value because it has already been made active. +@def@normalbackslash{{@tt @ifmmode @mathchar29020 @else @backslashcurfont @fi}} +@let@backslashchar = @normalbackslash % @backslashchar{} is for user documents. + +% On startup, @fixbackslash assigns: +% @let \ = @normalbackslash % \rawbackslash defines an active \ to do \backslashcurfont. % \otherbackslash defines an active \ to be a literal `\' character with -% catcode other. -{\catcode`\\=\active - @gdef@rawbackslash{@let\=@backslashcurfont} - @gdef@otherbackslash{@let\=@realbackslash} -} - -% \realbackslash is an actual character `\' with catcode other. -{\catcode`\\=\other @gdef@realbackslash{\}} - -% \normalbackslash outputs one backslash in fixed width font. -\def\normalbackslash{{\tt\backslashcurfont}} - -\catcode`\\=\active - -% Used sometimes to turn off (effectively) the active characters -% even after parsing them. -@def@turnoffactive{% - @let"=@normaldoublequote - @let\=@realbackslash - @let~=@normaltilde - @let^=@normalcaret - @let_=@normalunderscore - @let|=@normalverticalbar - @let<=@normalless - @let>=@normalgreater - @let+=@normalplus - @let$=@normaldollar %$ font-lock fix - @unsepspaces -} +% catcode other. We switch back and forth between these. +@gdef@rawbackslash{@let\=@backslashcurfont} +@gdef@otherbackslash{@let\=@realbackslash} % Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of -% the literal character `\'. (Thus, \ is not expandable when this is in -% effect.) -% -@def@normalturnoffactive{@turnoffactive @let\=@normalbackslash} +% the literal character `\'. Also revert - to its normal character, in +% case the active - from code has slipped in. +% +{@catcode`- = @active + @gdef@normalturnoffactive{% + @let-=@normaldash + @let"=@normaldoublequote + @let$=@normaldollar %$ font-lock fix + @let+=@normalplus + @let<=@normalless + @let>=@normalgreater + @let\=@normalbackslash + @let^=@normalcaret + @let_=@normalunderscore + @let|=@normalverticalbar + @let~=@normaltilde + @markupsetuplqdefault + @markupsetuprqdefault + @unsepspaces + } +} % Make _ and + \other characters, temporarily. % This is canceled by @fixbackslash. @@ -6979,9 +10027,9 @@ should work if nowhere else does.} @global@let\ = @eatinput % On the other hand, perhaps the file did not have a `\input texinfo'. Then -% the first `\{ in the file would cause an error. This macro tries to fix +% the first `\' in the file would cause an error. This macro tries to fix % that, assuming it is called before the first `\' could plausibly occur. -% Also back turn on active characters that might appear in the input +% Also turn back on active characters that might appear in the input % file name, in case not using a pre-dumped format. % @gdef@fixbackslash{% @@ -6993,11 +10041,28 @@ should work if nowhere else does.} % Say @foo, not \foo, in error messages. @escapechar = `@@ -% These look ok in all fonts, so just make them not special. -@catcode`@& = @other -@catcode`@# = @other -@catcode`@% = @other +% These (along with & and #) are made active for url-breaking, so need +% active definitions as the normal characters. +@def@normaldot{.} +@def@normalquest{?} +@def@normalslash{/} +% These look ok in all fonts, so just make them not special. +% @hashchar{} gets its own user-level command, because of #line. +@catcode`@& = @other @def@normalamp{&} +@catcode`@# = @other @def@normalhash{#} +@catcode`@% = @other @def@normalpercent{%} + +@let @hashchar = @normalhash + +@c Finally, make ` and ' active, so that txicodequoteundirected and +@c txicodequotebacktick work right in, e.g., @w{@code{`foo'}}. If we +@c don't make ` and ' active, @code will not get them as active chars. +@c Do this last of all since we use ` in the previous @catcode assignments. +@catcode`@'=@active +@catcode`@`=@active +@markupsetuplqdefault +@markupsetuprqdefault @c Local variables: @c eval: (add-hook 'write-file-hooks 'time-stamp) diff --git a/contrib/amd/doc/version.texi b/contrib/amd/doc/version.texi index 41b19a3..9a4feda 100644 --- a/contrib/amd/doc/version.texi +++ b/contrib/amd/doc/version.texi @@ -1,4 +1,4 @@ -@set UPDATED 20 April 2006 -@set UPDATED-MONTH April 2006 -@set EDITION 6.1.5 -@set VERSION 6.1.5 +@set UPDATED 28 October 2014 +@set UPDATED-MONTH October 2014 +@set EDITION 6.2 +@set VERSION 6.2 diff --git a/contrib/amd/fixmount/fixmount.8 b/contrib/amd/fixmount/fixmount.8 index 07e34d1..97050f8 100644 --- a/contrib/amd/fixmount/fixmount.8 +++ b/contrib/amd/fixmount/fixmount.8 @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 1997-2006 Erez Zadok +.\" Copyright (c) 1997-2014 Erez Zadok .\" Copyright (c) 1990 Jan-Simon Pendry .\" Copyright (c) 1990 Imperial College of Science, Technology & Medicine .\" Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgment: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors +.\" 3. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" @@ -36,9 +32,8 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %W% (Berkeley) %G% .\" -.\" $Id: fixmount.8,v 1.12.2.1 2006/01/02 18:48:25 ezk Exp $ +.\" File: am-utils/fixmount/fixmount.8 .\" $FreeBSD$ .\" .Dd January 2, 2006 diff --git a/contrib/amd/fixmount/fixmount.c b/contrib/amd/fixmount/fixmount.c index c7c6910..9465f30 100644 --- a/contrib/amd/fixmount/fixmount.c +++ b/contrib/amd/fixmount/fixmount.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -115,7 +111,7 @@ is_same_host(char *name1, char *name2, struct in_addr addr2) } else if (!(he = gethostbyname(name1))) { return 0; } else { - xstrlcpy(lasthost, name1, MAXHOSTNAMELEN); + xstrlcpy(lasthost, name1, sizeof(lasthost)); memcpy(&addr1, he->h_addr, sizeof(addr1)); return (addr1.s_addr == addr2.s_addr); } @@ -176,7 +172,7 @@ remove_mount(CLIENT *client, char *host, mountlist ml, int fixit) (XDRPROC_T_TYPE) xdr_dirpath, (char *) &pathp, (XDRPROC_T_TYPE) xdr_void, - (char *) 0, + (char *) NULL, tv)) != RPC_SUCCESS) { fprintf(stderr, "%s:%s MOUNTPROC_UMNT: ", host, ml->ml_directory); @@ -235,9 +231,9 @@ remove_all(CLIENT *client, char *host) if ((estat = clnt_call(client, MOUNTPROC_UMNTALL, (XDRPROC_T_TYPE) xdr_void, - (char *) 0, + (char *) NULL, (XDRPROC_T_TYPE) xdr_void, - (char *) 0, + (char *) NULL, tv)) != RPC_SUCCESS) { /* * RPC_SYSTEMERROR is returned even if all went well @@ -389,7 +385,7 @@ main(int argc, char *argv[]) if ((estat = clnt_call(client, MOUNTPROC_DUMP, (XDRPROC_T_TYPE) xdr_void, - (char *) 0, + (char *) NULL, (XDRPROC_T_TYPE) xdr_mountlist, (char *) &mntdump, tv)) != RPC_SUCCESS) { @@ -403,7 +399,7 @@ main(int argc, char *argv[]) if ((estat = clnt_call(client, MOUNTPROC_EXPORT, (XDRPROC_T_TYPE) xdr_void, - (char *) 0, + (char *) NULL, (XDRPROC_T_TYPE) xdr_exports, (char *) &mntexports, tv)) != RPC_SUCCESS) { diff --git a/contrib/amd/fsinfo/fsi_analyze.c b/contrib/amd/fsinfo/fsi_analyze.c index 9da4097..78598b8 100644 --- a/contrib/amd/fsinfo/fsi_analyze.c +++ b/contrib/amd/fsinfo/fsi_analyze.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -56,27 +52,27 @@ char *disk_fs_strings[] = { - "fstype", "opts", "dumpset", "passno", "freq", "mount", "log", 0, + "fstype", "opts", "dumpset", "passno", "freq", "mount", "log", NULL, }; char *mount_strings[] = { - "volname", "exportfs", 0, + "volname", "exportfs", NULL, }; char *fsmount_strings[] = { - "as", "volname", "fstype", "opts", "from", 0, + "as", "volname", "fstype", "opts", "from", NULL, }; char *host_strings[] = { - "host", "netif", "config", "arch", "cluster", "os", 0, + "host", "netif", "config", "arch", "cluster", "os", NULL, }; char *ether_if_strings[] = { - "inaddr", "netmask", "hwaddr", 0, + "inaddr", "netmask", "hwaddr", NULL, }; @@ -122,7 +118,7 @@ compute_hostpath(char *hn) do { d = strrchr(p, '.'); if (d) { - *d = 0; + *d = '\0'; xstrlcat(path, d + 1, sizeof(path)); xstrlcat(path, "/", sizeof(path)); } else { @@ -141,7 +137,7 @@ static dict_ent * find_volname(char *nn) { dict_ent *de; - char *p = strdup(nn); + char *p = xstrdup(nn); char *q; do { @@ -186,7 +182,7 @@ check_exportfs(qelem *q, fsi_mount *e) lwarning(mp->m_ioloc, "%s has duplicate exportfs data", mp->m_name); mp->m_exported = mp; if (!ISSET(mp->m_mask, DM_VOLNAME)) - set_mount(mp, DM_VOLNAME, strdup(mp->m_name)); + set_mount(mp, DM_VOLNAME, xstrdup(mp->m_name)); } else { mp->m_exported = e; } @@ -228,7 +224,7 @@ analyze_dkmount_tree(qelem *q, fsi_mount *parent, disk_fs *dk) lwarning(mp->m_ioloc, "sub-directory of %s is named \"default\"", parent->m_name); fsi_log("Changing name %s to %s", mp->m_name, n); XFREE(mp->m_name); - mp->m_name = strdup(n); + mp->m_name = xstrdup(n); } mp->m_name_len = strlen(mp->m_name); @@ -251,7 +247,7 @@ static int analyze_dkmounts(disk_fs *dk, qelem *q) { int errors = 0; - fsi_mount *mp, *mp2 = 0; + fsi_mount *mp, *mp2 = NULL; int i = 0; /* @@ -286,7 +282,7 @@ analyze_dkmounts(disk_fs *dk, qelem *q) char nbuf[1024]; compute_automount_point(nbuf, sizeof(nbuf), dk->d_host, mp2->m_volname); XFREE(mp2->m_name); - mp2->m_name = strdup(nbuf); + mp2->m_name = xstrdup(nbuf); fsi_log("%s:%s has default mount on %s", dk->d_host->h_hostname, dk->d_dev, mp2->m_name); } else { lerror(dk->d_ioloc, "no volname given for %s:%s", dk->d_host->h_hostname, dk->d_dev); @@ -298,19 +294,19 @@ analyze_dkmounts(disk_fs *dk, qelem *q) * Fill in the disk mount point */ if (!errors && mp2 && mp2->m_name) - dk->d_mountpt = strdup(mp2->m_name); + dk->d_mountpt = xstrdup(mp2->m_name); else - dk->d_mountpt = strdup("error"); + dk->d_mountpt = xstrdup("error"); /* * Analyze the mount tree */ - errors += analyze_dkmount_tree(q, 0, dk); + errors += analyze_dkmount_tree(q, NULL, dk); /* * Analyze the export tree */ - errors += check_exportfs(q, 0); + errors += check_exportfs(q, NULL); return errors; } @@ -353,7 +349,7 @@ fixup_required_disk_info(disk_fs *dp) * "opts" */ if (!ISSET(dp->d_mask, DF_OPTS)) - set_disk_fs(dp, DF_OPTS, strdup("swap")); + set_disk_fs(dp, DF_OPTS, xstrdup("swap")); /* * "mount" @@ -362,7 +358,7 @@ fixup_required_disk_info(disk_fs *dp) qelem *q = new_que(); fsi_mount *m = new_mount(); - m->m_name = strdup("swap"); + m->m_name = xstrdup("swap"); m->m_mount = new_que(); ins_que(&m->m_q, q->q_back); dp->d_mount = q; @@ -400,7 +396,7 @@ fixup_required_disk_info(disk_fs *dp) * "opts" */ if (!ISSET(dp->d_mask, DF_OPTS)) - set_disk_fs(dp, DF_OPTS, strdup("rw,defaults")); + set_disk_fs(dp, DF_OPTS, xstrdup("rw,defaults")); } } @@ -415,7 +411,7 @@ fixup_required_mount_info(fsmount *fp, dict_ent *de) lerror(fp->f_ioloc, "ambiguous mount: %s is a replicated filesystem", fp->f_volname); } else { dict_data *dd; - fsi_mount *mp = 0; + fsi_mount *mp = NULL; dd = AM_FIRST(dict_data, &de->de_q); mp = (fsi_mount *) dd->dd_data; if (!mp) @@ -427,18 +423,18 @@ fixup_required_mount_info(fsmount *fp, dict_ent *de) } if (!ISSET(fp->f_mask, FM_FSTYPE)) { - set_fsmount(fp, FM_FSTYPE, strdup("nfs")); + set_fsmount(fp, FM_FSTYPE, xstrdup("nfs")); fsi_log("set: fstype is %s", fp->f_fstype); } if (!ISSET(fp->f_mask, FM_OPTS)) { - set_fsmount(fp, FM_OPTS, strdup("rw,nosuid,grpid,defaults")); + set_fsmount(fp, FM_OPTS, xstrdup("rw,nosuid,grpid,defaults")); fsi_log("set: opts are %s", fp->f_opts); } if (!ISSET(fp->f_mask, FM_LOCALNAME)) { if (fp->f_ref) { - set_fsmount(fp, FM_LOCALNAME, strdup(fp->f_volname)); + set_fsmount(fp, FM_LOCALNAME, xstrdup(fp->f_volname)); fsi_log("set: localname is %s", fp->f_localname); } else { lerror(fp->f_ioloc, "cannot determine localname since volname %s is not uniquely defined", fp->f_volname); @@ -485,7 +481,7 @@ analyze_mounts(host *hp) ITER(fp, fsmount, q) { char *p; - char *nn = strdup(fp->f_volname); + char *nn = xstrdup(fp->f_volname); int req; dict_ent *de = (dict_ent *) NULL; int found = 0; @@ -496,7 +492,7 @@ analyze_mounts(host *hp) matched = 1; } else do { - p = 0; + p = NULL; de = find_volname(nn); fsi_log("Mount: %s (trying %s)", fp->f_volname, nn); @@ -511,7 +507,7 @@ analyze_mounts(host *hp) */ if (ISSET(fp->f_mask, FM_FROM) && !ISSET(fp->f_mask, FM_DIRECT)) { dict_data *dd; - fsi_mount *mp2 = 0; + fsi_mount *mp2 = NULL; ITER(dd, dict_data, &de->de_q) { fsi_mount *mp = (fsi_mount *) dd->dd_data; @@ -535,7 +531,7 @@ analyze_mounts(host *hp) } p = strrchr(nn, '/'); if (p) - *p = 0; + *p = '\0'; } while (de && p); XFREE(nn); @@ -635,7 +631,7 @@ analyze_automount_tree(qelem *q, char *pref, int lvl) lerror(ap->a_ioloc, "not allowed '/' in a directory name"); xsnprintf(nname, sizeof(nname), "%s/%s", pref, ap->a_name); XFREE(ap->a_name); - ap->a_name = strdup(nname[1] == '/' ? nname + 1 : nname); + ap->a_name = xstrdup(nname[1] == '/' ? nname + 1 : nname); fsi_log("automount point %s:", ap->a_name); show_new("ana-automount"); @@ -649,7 +645,7 @@ analyze_automount_tree(qelem *q, char *pref, int lvl) } else if (ap->a_symlink) { fsi_log("\tsymlink to %s", ap->a_symlink); } else { - ap->a_volname = strdup(ap->a_name); + ap->a_volname = xstrdup(ap->a_name); fsi_log("\timplicit automount from %s", ap->a_volname); analyze_automount(ap); } diff --git a/contrib/amd/fsinfo/fsi_data.h b/contrib/amd/fsinfo/fsi_data.h index 8276caf..4cc341d 100644 --- a/contrib/amd/fsinfo/fsi_data.h +++ b/contrib/amd/fsinfo/fsi_data.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/contrib/amd/fsinfo/fsi_dict.c b/contrib/amd/fsinfo/fsi_dict.c index 29cd1a3..b909783 100644 --- a/contrib/amd/fsinfo/fsi_dict.c +++ b/contrib/amd/fsinfo/fsi_dict.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/contrib/amd/fsinfo/fsi_gram.y b/contrib/amd/fsinfo/fsi_gram.y index 961a89f..85d19aa 100644 --- a/contrib/amd/fsinfo/fsi_gram.y +++ b/contrib/amd/fsinfo/fsi_gram.y @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -200,7 +196,7 @@ automount : opt_auto_opts : /* empty */ - { $$ = strdup(""); } + { $$ = xstrdup(""); } | tOPTS tSTR { $$ = $2; } @@ -233,7 +229,7 @@ filesystem : { $4->d_dev = $2; $$ = $4; } | tFS error '}' - { $$ = (disk_fs *) 0; } + { $$ = (disk_fs *) NULL; } ; /* diff --git a/contrib/amd/fsinfo/fsi_lex.l b/contrib/amd/fsinfo/fsi_lex.l index 6bca59b..4d09e2c 100644 --- a/contrib/amd/fsinfo/fsi_lex.l +++ b/contrib/amd/fsinfo/fsi_lex.l @@ -1,6 +1,6 @@ %{ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -17,11 +17,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -102,7 +98,7 @@ static int ayylineno; */ #ifdef FLEX_SCANNER # ifndef ECHO -# define ECHO (void) fwrite( yytext, yyleng, 1, yyout ) +# define ECHO __IGNORE(fwrite( yytext, yyleng, 1, yyout )) # endif /* not ECHO */ #endif /* FLEX_SCANNER */ @@ -111,9 +107,11 @@ static int ayylineno; * which automatically generates yywrap macros and symbols. So I must * distinguish between them and when yywrap is actually needed. */ -#ifndef yywrap +#if !defined(yywrap) || defined(yylex) int yywrap(void); -#endif /* not yywrap */ +#endif /* not yywrap or yylex */ + +int fsi_error(const char *, ...); YYSTYPE yylval; static char *fsi_filename; @@ -153,7 +151,7 @@ struct r { { "passno", tPASSNO }, { "sel", tSEL }, { "volname", tVOLNAME }, - { 0, 0 }, + { NULL, 0 }, }; #define NRES_WORDS (sizeof(rr)/sizeof(rr[0])-1) @@ -162,6 +160,7 @@ struct r { /* This option causes Solaris lex to fail. Use flex. See BUGS file */ /* no need to use yyunput() */ %option nounput +%option noinput /* allocate more output slots so lex scanners don't run out of mem */ %o 1024 @@ -177,7 +176,7 @@ struct r { <F>[={}] { return *yytext; } <F>\" { BEGIN Q; optr = ostr; quoted = 1; } -<Q>\n { ayylineno++; yyerror("\" expected"); BEGIN F; } +<Q>\n { ayylineno++; fsi_error("\" expected"); BEGIN F; } <Q>\\b { *optr++ = '\b'; /* escape */ } <Q>\\t { *optr++ = '\t'; /* escape */ } <Q>\\\" { *optr++ = '\"'; /* escape */ } @@ -187,11 +186,11 @@ struct r { <Q>\\n { *optr++ = '\n'; /* escape */ } <Q>\\f { *optr++ = '\f'; /* escape */ } <Q>"\\ " { *optr++ = ' '; /* force space */ } -<Q>\\. { yyerror("Unknown \\ sequence"); } +<Q>\\. { fsi_error("Unknown \\ sequence"); } <Q>([ \t]|"\\\n"){2,} { char *p = (char *) yytext-1; while ((p = strchr(p+1, '\n'))) ayylineno++; } <Q>\" { BEGIN F; quoted = 0; *optr = '\0'; - yylval.s = strdup(ostr); + yylval.s = xstrdup(ostr); return tSTR; } <Q>. { *optr++ = *yytext; } @@ -224,11 +223,11 @@ find_resword(char *s) switch (tok) { case tLOCALHOST: s = "${host}"; - /* fall through... */ + /*FALLTHROUGH*/ case 0: - yylval.s = strdup(s); + yylval.s = xstrdup(s); tok = tSTR; - /* fall through... */ + /*FALLTHROUGH*/ default: return tok; } @@ -236,7 +235,7 @@ find_resword(char *s) int -yyerror(char *fmt, ...) +fsi_error(const char *fmt, ...) { va_list ap; @@ -266,9 +265,9 @@ current_location(void) * which automatically generates yywrap macros and symbols. So I must * distinguish between them and when yywrap is actually needed. */ -#ifndef yywrap +#if !defined(yywrap) || defined(yylex) int yywrap(void) { return 1; } -#endif /* not yywrap */ +#endif /* not yywrap or yylex */ diff --git a/contrib/amd/fsinfo/fsi_util.c b/contrib/amd/fsinfo/fsi_util.c index 5e7571f..f8ff313 100644 --- a/contrib/amd/fsinfo/fsi_util.c +++ b/contrib/amd/fsinfo/fsi_util.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -13,11 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -201,7 +197,7 @@ gen_hdr(FILE *ef, char *hn) static void make_banner(FILE *fp) { - time_t t = time((time_t *) 0); + time_t t = time((time_t *) NULL); char *cp = ctime(&t); fprintf(fp, @@ -235,7 +231,7 @@ show_new(char *msg) void show_area_being_processed(char *area, int n) { - static char *last_area = 0; + static char *last_area = NULL; if (verbose < 0) return; @@ -316,9 +312,9 @@ new_automount(char *name) ap->a_ioloc = current_location(); ap->a_name = name; - ap->a_volname = 0; - ap->a_mount = 0; - ap->a_opts = 0; + ap->a_volname = NULL; + ap->a_mount = NULL; + ap->a_opts = NULL; show_new("automount"); return ap; } @@ -355,7 +351,7 @@ set_host(host *hp, int k, char *v) int m = 1 << k; if (hp->h_mask & m) { - yyerror("host field \"%s\" already set", host_strings[k]); + fsi_error("host field \"%s\" already set", host_strings[k]); return; } hp->h_mask |= m; @@ -363,11 +359,11 @@ set_host(host *hp, int k, char *v) switch (k) { case HF_HOST:{ - char *p = strdup(v); + char *p = xstrdup(v); dict_ent *de = dict_locate(dict_of_hosts, v); if (de) - yyerror("duplicate host %s!", v); + fsi_error("duplicate host %s!", v); else dict_add(dict_of_hosts, v, (char *) hp); hp->h_hostname = v; @@ -442,7 +438,7 @@ set_ether_if(ether_if *ep, int k, char *v) int m = 1 << k; if (ep->e_mask & m) { - yyerror("netif field \"%s\" already set", ether_if_strings[k]); + fsi_error("netif field \"%s\" already set", ether_if_strings[k]); return; } ep->e_mask |= m; @@ -452,7 +448,7 @@ set_ether_if(ether_if *ep, int k, char *v) case EF_INADDR:{ ep->e_inaddr.s_addr = inet_addr(v); if ((int) ep->e_inaddr.s_addr == (int) INADDR_NONE) - yyerror("malformed IP dotted quad: %s", v); + fsi_error("malformed IP dotted quad: %s", v); XFREE(v); } break; @@ -463,7 +459,7 @@ set_ether_if(ether_if *ep, int k, char *v) if ((sscanf(v, "0x%lx", &nm) == 1 || sscanf(v, "%lx", &nm) == 1) && nm != 0) ep->e_netmask = htonl(nm); else - yyerror("malformed netmask: %s", v); + fsi_error("malformed netmask: %s", v); XFREE(v); } break; @@ -485,7 +481,7 @@ set_disk_fs(disk_fs *dp, int k, char *v) int m = 1 << k; if (dp->d_mask & m) { - yyerror("fs field \"%s\" already set", disk_fs_strings[k]); + fsi_error("fs field \"%s\" already set", disk_fs_strings[k]); return; } dp->d_mask |= m; @@ -546,7 +542,7 @@ set_mount(fsi_mount *mp, int k, char *v) int m = 1 << k; if (mp->m_mask & m) { - yyerror("mount tree field \"%s\" already set", mount_strings[k]); + fsi_error("mount tree field \"%s\" already set", mount_strings[k]); return; } mp->m_mask |= m; @@ -590,7 +586,7 @@ set_fsmount(fsmount *fp, int k, char *v) int m = 1 << k; if (fp->f_mask & m) { - yyerror("mount field \"%s\" already set", fsmount_strings[k]); + fsi_error("mount field \"%s\" already set", fsmount_strings[k]); return; } fp->f_mask |= m; diff --git a/contrib/amd/fsinfo/fsinfo.8 b/contrib/amd/fsinfo/fsinfo.8 index c4f817e..f4a1afa 100644 --- a/contrib/amd/fsinfo/fsinfo.8 +++ b/contrib/amd/fsinfo/fsinfo.8 @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 1997-2006 Erez Zadok +.\" Copyright (c) 1997-2014 Erez Zadok .\" Copyright (c) 1993 Jan-Simon Pendry. .\" Copyright (c) 1993 .\" The Regents of the University of California. All rights reserved. @@ -12,11 +12,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgment: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors +.\" 3. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" @@ -32,34 +28,42 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" from: @(#)fsinfo.8 8.1 (Berkeley) 6/28/93 -.\" $Id: fsinfo.8,v 1.13.2.1 2006/01/02 18:48:25 ezk Exp $ .\" $FreeBSD$ .\" -.Dd January 2, 2006 -.Dt FSINFO 8 -.Os +.\" File: am-utils/fsinfo/fsinfo.8 +.\" +.Dd August 31, 2016 .Sh NAME .Nm fsinfo .Nd co-ordinate site-wide file system information .Sh SYNOPSIS .Nm -.Op Fl qv +.Op fl qv .Op Fl a Ar autodir -.Op Fl b Ar bootparams_prefix -.Op Fl d Ar dumpsets_prefix -.Op Fl e Ar exports_prefix -.Op Fl f Ar fstabs_prefix +.Op Fl b Ar bootparams +.Op Fl d Ar dumpsets +.Op Fl e Ar exports +.Op Fl f Ar fstabs .Op Fl h Ar hostname -.Op Fl m Ar automounts_prefix +.Op Fl m Ar automounts .Op Fl I Ar dir .Oo .Fl D .Ar name Ns Op = Ns Ar string .Oc -.Op Fl U Ar name +.Oo +.Fl U +.Ar name Ns Op = Ns Ar string +.Oc .Ar config ... .Sh DESCRIPTION +.Bf -symbolic +This command is obsolete. +Users are advised to use +.Xr autofs 5 +instead. +.Ef +.Pp The .Nm utility takes a set of system configuration information, and generates diff --git a/contrib/amd/fsinfo/fsinfo.c b/contrib/amd/fsinfo/fsinfo.c index e441a47..93122ea 100644 --- a/contrib/amd/fsinfo/fsinfo.c +++ b/contrib/amd/fsinfo/fsinfo.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -213,7 +209,7 @@ find_username(void) if (!u) u = "root"; - return strdup(u); + return xstrdup(u); } @@ -258,7 +254,7 @@ main(int argc, char *argv[]) * Parse input */ show_area_being_processed("read config", 11); - if (yyparse()) + if (fsi_parse()) errors = 1; errors += file_io_errors + parse_errors; diff --git a/contrib/amd/fsinfo/fsinfo.h b/contrib/amd/fsinfo/fsinfo.h index 99b407b..7a87163 100644 --- a/contrib/amd/fsinfo/fsinfo.h +++ b/contrib/amd/fsinfo/fsinfo.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -104,7 +100,7 @@ extern void show_area_being_processed(char *area, int n); extern void show_new(char *msg); extern void warning(void); -extern int yyerror(char *fmt, ...) +extern int fsi_error(const char *fmt, ...) __attribute__((__format__(__printf__, 1, 2))); extern void domain_strip(char *otherdom, char *localdom); /* @@ -115,7 +111,7 @@ extern void domain_strip(char *otherdom, char *localdom); #ifndef yywrap extern int yywrap(void); #endif /* not yywrap */ -extern int yyparse(void); +extern int fsi_parse(void); extern int write_atab(qelem *q); extern int write_bootparams(qelem *q); extern int write_dumpset(qelem *q); @@ -124,7 +120,7 @@ extern int write_fstab(qelem *q); extern void col_cleanup(int eoj); extern void set_host(host *hp, int k, char *v); extern void set_ether_if(ether_if *ep, int k, char *v); -extern int yylex(void); +extern int fsi_lex(void); #define BITSET(m,b) ((m) |= (1<<(b))) diff --git a/contrib/amd/fsinfo/null_gram.c b/contrib/amd/fsinfo/null_gram.c new file mode 100644 index 0000000..9b4e9f4 --- /dev/null +++ b/contrib/amd/fsinfo/null_gram.c @@ -0,0 +1,1414 @@ +/* A Bison parser, made by GNU Bison 3.0.2. */ + +/* Bison implementation for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +/* C LALR(1) parser skeleton written by Richard Stallman, by + simplifying the original so-called "semantic" parser. */ + +/* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +/* Identify Bison output. */ +#define YYBISON 1 + +/* Bison version. */ +#define YYBISON_VERSION "3.0.2" + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 0 + +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 + + +/* Substitute the variable and function names. */ +#define yyparse null_parse +#define yylex null_lex +#define yyerror null_error +#define yydebug null_debug +#define yynerrs null_nerrs + +#define yylval null_lval +#define yychar null_char + +/* Copy the first part of user declarations. */ +#line 1 "../../fsinfo/null_gram.y" /* yacc.c:339 */ + +void yyerror(const char *fmt, ...); +extern int yylex(void); + +#line 79 "null_gram.c" /* yacc.c:339 */ + +# ifndef YY_NULLPTR +# if defined __cplusplus && 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +/* In a future release of Bison, this section will be replaced + by #include "y.tab.h". */ +#ifndef YY_NULL_NULL_GRAM_H_INCLUDED +# define YY_NULL_NULL_GRAM_H_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int null_debug; +#endif + + +/* Value type. */ +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef int YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 +#endif + + +extern YYSTYPE null_lval; + +int null_parse (void); + +#endif /* !YY_NULL_NULL_GRAM_H_INCLUDED */ + +/* Copy the second part of user declarations. */ + +#line 126 "null_gram.c" /* yacc.c:358 */ + +#ifdef short +# undef short +#endif + +#ifdef YYTYPE_UINT8 +typedef YYTYPE_UINT8 yytype_uint8; +#else +typedef unsigned char yytype_uint8; +#endif + +#ifdef YYTYPE_INT8 +typedef YYTYPE_INT8 yytype_int8; +#else +typedef signed char yytype_int8; +#endif + +#ifdef YYTYPE_UINT16 +typedef YYTYPE_UINT16 yytype_uint16; +#else +typedef unsigned short int yytype_uint16; +#endif + +#ifdef YYTYPE_INT16 +typedef YYTYPE_INT16 yytype_int16; +#else +typedef short int yytype_int16; +#endif + +#ifndef YYSIZE_T +# ifdef __SIZE_TYPE__ +# define YYSIZE_T __SIZE_TYPE__ +# elif defined size_t +# define YYSIZE_T size_t +# elif ! defined YYSIZE_T +# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# else +# define YYSIZE_T unsigned int +# endif +#endif + +#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) + +#ifndef YY_ +# if defined YYENABLE_NLS && YYENABLE_NLS +# if ENABLE_NLS +# include <libintl.h> /* INFRINGES ON USER NAME SPACE */ +# define YY_(Msgid) dgettext ("bison-runtime", Msgid) +# endif +# endif +# ifndef YY_ +# define YY_(Msgid) Msgid +# endif +#endif + +#ifndef YY_ATTRIBUTE +# if (defined __GNUC__ \ + && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ + || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C +# define YY_ATTRIBUTE(Spec) __attribute__(Spec) +# else +# define YY_ATTRIBUTE(Spec) /* empty */ +# endif +#endif + +#ifndef YY_ATTRIBUTE_PURE +# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +#endif + +#ifndef YY_ATTRIBUTE_UNUSED +# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +#endif + +#if !defined _Noreturn \ + && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) +# if defined _MSC_VER && 1200 <= _MSC_VER +# define _Noreturn __declspec (noreturn) +# else +# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) +# endif +#endif + +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YYUSE(E) ((void) (E)) +#else +# define YYUSE(E) /* empty */ +#endif + +#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") +#else +# define YY_INITIAL_VALUE(Value) Value +#endif +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END +#endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ +#endif + + +#if ! defined yyoverflow || YYERROR_VERBOSE + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# elif defined __BUILTIN_VA_ARG_INCR +# include <alloca.h> /* INFRINGES ON USER NAME SPACE */ +# elif defined _AIX +# define YYSTACK_ALLOC __alloca +# elif defined _MSC_VER +# include <malloc.h> /* INFRINGES ON USER NAME SPACE */ +# define alloca _alloca +# else +# define YYSTACK_ALLOC alloca +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS +# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ + /* Use EXIT_SUCCESS as a witness for stdlib.h. */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +# endif +# endif +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's 'empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) +# ifndef YYSTACK_ALLOC_MAXIMUM + /* The OS might guarantee only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely + invoke alloca (N) if N exceeds 4096. Use a slightly smaller number + to allow for a few compiler-allocated temporary stack slots. */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ +# endif +# else +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# ifndef YYSTACK_ALLOC_MAXIMUM +# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM +# endif +# if (defined __cplusplus && ! defined EXIT_SUCCESS \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) +# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +# endif +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if ! defined malloc && ! defined EXIT_SUCCESS +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if ! defined free && ! defined EXIT_SUCCESS +void free (void *); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# endif +#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ + + +#if (! defined yyoverflow \ + && (! defined __cplusplus \ + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + yytype_int16 yyss_alloc; + YYSTYPE yyvs_alloc; +}; + +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) + +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) + +# define YYCOPY_NEEDED 1 + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (0) + +#endif + +#if defined YYCOPY_NEEDED && YYCOPY_NEEDED +/* Copy COUNT objects from SRC to DST. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(Dst, Src, Count) \ + __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) +# else +# define YYCOPY(Dst, Src, Count) \ + do \ + { \ + YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (Dst)[yyi] = (Src)[yyi]; \ + } \ + while (0) +# endif +# endif +#endif /* !YYCOPY_NEEDED */ + +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 2 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 0 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 3 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 2 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 2 +/* YYNSTATES -- Number of states. */ +#define YYNSTATES 3 + +/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned + by yylex, with out-of-bounds checking. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 257 + +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, without out-of-bounds checking. */ +static const yytype_uint8 yytranslate[] = +{ + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2 +}; + +#if YYDEBUG + /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ +static const yytype_uint8 yyrline[] = +{ + 0, 8, 8 +}; +#endif + +#if YYDEBUG || YYERROR_VERBOSE || 0 +/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "$end", "error", "$undefined", "$accept", "token", YY_NULLPTR +}; +#endif + +# ifdef YYPRINT +/* YYTOKNUM[NUM] -- (External) token number corresponding to the + (internal) symbol number NUM (which must be that of a token). */ +static const yytype_uint16 yytoknum[] = +{ + 0, 256, 257 +}; +# endif + +#define YYPACT_NINF -1 + +#define yypact_value_is_default(Yystate) \ + (!!((Yystate) == (-1))) + +#define YYTABLE_NINF -1 + +#define yytable_value_is_error(Yytable_value) \ + 0 + + /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +static const yytype_int8 yypact[] = +{ + -1, 0, -1 +}; + + /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE does not specify something else to do. Zero + means the default is an error. */ +static const yytype_uint8 yydefact[] = +{ + 2, 0, 1 +}; + + /* YYPGOTO[NTERM-NUM]. */ +static const yytype_int8 yypgoto[] = +{ + -1, -1 +}; + + /* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int8 yydefgoto[] = +{ + -1, 1 +}; + + /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ +static const yytype_uint8 yytable[] = +{ + 2 +}; + +static const yytype_uint8 yycheck[] = +{ + 0 +}; + + /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_uint8 yystos[] = +{ + 0, 4, 0 +}; + + /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint8 yyr1[] = +{ + 0, 3, 4 +}; + + /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = +{ + 0, 2, 0 +}; + + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + + +#define YYRECOVERING() (!!yyerrstatus) + +#define YYBACKUP(Token, Value) \ +do \ + if (yychar == YYEMPTY) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + YYPOPSTACK (yylen); \ + yystate = *yyssp; \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ +while (0) + +/* Error token number */ +#define YYTERROR 1 +#define YYERRCODE 256 + + + +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include <stdio.h> /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) + +/* This macro is provided for backward compatibility. */ +#ifndef YY_LOCATION_PRINT +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +#endif + + +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) + + +/*----------------------------------------. +| Print this symbol's value on YYOUTPUT. | +`----------------------------------------*/ + +static void +yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +{ + FILE *yyo = yyoutput; + YYUSE (yyo); + if (!yyvaluep) + return; +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# endif + YYUSE (yytype); +} + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +static void +yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +{ + YYFPRINTF (yyoutput, "%s %s (", + yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); + + yy_symbol_value_print (yyoutput, yytype, yyvaluep); + YYFPRINTF (yyoutput, ")"); +} + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +static void +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +{ + YYFPRINTF (stderr, "Stack now"); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } + YYFPRINTF (stderr, "\n"); +} + +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +static void +yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) +{ + unsigned long int yylno = yyrline[yyrule]; + int yynrhs = yyr2[yyrule]; + int yyi; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + yyrule - 1, yylno); + /* The symbols being reduced. */ + for (yyi = 0; yyi < yynrhs; yyi++) + { + YYFPRINTF (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, + yystos[yyssp[yyi + 1 - yynrhs]], + &(yyvsp[(yyi + 1) - (yynrhs)]) + ); + YYFPRINTF (stderr, "\n"); + } +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyssp, yyvsp, Rule); \ +} while (0) + +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +int yydebug; +#else /* !YYDEBUG */ +# define YYDPRINTF(Args) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) +#endif /* !YYDEBUG */ + + +/* YYINITDEPTH -- initial size of the parser's stacks. */ +#ifndef YYINITDEPTH +# define YYINITDEPTH 200 +#endif + +/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only + if the built-in stack extension method is used). + + Do not make this value too large; the results are undefined if + YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ + +#ifndef YYMAXDEPTH +# define YYMAXDEPTH 10000 +#endif + + +#if YYERROR_VERBOSE + +# ifndef yystrlen +# if defined __GLIBC__ && defined _STRING_H +# define yystrlen strlen +# else +/* Return the length of YYSTR. */ +static YYSIZE_T +yystrlen (const char *yystr) +{ + YYSIZE_T yylen; + for (yylen = 0; yystr[yylen]; yylen++) + continue; + return yylen; +} +# endif +# endif + +# ifndef yystpcpy +# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE +# define yystpcpy stpcpy +# else +/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in + YYDEST. */ +static char * +yystpcpy (char *yydest, const char *yysrc) +{ + char *yyd = yydest; + const char *yys = yysrc; + + while ((*yyd++ = *yys++) != '\0') + continue; + + return yyd - 1; +} +# endif +# endif + +# ifndef yytnamerr +/* Copy to YYRES the contents of YYSTR after stripping away unnecessary + quotes and backslashes, so that it's suitable for yyerror. The + heuristic is that double-quoting is unnecessary unless the string + contains an apostrophe, a comma, or backslash (other than + backslash-backslash). YYSTR is taken from yytname. If YYRES is + null, do not copy; instead, return the length of what the result + would have been. */ +static YYSIZE_T +yytnamerr (char *yyres, const char *yystr) +{ + if (*yystr == '"') + { + YYSIZE_T yyn = 0; + char const *yyp = yystr; + + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } + do_not_strip_quotes: ; + } + + if (! yyres) + return yystrlen (yystr); + + return yystpcpy (yyres, yystr) - yyres; +} +# endif + +/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message + about the unexpected token YYTOKEN for the state stack whose top is + YYSSP. + + Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is + not large enough to hold the message. In that case, also set + *YYMSG_ALLOC to the required number of bytes. Return 2 if the + required number of bytes is too large to store. */ +static int +yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, + yytype_int16 *yyssp, int yytoken) +{ + YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); + YYSIZE_T yysize = yysize0; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + /* Internationalized format string. */ + const char *yyformat = YY_NULLPTR; + /* Arguments of yyformat. */ + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + /* Number of reported tokens (one for the "unexpected", one per + "expected"). */ + int yycount = 0; + + /* There are many possibilities here to consider: + - If this state is a consistent state with a default action, then + the only way this function was invoked is if the default action + is an error action. In that case, don't check for expected + tokens because there are none. + - The only way there can be no lookahead present (in yychar) is if + this state is a consistent state with a default action. Thus, + detecting the absence of a lookahead is sufficient to determine + that there is no unexpected or expected token to report. In that + case, just report a simple "syntax error". + - Don't assume there isn't a lookahead just because this state is a + consistent state with a default action. There might have been a + previous inconsistent state, consistent state with a non-default + action, or user semantic action that manipulated yychar. + - Of course, the expected token list depends on states to have + correct lookahead information, and it depends on the parser not + to perform extra reductions after fetching a lookahead from the + scanner and before detecting a syntax error. Thus, state merging + (from LALR or IELR) and default reductions corrupt the expected + token list. However, the list is correct for canonical LR with + one exception: it will still contain any token that will not be + accepted due to an error action in a later state. + */ + if (yytoken != YYEMPTY) + { + int yyn = yypact[*yyssp]; + yyarg[yycount++] = yytname[yytoken]; + if (!yypact_value_is_default (yyn)) + { + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. In other words, skip the first -YYN actions for + this state because they are default actions. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yyx; + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR + && !yytable_value_is_error (yytable[yyx + yyn])) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + break; + } + yyarg[yycount++] = yytname[yyx]; + { + YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); + if (! (yysize <= yysize1 + && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } + } + } + } + + switch (yycount) + { +# define YYCASE_(N, S) \ + case N: \ + yyformat = S; \ + break + YYCASE_(0, YY_("syntax error")); + YYCASE_(1, YY_("syntax error, unexpected %s")); + YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); + YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); + YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); + YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); +# undef YYCASE_ + } + + { + YYSIZE_T yysize1 = yysize + yystrlen (yyformat); + if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } + + if (*yymsg_alloc < yysize) + { + *yymsg_alloc = 2 * yysize; + if (! (yysize <= *yymsg_alloc + && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) + *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; + return 1; + } + + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + { + char *yyp = *yymsg; + int yyi = 0; + while ((*yyp = *yyformat) != '\0') + if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyformat += 2; + } + else + { + yyp++; + yyformat++; + } + } + return 0; +} +#endif /* YYERROR_VERBOSE */ + +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +static void +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) +{ + YYUSE (yyvaluep); + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_END +} + + + + +/* The lookahead symbol. */ +int yychar; + +/* The semantic value of the lookahead symbol. */ +YYSTYPE yylval; +/* Number of syntax errors so far. */ +int yynerrs; + + +/*----------. +| yyparse. | +`----------*/ + +int +yyparse (void) +{ + int yystate; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + + /* The stacks and their tools: + 'yyss': related to states. + 'yyvs': related to semantic values. + + Refer to the stacks through separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss; + yytype_int16 *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; + + YYSIZE_T yystacksize; + + int yyn; + int yyresult; + /* Lookahead token as an internal (translated) token number. */ + int yytoken = 0; + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + + /* The number of symbols on the RHS of the reduced rule. + Keep to zero when no symbol should be popped. */ + int yylen = 0; + + yyssp = yyss = yyssa; + yyvsp = yyvs = yyvsa; + yystacksize = YYINITDEPTH; + + YYDPRINTF ((stderr, "Starting parse\n")); + + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ + goto yysetstate; + +/*------------------------------------------------------------. +| yynewstate -- Push a new state, which is found in yystate. | +`------------------------------------------------------------*/ + yynewstate: + /* In all cases, when you get here, the value and location stacks + have just been pushed. So pushing a state here evens the stacks. */ + yyssp++; + + yysetstate: + *yyssp = yystate; + + if (yyss + yystacksize - 1 <= yyssp) + { + /* Get the current used size of the three stacks, in elements. */ + YYSIZE_T yysize = yyssp - yyss + 1; + +#ifdef yyoverflow + { + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + yytype_int16 *yyss1 = yyss; + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + &yystacksize); + + yyss = yyss1; + yyvs = yyvs1; + } +#else /* no yyoverflow */ +# ifndef YYSTACK_RELOCATE + goto yyexhaustedlab; +# else + /* Extend the stack our own way. */ + if (YYMAXDEPTH <= yystacksize) + goto yyexhaustedlab; + yystacksize *= 2; + if (YYMAXDEPTH < yystacksize) + yystacksize = YYMAXDEPTH; + + { + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } +# endif +#endif /* no yyoverflow */ + + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; + + YYDPRINTF ((stderr, "Stack size increased to %lu\n", + (unsigned long int) yystacksize)); + + if (yyss + yystacksize - 1 <= yyssp) + YYABORT; + } + + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + + if (yystate == YYFINAL) + YYACCEPT; + + goto yybackup; + +/*-----------. +| yybackup. | +`-----------*/ +yybackup: + + /* Do appropriate processing given the current state. Read a + lookahead token if we need one and don't already have one. */ + + /* First try to decide what to do without reference to lookahead token. */ + yyn = yypact[yystate]; + if (yypact_value_is_default (yyn)) + goto yydefault; + + /* Not known => get a lookahead token if don't already have one. */ + + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + if (yychar == YYEMPTY) + { + YYDPRINTF ((stderr, "Reading a token: ")); + yychar = yylex (); + } + + if (yychar <= YYEOF) + { + yychar = yytoken = YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); + } + else + { + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); + } + + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) + goto yydefault; + yyn = yytable[yyn]; + if (yyn <= 0) + { + if (yytable_value_is_error (yyn)) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } + + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; + + /* Shift the lookahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); + + /* Discard the shifted token. */ + yychar = YYEMPTY; + + yystate = yyn; + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + + goto yynewstate; + + +/*-----------------------------------------------------------. +| yydefault -- do the default action for the current state. | +`-----------------------------------------------------------*/ +yydefault: + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + goto yyreduce; + + +/*-----------------------------. +| yyreduce -- Do a reduction. | +`-----------------------------*/ +yyreduce: + /* yyn is the number of a rule to reduce with. */ + yylen = yyr2[yyn]; + + /* If YYLEN is nonzero, implement the default value of the action: + '$$ = $1'. + + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison + users should not rely upon it. Assigning to YYVAL + unconditionally makes the parser a bit smaller, and it avoids a + GCC warning that YYVAL may be used uninitialized. */ + yyval = yyvsp[1-yylen]; + + + YY_REDUCE_PRINT (yyn); + switch (yyn) + { + +#line 1188 "null_gram.c" /* yacc.c:1646 */ + default: break; + } + /* User semantic actions sometimes alter yychar, and that requires + that yytoken be updated with the new translation. We take the + approach of translating immediately before every use of yytoken. + One alternative is translating here after every semantic action, + but that translation would be missed if the semantic action invokes + YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or + if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an + incorrect destructor might then be invoked immediately. In the + case of YYERROR or YYBACKUP, subsequent parser actions might lead + to an incorrect destructor call or verbose syntax error message + before the lookahead is translated. */ + YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + + *++yyvsp = yyval; + + /* Now 'shift' the result of the reduction. Determine what state + that goes to, based on the state we popped back to and the rule + number reduced by. */ + + yyn = yyr1[yyn]; + + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTOKENS]; + + goto yynewstate; + + +/*--------------------------------------. +| yyerrlab -- here on detecting error. | +`--------------------------------------*/ +yyerrlab: + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); + + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) + { + ++yynerrs; +#if ! YYERROR_VERBOSE + yyerror (YY_("syntax error")); +#else +# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ + yyssp, yytoken) + { + char const *yymsgp = YY_("syntax error"); + int yysyntax_error_status; + yysyntax_error_status = YYSYNTAX_ERROR; + if (yysyntax_error_status == 0) + yymsgp = yymsg; + else if (yysyntax_error_status == 1) + { + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); + if (!yymsg) + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + yysyntax_error_status = 2; + } + else + { + yysyntax_error_status = YYSYNTAX_ERROR; + yymsgp = yymsg; + } + } + yyerror (yymsgp); + if (yysyntax_error_status == 2) + goto yyexhaustedlab; + } +# undef YYSYNTAX_ERROR +#endif + } + + + + if (yyerrstatus == 3) + { + /* If just tried and failed to reuse lookahead token after an + error, discard it. */ + + if (yychar <= YYEOF) + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } + else + { + yydestruct ("Error: discarding", + yytoken, &yylval); + yychar = YYEMPTY; + } + } + + /* Else will try to reuse lookahead token after shifting the error + token. */ + goto yyerrlab1; + + +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (/*CONSTCOND*/ 0) + goto yyerrorlab; + + /* Do not reclaim the symbols of the rule whose action triggered + this YYERROR. */ + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + yystate = *yyssp; + goto yyerrlab1; + + +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ + + for (;;) + { + yyn = yypact[yystate]; + if (!yypact_value_is_default (yyn)) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } + + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; + + + yydestruct ("Error: popping", + yystos[yystate], yyvsp); + YYPOPSTACK (1); + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); + } + + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + + + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + + yystate = yyn; + goto yynewstate; + + +/*-------------------------------------. +| yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +yyacceptlab: + yyresult = 0; + goto yyreturn; + +/*-----------------------------------. +| yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +yyabortlab: + yyresult = 1; + goto yyreturn; + +#if !defined yyoverflow || YYERROR_VERBOSE +/*-------------------------------------------------. +| yyexhaustedlab -- memory exhaustion comes here. | +`-------------------------------------------------*/ +yyexhaustedlab: + yyerror (YY_("memory exhausted")); + yyresult = 2; + /* Fall through. */ +#endif + +yyreturn: + if (yychar != YYEMPTY) + { + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = YYTRANSLATE (yychar); + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + } + /* Do not reclaim the symbols of the rule whose action triggered + this YYABORT or YYACCEPT. */ + YYPOPSTACK (yylen); + YY_STACK_PRINT (yyss, yyssp); + while (yyssp != yyss) + { + yydestruct ("Cleanup: popping", + yystos[*yyssp], yyvsp); + YYPOPSTACK (1); + } +#ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); +#endif +#if YYERROR_VERBOSE + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); +#endif + return yyresult; +} diff --git a/contrib/amd/fsinfo/null_gram.h b/contrib/amd/fsinfo/null_gram.h new file mode 100644 index 0000000..77c4ac7 --- /dev/null +++ b/contrib/amd/fsinfo/null_gram.h @@ -0,0 +1,56 @@ +/* A Bison parser, made by GNU Bison 3.0.2. */ + +/* Bison interface for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +#ifndef YY_NULL_NULL_GRAM_H_INCLUDED +# define YY_NULL_NULL_GRAM_H_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int null_debug; +#endif + + +/* Value type. */ +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef int YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 +#endif + + +extern YYSTYPE null_lval; + +int null_parse (void); + +#endif /* !YY_NULL_NULL_GRAM_H_INCLUDED */ diff --git a/contrib/amd/fsinfo/null_gram.y b/contrib/amd/fsinfo/null_gram.y new file mode 100644 index 0000000..d7313b9 --- /dev/null +++ b/contrib/amd/fsinfo/null_gram.y @@ -0,0 +1,8 @@ +%{ +void yyerror(const char *fmt, ...); +extern int yylex(void); +%} + +%% + +token: diff --git a/contrib/amd/fsinfo/null_lex.c b/contrib/amd/fsinfo/null_lex.c new file mode 100644 index 0000000..b890445 --- /dev/null +++ b/contrib/amd/fsinfo/null_lex.c @@ -0,0 +1,1716 @@ + +#line 3 "lex.null_.c" + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + +#define yy_create_buffer null__create_buffer +#define yy_delete_buffer null__delete_buffer +#define yy_flex_debug null__flex_debug +#define yy_init_buffer null__init_buffer +#define yy_flush_buffer null__flush_buffer +#define yy_load_buffer_state null__load_buffer_state +#define yy_switch_to_buffer null__switch_to_buffer +#define yyin null_in +#define yyleng null_leng +#define yylex null_lex +#define yylineno null_lineno +#define yyout null_out +#define yyrestart null_restart +#define yytext null_text +#define yywrap null_wrap +#define yyalloc null_alloc +#define yyrealloc null_realloc +#define yyfree null_free + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 5 +#define YY_FLEX_SUBMINOR_VERSION 35 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ + +/* begin standard C headers. */ +#include <stdio.h> +#include <string.h> +#include <errno.h> +#include <stdlib.h> + +/* end standard C headers. */ + +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ + +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, + * if you want the limit (max/min) macros for int types. + */ +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS 1 +#endif + +#include <inttypes.h> +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; + +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif + +#endif /* ! C99 */ + +#endif /* ! FLEXINT_H */ + +#ifdef __cplusplus + +/* The "const" storage-class-modifier is valid. */ +#define YY_USE_CONST + +#else /* ! __cplusplus */ + +/* C99 requires __STDC__ to be defined as 1. */ +#if defined (__STDC__) + +#define YY_USE_CONST + +#endif /* defined (__STDC__) */ +#endif /* ! __cplusplus */ + +#ifdef YY_USE_CONST +#define yyconst const +#else +#define yyconst +#endif + +/* Returned upon end-of-file. */ +#define YY_NULL 0 + +/* Promotes a possibly negative, possibly signed char to an unsigned + * integer for use as an array index. If the signed char is negative, + * we want to instead treat it as an 8-bit unsigned char, hence the + * double cast. + */ +#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) + +/* Enter a start condition. This macro really ought to take a parameter, + * but we do it the disgusting crufty way forced on us by the ()-less + * definition of BEGIN. + */ +#define BEGIN (yy_start) = 1 + 2 * + +/* Translate the current start state into a value that can be later handed + * to BEGIN to return to the state. The YYSTATE alias is for lex + * compatibility. + */ +#define YY_START (((yy_start) - 1) / 2) +#define YYSTATE YY_START + +/* Action number for EOF rule of a given start state. */ +#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) + +/* Special action meaning "start processing a new file". */ +#define YY_NEW_FILE null_restart(null_in ) + +#define YY_END_OF_BUFFER_CHAR 0 + +/* Size of default input buffer. */ +#ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else +#define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ +#endif + +/* The state buf must be large enough to hold one state per character in the main buffer. + */ +#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE +typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif + +extern int null_leng; + +extern FILE *null_in, *null_out; + +#define EOB_ACT_CONTINUE_SCAN 0 +#define EOB_ACT_END_OF_FILE 1 +#define EOB_ACT_LAST_MATCH 2 + + #define YY_LESS_LINENO(n) + +/* Return all but the first "n" matched characters back to the input stream. */ +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up null_text. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + *yy_cp = (yy_hold_char); \ + YY_RESTORE_YY_MORE_OFFSET \ + (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ + YY_DO_BEFORE_ACTION; /* set up null_text again */ \ + } \ + while ( 0 ) + +#define unput(c) yyunput( c, (yytext_ptr) ) + +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE +struct yy_buffer_state + { + FILE *yy_input_file; + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + int yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; + +#define YY_BUFFER_NEW 0 +#define YY_BUFFER_NORMAL 1 + /* When an EOF's been seen but there's still some text to process + * then we mark the buffer as YY_EOF_PENDING, to indicate that we + * shouldn't try reading from the input source any more. We might + * still have a bunch of tokens to match, though, because of + * possible backing-up. + * + * When we actually see the EOF, we change the status to "new" + * (via null_restart()), so that the user can continue scanning by + * just pointing null_in at a new input file. + */ +#define YY_BUFFER_EOF_PENDING 2 + + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ + +/* Stack of input buffers. */ +static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ +static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ +static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ + +/* We provide macros for accessing buffer states in case in the + * future we want to put the buffer states in a more general + * "scanner state". + * + * Returns the top of the stack, or NULL. + */ +#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ + ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ + : NULL) + +/* Same as previous macro, but useful when we know that the buffer stack is not + * NULL or when we need an lvalue. For internal use only. + */ +#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] + +/* yy_hold_char holds the character lost when null_text is formed. */ +static char yy_hold_char; +static int yy_n_chars; /* number of characters read into yy_ch_buf */ +int null_leng; + +/* Points to current character in buffer. */ +static char *yy_c_buf_p = (char *) 0; +static int yy_init = 0; /* whether we need to initialize */ +static int yy_start = 0; /* start state number */ + +/* Flag which is used to allow null_wrap()'s to do buffer switches + * instead of setting up a fresh null_in. A bit of a hack ... + */ +static int yy_did_buffer_switch_on_eof; + +void null_restart (FILE *input_file ); +void null__switch_to_buffer (YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE null__create_buffer (FILE *file,int size ); +void null__delete_buffer (YY_BUFFER_STATE b ); +void null__flush_buffer (YY_BUFFER_STATE b ); +void null_push_buffer_state (YY_BUFFER_STATE new_buffer ); +void null_pop_buffer_state (void ); + +static void null_ensure_buffer_stack (void ); +static void null__load_buffer_state (void ); +static void null__init_buffer (YY_BUFFER_STATE b,FILE *file ); + +#define YY_FLUSH_BUFFER null__flush_buffer(YY_CURRENT_BUFFER ) + +YY_BUFFER_STATE null__scan_buffer (char *base,yy_size_t size ); +YY_BUFFER_STATE null__scan_string (yyconst char *yy_str ); +YY_BUFFER_STATE null__scan_bytes (yyconst char *bytes,int len ); + +void *null_alloc (yy_size_t ); +void *null_realloc (void *,yy_size_t ); +void null_free (void * ); + +#define yy_new_buffer null__create_buffer + +#define yy_set_interactive(is_interactive) \ + { \ + if ( ! YY_CURRENT_BUFFER ){ \ + null_ensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + null__create_buffer(null_in,YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ + } + +#define yy_set_bol(at_bol) \ + { \ + if ( ! YY_CURRENT_BUFFER ){\ + null_ensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + null__create_buffer(null_in,YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ + } + +#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) + +typedef unsigned char YY_CHAR; + +FILE *null_in = (FILE *) 0, *null_out = (FILE *) 0; + +typedef int yy_state_type; + +extern int null_lineno; + +int null_lineno = 1; + +extern char *null_text; +#define yytext_ptr null_text + +static yy_state_type yy_get_previous_state (void ); +static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); +static int yy_get_next_buffer (void ); +static void yy_fatal_error (yyconst char msg[] ); + +/* Done after the current pattern has been matched and before the + * corresponding action - sets up null_text. + */ +#define YY_DO_BEFORE_ACTION \ + (yytext_ptr) = yy_bp; \ + null_leng = (size_t) (yy_cp - yy_bp); \ + (yy_hold_char) = *yy_cp; \ + *yy_cp = '\0'; \ + (yy_c_buf_p) = yy_cp; + +#define YY_NUM_RULES 1 +#define YY_END_OF_BUFFER 2 +/* This struct is not used in this scanner, + but its presence is necessary. */ +struct yy_trans_info + { + flex_int32_t yy_verify; + flex_int32_t yy_nxt; + }; +static yyconst flex_int16_t yy_accept[6] = + { 0, + 0, 0, 2, 1, 0 + } ; + +static yyconst flex_int32_t yy_ec[256] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1 + } ; + +static yyconst flex_int32_t yy_meta[2] = + { 0, + 1 + } ; + +static yyconst flex_int16_t yy_base[7] = + { 0, + 0, 0, 2, 3, 3, 0 + } ; + +static yyconst flex_int16_t yy_def[7] = + { 0, + 6, 6, 5, 5, 0, 5 + } ; + +static yyconst flex_int16_t yy_nxt[5] = + { 0, + 4, 5, 3, 5 + } ; + +static yyconst flex_int16_t yy_chk[5] = + { 0, + 6, 3, 5, 5 + } ; + +static yy_state_type yy_last_accepting_state; +static char *yy_last_accepting_cpos; + +extern int null__flex_debug; +int null__flex_debug = 0; + +/* The intent behind this definition is that it'll catch + * any uses of REJECT which flex missed. + */ +#define REJECT reject_used_but_not_detected +#define yymore() yymore_used_but_not_detected +#define YY_MORE_ADJ 0 +#define YY_RESTORE_YY_MORE_OFFSET +char *null_text; +#line 1 "../../fsinfo/null_lex.l" +#line 2 "../../fsinfo/null_lex.l" +#include "null_gram.h" + +void null_error(const char *fmt, ...) {} +int null_wrap(void) { return 0; } +#define YY_NO_INPUT 1 +#line 481 "lex.null_.c" + +#define INITIAL 0 + +#ifndef YY_NO_UNISTD_H +/* Special case for "unistd.h", since it is non-ANSI. We include it way + * down here because we want the user's section 1 to have been scanned first. + * The user has a chance to override it with an option. + */ +#include <unistd.h> +#endif + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +static int yy_init_globals (void ); + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int null_lex_destroy (void ); + +int null_get_debug (void ); + +void null_set_debug (int debug_flag ); + +YY_EXTRA_TYPE null_get_extra (void ); + +void null_set_extra (YY_EXTRA_TYPE user_defined ); + +FILE *null_get_in (void ); + +void null_set_in (FILE * in_str ); + +FILE *null_get_out (void ); + +void null_set_out (FILE * out_str ); + +int null_get_leng (void ); + +char *null_get_text (void ); + +int null_get_lineno (void ); + +void null_set_lineno (int line_number ); + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int null_wrap (void ); +#else +extern int null_wrap (void ); +#endif +#endif + +#ifndef yytext_ptr +static void yy_flex_strncpy (char *,yyconst char *,int ); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * ); +#endif + +#ifndef YY_NO_INPUT + +#ifdef __cplusplus +static int yyinput (void ); +#else +static int input (void ); +#endif + +#endif + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else +#define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ +#endif + +/* Copy whatever the last rule matched to the standard output. */ +#ifndef ECHO +/* This used to be an fputs(), but since the string might contain NUL's, + * we now use fwrite(). + */ +#define ECHO do { if (fwrite( null_text, null_leng, 1, null_out )) {} } while (0) +#endif + +/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, + * is returned in "result". + */ +#ifndef YY_INPUT +#define YY_INPUT(buf,result,max_size) \ + if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ + { \ + int c = '*'; \ + size_t n; \ + for ( n = 0; n < max_size && \ + (c = getc( null_in )) != EOF && c != '\n'; ++n ) \ + buf[n] = (char) c; \ + if ( c == '\n' ) \ + buf[n++] = (char) c; \ + if ( c == EOF && ferror( null_in ) ) \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + result = n; \ + } \ + else \ + { \ + errno=0; \ + while ( (result = fread(buf, 1, max_size, null_in))==0 && ferror(null_in)) \ + { \ + if( errno != EINTR) \ + { \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + break; \ + } \ + errno=0; \ + clearerr(null_in); \ + } \ + }\ +\ + +#endif + +/* No semi-colon after return; correct usage is to write "yyterminate();" - + * we don't want an extra ';' after the "return" because that will cause + * some compilers to complain about unreachable statements. + */ +#ifndef yyterminate +#define yyterminate() return YY_NULL +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Report a fatal error. */ +#ifndef YY_FATAL_ERROR +#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) +#endif + +/* end tables serialization structures and prototypes */ + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL_IS_OURS 1 + +extern int null_lex (void); + +#define YY_DECL int null_lex (void) +#endif /* !YY_DECL */ + +/* Code executed at the beginning of each rule, after null_text and null_leng + * have been set up. + */ +#ifndef YY_USER_ACTION +#define YY_USER_ACTION +#endif + +/* Code executed at the end of each rule. */ +#ifndef YY_BREAK +#define YY_BREAK break; +#endif + +#define YY_RULE_SETUP \ + YY_USER_ACTION + +/** The main scanner function which does all the work. + */ +YY_DECL +{ + register yy_state_type yy_current_state; + register char *yy_cp, *yy_bp; + register int yy_act; + +#line 9 "../../fsinfo/null_lex.l" + +#line 668 "lex.null_.c" + + if ( !(yy_init) ) + { + (yy_init) = 1; + +#ifdef YY_USER_INIT + YY_USER_INIT; +#endif + + if ( ! (yy_start) ) + (yy_start) = 1; /* first start state */ + + if ( ! null_in ) + null_in = stdin; + + if ( ! null_out ) + null_out = stdout; + + if ( ! YY_CURRENT_BUFFER ) { + null_ensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + null__create_buffer(null_in,YY_BUF_SIZE ); + } + + null__load_buffer_state( ); + } + + while ( 1 ) /* loops until end-of-file is reached */ + { + yy_cp = (yy_c_buf_p); + + /* Support of null_text. */ + *yy_cp = (yy_hold_char); + + /* yy_bp points to the position in yy_ch_buf of the start of + * the current run. + */ + yy_bp = yy_cp; + + yy_current_state = (yy_start); +yy_match: + do + { + register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 6 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + ++yy_cp; + } + while ( yy_base[yy_current_state] != 3 ); + +yy_find_action: + yy_act = yy_accept[yy_current_state]; + if ( yy_act == 0 ) + { /* have to back up */ + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + yy_act = yy_accept[yy_current_state]; + } + + YY_DO_BEFORE_ACTION; + +do_action: /* This label is used only to access EOF actions. */ + + switch ( yy_act ) + { /* beginning of action switch */ + case 0: /* must back up */ + /* undo the effects of YY_DO_BEFORE_ACTION */ + *yy_cp = (yy_hold_char); + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + goto yy_find_action; + +case 1: +YY_RULE_SETUP +#line 10 "../../fsinfo/null_lex.l" +ECHO; + YY_BREAK +#line 756 "lex.null_.c" +case YY_STATE_EOF(INITIAL): + yyterminate(); + + case YY_END_OF_BUFFER: + { + /* Amount of text matched not including the EOB char. */ + int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; + + /* Undo the effects of YY_DO_BEFORE_ACTION. */ + *yy_cp = (yy_hold_char); + YY_RESTORE_YY_MORE_OFFSET + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) + { + /* We're scanning a new file or input source. It's + * possible that this happened because the user + * just pointed null_in at a new source and called + * null_lex(). If so, then we have to assure + * consistency between YY_CURRENT_BUFFER and our + * globals. Here is the right place to do so, because + * this is the first action (other than possibly a + * back-up) that will match for the new input source. + */ + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = null_in; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; + } + + /* Note that here we test for yy_c_buf_p "<=" to the position + * of the first EOB in the buffer, since yy_c_buf_p will + * already have been incremented past the NUL character + * (since all states make transitions on EOB to the + * end-of-buffer state). Contrast this with the test + * in input(). + */ + if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) + { /* This was really a NUL. */ + yy_state_type yy_next_state; + + (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( ); + + /* Okay, we're now positioned to make the NUL + * transition. We couldn't have + * yy_get_previous_state() go ahead and do it + * for us because it doesn't know how to deal + * with the possibility of jamming (and we don't + * want to build jamming into it because then it + * will run more slowly). + */ + + yy_next_state = yy_try_NUL_trans( yy_current_state ); + + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + + if ( yy_next_state ) + { + /* Consume the NUL. */ + yy_cp = ++(yy_c_buf_p); + yy_current_state = yy_next_state; + goto yy_match; + } + + else + { + yy_cp = (yy_c_buf_p); + goto yy_find_action; + } + } + + else switch ( yy_get_next_buffer( ) ) + { + case EOB_ACT_END_OF_FILE: + { + (yy_did_buffer_switch_on_eof) = 0; + + if ( null_wrap( ) ) + { + /* Note: because we've taken care in + * yy_get_next_buffer() to have set up + * null_text, we can now set up + * yy_c_buf_p so that if some total + * hoser (like flex itself) wants to + * call the scanner after we return the + * YY_NULL, it'll still work - another + * YY_NULL will get returned. + */ + (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; + + yy_act = YY_STATE_EOF(YY_START); + goto do_action; + } + + else + { + if ( ! (yy_did_buffer_switch_on_eof) ) + YY_NEW_FILE; + } + break; + } + + case EOB_ACT_CONTINUE_SCAN: + (yy_c_buf_p) = + (yytext_ptr) + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( ); + + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + goto yy_match; + + case EOB_ACT_LAST_MATCH: + (yy_c_buf_p) = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; + + yy_current_state = yy_get_previous_state( ); + + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + goto yy_find_action; + } + break; + } + + default: + YY_FATAL_ERROR( + "fatal flex scanner internal error--no action found" ); + } /* end of action switch */ + } /* end of scanning one token */ +} /* end of null_lex */ + +/* yy_get_next_buffer - try to read in a new buffer + * + * Returns a code representing an action: + * EOB_ACT_LAST_MATCH - + * EOB_ACT_CONTINUE_SCAN - continue scanning from current position + * EOB_ACT_END_OF_FILE - end of file + */ +static int yy_get_next_buffer (void) +{ + register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + register char *source = (yytext_ptr); + register int number_to_move, i; + int ret_val; + + if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) + YY_FATAL_ERROR( + "fatal flex scanner internal error--end of buffer missed" ); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) + { /* Don't try to fill the buffer, so this is an EOF. */ + if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) + { + /* We matched a single character, the EOB, so + * treat this as a final EOF. + */ + return EOB_ACT_END_OF_FILE; + } + + else + { + /* We matched some text prior to the EOB, first + * process it. + */ + return EOB_ACT_LAST_MATCH; + } + } + + /* Try to read more data. */ + + /* First move last chars to start of buffer. */ + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + + for ( i = 0; i < number_to_move; ++i ) + *(dest++) = *(source++); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) + /* don't do the read, it's not guaranteed to return an EOF, + * just force an EOF + */ + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; + + else + { + int num_to_read = + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; + + while ( num_to_read <= 0 ) + { /* Not enough room in the buffer - grow it. */ + + /* just a shorter name for the current buffer */ + YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + + int yy_c_buf_p_offset = + (int) ((yy_c_buf_p) - b->yy_ch_buf); + + if ( b->yy_is_our_buffer ) + { + int new_size = b->yy_buf_size * 2; + + if ( new_size <= 0 ) + b->yy_buf_size += b->yy_buf_size / 8; + else + b->yy_buf_size *= 2; + + b->yy_ch_buf = (char *) + /* Include room in for 2 EOB chars. */ + null_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + } + else + /* Can't grow it, we don't own it. */ + b->yy_ch_buf = 0; + + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( + "fatal error - scanner input buffer overflow" ); + + (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; + + num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - + number_to_move - 1; + + } + + if ( num_to_read > YY_READ_BUF_SIZE ) + num_to_read = YY_READ_BUF_SIZE; + + /* Read in more data. */ + YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), + (yy_n_chars), (size_t) num_to_read ); + + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + if ( (yy_n_chars) == 0 ) + { + if ( number_to_move == YY_MORE_ADJ ) + { + ret_val = EOB_ACT_END_OF_FILE; + null_restart(null_in ); + } + + else + { + ret_val = EOB_ACT_LAST_MATCH; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_EOF_PENDING; + } + } + + else + ret_val = EOB_ACT_CONTINUE_SCAN; + + if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + /* Extend the array by 50%, plus the number we really need. */ + yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) null_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + } + + (yy_n_chars) += number_to_move; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; + + (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; + + return ret_val; +} + +/* yy_get_previous_state - get the state just before the EOB char was reached */ + + static yy_state_type yy_get_previous_state (void) +{ + register yy_state_type yy_current_state; + register char *yy_cp; + + yy_current_state = (yy_start); + + for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) + { + register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 6 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + } + + return yy_current_state; +} + +/* yy_try_NUL_trans - try to make a transition on the NUL character + * + * synopsis + * next_state = yy_try_NUL_trans( current_state ); + */ + static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) +{ + register int yy_is_jam; + register char *yy_cp = (yy_c_buf_p); + + register YY_CHAR yy_c = 1; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 6 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_is_jam = (yy_current_state == 5); + + return yy_is_jam ? 0 : yy_current_state; +} + +#ifndef YY_NO_INPUT +#ifdef __cplusplus + static int yyinput (void) +#else + static int input (void) +#endif + +{ + int c; + + *(yy_c_buf_p) = (yy_hold_char); + + if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) + { + /* yy_c_buf_p now points to the character we want to return. + * If this occurs *before* the EOB characters, then it's a + * valid NUL; if not, then we've hit the end of the buffer. + */ + if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) + /* This was really a NUL. */ + *(yy_c_buf_p) = '\0'; + + else + { /* need more input */ + int offset = (yy_c_buf_p) - (yytext_ptr); + ++(yy_c_buf_p); + + switch ( yy_get_next_buffer( ) ) + { + case EOB_ACT_LAST_MATCH: + /* This happens because yy_g_n_b() + * sees that we've accumulated a + * token and flags that we need to + * try matching the token before + * proceeding. But for input(), + * there's no matching to consider. + * So convert the EOB_ACT_LAST_MATCH + * to EOB_ACT_END_OF_FILE. + */ + + /* Reset buffer status. */ + null_restart(null_in ); + + /*FALLTHROUGH*/ + + case EOB_ACT_END_OF_FILE: + { + if ( null_wrap( ) ) + return EOF; + + if ( ! (yy_did_buffer_switch_on_eof) ) + YY_NEW_FILE; +#ifdef __cplusplus + return yyinput(); +#else + return input(); +#endif + } + + case EOB_ACT_CONTINUE_SCAN: + (yy_c_buf_p) = (yytext_ptr) + offset; + break; + } + } + } + + c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ + *(yy_c_buf_p) = '\0'; /* preserve null_text */ + (yy_hold_char) = *++(yy_c_buf_p); + + return c; +} +#endif /* ifndef YY_NO_INPUT */ + +/** Immediately switch to a different input stream. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ + void null_restart (FILE * input_file ) +{ + + if ( ! YY_CURRENT_BUFFER ){ + null_ensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + null__create_buffer(null_in,YY_BUF_SIZE ); + } + + null__init_buffer(YY_CURRENT_BUFFER,input_file ); + null__load_buffer_state( ); +} + +/** Switch to a different input buffer. + * @param new_buffer The new input buffer. + * + */ + void null__switch_to_buffer (YY_BUFFER_STATE new_buffer ) +{ + + /* TODO. We should be able to replace this entire function body + * with + * null_pop_buffer_state(); + * null_push_buffer_state(new_buffer); + */ + null_ensure_buffer_stack (); + if ( YY_CURRENT_BUFFER == new_buffer ) + return; + + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + YY_CURRENT_BUFFER_LVALUE = new_buffer; + null__load_buffer_state( ); + + /* We don't actually know whether we did this switch during + * EOF (null_wrap()) processing, but the only time this flag + * is looked at is after null_wrap() is called, so it's safe + * to go ahead and always set it. + */ + (yy_did_buffer_switch_on_eof) = 1; +} + +static void null__load_buffer_state (void) +{ + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; + null_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + (yy_hold_char) = *(yy_c_buf_p); +} + +/** Allocate and initialize an input buffer state. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE null__create_buffer (FILE * file, int size ) +{ + YY_BUFFER_STATE b; + + b = (YY_BUFFER_STATE) null_alloc(sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in null__create_buffer()" ); + + b->yy_buf_size = size; + + /* yy_ch_buf has to be 2 characters longer than the size given because + * we need to put in 2 end-of-buffer characters. + */ + b->yy_ch_buf = (char *) null_alloc(b->yy_buf_size + 2 ); + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in null__create_buffer()" ); + + b->yy_is_our_buffer = 1; + + null__init_buffer(b,file ); + + return b; +} + +/** Destroy the buffer. + * @param b a buffer created with null__create_buffer() + * + */ + void null__delete_buffer (YY_BUFFER_STATE b ) +{ + + if ( ! b ) + return; + + if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ + YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; + + if ( b->yy_is_our_buffer ) + null_free((void *) b->yy_ch_buf ); + + null_free((void *) b ); +} + +#ifndef __cplusplus +extern int isatty (int ); +#endif /* __cplusplus */ + +/* Initializes or reinitializes a buffer. + * This function is sometimes called more than once on the same buffer, + * such as during a null_restart() or at EOF. + */ + static void null__init_buffer (YY_BUFFER_STATE b, FILE * file ) + +{ + int oerrno = errno; + + null__flush_buffer(b ); + + b->yy_input_file = file; + b->yy_fill_buffer = 1; + + /* If b is the current buffer, then null__init_buffer was _probably_ + * called from null_restart() or through yy_get_next_buffer. + * In that case, we don't want to reset the lineno or column. + */ + if (b != YY_CURRENT_BUFFER){ + b->yy_bs_lineno = 1; + b->yy_bs_column = 0; + } + + b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; + + errno = oerrno; +} + +/** Discard all buffered characters. On the next scan, YY_INPUT will be called. + * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. + * + */ + void null__flush_buffer (YY_BUFFER_STATE b ) +{ + if ( ! b ) + return; + + b->yy_n_chars = 0; + + /* We always need two end-of-buffer characters. The first causes + * a transition to the end-of-buffer state. The second causes + * a jam in that state. + */ + b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; + + b->yy_buf_pos = &b->yy_ch_buf[0]; + + b->yy_at_bol = 1; + b->yy_buffer_status = YY_BUFFER_NEW; + + if ( b == YY_CURRENT_BUFFER ) + null__load_buffer_state( ); +} + +/** Pushes the new state onto the stack. The new state becomes + * the current state. This function will allocate the stack + * if necessary. + * @param new_buffer The new state. + * + */ +void null_push_buffer_state (YY_BUFFER_STATE new_buffer ) +{ + if (new_buffer == NULL) + return; + + null_ensure_buffer_stack(); + + /* This block is copied from null__switch_to_buffer. */ + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + /* Only push if top exists. Otherwise, replace top. */ + if (YY_CURRENT_BUFFER) + (yy_buffer_stack_top)++; + YY_CURRENT_BUFFER_LVALUE = new_buffer; + + /* copied from null__switch_to_buffer. */ + null__load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; +} + +/** Removes and deletes the top of the stack, if present. + * The next element becomes the new top. + * + */ +void null_pop_buffer_state (void) +{ + if (!YY_CURRENT_BUFFER) + return; + + null__delete_buffer(YY_CURRENT_BUFFER ); + YY_CURRENT_BUFFER_LVALUE = NULL; + if ((yy_buffer_stack_top) > 0) + --(yy_buffer_stack_top); + + if (YY_CURRENT_BUFFER) { + null__load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; + } +} + +/* Allocates the stack if it does not exist. + * Guarantees space for at least one push. + */ +static void null_ensure_buffer_stack (void) +{ + int num_to_alloc; + + if (!(yy_buffer_stack)) { + + /* First allocation is just for 2 elements, since we don't know if this + * scanner will even need a stack. We use 2 instead of 1 to avoid an + * immediate realloc on the next call. + */ + num_to_alloc = 1; + (yy_buffer_stack) = (struct yy_buffer_state**)null_alloc + (num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in null_ensure_buffer_stack()" ); + + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); + + (yy_buffer_stack_max) = num_to_alloc; + (yy_buffer_stack_top) = 0; + return; + } + + if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ + + /* Increase the buffer to prepare for a possible push. */ + int grow_size = 8 /* arbitrary grow size */; + + num_to_alloc = (yy_buffer_stack_max) + grow_size; + (yy_buffer_stack) = (struct yy_buffer_state**)null_realloc + ((yy_buffer_stack), + num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in null_ensure_buffer_stack()" ); + + /* zero only the new slots.*/ + memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); + (yy_buffer_stack_max) = num_to_alloc; + } +} + +/** Setup the input buffer state to scan directly from a user-specified character buffer. + * @param base the character buffer + * @param size the size in bytes of the character buffer + * + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE null__scan_buffer (char * base, yy_size_t size ) +{ + YY_BUFFER_STATE b; + + if ( size < 2 || + base[size-2] != YY_END_OF_BUFFER_CHAR || + base[size-1] != YY_END_OF_BUFFER_CHAR ) + /* They forgot to leave room for the EOB's. */ + return 0; + + b = (YY_BUFFER_STATE) null_alloc(sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in null__scan_buffer()" ); + + b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_pos = b->yy_ch_buf = base; + b->yy_is_our_buffer = 0; + b->yy_input_file = 0; + b->yy_n_chars = b->yy_buf_size; + b->yy_is_interactive = 0; + b->yy_at_bol = 1; + b->yy_fill_buffer = 0; + b->yy_buffer_status = YY_BUFFER_NEW; + + null__switch_to_buffer(b ); + + return b; +} + +/** Setup the input buffer state to scan a string. The next call to null_lex() will + * scan from a @e copy of @a str. + * @param yystr a NUL-terminated string to scan + * + * @return the newly allocated buffer state object. + * @note If you want to scan bytes that may contain NUL values, then use + * null__scan_bytes() instead. + */ +YY_BUFFER_STATE null__scan_string (yyconst char * yystr ) +{ + + return null__scan_bytes(yystr,strlen(yystr) ); +} + +/** Setup the input buffer state to scan the given bytes. The next call to null_lex() will + * scan from a @e copy of @a bytes. + * @param yybytes the byte buffer to scan + * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. + * + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE null__scan_bytes (yyconst char * yybytes, int _yybytes_len ) +{ + YY_BUFFER_STATE b; + char *buf; + yy_size_t n; + int i; + + /* Get memory for full buffer, including space for trailing EOB's. */ + n = _yybytes_len + 2; + buf = (char *) null_alloc(n ); + if ( ! buf ) + YY_FATAL_ERROR( "out of dynamic memory in null__scan_bytes()" ); + + for ( i = 0; i < _yybytes_len; ++i ) + buf[i] = yybytes[i]; + + buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; + + b = null__scan_buffer(buf,n ); + if ( ! b ) + YY_FATAL_ERROR( "bad buffer in null__scan_bytes()" ); + + /* It's okay to grow etc. this buffer, and we should throw it + * away when we're done. + */ + b->yy_is_our_buffer = 1; + + return b; +} + +#ifndef YY_EXIT_FAILURE +#define YY_EXIT_FAILURE 2 +#endif + +static void yy_fatal_error (yyconst char* msg ) +{ + (void) fprintf( stderr, "%s\n", msg ); + exit( YY_EXIT_FAILURE ); +} + +/* Redefine yyless() so it works in section 3 code. */ + +#undef yyless +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up null_text. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + null_text[null_leng] = (yy_hold_char); \ + (yy_c_buf_p) = null_text + yyless_macro_arg; \ + (yy_hold_char) = *(yy_c_buf_p); \ + *(yy_c_buf_p) = '\0'; \ + null_leng = yyless_macro_arg; \ + } \ + while ( 0 ) + +/* Accessor methods (get/set functions) to struct members. */ + +/** Get the current line number. + * + */ +int null_get_lineno (void) +{ + + return null_lineno; +} + +/** Get the input stream. + * + */ +FILE *null_get_in (void) +{ + return null_in; +} + +/** Get the output stream. + * + */ +FILE *null_get_out (void) +{ + return null_out; +} + +/** Get the length of the current token. + * + */ +int null_get_leng (void) +{ + return null_leng; +} + +/** Get the current token. + * + */ + +char *null_get_text (void) +{ + return null_text; +} + +/** Set the current line number. + * @param line_number + * + */ +void null_set_lineno (int line_number ) +{ + + null_lineno = line_number; +} + +/** Set the input stream. This does not discard the current + * input buffer. + * @param in_str A readable stream. + * + * @see null__switch_to_buffer + */ +void null_set_in (FILE * in_str ) +{ + null_in = in_str ; +} + +void null_set_out (FILE * out_str ) +{ + null_out = out_str ; +} + +int null_get_debug (void) +{ + return null__flex_debug; +} + +void null_set_debug (int bdebug ) +{ + null__flex_debug = bdebug ; +} + +static int yy_init_globals (void) +{ + /* Initialization is the same as for the non-reentrant scanner. + * This function is called from null_lex_destroy(), so don't allocate here. + */ + + (yy_buffer_stack) = 0; + (yy_buffer_stack_top) = 0; + (yy_buffer_stack_max) = 0; + (yy_c_buf_p) = (char *) 0; + (yy_init) = 0; + (yy_start) = 0; + +/* Defined in main.c */ +#ifdef YY_STDINIT + null_in = stdin; + null_out = stdout; +#else + null_in = (FILE *) 0; + null_out = (FILE *) 0; +#endif + + /* For future reference: Set errno on error, since we are called by + * null_lex_init() + */ + return 0; +} + +/* null_lex_destroy is for both reentrant and non-reentrant scanners. */ +int null_lex_destroy (void) +{ + + /* Pop the buffer stack, destroying each element. */ + while(YY_CURRENT_BUFFER){ + null__delete_buffer(YY_CURRENT_BUFFER ); + YY_CURRENT_BUFFER_LVALUE = NULL; + null_pop_buffer_state(); + } + + /* Destroy the stack itself. */ + null_free((yy_buffer_stack) ); + (yy_buffer_stack) = NULL; + + /* Reset the globals. This is important in a non-reentrant scanner so the next time + * null_lex() is called, initialization will occur. */ + yy_init_globals( ); + + return 0; +} + +/* + * Internal utility routines. + */ + +#ifndef yytext_ptr +static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +{ + register int i; + for ( i = 0; i < n; ++i ) + s1[i] = s2[i]; +} +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * s ) +{ + register int n; + for ( n = 0; s[n]; ++n ) + ; + + return n; +} +#endif + +void *null_alloc (yy_size_t size ) +{ + return (void *) malloc( size ); +} + +void *null_realloc (void * ptr, yy_size_t size ) +{ + /* The cast to (char *) in the following accommodates both + * implementations that use char* generic pointers, and those + * that use void* generic pointers. It works with the latter + * because both ANSI C and C++ allow castless assignment from + * any pointer type to void*, and deal with argument conversions + * as though doing an assignment. + */ + return (void *) realloc( (char *) ptr, size ); +} + +void null_free (void * ptr ) +{ + free( (char *) ptr ); /* see null_realloc() for (char *) cast */ +} + +#define YYTABLES_NAME "yytables" + +#line 10 "../../fsinfo/null_lex.l" diff --git a/contrib/amd/fsinfo/null_lex.l b/contrib/amd/fsinfo/null_lex.l new file mode 100644 index 0000000..46bb463 --- /dev/null +++ b/contrib/amd/fsinfo/null_lex.l @@ -0,0 +1,9 @@ +%{ +#include "null_gram.h" + +void null_error(const char *fmt, ...) {} +int yywrap(void) { return 0; } +%} +%option nounput +%option noinput +%% diff --git a/contrib/amd/fsinfo/wr_atab.c b/contrib/amd/fsinfo/wr_atab.c index e02db07..ac132aa 100644 --- a/contrib/amd/fsinfo/wr_atab.c +++ b/contrib/amd/fsinfo/wr_atab.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/contrib/amd/fsinfo/wr_bparam.c b/contrib/amd/fsinfo/wr_bparam.c index 9220762..00befa9 100644 --- a/contrib/amd/fsinfo/wr_bparam.c +++ b/contrib/amd/fsinfo/wr_bparam.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -56,7 +52,7 @@ static int write_nfsname(FILE *ef, fsmount *fp, char *hn) { int errors = 0; - char *h = strdup(fp->f_ref->m_dk->d_host->h_hostname); + char *h = xstrdup(fp->f_ref->m_dk->d_host->h_hostname); domain_strip(h, hn); fprintf(ef, "%s:%s", h, fp->f_volname); diff --git a/contrib/amd/fsinfo/wr_dumpset.c b/contrib/amd/fsinfo/wr_dumpset.c index 69c1257..916f95a 100644 --- a/contrib/amd/fsinfo/wr_dumpset.c +++ b/contrib/amd/fsinfo/wr_dumpset.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/contrib/amd/fsinfo/wr_exportfs.c b/contrib/amd/fsinfo/wr_exportfs.c index 818d893..c6e7936 100644 --- a/contrib/amd/fsinfo/wr_exportfs.c +++ b/contrib/amd/fsinfo/wr_exportfs.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/contrib/amd/fsinfo/wr_fstab.c b/contrib/amd/fsinfo/wr_fstab.c index 52cebbf..166353e 100644 --- a/contrib/amd/fsinfo/wr_fstab.c +++ b/contrib/amd/fsinfo/wr_fstab.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -89,7 +85,7 @@ static struct os_fstab_type { "u4_0", write_ultrix_dkfstab, write_ultrix_dkrmount }, /* Ultrix */ { - 0, 0, 0 + NULL, NULL, NULL } }; @@ -102,7 +98,7 @@ static struct os_fstab_type { static void write_aix1_dkfstab(FILE *ef, disk_fs *dp) { - char *hp = strdup(dp->d_host->h_hostname); + char *hp = xstrdup(dp->d_host->h_hostname); char *p = strchr(hp, '.'); if (p) @@ -123,8 +119,8 @@ write_aix1_dkfstab(FILE *ef, disk_fs *dp) static void write_aix1_dkrmount(FILE *ef, char *hn, fsmount *fp) { - char *h = strdup(fp->f_ref->m_dk->d_host->h_hostname); - char *hp = strdup(h); + char *h = xstrdup(fp->f_ref->m_dk->d_host->h_hostname); + char *hp = xstrdup(h); char *p = strchr(hp, '.'); if (p) @@ -172,7 +168,7 @@ write_aix3_dkfstab(FILE *ef, disk_fs *dp) static void write_aix3_dkrmount(FILE *ef, char *hn, fsmount *fp) { - char *h = strdup(fp->f_ref->m_dk->d_host->h_hostname); + char *h = xstrdup(fp->f_ref->m_dk->d_host->h_hostname); domain_strip(h, hn); fprintf(ef, "\n%s:\n\tdev = %s:%s\n\tvfs = %s\n\ttype = %s\n\tvol = %s\n\topts = %s\n\tmount = true\n\tcheck = true\n\tfree = false\n", @@ -206,7 +202,7 @@ write_ultrix_dkfstab(FILE *ef, disk_fs *dp) static void write_ultrix_dkrmount(FILE *ef, char *hn, fsmount *fp) { - char *h = strdup(fp->f_ref->m_dk->d_host->h_hostname); + char *h = xstrdup(fp->f_ref->m_dk->d_host->h_hostname); domain_strip(h, hn); fprintf(ef, "%s@%s:%s:%s:%s:0:0\n", @@ -243,9 +239,9 @@ write_generic_dkrmount(FILE *ef, char *hn, fsmount *fp) char *h; if (fp->f_ref) { - h = strdup(fp->f_ref->m_dk->d_host->h_hostname); + h = xstrdup(fp->f_ref->m_dk->d_host->h_hostname); } else { - h = strdup(fp->f_from); + h = xstrdup(fp->f_from); } domain_strip(h, hn); fprintf(ef, "%s:%s %s %s %s 0 0\n", @@ -261,8 +257,8 @@ write_generic_dkrmount(FILE *ef, char *hn, fsmount *fp) static struct os_fstab_type * find_fstab_type(host *hp) { - struct os_fstab_type *op = 0; - char *os_name = 0; + struct os_fstab_type *op = NULL; + char *os_name = NULL; again:; if (os_name == 0) { diff --git a/contrib/amd/hlfsd/hlfsd.8 b/contrib/amd/hlfsd/hlfsd.8 index a750320..3f3fe9f 100644 --- a/contrib/amd/hlfsd/hlfsd.8 +++ b/contrib/amd/hlfsd/hlfsd.8 @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 1997-2006 Erez Zadok +.\" Copyright (c) 1997-2014 Erez Zadok .\" Copyright (c) 1989 Jan-Simon Pendry .\" Copyright (c) 1989 Imperial College of Science, Technology & Medicine .\" Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgment: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors +.\" 3. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" @@ -36,9 +32,10 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: hlfsd.8,v 1.11.2.1 2006/01/02 18:48:25 ezk Exp $ .\" $FreeBSD$ .\" +.\" File: am-utils/hlfsd/hlfsd.8 +.\" .\" HLFSD was written at Columbia University Computer Science Department, by .\" Erez Zadok <ezk@cs.columbia.edu> and Alexander Dupuy <dupuy@smarts.com> .\" It is distributed under the same terms and conditions as AMD. @@ -330,14 +327,16 @@ symbolic link returned by points if it is unable to verify the that user's home directory is accessible. .El -.Sh SEE ALSO -.Xr mail 1 , +.SH "SEE ALSO" +.Xr mail1 , .Xr getgrent 3 , .Xr getpwent 3 , +.Xr mnttab 4 , +.Xr passwd 4 , .Xr mtab 5 , -.Xr passwd 5 , .Xr amd 8 , -.Xr cron 8 , +.Xr automount 8 , +.Xr cron8 , .Xr mount 8 , .Xr sendmail 8 , .Xr umount 8 diff --git a/contrib/amd/hlfsd/hlfsd.c b/contrib/amd/hlfsd/hlfsd.c index 8703f59..686bb63 100644 --- a/contrib/amd/hlfsd/hlfsd.c +++ b/contrib/amd/hlfsd/hlfsd.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -82,7 +78,7 @@ char *alt_spooldir = ALT_SPOOLDIR; char *home_subdir = HOME_SUBDIR; char *logfile = DEFAULT_LOGFILE; char *passwdfile = NULL; /* alternate passwd file to use */ -char *slinkname = 0; +char *slinkname = NULL; char hostname[MAXHOSTNAMELEN + 1] = "localhost"; u_int cache_interval = DEFAULT_CACHE_INTERVAL; gid_t hlfs_gid = (gid_t) INVALIDID; @@ -102,6 +98,7 @@ char *mnttab_file_name = NULL; /* forward declarations */ void hlfsd_going_down(int rc); +void fatalerror(char *str); static void @@ -260,9 +257,6 @@ main(int argc, char *argv[]) opterrs++; } - /* set some default debugging options */ - if (xlog_level_init == ~0) - switch_option(""); /* need my pid before any dlog/plog */ am_set_mypid(); #ifdef DEBUG @@ -312,7 +306,11 @@ main(int argc, char *argv[]) } /* get hostname for logging and open log before we reset umask */ - gethostname(hostname, sizeof(hostname)); + if (gethostname(hostname, sizeof(hostname)) == -1) { + fprintf(stderr, "%s: gethostname failed \"%s\".\n", + am_get_progname(), strerror(errno)); + exit(1); + } hostname[sizeof(hostname) - 1] = '\0'; if ((dot = strchr(hostname, '.')) != NULL) *dot = '\0'; @@ -418,11 +416,8 @@ main(int argc, char *argv[]) /* * Register hlfsd as an nfs service with the portmapper. */ -#ifdef HAVE_TRANSPORT_TYPE_TLI - ret = create_nfs_service(&soNFS, &nfs_port, &nfsxprt, nfs_program_2); -#else /* not HAVE_TRANSPORT_TYPE_TLI */ - ret = create_nfs_service(&soNFS, &nfs_port, &nfsxprt, nfs_program_2); -#endif /* not HAVE_TRANSPORT_TYPE_TLI */ + ret = create_nfs_service(&soNFS, &nfs_port, &nfsxprt, nfs_program_2, + NFS_VERSION); if (ret != 0) fatal("cannot create NFS service"); @@ -450,10 +445,10 @@ main(int argc, char *argv[]) #endif /* not HAVE_SIGACTION */ /* - * In the parent, if -D daemon, we don't need to + * In the parent, if -D nodaemon, we don't need to * set this signal handler. */ - if (!amuDebug(D_DAEMON)) { + if (amuDebug(D_DAEMON)) { s = -99; while (stoplight != SIGUSR2) { plog(XLOG_INFO, "parent waits for child to setup (stoplight=%d)", stoplight); @@ -628,10 +623,10 @@ main(int argc, char *argv[]) plog(XLOG_INFO, "hlfsd ready to serve"); /* - * If asked not to fork a daemon (-D daemon), then hlfsd_init() + * If asked not to fork a daemon (-D nodaemon), then hlfsd_init() * will not run svc_run. We must start svc_run here. */ - if (amuDebug(D_DAEMON)) { + if (!amuDebug(D_DAEMON)) { plog(XLOG_DEBUG, "starting no-daemon debugging svc_run"); svc_run(); } @@ -656,9 +651,9 @@ hlfsd_init(void) hlfsd_init_filehandles(); /* - * If not -D daemon then we must fork. + * If -D daemon then we must fork. */ - if (!amuDebug(D_DAEMON)) + if (amuDebug(D_DAEMON)) child = fork(); if (child < 0) @@ -745,17 +740,17 @@ hlfsd_init(void) # endif /* not defined(DEBUG) || defined(DEBUG_PRINT) */ #endif /* not HAVE_SIGACTION */ - if (setitimer(ITIMER_REAL, &reloadinterval, (struct itimerval *) 0) < 0) + if (setitimer(ITIMER_REAL, &reloadinterval, (struct itimerval *) NULL) < 0) fatal("setitimer: %m"); clocktime(&startup); /* - * If not -D daemon, then start serving here in the child, - * and the parent will exit. But if -D daemon, then + * If -D daemon, then start serving here in the child, + * and the parent will exit. But if -D nodaemon, then * skip this code and make sure svc_run is entered elsewhere. */ - if (!amuDebug(D_DAEMON)) { + if (amuDebug(D_DAEMON)) { /* * Dissociate from the controlling terminal */ @@ -839,7 +834,7 @@ cleanup(int signum) struct stat stbuf; int umount_result; - if (!amuDebug(D_DAEMON)) { + if (amuDebug(D_DAEMON)) { if (getpid() != masterpid) return; @@ -865,7 +860,7 @@ cleanup(int signum) break; } - if (!amuDebug(D_DAEMON)) { + if (amuDebug(D_DAEMON)) { plog(XLOG_INFO, "cleanup(): killing processes and terminating"); kill(masterpid, SIGKILL); kill(serverpid, SIGKILL); diff --git a/contrib/amd/hlfsd/hlfsd.h b/contrib/amd/hlfsd/hlfsd.h index ed136b6..d5eefed 100644 --- a/contrib/amd/hlfsd/hlfsd.h +++ b/contrib/amd/hlfsd/hlfsd.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/contrib/amd/hlfsd/homedir.c b/contrib/amd/hlfsd/homedir.c index fb4720c..6792b70 100644 --- a/contrib/amd/hlfsd/homedir.c +++ b/contrib/amd/hlfsd/homedir.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -133,9 +129,10 @@ homedir(int userid, int groupid) } /* - * only run this forking code if did not ask for -D fork + * Only run this forking code if ask for -D fork (default). + * Disable forking using -D nofork. */ - if (!amuDebug(D_FORK)) { + if (amuDebug(D_FORK)) { /* fork child to process request if none in progress */ if (found->child && kill(found->child, 0)) found->child = 0; @@ -265,13 +262,14 @@ delay(uid2home_t *found, int secs) { struct timeval tv; - dlog("delaying on child %ld for %d seconds", (long) found->child, secs); + if (found) + dlog("delaying on child %ld for %d seconds", (long) found->child, secs); tv.tv_usec = 0; do { tv.tv_sec = secs; - if (select(0, 0, 0, 0, &tv) == 0) + if (select(0, NULL, NULL, NULL, &tv) == 0) break; } while (--secs && found->child); } @@ -292,7 +290,7 @@ interlock(int signum) #ifdef HAVE_WAITPID while ((child = waitpid((pid_t) -1, &status, WNOHANG)) > 0) { #else /* not HAVE_WAITPID */ - while ((child = wait3(&status, WNOHANG, (struct rusage *) 0)) > 0) { + while ((child = wait3(&status, WNOHANG, (struct rusage *) NULL)) > 0) { #endif /* not HAVE_WAITPID */ /* high chances this was the last child forked */ @@ -559,7 +557,7 @@ plt_init(void) int len; if (root_home) XFREE(root_home); - root_home = strdup(pent_p->pw_dir); + root_home = xstrdup(pent_p->pw_dir); len = strlen(root_home); /* remove any trailing '/' chars from root's home (even if just one) */ while (len > 0 && root_home[len - 1] == '/') { @@ -576,7 +574,7 @@ plt_init(void) unt_compare_fxn); if (!root_home) - root_home = strdup(""); + root_home = xstrdup(""); plog(XLOG_INFO, "password map read and sorted"); } @@ -671,14 +669,14 @@ table_add(u_int u, const char *h, const char *n) } /* add new password entry */ - pwtab[cur_pwtab_num].home = strdup(h); + pwtab[cur_pwtab_num].home = xstrdup(h); pwtab[cur_pwtab_num].child = 0; pwtab[cur_pwtab_num].last_access_time = 0; pwtab[cur_pwtab_num].last_status = 0; /* assume best: used homedir */ pwtab[cur_pwtab_num].uid = u; /* add new userhome entry */ - untab[cur_pwtab_num].username = strdup(n); + untab[cur_pwtab_num].username = xstrdup(n); /* just a second pointer */ pwtab[cur_pwtab_num].uname = untab[cur_pwtab_num].username; diff --git a/contrib/amd/hlfsd/nfs_prot_svc.c b/contrib/amd/hlfsd/nfs_prot_svc.c index 8cea0dc..babaa84 100644 --- a/contrib/amd/hlfsd/nfs_prot_svc.c +++ b/contrib/amd/hlfsd/nfs_prot_svc.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/contrib/amd/hlfsd/stubs.c b/contrib/amd/hlfsd/stubs.c index becf402..ec2d974 100644 --- a/contrib/amd/hlfsd/stubs.c +++ b/contrib/amd/hlfsd/stubs.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -137,7 +133,7 @@ nfsproc_getattr_2_svc(am_nfs_fh *argp, struct svc_req *rqstp) clocktime(&rootfattr.na_mtime); rootfattr.na_uid = uid; } -#endif +#endif /* 0 */ res.ns_status = NFS_OK; res.ns_u.ns_attr_u = rootfattr; } else if (eq_fh(argp, &slink)) { @@ -241,7 +237,7 @@ nfsproc_lookup_2_svc(nfsdiropargs *argp, struct svc_req *rqstp) clocktime(&rootfattr.na_mtime); rootfattr.na_uid = uid; } -#endif +#endif /* 0 */ res.dr_u.dr_drok_u.drok_fhandle = root; res.dr_u.dr_drok_u.drok_attributes = rootfattr; res.dr_status = NFS_OK; @@ -307,7 +303,7 @@ nfsproc_readlink_2_svc(am_nfs_fh *argp, struct svc_req *rqstp) uid_t userid = (uid_t) INVALIDID; gid_t groupid = hlfs_gid + 1; /* anything not hlfs_gid */ int retval = 0; - char *path_val = (char *) NULL; + char *path_val = NULL; char *username; static uid_t last_uid = (uid_t) INVALIDID; @@ -328,7 +324,7 @@ nfsproc_readlink_2_svc(am_nfs_fh *argp, struct svc_req *rqstp) * processing, by getting a NULL returned as a * "special". Child returns result. */ - return (nfsreadlinkres *) NULL; + return NULL; } } else { /* check if asked for user mailbox */ @@ -375,14 +371,15 @@ nfsproc_readlink_2_svc(am_nfs_fh *argp, struct svc_req *rqstp) retval = 0; /* - * If asked for -D fork, then must return the value, + * If asked for -D nofork, then must return the value, * NOT exit, or else the main hlfsd server exits. + * If -D fork (default), then we do want to exit from the process. * Bug: where is that status information being collected? */ if (amuDebug(D_FORK)) + exit(retval); + else return &res; - - exit(retval); } @@ -480,7 +477,7 @@ nfsreaddirres * nfsproc_readdir_2_svc(nfsreaddirargs *argp, struct svc_req *rqstp) { static nfsreaddirres res; - static nfsentry slinkent = {SLINKID, 0, {SLINKCOOKIE}}; + static nfsentry slinkent = {SLINKID, NULL, {SLINKCOOKIE}}; static nfsentry dotdotent = {ROOTID, "..", {DOTDOTCOOKIE}, &slinkent}; static nfsentry dotent = {ROOTID, ".", {DOTCOOKIE}, &dotdotent}; @@ -503,7 +500,7 @@ nfsproc_readdir_2_svc(nfsreaddirargs *argp, struct svc_req *rqstp) res.rdr_u.rdr_reply_u.dl_entries = &slinkent; break; case SLINKCOOKIE: - res.rdr_u.rdr_reply_u.dl_entries = (nfsentry *) 0; + res.rdr_u.rdr_reply_u.dl_entries = (nfsentry *) NULL; break; } res.rdr_u.rdr_reply_u.dl_eof = TRUE; diff --git a/contrib/amd/include/am_compat.h b/contrib/amd/include/am_compat.h index dc3b71d..3463f3f 100644 --- a/contrib/amd/include/am_compat.h +++ b/contrib/amd/include/am_compat.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -90,6 +86,10 @@ # define MNTTAB_OPT_NOAC "noac" #endif /* defined(MNT2_NFS_OPT_NOAC) && !defined(MNTTAB_OPT_NOAC) */ +#if defined(MNT2_NFS_OPT_NOACL) && !defined(MNTTAB_OPT_NOACL) +# define MNTTAB_OPT_NOACL "noacl" +#endif /* defined(MNT2_NFS_OPT_NOACL) && !defined(MNTTAB_OPT_NOACL) */ + #if defined(MNT2_NFS_OPT_NOCONN) && !defined(MNTTAB_OPT_NOCONN) # define MNTTAB_OPT_NOCONN "noconn" # ifndef MNTTAB_OPT_CONN @@ -176,10 +176,30 @@ #if defined(MNT2_CDFS_OPT_GENS) && !defined(MNTTAB_OPT_GENS) # define MNTTAB_OPT_GENS "gens" #endif /* defined(MNT2_CDFS_OPT_GENS) && !defined(MNTTAB_OPT_GENS) */ + #if defined(MNT2_CDFS_OPT_EXTATT) && !defined(MNTTAB_OPT_EXTATT) # define MNTTAB_OPT_EXTATT "extatt" #endif /* defined(MNT2_CDFS_OPT_EXTATT) && !defined(MNTTAB_OPT_EXTATT) */ +#if defined(MNT2_CDFS_OPT_NOJOLIET) && !defined(MNTTAB_OPT_NOJOLIET) +# define MNTTAB_OPT_NOJOLIET "nojoliet" +#endif /* defined(MNT2_CDFS_OPT_NOJOLIET) && !defined(MNTTAB_OPT_NOJOLIET) */ + +#if defined(MNT2_CDFS_OPT_NOCASETRANS) && !defined(MNTTAB_OPT_NOCASETRANS) +# define MNTTAB_OPT_NOCASETRANS "nocasetrans" +#endif /* defined(MNT2_CDFS_OPT_NOCASETRANS) && !defined(MNTTAB_OPT_NOCASETRANS) */ + +#if defined(MNT2_CDFS_OPT_RRCASEINS) && !defined(MNTTAB_OPT_RRCASEINS) +# define MNTTAB_OPT_RRCASEINS "rrcaseins" +#endif /* defined(MNT2_CDFS_OPT_RRCASEINS) && !defined(MNTTAB_OPT_RRCASEINS) */ + +/* + * Complete MNTTAB_OPT_* options based on MNT2_UDF_OPT_* mount options. + */ +#if defined(MNT2_UDF_OPT_CLOSESESSION) && !defined(MNTTAB_OPT_CLOSESESSION) +# define MNTTAB_OPT_CLOSESESSION "closesession" +#endif /* defined(MNT2_UDF_OPT_CLOSESESSION) && !defined(MNTTAB_OPT_CLOSESESSION) */ + /* * Complete MNTTAB_OPT_* options based on MNT2_PCFS_OPT_* mount options. */ @@ -236,6 +256,29 @@ # define MNTTAB_OPT_SYNC "sync" #endif /* defined(MNT2_GEN_OPT_SYNC) && !defined(MNTTAB_OPT_SYNC) */ +#if defined(MNT2_GEN_OPT_LOG) && !defined(MNTTAB_OPT_LOG) +# define MNTTAB_OPT_LOG "log" +#endif /* defined(MNT2_GEN_OPT_LOG) && !defined(MNTTAB_OPT_LOG) */ + +#if defined(MNT2_GEN_OPT_NOATIME) && !defined(MNTTAB_OPT_NOATIME) +# define MNTTAB_OPT_NOATIME "noatime" +#endif /* defined(MNT2_GEN_OPT_NOATIME) && !defined(MNTTAB_OPT_NOATIME) */ + +#if defined(MNT2_GEN_OPT_NODEVMTIME) && !defined(MNTTAB_OPT_NODEVMTIME) +# define MNTTAB_OPT_NODEVMTIME "nodevmtime" +#endif /* defined(MNT2_GEN_OPT_NODEVMTIME) && !defined(MNTTAB_OPT_NODEVMTIME) */ + +#if defined(MNT2_GEN_OPT_SOFTDEP) && !defined(MNTTAB_OPT_SOFTDEP) +# define MNTTAB_OPT_SOFTDEP "softdep" +#endif /* defined(MNT2_GEN_OPT_SOFTDEP) && !defined(MNTTAB_OPT_SOFTDEP) */ + +#if defined(MNT2_GEN_OPT_SYMPERM) && !defined(MNTTAB_OPT_SYMPERM) +# define MNTTAB_OPT_SYMPERM "symperm" +#endif /* defined(MNT2_GEN_OPT_SYMPERM) && !defined(MNTTAB_OPT_SYMPERM) */ + +#if defined(MNT2_GEN_OPT_UNION) && !defined(MNTTAB_OPT_UNION) +# define MNTTAB_OPT_UNION "union" +#endif /* defined(MNT2_GEN_OPT_UNION) && !defined(MNTTAB_OPT_UNION) */ /* * Add missing MNTTAB_OPT_* options. @@ -298,6 +341,20 @@ # define MNTTAB_OPT_DIRMASK "dirmask" #endif /* not MNTTAB_OPT_DIRMASK */ +/* useful for udf mounts */ +#ifndef MNTTAB_OPT_USER +# define MNTTAB_OPT_USER "user" +#endif /* not MNTTAB_OPT_USER */ +#ifndef MNTTAB_OPT_GROUP +# define MNTTAB_OPT_GROUP "group" +#endif /* not MNTTAB_OPT_GROUP */ +#ifndef MNTTAB_OPT_GMTOFF +# define MNTTAB_OPT_GMTOFF "gmtoff" +#endif /* not MNTTAB_OPT_GMTOFF */ +#ifndef MNTTAB_OPT_SESSIONNR +# define MNTTAB_OPT_SESSIONNR "sessionnr" +#endif /* not MNTTAB_OPT_SESSIONNR */ + /* * Incomplete filesystem definitions (sunos4, irix6, solaris2) */ @@ -335,18 +392,32 @@ struct hsfs_args { #endif /* defined(HAVE_FS_UFS) && !defined(ufs_args_t) */ /* + * if does not define struct udf_args, assume integer bit-field (linux) + */ +#if defined(HAVE_FS_UDF) && !defined(udf_args_t) +# define udf_args_t u_int +#endif /* defined(HAVE_FS_UDF) && !defined(udf_args_t) */ + +/* * if does not define struct efs_args, assume integer bit-field (linux) */ #if defined(HAVE_FS_EFS) && !defined(efs_args_t) # define efs_args_t u_int #endif /* defined(HAVE_FS_EFS) && !defined(efs_args_t) */ +#if defined(HAVE_FS_TMPFS) && !defined(tmpfs_args_t) +# define tmpfs_args_t u_int +#endif /* defined(HAVE_FS_TMPFS) && !defined(tmpfs_args_t) */ + /* * if does not define struct xfs_args, assume integer bit-field (linux) */ #if defined(HAVE_FS_XFS) && !defined(xfs_args_t) # define xfs_args_t u_int #endif /* defined(HAVE_FS_XFS) && !defined(xfs_args_t) */ +#if defined(HAVE_FS_EXT) && !defined(ext_args_t) +# define ext_args_t u_int +#endif /* defined(HAVE_FS_EXT) && !defined(ext_args_t) */ #if defined(HAVE_FS_AUTOFS) && defined(MOUNT_TYPE_AUTOFS) && !defined(MNTTYPE_AUTOFS) # define MNTTYPE_AUTOFS "autofs" @@ -366,6 +437,14 @@ struct hsfs_args { #endif /* not HAVE_FS_NFS3 */ /* + * If NFS4, then make sure that the "sec" mnttab option is available. + */ +#ifdef HAVE_FS_NFS4 +# ifndef MNTTAB_OPT_SEC +# define MNTTAB_OPT_SEC "sec" +# endif /* not MNTTAB_OPT_SEC */ +#endif /* not HAVE_FS_NFS4 */ +/* * If loop device (header file) exists, define mount table option */ #if defined(HAVE_LOOP_DEVICE) && !defined(MNTTAB_OPT_LOOP) diff --git a/contrib/amd/include/am_defs.h b/contrib/amd/include/am_defs.h index f3767f5..bb867a4 100644 --- a/contrib/amd/include/am_defs.h +++ b/contrib/amd/include/am_defs.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -67,7 +63,7 @@ # define strchr index # define strrchr rindex # endif /* not HAVE_STRCHR */ -char *strchr(), *strrchr(), *strdup(); +char *strchr(), *strrchr(); #endif /* not STDC_HEADERS */ /* @@ -88,6 +84,14 @@ char *strchr(), *strrchr(), *strdup(); # endif /* __GNUC__ < 2 ... */ #endif /* not __attribute__ */ +#define __IGNORE(result) \ + __ignore((unsigned long)result) + +static inline void +__ignore(unsigned long result) { + (void)&result; +} + /* * How to handle signals of any type */ @@ -134,11 +138,19 @@ struct sigevent; /* * Big-endian or little-endian? */ -#ifdef WORDS_BIGENDIAN -# define ARCH_ENDIAN "big" -#else /* not WORDS_BIGENDIAN */ -# define ARCH_ENDIAN "little" -#endif /* not WORDS_BIGENDIAN */ +#ifndef BYTE_ORDER +# if defined(WORDS_BIGENDIAN) +# define ARCH_ENDIAN "big" +# else /* not WORDS_BIGENDIAN */ +# define ARCH_ENDIAN "little" +# endif /* not WORDS_BIGENDIAN */ +#else +# if BYTE_ORDER == BIG_ENDIAN +# define ARCH_ENDIAN "big" +# else +# define ARCH_ENDIAN "little" +# endif +#endif /* * Actions to take if HAVE_SYS_TYPES_H is defined. @@ -209,12 +221,6 @@ struct sigevent; * Actions to take if HAVE_FCNTL_H is defined. */ #if HAVE_FCNTL_H -# ifdef HAVE_LINUX_LOOP_H -/* so I can mount large files as loop devices */ -/* XXX: need to move these two LARGEFILE defines to a better place */ -# define _LARGEFILE64_SOURCE -# define __USE_LARGEFILE64 -# endif /* HAVE_LINUX_LOOP_H */ # include <fcntl.h> #endif /* HAVE_FCNTL_H */ @@ -318,14 +324,6 @@ typedef bool_t (*xdrproc_t) __P ((XDR *, __ptr_t, ...)); #endif /* HAVE_MNTENT_H */ /* - * Actions to take if <sys/errno.h> exists. - */ -#ifdef HAVE_SYS_ERRNO_H -# include <sys/errno.h> -extern int errno; -#endif /* HAVE_SYS_ERRNO_H */ - -/* * Actions to take if <sys/fsid.h> exists. */ #ifdef HAVE_SYS_FSID_H @@ -864,6 +862,10 @@ struct sockaddr_dl; #ifdef HAVE_SYS_FS_TMP_H # include <sys/fs/tmp.h> #endif /* HAVE_SYS_FS_TMP_H */ +#ifdef HAVE_FS_TMPFS_TMPFS_ARGS_H +# include <fs/tmpfs/tmpfs_args.h> +#endif /* HAVE_FS_TMPFS_TMPFS_ARGS_H */ + /* * Actions to take if <sys/fs/ufs_mount.h> exists. @@ -886,6 +888,9 @@ struct sockaddr_dl; #ifdef HAVE_SYS_FS_EFS_CLNT_H # include <sys/fs/efs_clnt.h> #endif /* HAVE_SYS_FS_EFS_CLNT_H */ +#ifdef HAVE_FS_EFS_EFS_MOUNT_H +# include <fs/efs/efs_mount.h> +#endif /* HAVE_FS_EFS_EFS_MOUNT_H */ /* * Actions to take if <sys/fs/xfs_clnt.h> exists. @@ -927,6 +932,14 @@ struct sockaddr_dl; */ #ifdef HAVE_ERRNO_H # include <errno.h> +#else +/* + * Actions to take if <sys/errno.h> exists. + */ +# ifdef HAVE_SYS_ERRNO_H +# include <sys/errno.h> +extern int errno; +# endif /* HAVE_SYS_ERRNO_H */ #endif /* HAVE_ERRNO_H */ /* @@ -958,6 +971,13 @@ struct sockaddr_dl; #endif /* HAVE_ISOFS_CD9660_CD9660_MOUNT_H */ /* + * Actions to take if <fs/udf/udf_mount.h> exists. + */ +#ifdef HAVE_FS_UDF_UDF_MOUNT_H +# include <fs/udf/udf_mount.h> +#endif /* HAVE_FS_UDF_UDF_MOUNT_H */ + +/* * Actions to take if <mount.h> exists. */ #ifdef HAVE_MOUNT_H @@ -1517,14 +1537,6 @@ extern unsigned int sleep(unsigned int seconds); extern int strcasecmp(const char *s1, const char *s2); #endif /* not HAVE_EXTERN_STRCASECMP */ -#ifndef HAVE_EXTERN_STRDUP -/* - * define this extern even if function does not exist, for it will - * be filled in by libamu/strdup.c - */ -extern char *strdup(const char *s); -#endif /* not HAVE_EXTERN_STRDUP */ - #ifndef HAVE_EXTERN_STRLCAT /* * define this extern even if function does not exist, for it will diff --git a/contrib/amd/include/am_utils.h b/contrib/amd/include/am_utils.h index b7e55ce..0de881a 100644 --- a/contrib/amd/include/am_utils.h +++ b/contrib/amd/include/am_utils.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -109,8 +105,14 @@ #define XLOG_DEBUG 0x0020 #define XLOG_MAP 0x0040 #define XLOG_STATS 0x0080 -#define XLOG_DEFSTR "all,nomap,nostats" /* Default log options */ +/* log option compositions */ +#define XLOG_MASK 0x00ff /* mask for all flags */ +#define XLOG_MANDATORY (XLOG_FATAL|XLOG_ERROR) /* cannot turn these off */ #define XLOG_ALL (XLOG_FATAL|XLOG_ERROR|XLOG_USER|XLOG_WARNING|XLOG_INFO|XLOG_MAP|XLOG_STATS) +/* default: fatal + error + user + warning + info */ +#define XLOG_DEFAULT (XLOG_MASK & (XLOG_ALL & ~XLOG_MAP & ~XLOG_STATS)) + +/* default: no logging options */ #define NO_SUBNET "notknown" /* default subnet name for no subnet */ #define NEXP_AP (1022) /* gdmr: was 254 */ @@ -258,8 +260,6 @@ extern pid_t am_mypid; extern int foreground; /* Foreground process */ extern int orig_umask; /* umask() on startup */ -extern int xlog_level; /* Logging level */ -extern int xlog_level_init; extern serv_state amd_state; /* Should we go now */ extern struct in_addr myipaddr; /* (An) IP address of this host */ extern struct opt_tab xlog_opt[]; @@ -278,15 +278,17 @@ extern char *get_version_string(void); extern char *inet_dquad(char *, size_t, u_long); extern char *print_wires(void); extern char *str3cat(char *, char *, char *, char *); +extern char *strvcat(const char *, ...); extern char *strealloc(char *, char *); extern char *strip_selectors(char *, char *); extern char *strnsave(const char *, int); extern int amu_close(int fd); extern int bind_resv_port(int, u_short *); -extern int cmdoption(char *, struct opt_tab *, int *); +extern int cmdoption(char *, struct opt_tab *, u_int *); extern int compute_automounter_mount_flags(mntent_t *); extern int compute_mount_flags(mntent_t *); -extern int get_amd_program_number(void); +extern void discard_nfs_args(void *, u_long); +extern u_long get_amd_program_number(void); extern int getcreds(struct svc_req *, uid_t *, gid_t *, SVCXPRT *); extern int hasmntval(mntent_t *, char *); extern unsigned int hasmntvalerr(mntent_t *, char *, int *); @@ -300,6 +302,9 @@ extern int make_rpc_packet(char *, int, u_long, struct rpc_msg *, voidp, XDRPROC extern int mkdirs(char *, int); extern int mount_fs(mntent_t *, int, caddr_t, int, MTYPE_TYPE, u_long, const char *, const char *, int); extern void nfs_program_2(struct svc_req *rqstp, SVCXPRT *transp); +extern void nfs_program_3(struct svc_req *rqstp, SVCXPRT *transp); +#define get_nfs_dispatcher_version(a) \ + ((a) == nfs_program_2 ? NFS_VERSION : NFS_VERSION3) extern int pickup_rpc_reply(voidp, int, voidp, XDRPROC_T_TYPE); extern int switch_option(char *); extern int switch_to_logfile(char *logfile, int orig_umask, int truncate_log); @@ -320,14 +325,16 @@ extern void plog(int, const char *,...) __attribute__ ((__format__ (__printf__, 2, 3))); extern void rmdirs(char *); extern void rpc_msg_init(struct rpc_msg *, u_long, u_long, u_long); -extern void set_amd_program_number(int program); +extern void set_amd_program_number(u_long program); extern void show_opts(int ch, struct opt_tab *); extern void unregister_amq(void); extern voidp xmalloc(int); extern voidp xrealloc(voidp, int); extern voidp xzalloc(int); +extern char *xstrdup(const char *); extern int check_pmap_up(char *host, struct sockaddr_in* sin); -extern u_long get_nfs_version(char *host, struct sockaddr_in *sin, u_long nfs_version, const char *proto); +extern u_long get_nfs_version(char *host, struct sockaddr_in *sin, u_long nfs_version, const char *proto, u_long def); +extern int nfs_valid_version(u_long vers); extern long get_server_pid(void); extern void setup_sighandler(int signum, void (*handler)(int)); extern time_t clocktime(nfstime *nt); @@ -367,9 +374,10 @@ extern void write_mntent(mntent_t *, const char *); extern int syslogging; #endif /* defined(HAVE_SYSLOG_H) || defined(HAVE_SYS_SYSLOG_H) */ -extern void compute_nfs_args(nfs_args_t *nap, mntent_t *mntp, int genflags, struct netconfig *nfsncp, struct sockaddr_in *ip_addr, u_long nfs_version, char *nfs_proto, am_nfs_handle_t *fhp, char *host_name, char *fs_name); +extern void compute_nfs_args(void *nap, mntent_t *mntp, int genflags, struct netconfig *nfsncp, struct sockaddr_in *ip_addr, u_long nfs_version, char *nfs_proto, am_nfs_handle_t *fhp, char *host_name, char *fs_name); +extern void destroy_nfs_args(void *nap, u_long nfs_version); extern int create_amq_service(int *udp_soAMQp, SVCXPRT **udp_amqpp, struct netconfig **udp_amqncpp, int *tcp_soAMQp, SVCXPRT **tcp_amqpp, struct netconfig **tcp_amqncpp, u_short preferred_amq_port); -extern int create_nfs_service(int *soNFSp, u_short *nfs_portp, SVCXPRT **nfs_xprtp, void (*dispatch_fxn)(struct svc_req *rqstp, SVCXPRT *transp)); +extern int create_nfs_service(int *soNFSp, u_short *nfs_portp, SVCXPRT **nfs_xprtp, void (*dispatch_fxn)(struct svc_req *rqstp, SVCXPRT *transp), u_long nfs_version); extern int amu_svc_register(SVCXPRT *, u_long, u_long, void (*)(struct svc_req *, SVCXPRT *), u_long, struct netconfig *); #ifdef HAVE_TRANSPORT_TYPE_TLI @@ -392,8 +400,14 @@ extern int unregister_autofs_service(char *autofs_conftype); /* - * Network File System: the new generation - * NFS V.3 + * Network File System: the old faithful generation NFS V.2 + */ +#ifndef NFS_VERSION2 +# define NFS_VERSION2 ((u_int) 2) +#endif /* not NFS_VERSION2 */ + +/* + * Network File System: the not so new anymore generation NFS V.3 */ #ifdef HAVE_FS_NFS3 # ifndef NFS_VERSION3 @@ -401,6 +415,14 @@ extern int unregister_autofs_service(char *autofs_conftype); # endif /* not NFS_VERSION3 */ #endif /* HAVE_FS_NFS3 */ +/* + * Network File System: the new generation NFS V.4 + */ +#ifdef HAVE_FS_NFS4 +# ifndef NFS_VERSION4 +# define NFS_VERSION4 ((u_int) 4) +# endif /* not NFS_VERSION4 */ +#endif /* HAVE_FS_NFS4 */ /**************************************************************************/ /*** DEBUGGING ***/ @@ -412,30 +434,32 @@ extern int unregister_autofs_service(char *autofs_conftype); #ifdef DEBUG -# define D_ALL (~(D_MTAB|D_HRTIME|D_XDRTRACE|D_DAEMON|D_FORK|D_AMQ)) -# define D_DAEMON 0x0001 /* Don't enter daemon mode */ +# define D_DAEMON 0x0001 /* Enter daemon mode */ # define D_TRACE 0x0002 /* Do protocol trace */ # define D_FULL 0x0004 /* Do full trace */ # define D_MTAB 0x0008 /* Use local mtab */ -# define D_AMQ 0x0010 /* Don't register amq program */ +# define D_AMQ 0x0010 /* Register amq program */ # define D_STR 0x0020 /* Debug string munging */ # ifdef DEBUG_MEM # define D_MEM 0x0040 /* Trace memory allocations */ # else /* not DEBUG_MEM */ # define D_MEM 0x0000 /* Dummy */ # endif /* not DEBUG_MEM */ -# define D_FORK 0x0080 /* Don't fork server */ - /* info service specific debugging (hesiod, nis, etc) */ -# define D_INFO 0x0100 +# define D_FORK 0x0080 /* Fork server (hlfsd only) */ +# define D_INFO 0x0100 /* info service specific debugging (hesiod, nis, etc) */ # define D_HRTIME 0x0200 /* Print high resolution time stamps */ # define D_XDRTRACE 0x0400 /* Trace xdr routines */ # define D_READDIR 0x0800 /* Show browsable_dir progress */ - -/* - * Test mode is test mode: don't daemonize, don't register amq, don't fork, - * don't touch system mtab, etc. - */ -# define D_TEST (~(D_MEM|D_STR|D_XDRTRACE)) +/* debug option compositions */ +# define D_MASK 0x0fff /* mask of known flags */ +# define D_BASIC (D_TRACE|D_FULL|D_STR|D_MEM|D_INFO|D_XDRTRACE|D_READDIR) +# define D_CONTROL (D_DAEMON|D_AMQ|D_FORK) +/* immutable flags: cannot be changed via "amq -D" */ +# define D_IMMUTABLE (D_MTAB | D_CONTROL) +# define D_ALL (D_BASIC | D_CONTROL) +# define D_DEFAULT (D_MASK & D_ALL & ~D_XDRTRACE) +/* test mode: nodaemon, noamq, nofork, (local) mtab */ +# define D_TEST (D_BASIC | D_MTAB) # define amuDebug(x) (debug_flags & (x)) # define dlog if (amuDebug(D_FULL)) dplog @@ -460,34 +484,49 @@ extern void malloc_verify(void); # endif /* not DEBUG_MEM */ /* functions that depend solely on debugging */ -extern void print_nfs_args(const nfs_args_t *nap, u_long nfs_version); +extern void print_nfs_args(const void *, u_long nfs_version); extern int debug_option (char *opt); extern void dplog(const char *fmt, ...) __attribute__ ((__format__ (__printf__, 1, 2))); #else /* not DEBUG */ +/* set dummy flags to zero */ +# define D_DAEMON 0x0001 /* Enter daemon mode */ +# define D_TRACE 0x0000 /* dummy: Do protocol trace */ +# define D_FULL 0x0000 /* dummy: Do full trace */ +# define D_MTAB 0x0000 /* dummy: Use local mtab */ +# define D_AMQ 0x0010 /* Register amq program */ +# define D_STR 0x0000 /* dummy: Debug string munging */ +# define D_MEM 0x0000 /* dummy: Trace memory allocations */ +# define D_FORK 0x0080 /* Fork server (hlfsd only) */ +# define D_INFO 0x0000 /* dummy: info service debugging */ +# define D_HRTIME 0x0000 /* dummy: hi-res time stamps */ +# define D_XDRTRACE 0x0000 /* dummy: Trace xdr routines */ +# define D_READDIR 0x0000 /* dummy: browsable_dir progress */ +# define D_CONTROL (D_DAEMON|D_AMQ|D_FORK) +# define amuDebug(x) (debug_flags & (x)) /* * If not debugging, then also reset the pointer. * It's safer -- and besides, free() should do that anyway. */ -# define XFREE(x) do { free((voidp)x); x = NULL;} while (0) - -#define amuDebug(x) (0) +# define XFREE(x) do { free((voidp)x); x = NULL;} while (0) -#ifdef __GNUC__ -#define dlog(fmt...) -#else /* not __GNUC__ */ +# if defined(HAVE_GCC_VARARGS_MACROS) +# define dlog(fmt...) +# elif defined(HAVE_C99_VARARGS_MACROS) +# define dlog(...) +# else /* no c99 varargs */ /* this define means that we CCP leaves code behind the (list,of,args) */ -#define dlog -#endif /* not __GNUC__ */ +# define dlog +# endif /* no c99 varargs */ -#define print_nfs_args(nap, nfs_version) -#define debug_option(x) (1) +# define print_nfs_args(nap, nfs_version) +# define debug_option(x) (1) #endif /* not DEBUG */ -extern int debug_flags; /* Debug options */ +extern u_int debug_flags; /* Debug options */ extern struct opt_tab dbg_opt[]; /**************************************************************************/ diff --git a/contrib/amd/include/am_xdr_func.h b/contrib/amd/include/am_xdr_func.h index c415918..3659942 100644 --- a/contrib/amd/include/am_xdr_func.h +++ b/contrib/amd/include/am_xdr_func.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -43,8 +39,26 @@ #ifdef HAVE_FS_NFS3 +#define AM_MOUNTVERS3 ((unsigned long)(3)) + #define AM_FHSIZE3 64 /* size in bytes of a file handle (v3) */ -#define AM_MOUNTVERS3 ((unsigned long)(3)) +#define AM_NFS3_WRITEVERFSIZE 8 +#define AM_NFS3_CREATEVERFSIZE 8 +#define AM_NFS3_COOKIEVERFSIZE 8 +#define AM_ACCESS3_READ 0x0001 +#define AM_ACCESS3_LOOKUP 0x0002 +#define AM_ACCESS3_MODIFY 0x0004 +#define AM_ACCESS3_EXTEND 0x0008 +#define AM_ACCESS3_DELETE 0x0010 +#define AM_ACCESS3_EXECUTE 0x0020 +#define AM_FSF3_LINK 0x0001 +#define AM_FSF3_SYMLINK 0x0002 +#define AM_FSF3_HOMOGENEOUS 0x0008 +#define AM_FSF3_CANSETTIME 0x0010 + +typedef char am_cookieverf3[AM_NFS3_COOKIEVERFSIZE]; + +typedef uint64 am_cookie3; /* NFSv3 handle */ struct am_nfs_fh3 { @@ -131,37 +145,830 @@ struct am_diropargs3 { }; typedef struct am_diropargs3 am_diropargs3; +enum am_ftype3 { + AM_NF3REG = 1, + AM_NF3DIR = 2, + AM_NF3BLK = 3, + AM_NF3CHR = 4, + AM_NF3LNK = 5, + AM_NF3SOCK = 6, + AM_NF3FIFO = 7, +}; +typedef enum am_ftype3 am_ftype3; + +typedef u_int am_mode3; + +typedef u_int am_uid3; + +typedef u_int am_gid3; + +typedef uint64 am_size3; + +typedef uint64 am_fileid3; + +struct am_specdata3 { + u_int specdata1; + u_int specdata2; +}; +typedef struct am_specdata3 am_specdata3; + +struct am_nfstime3 { + u_int seconds; + u_int nseconds; +}; +typedef struct am_nfstime3 am_nfstime3; + +struct am_fattr3 { + am_ftype3 type; + am_mode3 mode; + u_int nlink; + am_uid3 uid; + am_gid3 gid; + am_size3 size; + am_size3 used; + am_specdata3 rdev; + uint64 fsid; + am_fileid3 fileid; + am_nfstime3 atime; + am_nfstime3 mtime; + am_nfstime3 ctime; +}; +typedef struct am_fattr3 am_fattr3; + +struct am_post_op_attr { + bool_t attributes_follow; + union { + am_fattr3 attributes; + } am_post_op_attr_u; +}; +typedef struct am_post_op_attr am_post_op_attr; + +enum am_stable_how { + AM_UNSTABLE = 0, + AM_DATA_SYNC = 1, + AM_FILE_SYNC = 2, +}; +typedef enum am_stable_how am_stable_how; + +typedef uint64 am_offset3; + +typedef u_int am_count3; + +struct am_wcc_attr { + am_size3 size; + am_nfstime3 mtime; + am_nfstime3 ctime; +}; +typedef struct am_wcc_attr am_wcc_attr; + +struct am_pre_op_attr { + bool_t attributes_follow; + union { + am_wcc_attr attributes; + } am_pre_op_attr_u; +}; +typedef struct am_pre_op_attr am_pre_op_attr; + +struct am_wcc_data { + am_pre_op_attr before; + am_post_op_attr after; +}; +typedef struct am_wcc_data am_wcc_data; + +struct am_WRITE3args { + am_nfs_fh3 file; + am_offset3 offset; + am_count3 count; + am_stable_how stable; + struct { + u_int data_len; + char *data_val; + } data; +}; +typedef struct am_WRITE3args am_WRITE3args; + +typedef char am_writeverf3[AM_NFS3_WRITEVERFSIZE]; + +struct am_WRITE3resok { + am_wcc_data file_wcc; + am_count3 count; + am_stable_how committed; + am_writeverf3 verf; +}; +typedef struct am_WRITE3resok am_WRITE3resok; + +struct am_WRITE3resfail { + am_wcc_data file_wcc; +}; +typedef struct am_WRITE3resfail am_WRITE3resfail; + +struct am_WRITE3res { + am_nfsstat3 status; + union { + am_WRITE3resok ok; + am_WRITE3resfail fail; + } res_u; +}; +typedef struct am_WRITE3res am_WRITE3res; + struct am_LOOKUP3args { - am_diropargs3 what; + am_diropargs3 what; }; typedef struct am_LOOKUP3args am_LOOKUP3args; struct am_LOOKUP3resok { - am_nfs_fh3 object; -#if 0 - post_op_attr obj_attributes; - post_op_attr dir_attributes; -#endif + am_nfs_fh3 object; + am_post_op_attr obj_attributes; + am_post_op_attr dir_attributes; }; typedef struct am_LOOKUP3resok am_LOOKUP3resok; struct am_LOOKUP3resfail { -#if 0 - post_op_attr dir_attributes; -#else - char dummy; /* cannot have an empty declaration */ -#endif + am_post_op_attr dir_attributes; }; typedef struct am_LOOKUP3resfail am_LOOKUP3resfail; struct am_LOOKUP3res { - am_nfsstat3 status; - union { - am_LOOKUP3resok ok; - am_LOOKUP3resfail fail; - } res_u; + am_nfsstat3 status; + union { + am_LOOKUP3resok ok; + am_LOOKUP3resfail fail; + } res_u; }; typedef struct am_LOOKUP3res am_LOOKUP3res; + +struct am_COMMIT3args { + am_nfs_fh3 file; + am_offset3 offset; + am_count3 count; +}; +typedef struct am_COMMIT3args am_COMMIT3args; + +struct am_COMMIT3resok { + am_wcc_data file_wcc; + am_writeverf3 verf; +}; +typedef struct am_COMMIT3resok am_COMMIT3resok; + +struct am_COMMIT3resfail { + am_wcc_data file_wcc; +}; +typedef struct am_COMMIT3resfail am_COMMIT3resfail; + +struct am_COMMIT3res { + am_nfsstat3 status; + union { + am_COMMIT3resok ok; + am_COMMIT3resfail fail; + } res_u; +}; +typedef struct am_COMMIT3res am_COMMIT3res; + +struct am_ACCESS3args { + am_nfs_fh3 object; + u_int access; +}; +typedef struct am_ACCESS3args am_ACCESS3args; + +struct am_ACCESS3resok { + am_post_op_attr obj_attributes; + u_int access; +}; +typedef struct am_ACCESS3resok am_ACCESS3resok; + +struct am_ACCESS3resfail { + am_post_op_attr obj_attributes; +}; +typedef struct am_ACCESS3resfail am_ACCESS3resfail; + +struct am_ACCESS3res { + am_nfsstat3 status; + union { + am_ACCESS3resok ok; + am_ACCESS3resfail fail; + } res_u; +}; +typedef struct am_ACCESS3res am_ACCESS3res; + +struct am_GETATTR3args { + am_nfs_fh3 object; +}; +typedef struct am_GETATTR3args am_GETATTR3args; + +struct am_GETATTR3resok { + am_fattr3 obj_attributes; +}; +typedef struct am_GETATTR3resok am_GETATTR3resok; + +struct am_GETATTR3res { + am_nfsstat3 status; + union { + am_GETATTR3resok ok; + } res_u; +}; +typedef struct am_GETATTR3res am_GETATTR3res; + +enum am_time_how { + AM_DONT_CHANGE = 0, + AM_SET_TO_SERVER_TIME = 1, + AM_SET_TO_CLIENT_TIME = 2, +}; +typedef enum am_time_how am_time_how; + +struct am_set_mode3 { + bool_t set_it; + union { + am_mode3 mode; + } am_set_mode3_u; +}; +typedef struct am_set_mode3 am_set_mode3; + +struct am_set_uid3 { + bool_t set_it; + union { + am_uid3 uid; + } am_set_uid3_u; +}; +typedef struct am_set_uid3 am_set_uid3; + +struct am_set_gid3 { + bool_t set_it; + union { + am_gid3 gid; + } am_set_gid3_u; +}; +typedef struct am_set_gid3 am_set_gid3; + +struct am_set_size3 { + bool_t set_it; + union { + am_size3 size; + } am_set_size3_u; +}; +typedef struct am_set_size3 am_set_size3; + +struct am_set_atime { + am_time_how set_it; + union { + am_nfstime3 atime; + } am_set_atime_u; +}; +typedef struct am_set_atime am_set_atime; + +struct am_set_mtime { + am_time_how set_it; + union { + am_nfstime3 mtime; + } am_set_mtime_u; +}; +typedef struct am_set_mtime am_set_mtime; + +struct am_sattr3 { + am_set_mode3 mode; + am_set_uid3 uid; + am_set_gid3 gid; + am_set_size3 size; + am_set_atime atime; + am_set_mtime mtime; +}; +typedef struct am_sattr3 am_sattr3; + +enum am_createmode3 { + AM_UNCHECKED = 0, + AM_GUARDED = 1, + AM_EXCLUSIVE = 2, +}; +typedef enum am_createmode3 am_createmode3; + +typedef char am_createverf3[AM_NFS3_CREATEVERFSIZE]; + +struct am_createhow3 { + am_createmode3 mode; + union { + am_sattr3 obj_attributes; + am_sattr3 g_obj_attributes; + am_createverf3 verf; + } am_createhow3_u; +}; +typedef struct am_createhow3 am_createhow3; + +struct am_CREATE3args { + am_diropargs3 where; + am_createhow3 how; +}; +typedef struct am_CREATE3args am_CREATE3args; + +struct am_post_op_fh3 { + bool_t handle_follows; + union { + am_nfs_fh3 handle; + } am_post_op_fh3_u; +}; +typedef struct am_post_op_fh3 am_post_op_fh3; + +struct am_CREATE3resok { + am_post_op_fh3 obj; + am_post_op_attr obj_attributes; + am_wcc_data dir_wcc; +}; +typedef struct am_CREATE3resok am_CREATE3resok; + +struct am_CREATE3resfail { + am_wcc_data dir_wcc; +}; +typedef struct am_CREATE3resfail am_CREATE3resfail; + +struct am_CREATE3res { + am_nfsstat3 status; + union { + am_CREATE3resok ok; + am_CREATE3resfail fail; + } res_u; +}; +typedef struct am_CREATE3res am_CREATE3res; + +struct am_REMOVE3args { + am_diropargs3 object; +}; +typedef struct am_REMOVE3args am_REMOVE3args; + +struct am_REMOVE3resok { + am_wcc_data dir_wcc; +}; +typedef struct am_REMOVE3resok am_REMOVE3resok; + +struct am_REMOVE3resfail { + am_wcc_data dir_wcc; +}; +typedef struct am_REMOVE3resfail am_REMOVE3resfail; + +struct am_REMOVE3res { + am_nfsstat3 status; + union { + am_REMOVE3resok ok; + am_REMOVE3resfail fail; + } res_u; +}; +typedef struct am_REMOVE3res am_REMOVE3res; + +struct am_READ3args { + am_nfs_fh3 file; + am_offset3 offset; + am_count3 count; +}; +typedef struct am_READ3args am_READ3args; + +struct am_READ3resok { + am_post_op_attr file_attributes; + am_count3 count; + bool_t eof; + struct { + u_int data_len; + char *data_val; + } data; +}; +typedef struct am_READ3resok am_READ3resok; + +struct am_READ3resfail { + am_post_op_attr file_attributes; +}; +typedef struct am_READ3resfail am_READ3resfail; + +struct am_READ3res { + am_nfsstat3 status; + union { + am_READ3resok ok; + am_READ3resfail fail; + } res_u; +}; +typedef struct am_READ3res am_READ3res; + +struct am_FSINFO3args { + am_nfs_fh3 fsroot; +}; +typedef struct am_FSINFO3args am_FSINFO3args; + +struct am_FSINFO3resok { + am_post_op_attr obj_attributes; + u_int rtmax; + u_int rtpref; + u_int rtmult; + u_int wtmax; + u_int wtpref; + u_int wtmult; + u_int dtpref; + am_size3 maxfilesize; + am_nfstime3 time_delta; + u_int properties; +}; +typedef struct am_FSINFO3resok am_FSINFO3resok; + +struct am_FSINFO3resfail { + am_post_op_attr obj_attributes; +}; +typedef struct am_FSINFO3resfail am_FSINFO3resfail; + +struct am_FSINFO3res { + am_nfsstat3 status; + union { + am_FSINFO3resok ok; + am_FSINFO3resfail fail; + } res_u; +}; +typedef struct am_FSINFO3res am_FSINFO3res; + +struct am_FSSTAT3args { + am_nfs_fh3 fsroot; +}; +typedef struct am_FSSTAT3args am_FSSTAT3args; + +struct am_FSSTAT3resok { + am_post_op_attr obj_attributes; + am_size3 tbytes; + am_size3 fbytes; + am_size3 abytes; + am_size3 tfiles; + am_size3 ffiles; + am_size3 afiles; + u_int invarsec; +}; +typedef struct am_FSSTAT3resok am_FSSTAT3resok; + +struct am_FSSTAT3resfail { + am_post_op_attr obj_attributes; +}; +typedef struct am_FSSTAT3resfail am_FSSTAT3resfail; + +struct am_FSSTAT3res { + am_nfsstat3 status; + union { + am_FSSTAT3resok ok; + am_FSSTAT3resfail fail; + } res_u; +}; +typedef struct am_FSSTAT3res am_FSSTAT3res; + +struct am_PATHCONF3args { + am_nfs_fh3 object; +}; +typedef struct am_PATHCONF3args am_PATHCONF3args; + +struct am_PATHCONF3resok { + am_post_op_attr obj_attributes; + u_int linkmax; + u_int name_max; + bool_t no_trunc; + bool_t chown_restricted; + bool_t case_insensitive; + bool_t case_preserving; +}; +typedef struct am_PATHCONF3resok am_PATHCONF3resok; + +struct am_PATHCONF3resfail { + am_post_op_attr obj_attributes; +}; +typedef struct am_PATHCONF3resfail am_PATHCONF3resfail; + +struct am_PATHCONF3res { + am_nfsstat3 status; + union { + am_PATHCONF3resok ok; + am_PATHCONF3resfail fail; + } res_u; +}; +typedef struct am_PATHCONF3res am_PATHCONF3res; + +typedef char *am_nfspath3; + +struct am_symlinkdata3 { + am_sattr3 symlink_attributes; + am_nfspath3 symlink_data; +}; +typedef struct am_symlinkdata3 am_symlinkdata3; + +struct am_SYMLINK3args { + am_diropargs3 where; + am_symlinkdata3 symlink; +}; +typedef struct am_SYMLINK3args am_SYMLINK3args; + +struct am_SYMLINK3resok { + am_post_op_fh3 obj; + am_post_op_attr obj_attributes; + am_wcc_data dir_wcc; +}; +typedef struct am_SYMLINK3resok am_SYMLINK3resok; + +struct am_SYMLINK3resfail { + am_wcc_data dir_wcc; +}; +typedef struct am_SYMLINK3resfail am_SYMLINK3resfail; + +struct am_SYMLINK3res { + am_nfsstat3 status; + union { + am_SYMLINK3resok ok; + am_SYMLINK3resfail fail; + } res_u; +}; +typedef struct am_SYMLINK3res am_SYMLINK3res; + +struct am_READLINK3args { + am_nfs_fh3 symlink; +}; +typedef struct am_READLINK3args am_READLINK3args; + +struct am_READLINK3resok { + am_post_op_attr symlink_attributes; + am_nfspath3 data; +}; +typedef struct am_READLINK3resok am_READLINK3resok; + +struct am_READLINK3resfail { + am_post_op_attr symlink_attributes; +}; +typedef struct am_READLINK3resfail am_READLINK3resfail; + +struct am_READLINK3res { + am_nfsstat3 status; + union { + am_READLINK3resok ok; + am_READLINK3resfail fail; + } res_u; +}; +typedef struct am_READLINK3res am_READLINK3res; + +struct am_devicedata3 { + am_sattr3 dev_attributes; + am_specdata3 spec; +}; +typedef struct am_devicedata3 am_devicedata3; + +struct am_mknoddata3 { + am_ftype3 type; + union { + am_devicedata3 chr_device; + am_devicedata3 blk_device; + am_sattr3 sock_attributes; + am_sattr3 pipe_attributes; + } am_mknoddata3_u; +}; +typedef struct am_mknoddata3 am_mknoddata3; + +struct am_MKNOD3args { + am_diropargs3 where; + am_mknoddata3 what; +}; +typedef struct am_MKNOD3args am_MKNOD3args; + +struct am_MKNOD3resok { + am_post_op_fh3 obj; + am_post_op_attr obj_attributes; + am_wcc_data dir_wcc; +}; +typedef struct am_MKNOD3resok am_MKNOD3resok; + +struct am_MKNOD3resfail { + am_wcc_data dir_wcc; +}; +typedef struct am_MKNOD3resfail am_MKNOD3resfail; + +struct am_MKNOD3res { + am_nfsstat3 status; + union { + am_MKNOD3resok ok; + am_MKNOD3resfail fail; + } res_u; +}; +typedef struct am_MKNOD3res am_MKNOD3res; + +struct am_MKDIR3args { + am_diropargs3 where; + am_sattr3 attributes; +}; +typedef struct am_MKDIR3args am_MKDIR3args; + +struct am_MKDIR3resok { + am_post_op_fh3 obj; + am_post_op_attr obj_attributes; + am_wcc_data dir_wcc; +}; +typedef struct am_MKDIR3resok am_MKDIR3resok; + +struct am_MKDIR3resfail { + am_wcc_data dir_wcc; +}; +typedef struct am_MKDIR3resfail am_MKDIR3resfail; + +struct am_MKDIR3res { + am_nfsstat3 status; + union { + am_MKDIR3resok ok; + am_MKDIR3resfail fail; + } res_u; +}; +typedef struct am_MKDIR3res am_MKDIR3res; + +struct am_RMDIR3args { + am_diropargs3 object; +}; +typedef struct am_RMDIR3args am_RMDIR3args; + +struct am_RMDIR3resok { + am_wcc_data dir_wcc; +}; +typedef struct am_RMDIR3resok am_RMDIR3resok; + +struct am_RMDIR3resfail { + am_wcc_data dir_wcc; +}; +typedef struct am_RMDIR3resfail am_RMDIR3resfail; + +struct am_RMDIR3res { + am_nfsstat3 status; + union { + am_RMDIR3resok ok; + am_RMDIR3resfail fail; + } res_u; +}; +typedef struct am_RMDIR3res am_RMDIR3res; + +struct am_RENAME3args { + am_diropargs3 from; + am_diropargs3 to; +}; +typedef struct am_RENAME3args am_RENAME3args; + +struct am_RENAME3resok { + am_wcc_data fromdir_wcc; + am_wcc_data todir_wcc; +}; +typedef struct am_RENAME3resok am_RENAME3resok; + +struct am_RENAME3resfail { + am_wcc_data fromdir_wcc; + am_wcc_data todir_wcc; +}; +typedef struct am_RENAME3resfail am_RENAME3resfail; + +struct am_RENAME3res { + am_nfsstat3 status; + union { + am_RENAME3resok ok; + am_RENAME3resfail fail; + } res_u; +}; +typedef struct am_RENAME3res am_RENAME3res; + +struct am_READDIRPLUS3args { + am_nfs_fh3 dir; + am_cookie3 cookie; + am_cookieverf3 cookieverf; + am_count3 dircount; + am_count3 maxcount; +}; +typedef struct am_READDIRPLUS3args am_READDIRPLUS3args; + +struct am_entryplus3 { + am_fileid3 fileid; + am_filename3 name; + am_cookie3 cookie; + am_post_op_attr name_attributes; + am_post_op_fh3 name_handle; + struct am_entryplus3 *nextentry; +}; +typedef struct am_entryplus3 am_entryplus3; + +struct am_dirlistplus3 { + am_entryplus3 *entries; + bool_t eof; +}; +typedef struct am_dirlistplus3 am_dirlistplus3; + +struct am_READDIRPLUS3resok { + am_post_op_attr dir_attributes; + am_cookieverf3 cookieverf; + am_dirlistplus3 reply; +}; +typedef struct am_READDIRPLUS3resok am_READDIRPLUS3resok; + +struct am_READDIRPLUS3resfail { + am_post_op_attr dir_attributes; +}; +typedef struct am_READDIRPLUS3resfail am_READDIRPLUS3resfail; + +struct am_READDIRPLUS3res { + am_nfsstat3 status; + union { + am_READDIRPLUS3resok ok; + am_READDIRPLUS3resfail fail; + } res_u; +}; +typedef struct am_READDIRPLUS3res am_READDIRPLUS3res; + +struct am_READDIR3args { + am_nfs_fh3 dir; + am_cookie3 cookie; + am_cookieverf3 cookieverf; + am_count3 count; +}; +typedef struct am_READDIR3args am_READDIR3args; + +struct am_entry3 { + am_fileid3 fileid; + am_filename3 name; + am_cookie3 cookie; + struct am_entry3 *nextentry; +}; +typedef struct am_entry3 am_entry3; + +struct am_dirlist3 { + am_entry3 *entries; + bool_t eof; +}; +typedef struct am_dirlist3 am_dirlist3; + +struct am_READDIR3resok { + am_post_op_attr dir_attributes; + am_cookieverf3 cookieverf; + am_dirlist3 reply; +}; +typedef struct am_READDIR3resok am_READDIR3resok; + +struct am_READDIR3resfail { + am_post_op_attr dir_attributes; +}; +typedef struct am_READDIR3resfail am_READDIR3resfail; + +struct am_READDIR3res { + am_nfsstat3 status; + union { + am_READDIR3resok ok; + am_READDIR3resfail fail; + } res_u; +}; +typedef struct am_READDIR3res am_READDIR3res; + +struct am_LINK3args { + am_nfs_fh3 file; + am_diropargs3 link; +}; +typedef struct am_LINK3args am_LINK3args; + +struct am_LINK3resok { + am_post_op_attr file_attributes; + am_wcc_data linkdir_wcc; +}; +typedef struct am_LINK3resok am_LINK3resok; + +struct am_LINK3resfail { + am_post_op_attr file_attributes; + am_wcc_data linkdir_wcc; +}; +typedef struct am_LINK3resfail am_LINK3resfail; + +struct am_LINK3res { + am_nfsstat3 status; + union { + am_LINK3resok ok; + am_LINK3resfail fail; + } res_u; +}; +typedef struct am_LINK3res am_LINK3res; + +struct am_sattrguard3 { + bool_t check; + union { + am_nfstime3 obj_ctime; + } am_sattrguard3_u; +}; +typedef struct am_sattrguard3 am_sattrguard3; + +struct am_SETATTR3args { + am_nfs_fh3 object; + am_sattr3 new_attributes; + am_sattrguard3 guard; +}; +typedef struct am_SETATTR3args am_SETATTR3args; + +struct am_SETATTR3resok { + am_wcc_data obj_wcc; +}; +typedef struct am_SETATTR3resok am_SETATTR3resok; + +struct am_SETATTR3resfail { + am_wcc_data obj_wcc; +}; +typedef struct am_SETATTR3resfail am_SETATTR3resfail; + +struct am_SETATTR3res { + am_nfsstat3 status; + union { + am_SETATTR3resok ok; + am_SETATTR3resfail fail; + } res_u; +}; +typedef struct am_SETATTR3res am_SETATTR3res; #endif /* HAVE_FS_NFS3 */ /* @@ -310,6 +1117,74 @@ bool_t xdr_writeargs(XDR *xdrs, nfswriteargs *objp); * NFS3 XDR FUNCTIONS: */ #ifdef HAVE_FS_NFS3 +#define AM_NFS3_NULL 0 +void * am_nfs3_null_3(void *, CLIENT *); +void * am_nfs3_null_3_svc(void *, struct svc_req *); +#define AM_NFS3_GETATTR 1 +am_GETATTR3res * am_nfs3_getattr_3(am_GETATTR3args *, CLIENT *); +am_GETATTR3res * am_nfs3_getattr_3_svc(am_GETATTR3args *, struct svc_req *); +#define AM_NFS3_SETATTR 2 +am_SETATTR3res * am_nfs3_setattr_3(am_SETATTR3args *, CLIENT *); +am_SETATTR3res * am_nfs3_setattr_3_svc(am_SETATTR3args *, struct svc_req *); +#define AM_NFS3_LOOKUP 3 +am_LOOKUP3res * am_nfs3_lookup_3(am_LOOKUP3args *, CLIENT *); +am_LOOKUP3res * am_nfs3_lookup_3_svc(am_LOOKUP3args *, struct svc_req *); +#define AM_NFS3_ACCESS 4 +am_ACCESS3res * am_nfs3_access_3(am_ACCESS3args *, CLIENT *); +am_ACCESS3res * am_nfs3_access_3_svc(am_ACCESS3args *, struct svc_req *); +#define AM_NFS3_READLINK 5 +am_READLINK3res * am_nfs3_readlink_3(am_READLINK3args *, CLIENT *); +am_READLINK3res * am_nfs3_readlink_3_svc(am_READLINK3args *, struct svc_req *); +#define AM_NFS3_READ 6 +am_READ3res * am_nfs3_read_3(am_READ3args *, CLIENT *); +am_READ3res * am_nfs3_read_3_svc(am_READ3args *, struct svc_req *); +#define AM_NFS3_WRITE 7 +am_WRITE3res * am_nfs3_write_3(am_WRITE3args *, CLIENT *); +am_WRITE3res * am_nfs3_write_3_svc(am_WRITE3args *, struct svc_req *); +#define AM_NFS3_CREATE 8 +am_CREATE3res * am_nfs3_create_3(am_CREATE3args *, CLIENT *); +am_CREATE3res * am_nfs3_create_3_svc(am_CREATE3args *, struct svc_req *); +#define AM_NFS3_MKDIR 9 +am_MKDIR3res * am_nfs3_mkdir_3(am_MKDIR3args *, CLIENT *); +am_MKDIR3res * am_nfs3_mkdir_3_svc(am_MKDIR3args *, struct svc_req *); +#define AM_NFS3_SYMLINK 10 +am_SYMLINK3res * am_nfs3_symlink_3(am_SYMLINK3args *, CLIENT *); +am_SYMLINK3res * am_nfs3_symlink_3_svc(am_SYMLINK3args *, struct svc_req *); +#define AM_NFS3_MKNOD 11 +am_MKNOD3res * am_nfs3_mknod_3(am_MKNOD3args *, CLIENT *); +am_MKNOD3res * am_nfs3_mknod_3_svc(am_MKNOD3args *, struct svc_req *); +#define AM_NFS3_REMOVE 12 +am_REMOVE3res * am_nfs3_remove_3(am_REMOVE3args *, CLIENT *); +am_REMOVE3res * am_nfs3_remove_3_svc(am_REMOVE3args *, struct svc_req *); +#define AM_NFS3_RMDIR 13 +am_RMDIR3res * am_nfs3_rmdir_3(am_RMDIR3args *, CLIENT *); +am_RMDIR3res * am_nfs3_rmdir_3_svc(am_RMDIR3args *, struct svc_req *); +#define AM_NFS3_RENAME 14 +am_RENAME3res * am_nfs3_rename_3(am_RENAME3args *, CLIENT *); +am_RENAME3res * am_nfs3_rename_3_svc(am_RENAME3args *, struct svc_req *); +#define AM_NFS3_LINK 15 +am_LINK3res * am_nfs3_link_3(am_LINK3args *, CLIENT *); +am_LINK3res * am_nfs3_link_3_svc(am_LINK3args *, struct svc_req *); +#define AM_NFS3_READDIR 16 +am_READDIR3res * am_nfs3_readdir_3(am_READDIR3args *, CLIENT *); +am_READDIR3res * am_nfs3_readdir_3_svc(am_READDIR3args *, struct svc_req *); +#define AM_NFS3_READDIRPLUS 17 +am_READDIRPLUS3res * am_nfs3_readdirplus_3(am_READDIRPLUS3args *, CLIENT *); +am_READDIRPLUS3res * am_nfs3_readdirplus_3_svc(am_READDIRPLUS3args *, struct svc_req *); +#define AM_NFS3_FSSTAT 18 +am_FSSTAT3res * am_nfs3_fsstat_3(am_FSSTAT3args *, CLIENT *); +am_FSSTAT3res * am_nfs3_fsstat_3_svc(am_FSSTAT3args *, struct svc_req *); +#define AM_NFS3_FSINFO 19 +am_FSINFO3res * am_nfs3_fsinfo_3(am_FSINFO3args *, CLIENT *); +am_FSINFO3res * am_nfs3_fsinfo_3_svc(am_FSINFO3args *, struct svc_req *); +#define AM_NFS3_PATHCONF 20 +am_PATHCONF3res * am_nfs3_pathconf_3(am_PATHCONF3args *, CLIENT *); +am_PATHCONF3res * am_nfs3_pathconf_3_svc(am_PATHCONF3args *, struct svc_req *); +#define AM_NFS3_COMMIT 21 +am_COMMIT3res * am_nfs3_commit_3(am_COMMIT3args *, CLIENT *); +am_COMMIT3res * am_nfs3_commit_3_svc(am_COMMIT3args *, struct svc_req *); +int nfs_program_3_freeresult (SVCXPRT *, xdrproc_t, caddr_t); + bool_t xdr_am_fhandle3(XDR *xdrs, am_fhandle3 *objp); bool_t xdr_am_mountstat3(XDR *xdrs, am_mountstat3 *objp); bool_t xdr_am_mountres3_ok(XDR *xdrs, am_mountres3_ok *objp); @@ -322,6 +1197,134 @@ bool_t xdr_am_LOOKUP3resfail(XDR *xdrs, am_LOOKUP3resfail *objp); bool_t xdr_am_LOOKUP3resok(XDR *xdrs, am_LOOKUP3resok *objp); bool_t xdr_am_nfsstat3(XDR *xdrs, am_nfsstat3 *objp); bool_t xdr_am_nfs_fh3(XDR *xdrs, am_nfs_fh3 *objp); +bool_t xdr_am_cookieverf3 (XDR *, am_cookieverf3); +bool_t xdr_uint64 (XDR *, uint64*); +bool_t xdr_am_cookie3 (XDR *, am_cookie3*); +bool_t xdr_am_nfs_fh3 (XDR *, am_nfs_fh3*); +bool_t xdr_am_nfsstat3 (XDR *, am_nfsstat3*); +bool_t xdr_am_filename3 (XDR *, am_filename3*); +bool_t xdr_am_diropargs3 (XDR *, am_diropargs3*); +bool_t xdr_am_ftype3 (XDR *, am_ftype3*); +bool_t xdr_am_mode3 (XDR *, am_mode3*); +bool_t xdr_am_uid3 (XDR *, am_uid3*); +bool_t xdr_am_gid3 (XDR *, am_gid3*); +bool_t xdr_am_size3 (XDR *, am_size3*); +bool_t xdr_am_fileid3 (XDR *, am_fileid3*); +bool_t xdr_am_specdata3 (XDR *, am_specdata3*); +bool_t xdr_am_nfstime3 (XDR *, am_nfstime3*); +bool_t xdr_am_fattr3 (XDR *, am_fattr3*); +bool_t xdr_am_post_op_attr (XDR *, am_post_op_attr*); +bool_t xdr_am_stable_how (XDR *, am_stable_how*); +bool_t xdr_am_offset3 (XDR *, am_offset3*); +bool_t xdr_am_count3 (XDR *, am_count3*); +bool_t xdr_am_wcc_attr (XDR *, am_wcc_attr*); +bool_t xdr_am_pre_op_attr (XDR *, am_pre_op_attr*); +bool_t xdr_am_wcc_data (XDR *, am_wcc_data*); +bool_t xdr_am_WRITE3args (XDR *, am_WRITE3args*); +bool_t xdr_am_writeverf3 (XDR *, am_writeverf3); +bool_t xdr_am_WRITE3resok (XDR *, am_WRITE3resok*); +bool_t xdr_am_WRITE3resfail (XDR *, am_WRITE3resfail*); +bool_t xdr_am_WRITE3res (XDR *, am_WRITE3res*); +bool_t xdr_am_LOOKUP3args (XDR *, am_LOOKUP3args*); +bool_t xdr_am_LOOKUP3resok (XDR *, am_LOOKUP3resok*); +bool_t xdr_am_LOOKUP3resfail (XDR *, am_LOOKUP3resfail*); +bool_t xdr_am_LOOKUP3res (XDR *, am_LOOKUP3res*); +bool_t xdr_am_COMMIT3args (XDR *, am_COMMIT3args*); +bool_t xdr_am_COMMIT3resok (XDR *, am_COMMIT3resok*); +bool_t xdr_am_COMMIT3resfail (XDR *, am_COMMIT3resfail*); +bool_t xdr_am_COMMIT3res (XDR *, am_COMMIT3res*); +bool_t xdr_am_ACCESS3args (XDR *, am_ACCESS3args*); +bool_t xdr_am_ACCESS3resok (XDR *, am_ACCESS3resok*); +bool_t xdr_am_ACCESS3resfail (XDR *, am_ACCESS3resfail*); +bool_t xdr_am_ACCESS3res (XDR *, am_ACCESS3res*); +bool_t xdr_am_GETATTR3args (XDR *, am_GETATTR3args*); +bool_t xdr_am_GETATTR3resok (XDR *, am_GETATTR3resok*); +bool_t xdr_am_GETATTR3res (XDR *, am_GETATTR3res*); +bool_t xdr_am_time_how (XDR *, am_time_how*); +bool_t xdr_am_set_mode3 (XDR *, am_set_mode3*); +bool_t xdr_am_set_uid3 (XDR *, am_set_uid3*); +bool_t xdr_am_set_gid3 (XDR *, am_set_gid3*); +bool_t xdr_am_set_size3 (XDR *, am_set_size3*); +bool_t xdr_am_set_atime (XDR *, am_set_atime*); +bool_t xdr_am_set_mtime (XDR *, am_set_mtime*); +bool_t xdr_am_sattr3 (XDR *, am_sattr3*); +bool_t xdr_am_createmode3 (XDR *, am_createmode3*); +bool_t xdr_am_createverf3 (XDR *, am_createverf3); +bool_t xdr_am_createhow3 (XDR *, am_createhow3*); +bool_t xdr_am_CREATE3args (XDR *, am_CREATE3args*); +bool_t xdr_am_post_op_fh3 (XDR *, am_post_op_fh3*); +bool_t xdr_am_CREATE3resok (XDR *, am_CREATE3resok*); +bool_t xdr_am_CREATE3resfail (XDR *, am_CREATE3resfail*); +bool_t xdr_am_CREATE3res (XDR *, am_CREATE3res*); +bool_t xdr_am_REMOVE3args (XDR *, am_REMOVE3args*); +bool_t xdr_am_REMOVE3resok (XDR *, am_REMOVE3resok*); +bool_t xdr_am_REMOVE3resfail (XDR *, am_REMOVE3resfail*); +bool_t xdr_am_REMOVE3res (XDR *, am_REMOVE3res*); +bool_t xdr_am_READ3args (XDR *, am_READ3args*); +bool_t xdr_am_READ3resok (XDR *, am_READ3resok*); +bool_t xdr_am_READ3resfail (XDR *, am_READ3resfail*); +bool_t xdr_am_READ3res (XDR *, am_READ3res*); +bool_t xdr_am_FSINFO3args (XDR *, am_FSINFO3args*); +bool_t xdr_am_FSINFO3resok (XDR *, am_FSINFO3resok*); +bool_t xdr_am_FSINFO3resfail (XDR *, am_FSINFO3resfail*); +bool_t xdr_am_FSINFO3res (XDR *, am_FSINFO3res*); +bool_t xdr_am_FSSTAT3args (XDR *, am_FSSTAT3args*); +bool_t xdr_am_FSSTAT3resok (XDR *, am_FSSTAT3resok*); +bool_t xdr_am_FSSTAT3resfail (XDR *, am_FSSTAT3resfail*); +bool_t xdr_am_FSSTAT3res (XDR *, am_FSSTAT3res*); +bool_t xdr_am_PATHCONF3args (XDR *, am_PATHCONF3args*); +bool_t xdr_am_PATHCONF3resok (XDR *, am_PATHCONF3resok*); +bool_t xdr_am_PATHCONF3resfail (XDR *, am_PATHCONF3resfail*); +bool_t xdr_am_PATHCONF3res (XDR *, am_PATHCONF3res*); +bool_t xdr_am_nfspath3 (XDR *, am_nfspath3*); +bool_t xdr_am_symlinkdata3 (XDR *, am_symlinkdata3*); +bool_t xdr_am_SYMLINK3args (XDR *, am_SYMLINK3args*); +bool_t xdr_am_SYMLINK3resok (XDR *, am_SYMLINK3resok*); +bool_t xdr_am_SYMLINK3resfail (XDR *, am_SYMLINK3resfail*); +bool_t xdr_am_SYMLINK3res (XDR *, am_SYMLINK3res*); +bool_t xdr_am_READLINK3args (XDR *, am_READLINK3args*); +bool_t xdr_am_READLINK3resok (XDR *, am_READLINK3resok*); +bool_t xdr_am_READLINK3resfail (XDR *, am_READLINK3resfail*); +bool_t xdr_am_READLINK3res (XDR *, am_READLINK3res*); +bool_t xdr_am_devicedata3 (XDR *, am_devicedata3*); +bool_t xdr_am_mknoddata3 (XDR *, am_mknoddata3*); +bool_t xdr_am_MKNOD3args (XDR *, am_MKNOD3args*); +bool_t xdr_am_MKNOD3resok (XDR *, am_MKNOD3resok*); +bool_t xdr_am_MKNOD3resfail (XDR *, am_MKNOD3resfail*); +bool_t xdr_am_MKNOD3res (XDR *, am_MKNOD3res*); +bool_t xdr_am_MKDIR3args (XDR *, am_MKDIR3args*); +bool_t xdr_am_MKDIR3resok (XDR *, am_MKDIR3resok*); +bool_t xdr_am_MKDIR3resfail (XDR *, am_MKDIR3resfail*); +bool_t xdr_am_MKDIR3res (XDR *, am_MKDIR3res*); +bool_t xdr_am_RMDIR3args (XDR *, am_RMDIR3args*); +bool_t xdr_am_RMDIR3resok (XDR *, am_RMDIR3resok*); +bool_t xdr_am_RMDIR3resfail (XDR *, am_RMDIR3resfail*); +bool_t xdr_am_RMDIR3res (XDR *, am_RMDIR3res*); +bool_t xdr_am_RENAME3args (XDR *, am_RENAME3args*); +bool_t xdr_am_RENAME3resok (XDR *, am_RENAME3resok*); +bool_t xdr_am_RENAME3resfail (XDR *, am_RENAME3resfail*); +bool_t xdr_am_RENAME3res (XDR *, am_RENAME3res*); +bool_t xdr_am_READDIRPLUS3args (XDR *, am_READDIRPLUS3args*); +bool_t xdr_am_entryplus3 (XDR *, am_entryplus3*); +bool_t xdr_am_dirlistplus3 (XDR *, am_dirlistplus3*); +bool_t xdr_am_READDIRPLUS3resok (XDR *, am_READDIRPLUS3resok*); +bool_t xdr_am_READDIRPLUS3resfail (XDR *, am_READDIRPLUS3resfail*); +bool_t xdr_am_READDIRPLUS3res (XDR *, am_READDIRPLUS3res*); +bool_t xdr_am_READDIR3args (XDR *, am_READDIR3args*); +bool_t xdr_am_entry3 (XDR *, am_entry3*); +bool_t xdr_am_dirlist3 (XDR *, am_dirlist3*); +bool_t xdr_am_READDIR3resok (XDR *, am_READDIR3resok*); +bool_t xdr_am_READDIR3resfail (XDR *, am_READDIR3resfail*); +bool_t xdr_am_READDIR3res (XDR *, am_READDIR3res*); +bool_t xdr_am_LINK3args (XDR *, am_LINK3args*); +bool_t xdr_am_LINK3resok (XDR *, am_LINK3resok*); +bool_t xdr_am_LINK3resfail (XDR *, am_LINK3resfail*); +bool_t xdr_am_LINK3res (XDR *, am_LINK3res*); +bool_t xdr_am_sattrguard3 (XDR *, am_sattrguard3*); +bool_t xdr_am_SETATTR3args (XDR *, am_SETATTR3args*); +bool_t xdr_am_SETATTR3resok (XDR *, am_SETATTR3resok*); +bool_t xdr_am_SETATTR3resfail (XDR *, am_SETATTR3resfail*); +bool_t xdr_am_SETATTR3res (XDR *, am_SETATTR3res*); #endif /* HAVE_FS_NFS3 */ #endif /* not _AM_XDR_FUNC_H */ diff --git a/contrib/amd/include/amq_defs.h b/contrib/amd/include/amq_defs.h index 75c4651..4db5133 100644 --- a/contrib/amd/include/amq_defs.h +++ b/contrib/amd/include/amq_defs.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -55,7 +51,7 @@ #define AMQ_VERSION ((u_long)1) #define AMQPROC_NULL ((u_long)0) #define AMQPROC_MNTTREE ((u_long)1) -#define AMQPROC_UMNT ((u_long)2) +#define AMQPROC_UMNT ((u_long)2) /* asynchronous unmount */ #define AMQPROC_STATS ((u_long)3) #define AMQPROC_EXPORT ((u_long)4) #define AMQPROC_SETOPT ((u_long)5) @@ -64,15 +60,19 @@ #define AMQPROC_GETVERS ((u_long)8) #define AMQPROC_GETPID ((u_long)9) #define AMQPROC_PAWD ((u_long)10) +#define AMQPROC_SYNC_UMNT ((u_long)11) /* synchronous unmount */ +#define AMQPROC_GETMAPINFO ((u_long)12) /* * TYPEDEFS */ -typedef long *time_type; +typedef time_t *time_type; typedef struct amq_mount_info amq_mount_info; +typedef struct amq_map_info amq_map_info; typedef struct amq_mount_stats amq_mount_stats; typedef struct amq_mount_tree amq_mount_tree; typedef struct amq_setopt amq_setopt; +typedef struct amq_sync_umnt amq_sync_umnt; typedef amq_mount_tree *amq_mount_tree_p; /* @@ -114,6 +114,22 @@ typedef struct { amq_mount_tree_p *amq_mount_tree_list_val; } amq_mount_tree_list; +struct amq_map_info { + amq_string mi_name; + amq_string mi_wildcard; + time_type mi_modify; + int mi_flags; + int mi_refc; + int mi_up; + int mi_reloads; + int mi_nentries; +}; + +typedef struct { + u_int amq_map_info_list_len; + amq_map_info *amq_map_info_list_val; +} amq_map_info_list; + struct amq_mount_stats { int as_drops; int as_stale; @@ -122,6 +138,21 @@ struct amq_mount_stats { int as_uerr; }; +typedef enum { + AMQ_UMNT_OK = 0, /* must be zero! */ + AMQ_UMNT_FAILED = 1, /* unmount failed */ + AMQ_UMNT_FORK = 2, /* fork failed */ + AMQ_UMNT_READ = 3, /* pipe read failed */ + AMQ_UMNT_SERVER = 4, /* server down */ + AMQ_UMNT_SIGNAL = 5 /* received signal */ +} au_etype; + +struct amq_sync_umnt { + au_etype au_etype; /* error type */ + int au_errno; /* error number */ + int au_signal; /* signal received */ +}; + enum amq_opt { AMOPT_DEBUG = 0, AMOPT_LOGFILE = 1, @@ -145,12 +176,15 @@ struct amq_setopt { */ extern bool_t xdr_amq_mount_info(XDR *xdrs, amq_mount_info *objp); extern bool_t xdr_amq_mount_info_list(XDR *xdrs, amq_mount_info_list *objp); +extern bool_t xdr_amq_map_info(XDR *xdrs, amq_map_info *objp); +extern bool_t xdr_amq_map_info_list(XDR *xdrs, amq_map_info_list *objp); extern bool_t xdr_amq_mount_stats(XDR *xdrs, amq_mount_stats *objp); extern bool_t xdr_amq_mount_tree(XDR *xdrs, amq_mount_tree *objp); extern bool_t xdr_amq_mount_tree_list(XDR *xdrs, amq_mount_tree_list *objp); extern bool_t xdr_amq_mount_tree_p(XDR *xdrs, amq_mount_tree_p *objp); extern bool_t xdr_amq_opt(XDR *xdrs, amq_opt *objp); extern bool_t xdr_amq_setopt(XDR *xdrs, amq_setopt *objp); +extern bool_t xdr_amq_sync_umnt(XDR *xdrs, amq_sync_umnt *objp); extern bool_t xdr_pri_free(XDRPROC_T_TYPE xdr_args, caddr_t args_ptr); extern bool_t xdr_time_type(XDR *xdrs, time_type *objp); diff --git a/contrib/amd/include/mount_headers1.h b/contrib/amd/include/mount_headers1.h index 41f26e5..7d518a0 100644 --- a/contrib/amd/include/mount_headers1.h +++ b/contrib/amd/include/mount_headers1.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -123,50 +119,50 @@ # include <sys/vmount.h> #endif /* HAVE_SYS_VMOUNT_H */ -/* - * There is no point in including this on a glibc2 system - * we're only asking for trouble - */ -#if defined HAVE_LINUX_FS_H && (!defined __GLIBC__ || __GLIBC__ < 2) +#if HAVE_LINUX_FS_H +# if !defined(__GLIBC__) || __GLIBC__ < 2 /* * There's a conflict of definitions on redhat alpha linux between * <netinet/in.h> and <linux/fs.h>. * Also a conflict in definitions of ntohl/htonl in RH-5.1 sparc64 * between <netinet/in.h> and <linux/byteorder/generic.h> (2.1 kernels). */ -# ifdef HAVE_SOCKETBITS_H -# define _LINUX_SOCKET_H -# undef BLKFLSBUF -# undef BLKGETSIZE -# undef BLKRAGET -# undef BLKRASET -# undef BLKROGET -# undef BLKROSET -# undef BLKRRPART -# undef MS_MGC_VAL -# undef MS_RMT_MASK -# endif /* HAVE_SOCKETBITS_H */ -# ifdef HAVE_LINUX_POSIX_TYPES_H -# include <linux/posix_types.h> -# endif /* HAVE_LINUX_POSIX_TYPES_H */ -# ifndef _LINUX_BYTEORDER_GENERIC_H -# define _LINUX_BYTEORDER_GENERIC_H -# endif /* _LINUX_BYTEORDER_GENERIC_H */ -# ifndef _LINUX_STRING_H_ -# define _LINUX_STRING_H_ -# endif /* not _LINUX_STRING_H_ */ -# ifdef HAVE_LINUX_KDEV_T_H -# define __KERNEL__ -# include <linux/kdev_t.h> -# undef __KERNEL__ -# endif /* HAVE_LINUX_KDEV_T_H */ -# ifdef HAVE_LINUX_LIST_H -# define __KERNEL__ -# include <linux/list.h> -# undef __KERNEL__ -# endif /* HAVE_LINUX_LIST_H */ -# include <linux/fs.h> -#endif /* HAVE_LINUX_FS_H && (!__GLIBC__ || __GLIBC__ < 2) */ +# ifdef HAVE_SOCKETBITS_H +# define _LINUX_SOCKET_H +# undef BLKFLSBUF +# undef BLKGETSIZE +# undef BLKRAGET +# undef BLKRASET +# undef BLKROGET +# undef BLKROSET +# undef BLKRRPART +# undef MS_MGC_VAL +# undef MS_RMT_MASK +# endif /* HAVE_SOCKETBITS_H */ +# ifdef HAVE_LINUX_POSIX_TYPES_H +# include <linux/posix_types.h> +# endif /* HAVE_LINUX_POSIX_TYPES_H */ +# ifndef _LINUX_BYTEORDER_GENERIC_H +# define _LINUX_BYTEORDER_GENERIC_H +# endif /* _LINUX_BYTEORDER_GENERIC_H */ +# ifndef _LINUX_STRING_H_ +# define _LINUX_STRING_H_ +# endif /* not _LINUX_STRING_H_ */ +# ifdef HAVE_LINUX_KDEV_T_H +# define __KERNEL__ +# include <linux/kdev_t.h> +# undef __KERNEL__ +# endif /* HAVE_LINUX_KDEV_T_H */ +# ifdef HAVE_LINUX_LIST_H +# define __KERNEL__ +# include <linux/list.h> +# undef __KERNEL__ +# endif /* HAVE_LINUX_LIST_H */ +# include <linux/fs.h> +# else +# include <linux/fs.h> +# endif/* (!__GLIBC__ || __GLIBC__ < 2) */ +#endif /* HAVE_LINUX_FS_H */ #ifdef HAVE_SYS_FS_TYPES_H # include <sys/fs_types.h> @@ -192,6 +188,10 @@ # include <isofs/cd9660/cd9660_mount.h> #endif /* HAVE_ISOFS_CD9660_CD9660_MOUNT_H */ +#ifdef HAVE_FS_UDF_UDF_MOUNT_H +# include <fs/udf/udf_mount.h> +#endif /* HAVE_FS_UDF_UDF_MOUNT_H */ + #ifdef HAVE_SYS_FS_PC_FS_H # include <sys/fs/pc_fs.h> #endif /* HAVE_SYS_FS_PC_FS_H */ @@ -202,6 +202,14 @@ # include <fs/msdosfs/msdosfsmount.h> #endif /* HAVE_FS_MSDOSFS_MSDOSFSMOUNT_H */ +#ifdef HAVE_FS_TMPFS_TMPFS_ARGS_H +# include <fs/tmpfs/tmpfs_args.h> +#endif /* HAVE_FS_TMPFS_TMPFS_ARGS_H */ + +#ifdef HAVE_FS_EFS_EFS_MOUNT_H +# include <fs/efs/efs_mount.h> +#endif /* HAVE_FS_EFS_EFS_MOUNT_H */ + #ifdef HAVE_RPC_RPC_H # include <rpc/rpc.h> #endif /* HAVE_RPC_RPC_H */ diff --git a/contrib/amd/include/mount_headers2.h b/contrib/amd/include/mount_headers2.h index 273e89c..87bf18e 100644 --- a/contrib/amd/include/mount_headers2.h +++ b/contrib/amd/include/mount_headers2.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/contrib/amd/include/nfs_common.h b/contrib/amd/include/nfs_common.h new file mode 100644 index 0000000..d89632b --- /dev/null +++ b/contrib/amd/include/nfs_common.h @@ -0,0 +1,99 @@ +/* + * Copyright (c) 2011 Christos Zoulas + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * + * File: am-utils/include/nfs_common.c + * + */ +struct nfs_common_args { + u_long flags; + u_long acdirmin; + u_long acdirmax; + u_long acregmin; + u_long acregmax; + u_long timeo; + u_long retrans; + u_long rsize; + u_long wsize; +}; + +#ifdef HAVE_NFS_ARGS_T_ACREGMIN +#define GET_ACREGMIN(nap, a) nap->acregmin = a.acregmin; +#define PUT_ACREGMIN(nap, a) a.acregmin = nap->acregmin; +#else +#define GET_ACREGMIN(nap, a) +#define PUT_ACREGMIN(nap, a) +#endif +#ifdef HAVE_NFS_ARGS_T_ACREGMAX +#define GET_ACREGMAX(nap, a) nap->acregmax = a.acregmax; +#define PUT_ACREGMAX(nap, a) a.acregmax = nap->acregmax; +#else +#define GET_ACREGMAX(nap, a) +#define PUT_ACREGMAX(nap, a) +#endif + +#ifdef HAVE_NFS_ARGS_T_ACDIRMIN +#define GET_ACDIRMIN(nap, a) nap->acdirmin = a.acdirmin; +#define PUT_ACDIRMIN(nap, a) a.acdirmin = nap->acdirmin; +#else +#define GET_ACDIRMIN(nap, a) +#define PUT_ACDIRMIN(nap, a) +#endif +#ifdef HAVE_NFS_ARGS_T_ACDIRMAX +#define GET_ACDIRMAX(nap, a) nap->acdirmax = a.acdirmax; +#define PUT_ACDIRMAX(nap, a) a.acdirmax = nap->acdirmax; +#else +#define GET_ACDIRMAX(nap, a) +#define PUT_ACDIRMAX(nap, a) +#endif + +#define get_nfs_common_args(nap, a) \ + do { \ + nap->flags = a.flags; \ + GET_ACREGMIN(nap, a) \ + GET_ACREGMAX(nap, a) \ + GET_ACDIRMIN(nap, a) \ + GET_ACDIRMAX(nap, a) \ + nap->timeo = a.timeo; \ + nap->retrans = a.retrans; \ + nap->rsize = a.rsize; \ + nap->wsize = a.wsize; \ + } while (/*CONSTCOND*/0) + +#define put_nfs_common_args(nap, a) \ + do { \ + a.flags = nap->flags; \ + PUT_ACREGMIN(nap, a) \ + PUT_ACREGMAX(nap, a) \ + PUT_ACDIRMIN(nap, a) \ + PUT_ACDIRMAX(nap, a) \ + a.timeo = nap->timeo; \ + a.retrans = nap->retrans; \ + a.rsize = nap->rsize; \ + a.wsize = nap->wsize; \ + } while (/*CONSTCOND*/0) diff --git a/contrib/amd/ldap-id.ms b/contrib/amd/ldap-id.ms index 3c0d308..77ff4ba 100644 --- a/contrib/amd/ldap-id.ms +++ b/contrib/amd/ldap-id.ms @@ -303,4 +303,4 @@ Stockholm University S-106 91 Stockholm SWEDEN -Email: leifj@matematik.su.se +Email: leifj AT matematik.su.se diff --git a/contrib/amd/ldap-id.txt b/contrib/amd/ldap-id.txt index 162f663..33a9187 100644 --- a/contrib/amd/ldap-id.txt +++ b/contrib/amd/ldap-id.txt @@ -333,7 +333,7 @@ Author's Address S-106 91 Stockholm SWEDEN - Email: leifj@matematik.su.se + Email: leifj AT matematik.su.se diff --git a/contrib/amd/libamu/amu.h b/contrib/amd/libamu/amu.h index 1e7834a..9415fc4 100644 --- a/contrib/amd/libamu/amu.h +++ b/contrib/amd/libamu/amu.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -47,11 +43,14 @@ /* * Decide what maximum level of NFS server to try and mount with. */ -#ifdef HAVE_FS_NFS3 +#if defined(HAVE_FS_NFS4) +# define NFS_VERS_MAX NFS_VERSION4 +#elif defined(HAVE_FS_NFS3) # define NFS_VERS_MAX NFS_VERSION3 #else /* not HAVE_FS_NFS3 */ # define NFS_VERS_MAX NFS_VERSION #endif /* not HAVE_FS_NFS3 */ +# define NFS_VERS_MIN NFS_VERSION /* some systems like ncr2 do not define this in <rpcsvc/mount.h> */ #ifndef MNTPATHLEN diff --git a/contrib/amd/libamu/hasmntopt.c b/contrib/amd/libamu/hasmntopt.c index 14cceb5..e5a6f2e 100644 --- a/contrib/amd/libamu/hasmntopt.c +++ b/contrib/amd/libamu/hasmntopt.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ n * modification, are permitted provided that the following conditions * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -67,7 +63,7 @@ nextmntopt(char **p) /* * Skip past white space */ - while (*cp && isspace((int) *cp)) + while (*cp && isspace((unsigned char) *cp)) cp++; /* @@ -106,7 +102,7 @@ amu_hasmntopt(mntent_t *mnt, char *opt) char t[MNTMAXSTR]; char *f; char *o = t; - int l = strlen(opt); + size_t l = strlen(opt); xstrlcpy(t, mnt->mnt_opts, sizeof(t)); diff --git a/contrib/amd/libamu/misc_rpc.c b/contrib/amd/libamu/misc_rpc.c index de0a920..c6ad448 100644 --- a/contrib/amd/libamu/misc_rpc.c +++ b/contrib/amd/libamu/misc_rpc.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/contrib/amd/libamu/mount_fs.c b/contrib/amd/libamu/mount_fs.c index 74f064e..b5576bd 100644 --- a/contrib/amd/libamu/mount_fs.c +++ b/contrib/amd/libamu/mount_fs.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -46,6 +42,7 @@ #endif /* HAVE_CONFIG_H */ #include <am_defs.h> #include <amu.h> +#include <nfs_common.h> /* ensure that mount table options are delimited by a comma */ @@ -105,6 +102,30 @@ struct opt_tab mnt_flags[] = {MNTTAB_OPT_OVERLAY, MNT2_GEN_OPT_OVERLAY}, #endif /* defined(MNT2_GEN_OPT_OVERLAY) && defined(MNTTAB_OPT_OVERLAY) */ +#if defined(MNT2_GEN_OPT_LOG) && defined(MNTTAB_OPT_LOG) + {MNTTAB_OPT_LOG, MNT2_GEN_OPT_LOG}, +#endif /* defined(MNT2_GEN_OPT_LOG) && defined(MNTTAB_OPT_LOG) */ + +#if defined(MNT2_GEN_OPT_NOATIME) && defined(MNTTAB_OPT_NOATIME) + {MNTTAB_OPT_NOATIME, MNT2_GEN_OPT_NOATIME}, +#endif /* defined(MNT2_GEN_OPT_NOATIME) && defined(MNTTAB_OPT_NOATIME) */ + +#if defined(MNT2_GEN_OPT_NODEVMTIME) && defined(MNTTAB_OPT_NODEVMTIME) + {MNTTAB_OPT_NODEVMTIME, MNT2_GEN_OPT_NODEVMTIME}, +#endif /* defined(MNT2_GEN_OPT_NODEVMTIME) && defined(MNTTAB_OPT_NODEVMTIME) */ + +#if defined(MNT2_GEN_OPT_SOFTDEP) && defined(MNTTAB_OPT_SOFTDEP) + {MNTTAB_OPT_SOFTDEP, MNT2_GEN_OPT_SOFTDEP}, +#endif /* defined(MNT2_GEN_OPT_SOFTDEP) && defined(MNTTAB_OPT_SOFTDEP) */ + +#if defined(MNT2_GEN_OPT_SYMPERM) && defined(MNTTAB_OPT_SYMPERM) + {MNTTAB_OPT_SYMPERM, MNT2_GEN_OPT_SYMPERM}, +#endif /* defined(MNT2_GEN_OPT_SYMPERM) && defined(MNTTAB_OPT_SYMPERM) */ + +#if defined(MNT2_GEN_OPT_UNION) && defined(MNTTAB_OPT_UNION) + {MNTTAB_OPT_UNION, MNT2_GEN_OPT_UNION}, +#endif /* defined(MNT2_GEN_OPT_UNION) && defined(MNTTAB_OPT_UNION) */ + /* * Do not define MNT2_NFS_OPT_* entries here! This is for generic * mount(2) options only, not for NFS mount options. If you need to put @@ -158,6 +179,25 @@ compute_automounter_mount_flags(mntent_t *mntp) } +#if defined(MOUNT_TABLE_ON_FILE) && defined(MNTTAB_OPT_VERS) +/* + * add the extra vers={2,3} field to the mount table, + * unless already specified by user + */ +static void +addvers(char *zopts, size_t l, mntent_t *mnt, u_long have_vers, + u_long want_vers) +{ + if (have_vers == want_vers && + hasmntval(mnt, MNTTAB_OPT_VERS) != want_vers) { + char optsbuf[48]; + xsnprintf(optsbuf, sizeof(optsbuf), + "%s=%d", MNTTAB_OPT_VERS, want_vers); + append_opts(zopts, l, optsbuf); + } +} +#endif /* MOUNT_TABLE_ON_FILE && MNTTAB_OPT_VERS */ + int mount_fs(mntent_t *mnt, int flags, caddr_t mnt_data, int retry, MTYPE_TYPE type, u_long nfs_version, const char *nfs_proto, const char *mnttabname, int on_autofs) { @@ -166,17 +206,17 @@ mount_fs(mntent_t *mnt, int flags, caddr_t mnt_data, int retry, MTYPE_TYPE type, char *zopts = NULL, *xopts = NULL; size_t l; #endif /* MOUNT_TABLE_ON_FILE */ - char *mnt_dir = 0; + char *mnt_dir = NULL; #ifdef NEED_AUTOFS_SPACE_HACK - char *old_mnt_dir = 0; + char *old_mnt_dir = NULL; /* perform space hack */ if (on_autofs) { old_mnt_dir = mnt->mnt_dir; mnt->mnt_dir = mnt_dir = autofs_strdup_space_hack(old_mnt_dir); } else #endif /* NEED_AUTOFS_SPACE_HACK */ - mnt_dir = strdup(mnt->mnt_dir); + mnt_dir = xstrdup(mnt->mnt_dir); dlog("'%s' fstype " MTYPE_PRINTF_TYPE " (%s) flags %#x (%s)", mnt_dir, type, mnt->mnt_type, flags, mnt->mnt_opts); @@ -256,19 +296,15 @@ again: } # endif /* MNTTAB_OPT_DEV */ +# if defined(HAVE_FS_NFS4) && defined(MNTTAB_OPT_VERS) + addvers(zopts, l, mnt, nfs_version, NFS_VERSION4); +# endif /* defined(HAVE_FS_NFS4) && defined(MNTTAB_OPT_VERS) */ # if defined(HAVE_FS_NFS3) && defined(MNTTAB_OPT_VERS) - /* - * add the extra vers={2,3} field to the mount table, - * unless already specified by user - */ - if (nfs_version == NFS_VERSION3 && - hasmntval(mnt, MNTTAB_OPT_VERS) != NFS_VERSION3) { - char optsbuf[48]; - xsnprintf(optsbuf, sizeof(optsbuf), - "%s=%d", MNTTAB_OPT_VERS, NFS_VERSION3); - append_opts(zopts, l, optsbuf); - } + addvers(zopts, l, mnt, nfs_version, NFS_VERSION3); # endif /* defined(HAVE_FS_NFS3) && defined(MNTTAB_OPT_VERS) */ +# ifdef MNTTAB_OPT_VERS + addvers(zopts, l, mnt, nfs_version, NFS_VERSION2); +# endif /* MNTTAB_OPT_VERS */ # ifdef MNTTAB_OPT_PROTO /* @@ -333,7 +369,7 @@ again: * with caution. */ static void -compute_nfs_attrcache_flags(nfs_args_t *nap, mntent_t *mntp) +compute_nfs_attrcache_flags(struct nfs_common_args *nap, mntent_t *mntp) { int acval = 0; int err_acval = 1; /* 1 means we found no 'actimeo' value */ @@ -365,7 +401,9 @@ compute_nfs_attrcache_flags(nfs_args_t *nap, mntent_t *mntp) nap->acregmin = acval; /* min ac timeout for reg files (sec) */ } else { # ifdef MNTTAB_OPT_ACREGMIN - err_acrdmm = hasmntvalerr(mntp, MNTTAB_OPT_ACREGMIN, (int *) &nap->acregmin); + int tmp; + err_acrdmm = hasmntvalerr(mntp, MNTTAB_OPT_ACREGMIN, &tmp); + nap->acregmin = tmp; # else /* not MNTTAB_OPT_ACREGMIN */ nap->acregmin = 0; # endif /* not MNTTAB_OPT_ACREGMIN */ @@ -384,7 +422,9 @@ compute_nfs_attrcache_flags(nfs_args_t *nap, mntent_t *mntp) nap->acregmax = acval; /* max ac timeout for reg files (sec) */ } else { # ifdef MNTTAB_OPT_ACREGMAX - err_acrdmm = hasmntvalerr(mntp, MNTTAB_OPT_ACREGMAX, (int *) &nap->acregmax); + int tmp; + err_acrdmm = hasmntvalerr(mntp, MNTTAB_OPT_ACREGMAX, &tmp); + nap->acregmax = tmp; # else /* not MNTTAB_OPT_ACREGMAX */ nap->acregmax = 0; # endif /* not MNTTAB_OPT_ACREGMAX */ @@ -403,7 +443,9 @@ compute_nfs_attrcache_flags(nfs_args_t *nap, mntent_t *mntp) nap->acdirmin = acval; /* min ac timeout for dirs (sec) */ } else { # ifdef MNTTAB_OPT_ACDIRMIN - err_acrdmm = hasmntvalerr(mntp, MNTTAB_OPT_ACDIRMIN, (int *) &nap->acdirmin); + int tmp; + err_acrdmm = hasmntvalerr(mntp, MNTTAB_OPT_ACDIRMIN, &tmp); + nap->acdirmin = tmp; # else /* not MNTTAB_OPT_ACDIRMIN */ nap->acdirmin = 0; # endif /* not MNTTAB_OPT_ACDIRMIN */ @@ -422,7 +464,9 @@ compute_nfs_attrcache_flags(nfs_args_t *nap, mntent_t *mntp) nap->acdirmax = acval; /* max ac timeout for dirs (sec) */ } else { # ifdef MNTTAB_OPT_ACDIRMAX - err_acrdmm = hasmntvalerr(mntp, MNTTAB_OPT_ACDIRMAX, (int *) &nap->acdirmax); + int tmp; + err_acrdmm = hasmntvalerr(mntp, MNTTAB_OPT_ACDIRMAX, &tmp); + nap->acdirmax = tmp; # else /* not MNTTAB_OPT_ACDIRMAX */ nap->acdirmax = 0; # endif /* not MNTTAB_OPT_ACDIRMAX */ @@ -443,148 +487,16 @@ compute_nfs_attrcache_flags(nfs_args_t *nap, mntent_t *mntp) } -/* - * Fill in the many possible fields and flags of struct nfs_args. - * - * nap: pre-allocated structure to fill in. - * mntp: mount entry structure (includes options) - * genflags: generic mount flags already determined - * nfsncp: (TLI only) netconfig entry for this NFS mount - * ip_addr: IP address of file server - * nfs_version: 2, 3, (4 in the future), or 0 if unknown - * nfs_proto: "udp", "tcp", or NULL. - * fhp: file handle structure pointer - * host_name: name of remote NFS host - * fs_name: remote file system name to mount - */ -void -compute_nfs_args(nfs_args_t *nap, - mntent_t *mntp, - int genflags, - struct netconfig *nfsncp, - struct sockaddr_in *ip_addr, - u_long nfs_version, - char *nfs_proto, - am_nfs_handle_t *fhp, - char *host_name, - char *fs_name) -{ - /* initialize just in case */ - memset((voidp) nap, 0, sizeof(nfs_args_t)); - - /* compute all of the NFS attribute-cache flags */ - compute_nfs_attrcache_flags(nap, mntp); - - /************************************************************************/ - /*** FILEHANDLE DATA AND LENGTH ***/ - /************************************************************************/ -#ifdef HAVE_FS_NFS3 - if (nfs_version == NFS_VERSION3) { -# if defined(HAVE_NFS_ARGS_T_FHSIZE) || defined(HAVE_NFS_ARGS_T_FH_LEN) - /* - * Some systems (Irix/bsdi3) have a separate field in nfs_args for - * the length of the file handle for NFS V3. They insist that - * the file handle set in nfs_args be plain bytes, and not - * include the length field. - */ - NFS_FH_DREF(nap->NFS_FH_FIELD, &fhp->v3.am_fh3_data); -# else /* not defined(HAVE_NFS_ARGS_T_FHSIZE) || defined(HAVE_NFS_ARGS_T_FH_LEN) */ - NFS_FH_DREF(nap->NFS_FH_FIELD, &fhp->v3); -# endif /* not defined(HAVE_NFS_ARGS_T_FHSIZE) || defined(HAVE_NFS_ARGS_T_FH_LEN) */ -# ifdef MNT2_NFS_OPT_NFSV3 - nap->flags |= MNT2_NFS_OPT_NFSV3; -# endif /* MNT2_NFS_OPT_NFSV3 */ -# ifdef MNT2_NFS_OPT_VER3 - nap->flags |= MNT2_NFS_OPT_VER3; -# endif /* MNT2_NFS_OPT_VER3 */ - } else -#endif /* HAVE_FS_NFS3 */ - NFS_FH_DREF(nap->NFS_FH_FIELD, &fhp->v2); - -#ifdef HAVE_NFS_ARGS_T_FHSIZE -# ifdef HAVE_FS_NFS3 - if (nfs_version == NFS_VERSION3) - nap->fhsize = fhp->v3.am_fh3_length; - else -# endif /* HAVE_FS_NFS3 */ - nap->fhsize = FHSIZE; -#endif /* HAVE_NFS_ARGS_T_FHSIZE */ - - /* this is the version of the nfs_args structure, not of NFS! */ -#ifdef HAVE_NFS_ARGS_T_FH_LEN -# ifdef HAVE_FS_NFS3 - if (nfs_version == NFS_VERSION3) - nap->fh_len = fhp->v3.am_fh3_length; - else -# endif /* HAVE_FS_NFS3 */ - nap->fh_len = FHSIZE; -#endif /* HAVE_NFS_ARGS_T_FH_LEN */ - /************************************************************************/ - /*** HOST NAME ***/ - /************************************************************************/ - /* - * XXX: warning, using xstrlcpy in NFS_HN_DREF, which may corrupt a - * struct nfs_args, or truncate our concocted "hostname:/path" - * string prematurely. - */ - NFS_HN_DREF(nap->hostname, host_name); -#ifdef MNT2_NFS_OPT_HOSTNAME - nap->flags |= MNT2_NFS_OPT_HOSTNAME; -#endif /* MNT2_NFS_OPT_HOSTNAME */ - - /************************************************************************/ - /*** IP ADDRESS OF REMOTE HOST ***/ - /************************************************************************/ - if (ip_addr) { -#ifdef HAVE_TRANSPORT_TYPE_TLI - nap->addr = ALLOC(struct netbuf); /* free()'ed at end of mount_nfs_fh() */ -#endif /* HAVE_TRANSPORT_TYPE_TLI */ - NFS_SA_DREF(nap, ip_addr); - } - - /************************************************************************/ - /*** NFS PROTOCOL (UDP, TCP) AND VERSION ***/ - /************************************************************************/ +static void +compute_nfs_common_args(struct nfs_common_args *nap, mntent_t *mntp, + const char *nfs_proto, u_long nfs_version) +{ #ifdef MNT2_NFS_OPT_TCP if (nfs_proto && STREQ(nfs_proto, "tcp")) nap->flags |= MNT2_NFS_OPT_TCP; #endif /* MNT2_NFS_OPT_TCP */ -#ifdef HAVE_NFS_ARGS_T_SOTYPE - /* bsdi3 uses this */ - if (nfs_proto) { - if (STREQ(nfs_proto, "tcp")) - nap->sotype = SOCK_STREAM; - else if (STREQ(nfs_proto, "udp")) - nap->sotype = SOCK_DGRAM; - } -#endif /* HAVE_NFS_ARGS_T_SOTYPE */ - -#ifdef HAVE_NFS_ARGS_T_PROTO - nap->proto = 0; /* bsdi3 sets this field to zero */ -# ifdef IPPROTO_TCP - if (nfs_proto) { - if (STREQ(nfs_proto, "tcp")) /* AIX 4.2.x needs this */ - nap->proto = IPPROTO_TCP; - else if (STREQ(nfs_proto, "udp")) - nap->proto = IPPROTO_UDP; - } -# endif /* IPPROTO_TCP */ -#endif /* HAVE_NFS_ARGS_T_SOTYPE */ - -#ifdef HAVE_NFS_ARGS_T_VERSION -# ifdef NFS_ARGSVERSION - nap->version = NFS_ARGSVERSION; /* BSDI 3.0 and OpenBSD 2.2 */ -# endif /* NFS_ARGSVERSION */ -# ifdef DG_MOUNT_NFS_VERSION - nap->version = DG_MOUNT_NFS_VERSION; /* dg-ux */ -# endif /* DG_MOUNT_NFS_VERSION */ -#endif /* HAVE_NFS_ARGS_VERSION */ - - /************************************************************************/ - /*** OTHER NFS SOCKET RELATED OPTIONS AND FLAGS ***/ - /************************************************************************/ #ifdef MNT2_NFS_OPT_NOCONN /* check if user specified to use unconnected or connected sockets */ if (amu_hasmntopt(mntp, MNTTAB_OPT_NOCONN) != NULL) @@ -624,28 +536,6 @@ compute_nfs_args(nfs_args_t *nap, # endif /* not MNTTAB_OPT_RESVPORT */ #endif /* MNT2_NFS_OPT_RESVPORT */ - /************************************************************************/ - /*** OTHER FLAGS AND OPTIONS ***/ - /************************************************************************/ - -#ifdef HAVE_TRANSPORT_TYPE_TLI - /* set up syncaddr field */ - nap->syncaddr = (struct netbuf *) NULL; - - /* set up knconf field */ - if (get_knetconfig(&nap->knconf, nfsncp, nfs_proto) < 0) { - plog(XLOG_FATAL, "cannot fill knetconfig structure for nfs_args"); - going_down(1); - } - /* update the flags field for knconf */ - nap->flags |= MNT2_NFS_OPT_KNCONF; -#endif /* HAVE_TRANSPORT_TYPE_TLI */ - -#ifdef MNT2_NFS_OPT_FSNAME - nap->fsname = fs_name; - nap->flags |= MNT2_NFS_OPT_FSNAME; -#endif /* MNT2_NFS_OPT_FSNAME */ - nap->rsize = hasmntval(mntp, MNTTAB_OPT_RSIZE); #ifdef MNT2_NFS_OPT_RSIZE if (nap->rsize) @@ -674,11 +564,6 @@ compute_nfs_args(nfs_args_t *nap, nap->flags |= MNT2_NFS_OPT_RETRANS; #endif /* MNT2_NFS_OPT_RETRANS */ -#ifdef MNT2_NFS_OPT_BIODS - if ((nap->biods = hasmntval(mntp, MNTTAB_OPT_BIODS))) - nap->flags |= MNT2_NFS_OPT_BIODS; -#endif /* MNT2_NFS_OPT_BIODS */ - #ifdef MNT2_NFS_OPT_SOFT if (amu_hasmntopt(mntp, MNTTAB_OPT_SOFT) != NULL) nap->flags |= MNT2_NFS_OPT_SOFT; @@ -687,7 +572,7 @@ compute_nfs_args(nfs_args_t *nap, #ifdef MNT2_NFS_OPT_SPONGY if (amu_hasmntopt(mntp, MNTTAB_OPT_SPONGY) != NULL) { nap->flags |= MNT2_NFS_OPT_SPONGY; - if (nap->flags & MNT2_NFS_OPT_SOFT) { + if (*flags & MNT2_NFS_OPT_SOFT) { plog(XLOG_USER, "Mount opts soft and spongy are incompatible - soft ignored"); nap->flags &= ~MNT2_NFS_OPT_SOFT; } @@ -720,6 +605,11 @@ compute_nfs_args(nfs_args_t *nap, # endif /* MNT2_NFS_OPT_NOINT */ #endif /* MNTTAB_OPT_INTR */ +#ifdef MNT2_NFS_OPT_NOACL + if (amu_hasmntopt(mntp, MNTTAB_OPT_NOACL) != NULL) + nap->flags |= MNT2_NFS_OPT_NOACL; +#endif /* MNT2_NFS_OPT_NOACL */ + #ifdef MNTTAB_OPT_NODEVS if (amu_hasmntopt(mntp, MNTTAB_OPT_NODEVS) != NULL) nap->flags |= MNT2_NFS_OPT_NODEVS; @@ -735,39 +625,17 @@ compute_nfs_args(nfs_args_t *nap, nap->flags |= MNT2_NFS_OPT_PRIVATE; #endif /* MNTTAB_OPT_PRIVATE */ -#ifdef MNTTAB_OPT_SYMTTL /* symlink cache time-to-live */ - if ((nap->symttl = hasmntval(mntp, MNTTAB_OPT_SYMTTL))) - nap->flags |= MNT2_NFS_OPT_SYMTTL; -#endif /* MNTTAB_OPT_SYMTTL */ - -#ifdef MNT2_NFS_OPT_PGTHRESH /* paging threshold */ - if ((nap->pg_thresh = hasmntval(mntp, MNTTAB_OPT_PGTHRESH))) - nap->flags |= MNT2_NFS_OPT_PGTHRESH; -#endif /* MNT2_NFS_OPT_PGTHRESH */ #if defined(MNT2_NFS_OPT_NOCTO) && defined(MNTTAB_OPT_NOCTO) if (amu_hasmntopt(mntp, MNTTAB_OPT_NOCTO) != NULL) nap->flags |= MNT2_NFS_OPT_NOCTO; #endif /* defined(MNT2_NFS_OPT_NOCTO) && defined(MNTTAB_OPT_NOCTO) */ -#if defined(MNT2_NFS_OPT_POSIX) && defined(MNTTAB_OPT_POSIX) - if (amu_hasmntopt(mntp, MNTTAB_OPT_POSIX) != NULL) { - nap->flags |= MNT2_NFS_OPT_POSIX; - nap->pathconf = NULL; - } -#endif /* MNT2_NFS_OPT_POSIX && MNTTAB_OPT_POSIX */ - #if defined(MNT2_NFS_OPT_PROPLIST) && defined(MNTTAB_OPT_PROPLIST) if (amu_hasmntopt(mntp, MNTTAB_OPT_PROPLIST) != NULL) nap->flags |= MNT2_NFS_OPT_PROPLIST; #endif /* defined(MNT2_NFS_OPT_PROPLIST) && defined(MNTTAB_OPT_PROPLIST) */ -#if defined(MNT2_NFS_OPT_MAXGRPS) && defined(MNTTAB_OPT_MAXGROUPS) - nap->maxgrouplist = hasmntval(mntp, MNTTAB_OPT_MAXGROUPS); - if (nap->maxgrouplist != 0) - nap->flags |= MNT2_NFS_OPT_MAXGRPS; -#endif /* defined(MNT2_NFS_OPT_MAXGRPS) && defined(MNTTAB_OPT_MAXGROUPS) */ - #if defined(MNT2_NFS_OPT_NONLM) && defined(MNTTAB_OPT_NOLOCK) if (amu_hasmntopt(mntp, MNTTAB_OPT_NOLOCK) != NULL) nap->flags |= MNT2_NFS_OPT_NONLM; @@ -777,77 +645,35 @@ compute_nfs_args(nfs_args_t *nap, if (amu_hasmntopt(mntp, MNTTAB_OPT_XLATECOOKIE) != NULL) nap->flags |= MNT2_NFS_OPT_XLATECOOKIE; #endif /* defined(MNT2_NFS_OPT_XLATECOOKIE) && defined(MNTTAB_OPT_XLATECOOKIE) */ - -#ifdef HAVE_NFS_ARGS_T_OPTSTR - nap->optstr = mntp->mnt_opts; -#endif /* HAVE_NFS_ARGS_T_OPTSTR */ - - /************************************************************************/ - /*** FINAL ACTIONS ***/ - /************************************************************************/ - -#ifdef HAVE_NFS_ARGS_T_GFS_FLAGS - /* Ultrix stores generic flags in nfs_args.gfs_flags. */ - nap->gfs_flags = genflags; -#endif /* HAVE_NFS_ARGS_T_FLAGS */ - - return; /* end of compute_nfs_args() function */ } - -/* - * Fill in special values for flags and fields of nfs_args, for an - * automounter NFS mount. - */ -void -compute_automounter_nfs_args(nfs_args_t *nap, mntent_t *mntp) +static void +print_nfs_common_args(const struct nfs_common_args *a) { -#ifdef MNT2_NFS_OPT_SYMTTL - /* - * Don't let the kernel cache symbolic links we generate, or else lookups - * will bypass amd and fail to remount stuff as needed. - */ - plog(XLOG_INFO, "turning on NFS option symttl and setting value to 0"); - nap->flags |= MNT2_NFS_OPT_SYMTTL; - nap->symttl = 0; -#endif /* MNT2_NFS_OPT_SYMTTL */ - - /* - * This completes the flags for the HIDE_MOUNT_TYPE code in the - * mount_amfs_toplvl() function in amd/amfs_toplvl.c. - * Some systems don't have a mount type, but a mount flag. - */ -#ifdef MNT2_NFS_OPT_AUTO - nap->flags |= MNT2_NFS_OPT_AUTO; -#endif /* MNT2_NFS_OPT_AUTO */ -#ifdef MNT2_NFS_OPT_IGNORE - nap->flags |= MNT2_NFS_OPT_IGNORE; -#endif /* MNT2_NFS_OPT_IGNORE */ -#ifdef MNT2_GEN_OPT_AUTOMNTFS - nap->flags |= MNT2_GEN_OPT_AUTOMNTFS; -#endif /* not MNT2_GEN_OPT_AUTOMNTFS */ + plog(XLOG_DEBUG, "NA->flags = 0x%lx", a->flags); -#ifdef MNT2_NFS_OPT_DUMBTIMR - /* - * Don't let the kernel start computing throughput of Amd. The numbers - * will be meaningless because of the way Amd does mount retries. - */ - plog(XLOG_INFO, "%s: disabling nfs congestion window", mntp->mnt_dir); - nap->flags |= MNT2_NFS_OPT_DUMBTIMR; -#endif /* MNT2_NFS_OPT_DUMBTIMR */ - - /* compute all of the NFS attribute-cache flags */ - compute_nfs_attrcache_flags(nap, mntp); + plog(XLOG_DEBUG, "NA->rsize = %lu", a->rsize); + plog(XLOG_DEBUG, "NA->wsize = %lu", a->wsize); + plog(XLOG_DEBUG, "NA->timeo = %lu", a->timeo); + plog(XLOG_DEBUG, "NA->retrans = %lu", a->retrans); - /* - * Provide a slight bit more security by requiring the kernel to use - * reserved ports. - */ -#ifdef MNT2_NFS_OPT_RESVPORT - nap->flags |= MNT2_NFS_OPT_RESVPORT; -#endif /* MNT2_NFS_OPT_RESVPORT */ +#ifdef HAVE_NFS_ARGS_T_ACREGMIN + plog(XLOG_DEBUG, "NA->acregmin = %lu", a->acregmin); + plog(XLOG_DEBUG, "NA->acregmax = %lu", a->acregmax); + plog(XLOG_DEBUG, "NA->acdirmin = %lu", a->acdirmin); + plog(XLOG_DEBUG, "NA->acdirmax = %lu", a->acdirmax); +#endif /* HAVE_NFS_ARGS_T_ACREGMIN */ } +static void +discard_nfs23_args(nfs_args_t *nap) +{ +#ifdef HAVE_TRANSPORT_TYPE_TLI + free_knetconfig(nap->knconf); + if (nap->addr) + XFREE(nap->addr); /* allocated in compute_nfs_args() */ +#endif /* HAVE_TRANSPORT_TYPE_TLI */ +} #ifdef DEBUG /* get string version (in hex) of identifier */ @@ -855,29 +681,48 @@ static char * get_hex_string(u_int len, const char *fhdata) { u_int i; - static char buf[128]; /* better not go over it! */ + static u_int xlen; + static char *buf; + static u_short *arr; char str[16]; - short int arr[64]; - if (!fhdata) + if (!fhdata || len == 0 || len > 10240) return NULL; + i = len * 4 + 1; + if (xlen < i) { + buf = xrealloc(buf, i); + arr = xrealloc(arr, len * sizeof(*arr)); + xlen = i; + } + buf[0] = '\0'; - memset(&arr[0], 0, (64 * sizeof(short int))); - memcpy(&arr[0], &fhdata[0], len); - for (i=0; i<len/sizeof(unsigned short int); i++) { + memset(arr, 0, len * sizeof(*arr)); + memcpy(arr, fhdata, len); + len /= sizeof(*arr); + for (i = 0; i < len; i++) { xsnprintf(str, sizeof(str), "%04x", ntohs(arr[i])); - xstrlcat(buf, str, sizeof(buf)); + xstrlcat(buf, str, xlen); } return buf; } +static void +print_nfs_sockaddr_in(const char *tag, const struct sockaddr_in *sap) +{ + char name[64]; + plog(XLOG_DEBUG, "NA->%s.sin_family = %d", tag, sap->sin_family); + plog(XLOG_DEBUG, "NA->%s.sin_port = %d", tag, ntohs(sap->sin_port)); + if (inet_ntop(AF_INET, &sap->sin_addr, name, sizeof(name)) == NULL) + return; + plog(XLOG_DEBUG, "NA->%s.sin_addr = \"%s\"", tag, name); +} /* * print a subset of fields from "struct nfs_args" that are otherwise * not being provided anywhere else. */ -void -print_nfs_args(const nfs_args_t *nap, u_long nfs_version) +static void +print_nfs23_args(const nfs_args_t *nap, u_long nfs_version) { int fhlen = 32; /* default: NFS V.2 file handle length is 32 */ #ifdef HAVE_TRANSPORT_TYPE_TLI @@ -886,6 +731,7 @@ print_nfs_args(const nfs_args_t *nap, u_long nfs_version) #else /* not HAVE_TRANSPORT_TYPE_TLI */ struct sockaddr_in *sap; #endif /* not HAVE_TRANSPORT_TYPE_TLI */ + struct nfs_common_args a; if (!nap) { plog(XLOG_DEBUG, "NULL nfs_args!"); @@ -919,17 +765,11 @@ print_nfs_args(const nfs_args_t *nap, u_long nfs_version) # else /* not NFS_ARGS_T_ADDR_IS_POINTER */ sap = (struct sockaddr_in *) &nap->addr; # endif /* not NFS_ARGS_T_ADDR_IS_POINTER */ - plog(XLOG_DEBUG, "NA->addr {sockaddr_in} (len=%d) = \"%s\"", - (int) sizeof(struct sockaddr_in), - get_hex_string(sizeof(struct sockaddr_in), (const char *)sap)); #ifdef HAVE_STRUCT_SOCKADDR_SA_LEN /* as per POSIX, sin_len need not be set (used internally by kernel) */ plog(XLOG_DEBUG, "NA->addr.sin_len = %d", sap->sin_len); #endif /* HAVE_STRUCT_SOCKADDR_SA_LEN */ - plog(XLOG_DEBUG, "NA->addr.sin_family = %d", sap->sin_family); - plog(XLOG_DEBUG, "NA->addr.sin_port = %d", sap->sin_port); - plog(XLOG_DEBUG, "NA->addr.sin_addr = \"%s\"", - get_hex_string(sizeof(struct in_addr), (const char *) &sap->sin_addr)); + print_nfs_sockaddr_in("addr", sap); #endif /* not HAVE_TRANSPORT_TYPE_TLI */ #ifdef HAVE_NFS_ARGS_T_ADDRLEN plog(XLOG_DEBUG, "NA->addrlen = %d", nap->addrlen); @@ -972,22 +812,13 @@ print_nfs_args(const nfs_args_t *nap, u_long nfs_version) plog(XLOG_DEBUG, "NA->version = %d", nap->version); #endif /* HAVE_NFS_ARGS_T_VERSION */ - plog(XLOG_DEBUG, "NA->flags = 0x%x", (int) nap->flags); + put_nfs_common_args(nap, a); + print_nfs_common_args(&a); - plog(XLOG_DEBUG, "NA->rsize = %d", (int) nap->rsize); - plog(XLOG_DEBUG, "NA->wsize = %d", (int) nap->wsize); #ifdef HAVE_NFS_ARGS_T_BSIZE plog(XLOG_DEBUG, "NA->bsize = %d", nap->bsize); #endif /* HAVE_NFS_ARGS_T_BSIZE */ - plog(XLOG_DEBUG, "NA->timeo = %d", (int) nap->timeo); - plog(XLOG_DEBUG, "NA->retrans = %d", (int) nap->retrans); -#ifdef HAVE_NFS_ARGS_T_ACREGMIN - plog(XLOG_DEBUG, "NA->acregmin = %d", (int) nap->acregmin); - plog(XLOG_DEBUG, "NA->acregmax = %d", (int) nap->acregmax); - plog(XLOG_DEBUG, "NA->acdirmin = %d", (int) nap->acdirmin); - plog(XLOG_DEBUG, "NA->acdirmax = %d", (int) nap->acdirmax); -#endif /* HAVE_NFS_ARGS_T_ACREGMIN */ #ifdef MNTTAB_OPT_SYMTTL plog(XLOG_DEBUG, "NA->symttl = %d", nap->symttl); #endif /* MNTTAB_OPT_SYMTTL */ @@ -1001,3 +832,665 @@ print_nfs_args(const nfs_args_t *nap, u_long nfs_version) } #endif /* DEBUG */ + +/* + * Fill in the many possible fields and flags of struct nfs_args. + * + * nap: pre-allocated structure to fill in. + * mntp: mount entry structure (includes options) + * genflags: generic mount flags already determined + * nfsncp: (TLI only) netconfig entry for this NFS mount + * ip_addr: IP address of file server + * nfs_version: 2, 3, or 0 if unknown + * nfs_proto: "udp", "tcp", or NULL. + * fhp: file handle structure pointer + * host_name: name of remote NFS host + * fs_name: remote file system name to mount + */ +static void +compute_nfs23_args(nfs_args_t *nap, + mntent_t *mntp, + int genflags, + struct netconfig *nfsncp, + struct sockaddr_in *ip_addr, + u_long nfs_version, + char *nfs_proto, + am_nfs_handle_t *fhp, + char *host_name, + char *fs_name) +{ + struct nfs_common_args a; + /* initialize just in case */ + memset((voidp) nap, 0, sizeof(nfs_args_t)); + + /* compute all of the NFS attribute-cache flags */ + memset(&a, 0, sizeof(a)); + compute_nfs_attrcache_flags(&a, mntp); + compute_nfs_common_args(&a, mntp, nfs_proto, nfs_version); + get_nfs_common_args(nap, a); + + /************************************************************************/ + /*** FILEHANDLE DATA AND LENGTH ***/ + /************************************************************************/ +#ifdef HAVE_FS_NFS3 + if (nfs_version == NFS_VERSION3) { + if (fhp == NULL) { + plog(XLOG_FATAL, "cannot pass NULL fh for NFSv%lu", nfs_version); + going_down(1); + return; + } + +# if defined(HAVE_NFS_ARGS_T_FHSIZE) || defined(HAVE_NFS_ARGS_T_FH_LEN) + /* + * Some systems (Irix/bsdi3) have a separate field in nfs_args for + * the length of the file handle for NFS V3. They insist that + * the file handle set in nfs_args be plain bytes, and not + * include the length field. + */ + NFS_FH_DREF(nap->NFS_FH_FIELD, &fhp->v3.am_fh3_data); +# else /* not defined(HAVE_NFS_ARGS_T_FHSIZE) || defined(HAVE_NFS_ARGS_T_FH_LEN) */ + NFS_FH_DREF(nap->NFS_FH_FIELD, &fhp->v3); +# endif /* not defined(HAVE_NFS_ARGS_T_FHSIZE) || defined(HAVE_NFS_ARGS_T_FH_LEN) */ +# ifdef MNT2_NFS_OPT_NFSV3 + nap->flags |= MNT2_NFS_OPT_NFSV3; +# endif /* MNT2_NFS_OPT_NFSV3 */ +# ifdef MNT2_NFS_OPT_VER3 + nap->flags |= MNT2_NFS_OPT_VER3; +# endif /* MNT2_NFS_OPT_VER3 */ + } else +#endif /* HAVE_FS_NFS3 */ + { + if (fhp == NULL) { + plog(XLOG_FATAL, "cannot pass NULL fh for NFSv%lu", nfs_version); + going_down(1); + return; + } + NFS_FH_DREF(nap->NFS_FH_FIELD, &fhp->v2); + } + +#ifdef HAVE_NFS_ARGS_T_FHSIZE +# ifdef HAVE_FS_NFS3 + if (nfs_version == NFS_VERSION3) + nap->fhsize = fhp->v3.am_fh3_length; + else +# endif /* HAVE_FS_NFS3 */ + nap->fhsize = FHSIZE; +#endif /* HAVE_NFS_ARGS_T_FHSIZE */ + + /* this is the version of the nfs_args structure, not of NFS! */ +#ifdef HAVE_NFS_ARGS_T_FH_LEN +# ifdef HAVE_FS_NFS3 + if (nfs_version == NFS_VERSION3) + nap->fh_len = fhp->v3.am_fh3_length; + else +# endif /* HAVE_FS_NFS3 */ + nap->fh_len = FHSIZE; +#endif /* HAVE_NFS_ARGS_T_FH_LEN */ + + /************************************************************************/ + /*** HOST NAME ***/ + /************************************************************************/ + /* + * XXX: warning, using xstrlcpy in NFS_HN_DREF, which may corrupt a + * struct nfs_args, or truncate our concocted "hostname:/path" + * string prematurely. + */ + NFS_HN_DREF(nap->hostname, host_name); +#ifdef MNT2_NFS_OPT_HOSTNAME + nap->flags |= MNT2_NFS_OPT_HOSTNAME; +#endif /* MNT2_NFS_OPT_HOSTNAME */ + + /************************************************************************/ + /*** IP ADDRESS OF REMOTE HOST ***/ + /************************************************************************/ + if (ip_addr) { +#ifdef HAVE_TRANSPORT_TYPE_TLI + nap->addr = ALLOC(struct netbuf); /* free()'ed at end of mount_nfs_fh() */ +#endif /* HAVE_TRANSPORT_TYPE_TLI */ + NFS_SA_DREF(nap, ip_addr); + } + + /************************************************************************/ + /*** NFS PROTOCOL (UDP, TCP) AND VERSION ***/ + /************************************************************************/ +#ifdef HAVE_NFS_ARGS_T_SOTYPE + /* bsdi3 uses this */ + if (nfs_proto) { + if (STREQ(nfs_proto, "tcp")) + nap->sotype = SOCK_STREAM; + else if (STREQ(nfs_proto, "udp")) + nap->sotype = SOCK_DGRAM; + } +#endif /* HAVE_NFS_ARGS_T_SOTYPE */ + +#ifdef HAVE_NFS_ARGS_T_PROTO + nap->proto = 0; /* bsdi3 sets this field to zero */ +# ifdef IPPROTO_TCP + if (nfs_proto) { + if (STREQ(nfs_proto, "tcp")) /* AIX 4.2.x needs this */ + nap->proto = IPPROTO_TCP; + else if (STREQ(nfs_proto, "udp")) + nap->proto = IPPROTO_UDP; + } +# endif /* IPPROTO_TCP */ +#endif /* HAVE_NFS_ARGS_T_SOTYPE */ + +#ifdef HAVE_NFS_ARGS_T_VERSION +# ifdef NFS_ARGSVERSION + nap->version = NFS_ARGSVERSION; /* BSDI 3.0 and OpenBSD 2.2 */ +# endif /* NFS_ARGSVERSION */ +# ifdef DG_MOUNT_NFS_VERSION + nap->version = DG_MOUNT_NFS_VERSION; /* dg-ux */ +# endif /* DG_MOUNT_NFS_VERSION */ +#endif /* HAVE_NFS_ARGS_VERSION */ + + /************************************************************************/ + /*** OTHER NFS SOCKET RELATED OPTIONS AND FLAGS ***/ + /************************************************************************/ + + /************************************************************************/ + /*** OTHER FLAGS AND OPTIONS ***/ + /************************************************************************/ + +#ifdef MNT2_NFS_OPT_BIODS + if ((nap->biods = hasmntval(mntp, MNTTAB_OPT_BIODS))) + nap->flags |= MNT2_NFS_OPT_BIODS; +#endif /* MNT2_NFS_OPT_BIODS */ + +#ifdef MNTTAB_OPT_SYMTTL /* symlink cache time-to-live */ + if ((nap->symttl = hasmntval(mntp, MNTTAB_OPT_SYMTTL))) + nap->args.flags |= MNT2_NFS_OPT_SYMTTL; +#endif /* MNTTAB_OPT_SYMTTL */ + +#ifdef MNT2_NFS_OPT_PGTHRESH /* paging threshold */ + if ((nap->pg_thresh = hasmntval(mntp, MNTTAB_OPT_PGTHRESH))) + nap->args.flags |= MNT2_NFS_OPT_PGTHRESH; +#endif /* MNT2_NFS_OPT_PGTHRESH */ + +#if defined(MNT2_NFS_OPT_POSIX) && defined(MNTTAB_OPT_POSIX) + if (amu_hasmntopt(mntp, MNTTAB_OPT_POSIX) != NULL) { + nap->flags |= MNT2_NFS_OPT_POSIX; +# ifdef HAVE_NFS_ARGS_T_PATHCONF + nap->pathconf = NULL; +# endif /* HAVE_NFS_ARGS_T_PATHCONF */ + } +#endif /* MNT2_NFS_OPT_POSIX && MNTTAB_OPT_POSIX */ + +#ifdef HAVE_TRANSPORT_TYPE_TLI + /* set up syncaddr field */ + nap->syncaddr = (struct netbuf *) NULL; + + /* set up knconf field */ + if (get_knetconfig(&nap->knconf, nfsncp, nfs_proto) < 0) { + plog(XLOG_FATAL, "cannot fill knetconfig structure for nfs_args"); + going_down(1); + return; + } + /* update the flags field for knconf */ + nap->args.flags |= MNT2_NFS_OPT_KNCONF; +#endif /* HAVE_TRANSPORT_TYPE_TLI */ + +#ifdef MNT2_NFS_OPT_FSNAME + nap->fsname = fs_name; + nap->args.flags |= MNT2_NFS_OPT_FSNAME; +#endif /* MNT2_NFS_OPT_FSNAME */ + + +#ifdef HAVE_NFS_ARGS_T_OPTSTR + nap->optstr = mntp->mnt_opts; +#endif /* HAVE_NFS_ARGS_T_OPTSTR */ + +#if defined(MNT2_NFS_OPT_MAXGRPS) && defined(MNTTAB_OPT_MAXGROUPS) + nap->maxgrouplist = hasmntval(mntp, MNTTAB_OPT_MAXGROUPS); + if (nap->maxgrouplist != 0) + nap->flags |= MNT2_NFS_OPT_MAXGRPS; +#endif /* defined(MNT2_NFS_OPT_MAXGRPS) && defined(MNTTAB_OPT_MAXGROUPS) */ + + /************************************************************************/ + /*** FINAL ACTIONS ***/ + /************************************************************************/ + +#ifdef HAVE_NFS_ARGS_T_GFS_FLAGS + /* Ultrix stores generic flags in nfs_args.gfs_flags. */ + nap->gfs_flags = genflags; +#endif /* HAVE_NFS_ARGS_T_FLAGS */ + + return; /* end of compute_nfs_args() function */ +} + +#ifdef HAVE_FS_NFS4 + +#define RPC_AUTH_GSS_KRB5 390003 +#define RPC_AUTH_GSS_KRB5I 390004 +#define RPC_AUTH_GSS_KRB5P 390005 +#define RPC_AUTH_GSS_LKEY 390006 +#define RPC_AUTH_GSS_LKEYI 390007 +#define RPC_AUTH_GSS_LKEYP 390008 +#define RPC_AUTH_GSS_SPKM 390009 +#define RPC_AUTH_GSS_SPKMI 390010 +#define RPC_AUTH_GSS_SPKMP 390011 + +struct { + const char *name; + int num; +} flavours[] = { + { "unix", AUTH_UNIX }, + { "krb5", RPC_AUTH_GSS_KRB5 }, + { "krb5i", RPC_AUTH_GSS_KRB5I }, + { "krb5p", RPC_AUTH_GSS_KRB5P }, + { "lkey", RPC_AUTH_GSS_LKEY }, + { "lkeyi", RPC_AUTH_GSS_LKEYI }, + { "lkeyp", RPC_AUTH_GSS_LKEYP }, + { "spkm", RPC_AUTH_GSS_SPKM }, + { "spkmi", RPC_AUTH_GSS_SPKMI }, + { "spkmp", RPC_AUTH_GSS_SPKMP }, +}; + +static char * +set_nfs4_security(nfs4_args_t *nap, mntent_t *mntp) +{ + const char *o = hasmnteq(mntp, MNTTAB_OPT_SEC); + char *q, *s, *ss; + size_t l, i; + + if (o == NULL) + o = "unix"; + + for (l = 1, q = strchr(o, ','); q; q = strchr(q + 1, ',')) + l++; + + nap->auth_flavours = xmalloc(l * sizeof(*nap->auth_flavours)); + + s = ss = xstrdup(o); + for (;;) { + q = strchr(s, ','); + if (q) + *q = '\0'; + + for (l = 0, i = 0; i < sizeof(flavours) / sizeof(flavours[0]); i++) + if (strcmp(flavours[i].name, s) == 0) { + nap->auth_flavours[l++] = flavours[i].num; + break; + } + + if (i == sizeof(flavours) / sizeof(flavours[0])) + plog(XLOG_ERROR, "Unknown NFSv4 security mechanism %s\n", s); + + if (q == NULL) + break; + + *q = ':'; + s = ++q; + } + + nap->auth_flavourlen = l; + return ss; +} + +static int +get_my_ipv4addr(struct nfs_string *ns) +{ + struct hostent *hp; + char myname[MAXHOSTNAMELEN]; + + if (gethostname(myname, sizeof(myname)) == -1) + return -1; + if ((hp = gethostbyname(myname)) == NULL) + return -1; + if (inet_ntop(AF_INET, hp->h_addr, myname, sizeof(myname)) == NULL) + return -1; + ns->len = strlen(myname); + ns->data = xmalloc(ns->len + 1); + memcpy(ns->data, myname, ns->len + 1); + return 0; +} + +static void +add_nfs4_mntopts(const nfs4_args_t *nap, mntent_t *mntp, char *sec) +{ + char *opts = mntp->mnt_opts; + char buf[1024], addr[128]; + size_t len = strlen(mntp->mnt_opts); + + if (inet_ntop(AF_INET, + &((const struct sockaddr_in *)nap->host_addr)->sin_addr, + addr, sizeof(addr)) == NULL) + return; + + xsnprintf(buf, sizeof(buf), ",clientaddr=%s,addr=%s", nap->client_addr.data, + addr); + + len += strlen(buf) + 1; + + if (sec && strcmp(sec, "unix") != 0) { + len += strlen(sec) + strlen(MNTTAB_OPT_SEC) + 2; /* 2 = ",=" */ + } else + sec = NULL; + + opts = xrealloc(mntp->mnt_opts, len); + xstrlcat(opts, buf, len); + + if (sec) { + xstrlcat(opts, ",", len); + xstrlcat(opts, MNTTAB_OPT_SEC, len); + xstrlcat(opts, "=", len); + xstrlcat(opts, sec, len); + } + + mntp->mnt_opts = opts; +} + +static void +print_nfs4_security(const nfs4_args_t *nap) +{ + char buf[1024]; + char num[64]; + size_t i, j; + + buf[0] = '\0'; + + for (i = 0; i < nap->auth_flavourlen; i++) { + + for (j = 0; j < sizeof(flavours) / sizeof(flavours[0]); j++) + if (flavours[j].num == nap->auth_flavours[i]) { + xstrlcpy(num, flavours[j].name, sizeof(num)); + break; + } + + if (j == sizeof(flavours) / sizeof(flavours[0])) { + plog(XLOG_ERROR, "Unknown NFSv4 security mechanism %d\n", + nap->auth_flavours[i]); + xsnprintf(num, sizeof(num), "*%d*", nap->auth_flavours[i]); + } + + if (buf[0]) + xstrlcat(buf, ":", sizeof(buf)); + + xstrlcat(buf, num, sizeof(buf)); + } + + plog(XLOG_DEBUG, "NA->auth_flavours \"%s\"\n", buf); +} + +static void +discard_nfs4_args(nfs4_args_t *nap) +{ + if (nap->client_addr.data) + free(nap->client_addr.data); + if (nap->hostname.data) + free(nap->hostname.data); + if (nap->mnt_path.data) + free(nap->mnt_path.data); + if (nap->host_addr) + free(nap->host_addr); + if (nap->auth_flavours) + free(nap->auth_flavours); +} + +/* + * Fill in the many possible fields and flags of struct nfs4_args. + * + * nap: pre-allocated structure to fill in. + * mntp: mount entry structure (includes options) + * genflags: generic mount flags already determined + * nfsncp: (TLI only) netconfig entry for this NFS mount + * ip_addr: IP address of file server + * nfs_version: 4, or 0 if unknown + * nfs_proto: "udp", "tcp", or NULL. + * fhp: file handle structure pointer + * host_name: name of remote NFS host + * fs_name: remote file system name to mount + */ +static void +compute_nfs4_args(nfs4_args_t *nap, + mntent_t *mntp, + int genflags, + struct netconfig *nfsncp, + struct sockaddr_in *ip_addr, + u_long nfs_version, + char *nfs_proto, + am_nfs_handle_t *fhp, + char *host_name, + char *fs_name) +{ + char *s; + struct nfs_common_args a; + uint16_t nfs_port; + + /* initialize just in case */ + memset((voidp) nap, 0, sizeof(nfs4_args_t)); + + /* compute all of the NFS attribute-cache flags */ + memset(&a, 0, sizeof(a)); + compute_nfs_attrcache_flags(&a, mntp); + compute_nfs_common_args(&a, mntp, nfs_proto, nfs_version); + get_nfs_common_args(nap, a); + + get_my_ipv4addr(&nap->client_addr); + + /************************************************************************/ + /*** HOST NAME ***/ + /************************************************************************/ + nap->hostname.len = strlen(host_name); + nap->hostname.data = xmalloc(nap->hostname.len + 1); + memcpy(nap->hostname.data, host_name, nap->hostname.len + 1); + + if ((s = strchr(fs_name, ':')) != NULL) + s++; + else + s = fs_name; + + nap->mnt_path.len = strlen(s); + nap->mnt_path.data = xmalloc(nap->mnt_path.len + 1); + memcpy(nap->mnt_path.data, s, nap->mnt_path.len + 1); + plog(XLOG_DEBUG, "dir name %s\n", nap->mnt_path.data); + + /************************************************************************/ + /*** IP ADDRESS OF REMOTE HOST ***/ + /************************************************************************/ + nap->host_addrlen = sizeof(*ip_addr); + nap->host_addr = xmalloc(nap->host_addrlen); + memcpy(nap->host_addr, ip_addr, nap->host_addrlen); + + nfs_port = hasmntval(mntp, MNTTAB_OPT_PORT); + if (nfs_port == 0) + nfs_port = htons(NFS_PORT); + else + nfs_port = htons(nfs_port); + + ((struct sockaddr_in *)nap->host_addr)->sin_port = nfs_port; + + nap->proto = 0; /* bsdi3 sets this field to zero */ + if (nfs_proto) { + if (STREQ(nfs_proto, "tcp")) /* AIX 4.2.x needs this */ + nap->proto = IPPROTO_TCP; + else if (STREQ(nfs_proto, "udp")) + nap->proto = IPPROTO_UDP; + } + + nap->version = NFS4_MOUNT_VERSION; /* BSDI 3.0 and OpenBSD 2.2 */ + + /************************************************************************/ + /*** OTHER NFS SOCKET RELATED OPTIONS AND FLAGS ***/ + /************************************************************************/ + + + /************************************************************************/ + /*** OTHER FLAGS AND OPTIONS ***/ + /************************************************************************/ + +#if defined(MNT2_NFS_OPT_POSIX) && defined(MNTTAB_OPT_POSIX) + if (amu_hasmntopt(mntp, MNTTAB_OPT_POSIX) != NULL) { + nap->args.flags |= MNT2_NFS_OPT_POSIX; +# ifdef HAVE_NFS_ARGS_T_PATHCONF + nap->pathconf = NULL; +# endif /* HAVE_NFS_ARGS_T_PATHCONF */ + } +#endif /* MNT2_NFS_OPT_POSIX && MNTTAB_OPT_POSIX */ + +#if defined(MNT2_NFS_OPT_MAXGRPS) && defined(MNTTAB_OPT_MAXGROUPS) + nap->maxgrouplist = hasmntval(mntp, MNTTAB_OPT_MAXGROUPS); + if (nap->maxgrouplist != 0) + nap->args.flags |= MNT2_NFS_OPT_MAXGRPS; +#endif /* defined(MNT2_NFS_OPT_MAXGRPS) && defined(MNTTAB_OPT_MAXGROUPS) */ + +#ifdef HAVE_NFS_ARGS_T_OPTSTR + nap->optstr = mntp->mnt_opts; +#endif /* HAVE_NFS_ARGS_T_OPTSTR */ + + /************************************************************************/ + /*** FINAL ACTIONS ***/ + /************************************************************************/ + +#ifdef HAVE_NFS_ARGS_T_GFS_FLAGS + /* Ultrix stores generic flags in nfs_args.gfs_flags. */ + nap->gfs_flags = genflags; +#endif /* HAVE_NFS_ARGS_T_FLAGS */ + + s = set_nfs4_security(nap, mntp); + + /* Add addresses to the mount options */ + add_nfs4_mntopts(nap, mntp, s); + + return; /* end of compute_nfs4_args() function */ +} + +#ifdef DEBUG +static void +print_nfs4_args(const nfs4_args_t *nap, u_long nfs_version) +{ + struct sockaddr_in *sap; + struct nfs_common_args a; + + if (!nap) { + plog(XLOG_DEBUG, "NULL nfs_args!"); + return; + } + + plog(XLOG_DEBUG, "NA->client_addr \"%s\"\n", nap->client_addr.data); + plog(XLOG_DEBUG, "NA->mnt_path = \"%s\"", nap->mnt_path.data); + plog(XLOG_DEBUG, "NA->hostname = \"%s\"", nap->hostname.data); + sap = (struct sockaddr_in *) nap->host_addr; + print_nfs_sockaddr_in("host_addr", sap); + plog(XLOG_DEBUG, "NA->proto = %d", (int) nap->proto); +#ifdef HAVE_NFS_ARGS_T_VERSION + plog(XLOG_DEBUG, "NA->version = %d", nap->version); +#endif /* HAVE_NFS_ARGS_T_VERSION */ + print_nfs4_security(nap); + + put_nfs_common_args(nap, a); + print_nfs_common_args(&a); +} +#endif +#endif /* HAVE_FS_NFS4 */ + +void +compute_nfs_args(void *nap, + mntent_t *mntp, + int genflags, + struct netconfig *nfsncp, + struct sockaddr_in *ip_addr, + u_long nfs_version, + char *nfs_proto, + am_nfs_handle_t *fhp, + char *host_name, + char *fs_name) +{ +#ifdef HAVE_FS_NFS4 + if (nfs_version == NFS_VERSION4) + compute_nfs4_args(nap, mntp, genflags, nfsncp, ip_addr, nfs_version, + nfs_proto, fhp, host_name, fs_name); + else +#endif /* HAVE_FS_NFS4 */ + compute_nfs23_args(nap, mntp, genflags, nfsncp, ip_addr, nfs_version, + nfs_proto, fhp, host_name, fs_name); +} + +void +discard_nfs_args(void *nap, u_long nfs_version) +{ +#ifdef HAVE_FS_NFS4 + if (nfs_version == NFS_VERSION4) + discard_nfs4_args(nap); + else +#endif /* HAVE_FS_NFS4 */ + discard_nfs23_args(nap); +} + +#ifdef DEBUG +void +print_nfs_args(const void *nap, u_long nfs_version) +{ +#ifdef HAVE_FS_NFS4 + if (nfs_version == NFS_VERSION4) + print_nfs4_args(nap, nfs_version); + else +#endif /* HAVE_FS_NFS4 */ + print_nfs23_args(nap, nfs_version); +} +#endif + + +/* + * Fill in special values for flags and fields of nfs_args, for an + * automounter NFS mount. + */ +void +compute_automounter_nfs_args(nfs_args_t *nap, mntent_t *mntp) +{ + struct nfs_common_args a; + +#ifdef MNT2_NFS_OPT_SYMTTL + /* + * Don't let the kernel cache symbolic links we generate, or else lookups + * will bypass amd and fail to remount stuff as needed. + */ + plog(XLOG_INFO, "turning on NFS option symttl and setting value to 0"); + nap->flags |= MNT2_NFS_OPT_SYMTTL; + nap->symttl = 0; +#endif /* MNT2_NFS_OPT_SYMTTL */ + + /* + * This completes the flags for the HIDE_MOUNT_TYPE code in the + * mount_amfs_toplvl() function in amd/amfs_toplvl.c. + * Some systems don't have a mount type, but a mount flag. + */ +#ifdef MNT2_NFS_OPT_AUTO + nap->flags |= MNT2_NFS_OPT_AUTO; +#endif /* MNT2_NFS_OPT_AUTO */ +#ifdef MNT2_NFS_OPT_IGNORE + nap->flags |= MNT2_NFS_OPT_IGNORE; +#endif /* MNT2_NFS_OPT_IGNORE */ +#ifdef MNT2_GEN_OPT_AUTOMNTFS + nap->flags |= MNT2_GEN_OPT_AUTOMNTFS; +#endif /* not MNT2_GEN_OPT_AUTOMNTFS */ + +#ifdef MNT2_NFS_OPT_DUMBTIMR + /* + * Don't let the kernel start computing throughput of Amd. The numbers + * will be meaningless because of the way Amd does mount retries. + */ + plog(XLOG_INFO, "%s: disabling nfs congestion window", mntp->mnt_dir); + nap->flags |= MNT2_NFS_OPT_DUMBTIMR; +#endif /* MNT2_NFS_OPT_DUMBTIMR */ + + /* compute all of the NFS attribute-cache flags */ + memset(&a, 0, sizeof(a)); + a.flags = nap->flags; + compute_nfs_attrcache_flags(&a, mntp); + get_nfs_common_args(nap, a); + + /* + * Provide a slight bit more security by requiring the kernel to use + * reserved ports. + */ +#ifdef MNT2_NFS_OPT_RESVPORT + nap->flags |= MNT2_NFS_OPT_RESVPORT; +#endif /* MNT2_NFS_OPT_RESVPORT */ +} + +int +nfs_valid_version(u_long v) +{ + return v >= NFS_VERS_MIN && v <= NFS_VERS_MAX; +} diff --git a/contrib/amd/libamu/mtab.c b/contrib/amd/libamu/mtab.c index 50ba994..ee603af 100644 --- a/contrib/amd/libamu/mtab.c +++ b/contrib/amd/libamu/mtab.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -233,9 +229,9 @@ hasmntstr(mntent_t *mnt, char *opt) char *endptr = strchr(eq, ','); - /* if saw no comma, return strdup'd string */ + /* if saw no comma, return xstrdup'd string */ if (!endptr) - return strdup(eq); + return xstrdup(eq); else { /* else we need to copy only the chars needed */ int len = endptr - eq; diff --git a/contrib/amd/libamu/nfs_prot_xdr.c b/contrib/amd/libamu/nfs_prot_xdr.c index df8a0b0..bfdc7b2 100644 --- a/contrib/amd/libamu/nfs_prot_xdr.c +++ b/contrib/amd/libamu/nfs_prot_xdr.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -56,3 +52,14 @@ xdr_amq_string(XDR *xdrs, amq_string *objp) } return (TRUE); } + + +bool_t +xdr_amq_sync_umnt(XDR *xdrs, amq_sync_umnt *objp) +{ + + if (!xdr_opaque(xdrs, (char *) objp, sizeof(*objp))) { + return (FALSE); + } + return (TRUE); +} diff --git a/contrib/amd/libamu/strerror.c b/contrib/amd/libamu/strerror.c index 49dd2fc..faf2916 100644 --- a/contrib/amd/libamu/strerror.c +++ b/contrib/amd/libamu/strerror.c @@ -1,6 +1,6 @@ /* - * Copyright (c) 2002-2006 Ion Badulescu - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 2002-2014 Ion Badulescu + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -17,11 +17,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/contrib/amd/libamu/strutil.c b/contrib/amd/libamu/strutil.c index 5a1e759..03a8e88 100644 --- a/contrib/amd/libamu/strutil.c +++ b/contrib/amd/libamu/strutil.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -268,3 +264,37 @@ xvsnprintf(char *str, size_t size, const char *format, va_list ap) return ret; } + +static size_t +vstrlen(const char *src, va_list ap) +{ + size_t len = strlen(src); + while ((src = va_arg(ap, const char *)) != NULL) + len += strlen(src); + return len; +} + +static void +vstrcpy(char *dst, const char *src, va_list ap) +{ + strcpy(dst, src); + while ((src = va_arg(ap, const char *)) != NULL) + strcat(dst, src); +} + +char * +strvcat(const char *src, ...) +{ + size_t len; + char *dst; + va_list ap; + + va_start(ap, src); + len = vstrlen(src, ap); + va_end(ap); + dst = xmalloc(len + 1); + va_start(ap, src); + vstrcpy(dst, src, ap); + va_end(ap); + return dst; +} diff --git a/contrib/amd/libamu/wire.c b/contrib/amd/libamu/wire.c index c1852cd..c9da0fe 100644 --- a/contrib/amd/libamu/wire.c +++ b/contrib/amd/libamu/wire.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -226,7 +222,7 @@ getwire_lookup(u_long address, u_long netmask, int ishost) } /* fill in network number (string) */ - al->ip_net_num = strdup(netNumberBuf); + al->ip_net_num = xstrdup(netNumberBuf); if (np != NULL) s = np->n_name; @@ -242,7 +238,7 @@ getwire_lookup(u_long address, u_long netmask, int ishost) } /* fill in network name (string) */ - al->ip_net_name = strdup(s); + al->ip_net_name = xstrdup(s); /* Let's be cautious here about buffer overflows -Ion */ if (strlen(s) > MAXHOSTNAMELEN) { al->ip_net_name[MAXHOSTNAMELEN] = '\0'; @@ -318,9 +314,14 @@ is_network_member(const char *net) if (STREQ(net, al->ip_net_name) || STREQ(net, al->ip_net_num)) return TRUE; } else { - char *netstr = strdup(net), *maskstr; + char *netstr = xstrdup(net), *maskstr; u_long netnum, masknum = 0; maskstr = strchr(netstr, '/'); + if (maskstr == NULL) { + plog(XLOG_ERROR, "%s: netstr %s does not have a `/'", __func__, netstr); + XFREE(netstr); + return FALSE; + } maskstr[0] = '\0'; /* null terminate netstr */ maskstr++; if (*maskstr == '\0') /* if empty string, make it NULL */ diff --git a/contrib/amd/libamu/xdr_func.c b/contrib/amd/libamu/xdr_func.c index 6bd0254..e437dd4 100644 --- a/contrib/amd/libamu/xdr_func.c +++ b/contrib/amd/libamu/xdr_func.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -951,7 +947,6 @@ xdr_am_mountres3_ok(XDR *xdrs, am_mountres3_ok *objp) return (TRUE); } - bool_t xdr_am_mountres3(XDR *xdrs, am_mountres3 *objp) { @@ -968,6 +963,78 @@ xdr_am_mountres3(XDR *xdrs, am_mountres3 *objp) return (TRUE); } +bool_t +xdr_am_cookieverf3(XDR *xdrs, am_cookieverf3 objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_cookieverf3:"); + + if (!xdr_opaque(xdrs, objp, AM_NFS3_COOKIEVERFSIZE)) + return FALSE; + return TRUE; +} + +#if 0 +/* In FreeBSD xdr_uint64() is defined in ../../../include/rpcsvc/nfs_prot.x */ +/* + * Not ideal, xdr_u_int64_t() is not defined in Linux glibc RPC + * but xdr_u_quad_t() is. But in libtirpc xdr_u_quad_t() is not + * defined and xdr_u_int64_t() is. So xdr_u_int64_t() is probably + * an expected standard xdr function so, if it isn't defined use + * an internal xdr_u_int64_t() that uses xdr_u_quad_t(). + */ +#ifndef HAVE_XDR_U_INT64_T +#define xdr_u_int64_t(xdrs, objp) xdr_u_quad_t(xdrs, objp) +#endif /* HAVE_XDR_U_INT64_T */ + +bool_t +xdr_uint64(XDR *xdrs, uint64 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_uint64:"); + + if (!xdr_u_int64_t(xdrs, objp)) + return FALSE; + return TRUE; +} +#endif + +bool_t +xdr_am_cookie3(XDR *xdrs, am_cookie3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_cookie3:"); + + if (!xdr_uint64(xdrs, objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_nfs_fh3(XDR *xdrs, am_nfs_fh3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_nfs_fh3:"); + + if (!xdr_u_int(xdrs, &objp->am_fh3_length)) + return (FALSE); + if (objp->am_fh3_length > AM_FHSIZE3) + return (FALSE); + if (!xdr_opaque(xdrs, objp->am_fh3_data, objp->am_fh3_length)) + return (FALSE); + return (TRUE); +} + +bool_t +xdr_am_nfsstat3(XDR *xdrs, am_nfsstat3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_nfsstat3:"); + + if (!xdr_enum(xdrs, (enum_t *)objp)) + return (FALSE); + return (TRUE); +} bool_t xdr_am_diropargs3(XDR *xdrs, am_diropargs3 *objp) @@ -982,7 +1049,6 @@ xdr_am_diropargs3(XDR *xdrs, am_diropargs3 *objp) return (TRUE); } - bool_t xdr_am_filename3(XDR *xdrs, am_filename3 *objp) { @@ -994,6 +1060,315 @@ xdr_am_filename3(XDR *xdrs, am_filename3 *objp) return (TRUE); } +bool_t +xdr_am_ftype3(XDR *xdrs, am_ftype3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_ftype3:"); + + if (!xdr_enum(xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_mode3(XDR *xdrs, am_mode3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_mode3:"); + + if (!xdr_u_int(xdrs, objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_uid3(XDR *xdrs, am_uid3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_uid3:"); + + if (!xdr_u_int(xdrs, objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_gid3(XDR *xdrs, am_gid3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_gid3:"); + + if (!xdr_u_int(xdrs, objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_size3(XDR *xdrs, am_size3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_size3:"); + + if (!xdr_uint64(xdrs, objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_fileid3(XDR *xdrs, am_fileid3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_fileid3:"); + + if (!xdr_uint64(xdrs, objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_specdata3(XDR *xdrs, am_specdata3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_specdata3:"); + + if (!xdr_u_int(xdrs, &objp->specdata1)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->specdata2)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_nfstime3(XDR *xdrs, am_nfstime3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_nfstime3:"); + + if (!xdr_u_int(xdrs, &objp->seconds)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->nseconds)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_fattr3(XDR *xdrs, am_fattr3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_fattr3:"); + + if (!xdr_am_ftype3(xdrs, &objp->type)) + return FALSE; + if (!xdr_am_mode3(xdrs, &objp->mode)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->nlink)) + return FALSE; + if (!xdr_am_uid3(xdrs, &objp->uid)) + return FALSE; + if (!xdr_am_gid3(xdrs, &objp->gid)) + return FALSE; + if (!xdr_am_size3(xdrs, &objp->size)) + return FALSE; + if (!xdr_am_size3(xdrs, &objp->used)) + return FALSE; + if (!xdr_am_specdata3(xdrs, &objp->rdev)) + return FALSE; + if (!xdr_uint64(xdrs, &objp->fsid)) + return FALSE; + if (!xdr_am_fileid3(xdrs, &objp->fileid)) + return FALSE; + if (!xdr_am_nfstime3(xdrs, &objp->atime)) + return FALSE; + if (!xdr_am_nfstime3(xdrs, &objp->mtime)) + return FALSE; + if (!xdr_am_nfstime3(xdrs, &objp->ctime)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_post_op_attr(XDR *xdrs, am_post_op_attr *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_post_op_attr:"); + + if (!xdr_bool(xdrs, &objp->attributes_follow)) + return FALSE; + switch (objp->attributes_follow) { + case TRUE: + if (!xdr_am_fattr3(xdrs, &objp->am_post_op_attr_u.attributes)) + return FALSE; + break; + case FALSE: + break; + default: + return FALSE; + } + return TRUE; +} + +bool_t +xdr_am_stable_how(XDR *xdrs, am_stable_how *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_stable_how:"); + + if (!xdr_enum(xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_offset3(XDR *xdrs, am_offset3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_offset3:"); + + if (!xdr_uint64(xdrs, objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_count3(XDR *xdrs, am_count3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_count3:"); + + if (!xdr_u_int(xdrs, objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_wcc_attr(XDR *xdrs, am_wcc_attr *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_wcc_attr:"); + + if (!xdr_am_size3(xdrs, &objp->size)) + return FALSE; + if (!xdr_am_nfstime3(xdrs, &objp->mtime)) + return FALSE; + if (!xdr_am_nfstime3(xdrs, &objp->ctime)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_pre_op_attr(XDR *xdrs, am_pre_op_attr *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, ":xdr_am_pre_op_attr"); + + if (!xdr_bool(xdrs, &objp->attributes_follow)) + return FALSE; + switch (objp->attributes_follow) { + case TRUE: + if (!xdr_am_wcc_attr(xdrs, &objp->am_pre_op_attr_u.attributes)) + return FALSE; + break; + case FALSE: + break; + default: + return FALSE; + } + return TRUE; +} + +bool_t +xdr_am_wcc_data(XDR *xdrs, am_wcc_data *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_wcc_data:"); + + if (!xdr_am_pre_op_attr(xdrs, &objp->before)) + return FALSE; + if (!xdr_am_post_op_attr(xdrs, &objp->after)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_WRITE3args(XDR *xdrs, am_WRITE3args *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_WRITE3args:"); + + if (!xdr_am_nfs_fh3(xdrs, &objp->file)) + return FALSE; + if (!xdr_am_offset3(xdrs, &objp->offset)) + return FALSE; + if (!xdr_am_count3(xdrs, &objp->count)) + return FALSE; + if (!xdr_am_stable_how(xdrs, &objp->stable)) + return FALSE; + if (!xdr_bytes(xdrs, (char **)&objp->data.data_val, + (u_int *) &objp->data.data_len, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_writeverf3(XDR *xdrs, am_writeverf3 objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_writeverf3:"); + + if (!xdr_opaque(xdrs, objp, AM_NFS3_WRITEVERFSIZE)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_WRITE3resok(XDR *xdrs, am_WRITE3resok *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_WRITE3resok:"); + + if (!xdr_am_wcc_data(xdrs, &objp->file_wcc)) + return FALSE; + if (!xdr_am_count3(xdrs, &objp->count)) + return FALSE; + if (!xdr_am_stable_how(xdrs, &objp->committed)) + return FALSE; + if (!xdr_am_writeverf3(xdrs, objp->verf)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_WRITE3resfail(XDR *xdrs, am_WRITE3resfail *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_WRITE3resfail:"); + + if (!xdr_am_wcc_data(xdrs, &objp->file_wcc)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_WRITE3res(XDR *xdrs, am_WRITE3res *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_WRITE3res:"); + + if (!xdr_am_nfsstat3(xdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case AM_NFS3_OK: + if (!xdr_am_WRITE3resok(xdrs, &objp->res_u.ok)) + return FALSE; + break; + default: + if (!xdr_am_WRITE3resfail(xdrs, &objp->res_u.fail)) + return FALSE; + break; + } + return TRUE; +} bool_t xdr_am_LOOKUP3args(XDR *xdrs, am_LOOKUP3args *objp) @@ -1006,7 +1381,6 @@ xdr_am_LOOKUP3args(XDR *xdrs, am_LOOKUP3args *objp) return (TRUE); } - bool_t xdr_am_LOOKUP3res(XDR *xdrs, am_LOOKUP3res *objp) { @@ -1028,25 +1402,17 @@ xdr_am_LOOKUP3res(XDR *xdrs, am_LOOKUP3res *objp) return (TRUE); } - bool_t xdr_am_LOOKUP3resfail(XDR *xdrs, am_LOOKUP3resfail *objp) { if (amuDebug(D_XDRTRACE)) plog(XLOG_DEBUG, "xdr_am_LOOKUP3resfail:"); - /* - * Don't xdr post_op_attr: amd doesn't need them, but they require many - * additional xdr functions. - */ -#if 0 - if (!xdr_post_op_attr(xdrs, &objp->dir_attributes)) + if (!xdr_am_post_op_attr(xdrs, &objp->dir_attributes)) return (FALSE); -#endif return (TRUE); } - bool_t xdr_am_LOOKUP3resok(XDR *xdrs, am_LOOKUP3resok *objp) { @@ -1055,44 +1421,1656 @@ xdr_am_LOOKUP3resok(XDR *xdrs, am_LOOKUP3resok *objp) if (!xdr_am_nfs_fh3(xdrs, &objp->object)) return (FALSE); - /* - * Don't xdr post_op_attr: amd doesn't need them, but they require many - * additional xdr functions. - */ -#if 0 - if (!xdr_post_op_attr(xdrs, &objp->obj_attributes)) + if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) return (FALSE); - if (!xdr_post_op_attr(xdrs, &objp->dir_attributes)) + if (!xdr_am_post_op_attr(xdrs, &objp->dir_attributes)) return (FALSE); -#endif return (TRUE); } +bool_t +xdr_am_COMMIT3args(XDR *xdrs, am_COMMIT3args *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_COMMIT3args:"); + + if (!xdr_am_nfs_fh3(xdrs, &objp->file)) + return FALSE; + if (!xdr_am_offset3(xdrs, &objp->offset)) + return FALSE; + if (!xdr_am_count3(xdrs, &objp->count)) + return FALSE; + return TRUE; +} bool_t -xdr_am_nfs_fh3(XDR *xdrs, am_nfs_fh3 *objp) +xdr_am_COMMIT3resok(XDR *xdrs, am_COMMIT3resok *objp) { if (amuDebug(D_XDRTRACE)) - plog(XLOG_DEBUG, "xdr_am_nfs_fh3:"); + plog(XLOG_DEBUG, "xdr_am_COMMIT3resok:"); - if (!xdr_u_int(xdrs, &objp->am_fh3_length)) - return (FALSE); - if (objp->am_fh3_length > AM_FHSIZE3) - return (FALSE); - if (!xdr_opaque(xdrs, objp->am_fh3_data, objp->am_fh3_length)) - return (FALSE); - return (TRUE); + if (!xdr_am_wcc_data(xdrs, &objp->file_wcc)) + return FALSE; + if (!xdr_am_writeverf3(xdrs, objp->verf)) + return FALSE; + return TRUE; } +bool_t +xdr_am_COMMIT3resfail(XDR *xdrs, am_COMMIT3resfail *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_COMMIT3resfail:"); + + if (!xdr_am_wcc_data(xdrs, &objp->file_wcc)) + return FALSE; + return TRUE; +} bool_t -xdr_am_nfsstat3(XDR *xdrs, am_nfsstat3 *objp) +xdr_am_COMMIT3res(XDR *xdrs, am_COMMIT3res *objp) { if (amuDebug(D_XDRTRACE)) - plog(XLOG_DEBUG, "xdr_am_nfsstat3:"); + plog(XLOG_DEBUG, "xdr_am_COMMIT3res:"); - if (!xdr_enum(xdrs, (enum_t *)objp)) - return (FALSE); - return (TRUE); + if (!xdr_am_nfsstat3(xdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case AM_NFS3_OK: + if (!xdr_am_COMMIT3resok(xdrs, &objp->res_u.ok)) + return FALSE; + break; + default: + if (!xdr_am_COMMIT3resfail(xdrs, &objp->res_u.fail)) + return FALSE; + break; + } + return TRUE; +} + +bool_t +xdr_am_ACCESS3args(XDR *xdrs, am_ACCESS3args *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_ACCESS3args:"); + + if (!xdr_am_nfs_fh3(xdrs, &objp->object)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->access)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_ACCESS3resok(XDR *xdrs, am_ACCESS3resok *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_ACCESS3resok:"); + + if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->access)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_ACCESS3resfail(XDR *xdrs, am_ACCESS3resfail *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_ACCESS3resfail:"); + + if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_ACCESS3res(XDR *xdrs, am_ACCESS3res *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_ACCESS3res:"); + + if (!xdr_am_nfsstat3(xdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case AM_NFS3_OK: + if (!xdr_am_ACCESS3resok(xdrs, &objp->res_u.ok)) + return FALSE; + break; + default: + if (!xdr_am_ACCESS3resfail(xdrs, &objp->res_u.fail)) + return FALSE; + break; + } + return TRUE; +} + +bool_t +xdr_am_GETATTR3args(XDR *xdrs, am_GETATTR3args *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_GETATTR3args:"); + + if (!xdr_am_nfs_fh3(xdrs, &objp->object)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_GETATTR3resok(XDR *xdrs, am_GETATTR3resok *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_GETATTR3resok:"); + + if (!xdr_am_fattr3(xdrs, &objp->obj_attributes)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_GETATTR3res(XDR *xdrs, am_GETATTR3res *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_GETATTR3res:"); + + if (!xdr_am_nfsstat3(xdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case AM_NFS3_OK: + if (!xdr_am_GETATTR3resok(xdrs, &objp->res_u.ok)) + return FALSE; + break; + default: + break; + } + return TRUE; +} + +bool_t +xdr_am_time_how(XDR *xdrs, am_time_how *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_time_how:"); + + if (!xdr_enum(xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_set_mode3(XDR *xdrs, am_set_mode3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_set_mode3:"); + + if (!xdr_bool(xdrs, &objp->set_it)) + return FALSE; + switch (objp->set_it) { + case TRUE: + if (!xdr_am_mode3(xdrs, &objp->am_set_mode3_u.mode)) + return FALSE; + break; + default: + break; + } + return TRUE; +} + +bool_t +xdr_am_set_uid3(XDR *xdrs, am_set_uid3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_set_uid3:"); + + if (!xdr_bool(xdrs, &objp->set_it)) + return FALSE; + switch (objp->set_it) { + case TRUE: + if (!xdr_am_uid3(xdrs, &objp->am_set_uid3_u.uid)) + return FALSE; + break; + default: + break; + } + return TRUE; +} + +bool_t +xdr_am_set_gid3(XDR *xdrs, am_set_gid3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_set_gid3:"); + + if (!xdr_bool(xdrs, &objp->set_it)) + return FALSE; + switch (objp->set_it) { + case TRUE: + if (!xdr_am_gid3(xdrs, &objp->am_set_gid3_u.gid)) + return FALSE; + break; + default: + break; + } + return TRUE; +} + +bool_t +xdr_am_set_size3(XDR *xdrs, am_set_size3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_set_size3:"); + + if (!xdr_bool(xdrs, &objp->set_it)) + return FALSE; + switch (objp->set_it) { + case TRUE: + if (!xdr_am_size3(xdrs, &objp->am_set_size3_u.size)) + return FALSE; + break; + default: + break; + } + return TRUE; +} + +bool_t +xdr_am_set_atime(XDR *xdrs, am_set_atime *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_set_atime:"); + + if (!xdr_am_time_how(xdrs, &objp->set_it)) + return FALSE; + switch (objp->set_it) { + case AM_SET_TO_CLIENT_TIME: + if (!xdr_am_nfstime3(xdrs, &objp->am_set_atime_u.atime)) + return FALSE; + break; + default: + break; + } + return TRUE; +} + +bool_t +xdr_am_set_mtime(XDR *xdrs, am_set_mtime *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_set_mtime:"); + + if (!xdr_am_time_how(xdrs, &objp->set_it)) + return FALSE; + switch (objp->set_it) { + case AM_SET_TO_CLIENT_TIME: + if (!xdr_am_nfstime3(xdrs, &objp->am_set_mtime_u.mtime)) + return FALSE; + break; + default: + break; + } + return TRUE; +} + +bool_t +xdr_am_sattr3(XDR *xdrs, am_sattr3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_sattr3:"); + + if (!xdr_am_set_mode3(xdrs, &objp->mode)) + return FALSE; + if (!xdr_am_set_uid3(xdrs, &objp->uid)) + return FALSE; + if (!xdr_am_set_gid3(xdrs, &objp->gid)) + return FALSE; + if (!xdr_am_set_size3(xdrs, &objp->size)) + return FALSE; + if (!xdr_am_set_atime(xdrs, &objp->atime)) + return FALSE; + if (!xdr_am_set_mtime(xdrs, &objp->mtime)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_createmode3(XDR *xdrs, am_createmode3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_createmode3:"); + + if (!xdr_enum(xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_createverf3(XDR *xdrs, am_createverf3 objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_createverf3:"); + + if (!xdr_opaque(xdrs, objp, AM_NFS3_CREATEVERFSIZE)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_createhow3(XDR *xdrs, am_createhow3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_createhow3:"); + + if (!xdr_am_createmode3(xdrs, &objp->mode)) + return FALSE; + switch (objp->mode) { + case AM_UNCHECKED: + if (!xdr_am_sattr3(xdrs, &objp->am_createhow3_u.obj_attributes)) + return FALSE; + break; + case AM_GUARDED: + if (!xdr_am_sattr3(xdrs, &objp->am_createhow3_u.g_obj_attributes)) + return FALSE; + break; + case AM_EXCLUSIVE: + if (!xdr_am_createverf3(xdrs, objp->am_createhow3_u.verf)) + return FALSE; + break; + default: + return FALSE; + } + return TRUE; +} + +bool_t +xdr_am_CREATE3args(XDR *xdrs, am_CREATE3args *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_CREATE3args:"); + + if (!xdr_am_diropargs3(xdrs, &objp->where)) + return FALSE; + if (!xdr_am_createhow3(xdrs, &objp->how)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_post_op_fh3(XDR *xdrs, am_post_op_fh3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_post_op_fh3:"); + + if (!xdr_bool(xdrs, &objp->handle_follows)) + return FALSE; + switch (objp->handle_follows) { + case TRUE: + if (!xdr_am_nfs_fh3(xdrs, &objp->am_post_op_fh3_u.handle)) + return FALSE; + break; + case FALSE: + break; + default: + return FALSE; + } + return TRUE; +} + +bool_t +xdr_am_CREATE3resok(XDR *xdrs, am_CREATE3resok *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_CREATE3resok:"); + + if (!xdr_am_post_op_fh3(xdrs, &objp->obj)) + return FALSE; + if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) + return FALSE; + if (!xdr_am_wcc_data(xdrs, &objp->dir_wcc)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_CREATE3resfail(XDR *xdrs, am_CREATE3resfail *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_CREATE3resfail:"); + + if (!xdr_am_wcc_data(xdrs, &objp->dir_wcc)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_CREATE3res(XDR *xdrs, am_CREATE3res *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_CREATE3res:"); + + if (!xdr_am_nfsstat3(xdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case AM_NFS3_OK: + if (!xdr_am_CREATE3resok(xdrs, &objp->res_u.ok)) + return FALSE; + break; + default: + if (!xdr_am_CREATE3resfail(xdrs, &objp->res_u.fail)) + return FALSE; + break; + } + return TRUE; +} + +bool_t +xdr_am_REMOVE3args(XDR *xdrs, am_REMOVE3args *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_REMOVE3args:"); + + if (!xdr_am_diropargs3(xdrs, &objp->object)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_REMOVE3resok(XDR *xdrs, am_REMOVE3resok *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_REMOVE3resok:"); + + if (!xdr_am_wcc_data(xdrs, &objp->dir_wcc)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_REMOVE3resfail(XDR *xdrs, am_REMOVE3resfail *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_REMOVE3resfail:"); + + if (!xdr_am_wcc_data(xdrs, &objp->dir_wcc)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_REMOVE3res(XDR *xdrs, am_REMOVE3res *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_REMOVE3res:"); + + if (!xdr_am_nfsstat3(xdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case AM_NFS3_OK: + if (!xdr_am_REMOVE3resok(xdrs, &objp->res_u.ok)) + return FALSE; + break; + default: + if (!xdr_am_REMOVE3resfail(xdrs, &objp->res_u.fail)) + return FALSE; + break; + } + return TRUE; +} + +bool_t +xdr_am_READ3args(XDR *xdrs, am_READ3args *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_READ3args:"); + + if (!xdr_am_nfs_fh3(xdrs, &objp->file)) + return FALSE; + if (!xdr_am_offset3(xdrs, &objp->offset)) + return FALSE; + if (!xdr_am_count3(xdrs, &objp->count)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_READ3resok(XDR *xdrs, am_READ3resok *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_READ3resok:"); + + if (!xdr_am_post_op_attr(xdrs, &objp->file_attributes)) + return FALSE; + if (!xdr_am_count3(xdrs, &objp->count)) + return FALSE; + if (!xdr_bool(xdrs, &objp->eof)) + return FALSE; + if (!xdr_bytes(xdrs, (char **)&objp->data.data_val, (u_int *) &objp->data.data_len, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_READ3resfail(XDR *xdrs, am_READ3resfail *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_READ3resfail:"); + + if (!xdr_am_post_op_attr(xdrs, &objp->file_attributes)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_READ3res(XDR *xdrs, am_READ3res *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_READ3res:"); + + if (!xdr_am_nfsstat3(xdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case AM_NFS3_OK: + if (!xdr_am_READ3resok(xdrs, &objp->res_u.ok)) + return FALSE; + break; + default: + if (!xdr_am_READ3resfail(xdrs, &objp->res_u.fail)) + return FALSE; + break; + } + return TRUE; +} + +bool_t +xdr_am_FSINFO3args(XDR *xdrs, am_FSINFO3args *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_FSINFO3args:"); + + if (!xdr_am_nfs_fh3(xdrs, &objp->fsroot)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_FSINFO3resok(XDR *xdrs, am_FSINFO3resok *objp) +{ + register int32_t *buf; + + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_FSINFO3resok:"); + + if (xdrs->x_op == XDR_ENCODE) { + if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) + return FALSE; + buf = XDR_INLINE(xdrs, 7 * BYTES_PER_XDR_UNIT); + if (buf == NULL) { + if (!xdr_u_int(xdrs, &objp->rtmax)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->rtpref)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->rtmult)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->wtmax)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->wtpref)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->wtmult)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->dtpref)) + return FALSE; + } else { + IXDR_PUT_U_LONG(buf, objp->rtmax); + IXDR_PUT_U_LONG(buf, objp->rtpref); + IXDR_PUT_U_LONG(buf, objp->rtmult); + IXDR_PUT_U_LONG(buf, objp->wtmax); + IXDR_PUT_U_LONG(buf, objp->wtpref); + IXDR_PUT_U_LONG(buf, objp->wtmult); + IXDR_PUT_U_LONG(buf, objp->dtpref); + } + if (!xdr_am_size3(xdrs, &objp->maxfilesize)) + return FALSE; + if (!xdr_am_nfstime3(xdrs, &objp->time_delta)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->properties)) + return FALSE; + return TRUE; + } else if (xdrs->x_op == XDR_DECODE) { + if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) + return FALSE; + buf = XDR_INLINE(xdrs, 7 * BYTES_PER_XDR_UNIT); + if (buf == NULL) { + if (!xdr_u_int (xdrs, &objp->rtmax)) + return FALSE; + if (!xdr_u_int (xdrs, &objp->rtpref)) + return FALSE; + if (!xdr_u_int (xdrs, &objp->rtmult)) + return FALSE; + if (!xdr_u_int (xdrs, &objp->wtmax)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->wtpref)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->wtmult)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->dtpref)) + return FALSE; + } else { + objp->rtmax = IXDR_GET_U_LONG(buf); + objp->rtpref = IXDR_GET_U_LONG(buf); + objp->rtmult = IXDR_GET_U_LONG(buf); + objp->wtmax = IXDR_GET_U_LONG(buf); + objp->wtpref = IXDR_GET_U_LONG(buf); + objp->wtmult = IXDR_GET_U_LONG(buf); + objp->dtpref = IXDR_GET_U_LONG(buf); + } + if (!xdr_am_size3(xdrs, &objp->maxfilesize)) + return FALSE; + if (!xdr_am_nfstime3(xdrs, &objp->time_delta)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->properties)) + return FALSE; + return TRUE; + } + + if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->rtmax)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->rtpref)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->rtmult)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->wtmax)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->wtpref)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->wtmult)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->dtpref)) + return FALSE; + if (!xdr_am_size3(xdrs, &objp->maxfilesize)) + return FALSE; + if (!xdr_am_nfstime3(xdrs, &objp->time_delta)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->properties)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_FSINFO3resfail(XDR *xdrs, am_FSINFO3resfail *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_FSINFO3resfail:"); + + if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_FSINFO3res(XDR *xdrs, am_FSINFO3res *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_FSINFO3res:"); + + if (!xdr_am_nfsstat3(xdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case AM_NFS3_OK: + if (!xdr_am_FSINFO3resok(xdrs, &objp->res_u.ok)) + return FALSE; + break; + default: + if (!xdr_am_FSINFO3resfail(xdrs, &objp->res_u.fail)) + return FALSE; + break; + } + return TRUE; +} + +bool_t +xdr_am_FSSTAT3args(XDR *xdrs, am_FSSTAT3args *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_FSSTAT3args:"); + + if (!xdr_am_nfs_fh3(xdrs, &objp->fsroot)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_FSSTAT3resok(XDR *xdrs, am_FSSTAT3resok *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_FSSTAT3resok:"); + + if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) + return FALSE; + if (!xdr_am_size3(xdrs, &objp->tbytes)) + return FALSE; + if (!xdr_am_size3(xdrs, &objp->fbytes)) + return FALSE; + if (!xdr_am_size3(xdrs, &objp->abytes)) + return FALSE; + if (!xdr_am_size3(xdrs, &objp->tfiles)) + return FALSE; + if (!xdr_am_size3(xdrs, &objp->ffiles)) + return FALSE; + if (!xdr_am_size3(xdrs, &objp->afiles)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->invarsec)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_FSSTAT3resfail(XDR *xdrs, am_FSSTAT3resfail *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_FSSTAT3resfail:"); + + if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_FSSTAT3res(XDR *xdrs, am_FSSTAT3res *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_FSSTAT3res:"); + + if (!xdr_am_nfsstat3(xdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case AM_NFS3_OK: + if (!xdr_am_FSSTAT3resok(xdrs, &objp->res_u.ok)) + return FALSE; + break; + default: + if (!xdr_am_FSSTAT3resfail(xdrs, &objp->res_u.fail)) + return FALSE; + break; + } + return TRUE; +} + +bool_t +xdr_am_PATHCONF3args(XDR *xdrs, am_PATHCONF3args *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_PATHCONF3args:"); + + if (!xdr_am_nfs_fh3(xdrs, &objp->object)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_PATHCONF3resok(XDR *xdrs, am_PATHCONF3resok *objp) +{ + register int32_t *buf; + + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_PATHCONF3resok:"); + + if (xdrs->x_op == XDR_ENCODE) { + if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) + return FALSE; + buf = XDR_INLINE(xdrs, 6 * BYTES_PER_XDR_UNIT); + if (buf == NULL) { + if (!xdr_u_int(xdrs, &objp->linkmax)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->name_max)) + return FALSE; + if (!xdr_bool(xdrs, &objp->no_trunc)) + return FALSE; + if (!xdr_bool(xdrs, &objp->chown_restricted)) + return FALSE; + if (!xdr_bool(xdrs, &objp->case_insensitive)) + return FALSE; + if (!xdr_bool(xdrs, &objp->case_preserving)) + return FALSE; + } else { + IXDR_PUT_U_LONG(buf, objp->linkmax); + IXDR_PUT_U_LONG(buf, objp->name_max); + IXDR_PUT_BOOL(buf, objp->no_trunc); + IXDR_PUT_BOOL(buf, objp->chown_restricted); + IXDR_PUT_BOOL(buf, objp->case_insensitive); + IXDR_PUT_BOOL(buf, objp->case_preserving); + } + return TRUE; + } else if (xdrs->x_op == XDR_DECODE) { + if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) + return FALSE; + buf = XDR_INLINE(xdrs, 6 * BYTES_PER_XDR_UNIT); + if (buf == NULL) { + if (!xdr_u_int(xdrs, &objp->linkmax)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->name_max)) + return FALSE; + if (!xdr_bool(xdrs, &objp->no_trunc)) + return FALSE; + if (!xdr_bool(xdrs, &objp->chown_restricted)) + return FALSE; + if (!xdr_bool(xdrs, &objp->case_insensitive)) + return FALSE; + if (!xdr_bool(xdrs, &objp->case_preserving)) + return FALSE; + } else { + objp->linkmax = IXDR_GET_U_LONG(buf); + objp->name_max = IXDR_GET_U_LONG(buf); + objp->no_trunc = IXDR_GET_BOOL(buf); + objp->chown_restricted = IXDR_GET_BOOL(buf); + objp->case_insensitive = IXDR_GET_BOOL(buf); + objp->case_preserving = IXDR_GET_BOOL(buf); + } + return TRUE; + } + + if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->linkmax)) + return FALSE; + if (!xdr_u_int(xdrs, &objp->name_max)) + return FALSE; + if (!xdr_bool(xdrs, &objp->no_trunc)) + return FALSE; + if (!xdr_bool(xdrs, &objp->chown_restricted)) + return FALSE; + if (!xdr_bool(xdrs, &objp->case_insensitive)) + return FALSE; + if (!xdr_bool(xdrs, &objp->case_preserving)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_PATHCONF3resfail(XDR *xdrs, am_PATHCONF3resfail *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_PATHCONF3resfail:"); + + if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_PATHCONF3res(XDR *xdrs, am_PATHCONF3res *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_PATHCONF3res:"); + + if (!xdr_am_nfsstat3(xdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case AM_NFS3_OK: + if (!xdr_am_PATHCONF3resok(xdrs, &objp->res_u.ok)) + return FALSE; + break; + default: + if (!xdr_am_PATHCONF3resfail(xdrs, &objp->res_u.fail)) + return FALSE; + break; + } + return TRUE; +} + +bool_t +xdr_am_nfspath3(XDR *xdrs, am_nfspath3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_nfspath3:"); + + if (!xdr_string(xdrs, objp, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_symlinkdata3(XDR *xdrs, am_symlinkdata3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_symlinkdata3:"); + + if (!xdr_am_sattr3(xdrs, &objp->symlink_attributes)) + return FALSE; + if (!xdr_am_nfspath3(xdrs, &objp->symlink_data)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_SYMLINK3args(XDR *xdrs, am_SYMLINK3args *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_SYMLINK3args:"); + + if (!xdr_am_diropargs3(xdrs, &objp->where)) + return FALSE; + if (!xdr_am_symlinkdata3(xdrs, &objp->symlink)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_SYMLINK3resok(XDR *xdrs, am_SYMLINK3resok *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_SYMLINK3resok:"); + + if (!xdr_am_post_op_fh3(xdrs, &objp->obj)) + return FALSE; + if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) + return FALSE; + if (!xdr_am_wcc_data(xdrs, &objp->dir_wcc)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_SYMLINK3resfail(XDR *xdrs, am_SYMLINK3resfail *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_SYMLINK3resfail:"); + + if (!xdr_am_wcc_data(xdrs, &objp->dir_wcc)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_SYMLINK3res(XDR *xdrs, am_SYMLINK3res *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_SYMLINK3res:"); + + if (!xdr_am_nfsstat3(xdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case AM_NFS3_OK: + if (!xdr_am_SYMLINK3resok(xdrs, &objp->res_u.ok)) + return FALSE; + break; + default: + if (!xdr_am_SYMLINK3resfail(xdrs, &objp->res_u.fail)) + return FALSE; + break; + } + return TRUE; +} + +bool_t +xdr_am_READLINK3args(XDR *xdrs, am_READLINK3args *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_READLINK3args:"); + + if (!xdr_am_nfs_fh3(xdrs, &objp->symlink)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_READLINK3resok(XDR *xdrs, am_READLINK3resok *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_READLINK3resok:"); + + if (!xdr_am_post_op_attr(xdrs, &objp->symlink_attributes)) + return FALSE; + if (!xdr_am_nfspath3(xdrs, &objp->data)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_READLINK3resfail(XDR *xdrs, am_READLINK3resfail *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_READLINK3resfail:"); + + if (!xdr_am_post_op_attr(xdrs, &objp->symlink_attributes)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_READLINK3res(XDR *xdrs, am_READLINK3res *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_READLINK3res:"); + + if (!xdr_am_nfsstat3(xdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case AM_NFS3_OK: + if (!xdr_am_READLINK3resok(xdrs, &objp->res_u.ok)) + return FALSE; + break; + default: + if (!xdr_am_READLINK3resfail(xdrs, &objp->res_u.fail)) + return FALSE; + break; + } + return TRUE; +} + +bool_t +xdr_am_devicedata3(XDR *xdrs, am_devicedata3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_devicedata3:"); + + if (!xdr_am_sattr3(xdrs, &objp->dev_attributes)) + return FALSE; + if (!xdr_am_specdata3(xdrs, &objp->spec)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_mknoddata3(XDR *xdrs, am_mknoddata3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_mknoddata3:"); + + if (!xdr_am_ftype3(xdrs, &objp->type)) + return FALSE; + switch (objp->type) { + case AM_NF3CHR: + if (!xdr_am_devicedata3(xdrs, &objp->am_mknoddata3_u.chr_device)) + return FALSE; + break; + case AM_NF3BLK: + if (!xdr_am_devicedata3(xdrs, &objp->am_mknoddata3_u.blk_device)) + return FALSE; + break; + case AM_NF3SOCK: + if (!xdr_am_sattr3(xdrs, &objp->am_mknoddata3_u.sock_attributes)) + return FALSE; + break; + case AM_NF3FIFO: + if (!xdr_am_sattr3(xdrs, &objp->am_mknoddata3_u.pipe_attributes)) + return FALSE; + break; + default: + break; + } + return TRUE; +} + +bool_t +xdr_am_MKNOD3args(XDR *xdrs, am_MKNOD3args *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_MKNOD3args:"); + + if (!xdr_am_diropargs3(xdrs, &objp->where)) + return FALSE; + if (!xdr_am_mknoddata3(xdrs, &objp->what)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_MKNOD3resok(XDR *xdrs, am_MKNOD3resok *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_MKNOD3resok:"); + + if (!xdr_am_post_op_fh3(xdrs, &objp->obj)) + return FALSE; + if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) + return FALSE; + if (!xdr_am_wcc_data(xdrs, &objp->dir_wcc)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_MKNOD3resfail(XDR *xdrs, am_MKNOD3resfail *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_MKNOD3resfail:"); + + if (!xdr_am_wcc_data(xdrs, &objp->dir_wcc)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_MKNOD3res(XDR *xdrs, am_MKNOD3res *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, ":"); + + if (!xdr_am_nfsstat3(xdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case AM_NFS3_OK: + if (!xdr_am_MKNOD3resok(xdrs, &objp->res_u.ok)) + return FALSE; + break; + default: + if (!xdr_am_MKNOD3resfail(xdrs, &objp->res_u.fail)) + return FALSE; + break; + } + return TRUE; +} + +bool_t +xdr_am_MKDIR3args(XDR *xdrs, am_MKDIR3args *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, ":"); + + if (!xdr_am_diropargs3(xdrs, &objp->where)) + return FALSE; + if (!xdr_am_sattr3(xdrs, &objp->attributes)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_MKDIR3resok(XDR *xdrs, am_MKDIR3resok *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_MKDIR3resok:"); + + if (!xdr_am_post_op_fh3(xdrs, &objp->obj)) + return FALSE; + if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) + return FALSE; + if (!xdr_am_wcc_data(xdrs, &objp->dir_wcc)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_MKDIR3resfail(XDR *xdrs, am_MKDIR3resfail *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_MKDIR3resfail:"); + + if (!xdr_am_wcc_data(xdrs, &objp->dir_wcc)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_MKDIR3res(XDR *xdrs, am_MKDIR3res *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_MKDIR3res:"); + + if (!xdr_am_nfsstat3(xdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case AM_NFS3_OK: + if (!xdr_am_MKDIR3resok(xdrs, &objp->res_u.ok)) + return FALSE; + break; + default: + if (!xdr_am_MKDIR3resfail(xdrs, &objp->res_u.fail)) + return FALSE; + break; + } + return TRUE; +} + +bool_t +xdr_am_RMDIR3args(XDR *xdrs, am_RMDIR3args *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_RMDIR3args:"); + + if (!xdr_am_diropargs3(xdrs, &objp->object)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_RMDIR3resok(XDR *xdrs, am_RMDIR3resok *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_RMDIR3resok:"); + + if (!xdr_am_wcc_data(xdrs, &objp->dir_wcc)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_RMDIR3resfail(XDR *xdrs, am_RMDIR3resfail *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_RMDIR3resfail:"); + + if (!xdr_am_wcc_data(xdrs, &objp->dir_wcc)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_RMDIR3res(XDR *xdrs, am_RMDIR3res *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_RMDIR3res:"); + + if (!xdr_am_nfsstat3(xdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case AM_NFS3_OK: + if (!xdr_am_RMDIR3resok(xdrs, &objp->res_u.ok)) + return FALSE; + break; + default: + if (!xdr_am_RMDIR3resfail(xdrs, &objp->res_u.fail)) + return FALSE; + break; + } + return TRUE; +} + +bool_t +xdr_am_RENAME3args(XDR *xdrs, am_RENAME3args *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_RENAME3args:"); + + if (!xdr_am_diropargs3(xdrs, &objp->from)) + return FALSE; + if (!xdr_am_diropargs3(xdrs, &objp->to)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_RENAME3resok(XDR *xdrs, am_RENAME3resok *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_RENAME3resok:"); + + if (!xdr_am_wcc_data(xdrs, &objp->fromdir_wcc)) + return FALSE; + if (!xdr_am_wcc_data(xdrs, &objp->todir_wcc)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_RENAME3resfail(XDR *xdrs, am_RENAME3resfail *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_RENAME3resfail:"); + + if (!xdr_am_wcc_data(xdrs, &objp->fromdir_wcc)) + return FALSE; + if (!xdr_am_wcc_data(xdrs, &objp->todir_wcc)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_RENAME3res(XDR *xdrs, am_RENAME3res *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_RENAME3res:"); + + if (!xdr_am_nfsstat3(xdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case AM_NFS3_OK: + if (!xdr_am_RENAME3resok(xdrs, &objp->res_u.ok)) + return FALSE; + break; + default: + if (!xdr_am_RENAME3resfail(xdrs, &objp->res_u.fail)) + return FALSE; + break; + } + return TRUE; +} + +bool_t +xdr_am_READDIRPLUS3args(XDR *xdrs, am_READDIRPLUS3args *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_READDIRPLUS3args:"); + + if (!xdr_am_nfs_fh3(xdrs, &objp->dir)) + return FALSE; + if (!xdr_am_cookie3(xdrs, &objp->cookie)) + return FALSE; + if (!xdr_am_cookieverf3(xdrs, objp->cookieverf)) + return FALSE; + if (!xdr_am_count3(xdrs, &objp->dircount)) + return FALSE; + if (!xdr_am_count3(xdrs, &objp->maxcount)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_entryplus3(XDR *xdrs, am_entryplus3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_entryplus3:"); + + if (!xdr_am_fileid3(xdrs, &objp->fileid)) + return FALSE; + if (!xdr_am_filename3(xdrs, &objp->name)) + return FALSE; + if (!xdr_am_cookie3(xdrs, &objp->cookie)) + return FALSE; + if (!xdr_am_post_op_attr(xdrs, &objp->name_attributes)) + return FALSE; + if (!xdr_am_post_op_fh3(xdrs, &objp->name_handle)) + return FALSE; + if (!xdr_pointer(xdrs, (char **)&objp->nextentry, + sizeof(am_entryplus3), (xdrproc_t) xdr_am_entryplus3)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_dirlistplus3(XDR *xdrs, am_dirlistplus3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_dirlistplus3:"); + + if (!xdr_pointer(xdrs, (char **)&objp->entries, + sizeof(am_entryplus3), (xdrproc_t) xdr_am_entryplus3)) + return FALSE; + if (!xdr_bool(xdrs, &objp->eof)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_READDIRPLUS3resok(XDR *xdrs, am_READDIRPLUS3resok *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_READDIRPLUS3resok:"); + + if (!xdr_am_post_op_attr(xdrs, &objp->dir_attributes)) + return FALSE; + if (!xdr_am_cookieverf3(xdrs, objp->cookieverf)) + return FALSE; + if (!xdr_am_dirlistplus3(xdrs, &objp->reply)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_READDIRPLUS3resfail(XDR *xdrs, am_READDIRPLUS3resfail *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_READDIRPLUS3resfail:"); + + if (!xdr_am_post_op_attr(xdrs, &objp->dir_attributes)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_READDIRPLUS3res(XDR *xdrs, am_READDIRPLUS3res *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_READDIRPLUS3res:"); + + if (!xdr_am_nfsstat3(xdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case AM_NFS3_OK: + if (!xdr_am_READDIRPLUS3resok(xdrs, &objp->res_u.ok)) + return FALSE; + break; + default: + if (!xdr_am_READDIRPLUS3resfail(xdrs, &objp->res_u.fail)) + return FALSE; + break; + } + return TRUE; +} + +bool_t +xdr_am_READDIR3args(XDR *xdrs, am_READDIR3args *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_READDIR3args:"); + + if (!xdr_am_nfs_fh3(xdrs, &objp->dir)) + return FALSE; + if (!xdr_am_cookie3(xdrs, &objp->cookie)) + return FALSE; + if (!xdr_am_cookieverf3(xdrs, objp->cookieverf)) + return FALSE; + if (!xdr_am_count3(xdrs, &objp->count)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_entry3(XDR *xdrs, am_entry3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_entry3:"); + + if (!xdr_am_fileid3(xdrs, &objp->fileid)) + return FALSE; + if (!xdr_am_filename3(xdrs, &objp->name)) + return FALSE; + if (!xdr_am_cookie3(xdrs, &objp->cookie)) + return FALSE; + if (!xdr_pointer(xdrs, (char **)&objp->nextentry, + sizeof(am_entry3), (xdrproc_t) xdr_am_entry3)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_dirlist3(XDR *xdrs, am_dirlist3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_dirlist3:"); + + if (!xdr_pointer(xdrs, (char **)&objp->entries, + sizeof(am_entry3), (xdrproc_t) xdr_am_entry3)) + return FALSE; + if (!xdr_bool (xdrs, &objp->eof)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_READDIR3resok(XDR *xdrs, am_READDIR3resok *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_READDIR3resok:"); + + if (!xdr_am_post_op_attr(xdrs, &objp->dir_attributes)) + return FALSE; + if (!xdr_am_cookieverf3(xdrs, objp->cookieverf)) + return FALSE; + if (!xdr_am_dirlist3(xdrs, &objp->reply)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_READDIR3resfail(XDR *xdrs, am_READDIR3resfail *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_READDIR3resfail:"); + + if (!xdr_am_post_op_attr(xdrs, &objp->dir_attributes)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_READDIR3res(XDR *xdrs, am_READDIR3res *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_READDIR3res:"); + + if (!xdr_am_nfsstat3(xdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case AM_NFS3_OK: + if (!xdr_am_READDIR3resok(xdrs, &objp->res_u.ok)) + return FALSE; + break; + default: + if (!xdr_am_READDIR3resfail(xdrs, &objp->res_u.fail)) + return FALSE; + break; + } + return TRUE; +} + +bool_t +xdr_am_LINK3args(XDR *xdrs, am_LINK3args *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_LINK3args:"); + + if (!xdr_am_nfs_fh3(xdrs, &objp->file)) + return FALSE; + if (!xdr_am_diropargs3(xdrs, &objp->link)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_LINK3resok(XDR *xdrs, am_LINK3resok *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_LINK3resok:"); + + if (!xdr_am_post_op_attr(xdrs, &objp->file_attributes)) + return FALSE; + if (!xdr_am_wcc_data(xdrs, &objp->linkdir_wcc)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_LINK3resfail(XDR *xdrs, am_LINK3resfail *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_LINK3resfail:"); + + if (!xdr_am_post_op_attr(xdrs, &objp->file_attributes)) + return FALSE; + if (!xdr_am_wcc_data(xdrs, &objp->linkdir_wcc)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_LINK3res(XDR *xdrs, am_LINK3res *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_LINK3res:"); + + if (!xdr_am_nfsstat3(xdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case AM_NFS3_OK: + if (!xdr_am_LINK3resok(xdrs, &objp->res_u.ok)) + return FALSE; + break; + default: + if (!xdr_am_LINK3resfail(xdrs, &objp->res_u.fail)) + return FALSE; + break; + } + return TRUE; +} + +bool_t +xdr_am_sattrguard3(XDR *xdrs, am_sattrguard3 *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_sattrguard3:"); + + if (!xdr_bool(xdrs, &objp->check)) + return FALSE; + switch (objp->check) { + case TRUE: + if (!xdr_am_nfstime3(xdrs, &objp->am_sattrguard3_u.obj_ctime)) + return FALSE; + break; + case FALSE: + break; + default: + return FALSE; + } + return TRUE; +} + +bool_t +xdr_am_SETATTR3args(XDR *xdrs, am_SETATTR3args *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_SETATTR3args:"); + + if (!xdr_am_nfs_fh3(xdrs, &objp->object)) + return FALSE; + if (!xdr_am_sattr3(xdrs, &objp->new_attributes)) + return FALSE; + if (!xdr_am_sattrguard3(xdrs, &objp->guard)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_SETATTR3resok(XDR *xdrs, am_SETATTR3resok *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_SETATTR3resok:"); + + if (!xdr_am_wcc_data(xdrs, &objp->obj_wcc)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_SETATTR3resfail(XDR *xdrs, am_SETATTR3resfail *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_SETATTR3resfail:"); + + if (!xdr_am_wcc_data(xdrs, &objp->obj_wcc)) + return FALSE; + return TRUE; +} + +bool_t +xdr_am_SETATTR3res(XDR *xdrs, am_SETATTR3res *objp) +{ + if (amuDebug(D_XDRTRACE)) + plog(XLOG_DEBUG, "xdr_am_SETATTR3res:"); + + if (!xdr_am_nfsstat3(xdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case AM_NFS3_OK: + if (!xdr_am_SETATTR3resok(xdrs, &objp->res_u.ok)) + return FALSE; + break; + default: + if (!xdr_am_SETATTR3resfail(xdrs, &objp->res_u.fail)) + return FALSE; + break; + } + return TRUE; } -#endif /* not HAVE_FS_NFS3 */ +#endif /* HAVE_FS_NFS3 */ diff --git a/contrib/amd/libamu/xutil.c b/contrib/amd/libamu/xutil.c index 3a33b9c..1159fe5 100644 --- a/contrib/amd/libamu/xutil.c +++ b/contrib/amd/libamu/xutil.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -63,14 +59,13 @@ static char am_hostname[MAXHOSTNAMELEN] = "unknown"; /* Hostname */ pid_t am_mypid = -1; /* process ID */ serv_state amd_state; /* amd's state */ int foreground = 1; /* 1 == this is the top-level server */ -int debug_flags = 0; +u_int debug_flags = D_CONTROL; /* set regardless if compiled with debugging */ #ifdef HAVE_SYSLOG int syslogging; #endif /* HAVE_SYSLOG */ -int xlog_level = XLOG_ALL & ~XLOG_MAP & ~XLOG_STATS; -int xlog_level_init = ~0; -static int amd_program_number = AMQ_PROGRAM; +static u_int xlog_level = XLOG_DEFAULT; +static u_long amd_program_number = AMQ_PROGRAM; #ifdef DEBUG_MEM # if defined(HAVE_MALLINFO) && defined(HAVE_MALLOC_VERIFY) @@ -92,23 +87,23 @@ static void real_plog(int lvl, const char *fmt, va_list vargs) struct opt_tab dbg_opt[] = { {"all", D_ALL}, /* All non-disruptive options */ - {"amq", D_AMQ}, /* Don't register for AMQ program */ - {"daemon", D_DAEMON}, /* Don't enter daemon mode */ - {"fork", D_FORK}, /* Don't fork server */ + {"defaults", D_DEFAULT}, /* Default options */ + {"test", D_TEST}, /* Full debug - no daemon, no fork, no amq, local mtab */ + {"amq", D_AMQ}, /* Register for AMQ program */ + {"daemon", D_DAEMON}, /* Enter daemon mode */ + {"fork", D_FORK}, /* Fork server (hlfsd only) */ {"full", D_FULL}, /* Program trace */ #ifdef HAVE_CLOCK_GETTIME {"hrtime", D_HRTIME}, /* Print high resolution time stamps */ #endif /* HAVE_CLOCK_GETTIME */ - /* info service specific debugging (hesiod, nis, etc) */ - {"info", D_INFO}, + {"info", D_INFO}, /* info service specific debugging (hesiod, nis, etc) */ {"mem", D_MEM}, /* Trace memory allocations */ {"mtab", D_MTAB}, /* Use local mtab file */ {"readdir", D_READDIR}, /* Check on browsable_dirs progress */ {"str", D_STR}, /* Debug string munging */ - {"test", D_TEST}, /* Full debug - no daemon, no amq, local mtab */ {"trace", D_TRACE}, /* Protocol trace */ {"xdrtrace", D_XDRTRACE}, /* Trace xdr routines */ - {0, 0} + {NULL, 0} }; #endif /* DEBUG */ @@ -118,6 +113,7 @@ struct opt_tab dbg_opt[] = struct opt_tab xlog_opt[] = { {"all", XLOG_ALL}, /* All messages */ + {"defaults", XLOG_DEFAULT}, /* Default messages */ #ifdef DEBUG {"debug", XLOG_DEBUG}, /* Debug messages */ #endif /* DEBUG */ /* DEBUG */ @@ -129,7 +125,7 @@ struct opt_tab xlog_opt[] = {"user", XLOG_USER}, /* Non-fatal user errors */ {"warn", XLOG_WARNING}, /* Warnings */ {"warning", XLOG_WARNING}, /* Warnings */ - {0, 0} + {NULL, 0} }; @@ -150,7 +146,7 @@ am_get_progname(void) void am_set_hostname(char *hn) { - xstrlcpy(am_hostname, hn, MAXHOSTNAMELEN); + xstrlcpy(am_hostname, hn, sizeof(am_hostname)); } @@ -295,17 +291,23 @@ expand_error(const char *f, char *e, size_t maxlen) const char *p; char *q; int error = errno; - int len = 0; + size_t len = 0, l; - for (p = f, q = e; (*q = *p) && (size_t) len < maxlen; len++, q++, p++) { + *e = '\0'; + for (p = f, q = e; len < maxlen && (*q = *p); len++, q++, p++) { if (p[0] == '%' && p[1] == 'm') { - xstrlcpy(q, strerror(error), maxlen); - len += strlen(q) - 1; - q += strlen(q) - 1; + if (len >= maxlen) + break; + xstrlcpy(q, strerror(error), maxlen - len); + l = strlen(q); + if (l != 0) + l--; + len += l; + q += l; p++; } } - e[maxlen-1] = '\0'; /* null terminate, to be sure */ + e[maxlen - 1] = '\0'; /* null terminate, to be sure */ return e; } @@ -317,7 +319,7 @@ static void show_time_host_and_name(int lvl) { static time_t last_t = 0; - static char *last_ctime = 0; + static char *last_ctime = NULL; time_t t; #if defined(HAVE_CLOCK_GETTIME) && defined(DEBUG) struct timespec ts; @@ -390,21 +392,63 @@ show_time_host_and_name(int lvl) int debug_option(char *opt) { - return cmdoption(opt, dbg_opt, &debug_flags); + u_int dl = debug_flags; + static int initialized_debug_flags = 0; + int rc = cmdoption(opt, dbg_opt, &dl); + + if (rc) /* if got any error, don't update debug flags */ + return EINVAL; + + /* + * If we already initialized the debugging flags once (via amd.conf), then + * don't allow "immutable" flags to be changed again (via amq -D), because + * they could mess Amd's state and only make sense to be set once when Amd + * starts. + */ + if (initialized_debug_flags && + debug_flags != 0 && + (dl & D_IMMUTABLE) != (debug_flags & D_IMMUTABLE)) { + plog(XLOG_ERROR, "cannot change immutable debug flags"); + /* undo any attempted change to an immutable flag */ + dl = (dl & ~D_IMMUTABLE) | (debug_flags & D_IMMUTABLE); + } + initialized_debug_flags = 1; + debug_flags = dl; + + return rc; } void dplog(const char *fmt, ...) { +#ifdef HAVE_SIGACTION + sigset_t old, chld; +#else /* not HAVE_SIGACTION */ + int mask; +#endif /* not HAVE_SIGACTION */ va_list ap; +#ifdef HAVE_SIGACTION + sigemptyset(&chld); + sigaddset(&chld, SIGCHLD); +#else /* not HAVE_SIGACTION */ + mask = sigblock(sigmask(SIGCHLD)); +#endif /* not HAVE_SIGACTION */ + + sigprocmask(SIG_BLOCK, &chld, &old); if (!logfp) logfp = stderr; /* initialize before possible first use */ va_start(ap, fmt); real_plog(XLOG_DEBUG, fmt, ap); va_end(ap); + +#ifdef HAVE_SIGACTION + sigprocmask(SIG_SETMASK, &old, NULL); +#else /* not HAVE_SIGACTION */ + mask = sigblock(sigmask(SIGCHLD)); +#endif /* not HAVE_SIGACTION */ } #endif /* DEBUG */ @@ -412,14 +456,33 @@ dplog(const char *fmt, ...) void plog(int lvl, const char *fmt, ...) { +#ifdef HAVE_SIGACTION + sigset_t old, chld; +#else /* not HAVE_SIGACTION */ + int mask; +#endif /* not HAVE_SIGACTION */ va_list ap; +#ifdef HAVE_SIGACTION + sigemptyset(&chld); + sigaddset(&chld, SIGCHLD); + sigprocmask(SIG_BLOCK, &chld, &old); +#else /* not HAVE_SIGACTION */ + mask = sigblock(sigmask(SIGCHLD)); +#endif /* not HAVE_SIGACTION */ + if (!logfp) logfp = stderr; /* initialize before possible first use */ va_start(ap, fmt); real_plog(lvl, fmt, ap); va_end(ap); + +#ifdef HAVE_SIGACTION + sigprocmask(SIG_SETMASK, &old, NULL); +#else /* not HAVE_SIGACTION */ + sigsetmask(mask); +#endif /* not HAVE_SIGACTION */ } @@ -497,11 +560,11 @@ real_plog(int lvl, const char *fmt, va_list vargs) switch (last_count) { case 0: /* never printed at all */ last_count = 1; - if (strlcpy(last_msg, msg, 1024) >= 1024) /* don't use xstrlcpy here (recursive!) */ + if (strlcpy(last_msg, msg, sizeof(last_msg)) >= sizeof(last_msg)) /* don't use xstrlcpy here (recursive!) */ fprintf(stderr, "real_plog: string \"%s\" truncated to \"%s\"\n", last_msg, msg); last_lvl = lvl; show_time_host_and_name(lvl); /* mimic syslog header */ - fwrite(msg, ptr - msg, 1, logfp); + __IGNORE(fwrite(msg, ptr - msg, 1, logfp)); fflush(logfp); break; @@ -510,11 +573,11 @@ real_plog(int lvl, const char *fmt, va_list vargs) last_count++; } else { /* last msg printed once, new one differs */ /* last_count remains at 1 */ - if (strlcpy(last_msg, msg, 1024) >= 1024) /* don't use xstrlcpy here (recursive!) */ + if (strlcpy(last_msg, msg, sizeof(last_msg)) >= sizeof(last_msg)) /* don't use xstrlcpy here (recursive!) */ fprintf(stderr, "real_plog: string \"%s\" truncated to \"%s\"\n", last_msg, msg); last_lvl = lvl; show_time_host_and_name(lvl); /* mimic syslog header */ - fwrite(msg, ptr - msg, 1, logfp); + __IGNORE(fwrite(msg, ptr - msg, 1, logfp)); fflush(logfp); } break; @@ -527,7 +590,7 @@ real_plog(int lvl, const char *fmt, va_list vargs) show_time_host_and_name(last_lvl); xsnprintf(last_msg, sizeof(last_msg), "last message repeated %d times\n", last_count); - fwrite(last_msg, strlen(last_msg), 1, logfp); + __IGNORE(fwrite(last_msg, strlen(last_msg), 1, logfp)); fflush(logfp); last_count = 0; /* start from scratch */ break; @@ -539,13 +602,13 @@ real_plog(int lvl, const char *fmt, va_list vargs) show_time_host_and_name(last_lvl); xsnprintf(last_msg, sizeof(last_msg), "last message repeated %d times\n", last_count); - fwrite(last_msg, strlen(last_msg), 1, logfp); + __IGNORE(fwrite(last_msg, strlen(last_msg), 1, logfp)); if (strlcpy(last_msg, msg, 1024) >= 1024) /* don't use xstrlcpy here (recursive!) */ fprintf(stderr, "real_plog: string \"%s\" truncated to \"%s\"\n", last_msg, msg); last_count = 1; last_lvl = lvl; show_time_host_and_name(lvl); /* mimic syslog header */ - fwrite(msg, ptr - msg, 1, logfp); + __IGNORE(fwrite(msg, ptr - msg, 1, logfp)); fflush(logfp); } break; @@ -573,7 +636,7 @@ show_opts(int ch, struct opt_tab *opts) int -cmdoption(char *s, struct opt_tab *optb, int *flags) +cmdoption(char *s, struct opt_tab *optb, u_int *flags) { char *p = s; int errs = 0; @@ -581,7 +644,7 @@ cmdoption(char *s, struct opt_tab *optb, int *flags) while (p && *p) { int neg; char *opt; - struct opt_tab *dp, *dpn = 0; + struct opt_tab *dp, *dpn = NULL; s = p; p = strchr(p, ','); @@ -624,7 +687,7 @@ cmdoption(char *s, struct opt_tab *optb, int *flags) * This will log to stderr when parsing the command line * since any -l option will not yet have taken effect. */ - plog(XLOG_USER, "option \"%s\" not recognized", s); + plog(XLOG_ERROR, "option \"%s\" not recognized", s); errs++; } @@ -645,22 +708,22 @@ cmdoption(char *s, struct opt_tab *optb, int *flags) int switch_option(char *opt) { - int xl = xlog_level; + u_int xl = xlog_level; int rc = cmdoption(opt, xlog_opt, &xl); - if (rc) { - rc = EINVAL; - } else { - /* - * Keep track of initial log level, and - * don't allow options to be turned off. - */ - if (xlog_level_init == ~0) - xlog_level_init = xl; - else - xl |= xlog_level_init; - xlog_level = xl; + if (rc) /* if got any error, don't update flags */ + return EINVAL; + + /* + * Don't allow "mandatory" flags to be turned off, because + * we must always be able to report on flag re/setting errors. + */ + if ((xl & XLOG_MANDATORY) != XLOG_MANDATORY) { + plog(XLOG_ERROR, "cannot turn off mandatory logging options"); + xl |= XLOG_MANDATORY; } + if (xlog_level != xl) + xlog_level = xl; /* set new flags */ return rc; } @@ -801,7 +864,7 @@ switch_to_logfile(char *logfile, int old_umask, int truncate_log) } else { /* regular log file */ (void) umask(old_umask); if (truncate_log) - truncate(logfile, 0); + __IGNORE(truncate(logfile, 0)); new_logfp = fopen(logfile, "a"); umask(0); } @@ -834,7 +897,8 @@ switch_to_logfile(char *logfile, int old_umask, int truncate_log) void unregister_amq(void) { - if (!amuDebug(D_AMQ)) { + + if (amuDebug(D_AMQ)) { /* find which instance of amd to unregister */ u_long amd_prognum = get_amd_program_number(); @@ -875,7 +939,7 @@ going_down(int rc) /* return the rpc program number under which amd was used */ -int +u_long get_amd_program_number(void) { return amd_program_number; @@ -884,7 +948,7 @@ get_amd_program_number(void) /* set the rpc program number used for amd */ void -set_amd_program_number(int program) +set_amd_program_number(u_long program) { amd_program_number = program; } @@ -955,9 +1019,9 @@ amu_release_controlling_tty(void) close(fd); } return; -#endif /* not TIOCNOTTY */ - +#else plog(XLOG_ERROR, "unable to release controlling tty"); +#endif /* not TIOCNOTTY */ } @@ -1012,7 +1076,7 @@ mkdirs(char *path, int mode) /* * take a copy in case path is in readonly store */ - char *p2 = strdup(path); + char *p2 = xstrdup(path); char *sp = p2; struct stat stb; int error_so_far = 0; @@ -1056,7 +1120,7 @@ mkdirs(char *path, int mode) void rmdirs(char *dir) { - char *xdp = strdup(dir); + char *xdp = xstrdup(dir); char *dp; do { @@ -1089,3 +1153,15 @@ rmdirs(char *dir) XFREE(xdp); } + +/* + * Dup a string + */ +char * +xstrdup(const char *s) +{ + size_t len = strlen(s); + char *sp = xmalloc(len + 1); + memcpy(sp, s, len + 1); + return sp; +} diff --git a/contrib/amd/mk-amd-map/mk-amd-map.8 b/contrib/amd/mk-amd-map/mk-amd-map.8 index 28bbb9b..677f41a 100644 --- a/contrib/amd/mk-amd-map/mk-amd-map.8 +++ b/contrib/amd/mk-amd-map/mk-amd-map.8 @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 1997-2006 Erez Zadok +.\" Copyright (c) 1997-2014 Erez Zadok .\" Copyright (c) 1993 Jan-Simon Pendry .\" Copyright (c) 1993 .\" The Regents of the University of California. All rights reserved. @@ -12,11 +12,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgment: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors +.\" 3. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" @@ -32,10 +28,10 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" from: @(#)mk-amd-map.8 8.1 (Berkeley) 6/28/93 -.\" $Id: mk-amd-map.8,v 1.9.2.1 2006/01/02 18:48:26 ezk Exp $ .\" $FreeBSD$ .\" +.\" File: am-utils/mk-amd-map/mk-amd-map.8 +.\" .Dd January 2, 2006 .Dt MK-AMD-MAP 8 .Os diff --git a/contrib/amd/mk-amd-map/mk-amd-map.c b/contrib/amd/mk-amd-map/mk-amd-map.c index 48d82b0..e6ca9d9 100644 --- a/contrib/amd/mk-amd-map/mk-amd-map.c +++ b/contrib/amd/mk-amd-map/mk-amd-map.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -93,7 +89,7 @@ read_line(char *buf, int size, FILE *fp) /* * Skip leading white space on next line */ - while ((ch = getc(fp)) != EOF && isascii(ch) && isspace(ch)) ; + while ((ch = getc(fp)) != EOF && isascii((unsigned char)ch) && isspace((unsigned char)ch)) ; (void) ungetc(ch, fp); } else { return done; @@ -144,7 +140,7 @@ read_file(FILE *fp, char *map, voidp db) /* * Find start of key */ - for (kp = key_val; *kp && isascii(*kp) && isspace((int)*kp); kp++) ; + for (kp = key_val; *kp && isascii((unsigned char)*kp) && isspace((unsigned char)*kp); kp++) ; /* * Ignore blank lines @@ -155,7 +151,7 @@ read_file(FILE *fp, char *map, voidp db) /* * Find end of key */ - for (cp = kp; *cp && (!isascii(*cp) || !isspace((int)*cp)); cp++) ; + for (cp = kp; *cp && (!isascii((unsigned char)*cp) || !isspace((unsigned char)*cp)); cp++) ; /* * Check whether key matches, or whether @@ -163,7 +159,7 @@ read_file(FILE *fp, char *map, voidp db) */ if (*cp) *cp++ = '\0'; - while (*cp && isascii(*cp) && isspace((int)*cp)) + while (*cp && isascii((unsigned char)*cp) && isspace((unsigned char)*cp)) cp++; if (*kp == '+') { fprintf(stderr, "Can't interpolate %s\n", kp); diff --git a/contrib/amd/scripts/amd.conf-sample b/contrib/amd/scripts/amd.conf-sample index 880a74b..4d96578 100644 --- a/contrib/amd/scripts/amd.conf-sample +++ b/contrib/amd/scripts/amd.conf-sample @@ -64,8 +64,8 @@ nis_domain = nisDom-CS.columbia.edu # (amd -x) log_options = fatal,error,user,warn,info,map,stats,all # (amd -D) -debug_options = all,amq,daemon,fork,full,hrtime,info,mem,mtab,\ - str,readdir,test,trace,xdrtrace +debug_options = all,defaults,test,amq,daemon,fork,\ + full,hrtime,info,mem,mtab,str,readdir,trace,xdrtrace # path for mtab file during mtab debug mode debug_mtab_file = /tmp/mnttab # (amd -S) @@ -108,7 +108,7 @@ exec_map_timeout = 10 normalize_slashes = yes | no ############################################################################## -# these 8 global options can be overridden by each map individually +# these 9 global options can be overridden by each map individually browsable_dirs = no | yes | full map_options = cache:=all map_type = file|hesiod|ndbm|nis|nisplus|passwd|union|ldap @@ -119,6 +119,8 @@ autofs_use_lofs = yes | no search_path = /etc/local:/etc/amdmaps:/misc/yp # selectors are not recognized by default in the /defaults entry selectors_in_defaults = no | yes +# does this map use Sun Automounter map syntax? +sun_map_syntax = no | yes ############################################################################## ############################################################################## diff --git a/contrib/amd/scripts/amd.conf.5 b/contrib/amd/scripts/amd.conf.5 index de913be..c4de73d 100644 --- a/contrib/amd/scripts/amd.conf.5 +++ b/contrib/amd/scripts/amd.conf.5 @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 1997-2006 Erez Zadok +.\" Copyright (c) 1997-2014 Erez Zadok .\" Copyright (c) 1990 Jan-Simon Pendry .\" Copyright (c) 1990 Imperial College of Science, Technology & Medicine .\" Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgment: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors +.\" 3. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" @@ -36,9 +32,8 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %W% (Berkeley) %G% .\" -.\" $Id: amd.conf.5,v 1.39.2.5 2006/04/21 01:12:04 ezk Exp $ +.\" File: am-utils/scripts/amd.conf.5 .\" $FreeBSD$ .\" .Dd April 21, 2006 @@ -267,8 +262,14 @@ slow slip-based networks as follows: wire!=slip-net;opts:=intr,rsize=8192,wsize=8192 .Ed Deprecated form: selectors_on_default +.TP +.BR sun_map_syntax " (boolean, default=no)" +If "yes," then Amd will parse the map according to the Sun Automount syntax. + +.\" ************************************************************************** .El .Ss "Parameters applicable to the global section only" + .Bl -tag -width 4n .It Va arch Pq string, default to compiled in value Same as the @@ -338,12 +339,13 @@ option to Specify any debugging options for .Xr amd 8 . Works only if +Works only if am-utils was configured for debugging using the .Fl Fl enable-debug option. The .Cm mem -option alone can be turned on via +option, as well as all other options, can be turned on via .Fl Fl enable-debug Ns = Ns Cm mem . Otherwise debugging options are ignored. Options are @@ -357,7 +359,9 @@ Possible values are: .Pp .Bl -tag -width ".Cm xdrtrace" -compact .It Cm all -all options +all options (excludes hrtime and mtab) +.It Cm defaults +"sensible" default options (all--excluding hrtime, mtab, and xdrtrace) .It Cm amq register for .Xr amq 8 @@ -367,6 +371,8 @@ enter daemon mode fork server .It Cm full program trace +.It Cm hrtime +print high resolution time stamps (only if syslog(3) is not used) .It Cm info info service specific debugging (hesiod, nis, etc.) @@ -376,14 +382,16 @@ trace memory allocations use local .Pa ./mtab file +\fBreaddir\fR show browsable_dirs progress .It Cm str debug string munging .It Cm test -full debug but no daemon +full debug options plus mtab,nodaemon,nofork,noamq .It Cm trace trace protocol and NFS mount arguments .It Cm xdrtrace trace XDR routines +.BR dismount_interval " (numeric, default=120)" .El .It Va dismount_interval Pq numeric, default=120 Same as the @@ -573,12 +581,14 @@ Possible values are: .Bl -tag -width ".Cm warning" -compact .It Cm all all messages +.It Cm defaults +default messages (fatal,error,user,warning,info) .It Cm debug debug messages .It Cm error -non-fatal system errors +non-fatal system errors (cannot be turned off) .It Cm fatal -fatal errors +fatal errors (cannot be turned off) .It Cm info information .It Cm map @@ -589,6 +599,7 @@ additional statistical information non-fatal user errors .It Cm warn warnings +\fBwarning\fR warnings .It Cm warning warnings .El @@ -1067,7 +1078,9 @@ map_name = amd.tftpboot .Sh SEE ALSO .Xr hosts_access 5 , .Xr amd 8 , -.Xr amq 8 +.Xr amq 8 , +.xr automount 8 , +.Xr ctl-amd 8 . .Pp .Dq am-utils .Xr info 1 diff --git a/contrib/amd/scripts/automount2amd.8 b/contrib/amd/scripts/automount2amd.8 index bd3b612..f9a04d9 100644 --- a/contrib/amd/scripts/automount2amd.8 +++ b/contrib/amd/scripts/automount2amd.8 @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 1997-2006 Erez Zadok +.\" Copyright (c) 1997-2014 Erez Zadok .\" Copyright (c) 1990 Jan-Simon Pendry .\" Copyright (c) 1990 Imperial College of Science, Technology & Medicine .\" Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgment: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors +.\" 3. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" @@ -36,9 +32,8 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %W% (Berkeley) %G% .\" -.\" $Id: automount2amd.8,v 1.8.2.1 2006/01/02 18:48:26 ezk Exp $ +.\" File: am-utils/scripts/automount2amd.8 .\" .TH AUTOMOUNT2AMD 8L "24 May 1993" .SH NAME diff --git a/contrib/amd/scripts/fixrmtab.in b/contrib/amd/scripts/fixrmtab.in index 2300380..a1fbebf 100755 --- a/contrib/amd/scripts/fixrmtab.in +++ b/contrib/amd/scripts/fixrmtab.in @@ -10,15 +10,23 @@ #set -x -RMTAB=/etc/rmtab -TMP=/tmp/rmtab.$$ +# allow user to pass RMTAB file name from environment +if test -z "${RMTAB}" ; then + RMTAB=/etc/rmtab +fi -if [ ! -f /etc/rmtab ]; then +if [ ! -f "$RMTAB" ]; then exit 0 fi -for host in $* +TMP="$(mktemp ${RMTAB}.XXXXXX)" +if [ -z "$TMP" ]; then + exit 1 +fi + +trap "rm -f $TMP" 0 1 2 3 15 + +for host do - sed -e '/^'$host':/s/^./#/' $RMTAB > $TMP && cp $TMP $RMTAB + sed -e "/^$host:/s/^./#/" "$RMTAB" > "$TMP" && cp "$TMP" "$RMTAB" done -rm -f $TMP diff --git a/contrib/amd/vers.m4 b/contrib/amd/vers.m4 index 7343910..99d4f06 100644 --- a/contrib/amd/vers.m4 +++ b/contrib/amd/vers.m4 @@ -1 +1 @@ -[6.1.5]dnl +[6.2]dnl diff --git a/contrib/amd/wire-test/wire-test.8 b/contrib/amd/wire-test/wire-test.8 index f84dc84..50ae1e6 100644 --- a/contrib/amd/wire-test/wire-test.8 +++ b/contrib/amd/wire-test/wire-test.8 @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 1997-2006 Erez Zadok +.\" Copyright (c) 1997-2014 Erez Zadok .\" Copyright (c) 1990 Jan-Simon Pendry .\" Copyright (c) 1990 Imperial College of Science, Technology & Medicine .\" Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgment: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors +.\" 3. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" @@ -36,9 +32,8 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %W% (Berkeley) %G% .\" -.\" $Id: wire-test.8,v 1.10.2.1 2006/01/02 18:48:26 ezk Exp $ +.\" File: am-utils/wire-test/wire-test.8 .\" $FreeBSD$ .\" .Dd January 2, 2006 diff --git a/contrib/amd/wire-test/wire-test.c b/contrib/amd/wire-test/wire-test.c index bcaaf5a..0adcf5d 100644 --- a/contrib/amd/wire-test/wire-test.c +++ b/contrib/amd/wire-test/wire-test.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-2006 Erez Zadok + * Copyright (c) 1997-2014 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -16,11 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -59,7 +55,7 @@ main(int argc, char **argv) char *testhost, *proto, *tmp_buf; int nv, ret; struct sockaddr_in *ip; - struct hostent *hp = 0; + struct hostent *hp = NULL; am_set_progname(argv[0]); @@ -102,12 +98,11 @@ main(int argc, char **argv) memmove((voidp) &ip->sin_addr, (voidp) hp->h_addr, sizeof(ip->sin_addr)); ip->sin_port = htons(NFS_PORT); - xlog_level = 0; /* turn off debugging */ fprintf(stderr, "NFS Version and protocol tests to host \"%s\"...\n", testhost); proto = "udp"; for (nv=2; nv<=3; ++nv) { fprintf(stderr, "\ttesting vers=%d, proto=\"%s\" -> ", nv, proto); - ret = get_nfs_version(testhost, ip, nv, proto); + ret = get_nfs_version(testhost, ip, nv, proto, 0); if (ret == 0) fprintf(stderr, "failed!\n"); else @@ -117,7 +112,7 @@ main(int argc, char **argv) proto = "tcp"; for (nv=2; nv<=3; ++nv) { fprintf(stderr, "\ttesting vers=%d, proto=\"%s\" -> ", nv, proto); - ret = get_nfs_version(testhost, ip, nv, proto); + ret = get_nfs_version(testhost, ip, nv, proto, 0); if (ret == 0) fprintf(stderr, "failed!\n"); else diff --git a/contrib/binutils/bfd/elflink.c b/contrib/binutils/bfd/elflink.c index f1e50de..10d987c 100644 --- a/contrib/binutils/bfd/elflink.c +++ b/contrib/binutils/bfd/elflink.c @@ -11487,7 +11487,7 @@ _bfd_elf_section_already_linked (bfd *abfd, struct bfd_section *sec, abfd, sec); else if (sec->size != 0) { - bfd_byte *sec_contents, *l_sec_contents; + bfd_byte *sec_contents, *l_sec_contents = NULL; if (!bfd_malloc_and_get_section (abfd, sec, &sec_contents)) (*_bfd_error_handler) diff --git a/contrib/bsnmp/gensnmpdef/gensnmpdef.1 b/contrib/bsnmp/gensnmpdef/gensnmpdef.1 index 678e345..5660095 100644 --- a/contrib/bsnmp/gensnmpdef/gensnmpdef.1 +++ b/contrib/bsnmp/gensnmpdef/gensnmpdef.1 @@ -4,7 +4,7 @@ .\" All rights reserved. .\" .\" Author: Harti Brandt <harti@FreeBSD.org> -.\" +.\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: @@ -13,7 +13,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" +.\" .\" THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/gensnmpdef/gensnmpdef.c b/contrib/bsnmp/gensnmpdef/gensnmpdef.c index e4f1e5c..32c835d 100644 --- a/contrib/bsnmp/gensnmpdef/gensnmpdef.c +++ b/contrib/bsnmp/gensnmpdef/gensnmpdef.c @@ -1,10 +1,10 @@ -/* +/* * Copyright (C) 2004-2006 * Hartmut Brandt. * All rights reserved. - * + * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -233,7 +233,7 @@ print_scalar(SmiNode *n, u_int level) printf(" op_%s", p->name); print_access(n->access); - + printf(")\n"); } @@ -422,7 +422,7 @@ static void print_enum_typedef(SmiType *t) { SmiNamedNumber *nnum; - + for (nnum = smiGetFirstNamedNumber(t); nnum != NULL; nnum = smiGetNextNamedNumber(nnum)) { printf("\t%ld %s\n" , nnum->value.value.integer32, nnum->name); @@ -434,10 +434,10 @@ print_stype(SmiNode *n) { SmiType *type; struct tdef *t = NULL; - + type = smiGetNodeType(n); assert(type != NULL); - + if (type->basetype == SMI_BASETYPE_ENUM) { if (do_typedef == 'e' && type->name != NULL) { SLIST_FOREACH(t, &tdefs, link) { @@ -450,7 +450,7 @@ print_stype(SmiNode *n) printf("typedef %sType ENUM (\n", n->name); else return; - + print_enum_typedef(type); printf(")\n\n"); @@ -476,7 +476,7 @@ static void print_typdefs(SmiNode *n) { SmiNode *p; - + p = n; n = smiGetFirstChildNode(n); while (n != NULL) { diff --git a/contrib/bsnmp/gensnmptree/gensnmptree.1 b/contrib/bsnmp/gensnmptree/gensnmptree.1 index f9d8d53..c0046b5c 100644 --- a/contrib/bsnmp/gensnmptree/gensnmptree.1 +++ b/contrib/bsnmp/gensnmptree/gensnmptree.1 @@ -7,7 +7,7 @@ .\" All rights reserved. .\" .\" Author: Harti Brandt <harti@FreeBSD.org> -.\" +.\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: @@ -16,7 +16,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" +.\" .\" THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/gensnmptree/gensnmptree.c b/contrib/bsnmp/gensnmptree/gensnmptree.c index 0eca777..f2dc4fd 100644 --- a/contrib/bsnmp/gensnmptree/gensnmptree.c +++ b/contrib/bsnmp/gensnmptree/gensnmptree.c @@ -8,7 +8,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -17,7 +17,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -738,7 +738,7 @@ parse_type(enum tok *tok, struct type *t, const char *vname) e->value = -(long)val; } else e->value = val; - + if (*tok != TOK_NUM) report("need value for ENUM/BITS"); if (gettoken() != TOK_STR) diff --git a/contrib/bsnmp/lib/asn1.3 b/contrib/bsnmp/lib/asn1.3 index 419a929..a9cf117 100644 --- a/contrib/bsnmp/lib/asn1.3 +++ b/contrib/bsnmp/lib/asn1.3 @@ -5,9 +5,9 @@ .\" Copyright (c) 2001-2003 .\" Fraunhofer Institute for Open Communication Systems (FhG Fokus). .\" All rights reserved. -.\" +.\" .\" Author: Harti Brandt <harti@FreeBSD.org> -.\" +.\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: @@ -16,7 +16,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" +.\" .\" THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/lib/asn1.c b/contrib/bsnmp/lib/asn1.c index 0c9d09a..03b5662 100644 --- a/contrib/bsnmp/lib/asn1.c +++ b/contrib/bsnmp/lib/asn1.c @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -285,7 +285,7 @@ asn_put_real_integer(struct asn_buf *b, u_char type, int64_t ival) enum asn_err ret; if (ival < 0) { - /* this may fail if |INT64_MIN| > |INT64_MAX| and + /* this may fail if |INT64_MIN| > |INT64_MAX| and * the value is between * INT64_MIN <= ival < -(INT64_MAX+1) */ val = (uint64_t)-(ival + 1); neg = 1; @@ -890,7 +890,7 @@ asn_slice_oid(struct asn_oid *dest, const struct asn_oid *src, memcpy(dest->subs, &src->subs[from], dest->len * sizeof(dest->subs[0])); } -/* +/* * Append from to to */ void diff --git a/contrib/bsnmp/lib/asn1.h b/contrib/bsnmp/lib/asn1.h index cf9a727..4aded8a 100644 --- a/contrib/bsnmp/lib/asn1.h +++ b/contrib/bsnmp/lib/asn1.h @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/lib/bsnmpagent.3 b/contrib/bsnmp/lib/bsnmpagent.3 index 6b9c719..f9f2a7c 100644 --- a/contrib/bsnmp/lib/bsnmpagent.3 +++ b/contrib/bsnmp/lib/bsnmpagent.3 @@ -7,7 +7,7 @@ .\" All rights reserved. .\" .\" Author: Harti Brandt <harti@FreeBSD.org> -.\" +.\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: @@ -16,7 +16,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" +.\" .\" THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/lib/bsnmpclient.3 b/contrib/bsnmp/lib/bsnmpclient.3 index d4af60e..3b81d20 100644 --- a/contrib/bsnmp/lib/bsnmpclient.3 +++ b/contrib/bsnmp/lib/bsnmpclient.3 @@ -7,7 +7,7 @@ .\" All rights reserved. .\" .\" Author: Harti Brandt <harti@FreeBSD.org> -.\" +.\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: @@ -16,7 +16,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" +.\" .\" THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -31,7 +31,7 @@ .\" .\" $Begemot: bsnmp/lib/bsnmpclient.3,v 1.12 2005/10/04 08:46:50 brandt_h Exp $ .\" -.Dd September 9, 2010 +.Dd December 31, 2016 .Dt BSNMPCLIENT 3 .Os .Sh NAME @@ -208,13 +208,13 @@ The community name to be used for SET requests. The default is .Sq private . .It Va identifier -The message indentifier value to be used with SNMPv3 PDUs. Incremented with +The message identifier value to be used with SNMPv3 PDUs. Incremented with each transmitted PDU. .It Va security_model The security model to be used with SNMPv3 PDUs. Currently only User-Based Security model specified by RFC 3414 (value 3) is supported. .It Va engine -The authorative SNMP engine parameters to be used with SNMPv3 PDUs. +The authoritive SNMP engine parameters to be used with SNMPv3 PDUs. .It Va user The USM SNMP user credentials to be used with SNMPv3 PDUs. .It Va clen @@ -413,7 +413,7 @@ response is received. When a response is received or the retransmission count is exceeded the callback .Fa func -is called with the orignal request PDU, the response PDU and the user argument +is called with the original request PDU, the response PDU and the user argument .Fa uarg . If the retransmit count is exceeded, .Fa func @@ -648,7 +648,7 @@ If a response was received 0 is returned. .Pp The function .Fn snmp_discover_engine -is used to discover the authorative snmpEngineId of a remote SNMPv3 agent. +is used to discover the authoritative snmpEngineId of a remote SNMPv3 agent. A request PDU with empty USM user name is sent and the client's engine parameters are set according to the snmpEngine parameters received in the response PDU. @@ -656,10 +656,10 @@ If the client is configured to use authentication and/or privacy and the snmpEngineBoots and/or snmpEngineTime in the response had zero values, an additional request (possibly encrypted) with the appropriate user credentials is sent to fetch the missing values. -Note, that the function blocks until the discovery proccess is completed. +Note, that the function blocks until the discovery process is completed. If no response could be received after all timeouts and retries, or the response contained errors the function returns -1. -If the discovery proccess was completed 0 is returned. +If the discovery process was completed 0 is returned. .Pp The function .Fn snmp_parse_server diff --git a/contrib/bsnmp/lib/bsnmplib.3 b/contrib/bsnmp/lib/bsnmplib.3 index 12d676a..05734e8 100644 --- a/contrib/bsnmp/lib/bsnmplib.3 +++ b/contrib/bsnmp/lib/bsnmplib.3 @@ -13,7 +13,7 @@ .\" All rights reserved. .\" .\" Author: Harti Brandt <harti@FreeBSD.org> -.\" +.\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: @@ -22,7 +22,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" +.\" .\" THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -37,7 +37,7 @@ .\" .\" $Begemot: bsnmp/lib/bsnmplib.3,v 1.9 2005/10/04 08:46:51 brandt_h Exp $ .\" -.Dd December 19, 2010 +.Dd December 31, 2016 .Dt BSNMPLIB 3 .Os .Sh NAME @@ -381,7 +381,7 @@ The function verifies the authentication parameter contained in the PDU (if present) and if the PDU is encrypted, decrypts the PDU contents pointed to by .Fa buf . -If successfull, a plain text scoped PDU is stored in the buffer. +If successful, a plain text scoped PDU is stored in the buffer. .Pp The function .Fn snmp_pdu_init_secparams @@ -477,7 +477,7 @@ The requested securityLevel contained in the PDU is not supported. The PDU authentication parameter received in the PDU did not match the calculated message digest. .It Bq Er SNMP_CODE_EDECRYPT -Error occured while trying to decrypt the PDU. +Error occurred while trying to decrypt the PDU. .El .Pp .Fn snmp_pdu_encode diff --git a/contrib/bsnmp/lib/snmp.c b/contrib/bsnmp/lib/snmp.c index 6b9e3e8..68f46f9 100644 --- a/contrib/bsnmp/lib/snmp.c +++ b/contrib/bsnmp/lib/snmp.c @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Copyright (c) 2010 The FreeBSD Foundation * All rights reserved. * @@ -19,7 +19,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -38,19 +38,21 @@ */ #include <sys/types.h> #include <sys/socket.h> +#include <ctype.h> +#include <errno.h> +#include <netdb.h> #include <stdio.h> #include <stdlib.h> #include <stddef.h> #include <stdarg.h> +#include <string.h> #ifdef HAVE_STDINT_H #include <stdint.h> #elif defined(HAVE_INTTYPES_H) #include <inttypes.h> #endif -#include <string.h> -#include <ctype.h> -#include <netdb.h> -#include <errno.h> +#include <netinet/in.h> +#include <arpa/inet.h> #include "asn1.h" #include "snmp.h" @@ -355,8 +357,8 @@ static enum snmp_code pdu_encode_secparams(struct asn_buf *b, struct snmp_pdu *pdu) { u_char buf[256], *sptr; - struct asn_buf tb; - size_t auth_off, moved = 0; + struct asn_buf tb; + size_t auth_off, moved = 0; auth_off = 0; memset(buf, 0, 256); @@ -682,7 +684,7 @@ snmp_pdu_snoop(const struct asn_buf *b0) struct asn_buf b = *b0; /* <0x10|0x20> <len> <data...> */ - + if (b.asn_len == 0) return (0); if (b.asn_cptr[0] != (ASN_TYPE_SEQUENCE | ASN_TYPE_CONSTRUCTED)) { @@ -757,7 +759,7 @@ snmp_pdu_encode_header(struct asn_buf *b, struct snmp_pdu *pdu) if (asn_put_temp_header(b, (ASN_TYPE_SEQUENCE | ASN_TYPE_CONSTRUCTED), &v3_hdr_ptr) != ASN_ERR_OK) return (SNMP_CODE_FAILED); - + if (asn_put_integer(b, pdu->identifier) != ASN_ERR_OK) return (SNMP_CODE_FAILED); @@ -1384,29 +1386,16 @@ snmp_value_parse(const char *str, enum snmp_syntax syntax, union snmp_values *v) case SNMP_SYNTAX_IPADDRESS: { struct hostent *he; - u_long ip[4]; - int n; - - if (sscanf(str, "%lu.%lu.%lu.%lu%n", &ip[0], &ip[1], &ip[2], - &ip[3], &n) == 4 && (size_t)n == strlen(str) && - ip[0] <= 0xff && ip[1] <= 0xff && - ip[2] <= 0xff && ip[3] <= 0xff) { - v->ipaddress[0] = (u_char)ip[0]; - v->ipaddress[1] = (u_char)ip[1]; - v->ipaddress[2] = (u_char)ip[2]; - v->ipaddress[3] = (u_char)ip[3]; - return (0); - } - if ((he = gethostbyname(str)) == NULL) + if (inet_pton(AF_INET, str, &v->ipaddress) == 1) + return (0); + if ((he = gethostbyname2(str, AF_INET)) == NULL) return (-1); if (he->h_addrtype != AF_INET) return (-1); - v->ipaddress[0] = he->h_addr[0]; - v->ipaddress[1] = he->h_addr[1]; - v->ipaddress[2] = he->h_addr[2]; - v->ipaddress[3] = he->h_addr[3]; + memcpy(v->ipaddress, he->h_addr, sizeof(v->ipaddress)); + return (0); } diff --git a/contrib/bsnmp/lib/snmp.h b/contrib/bsnmp/lib/snmp.h index 4657336..61e783e 100644 --- a/contrib/bsnmp/lib/snmp.h +++ b/contrib/bsnmp/lib/snmp.h @@ -4,14 +4,14 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Copyright (c) 2010 The FreeBSD Foundation * All rights reserved. * * Portions of this software were developed by Shteryana Sotirova Shopova * under sponsorship from the FreeBSD Foundation. * - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -20,7 +20,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/lib/snmpagent.c b/contrib/bsnmp/lib/snmpagent.c index a425c37..8393aec 100644 --- a/contrib/bsnmp/lib/snmpagent.c +++ b/contrib/bsnmp/lib/snmpagent.c @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -515,7 +515,7 @@ snmp_getbulk(struct snmp_pdu *pdu, struct asn_buf *resp_b, /* PDU is full */ goto done; - if (cnt == 0) + if (cnt == 0) result = do_getnext(&context, &pdu->bindings[i], &resp->bindings[resp->nbindings], pdu); else @@ -689,7 +689,7 @@ snmp_set(struct snmp_pdu *pdu, struct asn_buf *resp_b, if (snmp_pdu_encode_header(resp_b, resp)) return (SNMP_RET_IGN); - /* + /* * 1. Find all nodes, check that they are writeable and * that the syntax is ok, copy over the binding to the response. */ @@ -967,7 +967,7 @@ snmp_dep_lookup(struct snmp_context *ctx, const struct asn_oid *obj, /* * Make an error response from a PDU. We do this without decoding the * variable bindings. This means we can sent the junk back to a caller - * that has sent us junk in the first place. + * that has sent us junk in the first place. */ enum snmp_ret snmp_make_errresp(const struct snmp_pdu *pdu, struct asn_buf *pdu_b, diff --git a/contrib/bsnmp/lib/snmpagent.h b/contrib/bsnmp/lib/snmpagent.h index 66019c9..204b517 100644 --- a/contrib/bsnmp/lib/snmpagent.h +++ b/contrib/bsnmp/lib/snmpagent.h @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/lib/snmpclient.c b/contrib/bsnmp/lib/snmpclient.c index 8610a4d..90b7d4a 100644 --- a/contrib/bsnmp/lib/snmpclient.c +++ b/contrib/bsnmp/lib/snmpclient.c @@ -8,7 +8,7 @@ * * Author: Harti Brandt <harti@freebsd.org> * Kendy Kutzner - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -17,7 +17,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -68,7 +68,7 @@ struct snmp_client snmp_client; /* List of all outstanding requests */ -struct sent_pdu { +struct sent_pdu { int reqid; struct snmp_pdu *pdu; struct timeval time; @@ -510,7 +510,7 @@ table_check_response(struct tabwork *work, const struct snmp_pdu *resp) table_free(work, 1); return (-2); } - + continue; } if (!asn_is_suboid(&work->descr->table, &b->var) || @@ -754,7 +754,7 @@ snmp_oid_append(struct asn_oid *oid, const char *fmt, ...) ret = 0; while (*fmt != '\0') { switch (*fmt++) { - case 'i': + case 'i': /* just an integer more */ if (oid->len + 1 > ASN_MAXOIDLEN) { warnx("%s: OID too long for integer", __func__); @@ -804,7 +804,7 @@ snmp_oid_append(struct asn_oid *oid, const char *fmt, ...) break; case 'b': - /* append `size` characters */ + /* append `size` characters */ str = (const u_char *)va_arg(va, const char *); if (oid->len + size > ASN_MAXOIDLEN) { warnx("%s: OID too long for string", __func__); @@ -852,7 +852,7 @@ snmp_client_init(struct snmp_client *c) strcpy(c->read_community, "public"); strcpy(c->write_community, "private"); - + c->security_model = SNMP_SECMODEL_USM; strcpy(c->cname, ""); @@ -863,7 +863,7 @@ snmp_client_init(struct snmp_client *c) c->txbuflen = c->rxbuflen = 10000; c->fd = -1; - + c->max_reqid = INT32_MAX; c->min_reqid = 0; c->next_reqid = 0; @@ -1214,7 +1214,7 @@ snmp_next_reqid(struct snmp_client * c) int32_t i; i = c->next_reqid; - if (c->next_reqid >= c->max_reqid) + if (c->next_reqid >= c->max_reqid) c->next_reqid = c->min_reqid; else c->next_reqid++; @@ -1230,29 +1230,29 @@ snmp_send_packet(struct snmp_pdu * pdu) u_char *buf; struct asn_buf b; ssize_t ret; - + if ((buf = malloc(snmp_client.txbuflen)) == NULL) { seterr(&snmp_client, "%s", strerror(errno)); return (-1); } - pdu->request_id = snmp_next_reqid(&snmp_client); + pdu->request_id = snmp_next_reqid(&snmp_client); - b.asn_ptr = buf; - b.asn_len = snmp_client.txbuflen; - if (snmp_pdu_encode(pdu, &b)) { + b.asn_ptr = buf; + b.asn_len = snmp_client.txbuflen; + if (snmp_pdu_encode(pdu, &b)) { seterr(&snmp_client, "%s", strerror(errno)); free(buf); return (-1); } - if (snmp_client.dump_pdus) - snmp_pdu_dump(pdu); + if (snmp_client.dump_pdus) + snmp_pdu_dump(pdu); - if ((ret = send(snmp_client.fd, buf, b.asn_ptr - buf, 0)) == -1) { + if ((ret = send(snmp_client.fd, buf, b.asn_ptr - buf, 0)) == -1) { seterr(&snmp_client, "%s", strerror(errno)); free(buf); - return (-1); + return (-1); } free(buf); @@ -1269,7 +1269,7 @@ snmp_timeout(void * listentry_ptr) #if 0 warnx("snmp request %i timed out, attempt (%i/%i)", - listentry->reqid, listentry->retrycount, snmp_client.retries); + listentry->reqid, listentry->retrycount, snmp_client.retries); #endif listentry->retrycount++; @@ -1314,7 +1314,7 @@ snmp_pdu_send(struct snmp_pdu *pdu, snmp_send_cb_f func, void *arg) listentry->callback = func; listentry->arg = arg; listentry->retrycount=1; - listentry->timeout_id = + listentry->timeout_id = snmp_client.timeout_start(&snmp_client.timeout, snmp_timeout, listentry); @@ -1463,7 +1463,7 @@ snmp_receive_packet(struct snmp_pdu *pdu, struct timeval *tv) return (+1); } -static int +static int snmp_deliver_packet(struct snmp_pdu * resp) { struct sent_pdu *listentry; @@ -1548,7 +1548,7 @@ ok_getnext(const struct snmp_pdu * req, const struct snmp_pdu * resp) &resp->bindings[i].var)) { if (i != 0) warnx("SNMP GETNEXT: inconsistent table " - "response"); + "response"); return (0); } if (resp->version != SNMP_V1 && @@ -1654,7 +1654,7 @@ ok_set(const struct snmp_pdu * req, const struct snmp_pdu * resp) /* * Simple checks for response PDUs against request PDUs. Return values: 1=ok, - * 0=nosuchname or similar, -1=failure, -2=no response at all + * 0=nosuchname or similar, -1=failure, -2=no response at all */ int snmp_pdu_check(const struct snmp_pdu *req, @@ -1681,12 +1681,12 @@ snmp_pdu_check(const struct snmp_pdu *req, int snmp_dialog(struct snmp_v1_pdu *req, struct snmp_v1_pdu *resp) { - u_int i; - int32_t reqid; - int ret; - struct timeval tv = snmp_client.timeout; + struct timeval tv = snmp_client.timeout; struct timeval end; struct snmp_pdu pdu; + int ret; + int32_t reqid; + u_int i; /* * Make a copy of the request and replace the syntaxes by NULL @@ -1698,11 +1698,11 @@ snmp_dialog(struct snmp_v1_pdu *req, struct snmp_v1_pdu *resp) for (i = 0; i < pdu.nbindings; i++) pdu.bindings[i].syntax = SNMP_SYNTAX_NULL; } - - for (i = 0; i <= snmp_client.retries; i++) { + + for (i = 0; i <= snmp_client.retries; i++) { (void)gettimeofday(&end, NULL); timeradd(&end, &snmp_client.timeout, &end); - if ((reqid = snmp_send_packet(&pdu)) == -1) + if ((reqid = snmp_send_packet(&pdu)) == -1) return (-1); for (;;) { (void)gettimeofday(&tv, NULL); @@ -1717,16 +1717,16 @@ snmp_dialog(struct snmp_v1_pdu *req, struct snmp_v1_pdu *resp) if (reqid == resp->request_id) return (0); /* not for us */ - (void)snmp_deliver_packet(resp); + (void)snmp_deliver_packet(resp); } if (ret < 0 && errno == EPIPE) /* stream closed */ return (-1); } - } + } errno = ETIMEDOUT; seterr(&snmp_client, "retry count exceeded"); - return (-1); + return (-1); } int @@ -1793,12 +1793,14 @@ snmp_discover_engine(char *passwd) return (0); } + snmp_pdu_free(&req); + snmp_pdu_create(&req, SNMP_PDU_GET); req.engine.engine_boots = 0; req.engine.engine_time = 0; if (snmp_dialog(&req, &resp) == -1) - return (-1); + return (-1); if (resp.version != req.version) { seterr(&snmp_client, "wrong version"); @@ -1813,6 +1815,9 @@ snmp_discover_engine(char *passwd) snmp_client.engine.engine_boots = resp.engine.engine_boots; snmp_client.engine.engine_time = resp.engine.engine_time; + snmp_pdu_free(&req); + snmp_pdu_free(&resp); + return (0); } @@ -1937,20 +1942,18 @@ snmp_parse_server(struct snmp_client *sc, const char *str) } /* port */ free(sc->cport); - if ((sc->cport = malloc(strlen(p + 1) + 1)) == NULL) { + if ((sc->cport = strdup(p + 1)) == NULL) { seterr(sc, "%s", strerror(errno)); return (-1); } - strcpy(sc->cport, p + 1); } else if (p > s) { /* host */ free(sc->chost); - if ((sc->chost = malloc(strlen(s) + 1)) == NULL) { + if ((sc->chost = strdup(s)) == NULL) { seterr(sc, "%s", strerror(errno)); return (-1); } - strcpy(sc->chost, s); } return (0); } diff --git a/contrib/bsnmp/lib/snmpclient.h b/contrib/bsnmp/lib/snmpclient.h index 619f726..e7454b1 100644 --- a/contrib/bsnmp/lib/snmpclient.h +++ b/contrib/bsnmp/lib/snmpclient.h @@ -5,7 +5,7 @@ * * Author: Harti Brandt <harti@freebsd.org> * Kendy Kutzner - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -14,7 +14,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -59,7 +59,7 @@ typedef void (*snmp_send_cb_f)(struct snmp_pdu *, struct snmp_pdu *, void *); typedef void (*snmp_timeout_cb_f)(void * ); /* timeout start function */ -typedef void *(*snmp_timeout_start_f)(struct timeval *timeout, +typedef void *(*snmp_timeout_start_f)(struct timeval *timeout, snmp_timeout_cb_f callback, void *); /* timeout stop function */ diff --git a/contrib/bsnmp/lib/snmpcrypto.c b/contrib/bsnmp/lib/snmpcrypto.c index 05860d6..82c8660 100644 --- a/contrib/bsnmp/lib/snmpcrypto.c +++ b/contrib/bsnmp/lib/snmpcrypto.c @@ -322,7 +322,7 @@ snmp_calc_keychange(struct snmp_user *user, uint8_t *keychange) for (i = 0; i < keylen / 4; i++) rvalue[i] = random(); - + memcpy(keychange, user->auth_key, keylen); memcpy(keychange + keylen, rvalue, keylen); diff --git a/contrib/bsnmp/lib/snmppriv.h b/contrib/bsnmp/lib/snmppriv.h index c0e4479..5b66992 100644 --- a/contrib/bsnmp/lib/snmppriv.h +++ b/contrib/bsnmp/lib/snmppriv.h @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/lib/support.c b/contrib/bsnmp/lib/support.c index 391c152..6a759b3 100644 --- a/contrib/bsnmp/lib/support.c +++ b/contrib/bsnmp/lib/support.c @@ -1,10 +1,10 @@ -/* +/* * Copyright (C) 2004 * Hartmut Brandt. * All rights reserved. - * + * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/lib/support.h b/contrib/bsnmp/lib/support.h index 415c85b..29dbe4d 100644 --- a/contrib/bsnmp/lib/support.h +++ b/contrib/bsnmp/lib/support.h @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/snmp_mibII/mibII.c b/contrib/bsnmp/snmp_mibII/mibII.c index 9079d1d..85c61d5 100644 --- a/contrib/bsnmp/snmp_mibII/mibII.c +++ b/contrib/bsnmp/snmp_mibII/mibII.c @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -204,7 +204,7 @@ mib_if_set_dyn(const char *name) return; if ((d = malloc(sizeof(*d))) == NULL) err(1, NULL); - strcpy(d->name, name); + strlcpy(d->name, name, sizeof(d->name)); SLIST_INSERT_HEAD(&mibdynif_list, d, link); } @@ -707,10 +707,11 @@ mibif_free(struct mibif *ifp) } free(ifp->private); - if (ifp->physaddr != NULL) - free(ifp->physaddr); - if (ifp->specmib != NULL) - free(ifp->specmib); + ifp->private = NULL; + free(ifp->physaddr); + ifp->physaddr = NULL; + free(ifp->specmib); + ifp->specmib = NULL; STAILQ_FOREACH(map, &mibindexmap_list, link) if (map->mibif == ifp) { @@ -745,8 +746,8 @@ mibif_free(struct mibif *ifp) at = at1; } - free(ifp); + ifp = NULL; mib_if_number--; mib_iftable_last_change = this_tick; } @@ -773,8 +774,8 @@ mibif_create(u_int sysindex, const char *name) memset(ifp->private, 0, sizeof(struct mibif_private)); ifp->sysindex = sysindex; - strcpy(ifp->name, name); - strcpy(ifp->descr, name); + strlcpy(ifp->name, name, sizeof(ifp->name)); + strlcpy(ifp->descr, name, sizeof(ifp->descr)); ifp->spec_oid = oid_zeroDotZero; map = NULL; @@ -1228,7 +1229,7 @@ mib_fetch_rtab(int af, int info, int arg, size_t *lenp) return (NULL); } buf = newbuf; - + if (sysctl(name, 6, buf, lenp, NULL, 0) == 0) break; @@ -1308,8 +1309,7 @@ update_ifa_info(void) /* * Update arp table - * -*/ + */ void mib_arp_update(void) { @@ -1329,7 +1329,7 @@ mib_arp_update(void) in_update_arp = 0; return; } - + next = buf; while (next < buf + needed) { rtm = (struct rt_msghdr *)(void *)next; @@ -1351,7 +1351,7 @@ mib_arp_update(void) /* - * Intput on the routing socket. + * Input on the routing socket. */ static void route_input(int fd, void *udata __unused) @@ -1521,7 +1521,7 @@ mib_unmodify_ifa(struct mibifa *ifa) } /* - * Modify an IFA. + * Modify an IFA. */ int mib_modify_ifa(struct mibifa *ifa) diff --git a/contrib/bsnmp/snmp_mibII/mibII.h b/contrib/bsnmp/snmp_mibII/mibII.h index f7b230d..4d82530 100644 --- a/contrib/bsnmp/snmp_mibII/mibII.h +++ b/contrib/bsnmp/snmp_mibII/mibII.h @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/snmp_mibII/mibII_begemot.c b/contrib/bsnmp/snmp_mibII/mibII_begemot.c index b502e95..3ea1499 100644 --- a/contrib/bsnmp/snmp_mibII/mibII_begemot.c +++ b/contrib/bsnmp/snmp_mibII/mibII_begemot.c @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -37,7 +37,7 @@ * Scalars */ int -op_begemot_mibII(struct snmp_context *ctx __unused, struct snmp_value *value, +op_begemot_mibII(struct snmp_context *ctx, struct snmp_value *value, u_int sub, u_int idx __unused, enum snmp_op op) { switch (op) { diff --git a/contrib/bsnmp/snmp_mibII/mibII_ifmib.c b/contrib/bsnmp/snmp_mibII/mibII_ifmib.c index fb2c620..7eb01c4 100644 --- a/contrib/bsnmp/snmp_mibII/mibII_ifmib.c +++ b/contrib/bsnmp/snmp_mibII/mibII_ifmib.c @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/snmp_mibII/mibII_ifstack.c b/contrib/bsnmp/snmp_mibII/mibII_ifstack.c index ac3ffeb..38c07c2 100644 --- a/contrib/bsnmp/snmp_mibII/mibII_ifstack.c +++ b/contrib/bsnmp/snmp_mibII/mibII_ifstack.c @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/snmp_mibII/mibII_interfaces.c b/contrib/bsnmp/snmp_mibII/mibII_interfaces.c index 9bd7942..c0f61c7 100644 --- a/contrib/bsnmp/snmp_mibII/mibII_interfaces.c +++ b/contrib/bsnmp/snmp_mibII/mibII_interfaces.c @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/snmp_mibII/mibII_ip.c b/contrib/bsnmp/snmp_mibII/mibII_ip.c index 1e33dc9..8290eeb 100644 --- a/contrib/bsnmp/snmp_mibII/mibII_ip.c +++ b/contrib/bsnmp/snmp_mibII/mibII_ip.c @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/snmp_mibII/mibII_ipaddr.c b/contrib/bsnmp/snmp_mibII/mibII_ipaddr.c index d1821ec..ecf67f2 100644 --- a/contrib/bsnmp/snmp_mibII/mibII_ipaddr.c +++ b/contrib/bsnmp/snmp_mibII/mibII_ipaddr.c @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/snmp_mibII/mibII_nettomedia.c b/contrib/bsnmp/snmp_mibII/mibII_nettomedia.c index 91c9d03..0a05859 100644 --- a/contrib/bsnmp/snmp_mibII/mibII_nettomedia.c +++ b/contrib/bsnmp/snmp_mibII/mibII_nettomedia.c @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/snmp_mibII/mibII_rcvaddr.c b/contrib/bsnmp/snmp_mibII/mibII_rcvaddr.c index 616732f..693901a 100644 --- a/contrib/bsnmp/snmp_mibII/mibII_rcvaddr.c +++ b/contrib/bsnmp/snmp_mibII/mibII_rcvaddr.c @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/snmp_mibII/mibII_route.c b/contrib/bsnmp/snmp_mibII/mibII_route.c index 710ae86..2d449a3 100644 --- a/contrib/bsnmp/snmp_mibII/mibII_route.c +++ b/contrib/bsnmp/snmp_mibII/mibII_route.c @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -257,7 +257,7 @@ mib_fetch_route(void) continue; mib_extract_addrs(rtm->rtm_addrs, (u_char *)(rtm + 1), addrs); - + mib_sroute_process(rtm, addrs[RTAX_GATEWAY], addrs[RTAX_DST], addrs[RTAX_NETMASK]); } diff --git a/contrib/bsnmp/snmp_mibII/mibII_tcp.c b/contrib/bsnmp/snmp_mibII/mibII_tcp.c index a61052d..d208f10 100644 --- a/contrib/bsnmp/snmp_mibII/mibII_tcp.c +++ b/contrib/bsnmp/snmp_mibII/mibII_tcp.c @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/snmp_mibII/mibII_tree.def b/contrib/bsnmp/snmp_mibII/mibII_tree.def index d377538..5a2abb7 100644 --- a/contrib/bsnmp/snmp_mibII/mibII_tree.def +++ b/contrib/bsnmp/snmp_mibII/mibII_tree.def @@ -4,7 +4,7 @@ # All rights reserved. # # Author: Harti Brandt <harti@freebsd.org> -# +# # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: @@ -13,7 +13,7 @@ # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. -# +# # THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/snmp_mibII/mibII_udp.c b/contrib/bsnmp/snmp_mibII/mibII_udp.c index 08e3dd1..5682974 100644 --- a/contrib/bsnmp/snmp_mibII/mibII_udp.c +++ b/contrib/bsnmp/snmp_mibII/mibII_udp.c @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/snmp_mibII/snmp_mibII.3 b/contrib/bsnmp/snmp_mibII/snmp_mibII.3 index d1b5ec3..36653e6 100644 --- a/contrib/bsnmp/snmp_mibII/snmp_mibII.3 +++ b/contrib/bsnmp/snmp_mibII/snmp_mibII.3 @@ -7,7 +7,7 @@ .\" All rights reserved. .\" .\" Author: Harti Brandt <harti@FreeBSD.org> -.\" +.\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: @@ -16,7 +16,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" +.\" .\" THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/snmp_mibII/snmp_mibII.h b/contrib/bsnmp/snmp_mibII/snmp_mibII.h index 91e552e..5df80c8 100644 --- a/contrib/bsnmp/snmp_mibII/snmp_mibII.h +++ b/contrib/bsnmp/snmp_mibII/snmp_mibII.h @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/snmp_ntp/NTP-MIB.txt b/contrib/bsnmp/snmp_ntp/NTP-MIB.txt index ef51470..37418a7 100644 --- a/contrib/bsnmp/snmp_ntp/NTP-MIB.txt +++ b/contrib/bsnmp/snmp_ntp/NTP-MIB.txt @@ -5,7 +5,7 @@ NTP-MIB DEFINITIONS ::= BEGIN IMPORTS - Integer32, IpAddress, MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, + Integer32, IpAddress, MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, enterprises FROM SNMPv2-SMI @@ -14,9 +14,9 @@ IMPORTS ntpMIB MODULE-IDENTITY LAST-UPDATED "199707251530Z" - ORGANIZATION + ORGANIZATION "University of Delaware" - CONTACT-INFO + CONTACT-INFO "Adarsh Sethi Department of Computer & Information Sciences University of Delaware @@ -30,7 +30,7 @@ ntpMIB MODULE-IDENTITY Newark, DE 19716 Tel: +1 302 831 ???? E-mail: mills@ee.udel.edu" - DESCRIPTION + DESCRIPTION "This MIB module defines a MIB which provides mechanisms to monitor and control an NTP server." ::= { udel 3 } @@ -60,18 +60,18 @@ ntpFilter OBJECT IDENTIFIER NTPTimeStamp ::= TEXTUAL-CONVENTION DISPLAY-HINT "4x.4x" STATUS current - DESCRIPTION + DESCRIPTION "" SYNTAX OCTET STRING (SIZE(8)) NTPLeapIndicator ::= TEXTUAL-CONVENTION STATUS current - DESCRIPTION + DESCRIPTION "" SYNTAX INTEGER { noWarning(0), addSecond(1), - subtractSecond(2), + subtractSecond(2), alarm(3) } -- @@ -82,7 +82,7 @@ ntpSysLeap OBJECT-TYPE SYNTAX NTPLeapIndicator MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION " two-bit code warning of an impending leap second to be inserted in the NTP timescale." ::= { ntpSystem 1 } @@ -91,7 +91,7 @@ ntpSysStratum OBJECT-TYPE SYNTAX Integer32 (0..255) MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION " indicating the stratum of the local clock. 0, unspecified 1, primary reference (e.g.,, calibrated atomic clock, @@ -103,7 +103,7 @@ ntpSysPrecision OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "signed integer indicating the precision of the various clocks, in seconds to the nearest power of two." @@ -113,7 +113,7 @@ ntpSysRootDelay OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "the total roundtrip delay to the primary reference source at the root of the synchronization subnet, in seconds" @@ -123,7 +123,7 @@ ntpSysRootDispersion OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "the maximum error relative to the primary reference source at the root of the synchronization subnet, in seconds. Only positive values greater @@ -134,7 +134,7 @@ ntpSysRefId OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION " the particular reference clock. In the case of stratum 0 (unspecified) or stratum 1 (primary reference source), this is a four-octet, left-justified,zero-padded @@ -147,7 +147,7 @@ ntpSysRefTime OBJECT-TYPE SYNTAX NTPTimeStamp MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION " the local time when the local clock was last updated. If the local clock has neverbeen synchronized, the value is zero." @@ -157,7 +157,7 @@ ntpSysPoll OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION " the minimum interval between transmitted messages, in seconds as a power of two. For instance, a value of six indicates a minimum interval of 64 seconds." @@ -167,7 +167,7 @@ ntpSysPeer OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION " the current synchronization source. Usually this will be a pointer to a structure containing the peer variables. The special value NULL indicates there is no @@ -178,7 +178,7 @@ ntpSysPhase OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpSystem 10 } @@ -186,7 +186,7 @@ ntpSysFreq OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpSystem 11 } @@ -194,7 +194,7 @@ ntpSysError OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpSystem 12 } @@ -202,7 +202,7 @@ ntpSysClock OBJECT-TYPE SYNTAX NTPTimeStamp MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "the current local time. Local time is derived from the hardware clock of the particular machine and increments at intervals depending on the design used." @@ -212,7 +212,7 @@ ntpSysSystem OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION " the type of the local Operating System" ::= { ntpSystem 14 } @@ -220,7 +220,7 @@ ntpSysProcessor OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION " the type of the local Processor" ::= { ntpSystem 15 } @@ -236,7 +236,7 @@ ntpPeersVarTable OBJECT-TYPE SYNTAX SEQUENCE OF NtpPeersVarEntry MAX-ACCESS not-accessible STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpPeers 1 } @@ -244,7 +244,7 @@ ntpPeersVarEntry OBJECT-TYPE SYNTAX NtpPeersVarEntry MAX-ACCESS not-accessible STATUS current - DESCRIPTION + DESCRIPTION "" INDEX { ntpPeersAssocId } ::= { ntpPeersVarTable 1 } @@ -281,7 +281,7 @@ ntpPeersAssocId OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpPeersVarEntry 1 } @@ -289,7 +289,7 @@ ntpPeersConfigured OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION " This is a bit indicating that the association was created from configuration information and should not be demobilized if the peer becomes unreachable." @@ -299,7 +299,7 @@ ntpPeersPeerAddress OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION " the Internet address of the peer" ::= { ntpPeersVarEntry 3 } @@ -307,7 +307,7 @@ ntpPeersPeerPort OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION " 16-bit port number of the peer." ::= { ntpPeersVarEntry 4 } @@ -315,7 +315,7 @@ ntpPeersHostAddress OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION " the Internet address of the host" ::= { ntpPeersVarEntry 5 } @@ -323,7 +323,7 @@ ntpPeersHostPort OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION " 16-bit port number of the host" ::= { ntpPeersVarEntry 6 } @@ -331,7 +331,7 @@ ntpPeersLeap OBJECT-TYPE SYNTAX NTPLeapIndicator MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION " two-bit code warning of an impending leap second to be inserted in the NTP timescale." ::= { ntpPeersVarEntry 7 } @@ -339,17 +339,17 @@ ntpPeersLeap OBJECT-TYPE ntpPeersMode OBJECT-TYPE SYNTAX INTEGER { unspecified(0), - symmetricActive(1), + symmetricActive(1), symmetricPassive(2), client(3), - server(4), + server(4), broadcast(5), reservedControl(6), reservedPrivate(7) } MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION " the association mode,with values coded as follows: 0, unspecified @@ -367,7 +367,7 @@ ntpPeersStratum OBJECT-TYPE SYNTAX Integer32 (0..255) MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION " indicating the stratum of the peer clock. 0, unspecified 1, primary reference (e.g.,, calibrated atomic clock, @@ -379,7 +379,7 @@ ntpPeersPeerPoll OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "poll interval of the peer" ::= { ntpPeersVarEntry 10 } @@ -387,7 +387,7 @@ ntpPeersHostPoll OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "poll interval of the host" ::= { ntpPeersVarEntry 11 } @@ -395,7 +395,7 @@ ntpPeersPrecision OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "the same as the systemPrecision except this is for the peer" ::= { ntpPeersVarEntry 12 } @@ -404,7 +404,7 @@ ntpPeersRootDelay OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "the same as the systemRootDealy except this is for the peer" ::= { ntpPeersVarEntry 13 } @@ -413,7 +413,7 @@ ntpPeersRootDispersion OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "the same as the systemDispersion except this is for the peer" ::= { ntpPeersVarEntry 14 } @@ -422,7 +422,7 @@ ntpPeersRefId OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "the same as the systemRefid except this is for the peer" ::= { ntpPeersVarEntry 15 } @@ -431,7 +431,7 @@ ntpPeersRefTime OBJECT-TYPE SYNTAX NTPTimeStamp MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "the same as the systemRefTime except this is for the peer" ::= { ntpPeersVarEntry 16 } @@ -440,7 +440,7 @@ ntpPeersOrgTime OBJECT-TYPE SYNTAX NTPTimeStamp MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION " the local time at the peer when its latest NTP message was sent. If the peer becomes unreachable the value is set to zero." @@ -450,7 +450,7 @@ ntpPeersReceiveTime OBJECT-TYPE SYNTAX NTPTimeStamp MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "the local time when the latest NTP message from the peer arrived. If the peer becomes unreachable the value is set to zero." @@ -460,7 +460,7 @@ ntpPeersTransmitTime OBJECT-TYPE SYNTAX NTPTimeStamp MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "the local time at which the NTP message departed the sender." ::= { ntpPeersVarEntry 19 } @@ -469,7 +469,7 @@ ntpPeersUpdateTime OBJECT-TYPE SYNTAX NTPTimeStamp MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION " " ::= { ntpPeersVarEntry 20 } @@ -477,7 +477,7 @@ ntpPeersReach OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "a shift register of NTP.WINDOW bits used to determine the reachability status of the peer, with bits entering from the least significant (rightmost) end. A peer is @@ -489,7 +489,7 @@ ntpPeersTimer OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpPeersVarEntry 22 } @@ -497,7 +497,7 @@ ntpPeersOffset OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpPeersVarEntry 23 } @@ -505,7 +505,7 @@ ntpPeersDelay OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpPeersVarEntry 24 } @@ -513,7 +513,7 @@ ntpPeersDispersion OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpPeersVarEntry 25 } @@ -532,7 +532,7 @@ ntpFilterPeersVarTable OBJECT-TYPE SYNTAX SEQUENCE OF NtpFilterPeersVarEntry MAX-ACCESS not-accessible STATUS current - DESCRIPTION + DESCRIPTION "This table is an extension of the Peer Variables Table in the Peer Group." ::= { ntpFilter 1 } @@ -541,7 +541,7 @@ ntpFilterPeersVarEntry OBJECT-TYPE SYNTAX NtpFilterPeersVarEntry MAX-ACCESS not-accessible STATUS current - DESCRIPTION + DESCRIPTION "" AUGMENTS { ntpPeersVarEntry } ::= { ntpFilterPeersVarTable 1 } @@ -554,7 +554,7 @@ ntpFilterValidEntries OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "The number of valid entries for a peer in the Filter Register Table." ::= { ntpFilterPeersVarEntry 1 } @@ -566,7 +566,7 @@ ntpFilterRegisterTable OBJECT-TYPE SYNTAX SEQUENCE OF NtpFilterRegisterEntry MAX-ACCESS not-accessible STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpFilter 2 } @@ -574,7 +574,7 @@ ntpFilterRegisterEntry OBJECT-TYPE SYNTAX NtpFilterRegisterEntry MAX-ACCESS not-accessible STATUS current - DESCRIPTION + DESCRIPTION "" INDEX { ntpPeersAssocId, ntpFilterIndex } ::= { ntpFilterRegisterTable 1 } @@ -590,7 +590,7 @@ ntpFilterIndex OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpFilterRegisterEntry 1 } @@ -598,7 +598,7 @@ ntpFilterPeersOffset OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "the offset of the peer clock relative to the local clock in seconds" ::= { ntpFilterRegisterEntry 2 } @@ -607,7 +607,7 @@ ntpFilterPeersDelay OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "roundtrip delay of the peer clock relative to the local clock over the network path between them, in seconds. this variable can take on both positive and negative values, @@ -618,7 +618,7 @@ ntpFilterPeersDispersion OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "the maximum error of the peer clock relative to the local clock over the network path between them, in seconds. Only positive values greater than zero are possible." diff --git a/contrib/bsnmp/snmp_ntp/NTP-PROXY-MIB.txt b/contrib/bsnmp/snmp_ntp/NTP-PROXY-MIB.txt index 233dfec..a356992 100644 --- a/contrib/bsnmp/snmp_ntp/NTP-PROXY-MIB.txt +++ b/contrib/bsnmp/snmp_ntp/NTP-PROXY-MIB.txt @@ -8,7 +8,7 @@ IMPORTS NTPLeapIndicator, NTPTimeStamp FROM NTP-MIB - Integer32, IpAddress, MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, + Integer32, IpAddress, MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, enterprises FROM SNMPv2-SMI @@ -17,23 +17,23 @@ IMPORTS ntpProxyMIB MODULE-IDENTITY LAST-UPDATED "199707251540Z" - ORGANIZATION + ORGANIZATION "University of Delaware" - CONTACT-INFO + CONTACT-INFO "Adarsh Sethi Department of Computer & Information Sciences University of Delaware Newark, DE 19716 Tel: +1 302 831 1945 E-mail: sethi@cis.udel.edu - + David Mills Department of Electrical Engineering University of Delaware Newark, DE 19716 Tel: +1 302 831 ???? E-mail: mills@ee.udel.edu" - DESCRIPTION + DESCRIPTION "This MIB module defines a MIB which provides mechanisms to monitor and control many NTP servers via a Proxy Agent." ::= { enterprises 1277 4 } @@ -58,7 +58,7 @@ ntpProxyControl OBJECT IDENTIFIER NTPRowStatus ::= TEXTUAL-CONVENTION STATUS current - DESCRIPTION + DESCRIPTION "The NTPRowStatus textual convention is modeled after the RowStatus textual convention of RFC 1903, but is simpler because it only allows one create operation (the create- @@ -81,7 +81,7 @@ NTPRowStatus ::= TEXTUAL-CONVENTION create(3) } --- +-- -- Control group -- @@ -93,7 +93,7 @@ ntpProxyControlTable OBJECT-TYPE SYNTAX SEQUENCE OF NtpProxyControlEntry MAX-ACCESS not-accessible STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyControl 1 } @@ -101,7 +101,7 @@ ntpProxyControlEntry OBJECT-TYPE SYNTAX NtpProxyControlEntry MAX-ACCESS not-accessible STATUS current - DESCRIPTION + DESCRIPTION "" INDEX { ntpProxyServerIPAddr } ::= { ntpProxyControlTable 1 } @@ -115,7 +115,7 @@ ntpProxyServerIPAddr OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS not-accessible STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyControlEntry 1 } @@ -123,7 +123,7 @@ ntpProxyControlStatus OBJECT-TYPE SYNTAX NTPRowStatus MAX-ACCESS read-create STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyControlEntry 2 } @@ -135,7 +135,7 @@ ntpProxyServerSystemTable OBJECT-TYPE SYNTAX SEQUENCE OF NtpProxyServerSystemEntry MAX-ACCESS not-accessible STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyControl 2 } @@ -143,7 +143,7 @@ ntpProxyServerSystemEntry OBJECT-TYPE SYNTAX NtpProxyServerSystemEntry MAX-ACCESS not-accessible STATUS current - DESCRIPTION + DESCRIPTION "" INDEX { ntpProxyServerIPAddr } ::= { ntpProxyServerSystemTable 1 } @@ -170,7 +170,7 @@ ntpProxyServerSysLeap OBJECT-TYPE SYNTAX NTPLeapIndicator MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyServerSystemEntry 1 } @@ -178,7 +178,7 @@ ntpProxyServerSysStratum OBJECT-TYPE SYNTAX Integer32 (0..255) MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyServerSystemEntry 2 } @@ -186,7 +186,7 @@ ntpProxyServerSysPrecision OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyServerSystemEntry 3 } @@ -194,7 +194,7 @@ ntpProxyServerSysRootDelay OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyServerSystemEntry 4 } @@ -202,7 +202,7 @@ ntpProxyServerSysRootDispersion OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyServerSystemEntry 5 } @@ -210,7 +210,7 @@ ntpProxyServerSysRefId OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyServerSystemEntry 6 } @@ -218,7 +218,7 @@ ntpProxyServerSysRefTime OBJECT-TYPE SYNTAX NTPTimeStamp MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyServerSystemEntry 7 } @@ -226,7 +226,7 @@ ntpProxyServerSysPoll OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyServerSystemEntry 8 } @@ -234,7 +234,7 @@ ntpProxyServerSysPeer OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyServerSystemEntry 9 } @@ -242,7 +242,7 @@ ntpProxyServerSysPhase OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyServerSystemEntry 10 } @@ -250,7 +250,7 @@ ntpProxyServerSysFreq OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyServerSystemEntry 11 } @@ -258,7 +258,7 @@ ntpProxyServerSysError OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyServerSystemEntry 12 } @@ -266,7 +266,7 @@ ntpProxyServerSysClock OBJECT-TYPE SYNTAX NTPTimeStamp MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyServerSystemEntry 13 } @@ -274,7 +274,7 @@ ntpProxyServerSysSystem OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyServerSystemEntry 14 } @@ -282,7 +282,7 @@ ntpProxyServerSysProcessor OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyServerSystemEntry 15 } @@ -293,7 +293,7 @@ ntpProxyPeersVarTable OBJECT-TYPE SYNTAX SEQUENCE OF NtpProxyPeersVarEntry MAX-ACCESS not-accessible STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyControl 3 } @@ -301,7 +301,7 @@ ntpProxyPeersVarEntry OBJECT-TYPE SYNTAX NtpProxyPeersVarEntry MAX-ACCESS not-accessible STATUS current - DESCRIPTION + DESCRIPTION "" INDEX { ntpProxyServerIPAddr, ntpProxyPeersAssocId } ::= { ntpProxyPeersVarTable 1 } @@ -339,7 +339,7 @@ ntpProxyPeersAssocId OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyPeersVarEntry 1 } @@ -347,7 +347,7 @@ ntpProxyPeersConfigured OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyPeersVarEntry 2 } @@ -355,7 +355,7 @@ ntpProxyPeersPeerAddress OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyPeersVarEntry 3 } @@ -363,7 +363,7 @@ ntpProxyPeersPeerPort OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyPeersVarEntry 4 } @@ -371,7 +371,7 @@ ntpProxyPeersHostAddress OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyPeersVarEntry 5 } @@ -379,7 +379,7 @@ ntpProxyPeersHostPort OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyPeersVarEntry 6 } @@ -387,23 +387,23 @@ ntpProxyPeersLeap OBJECT-TYPE SYNTAX NTPLeapIndicator MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyPeersVarEntry 7 } ntpProxyPeersMode OBJECT-TYPE SYNTAX INTEGER { unspecified(0), - symmetricActive(1), + symmetricActive(1), symmetricPassive(2), client(3), - server(4), + server(4), broadcast(5), reservedControl(6), reservedPrivate(7) } MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyPeersVarEntry 8 } @@ -411,7 +411,7 @@ ntpProxyPeersStratum OBJECT-TYPE SYNTAX Integer32 (0..255) MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyPeersVarEntry 9 } @@ -419,7 +419,7 @@ ntpProxyPeersPeerPoll OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyPeersVarEntry 10 } @@ -427,7 +427,7 @@ ntpProxyPeersHostPoll OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyPeersVarEntry 11 } @@ -435,7 +435,7 @@ ntpProxyPeersPrecision OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyPeersVarEntry 12 } @@ -443,7 +443,7 @@ ntpProxyPeersRootDelay OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyPeersVarEntry 13 } @@ -451,7 +451,7 @@ ntpProxyPeersRootDispersion OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyPeersVarEntry 14 } @@ -459,7 +459,7 @@ ntpProxyPeersRefId OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyPeersVarEntry 15 } @@ -467,7 +467,7 @@ ntpProxyPeersRefTime OBJECT-TYPE SYNTAX NTPTimeStamp MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyPeersVarEntry 16 } @@ -475,7 +475,7 @@ ntpProxyPeersOrgTime OBJECT-TYPE SYNTAX NTPTimeStamp MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyPeersVarEntry 17 } @@ -483,7 +483,7 @@ ntpProxyPeersReceiveTime OBJECT-TYPE SYNTAX NTPTimeStamp MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyPeersVarEntry 18 } @@ -491,7 +491,7 @@ ntpProxyPeersTransmitTime OBJECT-TYPE SYNTAX NTPTimeStamp MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyPeersVarEntry 19 } @@ -499,7 +499,7 @@ ntpProxyPeersUpdateTime OBJECT-TYPE SYNTAX NTPTimeStamp MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyPeersVarEntry 20 } @@ -507,7 +507,7 @@ ntpProxyPeersReach OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyPeersVarEntry 21 } @@ -515,7 +515,7 @@ ntpProxyPeersTimer OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyPeersVarEntry 22 } @@ -523,7 +523,7 @@ ntpProxyPeersOffset OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyPeersVarEntry 23 } @@ -531,7 +531,7 @@ ntpProxyPeersDelay OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyPeersVarEntry 24 } @@ -539,7 +539,7 @@ ntpProxyPeersDispersion OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyPeersVarEntry 25 } @@ -547,7 +547,7 @@ ntpProxyPeersFilterValidEntries OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "The number of valid entries for a peer in the Proxy Filter Register Table. This number can be zero." ::= { ntpProxyPeersVarEntry 26 } @@ -560,7 +560,7 @@ ntpProxyFilterRegisterTable OBJECT-TYPE SYNTAX SEQUENCE OF NtpProxyFilterRegisterEntry MAX-ACCESS not-accessible STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyControl 4 } @@ -568,9 +568,9 @@ ntpProxyFilterRegisterEntry OBJECT-TYPE SYNTAX NtpProxyFilterRegisterEntry MAX-ACCESS not-accessible STATUS current - DESCRIPTION + DESCRIPTION "" - INDEX { ntpProxyServerIPAddr, ntpProxyPeersAssocId, + INDEX { ntpProxyServerIPAddr, ntpProxyPeersAssocId, ntpProxyFilterIndex } ::= { ntpProxyFilterRegisterTable 1 } @@ -585,7 +585,7 @@ ntpProxyFilterIndex OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyFilterRegisterEntry 1 } @@ -593,7 +593,7 @@ ntpProxyFilterPeersOffset OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyFilterRegisterEntry 2 } @@ -601,7 +601,7 @@ ntpProxyFilterPeersDelay OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyFilterRegisterEntry 3 } @@ -609,7 +609,7 @@ ntpProxyFilterPeersDispersion OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current - DESCRIPTION + DESCRIPTION "" ::= { ntpProxyFilterRegisterEntry 4 } diff --git a/contrib/bsnmp/snmp_target/snmp_target.3 b/contrib/bsnmp/snmp_target/snmp_target.3 index 626bb78..c9e01a3 100644 --- a/contrib/bsnmp/snmp_target/snmp_target.3 +++ b/contrib/bsnmp/snmp_target/snmp_target.3 @@ -1,7 +1,7 @@ .\"- .\" Copyright (C) 2010 The FreeBSD Foundation .\" All rights reserved. -.\" +.\" .\" This documentation was written by Shteryana Sotirova Shopova under .\" sponsorship from the FreeBSD Foundation. .\" @@ -13,7 +13,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" +.\" .\" THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/snmp_target/target_snmp.c b/contrib/bsnmp/snmp_target/target_snmp.c index 52b76dc..ed8df74 100644 --- a/contrib/bsnmp/snmp_target/target_snmp.c +++ b/contrib/bsnmp/snmp_target/target_snmp.c @@ -299,7 +299,7 @@ op_snmp_target_addrs(struct snmp_context *ctx __unused, struct snmp_value *val, return (target_delete_address(addrs)); break; default: - break; + break; } return (SNMP_ERR_NOERROR); diff --git a/contrib/bsnmp/snmp_usm/snmp_usm.3 b/contrib/bsnmp/snmp_usm/snmp_usm.3 index ceb62e4..03959ed 100644 --- a/contrib/bsnmp/snmp_usm/snmp_usm.3 +++ b/contrib/bsnmp/snmp_usm/snmp_usm.3 @@ -1,7 +1,7 @@ .\"- .\" Copyright (C) 2010 The FreeBSD Foundation .\" All rights reserved. -.\" +.\" .\" This documentation was written by Shteryana Sotirova Shopova under .\" sponsorship from the FreeBSD Foundation. .\" @@ -13,7 +13,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" +.\" .\" THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/snmp_usm/usm_snmp.c b/contrib/bsnmp/snmp_usm/usm_snmp.c index 6b7d0eb..6ed639a 100644 --- a/contrib/bsnmp/snmp_usm/usm_snmp.c +++ b/contrib/bsnmp/snmp_usm/usm_snmp.c @@ -167,7 +167,7 @@ op_usm_users(struct snmp_context *ctx, struct snmp_value *val, if ((uuser = usm_get_user(&val->var, sub)) == NULL && val->var.subs[sub - 1] != LEAF_usmUserStatus && val->var.subs[sub - 1] != LEAF_usmUserCloneFrom) - return (SNMP_ERR_NOSUCHNAME); + return (SNMP_ERR_NOSUCHNAME); if (community != COMM_INITIALIZE && uuser->type == StorageType_readOnly) @@ -179,7 +179,7 @@ op_usm_users(struct snmp_context *ctx, struct snmp_value *val, case LEAF_usmUserCloneFrom: if (uuser != NULL || usm_user_index_decode(&val->var, - sub, eid, &elen, uname) < 0 || + sub, eid, &elen, uname) < 0 || !(asn_is_suboid(&oid_usmUserSecurityName, &val->v.oid))) return (SNMP_ERR_WRONG_VALUE); if ((clone = usm_get_user(&val->v.oid, sub)) == NULL) @@ -311,7 +311,7 @@ op_usm_users(struct snmp_context *ctx, struct snmp_value *val, } else if (val->v.integer != RowStatus_active && val->v.integer != RowStatus_destroy) return (SNMP_ERR_INCONS_VALUE); - + uuser->status = val->v.integer; break; } @@ -381,7 +381,7 @@ op_usm_users(struct snmp_context *ctx, struct snmp_value *val, usm_delete_user(uuser); break; default: - break; + break; } return (SNMP_ERR_NOERROR); diff --git a/contrib/bsnmp/snmp_vacm/snmp_vacm.3 b/contrib/bsnmp/snmp_vacm/snmp_vacm.3 index dd57f7f..e1213d9 100644 --- a/contrib/bsnmp/snmp_vacm/snmp_vacm.3 +++ b/contrib/bsnmp/snmp_vacm/snmp_vacm.3 @@ -1,7 +1,7 @@ .\"- .\" Copyright (C) 2010 The FreeBSD Foundation .\" All rights reserved. -.\" +.\" .\" This documentation was written by Shteryana Sotirova Shopova under .\" sponsorship from the FreeBSD Foundation. .\" @@ -13,7 +13,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" +.\" .\" THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/snmp_vacm/vacm_snmp.c b/contrib/bsnmp/snmp_vacm/vacm_snmp.c index cdec9f4..61142af 100644 --- a/contrib/bsnmp/snmp_vacm/vacm_snmp.c +++ b/contrib/bsnmp/snmp_vacm/vacm_snmp.c @@ -578,7 +578,7 @@ op_vacm_view(struct snmp_context *ctx, struct snmp_value *val, uint32_t sub, return (vacm_delete_view(view)); break; default: - break; + break; } return (SNMP_ERR_NOERROR); @@ -683,7 +683,7 @@ vacm_append_access_rule_index(struct asn_oid *oid, uint sub, const struct vacm_access *acl) { uint32_t i; - + oid->len = sub + strlen(acl->group->groupname) + strlen(acl->ctx_prefix) + 4; @@ -776,7 +776,7 @@ vacm_get_next_access_rule(const struct asn_oid *oid __unused, uint sub __unused) static int vacm_view_index_decode(const struct asn_oid *oid, uint sub, char *vname, struct asn_oid *view_oid) -{ +{ uint32_t i; int viod_off; diff --git a/contrib/bsnmp/snmpd/BEGEMOT-MIB.txt b/contrib/bsnmp/snmpd/BEGEMOT-MIB.txt index 6f878ff..9d99eab 100644 --- a/contrib/bsnmp/snmpd/BEGEMOT-MIB.txt +++ b/contrib/bsnmp/snmpd/BEGEMOT-MIB.txt @@ -4,7 +4,7 @@ -- All rights reserved. -- -- Author: Harti Brandt <harti@freebsd.org> --- +-- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions -- are met: @@ -13,7 +13,7 @@ -- 2. Redistributions in binary form must reproduce the above copyright -- notice, this list of conditions and the following disclaimer in the -- documentation and/or other materials provided with the distribution. --- +-- -- THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND -- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/snmpd/BEGEMOT-SNMPD.txt b/contrib/bsnmp/snmpd/BEGEMOT-SNMPD.txt index 3262ada..d87e78e 100644 --- a/contrib/bsnmp/snmpd/BEGEMOT-SNMPD.txt +++ b/contrib/bsnmp/snmpd/BEGEMOT-SNMPD.txt @@ -4,7 +4,7 @@ -- All rights reserved. -- -- Author: Harti Brandt <harti@freebsd.org> --- +-- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions -- are met: @@ -13,7 +13,7 @@ -- 2. Redistributions in binary form must reproduce the above copyright -- notice, this list of conditions and the following disclaimer in the -- documentation and/or other materials provided with the distribution. --- +-- -- THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND -- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/snmpd/FOKUS-MIB.txt b/contrib/bsnmp/snmpd/FOKUS-MIB.txt index 3f02f79..d4671e8 100644 --- a/contrib/bsnmp/snmpd/FOKUS-MIB.txt +++ b/contrib/bsnmp/snmpd/FOKUS-MIB.txt @@ -4,7 +4,7 @@ -- All rights reserved. -- -- Author: Harti Brandt <harti@freebsd.org> --- +-- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions -- are met: @@ -13,7 +13,7 @@ -- 2. Redistributions in binary form must reproduce the above copyright -- notice, this list of conditions and the following disclaimer in the -- documentation and/or other materials provided with the distribution. --- +-- -- THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND -- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/snmpd/action.c b/contrib/bsnmp/snmpd/action.c index e8fd715..54a5d29 100644 --- a/contrib/bsnmp/snmpd/action.c +++ b/contrib/bsnmp/snmpd/action.c @@ -7,7 +7,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -16,7 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -38,12 +38,13 @@ #include <sys/sysctl.h> #include <sys/un.h> #include <sys/utsname.h> +#include <ctype.h> +#include <errno.h> +#include <inttypes.h> +#include <stdarg.h> #include <stdio.h> #include <stdlib.h> -#include <stdarg.h> #include <string.h> -#include <ctype.h> -#include <errno.h> #include <syslog.h> #include "snmpmod.h" @@ -170,7 +171,7 @@ init_snmpd_engine(void) } else { memcpy(snmpd_engine.engine_id + snmpd_engine.engine_len, hostid, strlen(hostid)); - snmpd_engine.engine_len += strlen(hostid); + snmpd_engine.engine_len += strlen(hostid); } free(hostid); @@ -219,6 +220,21 @@ save_boots: return (0); } +void +update_snmpd_engine_time(void) +{ + uint64_t etime; + + etime = (get_ticks() - start_tick) / 100ULL; + if (etime < INT32_MAX) + snmpd_engine.engine_time = etime; + else { + start_tick = get_ticks(); + (void)set_snmpd_engine(); + snmpd_engine.engine_time = start_tick; + } +} + /************************************************************* * * System group @@ -1073,7 +1089,7 @@ op_snmp_engine(struct snmp_context *ctx __unused, struct snmp_value *value, ctx->scratch->int1 = snmpd_engine.max_msg_size; snmpd_engine.max_msg_size = value->v.integer; break; - + default: return (SNMP_ERR_NOT_WRITEABLE); } @@ -1103,7 +1119,7 @@ op_snmp_engine(struct snmp_context *ctx __unused, struct snmp_value *value, snmpd_engine.engine_len = ctx->scratch->int1; memcpy(snmpd_engine.engine_id, ctx->scratch->ptr1, ctx->scratch->int1); - } + } free(ctx->scratch->ptr1); } return (SNMP_ERR_NOERROR); @@ -1118,7 +1134,7 @@ op_snmp_engine(struct snmp_context *ctx __unused, struct snmp_value *value, value->v.integer = snmpd_engine.engine_boots; break; case LEAF_snmpEngineTime: - snmpd_engine.engine_time = (get_ticks() - start_tick) / 100ULL; + update_snmpd_engine_time(); value->v.integer = snmpd_engine.engine_time; break; case LEAF_snmpEngineMaxMessageSize: diff --git a/contrib/bsnmp/snmpd/config.c b/contrib/bsnmp/snmpd/config.c index 23e97bd..231aeb5 100644 --- a/contrib/bsnmp/snmpd/config.c +++ b/contrib/bsnmp/snmpd/config.c @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/snmpd/export.c b/contrib/bsnmp/snmpd/export.c index 08fb672..3135606 100644 --- a/contrib/bsnmp/snmpd/export.c +++ b/contrib/bsnmp/snmpd/export.c @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -114,9 +114,11 @@ string_get(struct snmp_value *value, const u_char *ptr, ssize_t len) } if (len == -1) len = strlen(ptr); - value->v.octetstring.len = (u_long)len; - if ((value->v.octetstring.octets = malloc((size_t)len)) == NULL) + if ((value->v.octetstring.octets = malloc((size_t)len)) == NULL) { + value->v.octetstring.len = 0; return (SNMP_ERR_RES_UNAVAIL); + } + value->v.octetstring.len = (u_long)len; memcpy(value->v.octetstring.octets, ptr, (size_t)len); return (SNMP_ERR_NOERROR); } @@ -138,9 +140,11 @@ string_get_max(struct snmp_value *value, const u_char *ptr, ssize_t len, len = strlen(ptr); if ((size_t)len > maxlen) len = maxlen; - value->v.octetstring.len = (u_long)len; - if ((value->v.octetstring.octets = malloc((size_t)len)) == NULL) + if ((value->v.octetstring.octets = malloc((size_t)len)) == NULL) { + value->v.octetstring.len = 0; return (SNMP_ERR_RES_UNAVAIL); + } + value->v.octetstring.len = (u_long)len; memcpy(value->v.octetstring.octets, ptr, (size_t)len); return (SNMP_ERR_NOERROR); } @@ -194,6 +198,7 @@ ip_get(struct snmp_value *value, u_char *valp) value->v.ipaddress[1] = valp[1]; value->v.ipaddress[2] = valp[2]; value->v.ipaddress[3] = valp[3]; + return (SNMP_ERR_NOERROR); } diff --git a/contrib/bsnmp/snmpd/main.c b/contrib/bsnmp/snmpd/main.c index ea87127..2ab8bbd 100644 --- a/contrib/bsnmp/snmpd/main.c +++ b/contrib/bsnmp/snmpd/main.c @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Copyright (c) 2010 The FreeBSD Foundation * All rights reserved. * @@ -19,7 +19,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -53,7 +53,6 @@ #include <unistd.h> #include <signal.h> #include <dlfcn.h> -#include <inttypes.h> #ifdef USE_TCPWRAPPERS #include <arpa/inet.h> @@ -282,12 +281,13 @@ snmp_output(struct snmp_pdu *pdu, u_char *sndbuf, size_t *sndlen, const char *dest) { struct asn_buf resp_b; + enum snmp_code code; resp_b.asn_ptr = sndbuf; resp_b.asn_len = snmpd.txbuf; - if (snmp_pdu_encode(pdu, &resp_b) != 0) { - syslog(LOG_ERR, "cannot encode message"); + if ((code = snmp_pdu_encode(pdu, &resp_b)) != SNMP_CODE_OK) { + syslog(LOG_ERR, "cannot encode message (code=%d)", code); abort(); } if (debug.dump_pdus) { @@ -303,7 +303,6 @@ snmp_output(struct snmp_pdu *pdu, u_char *sndbuf, size_t *sndlen, static enum snmp_code snmp_pdu_auth_user(struct snmp_pdu *pdu) { - uint64_t etime; usm_user = NULL; /* un-authenticated snmpEngineId discovery */ @@ -311,6 +310,7 @@ snmp_pdu_auth_user(struct snmp_pdu *pdu) pdu->engine.engine_len = snmpd_engine.engine_len; memcpy(pdu->engine.engine_id, snmpd_engine.engine_id, snmpd_engine.engine_len); + update_snmpd_engine_time(); pdu->engine.engine_boots = snmpd_engine.engine_boots; pdu->engine.engine_time = snmpd_engine.engine_time; pdu->flags |= SNMP_MSG_AUTODISCOVER; @@ -333,21 +333,14 @@ snmp_pdu_auth_user(struct snmp_pdu *pdu) /* authenticated snmpEngineId discovery */ if ((pdu->flags & SNMP_MSG_AUTH_FLAG) != 0) { - etime = (get_ticks() - start_tick) / 100ULL; - if (etime < INT32_MAX) - snmpd_engine.engine_time = etime; - else { - start_tick = get_ticks(); - set_snmpd_engine(); - snmpd_engine.engine_time = start_tick; - } - + update_snmpd_engine_time(); pdu->user.auth_proto = usm_user->suser.auth_proto; memcpy(pdu->user.auth_key, usm_user->suser.auth_key, sizeof(pdu->user.auth_key)); if (pdu->engine.engine_boots == 0 && pdu->engine.engine_time == 0) { + update_snmpd_engine_time(); pdu->flags |= SNMP_MSG_AUTODISCOVER; return (SNMP_CODE_OK); } @@ -499,6 +492,8 @@ snmp_input_start(const u_char *buf, size_t len, const char *source, b.asn_cptr = buf; b.asn_len = len; + ret = SNMPD_INPUT_OK; + /* look whether we have enough bytes for the entire PDU. */ switch (sret = snmp_pdu_snoop(&b)) { @@ -527,8 +522,6 @@ snmp_input_start(const u_char *buf, size_t len, const char *source, } code = snmp_pdu_decode_scoped(&b, pdu, ip); - ret = SNMPD_INPUT_OK; - decoded: snmpd_stats.inPkts++; @@ -642,6 +635,7 @@ decoded: pdu->engine.engine_time == 0) { asn_append_oid(&(pdu->bindings[pdu->nbindings++].var), &oid_usmNotInTimeWindows); + update_snmpd_engine_time(); pdu->engine.engine_boots = snmpd_engine.engine_boots; pdu->engine.engine_time = snmpd_engine.engine_time; } diff --git a/contrib/bsnmp/snmpd/snmpd.config b/contrib/bsnmp/snmpd/snmpd.config index 23db74c..2b93553 100644 --- a/contrib/bsnmp/snmpd/snmpd.config +++ b/contrib/bsnmp/snmpd/snmpd.config @@ -4,7 +4,7 @@ # All rights reserved. # # Author: Harti Brandt <harti@freebsd.org> -# +# # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: @@ -13,7 +13,7 @@ # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. -# +# # THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/snmpd/snmpd.h b/contrib/bsnmp/snmpd/snmpd.h index e4ec208..009b2e7 100644 --- a/contrib/bsnmp/snmpd/snmpd.h +++ b/contrib/bsnmp/snmpd/snmpd.h @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -332,6 +332,7 @@ int init_actvals(void); extern char engine_file[]; int init_snmpd_engine(void); int set_snmpd_engine(void); +void update_snmpd_engine_time(void); int read_config(const char *, struct lmodule *); int define_macro(const char *name, const char *value); diff --git a/contrib/bsnmp/snmpd/snmpd.sh b/contrib/bsnmp/snmpd/snmpd.sh index d64efc5..8e3e07f 100755 --- a/contrib/bsnmp/snmpd/snmpd.sh +++ b/contrib/bsnmp/snmpd/snmpd.sh @@ -5,7 +5,7 @@ # All rights reserved. # # Author: Harti Brandt <harti@freebsd.org> -# +# # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: @@ -14,7 +14,7 @@ # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. -# +# # THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/snmpd/snmpmod.3 b/contrib/bsnmp/snmpd/snmpmod.3 index 38b3cf1..80a50fc 100644 --- a/contrib/bsnmp/snmpd/snmpmod.3 +++ b/contrib/bsnmp/snmpd/snmpmod.3 @@ -7,7 +7,7 @@ .\" All rights reserved. .\" .\" Author: Harti Brandt <harti@FreeBSD.org> -.\" +.\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: @@ -16,7 +16,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" +.\" .\" THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/snmpd/snmpmod.h b/contrib/bsnmp/snmpd/snmpmod.h index ad73566..c9e609f 100644 --- a/contrib/bsnmp/snmpd/snmpmod.h +++ b/contrib/bsnmp/snmpd/snmpmod.h @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Copyright (c) 2010 The FreeBSD Foundation * All rights reserved. * @@ -19,7 +19,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -317,8 +317,8 @@ struct systemg { u_char *contact; u_char *name; u_char *location; - u_int32_t services; - u_int32_t or_last_change; + uint32_t services; + uint32_t or_last_change; }; extern struct systemg systemg; diff --git a/contrib/bsnmp/snmpd/trans_lsock.c b/contrib/bsnmp/snmpd/trans_lsock.c index 30b66f7..6c168ac 100644 --- a/contrib/bsnmp/snmpd/trans_lsock.c +++ b/contrib/bsnmp/snmpd/trans_lsock.c @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -32,15 +32,15 @@ */ #include <sys/types.h> #include <sys/queue.h> -#include <sys/un.h> #include <sys/stat.h> +#include <sys/un.h> +#include <errno.h> +#include <stddef.h> #include <stdio.h> #include <stdlib.h> -#include <stddef.h> -#include <syslog.h> #include <string.h> -#include <errno.h> +#include <syslog.h> #include <unistd.h> #include "snmpmod.h" @@ -143,16 +143,14 @@ lsock_open_port(u_char *name, size_t namelen, struct lsock_port **pp, return (SNMP_ERR_BADVALUE); } - if ((port = malloc(sizeof(*port))) == NULL) + if ((port = calloc(1, sizeof(*port))) == NULL) return (SNMP_ERR_GENERR); - memset(port, 0, sizeof(*port)); if (!is_stream) { - if ((peer = malloc(sizeof(*peer))) == NULL) { + if ((peer = calloc(1, sizeof(*peer))) == NULL) { free(port); return (SNMP_ERR_GENERR); } - memset(peer, 0, sizeof(*peer)); } if ((port->name = malloc(namelen + 1)) == NULL) { free(port); @@ -258,12 +256,11 @@ lsock_listen_input(int fd, void *udata) struct lsock_port *p = udata; struct lsock_peer *peer; - if ((peer = malloc(sizeof(*peer))) == NULL) { + if ((peer = calloc(1, sizeof(*peer))) == NULL) { syslog(LOG_WARNING, "%s: peer malloc failed", p->name); (void)close(accept(fd, NULL, NULL)); return; } - memset(peer, 0, sizeof(*peer)); peer->port = p; @@ -417,7 +414,7 @@ lsock_send(struct tport *tp, const u_char *buf, size_t len, return (-1); } } - + return (sendto(peer->input.fd, buf, len, 0, addr, addrlen)); } diff --git a/contrib/bsnmp/snmpd/trans_lsock.h b/contrib/bsnmp/snmpd/trans_lsock.h index 779f5ea..26e552e 100644 --- a/contrib/bsnmp/snmpd/trans_lsock.h +++ b/contrib/bsnmp/snmpd/trans_lsock.h @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/snmpd/trans_udp.c b/contrib/bsnmp/snmpd/trans_udp.c index 3faef41..a41d3f0 100644 --- a/contrib/bsnmp/snmpd/trans_udp.c +++ b/contrib/bsnmp/snmpd/trans_udp.c @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/snmpd/trans_udp.h b/contrib/bsnmp/snmpd/trans_udp.h index 29a96db..d383711 100644 --- a/contrib/bsnmp/snmpd/trans_udp.h +++ b/contrib/bsnmp/snmpd/trans_udp.h @@ -4,7 +4,7 @@ * All rights reserved. * * Author: Harti Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/contrib/bsnmp/snmpd/trap.c b/contrib/bsnmp/snmpd/trap.c index aa9dd93..30ff293 100644 --- a/contrib/bsnmp/snmpd/trap.c +++ b/contrib/bsnmp/snmpd/trap.c @@ -19,7 +19,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -214,7 +214,7 @@ trapsink_unmodify(struct trapsink *t, struct trapsink_dep *tdep) t->version = tdep->rb_version; if (tdep->set & TDEP_COMM) strcpy(t->comm, tdep->rb_comm); - + return (SNMP_ERR_NOERROR); } @@ -422,7 +422,7 @@ snmp_create_v1_trap(struct snmp_pdu *pdu, char *com, const struct asn_oid *trap_oid) { memset(pdu, 0, sizeof(*pdu)); - strcpy(pdu->community, com); + strlcpy(pdu->community, com, sizeof(pdu->community)); pdu->version = SNMP_V1; pdu->type = SNMP_PDU_TRAP; @@ -439,7 +439,7 @@ snmp_create_v2_trap(struct snmp_pdu *pdu, char *com, const struct asn_oid *trap_oid) { memset(pdu, 0, sizeof(*pdu)); - strcpy(pdu->community, com); + strlcpy(pdu->community, com, sizeof(pdu->community)); pdu->version = SNMP_V2c; pdu->type = SNMP_PDU_TRAP2; @@ -464,7 +464,6 @@ static void snmp_create_v3_trap(struct snmp_pdu *pdu, struct target_param *target, const struct asn_oid *trap_oid) { - uint64_t etime; struct usm_user *usmuser; memset(pdu, 0, sizeof(*pdu)); @@ -487,14 +486,7 @@ snmp_create_v3_trap(struct snmp_pdu *pdu, struct target_param *target, pdu->nbindings = 2; - etime = (get_ticks() - start_tick) / 100ULL; - if (etime < INT32_MAX) - snmpd_engine.engine_time = etime; - else { - start_tick = get_ticks(); - set_snmpd_engine(); - snmpd_engine.engine_time = start_tick; - } + update_snmpd_engine_time(); memcpy(pdu->engine.engine_id, snmpd_engine.engine_id, snmpd_engine.engine_len); @@ -546,7 +538,7 @@ snmp_send_trap(const struct asn_oid *trap_oid, ...) TAILQ_FOREACH(t, &trapsink_list, link) { if (t->status != TRAPSINK_ACTIVE) continue; - + if (t->version == TRAPSINK_V1) snmp_create_v1_trap(&pdu, t->comm, trap_oid); else diff --git a/contrib/bsnmp/snmpd/tree.def b/contrib/bsnmp/snmpd/tree.def index b45817f..eb8dac2 100644 --- a/contrib/bsnmp/snmpd/tree.def +++ b/contrib/bsnmp/snmpd/tree.def @@ -4,7 +4,7 @@ # All rights reserved. # # Author: Harti Brandt <harti@freebsd.org> -# +# # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: @@ -13,7 +13,7 @@ # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. -# +# # THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -48,7 +48,7 @@ typedef RowStatus ENUM ( (1 system # # The standard System group -# +# (1 sysDescr OCTETSTRING op_system_group GET) (2 sysObjectId OID op_system_group GET) (3 sysUpTime TIMETICKS op_system_group GET) diff --git a/contrib/hyperv/tools/hv_vss_daemon.8 b/contrib/hyperv/tools/hv_vss_daemon.8 new file mode 100644 index 0000000..090690c --- /dev/null +++ b/contrib/hyperv/tools/hv_vss_daemon.8 @@ -0,0 +1,88 @@ +.\" Copyright (c) 2016 Microsoft Corp. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.Dd October 12, 2016 +.Dt HV_VSS_DAEMON 8 +.Os +.Sh NAME +.Nm hv_vss_daemon +.Nd Hyper-V Volume Shadow Copy Service Daemon +.Sh SYNOPSIS +.Nm +.Op Fl dn +.Sh DESCRIPTION +The +.Nm +daemon provides the ability to freeze and thaw the file system for +.Fx +guest partitions running on Hyper-V. +.Pp +Hyper-V allows administrators to backup or restore the +.Fx +guest partition. +Administrators can +use Windows Powershell scripts to backup or restore the +.Fx +VM. +.Pp +The +.Nm +accepts file system freeze and thaw requests from the +.Xr hv_utils 4 +driver and performs the actual file-system operation. +.Pp +The file system freeze and thaw functionality is +useful when the Hyper-V host wants to do live backup of +.Fx +guest. Hyper-V host sends file system freezing request to +.Nm +which conducts the real operation. After successfully freezing file +system, Hyper-V host takes a snapshot of the VM. In the future, +Hyper-V host can restore the +.Fx +VM through that snapshot. +.Pp +The options are as follows: +.Bl -tag -width indent +.It Fl d +Run as regular process instead of a daemon for debugging purpose. +.It Fl n +Generate debugging output. +.El +.Sh SEE ALSO +.Xr hv_vmbus 4 , +.Xr hv_utils 4 , +.Xr hv_netvsc 4 , +.Xr hv_storvsc 4 , +.Xr hv_kvp 4 +.Sh HISTORY +The daemon was introduced in October 2016 and developed by Microsoft Corp. +.Sh AUTHORS +.An -nosplit +.Fx +support for +.Nm +was first added by +.An Microsoft BSD Integration Services Team Aq Mt bsdic@microsoft.com . diff --git a/contrib/hyperv/tools/hv_vss_daemon.c b/contrib/hyperv/tools/hv_vss_daemon.c new file mode 100644 index 0000000..a1ba98d --- /dev/null +++ b/contrib/hyperv/tools/hv_vss_daemon.c @@ -0,0 +1,274 @@ +#include <string.h> +#include <stdio.h> +#include <sys/ioctl.h> +#include <sys/param.h> +#include <sys/ucred.h> +#include <sys/mount.h> +#include <sys/types.h> + +#include <unistd.h> +#include <stdlib.h> +#include <poll.h> +#include <stdint.h> +#include <syslog.h> +#include <errno.h> +#include <err.h> +#include <fcntl.h> +#include <ufs/ffs/fs.h> +#include <paths.h> +#include <sysexits.h> + +#include "hv_snapshot.h" + +#define UNDEF_FREEZE_THAW (0) +#define FREEZE (1) +#define THAW (2) + +#define VSS_LOG(priority, format, args...) do { \ + if (is_debugging == 1) { \ + if (is_daemon == 1) \ + syslog(priority, format, ## args); \ + else \ + printf(format, ## args); \ + } else { \ + if (priority < LOG_DEBUG) { \ + if (is_daemon == 1) \ + syslog(priority, format, ## args); \ + else \ + printf(format, ## args); \ + } \ + } \ + } while(0) + +static int is_daemon = 1; +static int is_debugging = 0; +static int g_ufs_suspend_handle = -1; + +static const char *dev = "/dev"; + +static int +check(void) +{ + struct statfs *mntbuf, *statfsp; + int mntsize; + int i; + + mntsize = getmntinfo(&mntbuf, MNT_NOWAIT); + if (mntsize == 0) { + VSS_LOG(LOG_ERR, "There is no mount information\n"); + return (EINVAL); + } + for (i = mntsize - 1; i >= 0; --i) + { + statfsp = &mntbuf[i]; + + if (strncmp(statfsp->f_mntonname, dev, strlen(dev)) == 0) { + continue; /* skip to freeze '/dev' */ + } else if (statfsp->f_flags & MNT_RDONLY) { + continue; /* skip to freeze RDONLY partition */ + } else if (strncmp(statfsp->f_fstypename, "ufs", 3) != 0) { + return (EPERM); /* only UFS can be freezed */ + } + } + + return (0); +} + +static int +freeze(void) +{ + struct statfs *mntbuf, *statfsp; + int mntsize; + int error = 0; + int i; + + g_ufs_suspend_handle = open(_PATH_UFSSUSPEND, O_RDWR); + if (g_ufs_suspend_handle == -1) { + VSS_LOG(LOG_ERR, "unable to open %s", _PATH_UFSSUSPEND); + return (errno); + } + + mntsize = getmntinfo(&mntbuf, MNT_NOWAIT); + if (mntsize == 0) { + VSS_LOG(LOG_ERR, "There is no mount information\n"); + return (EINVAL); + } + for (i = mntsize - 1; i >= 0; --i) + { + statfsp = &mntbuf[i]; + + if (strncmp(statfsp->f_mntonname, dev, strlen(dev)) == 0) { + continue; /* skip to freeze '/dev' */ + } else if (statfsp->f_flags & MNT_RDONLY) { + continue; /* skip to freeze RDONLY partition */ + } else if (strncmp(statfsp->f_fstypename, "ufs", 3) != 0) { + continue; /* only UFS can be freezed */ + } + error = ioctl(g_ufs_suspend_handle, UFSSUSPEND, &statfsp->f_fsid); + if (error != 0) { + VSS_LOG(LOG_ERR, "error: %d\n", errno); + error = errno; + } else { + VSS_LOG(LOG_INFO, "Successfully suspend fs: %s\n", + statfsp->f_mntonname); + } + } + + return (error); +} + +/** + * close the opened handle will thaw the FS. + */ +static int +thaw(void) +{ + int error = 0; + if (g_ufs_suspend_handle != -1) { + error = close(g_ufs_suspend_handle); + if (!error) { + g_ufs_suspend_handle = -1; + VSS_LOG(LOG_INFO, "Successfully thaw the fs\n"); + } else { + error = errno; + VSS_LOG(LOG_ERR, "Fail to thaw the fs: " + "%d %s\n", errno, strerror(errno)); + } + } else { + VSS_LOG(LOG_INFO, "The fs has already been thawed\n"); + } + + return (error); +} + +static void +usage(const char* cmd) +{ + fprintf(stderr, "%s: daemon for UFS file system freeze/thaw\n" + " -d : enable debug log printing. Default is disabled.\n" + " -n : run as a regular process instead of a daemon. Default is a daemon.\n" + " -h : print usage.\n", cmd); + exit(1); +} + +int +main(int argc, char* argv[]) +{ + struct hv_vss_opt_msg userdata; + + struct pollfd hv_vss_poll_fd[1]; + uint32_t op; + int ch, r, error; + int hv_vss_dev_fd; + + while ((ch = getopt(argc, argv, "dnh")) != -1) { + switch (ch) { + case 'n': + /* Run as regular process for debugging purpose. */ + is_daemon = 0; + break; + case 'd': + /* Generate debugging output */ + is_debugging = 1; + break; + case 'h': + default: + usage(argv[0]); + break; + } + } + + openlog("HV_VSS", 0, LOG_USER); + + /* Become daemon first. */ + if (is_daemon == 1) + daemon(1, 0); + else + VSS_LOG(LOG_DEBUG, "Run as regular process.\n"); + + VSS_LOG(LOG_INFO, "HV_VSS starting; pid is: %d\n", getpid()); + + memset(&userdata, 0, sizeof(struct hv_vss_opt_msg)); + /* register the daemon */ + hv_vss_dev_fd = open(VSS_DEV(FS_VSS_DEV_NAME), O_RDWR); + + if (hv_vss_dev_fd < 0) { + VSS_LOG(LOG_ERR, "Fail to open %s, error: %d %s\n", + VSS_DEV(FS_VSS_DEV_NAME), errno, strerror(errno)); + exit(EXIT_FAILURE); + } + hv_vss_poll_fd[0].fd = hv_vss_dev_fd; + hv_vss_poll_fd[0].events = POLLIN | POLLRDNORM; + + while (1) { + r = poll(hv_vss_poll_fd, 1, INFTIM); + + VSS_LOG(LOG_DEBUG, "poll returned r = %d, revent = 0x%x\n", + r, hv_vss_poll_fd[0].revents); + + if (r == 0 || (r < 0 && errno == EAGAIN) || + (r < 0 && errno == EINTR)) { + /* Nothing to read */ + continue; + } + + if (r < 0) { + /* + * For poll return failure other than EAGAIN, + * we want to exit. + */ + VSS_LOG(LOG_ERR, "Poll failed.\n"); + perror("poll"); + exit(EIO); + } + + /* Read from character device */ + error = ioctl(hv_vss_dev_fd, IOCHVVSSREAD, &userdata); + if (error < 0) { + VSS_LOG(LOG_ERR, "Read failed.\n"); + perror("pread"); + exit(EIO); + } + + if (userdata.status != 0) { + VSS_LOG(LOG_ERR, "data read error\n"); + continue; + } + + /* + * We will use the KVP header information to pass back + * the error from this daemon. So, first save the op + * and pool info to local variables. + */ + + op = userdata.opt; + + switch (op) { + case HV_VSS_CHECK: + error = check(); + break; + case HV_VSS_FREEZE: + error = freeze(); + break; + case HV_VSS_THAW: + error = thaw(); + break; + default: + VSS_LOG(LOG_ERR, "Illegal operation: %d\n", op); + error = VSS_FAIL; + } + if (error) + userdata.status = VSS_FAIL; + else + userdata.status = VSS_SUCCESS; + error = ioctl(hv_vss_dev_fd, IOCHVVSSWRITE, &userdata); + if (error != 0) { + VSS_LOG(LOG_ERR, "Fail to write to device\n"); + exit(EXIT_FAILURE); + } else { + VSS_LOG(LOG_INFO, "Send response %d for %s to kernel\n", + userdata.status, op == HV_VSS_FREEZE ? "Freeze" : + (op == HV_VSS_THAW ? "Thaw" : "Check")); + } + } +} diff --git a/contrib/libarchive/NEWS b/contrib/libarchive/NEWS index dd4cfd5..6f16b88 100644 --- a/contrib/libarchive/NEWS +++ b/contrib/libarchive/NEWS @@ -1,3 +1,5 @@ +Oct 26, 2016: Remove liblzmadec support + Oct 23, 2016: libarchive 3.2.2 released Security release diff --git a/contrib/libarchive/cat/bsdcat.c b/contrib/libarchive/cat/bsdcat.c index 9ef75a6..6ba1034 100644 --- a/contrib/libarchive/cat/bsdcat.c +++ b/contrib/libarchive/cat/bsdcat.c @@ -142,5 +142,8 @@ main(int argc, char **argv) bsdcat_next(); } + if (a != NULL) + archive_read_free(a); + exit(exit_status); } diff --git a/contrib/libarchive/cat/test/main.c b/contrib/libarchive/cat/test/main.c index a579842..cdfdd9b 100644 --- a/contrib/libarchive/cat/test/main.c +++ b/contrib/libarchive/cat/test/main.c @@ -520,7 +520,7 @@ _utf8_to_unicode(uint32_t *pwc, const char *s, size_t n) return (0); /* Standard: return 0 for end-of-string. */ cnt = utf8_count[ch]; - /* Invalide sequence or there are not plenty bytes. */ + /* Invalid sequence or there are not plenty bytes. */ if (n < (size_t)cnt) return (-1); @@ -559,7 +559,7 @@ _utf8_to_unicode(uint32_t *pwc, const char *s, size_t n) return (-1); } - /* The code point larger than 0x10FFFF is not leagal + /* The code point larger than 0x10FFFF is not legal * Unicode values. */ if (wc > 0x10FFFF) return (-1); diff --git a/contrib/libarchive/cpio/cpio.c b/contrib/libarchive/cpio/cpio.c index 72fde41..a7a747a 100644 --- a/contrib/libarchive/cpio/cpio.c +++ b/contrib/libarchive/cpio/cpio.c @@ -1324,10 +1324,9 @@ lookup_name(struct cpio *cpio, struct name_cache **name_cache_variable, if (*name_cache_variable == NULL) { - *name_cache_variable = malloc(sizeof(struct name_cache)); + *name_cache_variable = calloc(1, sizeof(struct name_cache)); if (*name_cache_variable == NULL) lafe_errc(1, ENOMEM, "No more memory"); - memset(*name_cache_variable, 0, sizeof(struct name_cache)); (*name_cache_variable)->size = name_cache_size; } diff --git a/contrib/libarchive/cpio/test/main.c b/contrib/libarchive/cpio/test/main.c index d6842f5..d7c0199 100644 --- a/contrib/libarchive/cpio/test/main.c +++ b/contrib/libarchive/cpio/test/main.c @@ -521,7 +521,7 @@ _utf8_to_unicode(uint32_t *pwc, const char *s, size_t n) return (0); /* Standard: return 0 for end-of-string. */ cnt = utf8_count[ch]; - /* Invalide sequence or there are not plenty bytes. */ + /* Invalid sequence or there are not plenty bytes. */ if (n < (size_t)cnt) return (-1); @@ -560,7 +560,7 @@ _utf8_to_unicode(uint32_t *pwc, const char *s, size_t n) return (-1); } - /* The code point larger than 0x10FFFF is not leagal + /* The code point larger than 0x10FFFF is not legal * Unicode values. */ if (wc > 0x10FFFF) return (-1); diff --git a/contrib/libarchive/cpio/test/test_option_J_upper.c b/contrib/libarchive/cpio/test/test_option_J_upper.c index 532aacf..1d7d051 100644 --- a/contrib/libarchive/cpio/test/test_option_J_upper.c +++ b/contrib/libarchive/cpio/test/test_option_J_upper.c @@ -47,10 +47,13 @@ DEFINE_TEST(test_option_J_upper) } failure("-J option is broken"); assertEqualInt(r, 0); - return; + goto done; } + free(p); /* Check that the archive file has an xz signature. */ p = slurpfile(&s, "archive.out"); assert(s > 2); assertEqualMem(p, "\3757zXZ", 5); +done: + free(p); } diff --git a/contrib/libarchive/cpio/test/test_option_Z_upper.c b/contrib/libarchive/cpio/test/test_option_Z_upper.c index 936ce0c..d69a85e 100644 --- a/contrib/libarchive/cpio/test/test_option_Z_upper.c +++ b/contrib/libarchive/cpio/test/test_option_Z_upper.c @@ -47,10 +47,13 @@ DEFINE_TEST(test_option_Z_upper) } failure("-Z option is broken"); assertEqualInt(r, 0); - return; + goto done; } + free(p); /* Check that the archive file has a compress signature. */ p = slurpfile(&s, "archive.out"); assert(s > 2); assertEqualMem(p, "\x1f\x9d", 2); +done: + free(p); } diff --git a/contrib/libarchive/cpio/test/test_option_lz4.c b/contrib/libarchive/cpio/test/test_option_lz4.c index d430ac7..afd683d 100644 --- a/contrib/libarchive/cpio/test/test_option_lz4.c +++ b/contrib/libarchive/cpio/test/test_option_lz4.c @@ -63,6 +63,13 @@ DEFINE_TEST(test_option_lz4) "but no such program is available on this system."); return; } + /* On some systems the error won't be detected until closing + time, by a 127 exit error returned by waitpid. */ + if (strstr(p, "Error closing") != NULL && !canLz4()) { + skipping("This version of bsdcpio uses an external lz4 program " + "but no such program is available on this system."); + return; + } failure("--lz4 option is broken: %s", p); assertEqualInt(r, 0); return; diff --git a/contrib/libarchive/cpio/test/test_option_u.c b/contrib/libarchive/cpio/test/test_option_u.c index b377def..cc790b1 100644 --- a/contrib/libarchive/cpio/test/test_option_u.c +++ b/contrib/libarchive/cpio/test/test_option_u.c @@ -49,6 +49,7 @@ DEFINE_TEST(test_option_u) p = slurpfile(&s, "copy/f"); assertEqualInt(s, 1); assertEqualMem(p, "a", 1); + free(p); /* Recreate the file with a single "b" */ assertMakeFile("f", 0644, "b"); @@ -68,6 +69,7 @@ DEFINE_TEST(test_option_u) p = slurpfile(&s, "copy/f"); assertEqualInt(s, 1); assertEqualMem(p, "a", 1); + free(p); /* Copy the file to the "copy" dir with -u (force) */ r = systemf("echo f| %s -pud copy >copy.out 2>copy.err", @@ -78,4 +80,5 @@ DEFINE_TEST(test_option_u) p = slurpfile(&s, "copy/f"); assertEqualInt(s, 1); assertEqualMem(p, "b", 1); + free(p); } diff --git a/contrib/libarchive/cpio/test/test_option_y.c b/contrib/libarchive/cpio/test/test_option_y.c index b509f18..75c9563 100644 --- a/contrib/libarchive/cpio/test/test_option_y.c +++ b/contrib/libarchive/cpio/test/test_option_y.c @@ -46,11 +46,14 @@ DEFINE_TEST(test_option_y) } failure("-y option is broken"); assertEqualInt(r, 0); - return; + goto done; } assertTextFileContents("1 block\n", "archive.err"); /* Check that the archive file has a bzip2 signature. */ + free(p); p = slurpfile(&s, "archive.out"); assert(s > 2); assertEqualMem(p, "BZh9", 4); +done: + free(p); } diff --git a/contrib/libarchive/cpio/test/test_owner_parse.c b/contrib/libarchive/cpio/test/test_owner_parse.c index a9f6053..bef02da 100644 --- a/contrib/libarchive/cpio/test/test_owner_parse.c +++ b/contrib/libarchive/cpio/test/test_owner_parse.c @@ -38,7 +38,7 @@ static const int root_gids[] = { 0, 1 }; * its primary group membership depends on how the user set up * their /etc/passwd. Likely values are 513 (None), 545 (Users), * or 544 (Administrators). Just check for one of those... - * TODO: Handle non-English localizations...e.g. French 'Administrateur' + * TODO: Handle non-English localizations... e.g. French 'Administrateur' * Use CreateWellKnownSID() and LookupAccountName()? */ #define ROOT "Administrator" diff --git a/contrib/libarchive/libarchive/archive.h b/contrib/libarchive/libarchive/archive.h index 18462bb..5c4118b 100644 --- a/contrib/libarchive/libarchive/archive.h +++ b/contrib/libarchive/libarchive/archive.h @@ -373,7 +373,7 @@ typedef const char *archive_passphrase_callback(struct archive *, * 4) Repeatedly call archive_read_next_header to get information about * successive archive entries. Call archive_read_data to extract * data for entries of interest. - * 5) Call archive_read_finish to end processing. + * 5) Call archive_read_free to end processing. */ __LA_DECL struct archive *archive_read_new(void); @@ -562,7 +562,7 @@ __LA_DECL la_int64_t archive_read_header_position(struct archive *); * we cannot say whether there are encrypted entries, then * ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW is returned. * In general, this function will return values below zero when the - * reader is uncertain or totally uncapable of encryption support. + * reader is uncertain or totally incapable of encryption support. * When this function returns 0 you can be sure that the reader * supports encryption detection but no encrypted entries have * been found yet. @@ -984,12 +984,12 @@ __LA_DECL int archive_read_disk_can_descend(struct archive *); __LA_DECL int archive_read_disk_current_filesystem(struct archive *); __LA_DECL int archive_read_disk_current_filesystem_is_synthetic(struct archive *); __LA_DECL int archive_read_disk_current_filesystem_is_remote(struct archive *); -/* Request that the access time of the entry visited by travesal be restored. */ +/* Request that the access time of the entry visited by traversal be restored. */ __LA_DECL int archive_read_disk_set_atime_restored(struct archive *); /* * Set behavior. The "flags" argument selects optional behavior. */ -/* Request that the access time of the entry visited by travesal be restored. +/* Request that the access time of the entry visited by traversal be restored. * This is the same as archive_read_disk_set_atime_restored. */ #define ARCHIVE_READDISK_RESTORE_ATIME (0x0001) /* Default: Do not skip an entry which has nodump flags. */ @@ -1124,7 +1124,7 @@ __LA_DECL int archive_match_time_excluded(struct archive *, /* * Flags to tell a matching type of time stamps. These are used for - * following functinos. + * following functions. */ /* Time flag: mtime to be tested. */ #define ARCHIVE_MATCH_MTIME (0x0100) @@ -1144,7 +1144,7 @@ __LA_DECL int archive_match_include_date(struct archive *, int _flag, const char *_datestr); __LA_DECL int archive_match_include_date_w(struct archive *, int _flag, const wchar_t *_datestr); -/* Set inclusion time by a particluar file. */ +/* Set inclusion time by a particular file. */ __LA_DECL int archive_match_include_file_time(struct archive *, int _flag, const char *_pathname); __LA_DECL int archive_match_include_file_time_w(struct archive *, diff --git a/contrib/libarchive/libarchive/archive_acl.c b/contrib/libarchive/libarchive/archive_acl.c index d128920..3653d6f 100644 --- a/contrib/libarchive/libarchive/archive_acl.c +++ b/contrib/libarchive/libarchive/archive_acl.c @@ -94,6 +94,7 @@ archive_acl_clear(struct archive_acl *acl) acl->acl_text = NULL; } acl->acl_p = NULL; + acl->acl_types = 0; acl->acl_state = 0; /* Not counting. */ } @@ -279,23 +280,31 @@ acl_new_entry(struct archive_acl *acl, acl->acl_text = NULL; } - /* If there's a matching entry already in the list, overwrite it. */ + /* + * If there's a matching entry already in the list, overwrite it. + * NFSv4 entries may be repeated and are not overwritten. + * + * TODO: compare names of no id is provided (needs more rework) + */ ap = acl->acl_head; aq = NULL; while (ap != NULL) { - if (ap->type == type && ap->tag == tag && ap->id == id) { - ap->permset = permset; - return (ap); + if (((type & ARCHIVE_ENTRY_ACL_TYPE_NFS4) == 0) && + ap->type == type && ap->tag == tag && ap->id == id) { + if (id != -1 || (tag != ARCHIVE_ENTRY_ACL_USER && + tag != ARCHIVE_ENTRY_ACL_GROUP)) { + ap->permset = permset; + return (ap); + } } aq = ap; ap = ap->next; } /* Add a new entry to the end of the list. */ - ap = (struct archive_acl_entry *)malloc(sizeof(*ap)); + ap = (struct archive_acl_entry *)calloc(1, sizeof(*ap)); if (ap == NULL) return (NULL); - memset(ap, 0, sizeof(*ap)); if (aq == NULL) acl->acl_head = ap; else diff --git a/contrib/libarchive/libarchive/archive_cryptor.c b/contrib/libarchive/libarchive/archive_cryptor.c index 0be30c6..ced52fd 100644 --- a/contrib/libarchive/libarchive/archive_cryptor.c +++ b/contrib/libarchive/libarchive/archive_cryptor.c @@ -302,6 +302,8 @@ aes_ctr_release(archive_crypto_ctx *ctx) static int aes_ctr_init(archive_crypto_ctx *ctx, const uint8_t *key, size_t key_len) { + if ((ctx->ctx = EVP_CIPHER_CTX_new()) == NULL) + return -1; switch (key_len) { case 16: ctx->type = EVP_aes_128_ecb(); break; @@ -314,7 +316,7 @@ aes_ctr_init(archive_crypto_ctx *ctx, const uint8_t *key, size_t key_len) memcpy(ctx->key, key, key_len); memset(ctx->nonce, 0, sizeof(ctx->nonce)); ctx->encr_pos = AES_BLOCK_SIZE; - EVP_CIPHER_CTX_init(&ctx->ctx); + EVP_CIPHER_CTX_init(ctx->ctx); return 0; } @@ -324,10 +326,10 @@ aes_ctr_encrypt_counter(archive_crypto_ctx *ctx) int outl = 0; int r; - r = EVP_EncryptInit_ex(&ctx->ctx, ctx->type, NULL, ctx->key, NULL); + r = EVP_EncryptInit_ex(ctx->ctx, ctx->type, NULL, ctx->key, NULL); if (r == 0) return -1; - r = EVP_EncryptUpdate(&ctx->ctx, ctx->encr_buf, &outl, ctx->nonce, + r = EVP_EncryptUpdate(ctx->ctx, ctx->encr_buf, &outl, ctx->nonce, AES_BLOCK_SIZE); if (r == 0 || outl != AES_BLOCK_SIZE) return -1; @@ -337,7 +339,7 @@ aes_ctr_encrypt_counter(archive_crypto_ctx *ctx) static int aes_ctr_release(archive_crypto_ctx *ctx) { - EVP_CIPHER_CTX_cleanup(&ctx->ctx); + EVP_CIPHER_CTX_free(ctx->ctx); memset(ctx->key, 0, ctx->key_len); memset(ctx->nonce, 0, sizeof(ctx->nonce)); return 0; diff --git a/contrib/libarchive/libarchive/archive_cryptor_private.h b/contrib/libarchive/libarchive/archive_cryptor_private.h index 37eaad3..0ca544b 100644 --- a/contrib/libarchive/libarchive/archive_cryptor_private.h +++ b/contrib/libarchive/libarchive/archive_cryptor_private.h @@ -99,12 +99,12 @@ typedef struct { } archive_crypto_ctx; #elif defined(HAVE_LIBCRYPTO) -#include <openssl/evp.h> +#include "archive_openssl_evp_private.h" #define AES_BLOCK_SIZE 16 #define AES_MAX_KEY_SIZE 32 typedef struct { - EVP_CIPHER_CTX ctx; + EVP_CIPHER_CTX *ctx; const EVP_CIPHER *type; uint8_t key[AES_MAX_KEY_SIZE]; unsigned key_len; diff --git a/contrib/libarchive/libarchive/archive_digest.c b/contrib/libarchive/libarchive/archive_digest.c index f009d31..4153923 100644 --- a/contrib/libarchive/libarchive/archive_digest.c +++ b/contrib/libarchive/libarchive/archive_digest.c @@ -207,7 +207,9 @@ __archive_nettle_md5final(archive_md5_ctx *ctx, void *md) static int __archive_openssl_md5init(archive_md5_ctx *ctx) { - EVP_DigestInit(ctx, EVP_md5()); + if ((*ctx = EVP_MD_CTX_new()) == NULL) + return (ARCHIVE_FAILED); + EVP_DigestInit(*ctx, EVP_md5()); return (ARCHIVE_OK); } @@ -215,7 +217,7 @@ static int __archive_openssl_md5update(archive_md5_ctx *ctx, const void *indata, size_t insize) { - EVP_DigestUpdate(ctx, indata, insize); + EVP_DigestUpdate(*ctx, indata, insize); return (ARCHIVE_OK); } @@ -226,8 +228,11 @@ __archive_openssl_md5final(archive_md5_ctx *ctx, void *md) * this is meant to cope with that. Real fix is probably to fix * archive_write_set_format_xar.c */ - if (ctx->digest) - EVP_DigestFinal(ctx, md, NULL); + if (*ctx) { + EVP_DigestFinal(*ctx, md, NULL); + EVP_MD_CTX_free(*ctx); + *ctx = NULL; + } return (ARCHIVE_OK); } @@ -359,7 +364,9 @@ __archive_nettle_ripemd160final(archive_rmd160_ctx *ctx, void *md) static int __archive_openssl_ripemd160init(archive_rmd160_ctx *ctx) { - EVP_DigestInit(ctx, EVP_ripemd160()); + if ((*ctx = EVP_MD_CTX_new()) == NULL) + return (ARCHIVE_FAILED); + EVP_DigestInit(*ctx, EVP_ripemd160()); return (ARCHIVE_OK); } @@ -367,14 +374,18 @@ static int __archive_openssl_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, size_t insize) { - EVP_DigestUpdate(ctx, indata, insize); + EVP_DigestUpdate(*ctx, indata, insize); return (ARCHIVE_OK); } static int __archive_openssl_ripemd160final(archive_rmd160_ctx *ctx, void *md) { - EVP_DigestFinal(ctx, md, NULL); + if (*ctx) { + EVP_DigestFinal(*ctx, md, NULL); + EVP_MD_CTX_free(*ctx); + *ctx = NULL; + } return (ARCHIVE_OK); } @@ -509,7 +520,9 @@ __archive_nettle_sha1final(archive_sha1_ctx *ctx, void *md) static int __archive_openssl_sha1init(archive_sha1_ctx *ctx) { - EVP_DigestInit(ctx, EVP_sha1()); + if ((*ctx = EVP_MD_CTX_new()) == NULL) + return (ARCHIVE_FAILED); + EVP_DigestInit(*ctx, EVP_sha1()); return (ARCHIVE_OK); } @@ -517,7 +530,7 @@ static int __archive_openssl_sha1update(archive_sha1_ctx *ctx, const void *indata, size_t insize) { - EVP_DigestUpdate(ctx, indata, insize); + EVP_DigestUpdate(*ctx, indata, insize); return (ARCHIVE_OK); } @@ -528,8 +541,11 @@ __archive_openssl_sha1final(archive_sha1_ctx *ctx, void *md) * this is meant to cope with that. Real fix is probably to fix * archive_write_set_format_xar.c */ - if (ctx->digest) - EVP_DigestFinal(ctx, md, NULL); + if (*ctx) { + EVP_DigestFinal(*ctx, md, NULL); + EVP_MD_CTX_free(*ctx); + *ctx = NULL; + } return (ARCHIVE_OK); } @@ -733,7 +749,9 @@ __archive_nettle_sha256final(archive_sha256_ctx *ctx, void *md) static int __archive_openssl_sha256init(archive_sha256_ctx *ctx) { - EVP_DigestInit(ctx, EVP_sha256()); + if ((*ctx = EVP_MD_CTX_new()) == NULL) + return (ARCHIVE_FAILED); + EVP_DigestInit(*ctx, EVP_sha256()); return (ARCHIVE_OK); } @@ -741,14 +759,18 @@ static int __archive_openssl_sha256update(archive_sha256_ctx *ctx, const void *indata, size_t insize) { - EVP_DigestUpdate(ctx, indata, insize); + EVP_DigestUpdate(*ctx, indata, insize); return (ARCHIVE_OK); } static int __archive_openssl_sha256final(archive_sha256_ctx *ctx, void *md) { - EVP_DigestFinal(ctx, md, NULL); + if (*ctx) { + EVP_DigestFinal(*ctx, md, NULL); + EVP_MD_CTX_free(*ctx); + *ctx = NULL; + } return (ARCHIVE_OK); } @@ -928,7 +950,9 @@ __archive_nettle_sha384final(archive_sha384_ctx *ctx, void *md) static int __archive_openssl_sha384init(archive_sha384_ctx *ctx) { - EVP_DigestInit(ctx, EVP_sha384()); + if ((*ctx = EVP_MD_CTX_new()) == NULL) + return (ARCHIVE_FAILED); + EVP_DigestInit(*ctx, EVP_sha384()); return (ARCHIVE_OK); } @@ -936,14 +960,18 @@ static int __archive_openssl_sha384update(archive_sha384_ctx *ctx, const void *indata, size_t insize) { - EVP_DigestUpdate(ctx, indata, insize); + EVP_DigestUpdate(*ctx, indata, insize); return (ARCHIVE_OK); } static int __archive_openssl_sha384final(archive_sha384_ctx *ctx, void *md) { - EVP_DigestFinal(ctx, md, NULL); + if (*ctx) { + EVP_DigestFinal(*ctx, md, NULL); + EVP_MD_CTX_free(*ctx); + *ctx = NULL; + } return (ARCHIVE_OK); } @@ -1147,7 +1175,9 @@ __archive_nettle_sha512final(archive_sha512_ctx *ctx, void *md) static int __archive_openssl_sha512init(archive_sha512_ctx *ctx) { - EVP_DigestInit(ctx, EVP_sha512()); + if ((*ctx = EVP_MD_CTX_new()) == NULL) + return (ARCHIVE_FAILED); + EVP_DigestInit(*ctx, EVP_sha512()); return (ARCHIVE_OK); } @@ -1155,14 +1185,18 @@ static int __archive_openssl_sha512update(archive_sha512_ctx *ctx, const void *indata, size_t insize) { - EVP_DigestUpdate(ctx, indata, insize); + EVP_DigestUpdate(*ctx, indata, insize); return (ARCHIVE_OK); } static int __archive_openssl_sha512final(archive_sha512_ctx *ctx, void *md) { - EVP_DigestFinal(ctx, md, NULL); + if (*ctx) { + EVP_DigestFinal(*ctx, md, NULL); + EVP_MD_CTX_free(*ctx); + *ctx = NULL; + } return (ARCHIVE_OK); } diff --git a/contrib/libarchive/libarchive/archive_digest_private.h b/contrib/libarchive/libarchive/archive_digest_private.h index 77fad580..b58ffb3 100644 --- a/contrib/libarchive/libarchive/archive_digest_private.h +++ b/contrib/libarchive/libarchive/archive_digest_private.h @@ -134,7 +134,7 @@ defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) #define ARCHIVE_CRYPTO_OPENSSL 1 -#include <openssl/evp.h> +#include "archive_openssl_evp_private.h" #endif /* Windows crypto headers */ @@ -161,7 +161,7 @@ typedef CC_MD5_CTX archive_md5_ctx; #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) typedef struct md5_ctx archive_md5_ctx; #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) -typedef EVP_MD_CTX archive_md5_ctx; +typedef EVP_MD_CTX *archive_md5_ctx; #elif defined(ARCHIVE_CRYPTO_MD5_WIN) typedef Digest_CTX archive_md5_ctx; #else @@ -175,7 +175,7 @@ typedef RIPEMD160_CTX archive_rmd160_ctx; #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) typedef struct ripemd160_ctx archive_rmd160_ctx; #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) -typedef EVP_MD_CTX archive_rmd160_ctx; +typedef EVP_MD_CTX *archive_rmd160_ctx; #else typedef unsigned char archive_rmd160_ctx; #endif @@ -189,7 +189,7 @@ typedef CC_SHA1_CTX archive_sha1_ctx; #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) typedef struct sha1_ctx archive_sha1_ctx; #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) -typedef EVP_MD_CTX archive_sha1_ctx; +typedef EVP_MD_CTX *archive_sha1_ctx; #elif defined(ARCHIVE_CRYPTO_SHA1_WIN) typedef Digest_CTX archive_sha1_ctx; #else @@ -209,7 +209,7 @@ typedef CC_SHA256_CTX archive_sha256_ctx; #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) typedef struct sha256_ctx archive_sha256_ctx; #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) -typedef EVP_MD_CTX archive_sha256_ctx; +typedef EVP_MD_CTX *archive_sha256_ctx; #elif defined(ARCHIVE_CRYPTO_SHA256_WIN) typedef Digest_CTX archive_sha256_ctx; #else @@ -227,7 +227,7 @@ typedef CC_SHA512_CTX archive_sha384_ctx; #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) typedef struct sha384_ctx archive_sha384_ctx; #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) -typedef EVP_MD_CTX archive_sha384_ctx; +typedef EVP_MD_CTX *archive_sha384_ctx; #elif defined(ARCHIVE_CRYPTO_SHA384_WIN) typedef Digest_CTX archive_sha384_ctx; #else @@ -247,7 +247,7 @@ typedef CC_SHA512_CTX archive_sha512_ctx; #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) typedef struct sha512_ctx archive_sha512_ctx; #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) -typedef EVP_MD_CTX archive_sha512_ctx; +typedef EVP_MD_CTX *archive_sha512_ctx; #elif defined(ARCHIVE_CRYPTO_SHA512_WIN) typedef Digest_CTX archive_sha512_ctx; #else diff --git a/contrib/libarchive/libarchive/archive_entry.c b/contrib/libarchive/libarchive/archive_entry.c index 7f53371..f240025 100644 --- a/contrib/libarchive/libarchive/archive_entry.c +++ b/contrib/libarchive/libarchive/archive_entry.c @@ -248,10 +248,9 @@ archive_entry_new2(struct archive *a) { struct archive_entry *entry; - entry = (struct archive_entry *)malloc(sizeof(*entry)); + entry = (struct archive_entry *)calloc(1, sizeof(*entry)); if (entry == NULL) return (NULL); - memset(entry, 0, sizeof(*entry)); entry->archive = a; return (entry); } @@ -1442,6 +1441,15 @@ archive_entry_acl_add_entry_w(struct archive_entry *entry, } /* + * Return a bitmask of ACL types in an archive entry ACL list + */ +int +archive_entry_acl_types(struct archive_entry *entry) +{ + return ((&entry->acl)->acl_types); +} + +/* * Return a count of entries matching "want_type". */ int diff --git a/contrib/libarchive/libarchive/archive_entry.h b/contrib/libarchive/libarchive/archive_entry.h index 1150889..27c473e 100644 --- a/contrib/libarchive/libarchive/archive_entry.h +++ b/contrib/libarchive/libarchive/archive_entry.h @@ -508,6 +508,9 @@ __LA_DECL const wchar_t *archive_entry_acl_text_w(struct archive_entry *, __LA_DECL const char *archive_entry_acl_text(struct archive_entry *, int /* flags */); +/* Return bitmask of ACL types in an archive entry */ +__LA_DECL int archive_entry_acl_types(struct archive_entry *); + /* Return a count of entries matching 'want_type' */ __LA_DECL int archive_entry_acl_count(struct archive_entry *, int /* want_type */); diff --git a/contrib/libarchive/libarchive/archive_entry_acl.3 b/contrib/libarchive/libarchive/archive_entry_acl.3 index 5aff996..e85c4de 100644 --- a/contrib/libarchive/libarchive/archive_entry_acl.3 +++ b/contrib/libarchive/libarchive/archive_entry_acl.3 @@ -33,7 +33,8 @@ .Nm archive_entry_acl_next , .Nm archive_entry_acl_next_w , .Nm archive_entry_acl_reset , -.Nm archive_entry_acl_text_w +.Nm archive_entry_acl_text_w , +.Nm archive_entry_acl_types .Nd functions for manipulating Access Control Lists in archive entry descriptions .Sh LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -85,6 +86,8 @@ Streaming Archive Library (libarchive, -larchive) .Fn archive_entry_acl_reset "struct archive_entry *a" "int type" .Ft const wchar_t * .Fn archive_entry_acl_text_w "struct archive_entry *a" "int flags" +.Ft int +.Fn archive_entry_acl_types "struct archive_entry *a" .\" enum? .Sh DESCRIPTION An @@ -192,6 +195,11 @@ The returned long string is valid until the next call to .Fn archive_entry_acl_add_entry_w or .Fn archive_entry_acl_text_w . +.Pp +.Fn archive_entry_acl_types +get ACL entry types contained in an archive entry's ACL. As POSIX.1e and NFSv4 +ACL entries cannot be mixed, this function is a very efficient way to detect if +an ACL already contains POSIX.1e or NFSv4 ACL entries. .Sh RETURN VALUES .Fn archive_entry_acl_count and @@ -225,6 +233,9 @@ The returned long string is valid until the next call to .Fn archive_entry_acl_add_entry_w or .Fn archive_entry_acl_text_w . +.Pp +.Fn archive_entry_acl_types +returns a bitmask of ACL entry types or 0 if archive entry has no ACL entries. .Sh SEE ALSO .Xr archive_entry 3 .Xr libarchive 3 , diff --git a/contrib/libarchive/libarchive/archive_hmac.c b/contrib/libarchive/libarchive/archive_hmac.c index 7857c0f..1e0ae28 100644 --- a/contrib/libarchive/libarchive/archive_hmac.c +++ b/contrib/libarchive/libarchive/archive_hmac.c @@ -176,8 +176,10 @@ __hmac_sha1_cleanup(archive_hmac_sha1_ctx *ctx) static int __hmac_sha1_init(archive_hmac_sha1_ctx *ctx, const uint8_t *key, size_t key_len) { - HMAC_CTX_init(ctx); - HMAC_Init(ctx, key, key_len, EVP_sha1()); + *ctx = HMAC_CTX_new(); + if (*ctx == NULL) + return -1; + HMAC_Init_ex(*ctx, key, key_len, EVP_sha1(), NULL); return 0; } @@ -185,22 +187,22 @@ static void __hmac_sha1_update(archive_hmac_sha1_ctx *ctx, const uint8_t *data, size_t data_len) { - HMAC_Update(ctx, data, data_len); + HMAC_Update(*ctx, data, data_len); } static void __hmac_sha1_final(archive_hmac_sha1_ctx *ctx, uint8_t *out, size_t *out_len) { unsigned int len = (unsigned int)*out_len; - HMAC_Final(ctx, out, &len); + HMAC_Final(*ctx, out, &len); *out_len = len; } static void __hmac_sha1_cleanup(archive_hmac_sha1_ctx *ctx) { - HMAC_CTX_cleanup(ctx); - memset(ctx, 0, sizeof(*ctx)); + HMAC_CTX_free(*ctx); + *ctx = NULL; } #else diff --git a/contrib/libarchive/libarchive/archive_hmac_private.h b/contrib/libarchive/libarchive/archive_hmac_private.h index 64de743..eb45c4e 100644 --- a/contrib/libarchive/libarchive/archive_hmac_private.h +++ b/contrib/libarchive/libarchive/archive_hmac_private.h @@ -70,9 +70,9 @@ typedef struct { typedef struct hmac_sha1_ctx archive_hmac_sha1_ctx; #elif defined(HAVE_LIBCRYPTO) -#include <openssl/hmac.h> +#include "archive_openssl_hmac_private.h" -typedef HMAC_CTX archive_hmac_sha1_ctx; +typedef HMAC_CTX* archive_hmac_sha1_ctx; #else diff --git a/contrib/libarchive/libarchive/archive_openssl_evp_private.h b/contrib/libarchive/libarchive/archive_openssl_evp_private.h new file mode 100644 index 0000000..43a3ccc --- /dev/null +++ b/contrib/libarchive/libarchive/archive_openssl_evp_private.h @@ -0,0 +1,48 @@ +/*- + * Copyright (c) 2003-2007 Tim Kientzle + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#ifndef ARCHIVE_OPENSSL_EVP_PRIVATE_H_INCLUDED +#define ARCHIVE_OPENSSL_EVP_PRIVATE_H_INCLUDED + +#include <openssl/evp.h> +#include <openssl/opensslv.h> + +#if OPENSSL_VERSION_NUMBER < 0x10100000L +#include <stdlib.h> /* malloc, free */ +#include <string.h> /* memset */ +static inline EVP_MD_CTX *EVP_MD_CTX_new(void) +{ + EVP_MD_CTX *ctx = (EVP_MD_CTX *)calloc(1, sizeof(EVP_MD_CTX)); + return ctx; +} + +static inline void EVP_MD_CTX_free(EVP_MD_CTX *ctx) +{ + EVP_MD_CTX_cleanup(ctx); + memset(ctx, 0, sizeof(*ctx)); + free(ctx); +} +#endif + +#endif diff --git a/contrib/libarchive/libarchive/archive_openssl_hmac_private.h b/contrib/libarchive/libarchive/archive_openssl_hmac_private.h new file mode 100644 index 0000000..2deeb5f --- /dev/null +++ b/contrib/libarchive/libarchive/archive_openssl_hmac_private.h @@ -0,0 +1,48 @@ +/*- + * Copyright (c) 2003-2007 Tim Kientzle + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#ifndef ARCHIVE_OPENSSL_HMAC_PRIVATE_H_INCLUDED +#define ARCHIVE_OPENSSL_HMAC_PRIVATE_H_INCLUDED + +#include <openssl/hmac.h> +#include <openssl/opensslv.h> + +#if OPENSSL_VERSION_NUMBER < 0x10100000L +#include <stdlib.h> /* malloc, free */ +#include <string.h> /* memset */ +static inline HMAC_CTX *HMAC_CTX_new(void) +{ + HMAC_CTX *ctx = (HMAC_CTX *)calloc(1, sizeof(HMAC_CTX)); + return ctx; +} + +static inline void HMAC_CTX_free(HMAC_CTX *ctx) +{ + HMAC_CTX_cleanup(ctx); + memset(ctx, 0, sizeof(*ctx)); + free(ctx); +} +#endif + +#endif diff --git a/contrib/libarchive/libarchive/archive_options.c b/contrib/libarchive/libarchive/archive_options.c index dbf3e80..6496025 100644 --- a/contrib/libarchive/libarchive/archive_options.c +++ b/contrib/libarchive/libarchive/archive_options.c @@ -26,6 +26,10 @@ #include "archive_platform.h" __FBSDID("$FreeBSD$"); +#ifdef HAVE_ERRNO_H +#include <errno.h> +#endif + #include "archive_options_private.h" static const char * @@ -105,8 +109,11 @@ _archive_set_options(struct archive *a, const char *options, if (options == NULL || options[0] == '\0') return ARCHIVE_OK; - data = (char *)malloc(strlen(options) + 1); - strcpy(data, options); + if ((data = strdup(options)) == NULL) { + archive_set_error(a, + ENOMEM, "Out of memory adding file to list"); + return (ARCHIVE_FATAL); + } s = (const char *)data; do { diff --git a/contrib/libarchive/libarchive/archive_read.c b/contrib/libarchive/libarchive/archive_read.c index a199a65..dc89ee5 100644 --- a/contrib/libarchive/libarchive/archive_read.c +++ b/contrib/libarchive/libarchive/archive_read.c @@ -57,6 +57,7 @@ __FBSDID("$FreeBSD$"); static int choose_filters(struct archive_read *); static int choose_format(struct archive_read *); +static int close_filters(struct archive_read *); static struct archive_vtable *archive_read_vtable(void); static int64_t _archive_filter_bytes(struct archive *, int); static int _archive_filter_code(struct archive *, int); @@ -528,7 +529,7 @@ archive_read_open1(struct archive *_a) { slot = choose_format(a); if (slot < 0) { - __archive_read_close_filters(a); + close_filters(a); a->archive.state = ARCHIVE_STATE_FATAL; return (ARCHIVE_FATAL); } @@ -582,7 +583,6 @@ choose_filters(struct archive_read *a) /* Verify the filter by asking it for some data. */ __archive_read_filter_ahead(a->filter, 1, &avail); if (avail < 0) { - __archive_read_close_filters(a); __archive_read_free_filters(a); return (ARCHIVE_FATAL); } @@ -601,7 +601,6 @@ choose_filters(struct archive_read *a) a->filter = filter; r = (best_bidder->init)(a->filter); if (r != ARCHIVE_OK) { - __archive_read_close_filters(a); __archive_read_free_filters(a); return (ARCHIVE_FATAL); } @@ -765,7 +764,7 @@ archive_read_header_position(struct archive *_a) * we cannot say whether there are encrypted entries, then * ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW is returned. * In general, this function will return values below zero when the - * reader is uncertain or totally uncapable of encryption support. + * reader is uncertain or totally incapable of encryption support. * When this function returns 0 you can be sure that the reader * supports encryption detection but no encrypted entries have * been found yet. @@ -986,8 +985,8 @@ _archive_read_data_block(struct archive *_a, return (a->format->read_data)(a, buff, size, offset); } -int -__archive_read_close_filters(struct archive_read *a) +static int +close_filters(struct archive_read *a) { struct archive_read_filter *f = a->filter; int r = ARCHIVE_OK; @@ -1010,6 +1009,9 @@ __archive_read_close_filters(struct archive_read *a) void __archive_read_free_filters(struct archive_read *a) { + /* Make sure filters are closed and their buffers are freed */ + close_filters(a); + while (a->filter != NULL) { struct archive_read_filter *t = a->filter->upstream; free(a->filter); @@ -1052,7 +1054,7 @@ _archive_read_close(struct archive *_a) /* TODO: Clean up the formatters. */ /* Release the filter objects. */ - r1 = __archive_read_close_filters(a); + r1 = close_filters(a); if (r1 < r) r = r1; diff --git a/contrib/libarchive/libarchive/archive_read_append_filter.c b/contrib/libarchive/libarchive/archive_read_append_filter.c index 3a0d4d6..5e4d163 100644 --- a/contrib/libarchive/libarchive/archive_read_append_filter.c +++ b/contrib/libarchive/libarchive/archive_read_append_filter.c @@ -133,7 +133,6 @@ archive_read_append_filter(struct archive *_a, int code) a->filter = filter; r2 = (bidder->init)(a->filter); if (r2 != ARCHIVE_OK) { - __archive_read_close_filters(a); __archive_read_free_filters(a); return (ARCHIVE_FATAL); } @@ -191,7 +190,6 @@ archive_read_append_filter_program_signature(struct archive *_a, a->filter = filter; r = (bidder->init)(a->filter); if (r != ARCHIVE_OK) { - __archive_read_close_filters(a); __archive_read_free_filters(a); return (ARCHIVE_FATAL); } diff --git a/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c b/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c index f4a861c..e9fb8ba 100644 --- a/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c +++ b/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c @@ -125,6 +125,10 @@ static int setup_xattrs(struct archive_read_disk *, struct archive_entry *, int *fd); static int setup_sparse(struct archive_read_disk *, struct archive_entry *, int *fd); +#if defined(HAVE_LINUX_FIEMAP_H) +static int setup_sparse_fiemap(struct archive_read_disk *, + struct archive_entry *, int *fd); +#endif int archive_read_disk_entry_from_file(struct archive *_a, @@ -686,7 +690,7 @@ translate_acl(struct archive_read_disk *a, #ifdef ACL_TYPE_NFS4 if (default_entry_acl_type & ARCHIVE_ENTRY_ACL_TYPE_NFS4) { /* - * acl_get_entry_type_np() falis with non-NFSv4 ACLs + * acl_get_entry_type_np() fails with non-NFSv4 ACLs */ if (acl_get_entry_type_np(acl_entry, &acl_type) != 0) { archive_set_error(&a->archive, errno, "Failed " @@ -1124,7 +1128,7 @@ setup_xattrs(struct archive_read_disk *a, #if defined(HAVE_LINUX_FIEMAP_H) /* - * Linux sparse interface. + * Linux FIEMAP sparse interface. * * The FIEMAP ioctl returns an "extent" for each physical allocation * on disk. We need to process those to generate a more compact list @@ -1139,7 +1143,7 @@ setup_xattrs(struct archive_read_disk *a, */ static int -setup_sparse(struct archive_read_disk *a, +setup_sparse_fiemap(struct archive_read_disk *a, struct archive_entry *entry, int *fd) { char buff[4096]; @@ -1190,8 +1194,8 @@ setup_sparse(struct archive_read_disk *a, if (r < 0) { /* When something error happens, it is better we * should return ARCHIVE_OK because an earlier - * version(<2.6.28) cannot perfom FS_IOC_FIEMAP. */ - goto exit_setup_sparse; + * version(<2.6.28) cannot perform FS_IOC_FIEMAP. */ + goto exit_setup_sparse_fiemap; } if (fm->fm_mapped_extents == 0) { if (iters == 0) { @@ -1226,14 +1230,24 @@ setup_sparse(struct archive_read_disk *a, } else break; } -exit_setup_sparse: +exit_setup_sparse_fiemap: return (exit_sts); } -#elif defined(SEEK_HOLE) && defined(SEEK_DATA) && defined(_PC_MIN_HOLE_SIZE) +#if !defined(SEEK_HOLE) || !defined(SEEK_DATA) +static int +setup_sparse(struct archive_read_disk *a, + struct archive_entry *entry, int *fd) +{ + return setup_sparse_fiemap(a, entry, fd); +} +#endif +#endif /* defined(HAVE_LINUX_FIEMAP_H) */ + +#if defined(SEEK_HOLE) && defined(SEEK_DATA) /* - * FreeBSD and Solaris sparse interface. + * SEEK_HOLE sparse interface (FreeBSD, Linux, Solaris) */ static int @@ -1241,8 +1255,8 @@ setup_sparse(struct archive_read_disk *a, struct archive_entry *entry, int *fd) { int64_t size; - off_t initial_off; /* FreeBSD/Solaris only, so off_t okay here */ - off_t off_s, off_e; /* FreeBSD/Solaris only, so off_t okay here */ + off_t initial_off; + off_t off_s, off_e; int exit_sts = ARCHIVE_OK; int check_fully_sparse = 0; @@ -1268,8 +1282,10 @@ setup_sparse(struct archive_read_disk *a, } if (*fd >= 0) { +#ifdef _PC_MIN_HOLE_SIZE if (fpathconf(*fd, _PC_MIN_HOLE_SIZE) <= 0) return (ARCHIVE_OK); +#endif initial_off = lseek(*fd, 0, SEEK_CUR); if (initial_off != 0) lseek(*fd, 0, SEEK_SET); @@ -1280,8 +1296,10 @@ setup_sparse(struct archive_read_disk *a, if (path == NULL) path = archive_entry_pathname(entry); +#ifdef _PC_MIN_HOLE_SIZE if (pathconf(path, _PC_MIN_HOLE_SIZE) <= 0) return (ARCHIVE_OK); +#endif *fd = open(path, O_RDONLY | O_NONBLOCK | O_CLOEXEC); if (*fd < 0) { archive_set_error(&a->archive, errno, @@ -1292,6 +1310,19 @@ setup_sparse(struct archive_read_disk *a, initial_off = 0; } +#ifndef _PC_MIN_HOLE_SIZE + /* Check if the underlying filesystem supports seek hole */ + off_s = lseek(*fd, 0, SEEK_HOLE); + if (off_s < 0) +#if defined(HAVE_LINUX_FIEMAP_H) + return setup_sparse_fiemap(a, entry, fd); +#else + goto exit_setup_sparse; +#endif + else if (off_s > 0) + lseek(*fd, 0, SEEK_SET); +#endif + off_s = 0; size = archive_entry_size(entry); while (off_s < size) { @@ -1323,7 +1354,7 @@ setup_sparse(struct archive_read_disk *a, goto exit_setup_sparse; } if (off_s == 0 && off_e == size) - break;/* This is not spase. */ + break;/* This is not sparse. */ archive_entry_sparse_add_entry(entry, off_s, off_e - off_s); off_s = off_e; @@ -1341,7 +1372,7 @@ exit_setup_sparse: return (exit_sts); } -#else +#elif !defined(HAVE_LINUX_FIEMAP_H) /* * Generic (stub) sparse support. diff --git a/contrib/libarchive/libarchive/archive_read_disk_posix.c b/contrib/libarchive/libarchive/archive_read_disk_posix.c index e856d98..bc7fad1 100644 --- a/contrib/libarchive/libarchive/archive_read_disk_posix.c +++ b/contrib/libarchive/libarchive/archive_read_disk_posix.c @@ -244,7 +244,7 @@ struct tree { int initial_filesystem_id; int current_filesystem_id; int max_filesystem_id; - int allocated_filesytem; + int allocated_filesystem; int entry_fd; int entry_eof; @@ -1026,7 +1026,7 @@ next_entry(struct archive_read_disk *a, struct tree *t, /* Save the times to be restored. This must be in before * calling archive_read_disk_descend() or any chance of it, - * especially, invokng a callback. */ + * especially, invoking a callback. */ t->restore_time.mtime = archive_entry_mtime(entry); t->restore_time.mtime_nsec = archive_entry_mtime_nsec(entry); t->restore_time.atime = archive_entry_atime(entry); @@ -1382,7 +1382,7 @@ update_current_filesystem(struct archive_read_disk *a, int64_t dev) for (i = 0; i < t->max_filesystem_id; i++) { if (t->filesystem_table[i].dev == dev) { - /* There is the filesytem ID we've already generated. */ + /* There is the filesystem ID we've already generated. */ t->current_filesystem_id = i; t->current_filesystem = &(t->filesystem_table[i]); return (ARCHIVE_OK); @@ -1390,10 +1390,10 @@ update_current_filesystem(struct archive_read_disk *a, int64_t dev) } /* - * This is the new filesytem which we have to generate a new ID for. + * This is the new filesystem which we have to generate a new ID for. */ fid = t->max_filesystem_id++; - if (t->max_filesystem_id > t->allocated_filesytem) { + if (t->max_filesystem_id > t->allocated_filesystem) { size_t s; void *p; @@ -1406,7 +1406,7 @@ update_current_filesystem(struct archive_read_disk *a, int64_t dev) return (ARCHIVE_FATAL); } t->filesystem_table = (struct filesystem *)p; - t->allocated_filesytem = s; + t->allocated_filesystem = s; } t->current_filesystem_id = fid; t->current_filesystem = &(t->filesystem_table[fid]); @@ -2063,8 +2063,7 @@ tree_push(struct tree *t, const char *path, int filesystem_id, { struct tree_entry *te; - te = malloc(sizeof(*te)); - memset(te, 0, sizeof(*te)); + te = calloc(1, sizeof(*te)); te->next = t->stack; te->parent = t->current; if (te->parent) @@ -2122,9 +2121,8 @@ tree_open(const char *path, int symlink_mode, int restore_time) { struct tree *t; - if ((t = malloc(sizeof(*t))) == NULL) + if ((t = calloc(1, sizeof(*t))) == NULL) return (NULL); - memset(t, 0, sizeof(*t)); archive_string_init(&t->path); archive_string_ensure(&t->path, 31); t->initial_symlink_mode = symlink_mode; diff --git a/contrib/libarchive/libarchive/archive_read_extract2.c b/contrib/libarchive/libarchive/archive_read_extract2.c index 62a46be..fbeae7e 100644 --- a/contrib/libarchive/libarchive/archive_read_extract2.c +++ b/contrib/libarchive/libarchive/archive_read_extract2.c @@ -52,12 +52,11 @@ struct archive_read_extract * __archive_read_get_extract(struct archive_read *a) { if (a->extract == NULL) { - a->extract = (struct archive_read_extract *)malloc(sizeof(*a->extract)); + a->extract = (struct archive_read_extract *)calloc(1, sizeof(*a->extract)); if (a->extract == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't extract"); return (NULL); } - memset(a->extract, 0, sizeof(*a->extract)); a->cleanup_archive_extract = archive_read_extract_cleanup; } return (a->extract); diff --git a/contrib/libarchive/libarchive/archive_read_open_memory.c b/contrib/libarchive/libarchive/archive_read_open_memory.c index 92e2b9d..840b924 100644 --- a/contrib/libarchive/libarchive/archive_read_open_memory.c +++ b/contrib/libarchive/libarchive/archive_read_open_memory.c @@ -70,12 +70,11 @@ archive_read_open_memory2(struct archive *a, const void *buff, { struct read_memory_data *mine; - mine = (struct read_memory_data *)malloc(sizeof(*mine)); + mine = (struct read_memory_data *)calloc(1, sizeof(*mine)); if (mine == NULL) { archive_set_error(a, ENOMEM, "No memory"); return (ARCHIVE_FATAL); } - memset(mine, 0, sizeof(*mine)); mine->start = mine->p = (const unsigned char *)buff; mine->end = mine->start + size; mine->read_size = read_size; diff --git a/contrib/libarchive/libarchive/archive_read_private.h b/contrib/libarchive/libarchive/archive_read_private.h index 7fa5b24..be16dfc 100644 --- a/contrib/libarchive/libarchive/archive_read_private.h +++ b/contrib/libarchive/libarchive/archive_read_private.h @@ -252,7 +252,6 @@ int64_t __archive_read_consume(struct archive_read *, int64_t); int64_t __archive_read_filter_consume(struct archive_read_filter *, int64_t); int __archive_read_program(struct archive_read_filter *, const char *); void __archive_read_free_filters(struct archive_read *); -int __archive_read_close_filters(struct archive_read *); struct archive_read_extract *__archive_read_get_extract(struct archive_read *); diff --git a/contrib/libarchive/libarchive/archive_read_support_filter_uu.c b/contrib/libarchive/libarchive/archive_read_support_filter_uu.c index 787a619..6412979 100644 --- a/contrib/libarchive/libarchive/archive_read_support_filter_uu.c +++ b/contrib/libarchive/libarchive/archive_read_support_filter_uu.c @@ -312,6 +312,7 @@ uudecode_bidder_bid(struct archive_read_filter_bidder *self, avail -= len; if (l == 6) { + /* "begin " */ if (!uuchar[*b]) return (0); /* Get a length of decoded bytes. */ @@ -319,30 +320,14 @@ uudecode_bidder_bid(struct archive_read_filter_bidder *self, if (l > 45) /* Normally, maximum length is 45(character 'M'). */ return (0); - while (l && len-nl > 0) { - if (l > 0) { - if (!uuchar[*b++]) - return (0); - if (!uuchar[*b++]) - return (0); - len -= 2; - --l; - } - if (l > 0) { - if (!uuchar[*b++]) - return (0); - --len; - --l; - } - if (l > 0) { - if (!uuchar[*b++]) - return (0); - --len; - --l; - } + if (l > len - nl) + return (0); /* Line too short. */ + while (l) { + if (!uuchar[*b++]) + return (0); + --len; + --l; } - if (len-nl < 0) - return (0); if (len-nl == 1 && (uuchar[*b] || /* Check sum. */ (*b >= 'a' && *b <= 'z'))) {/* Padding data(MINIX). */ @@ -352,8 +337,8 @@ uudecode_bidder_bid(struct archive_read_filter_bidder *self, b += nl; if (avail && uuchar[*b]) return (firstline+30); - } - if (l == 13) { + } else if (l == 13) { + /* "begin-base64 " */ while (len-nl > 0) { if (!base64[*b++]) return (0); @@ -510,6 +495,13 @@ read_more: } llen = len; if ((nl == 0) && (uudecode->state != ST_UUEND)) { + if (total == 0 && ravail <= 0) { + /* There is nothing more to read, fail */ + archive_set_error(&self->archive->archive, + ARCHIVE_ERRNO_FILE_FORMAT, + "Missing format data"); + return (ARCHIVE_FATAL); + } /* * Save remaining data which does not contain * NL('\n','\r'). @@ -566,7 +558,7 @@ read_more: "Insufficient compressed data"); return (ARCHIVE_FATAL); } - /* Get length of undecoded bytes of curent line. */ + /* Get length of undecoded bytes of current line. */ l = UUDECODE(*b++); body--; if (l > body) { diff --git a/contrib/libarchive/libarchive/archive_read_support_filter_xz.c b/contrib/libarchive/libarchive/archive_read_support_filter_xz.c index 4e0a95f..11807cf 100644 --- a/contrib/libarchive/libarchive/archive_read_support_filter_xz.c +++ b/contrib/libarchive/libarchive/archive_read_support_filter_xz.c @@ -43,8 +43,6 @@ __FBSDID("$FreeBSD$"); #endif #if HAVE_LZMA_H #include <lzma.h> -#elif HAVE_LZMADEC_H -#include <lzmadec.h> #endif #include "archive.h" @@ -82,19 +80,6 @@ static ssize_t xz_filter_read(struct archive_read_filter *, const void **); static int xz_filter_close(struct archive_read_filter *); static int xz_lzma_bidder_init(struct archive_read_filter *); -#elif HAVE_LZMADEC_H && HAVE_LIBLZMADEC - -struct private_data { - lzmadec_stream stream; - unsigned char *out_block; - size_t out_block_size; - int64_t total_out; - char eof; /* True = found end of compressed data. */ -}; - -/* Lzma-only filter */ -static ssize_t lzma_filter_read(struct archive_read_filter *, const void **); -static int lzma_filter_close(struct archive_read_filter *); #endif /* @@ -178,8 +163,6 @@ archive_read_support_filter_lzma(struct archive *_a) bidder->free = NULL; #if HAVE_LZMA_H && HAVE_LIBLZMA return (ARCHIVE_OK); -#elif HAVE_LZMADEC_H && HAVE_LIBLZMADEC - return (ARCHIVE_OK); #else archive_set_error(_a, ARCHIVE_ERRNO_MISC, "Using external lzma program for lzma decompression"); @@ -310,7 +293,7 @@ lzma_bidder_bid(struct archive_read_filter_bidder *self, /* Second through fifth bytes are dictionary size, stored in * little-endian order. The minimum dictionary size is * 1 << 12(4KiB) which the lzma of LZMA SDK uses with option - * -d12 and the maxinam dictionary size is 1 << 27(128MiB) + * -d12 and the maximum dictionary size is 1 << 27(128MiB) * which the one uses with option -d27. * NOTE: A comment of LZMA SDK source code says this dictionary * range is from 1 << 12 to 1 << 30. */ @@ -601,9 +584,7 @@ lzip_init(struct archive_read_filter *self) return (ARCHIVE_FATAL); } ret = lzma_raw_decoder(&(state->stream), filters); -#if LZMA_VERSION < 50010000 free(filters[0].options); -#endif if (ret != LZMA_OK) { set_error(self, ret); return (ARCHIVE_FATAL); @@ -763,175 +744,6 @@ xz_filter_close(struct archive_read_filter *self) #else -#if HAVE_LZMADEC_H && HAVE_LIBLZMADEC - -/* - * If we have the older liblzmadec library, then we can handle - * LZMA streams but not XZ streams. - */ - -/* - * Setup the callbacks. - */ -static int -lzma_bidder_init(struct archive_read_filter *self) -{ - static const size_t out_block_size = 64 * 1024; - void *out_block; - struct private_data *state; - ssize_t ret, avail_in; - - self->code = ARCHIVE_FILTER_LZMA; - self->name = "lzma"; - - state = (struct private_data *)calloc(sizeof(*state), 1); - out_block = (unsigned char *)malloc(out_block_size); - if (state == NULL || out_block == NULL) { - archive_set_error(&self->archive->archive, ENOMEM, - "Can't allocate data for lzma decompression"); - free(out_block); - free(state); - return (ARCHIVE_FATAL); - } - - self->data = state; - state->out_block_size = out_block_size; - state->out_block = out_block; - self->read = lzma_filter_read; - self->skip = NULL; /* not supported */ - self->close = lzma_filter_close; - - /* Prime the lzma library with 18 bytes of input. */ - state->stream.next_in = (unsigned char *)(uintptr_t) - __archive_read_filter_ahead(self->upstream, 18, &avail_in); - if (state->stream.next_in == NULL) - return (ARCHIVE_FATAL); - state->stream.avail_in = avail_in; - state->stream.next_out = state->out_block; - state->stream.avail_out = state->out_block_size; - - /* Initialize compression library. */ - ret = lzmadec_init(&(state->stream)); - __archive_read_filter_consume(self->upstream, - avail_in - state->stream.avail_in); - if (ret == LZMADEC_OK) - return (ARCHIVE_OK); - - /* Library setup failed: Clean up. */ - archive_set_error(&self->archive->archive, ARCHIVE_ERRNO_MISC, - "Internal error initializing lzma library"); - - /* Override the error message if we know what really went wrong. */ - switch (ret) { - case LZMADEC_HEADER_ERROR: - archive_set_error(&self->archive->archive, - ARCHIVE_ERRNO_MISC, - "Internal error initializing compression library: " - "invalid header"); - break; - case LZMADEC_MEM_ERROR: - archive_set_error(&self->archive->archive, ENOMEM, - "Internal error initializing compression library: " - "out of memory"); - break; - } - - free(state->out_block); - free(state); - self->data = NULL; - return (ARCHIVE_FATAL); -} - -/* - * Return the next block of decompressed data. - */ -static ssize_t -lzma_filter_read(struct archive_read_filter *self, const void **p) -{ - struct private_data *state; - size_t decompressed; - ssize_t avail_in, ret; - - state = (struct private_data *)self->data; - - /* Empty our output buffer. */ - state->stream.next_out = state->out_block; - state->stream.avail_out = state->out_block_size; - - /* Try to fill the output buffer. */ - while (state->stream.avail_out > 0 && !state->eof) { - state->stream.next_in = (unsigned char *)(uintptr_t) - __archive_read_filter_ahead(self->upstream, 1, &avail_in); - if (state->stream.next_in == NULL && avail_in < 0) { - archive_set_error(&self->archive->archive, - ARCHIVE_ERRNO_MISC, - "truncated lzma input"); - return (ARCHIVE_FATAL); - } - state->stream.avail_in = avail_in; - - /* Decompress as much as we can in one pass. */ - ret = lzmadec_decode(&(state->stream), avail_in == 0); - switch (ret) { - case LZMADEC_STREAM_END: /* Found end of stream. */ - state->eof = 1; - /* FALL THROUGH */ - case LZMADEC_OK: /* Decompressor made some progress. */ - __archive_read_filter_consume(self->upstream, - avail_in - state->stream.avail_in); - break; - case LZMADEC_BUF_ERROR: /* Insufficient input data? */ - archive_set_error(&self->archive->archive, - ARCHIVE_ERRNO_MISC, - "Insufficient compressed data"); - return (ARCHIVE_FATAL); - default: - /* Return an error. */ - archive_set_error(&self->archive->archive, - ARCHIVE_ERRNO_MISC, - "Lzma decompression failed"); - return (ARCHIVE_FATAL); - } - } - - decompressed = state->stream.next_out - state->out_block; - state->total_out += decompressed; - if (decompressed == 0) - *p = NULL; - else - *p = state->out_block; - return (decompressed); -} - -/* - * Clean up the decompressor. - */ -static int -lzma_filter_close(struct archive_read_filter *self) -{ - struct private_data *state; - int ret; - - state = (struct private_data *)self->data; - ret = ARCHIVE_OK; - switch (lzmadec_end(&(state->stream))) { - case LZMADEC_OK: - break; - default: - archive_set_error(&(self->archive->archive), - ARCHIVE_ERRNO_MISC, - "Failed to clean up %s compressor", - self->archive->archive.compression_name); - ret = ARCHIVE_FATAL; - } - - free(state->out_block); - free(state); - return (ret); -} - -#else - /* * * If we have no suitable library on this system, we can't actually do @@ -953,9 +765,6 @@ lzma_bidder_init(struct archive_read_filter *self) return (r); } -#endif /* HAVE_LZMADEC_H */ - - static int xz_bidder_init(struct archive_read_filter *self) { @@ -984,5 +793,4 @@ lzip_bidder_init(struct archive_read_filter *self) return (r); } - #endif /* HAVE_LZMA_H */ diff --git a/contrib/libarchive/libarchive/archive_read_support_format_7zip.c b/contrib/libarchive/libarchive/archive_read_support_format_7zip.c index c0a536c..f8d52fb 100644 --- a/contrib/libarchive/libarchive/archive_read_support_format_7zip.c +++ b/contrib/libarchive/libarchive/archive_read_support_format_7zip.c @@ -213,7 +213,7 @@ struct _7zip { int header_is_encoded; uint64_t header_bytes_remaining; unsigned long header_crc32; - /* Header offset to check that reading pointes of the file contens + /* Header offset to check that reading points of the file contents * will not exceed the header. */ uint64_t header_offset; /* Base offset of the archive file for a seek in case reading SFX. */ @@ -263,22 +263,22 @@ struct _7zip { /* * Decompressor controllers. */ - /* Decording LZMA1 and LZMA2 data. */ + /* Decoding LZMA1 and LZMA2 data. */ #ifdef HAVE_LZMA_H lzma_stream lzstream; int lzstream_valid; #endif - /* Decording bzip2 data. */ + /* Decoding bzip2 data. */ #if defined(HAVE_BZLIB_H) && defined(BZ_CONFIG_ERROR) bz_stream bzstream; int bzstream_valid; #endif - /* Decording deflate data. */ + /* Decoding deflate data. */ #ifdef HAVE_ZLIB_H z_stream stream; int stream_valid; #endif - /* Decording PPMd data. */ + /* Decoding PPMd data. */ int ppmd7_stat; CPpmd7 ppmd7_context; CPpmd7z_RangeDec range_dec; @@ -1056,10 +1056,7 @@ init_decompression(struct archive_read *a, struct _7zip *zip, #endif { lzma_options_delta delta_opt; - lzma_filter filters[LZMA_FILTERS_MAX]; -#if LZMA_VERSION < 50010000 - lzma_filter *ff; -#endif + lzma_filter filters[LZMA_FILTERS_MAX], *ff; int fi = 0; if (zip->lzstream_valid) { @@ -1144,9 +1141,7 @@ init_decompression(struct archive_read *a, struct _7zip *zip, else filters[fi].id = LZMA_FILTER_LZMA1; filters[fi].options = NULL; -#if LZMA_VERSION < 50010000 ff = &filters[fi]; -#endif r = lzma_properties_decode(&filters[fi], NULL, coder1->properties, (size_t)coder1->propertiesSize); if (r != LZMA_OK) { @@ -1158,9 +1153,7 @@ init_decompression(struct archive_read *a, struct _7zip *zip, filters[fi].id = LZMA_VLI_UNKNOWN; filters[fi].options = NULL; r = lzma_raw_decoder(&(zip->lzstream), filters); -#if LZMA_VERSION < 50010000 free(ff->options); -#endif if (r != LZMA_OK) { set_error(a, r); return (ARCHIVE_FAILED); diff --git a/contrib/libarchive/libarchive/archive_read_support_format_ar.c b/contrib/libarchive/libarchive/archive_read_support_format_ar.c index db47b08..22e64bf 100644 --- a/contrib/libarchive/libarchive/archive_read_support_format_ar.c +++ b/contrib/libarchive/libarchive/archive_read_support_format_ar.c @@ -104,13 +104,12 @@ archive_read_support_format_ar(struct archive *_a) archive_check_magic(_a, ARCHIVE_READ_MAGIC, ARCHIVE_STATE_NEW, "archive_read_support_format_ar"); - ar = (struct ar *)malloc(sizeof(*ar)); + ar = (struct ar *)calloc(1, sizeof(*ar)); if (ar == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate ar data"); return (ARCHIVE_FATAL); } - memset(ar, 0, sizeof(*ar)); ar->strtab = NULL; r = __archive_read_register_format(a, @@ -260,7 +259,7 @@ _ar_read_header(struct archive_read *a, struct archive_entry *entry, archive_entry_set_filetype(entry, AE_IFREG); /* Get the size of the filename table. */ number = ar_atol10(h + AR_size_offset, AR_size_size); - if (number > SIZE_MAX) { + if (number > SIZE_MAX || number > 1024 * 1024 * 1024) { archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, "Filename table too large"); return (ARCHIVE_FATAL); @@ -316,7 +315,7 @@ _ar_read_header(struct archive_read *a, struct archive_entry *entry, * If we can't look up the real name, warn and return * the entry with the wrong name. */ - if (ar->strtab == NULL || number > ar->strtab_size) { + if (ar->strtab == NULL || number >= ar->strtab_size) { archive_set_error(&a->archive, EINVAL, "Can't find long filename for GNU/SVR4 archive entry"); archive_entry_copy_pathname(entry, filename); @@ -342,16 +341,19 @@ _ar_read_header(struct archive_read *a, struct archive_entry *entry, /* Parse the size of the name, adjust the file size. */ number = ar_atol10(h + AR_name_offset + 3, AR_name_size - 3); - bsd_name_length = (size_t)number; - /* Guard against the filename + trailing NUL - * overflowing a size_t and against the filename size - * being larger than the entire entry. */ - if (number > (uint64_t)(bsd_name_length + 1) - || (int64_t)bsd_name_length > ar->entry_bytes_remaining) { + /* Sanity check the filename length: + * = Must be <= SIZE_MAX - 1 + * = Must be <= 1MB + * = Cannot be bigger than the entire entry + */ + if (number > SIZE_MAX - 1 + || number > 1024 * 1024 + || (int64_t)number > ar->entry_bytes_remaining) { archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, "Bad input file size"); return (ARCHIVE_FATAL); } + bsd_name_length = (size_t)number; ar->entry_bytes_remaining -= bsd_name_length; /* Adjust file size reported to client. */ archive_entry_set_size(entry, ar->entry_bytes_remaining); diff --git a/contrib/libarchive/libarchive/archive_read_support_format_cab.c b/contrib/libarchive/libarchive/archive_read_support_format_cab.c index fc70684..2bdc1e2 100644 --- a/contrib/libarchive/libarchive/archive_read_support_format_cab.c +++ b/contrib/libarchive/libarchive/archive_read_support_format_cab.c @@ -67,7 +67,7 @@ struct lzx_dec { /* The length how many bytes we can copy decoded code from * the window. */ int copy_len; - /* Translation reversal for x86 proccessor CALL byte sequence(E8). + /* Translation reversal for x86 processor CALL byte sequence(E8). * This is used for LZX only. */ uint32_t translation_size; char translation; @@ -645,12 +645,13 @@ cab_read_header(struct archive_read *a) cab = (struct cab *)(a->format->data); if (cab->found_header == 0 && p[0] == 'M' && p[1] == 'Z') { - /* This is an executable? Must be self-extracting... */ + /* This is an executable? Must be self-extracting... */ err = cab_skip_sfx(a); if (err < ARCHIVE_WARN) return (err); - if ((p = __archive_read_ahead(a, sizeof(*p), NULL)) == NULL) + /* Re-read header after processing the SFX. */ + if ((p = __archive_read_ahead(a, 42, NULL)) == NULL) return (truncated_error(a)); } @@ -1554,7 +1555,7 @@ cab_read_ahead_cfdata_deflate(struct archive_read *a, ssize_t *avail) /* * Note: I suspect there is a bug in makecab.exe because, in rare * case, compressed bytes are still remaining regardless we have - * gotten all uncompressed bytes, which size is recoded in CFDATA, + * gotten all uncompressed bytes, which size is recorded in CFDATA, * as much as we need, and we have to use the garbage so as to * correctly compute the sum of CFDATA accordingly. */ @@ -1741,7 +1742,7 @@ cab_read_ahead_cfdata_lzx(struct archive_read *a, ssize_t *avail) } /* - * Translation reversal of x86 proccessor CALL byte sequence(E8). + * Translation reversal of x86 processor CALL byte sequence(E8). */ lzx_translation(&cab->xstrm, cab->uncompressed_buffer, cfdata->uncompressed_size, @@ -2270,7 +2271,7 @@ static int lzx_br_fillup(struct lzx_stream *strm, struct lzx_br *br) { /* - * x86 proccessor family can read misaligned data without an access error. + * x86 processor family can read misaligned data without an access error. */ int n = CACHE_BITS - br->cache_avail; diff --git a/contrib/libarchive/libarchive/archive_read_support_format_cpio.c b/contrib/libarchive/libarchive/archive_read_support_format_cpio.c index 1a03976..2a5a829 100644 --- a/contrib/libarchive/libarchive/archive_read_support_format_cpio.c +++ b/contrib/libarchive/libarchive/archive_read_support_format_cpio.c @@ -326,7 +326,7 @@ archive_read_format_cpio_options(struct archive_read *a, cpio = (struct cpio *)(a->format->data); if (strcmp(key, "compat-2x") == 0) { - /* Handle filnames as libarchive 2.x */ + /* Handle filenames as libarchive 2.x */ cpio->init_default_conversion = (val != NULL)?1:0; return (ARCHIVE_OK); } else if (strcmp(key, "hdrcharset") == 0) { @@ -814,8 +814,8 @@ header_odc(struct archive_read *a, struct cpio *cpio, * NOTE: if a filename suffix is ".z", it is the file gziped by afio. * it would be nice that we can show uncompressed file size and we can * uncompressed file contents automatically, unfortunately we have nothing - * to get a uncompressed file size while reading each header. it means - * we also cannot uncompressed file contens under the our framework. + * to get a uncompressed file size while reading each header. It means + * we also cannot uncompress file contents under our framework. */ static int header_afiol(struct archive_read *a, struct cpio *cpio, diff --git a/contrib/libarchive/libarchive/archive_read_support_format_mtree.c b/contrib/libarchive/libarchive/archive_read_support_format_mtree.c index 080fced..02c1251 100644 --- a/contrib/libarchive/libarchive/archive_read_support_format_mtree.c +++ b/contrib/libarchive/libarchive/archive_read_support_format_mtree.c @@ -75,6 +75,8 @@ __FBSDID("$FreeBSD$"); #define MTREE_HAS_OPTIONAL 0x0800 #define MTREE_HAS_NOCHANGE 0x1000 /* FreeBSD specific */ +#define MTREE_HASHTABLE_SIZE 1024 + struct mtree_option { struct mtree_option *next; char *value; @@ -86,6 +88,8 @@ struct mtree_entry { char *name; char full; char used; + unsigned int name_hash; + struct mtree_entry *hashtable_next; }; struct mtree { @@ -98,6 +102,7 @@ struct mtree { const char *archive_format_name; struct mtree_entry *entries; struct mtree_entry *this_entry; + struct mtree_entry *entry_hashtable[MTREE_HASHTABLE_SIZE]; struct archive_string current_dir; struct archive_string contents_name; @@ -110,6 +115,7 @@ struct mtree { static int bid_keycmp(const char *, const char *, ssize_t); static int cleanup(struct archive_read *); static int detect_form(struct archive_read *, int *); +static unsigned int hash(const char *); static int mtree_bid(struct archive_read *, int); static int parse_file(struct archive_read *, struct archive_entry *, struct mtree *, struct mtree_entry *, int *); @@ -223,13 +229,12 @@ archive_read_support_format_mtree(struct archive *_a) archive_check_magic(_a, ARCHIVE_READ_MAGIC, ARCHIVE_STATE_NEW, "archive_read_support_format_mtree"); - mtree = (struct mtree *)malloc(sizeof(*mtree)); + mtree = (struct mtree *)calloc(1, sizeof(*mtree)); if (mtree == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate mtree data"); return (ARCHIVE_FATAL); } - memset(mtree, 0, sizeof(*mtree)); mtree->fd = -1; r = __archive_read_register_format(a, mtree, "mtree", @@ -862,11 +867,12 @@ process_add_entry(struct archive_read *a, struct mtree *mtree, struct mtree_option **global, const char *line, ssize_t line_len, struct mtree_entry **last_entry, int is_form_d) { - struct mtree_entry *entry; + struct mtree_entry *entry, *ht_iter; struct mtree_option *iter; const char *next, *eq, *name, *end; size_t name_len, len; int r, i; + unsigned int ht_idx; if ((entry = malloc(sizeof(*entry))) == NULL) { archive_set_error(&a->archive, errno, "Can't allocate memory"); @@ -877,6 +883,8 @@ process_add_entry(struct archive_read *a, struct mtree *mtree, entry->name = NULL; entry->used = 0; entry->full = 0; + entry->name_hash = 0; + entry->hashtable_next = NULL; /* Add this entry to list. */ if (*last_entry == NULL) @@ -929,6 +937,16 @@ process_add_entry(struct archive_read *a, struct mtree *mtree, memcpy(entry->name, name, name_len); entry->name[name_len] = '\0'; parse_escapes(entry->name, entry); + entry->name_hash = hash(entry->name); + + ht_idx = entry->name_hash % MTREE_HASHTABLE_SIZE; + if ((ht_iter = mtree->entry_hashtable[ht_idx]) != NULL) { + while (ht_iter->hashtable_next) + ht_iter = ht_iter->hashtable_next; + ht_iter->hashtable_next = entry; + } else { + mtree->entry_hashtable[ht_idx] = entry; + } for (iter = *global; iter != NULL; iter = iter->next) { r = add_option(a, &entry->options, iter->value, @@ -1122,9 +1140,10 @@ parse_file(struct archive_read *a, struct archive_entry *entry, * with pathname canonicalization, which is a very * tricky subject.) */ - for (mp = mentry->next; mp != NULL; mp = mp->next) { + for (mp = mentry->hashtable_next; mp != NULL; mp = mp->hashtable_next) { if (mp->full && !mp->used - && strcmp(mentry->name, mp->name) == 0) { + && mentry->name_hash == mp->name_hash + && strcmp(mentry->name, mp->name) == 0) { /* Later lines override earlier ones. */ mp->used = 1; r1 = parse_line(a, entry, mtree, mp, @@ -2000,3 +2019,19 @@ readline(struct archive_read *a, struct mtree *mtree, char **start, find_off = u - mtree->line.s; } } + +static unsigned int +hash(const char *p) +{ + /* A 32-bit version of Peter Weinberger's (PJW) hash algorithm, + as used by ELF for hashing function names. */ + unsigned g, h = 0; + while (*p != '\0') { + h = (h << 4) + *p++; + if ((g = h & 0xF0000000) != 0) { + h ^= g >> 24; + h &= 0x0FFFFFFF; + } + } + return h; +} diff --git a/contrib/libarchive/libarchive/archive_read_support_format_rar.c b/contrib/libarchive/libarchive/archive_read_support_format_rar.c index f729f17..9c9f6f1 100644 --- a/contrib/libarchive/libarchive/archive_read_support_format_rar.c +++ b/contrib/libarchive/libarchive/archive_read_support_format_rar.c @@ -647,13 +647,12 @@ archive_read_support_format_rar(struct archive *_a) archive_check_magic(_a, ARCHIVE_READ_MAGIC, ARCHIVE_STATE_NEW, "archive_read_support_format_rar"); - rar = (struct rar *)malloc(sizeof(*rar)); + rar = (struct rar *)calloc(sizeof(*rar), 1); if (rar == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate rar data"); return (ARCHIVE_FATAL); } - memset(rar, 0, sizeof(*rar)); /* * Until enough data has been read, we cannot tell about diff --git a/contrib/libarchive/libarchive/archive_read_support_format_tar.c b/contrib/libarchive/libarchive/archive_read_support_format_tar.c index 48eeea8..4f69c6e 100644 --- a/contrib/libarchive/libarchive/archive_read_support_format_tar.c +++ b/contrib/libarchive/libarchive/archive_read_support_format_tar.c @@ -294,6 +294,57 @@ archive_read_format_tar_cleanup(struct archive_read *a) return (ARCHIVE_OK); } +/* + * Validate number field + * + * This has to be pretty lenient in order to accommodate the enormous + * variety of tar writers in the world: + * = POSIX (IEEE Std 1003.1-1988) ustar requires octal values with leading + * zeros and allows fields to be terminated with space or null characters + * = Many writers use different termination (in particular, libarchive + * omits terminator bytes to squeeze one or two more digits) + * = Many writers pad with space and omit leading zeros + * = GNU tar and star write base-256 values if numbers are too + * big to be represented in octal + * + * Examples of specific tar headers that we should support: + * = Perl Archive::Tar terminates uid, gid, devminor and devmajor with two + * null bytes, pads size with spaces and other numeric fields with zeroes + * = plexus-archiver prior to 2.6.3 (before switching to commons-compress) + * may have uid and gid fields filled with spaces without any octal digits + * at all and pads all numeric fields with spaces + * + * This should tolerate all variants in use. It will reject a field + * where the writer just left garbage after a trailing NUL. + */ +static int +validate_number_field(const char* p_field, size_t i_size) +{ + unsigned char marker = (unsigned char)p_field[0]; + if (marker == 128 || marker == 255 || marker == 0) { + /* Base-256 marker, there's nothing we can check. */ + return 1; + } else { + /* Must be octal */ + size_t i = 0; + /* Skip any leading spaces */ + while (i < i_size && p_field[i] == ' ') { + ++i; + } + /* Skip octal digits. */ + while (i < i_size && p_field[i] >= '0' && p_field[i] <= '7') { + ++i; + } + /* Any remaining characters must be space or NUL padding. */ + while (i < i_size) { + if (p_field[i] != ' ' && p_field[i] != 0) { + return 0; + } + ++i; + } + return 1; + } +} static int archive_read_format_tar_bid(struct archive_read *a, int best_bid) @@ -346,23 +397,19 @@ archive_read_format_tar_bid(struct archive_read *a, int best_bid) return (0); bid += 2; /* 6 bits of variation in an 8-bit field leaves 2 bits. */ - /* Sanity check: Look at first byte of mode field. */ - switch (255 & (unsigned)header->mode[0]) { - case 0: case 255: - /* Base-256 value: No further verification possible! */ - break; - case ' ': /* Not recommended, but not illegal, either. */ - break; - case '0': case '1': case '2': case '3': - case '4': case '5': case '6': case '7': - /* Octal Value. */ - /* TODO: Check format of remainder of this field. */ - break; - default: - /* Not a valid mode; bail out here. */ - return (0); + /* + * Check format of mode/uid/gid/mtime/size/rdevmajor/rdevminor fields. + */ + if (bid > 0 && ( + validate_number_field(header->mode, sizeof(header->mode)) == 0 + || validate_number_field(header->uid, sizeof(header->uid)) == 0 + || validate_number_field(header->gid, sizeof(header->gid)) == 0 + || validate_number_field(header->mtime, sizeof(header->mtime)) == 0 + || validate_number_field(header->size, sizeof(header->size)) == 0 + || validate_number_field(header->rdevmajor, sizeof(header->rdevmajor)) == 0 + || validate_number_field(header->rdevminor, sizeof(header->rdevminor)) == 0)) { + bid = 0; } - /* TODO: Sanity test uid/gid/size/mtime/rdevmajor/rdevminor fields. */ return (bid); } @@ -376,7 +423,7 @@ archive_read_format_tar_options(struct archive_read *a, tar = (struct tar *)(a->format->data); if (strcmp(key, "compat-2x") == 0) { - /* Handle UTF-8 filnames as libarchive 2.x */ + /* Handle UTF-8 filenames as libarchive 2.x */ tar->compat_2x = (val != NULL && val[0] != 0); tar->init_default_conversion = tar->compat_2x; return (ARCHIVE_OK); @@ -2142,12 +2189,11 @@ gnu_add_sparse_entry(struct archive_read *a, struct tar *tar, { struct sparse_block *p; - p = (struct sparse_block *)malloc(sizeof(*p)); + p = (struct sparse_block *)calloc(1, sizeof(*p)); if (p == NULL) { archive_set_error(&a->archive, ENOMEM, "Out of memory"); return (ARCHIVE_FATAL); } - memset(p, 0, sizeof(*p)); if (tar->sparse_last != NULL) tar->sparse_last->next = p; else @@ -2498,7 +2544,7 @@ tar_atol_base_n(const char *p, size_t char_cnt, int base) last_digit_limit = INT64_MAX % base; /* the pointer will not be dereferenced if char_cnt is zero - * due to the way the && operator is evaulated. + * due to the way the && operator is evaluated. */ while (char_cnt != 0 && (*p == ' ' || *p == '\t')) { p++; diff --git a/contrib/libarchive/libarchive/archive_read_support_format_warc.c b/contrib/libarchive/libarchive/archive_read_support_format_warc.c index deeaa9e..a287fc2 100644 --- a/contrib/libarchive/libarchive/archive_read_support_format_warc.c +++ b/contrib/libarchive/libarchive/archive_read_support_format_warc.c @@ -146,12 +146,11 @@ archive_read_support_format_warc(struct archive *_a) archive_check_magic(_a, ARCHIVE_READ_MAGIC, ARCHIVE_STATE_NEW, "archive_read_support_format_warc"); - if ((w = malloc(sizeof(*w))) == NULL) { + if ((w = calloc(1, sizeof(*w))) == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate warc data"); return (ARCHIVE_FATAL); } - memset(w, 0, sizeof(*w)); r = __archive_read_register_format( a, w, "warc", diff --git a/contrib/libarchive/libarchive/archive_read_support_format_xar.c b/contrib/libarchive/libarchive/archive_read_support_format_xar.c index ab88750..47ed064 100644 --- a/contrib/libarchive/libarchive/archive_read_support_format_xar.c +++ b/contrib/libarchive/libarchive/archive_read_support_format_xar.c @@ -43,8 +43,6 @@ __FBSDID("$FreeBSD$"); #endif #if HAVE_LZMA_H #include <lzma.h> -#elif HAVE_LZMADEC_H -#include <lzmadec.h> #endif #ifdef HAVE_ZLIB_H #include <zlib.h> @@ -334,9 +332,6 @@ struct xar { #if HAVE_LZMA_H && HAVE_LIBLZMA lzma_stream lzstream; int lzstream_valid; -#elif HAVE_LZMADEC_H && HAVE_LIBLZMADEC - lzmadec_stream lzstream; - int lzstream_valid; #endif /* * For Checksum data. @@ -1526,34 +1521,6 @@ decompression_init(struct archive_read *a, enum enctype encoding) xar->lzstream.total_in = 0; xar->lzstream.total_out = 0; break; -#elif defined(HAVE_LZMADEC_H) && defined(HAVE_LIBLZMADEC) - case LZMA: - if (xar->lzstream_valid) - lzmadec_end(&(xar->lzstream)); - r = lzmadec_init(&(xar->lzstream)); - if (r != LZMADEC_OK) { - switch (r) { - case LZMADEC_HEADER_ERROR: - archive_set_error(&a->archive, - ARCHIVE_ERRNO_MISC, - "Internal error initializing " - "compression library: " - "invalid header"); - break; - case LZMADEC_MEM_ERROR: - archive_set_error(&a->archive, - ENOMEM, - "Internal error initializing " - "compression library: " - "out of memory"); - break; - } - return (ARCHIVE_FATAL); - } - xar->lzstream_valid = 1; - xar->lzstream.total_in = 0; - xar->lzstream.total_out = 0; - break; #endif /* * Unsupported compression. @@ -1563,9 +1530,7 @@ decompression_init(struct archive_read *a, enum enctype encoding) case BZIP2: #endif #if !defined(HAVE_LZMA_H) || !defined(HAVE_LIBLZMA) -#if !defined(HAVE_LZMADEC_H) || !defined(HAVE_LIBLZMADEC) case LZMA: -#endif case XZ: #endif switch (xar->entry_encoding) { @@ -1685,46 +1650,12 @@ decompress(struct archive_read *a, const void **buff, size_t *outbytes, *used = avail_in - xar->lzstream.avail_in; *outbytes = avail_out - xar->lzstream.avail_out; break; -#elif defined(HAVE_LZMADEC_H) && defined(HAVE_LIBLZMADEC) - case LZMA: - xar->lzstream.next_in = (unsigned char *)(uintptr_t)b; - xar->lzstream.avail_in = avail_in; - xar->lzstream.next_out = (unsigned char *)outbuff; - xar->lzstream.avail_out = avail_out; - r = lzmadec_decode(&(xar->lzstream), 0); - switch (r) { - case LZMADEC_STREAM_END: /* Found end of stream. */ - switch (lzmadec_end(&(xar->lzstream))) { - case LZMADEC_OK: - break; - default: - archive_set_error(&(a->archive), - ARCHIVE_ERRNO_MISC, - "Failed to clean up lzmadec decompressor"); - return (ARCHIVE_FATAL); - } - xar->lzstream_valid = 0; - /* FALLTHROUGH */ - case LZMADEC_OK: /* Decompressor made some progress. */ - break; - default: - archive_set_error(&(a->archive), - ARCHIVE_ERRNO_MISC, - "lzmadec decompression failed(%d)", - r); - return (ARCHIVE_FATAL); - } - *used = avail_in - xar->lzstream.avail_in; - *outbytes = avail_out - xar->lzstream.avail_out; - break; #endif #if !defined(HAVE_BZLIB_H) || !defined(BZ_CONFIG_ERROR) case BZIP2: #endif #if !defined(HAVE_LZMA_H) || !defined(HAVE_LIBLZMA) -#if !defined(HAVE_LZMADEC_H) || !defined(HAVE_LIBLZMADEC) case LZMA: -#endif case XZ: #endif case NONE: diff --git a/contrib/libarchive/libarchive/archive_read_support_format_zip.c b/contrib/libarchive/libarchive/archive_read_support_format_zip.c index 2e5579f1..1aa7445 100644 --- a/contrib/libarchive/libarchive/archive_read_support_format_zip.c +++ b/contrib/libarchive/libarchive/archive_read_support_format_zip.c @@ -864,29 +864,33 @@ zip_read_local_file_header(struct archive_read *a, struct archive_entry *entry, zip_entry->mode |= AE_IFREG; } - if ((zip_entry->mode & AE_IFMT) == 0) { - /* Especially in streaming mode, we can end up - here without having seen proper mode information. - Guess from the filename. */ + /* If the mode is totally empty, set some sane default. */ + if (zip_entry->mode == 0) { + zip_entry->mode |= 0664; + } + + /* Make sure that entries with a trailing '/' are marked as directories + * even if the External File Attributes contains bogus values. If this + * is not a directory and there is no type, assume regularfile. */ + if ((zip_entry->mode & AE_IFMT) != AE_IFDIR) { + int has_slash; + wp = archive_entry_pathname_w(entry); if (wp != NULL) { len = wcslen(wp); - if (len > 0 && wp[len - 1] == L'/') - zip_entry->mode |= AE_IFDIR; - else - zip_entry->mode |= AE_IFREG; + has_slash = len > 0 && wp[len - 1] == L'/'; } else { cp = archive_entry_pathname(entry); len = (cp != NULL)?strlen(cp):0; - if (len > 0 && cp[len - 1] == '/') - zip_entry->mode |= AE_IFDIR; - else - zip_entry->mode |= AE_IFREG; + has_slash = len > 0 && cp[len - 1] == '/'; } - if (zip_entry->mode == AE_IFDIR) { - zip_entry->mode |= 0775; - } else if (zip_entry->mode == AE_IFREG) { - zip_entry->mode |= 0664; + /* Correct file type as needed. */ + if (has_slash) { + zip_entry->mode &= ~AE_IFMT; + zip_entry->mode |= AE_IFDIR; + zip_entry->mode |= 0111; + } else if ((zip_entry->mode & AE_IFMT) == 0) { + zip_entry->mode |= AE_IFREG; } } diff --git a/contrib/libarchive/libarchive/archive_string.c b/contrib/libarchive/libarchive/archive_string.c index 982a148..cf10f09 100644 --- a/contrib/libarchive/libarchive/archive_string.c +++ b/contrib/libarchive/libarchive/archive_string.c @@ -1827,7 +1827,7 @@ archive_string_conversion_set_opt(struct archive_string_conv *sc, int opt) * A filename in UTF-8 was made with libarchive 2.x in a wrong * assumption that wchar_t was Unicode. * This option enables simulating the assumption in order to read - * that filname correctly. + * that filename correctly. */ case SCONV_SET_OPT_UTF8_LIBARCHIVE2X: #if (defined(_WIN32) && !defined(__CYGWIN__)) \ @@ -1939,12 +1939,19 @@ archive_strncat_l(struct archive_string *as, const void *_p, size_t n, struct archive_string_conv *sc) { const void *s; - size_t length; + size_t length = 0; int i, r = 0, r2; + if (_p != NULL && n > 0) { + if (sc != NULL && (sc->flag & SCONV_FROM_UTF16)) + length = utf16nbytes(_p, n); + else + length = mbsnbytes(_p, n); + } + /* We must allocate memory even if there is no data for conversion * or copy. This simulates archive_string_append behavior. */ - if (_p == NULL || n == 0) { + if (length == 0) { int tn = 1; if (sc != NULL && (sc->flag & SCONV_TO_UTF16)) tn = 2; @@ -1960,16 +1967,11 @@ archive_strncat_l(struct archive_string *as, const void *_p, size_t n, * If sc is NULL, we just make a copy. */ if (sc == NULL) { - length = mbsnbytes(_p, n); if (archive_string_append(as, _p, length) == NULL) return (-1);/* No memory */ return (0); } - if (sc->flag & SCONV_FROM_UTF16) - length = utf16nbytes(_p, n); - else - length = mbsnbytes(_p, n); s = _p; i = 0; if (sc->nconverter > 1) { @@ -1992,7 +1994,7 @@ archive_strncat_l(struct archive_string *as, const void *_p, size_t n, #if HAVE_ICONV /* - * Return -1 if conversion failes. + * Return -1 if conversion fails. */ static int iconv_strncat_in_locale(struct archive_string *as, const void *_p, @@ -2094,7 +2096,7 @@ iconv_strncat_in_locale(struct archive_string *as, const void *_p, /* * Translate a string from a some CodePage to an another CodePage by - * Windows APIs, and copy the result. Return -1 if conversion failes. + * Windows APIs, and copy the result. Return -1 if conversion fails. */ static int strncat_in_codepage(struct archive_string *as, @@ -2298,7 +2300,7 @@ _utf8_to_unicode(uint32_t *pwc, const char *s, size_t n) return (0); /* Standard: return 0 for end-of-string. */ cnt = utf8_count[ch]; - /* Invalide sequence or there are not plenty bytes. */ + /* Invalid sequence or there are not plenty bytes. */ if ((int)n < cnt) { cnt = (int)n; for (i = 1; i < cnt; i++) { @@ -2379,7 +2381,7 @@ _utf8_to_unicode(uint32_t *pwc, const char *s, size_t n) goto invalid_sequence; } - /* The code point larger than 0x10FFFF is not leagal + /* The code point larger than 0x10FFFF is not legal * Unicode values. */ if (wc > UNICODE_MAX) goto invalid_sequence; @@ -2397,7 +2399,7 @@ utf8_to_unicode(uint32_t *pwc, const char *s, size_t n) int cnt; cnt = _utf8_to_unicode(pwc, s, n); - /* Any of Surrogate pair is not leagal Unicode values. */ + /* Any of Surrogate pair is not legal Unicode values. */ if (cnt == 3 && IS_SURROGATE_PAIR_LA(*pwc)) return (-3); return (cnt); @@ -2458,7 +2460,7 @@ invalid_sequence: /* * Convert a Unicode code point to a single UTF-8 sequence. * - * NOTE:This function does not check if the Unicode is leagal or not. + * NOTE:This function does not check if the Unicode is legal or not. * Please you definitely check it before calling this. */ static size_t @@ -2554,7 +2556,7 @@ utf16_to_unicode(uint32_t *pwc, const char *s, size_t n, int be) * Surrogate pair values(0xd800 through 0xdfff) are only * used by UTF-16, so, after above culculation, the code * must not be surrogate values, and Unicode has no codes - * larger than 0x10ffff. Thus, those are not leagal Unicode + * larger than 0x10ffff. Thus, those are not legal Unicode * values. */ if (IS_SURROGATE_PAIR_LA(uc) || uc > UNICODE_MAX) { @@ -3474,7 +3476,7 @@ strncat_from_utf8_libarchive2(struct archive_string *as, /* * Convert a UTF-16BE/LE string to current locale and copy the result. - * Return -1 if conversion failes. + * Return -1 if conversion fails. */ static int win_strncat_from_utf16(struct archive_string *as, const void *_p, size_t bytes, @@ -3598,7 +3600,7 @@ is_big_endian(void) /* * Convert a current locale string to UTF-16BE/LE and copy the result. - * Return -1 if conversion failes. + * Return -1 if conversion fails. */ static int win_strncat_to_utf16(struct archive_string *as16, const void *_p, @@ -3703,7 +3705,7 @@ win_strncat_to_utf16le(struct archive_string *as16, const void *_p, /* * Convert a UTF-16BE string to current locale and copy the result. - * Return -1 if conversion failes. + * Return -1 if conversion fails. */ static int best_effort_strncat_from_utf16(struct archive_string *as, const void *_p, @@ -3761,7 +3763,7 @@ best_effort_strncat_from_utf16le(struct archive_string *as, const void *_p, /* * Convert a current locale string to UTF-16BE/LE and copy the result. - * Return -1 if conversion failes. + * Return -1 if conversion fails. */ static int best_effort_strncat_to_utf16(struct archive_string *as16, const void *_p, diff --git a/contrib/libarchive/libarchive/archive_string.h b/contrib/libarchive/libarchive/archive_string.h index accd5a6..60ebf0e 100644 --- a/contrib/libarchive/libarchive/archive_string.h +++ b/contrib/libarchive/libarchive/archive_string.h @@ -115,13 +115,13 @@ archive_string_conversion_set_opt(struct archive_string_conv *, int); /* Copy one archive_string to another in locale conversion. - * Return -1 if conversion failes. */ + * Return -1 if conversion fails. */ int archive_strncpy_l(struct archive_string *, const void *, size_t, struct archive_string_conv *); /* Copy one archive_string to another in locale conversion. - * Return -1 if conversion failes. */ + * Return -1 if conversion fails. */ int archive_strncat_l(struct archive_string *, const void *, size_t, struct archive_string_conv *); diff --git a/contrib/libarchive/libarchive/archive_write.c b/contrib/libarchive/libarchive/archive_write.c index 5fe6afc..f5a9f61 100644 --- a/contrib/libarchive/libarchive/archive_write.c +++ b/contrib/libarchive/libarchive/archive_write.c @@ -109,10 +109,9 @@ archive_write_new(void) struct archive_write *a; unsigned char *nulls; - a = (struct archive_write *)malloc(sizeof(*a)); + a = (struct archive_write *)calloc(1, sizeof(*a)); if (a == NULL) return (NULL); - memset(a, 0, sizeof(*a)); a->archive.magic = ARCHIVE_WRITE_MAGIC; a->archive.state = ARCHIVE_STATE_NEW; a->archive.vtable = archive_write_vtable(); @@ -126,12 +125,11 @@ archive_write_new(void) /* Initialize a block of nulls for padding purposes. */ a->null_length = 1024; - nulls = (unsigned char *)malloc(a->null_length); + nulls = (unsigned char *)calloc(1, a->null_length); if (nulls == NULL) { free(a); return (NULL); } - memset(nulls, 0, a->null_length); a->nulls = nulls; return (&a->archive); } diff --git a/contrib/libarchive/libarchive/archive_write_add_filter_lz4.c b/contrib/libarchive/libarchive/archive_write_add_filter_lz4.c index 1d0ab8c..e655185 100644 --- a/contrib/libarchive/libarchive/archive_write_add_filter_lz4.c +++ b/contrib/libarchive/libarchive/archive_write_add_filter_lz4.c @@ -523,7 +523,7 @@ drive_compressor_independence(struct archive_write_filter *f, const char *p, archive_le32enc(data->out, outsize); data->out += 4; } else { - /* The buffer is not compressed. The commpressed size was + /* The buffer is not compressed. The compressed size was * bigger than its uncompressed size. */ archive_le32enc(data->out, length | 0x80000000); data->out += 4; @@ -608,7 +608,7 @@ drive_compressor_dependence(struct archive_write_filter *f, const char *p, archive_le32enc(data->out, outsize); data->out += 4; } else { - /* The buffer is not compressed. The commpressed size was + /* The buffer is not compressed. The compressed size was * bigger than its uncompressed size. */ archive_le32enc(data->out, length | 0x80000000); data->out += 4; diff --git a/contrib/libarchive/libarchive/archive_write_disk_posix.c b/contrib/libarchive/libarchive/archive_write_disk_posix.c index f094027..c05059a 100644 --- a/contrib/libarchive/libarchive/archive_write_disk_posix.c +++ b/contrib/libarchive/libarchive/archive_write_disk_posix.c @@ -1779,10 +1779,9 @@ archive_write_disk_new(void) { struct archive_write_disk *a; - a = (struct archive_write_disk *)malloc(sizeof(*a)); + a = (struct archive_write_disk *)calloc(1, sizeof(*a)); if (a == NULL) return (NULL); - memset(a, 0, sizeof(*a)); a->archive.magic = ARCHIVE_WRITE_DISK_MAGIC; /* We're ready to write a header immediately. */ a->archive.state = ARCHIVE_STATE_HEADER; @@ -2701,7 +2700,7 @@ check_symlinks(struct archive_write_disk *a) * See also : http://msdn.microsoft.com/en-us/library/aa365247.aspx */ static void -cleanup_pathname_win(struct archive_write_disk *a) +cleanup_pathname_win(char *path) { wchar_t wc; char *p; @@ -2712,7 +2711,7 @@ cleanup_pathname_win(struct archive_write_disk *a) mb = 0; complete = 1; utf8 = (strcmp(nl_langinfo(CODESET), "UTF-8") == 0)? 1: 0; - for (p = a->name; *p != '\0'; p++) { + for (p = path; *p != '\0'; p++) { ++alen; if (*p == '\\') { /* If previous byte is smaller than 128, @@ -2737,7 +2736,7 @@ cleanup_pathname_win(struct archive_write_disk *a) /* * Convert path separator in wide-character. */ - p = a->name; + p = path; while (*p != '\0' && alen) { l = mbtowc(&wc, p, alen); if (l == (size_t)-1) { @@ -2778,7 +2777,7 @@ cleanup_pathname_fsobj(char *path, int *a_eno, struct archive_string *a_estr, } #if defined(__CYGWIN__) - cleanup_pathname_win(a); + cleanup_pathname_win(path); #endif /* Skip leading '/'. */ if (*src == '/') { diff --git a/contrib/libarchive/libarchive/archive_write_disk_set_standard_lookup.c b/contrib/libarchive/libarchive/archive_write_disk_set_standard_lookup.c index 606db91..8f7cdf4 100644 --- a/contrib/libarchive/libarchive/archive_write_disk_set_standard_lookup.c +++ b/contrib/libarchive/libarchive/archive_write_disk_set_standard_lookup.c @@ -84,15 +84,13 @@ static void cleanup(void *); int archive_write_disk_set_standard_lookup(struct archive *a) { - struct bucket *ucache = malloc(cache_size * sizeof(struct bucket)); - struct bucket *gcache = malloc(cache_size * sizeof(struct bucket)); + struct bucket *ucache = calloc(cache_size, sizeof(struct bucket)); + struct bucket *gcache = calloc(cache_size, sizeof(struct bucket)); if (ucache == NULL || gcache == NULL) { free(ucache); free(gcache); return (ARCHIVE_FATAL); } - memset(ucache, 0, cache_size * sizeof(struct bucket)); - memset(gcache, 0, cache_size * sizeof(struct bucket)); archive_write_disk_set_group_lookup(a, gcache, lookup_gid, cleanup); archive_write_disk_set_user_lookup(a, ucache, lookup_uid, cleanup); return (ARCHIVE_OK); diff --git a/contrib/libarchive/libarchive/archive_write_open_memory.c b/contrib/libarchive/libarchive/archive_write_open_memory.c index e9e1e29..8c274f7 100644 --- a/contrib/libarchive/libarchive/archive_write_open_memory.c +++ b/contrib/libarchive/libarchive/archive_write_open_memory.c @@ -53,12 +53,11 @@ archive_write_open_memory(struct archive *a, void *buff, size_t buffSize, size_t { struct write_memory_data *mine; - mine = (struct write_memory_data *)malloc(sizeof(*mine)); + mine = (struct write_memory_data *)calloc(1, sizeof(*mine)); if (mine == NULL) { archive_set_error(a, ENOMEM, "No memory"); return (ARCHIVE_FATAL); } - memset(mine, 0, sizeof(*mine)); mine->buff = buff; mine->size = buffSize; mine->client_size = used; diff --git a/contrib/libarchive/libarchive/archive_write_set_format_7zip.c b/contrib/libarchive/libarchive/archive_write_set_format_7zip.c index fc6ccfe..abd521a 100644 --- a/contrib/libarchive/libarchive/archive_write_set_format_7zip.c +++ b/contrib/libarchive/libarchive/archive_write_set_format_7zip.c @@ -205,7 +205,7 @@ struct _7zip { /* * The list of the file entries which has its contents is used to * manage struct file objects. - * We use 'next' a menber of struct file to chain. + * We use 'next' (a member of struct file) to chain. */ struct { struct file *first; diff --git a/contrib/libarchive/libarchive/archive_write_set_format_ar.c b/contrib/libarchive/libarchive/archive_write_set_format_ar.c index 32bdab3..4fb2a59 100644 --- a/contrib/libarchive/libarchive/archive_write_set_format_ar.c +++ b/contrib/libarchive/libarchive/archive_write_set_format_ar.c @@ -126,12 +126,11 @@ archive_write_set_format_ar(struct archive_write *a) if (a->format_free != NULL) (a->format_free)(a); - ar = (struct ar_w *)malloc(sizeof(*ar)); + ar = (struct ar_w *)calloc(1, sizeof(*ar)); if (ar == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate ar data"); return (ARCHIVE_FATAL); } - memset(ar, 0, sizeof(*ar)); a->format_data = ar; a->format_name = "ar"; diff --git a/contrib/libarchive/libarchive/archive_write_set_format_cpio.c b/contrib/libarchive/libarchive/archive_write_set_format_cpio.c index d69c6a6..9dc6eaf 100644 --- a/contrib/libarchive/libarchive/archive_write_set_format_cpio.c +++ b/contrib/libarchive/libarchive/archive_write_set_format_cpio.c @@ -289,7 +289,7 @@ write_header(struct archive_write *a, struct archive_entry *entry) sconv = get_sconv(a); #if defined(_WIN32) && !defined(__CYGWIN__) - /* Make sure the path separators in pahtname, hardlink and symlink + /* Make sure the path separators in pathname, hardlink and symlink * are all slash '/', not the Windows path separator '\'. */ entry_main = __la_win_entry_in_posix_pathseparator(entry); if (entry_main == NULL) { diff --git a/contrib/libarchive/libarchive/archive_write_set_format_cpio_newc.c b/contrib/libarchive/libarchive/archive_write_set_format_cpio_newc.c index df0173e..ab0610b 100644 --- a/contrib/libarchive/libarchive/archive_write_set_format_cpio_newc.c +++ b/contrib/libarchive/libarchive/archive_write_set_format_cpio_newc.c @@ -116,12 +116,11 @@ archive_write_set_format_cpio_newc(struct archive *_a) if (a->format_free != NULL) (a->format_free)(a); - cpio = (struct cpio *)malloc(sizeof(*cpio)); + cpio = (struct cpio *)calloc(1, sizeof(*cpio)); if (cpio == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate cpio data"); return (ARCHIVE_FATAL); } - memset(cpio, 0, sizeof(*cpio)); a->format_data = cpio; a->format_name = "cpio"; a->format_options = archive_write_newc_options; @@ -232,7 +231,7 @@ write_header(struct archive_write *a, struct archive_entry *entry) sconv = get_sconv(a); #if defined(_WIN32) && !defined(__CYGWIN__) - /* Make sure the path separators in pahtname, hardlink and symlink + /* Make sure the path separators in pathname, hardlink and symlink * are all slash '/', not the Windows path separator '\'. */ entry_main = __la_win_entry_in_posix_pathseparator(entry); if (entry_main == NULL) { diff --git a/contrib/libarchive/libarchive/archive_write_set_format_gnutar.c b/contrib/libarchive/libarchive/archive_write_set_format_gnutar.c index 1d635d2..a9c4123 100644 --- a/contrib/libarchive/libarchive/archive_write_set_format_gnutar.c +++ b/contrib/libarchive/libarchive/archive_write_set_format_gnutar.c @@ -119,9 +119,9 @@ static const char template_header[] = { '0','0','0','0','0','0', '0','\0', /* gid, null termination: 8 bytes */ '0','0','0','0','0','0', '0','\0', - /* size, space termation: 12 bytes */ + /* size, space termination: 12 bytes */ '0','0','0','0','0','0','0','0','0','0','0', '\0', - /* mtime, space termation: 12 bytes */ + /* mtime, space termination: 12 bytes */ '0','0','0','0','0','0','0','0','0','0','0', '\0', /* Initial checksum value: 8 spaces */ ' ',' ',' ',' ',' ',' ',' ',' ', @@ -368,7 +368,7 @@ archive_write_gnutar_header(struct archive_write *a, } #if defined(_WIN32) && !defined(__CYGWIN__) - /* Make sure the path separators in pahtname, hardlink and symlink + /* Make sure the path separators in pathname, hardlink and symlink * are all slash '/', not the Windows path separator '\'. */ entry_main = __la_win_entry_in_posix_pathseparator(entry); if (entry_main == NULL) { diff --git a/contrib/libarchive/libarchive/archive_write_set_format_iso9660.c b/contrib/libarchive/libarchive/archive_write_set_format_iso9660.c index c20e088..bf69c3e 100644 --- a/contrib/libarchive/libarchive/archive_write_set_format_iso9660.c +++ b/contrib/libarchive/libarchive/archive_write_set_format_iso9660.c @@ -680,7 +680,7 @@ struct iso9660 { /* The creation time of ISO image. */ time_t birth_time; /* A file stream of a temporary file, which file contents - * save to until ISO iamge can be created. */ + * save to until ISO image can be created. */ int temp_fd; struct isofile *cur_file; @@ -1995,7 +1995,7 @@ iso9660_close(struct archive_write *a) * Write an ISO 9660 image. */ - /* Switc to start using wbuff as file buffer. */ + /* Switch to start using wbuff as file buffer. */ iso9660->wbuff_remaining = wb_buffmax(); iso9660->wbuff_type = WB_TO_STREAM; iso9660->wbuff_offset = 0; @@ -3024,8 +3024,8 @@ set_directory_record_rr(unsigned char *bp, int dr_len, * +----+----+----+----+----+ * 10 11 12 13 14 15 * - * - cflg : flag of componet - * - clen : length of componet + * - cflg : flag of component + * - clen : length of component */ const char *sl; char sl_last; @@ -4558,7 +4558,7 @@ write_file_descriptors(struct archive_write *a) file->cur_content = &(file->content); do { blocks += file->cur_content->blocks; - /* Next fragument */ + /* Next fragment */ file->cur_content = file->cur_content->next; } while (file->cur_content != NULL); } @@ -4748,7 +4748,7 @@ isofile_gen_utility_names(struct archive_write *a, struct isofile *file) } /* - * Converte a filename to UTF-16BE. + * Convert a filename to UTF-16BE. */ if (0 > archive_entry_pathname_l(file->entry, &u16, &u16len, iso9660->sconv_to_utf16be)) { @@ -5512,7 +5512,7 @@ isoent_setup_file_location(struct iso9660 *iso9660, int location) file->cur_content->location = location; location += file->cur_content->blocks; total_block += file->cur_content->blocks; - /* Next fragument */ + /* Next fragment */ file->cur_content = file->cur_content->next; } while (file->cur_content != NULL); } @@ -6164,7 +6164,7 @@ isoent_gen_iso9660_identifier(struct archive_write *a, struct isoent *isoent, np->id_len = l = ext_off + np->ext_len; /* Make an offset of the number which is used to be set - * hexadecimal number to avoid duplicate identififier. */ + * hexadecimal number to avoid duplicate identifier. */ if (iso9660->opt.iso_level == 1) { if (ext_off >= 5) noff = 5; @@ -6742,7 +6742,7 @@ isoent_rr_move(struct archive_write *a) int r; pt = &(iso9660->primary.pathtbl[MAX_DEPTH-1]); - /* Theare aren't level 8 directories reaching a deepr level. */ + /* There aren't level 8 directories reaching a deeper level. */ if (pt->cnt == 0) return (ARCHIVE_OK); @@ -6813,7 +6813,7 @@ _compare_path_table(const void *v1, const void *v2) if (cmp != 0) return (cmp); - /* Compare indetifier */ + /* Compare identifier */ s1 = p1->identifier; s2 = p2->identifier; l = p1->ext_off; @@ -6855,7 +6855,7 @@ _compare_path_table_joliet(const void *v1, const void *v2) if (cmp != 0) return (cmp); - /* Compare indetifier */ + /* Compare identifier */ s1 = (const unsigned char *)p1->identifier; s2 = (const unsigned char *)p2->identifier; l = p1->ext_off; diff --git a/contrib/libarchive/libarchive/archive_write_set_format_mtree.c b/contrib/libarchive/libarchive/archive_write_set_format_mtree.c index 9e5d712..b7306cb 100644 --- a/contrib/libarchive/libarchive/archive_write_set_format_mtree.c +++ b/contrib/libarchive/libarchive/archive_write_set_format_mtree.c @@ -1840,9 +1840,9 @@ mtree_entry_setup_filenames(struct archive_write *a, struct mtree_entry *file, len = strlen(p); /* - * Add "./" prefiex. + * Add "./" prefix. * NOTE: If the pathname does not have a path separator, we have - * to add "./" to the head of the pathename because mtree reader + * to add "./" to the head of the pathname because mtree reader * will suppose that it is v1(a.k.a classic) mtree format and * change the directory unexpectedly and so it will make a wrong * path. diff --git a/contrib/libarchive/libarchive/archive_write_set_format_pax.c b/contrib/libarchive/libarchive/archive_write_set_format_pax.c index 1f3e5ad..786eec4 100644 --- a/contrib/libarchive/libarchive/archive_write_set_format_pax.c +++ b/contrib/libarchive/libarchive/archive_write_set_format_pax.c @@ -127,13 +127,12 @@ archive_write_set_format_pax(struct archive *_a) if (a->format_free != NULL) (a->format_free)(a); - pax = (struct pax *)malloc(sizeof(*pax)); + pax = (struct pax *)calloc(1, sizeof(*pax)); if (pax == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate pax data"); return (ARCHIVE_FATAL); } - memset(pax, 0, sizeof(*pax)); a->format_data = pax; a->format_name = "pax"; a->format_options = archive_write_pax_options; @@ -709,7 +708,7 @@ archive_write_pax_header(struct archive_write *a, /* Copy entry so we can modify it as needed. */ #if defined(_WIN32) && !defined(__CYGWIN__) - /* Make sure the path separators in pahtname, hardlink and symlink + /* Make sure the path separators in pathname, hardlink and symlink * are all slash '/', not the Windows path separator '\'. */ entry_main = __la_win_entry_in_posix_pathseparator(entry_original); if (entry_main == entry_original) diff --git a/contrib/libarchive/libarchive/archive_write_set_format_shar.c b/contrib/libarchive/libarchive/archive_write_set_format_shar.c index 2d76495..ee36ea9 100644 --- a/contrib/libarchive/libarchive/archive_write_set_format_shar.c +++ b/contrib/libarchive/libarchive/archive_write_set_format_shar.c @@ -113,12 +113,11 @@ archive_write_set_format_shar(struct archive *_a) if (a->format_free != NULL) (a->format_free)(a); - shar = (struct shar *)malloc(sizeof(*shar)); + shar = (struct shar *)calloc(1, sizeof(*shar)); if (shar == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate shar data"); return (ARCHIVE_FATAL); } - memset(shar, 0, sizeof(*shar)); archive_string_init(&shar->work); archive_string_init(&shar->quoted_name); a->format_data = shar; diff --git a/contrib/libarchive/libarchive/archive_write_set_format_ustar.c b/contrib/libarchive/libarchive/archive_write_set_format_ustar.c index a9e6dd7..b859412 100644 --- a/contrib/libarchive/libarchive/archive_write_set_format_ustar.c +++ b/contrib/libarchive/libarchive/archive_write_set_format_ustar.c @@ -114,9 +114,9 @@ static const char template_header[] = { '0','0','0','0','0','0', ' ','\0', /* gid, space-null termination: 8 bytes */ '0','0','0','0','0','0', ' ','\0', - /* size, space termation: 12 bytes */ + /* size, space termination: 12 bytes */ '0','0','0','0','0','0','0','0','0','0','0', ' ', - /* mtime, space termation: 12 bytes */ + /* mtime, space termination: 12 bytes */ '0','0','0','0','0','0','0','0','0','0','0', ' ', /* Initial checksum value: 8 spaces */ ' ',' ',' ',' ',' ',' ',' ',' ', @@ -184,13 +184,12 @@ archive_write_set_format_ustar(struct archive *_a) return (ARCHIVE_FATAL); } - ustar = (struct ustar *)malloc(sizeof(*ustar)); + ustar = (struct ustar *)calloc(1, sizeof(*ustar)); if (ustar == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate ustar data"); return (ARCHIVE_FATAL); } - memset(ustar, 0, sizeof(*ustar)); a->format_data = ustar; a->format_name = "ustar"; a->format_options = archive_write_ustar_options; @@ -336,7 +335,7 @@ archive_write_ustar_header(struct archive_write *a, struct archive_entry *entry) } #if defined(_WIN32) && !defined(__CYGWIN__) - /* Make sure the path separators in pahtname, hardlink and symlink + /* Make sure the path separators in pathname, hardlink and symlink * are all slash '/', not the Windows path separator '\'. */ entry_main = __la_win_entry_in_posix_pathseparator(entry); if (entry_main == NULL) { diff --git a/contrib/libarchive/libarchive/archive_write_set_format_v7tar.c b/contrib/libarchive/libarchive/archive_write_set_format_v7tar.c index 17efbaf..62b1522 100644 --- a/contrib/libarchive/libarchive/archive_write_set_format_v7tar.c +++ b/contrib/libarchive/libarchive/archive_write_set_format_v7tar.c @@ -98,9 +98,9 @@ static const char template_header[] = { '0','0','0','0','0','0', ' ','\0', /* gid, space-null termination: 8 bytes */ '0','0','0','0','0','0', ' ','\0', - /* size, space termation: 12 bytes */ + /* size, space termination: 12 bytes */ '0','0','0','0','0','0','0','0','0','0','0', ' ', - /* mtime, space termation: 12 bytes */ + /* mtime, space termination: 12 bytes */ '0','0','0','0','0','0','0','0','0','0','0', ' ', /* Initial checksum value: 8 spaces */ ' ',' ',' ',' ',' ',' ',' ',' ', @@ -161,13 +161,12 @@ archive_write_set_format_v7tar(struct archive *_a) return (ARCHIVE_FATAL); } - v7tar = (struct v7tar *)malloc(sizeof(*v7tar)); + v7tar = (struct v7tar *)calloc(1, sizeof(*v7tar)); if (v7tar == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate v7tar data"); return (ARCHIVE_FATAL); } - memset(v7tar, 0, sizeof(*v7tar)); a->format_data = v7tar; a->format_name = "tar (non-POSIX)"; a->format_options = archive_write_v7tar_options; @@ -314,7 +313,7 @@ archive_write_v7tar_header(struct archive_write *a, struct archive_entry *entry) } #if defined(_WIN32) && !defined(__CYGWIN__) - /* Make sure the path separators in pahtname, hardlink and symlink + /* Make sure the path separators in pathname, hardlink and symlink * are all slash '/', not the Windows path separator '\'. */ entry_main = __la_win_entry_in_posix_pathseparator(entry); if (entry_main == NULL) { diff --git a/contrib/libarchive/libarchive/archive_write_set_format_xar.c b/contrib/libarchive/libarchive/archive_write_set_format_xar.c index a2dbc03..da6daac 100644 --- a/contrib/libarchive/libarchive/archive_write_set_format_xar.c +++ b/contrib/libarchive/libarchive/archive_write_set_format_xar.c @@ -192,7 +192,7 @@ struct file { struct file *parent; /* parent directory entry */ /* * To manage sub directory files. - * We use 'chnext' a menber of struct file to chain. + * We use 'chnext' (a member of struct file) to chain. */ struct { struct file *first; @@ -258,7 +258,7 @@ struct xar { /* * The list of all file entries is used to manage struct file * objects. - * We use 'next' a menber of struct file to chain. + * We use 'next' (a member of struct file) to chain. */ struct { struct file *first; @@ -266,7 +266,7 @@ struct xar { } file_list; /* * The list of hard-linked file entries. - * We use 'hlnext' a menber of struct file to chain. + * We use 'hlnext' (a member of struct file) to chain. */ struct archive_rb_tree hardlink_rbtree; }; diff --git a/contrib/libarchive/libarchive/archive_write_set_format_zip.c b/contrib/libarchive/libarchive/archive_write_set_format_zip.c index acef4a6..a69ce20 100644 --- a/contrib/libarchive/libarchive/archive_write_set_format_zip.c +++ b/contrib/libarchive/libarchive/archive_write_set_format_zip.c @@ -592,7 +592,7 @@ archive_write_zip_header(struct archive_write *a, struct archive_entry *entry) #if defined(_WIN32) && !defined(__CYGWIN__) - /* Make sure the path separators in pahtname, hardlink and symlink + /* Make sure the path separators in pathname, hardlink and symlink * are all slash '/', not the Windows path separator '\'. */ zip->entry = __la_win_entry_in_posix_pathseparator(entry); if (zip->entry == entry) diff --git a/contrib/libarchive/libarchive/test/main.c b/contrib/libarchive/libarchive/test/main.c index 304c7f6..4f3cdac 100644 --- a/contrib/libarchive/libarchive/test/main.c +++ b/contrib/libarchive/libarchive/test/main.c @@ -519,7 +519,7 @@ _utf8_to_unicode(uint32_t *pwc, const char *s, size_t n) return (0); /* Standard: return 0 for end-of-string. */ cnt = utf8_count[ch]; - /* Invalide sequence or there are not plenty bytes. */ + /* Invalid sequence or there are not plenty bytes. */ if (n < (size_t)cnt) return (-1); @@ -558,7 +558,7 @@ _utf8_to_unicode(uint32_t *pwc, const char *s, size_t n) return (-1); } - /* The code point larger than 0x10FFFF is not leagal + /* The code point larger than 0x10FFFF is not legal * Unicode values. */ if (wc > 0x10FFFF) return (-1); diff --git a/contrib/libarchive/libarchive/test/read_open_memory.c b/contrib/libarchive/libarchive/test/read_open_memory.c index 612fb1a..dc664ca 100644 --- a/contrib/libarchive/libarchive/test/read_open_memory.c +++ b/contrib/libarchive/libarchive/test/read_open_memory.c @@ -86,21 +86,7 @@ static int read_open_memory_internal(struct archive *a, const void *buff, size_t size, size_t read_size, int level) { - struct read_memory_data *mine; - - mine = (struct read_memory_data *)malloc(sizeof(*mine)); - if (mine == NULL) { - archive_set_error(a, ENOMEM, "No memory"); - return (ARCHIVE_FATAL); - } - memset(mine, 0, sizeof(*mine)); - mine->start = mine->p = (const unsigned char *)buff; - mine->end = mine->start + size; - mine->read_size = read_size; - mine->copy_buff_offset = 32; - mine->copy_buff_size = read_size + mine->copy_buff_offset * 2; - mine->copy_buff = malloc(mine->copy_buff_size); - memset(mine->copy_buff, 0xA5, mine->copy_buff_size); + struct read_memory_data *mine = NULL; switch (level) { case 3: @@ -109,6 +95,20 @@ read_open_memory_internal(struct archive *a, const void *buff, archive_read_set_open_callback(a, memory_read_open); archive_read_set_skip_callback(a, memory_read_skip); case 1: + mine = malloc(sizeof(*mine)); + if (mine == NULL) { + archive_set_error(a, ENOMEM, "No memory"); + return (ARCHIVE_FATAL); + } + memset(mine, 0, sizeof(*mine)); + mine->start = mine->p = (const unsigned char *)buff; + mine->end = mine->start + size; + mine->read_size = read_size; + mine->copy_buff_offset = 32; + mine->copy_buff_size = read_size + mine->copy_buff_offset * 2; + mine->copy_buff = malloc(mine->copy_buff_size); + memset(mine->copy_buff, 0xA5, mine->copy_buff_size); + archive_read_set_read_callback(a, memory_read); archive_read_set_close_callback(a, memory_read_close); archive_read_set_callback_data(a, mine); @@ -213,7 +213,8 @@ memory_read_close(struct archive *a, void *client_data) { struct read_memory_data *mine = (struct read_memory_data *)client_data; (void)a; /* UNUSED */ - free(mine->copy_buff); + if (mine != NULL) + free(mine->copy_buff); free(mine); return (ARCHIVE_OK); } diff --git a/contrib/libarchive/libarchive/test/test_archive_cmdline.c b/contrib/libarchive/libarchive/test/test_archive_cmdline.c index a411821..a823610 100644 --- a/contrib/libarchive/libarchive/test/test_archive_cmdline.c +++ b/contrib/libarchive/libarchive/test/test_archive_cmdline.c @@ -66,7 +66,7 @@ DEFINE_TEST(test_archive_cmdline) assertEqualString("gzip", cl->argv[0]); assertEqualInt(ARCHIVE_OK, __archive_cmdline_free(cl)); - /* A command line includes space characer. */ + /* A command line includes space character. */ assert((cl = __archive_cmdline_allocate()) != NULL); if (cl == NULL) return; @@ -78,7 +78,7 @@ DEFINE_TEST(test_archive_cmdline) assertEqualString("gzip ", cl->argv[0]); assertEqualInt(ARCHIVE_OK, __archive_cmdline_free(cl)); - /* A command line includes space characer: pattern 2.*/ + /* A command line includes space character: pattern 2.*/ assert((cl = __archive_cmdline_allocate()) != NULL); if (cl == NULL) return; @@ -90,7 +90,7 @@ DEFINE_TEST(test_archive_cmdline) assertEqualString("gzip x", cl->argv[0]); assertEqualInt(ARCHIVE_OK, __archive_cmdline_free(cl)); - /* A command line includes space characer: pattern 3.*/ + /* A command line includes space character: pattern 3.*/ assert((cl = __archive_cmdline_allocate()) != NULL); if (cl == NULL) return; @@ -103,7 +103,7 @@ DEFINE_TEST(test_archive_cmdline) assertEqualString("gzip x s ", cl->argv[0]); assertEqualInt(ARCHIVE_OK, __archive_cmdline_free(cl)); - /* A command line includes space characer: pattern 4.*/ + /* A command line includes space character: pattern 4.*/ assert((cl = __archive_cmdline_allocate()) != NULL); if (cl == NULL) return; diff --git a/contrib/libarchive/libarchive/test/test_archive_read_add_passphrase.c b/contrib/libarchive/libarchive/test/test_archive_read_add_passphrase.c index 45f826d..68dec10 100644 --- a/contrib/libarchive/libarchive/test/test_archive_read_add_passphrase.c +++ b/contrib/libarchive/libarchive/test/test_archive_read_add_passphrase.c @@ -80,7 +80,7 @@ DEFINE_TEST(test_archive_read_add_passphrase_single) __archive_read_reset_passphrase(ar); /* Fist call, we should get "pass1" as a passphrase. */ assertEqualString("pass1", __archive_read_next_passphrase(ar)); - /* Second call, we should get NULL which means all the pssphrases + /* Second call, we should get NULL which means all the passphrases * are passed already. */ assertEqualString(NULL, __archive_read_next_passphrase(ar)); @@ -100,7 +100,7 @@ DEFINE_TEST(test_archive_read_add_passphrase_multiple) assertEqualString("pass1", __archive_read_next_passphrase(ar)); /* Second call, we should get "pass2" as a passphrase. */ assertEqualString("pass2", __archive_read_next_passphrase(ar)); - /* Third call, we should get NULL which means all the pssphrases + /* Third call, we should get NULL which means all the passphrases * are passed already. */ assertEqualString(NULL, __archive_read_next_passphrase(ar)); @@ -171,7 +171,7 @@ DEFINE_TEST(test_archive_read_add_passphrase_set_callback2) __archive_read_reset_passphrase(ar); /* Fist call, we should get "passCallBack" as a passphrase. */ assertEqualString("passCallBack", __archive_read_next_passphrase(ar)); - /* Second call, we should get NULL which means all the pssphrases + /* Second call, we should get NULL which means all the passphrases * are passed already. */ assertEqualString(NULL, __archive_read_next_passphrase(ar)); @@ -193,7 +193,7 @@ DEFINE_TEST(test_archive_read_add_passphrase_set_callback3) __archive_read_reset_passphrase(ar); /* After reset passphrase, we should get "passCallBack"passphrase. */ assertEqualString("passCallBack", __archive_read_next_passphrase(ar)); - /* Second call, we should get NULL which means all the pssphrases + /* Second call, we should get NULL which means all the passphrases * are passed already. */ assertEqualString(NULL, __archive_read_next_passphrase(ar)); @@ -218,7 +218,7 @@ DEFINE_TEST(test_archive_read_add_passphrase_multiple_with_callback) assertEqualString("pass2", __archive_read_next_passphrase(ar)); /* Third call, we should get "passCallBack" as a passphrase. */ assertEqualString("passCallBack", __archive_read_next_passphrase(ar)); - /* Fourth call, we should get NULL which means all the pssphrases + /* Fourth call, we should get NULL which means all the passphrases * are passed already. */ assertEqualString(NULL, __archive_read_next_passphrase(ar)); @@ -251,7 +251,7 @@ DEFINE_TEST(test_archive_read_add_passphrase_multiple_with_callback2) assertEqualString("pass1", __archive_read_next_passphrase(ar)); /* Third call, we should get "passCallBack" as a passphrase. */ assertEqualString("pass2", __archive_read_next_passphrase(ar)); - /* Fourth call, we should get NULL which means all the pssphrases + /* Fourth call, we should get NULL which means all the passphrases * are passed already. */ assertEqualString(NULL, __archive_read_next_passphrase(ar)); diff --git a/contrib/libarchive/libarchive/test/test_compat_gtar.c b/contrib/libarchive/libarchive/test/test_compat_gtar.c index e059999..b33e6ab 100644 --- a/contrib/libarchive/libarchive/test/test_compat_gtar.c +++ b/contrib/libarchive/libarchive/test/test_compat_gtar.c @@ -106,10 +106,48 @@ test_compat_gtar_1(void) assertEqualInt(ARCHIVE_OK, archive_read_free(a)); } +/* + * test_compat_gtar_2.tar exercises reading of UID = 2097152 as base256 + * and GID = 2097152 as octal without null terminator. + */ +static void +test_compat_gtar_2(void) +{ + char name[] = "test_compat_gtar_2.tar"; + struct archive_entry *ae; + struct archive *a; + int r; + + assert((a = archive_read_new()) != NULL); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); + extract_reference_file(name); + assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, name, 10240)); + + /* Read first entry. */ + assertEqualIntA(a, ARCHIVE_OK, r = archive_read_next_header(a, &ae)); + if (r != ARCHIVE_OK) { + archive_read_free(a); + return; + } + + /* Check UID and GID */ + assertEqualInt(2097152, archive_entry_uid(ae)); + assertEqualInt(2097152, archive_entry_gid(ae)); + + /* Verify the end-of-archive. */ + assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae)); + + /* Verify that the format detection worked. */ + assertEqualInt(archive_filter_code(a, 0), ARCHIVE_FILTER_NONE); + assertEqualInt(archive_format(a), ARCHIVE_FORMAT_TAR_GNUTAR); + +} DEFINE_TEST(test_compat_gtar) { test_compat_gtar_1(); + test_compat_gtar_2(); } diff --git a/contrib/libarchive/libarchive/test/test_compat_gtar_2.tar.uu b/contrib/libarchive/libarchive/test/test_compat_gtar_2.tar.uu new file mode 100644 index 0000000..7843a2c --- /dev/null +++ b/contrib/libarchive/libarchive/test/test_compat_gtar_2.tar.uu @@ -0,0 +1,49 @@ +begin 660 test_compat_gtar_2.tar.uu +M9FEL95]W:71H7V)I9U]U:61?9VED```````````````````````````````` +M```````````````````````````````````````````````````````````` +M`````````````#`P,#`V-C8`@``````@```Q,#`P,#`P,#`P,#`P,#`P,38W +M`#$S,#$T-C<R,38W`#`Q,S,U,``@,``````````````````````````````` +M```````````````````````````````````````````````````````````` +M``````````````````````````````````````````!U<W1A<B`@`'1E<W0` +M````````````````````````````````````8FEG```````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M``````````````````````!4:&ES(&9I;&4@:&%S($=)1#TR,#DW,34R('=H +M:6-H(&ES(&]N92!O=F5R('1H92!L:6UI="!O9B!T87(@=BXW(&%N9"!'3E4@ +M=&%R('-T;W)E<R!I="!A<R!B87-E(#(U-B!N=6UB97(@*&YO="!O8W1A;"DN +M"@`````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +7```````````````````````````````` +` +end diff --git a/contrib/libarchive/libarchive/test/test_compat_perl_archive_tar.c b/contrib/libarchive/libarchive/test/test_compat_perl_archive_tar.c new file mode 100644 index 0000000..165a519 --- /dev/null +++ b/contrib/libarchive/libarchive/test/test_compat_perl_archive_tar.c @@ -0,0 +1,66 @@ +/*- + * Copyright (c) 2016 Martin Matuska + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include "test.h" +__FBSDID("$FreeBSD"); + +/* + * Verify our ability to read sample files created by Perl module Archive::Tar + */ + +DEFINE_TEST(test_compat_perl_archive_tar) +{ + char name[] = "test_compat_perl_archive_tar.tar"; + struct archive_entry *ae; + struct archive *a; + int r; + + assert((a = archive_read_new()) != NULL); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); + extract_reference_file(name); + assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, name, + 10240)); + + /* Read first entry. */ + assertEqualIntA(a, ARCHIVE_OK, r = archive_read_next_header(a, &ae)); + if (r != ARCHIVE_OK) { + archive_read_free(a); + return; + } + assertEqualString("file1", archive_entry_pathname(ae)); + assertEqualInt(1480603099, archive_entry_mtime(ae)); + assertEqualInt(1000, archive_entry_uid(ae)); + assertEqualString("john", archive_entry_uname(ae)); + assertEqualInt(1000, archive_entry_gid(ae)); + assertEqualString("john", archive_entry_gname(ae)); + assertEqualInt(0100644, archive_entry_mode(ae)); + + /* Verify that the format detection worked. */ + assertEqualInt(archive_filter_code(a, 0), ARCHIVE_FILTER_NONE); + assertEqualInt(archive_format(a), ARCHIVE_FORMAT_TAR_USTAR); + + assertEqualInt(ARCHIVE_OK, archive_read_close(a)); + assertEqualInt(ARCHIVE_OK, archive_read_free(a)); +} diff --git a/contrib/libarchive/libarchive/test/test_compat_perl_archive_tar.tar.uu b/contrib/libarchive/libarchive/test/test_compat_perl_archive_tar.tar.uu new file mode 100644 index 0000000..ca7bc2a --- /dev/null +++ b/contrib/libarchive/libarchive/test/test_compat_perl_archive_tar.tar.uu @@ -0,0 +1,49 @@ +begin 644 test_compat_perl_archive_tar.tar +M9FEL93$````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M`````````````#`P,#8T-```,#`Q-S4P```P,#$W-3```"`@("`@("`@("`U +M`#$S,#(P,#,R-S,S`"`Q,3$R,P`@,``````````````````````````````` +M```````````````````````````````````````````````````````````` +M``````````````````````````````````````````!U<W1A<@`P,&IO:&X` +M````````````````````````````````````:F]H;@`````````````````` +M```````````````````P,#`P,#```#`P,#`P,``````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M``````````````````````!A8F-D"@`````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +7```````````````````````````````` +` +end diff --git a/contrib/libarchive/libarchive/test/test_compat_plexus_archiver_tar.c b/contrib/libarchive/libarchive/test/test_compat_plexus_archiver_tar.c new file mode 100644 index 0000000..0f8bedc --- /dev/null +++ b/contrib/libarchive/libarchive/test/test_compat_plexus_archiver_tar.c @@ -0,0 +1,69 @@ +/*- + * Copyright (c) 2016 Martin Matuska + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include "test.h" +__FBSDID("$FreeBSD"); + +/* + * Verify our ability to read sample files created by plexus-archiver version + * 2.6.2 and lower (project switched to Apache Commons Compress with 2.6.3). + * + * These files may have tar entries with uid and gid header fields filled with + * spaces without any octal digit. + */ + +DEFINE_TEST(test_compat_plexus_archiver_tar) +{ + char name[] = "test_compat_plexus_archiver_tar.tar"; + struct archive_entry *ae; + struct archive *a; + int r; + + assert((a = archive_read_new()) != NULL); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); + extract_reference_file(name); + assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, name, + 10240)); + + /* Read first entry. */ + assertEqualIntA(a, ARCHIVE_OK, r = archive_read_next_header(a, &ae)); + if (r != ARCHIVE_OK) { + archive_read_free(a); + return; + } + assertEqualString("commons-logging-1.2/NOTICE.txt", + archive_entry_pathname(ae)); + assertEqualInt(1404583896, archive_entry_mtime(ae)); + assertEqualInt(0100664, archive_entry_mode(ae)); + assertEqualInt(0, archive_entry_uid(ae)); + assertEqualInt(0, archive_entry_gid(ae)); + + /* Verify that the format detection worked. */ + assertEqualInt(archive_filter_code(a, 0), ARCHIVE_FILTER_NONE); + assertEqualInt(archive_format(a), ARCHIVE_FORMAT_TAR_USTAR); + + assertEqualInt(ARCHIVE_OK, archive_read_close(a)); + assertEqualInt(ARCHIVE_OK, archive_read_free(a)); +} diff --git a/contrib/libarchive/libarchive/test/test_compat_plexus_archiver_tar.tar.uu b/contrib/libarchive/libarchive/test/test_compat_plexus_archiver_tar.tar.uu new file mode 100644 index 0000000..39d7b11 --- /dev/null +++ b/contrib/libarchive/libarchive/test/test_compat_plexus_archiver_tar.tar.uu @@ -0,0 +1,49 @@ +begin 644 test_compat_plexus_archiver_tar.tar +M8V]M;6]N<RUL;V=G:6YG+3$N,B].3U1)0T4N='AT```````````````````` +M```````````````````````````````````````````````````````````` +M`````````````#$P,#8V-"``("`@("`@(``@("`@("`@`"`@("`@("`@,C8Q +M(#$R,S4V,#,W-S,P("`Q-#$U-P`@,``````````````````````````````` +M```````````````````````````````````````````````````````````` +M``````````````````````````````````````````!U<W1A<@```'1N```` +M````````````````````````````````````=&X````````````````````` +M```````````````````@("`@(#`@`"`@("`@,"`````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M``````````````````````!!<&%C:&4@0V]M;6]N<R!,;V=G:6YG"D-O<'ER +M:6=H="`R,#`S+3(P,30@5&AE($%P86-H92!3;V9T=V%R92!&;W5N9&%T:6]N +M"@I4:&ES('!R;V1U8W0@:6YC;'5D97,@<V]F='=A<F4@9&5V96QO<&5D(&%T +M"E1H92!!<&%C:&4@4V]F='=A<F4@1F]U;F1A=&EO;B`H:'1T<#HO+W=W=RYA +M<&%C:&4N;W)G+RDN"@H````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +7``````````````````````````````H` +` +end diff --git a/contrib/libarchive/libarchive/test/test_compat_star_acl_posix1e.c b/contrib/libarchive/libarchive/test/test_compat_star_acl_posix1e.c new file mode 100644 index 0000000..10bffd9 --- /dev/null +++ b/contrib/libarchive/libarchive/test/test_compat_star_acl_posix1e.c @@ -0,0 +1,215 @@ +/*- + * Copyright (c) 2003-2007 Tim Kientzle + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include "test.h" +__FBSDID("$FreeBSD$"); + +/* + * Verify reading entries with POSIX.1e ACLs from archives created by star + * + * This should work on all systems, regardless of whether local filesystems + * support ACLs or not. + */ + +struct acl_t { + int type; /* Type of ACL: "access" or "default" */ + int permset; /* Permissions for this class of users. */ + int tag; /* Owner, User, Owning group, group, other, etc. */ + const char *name; /* Name of user/group, depending on tag. */ +}; + +static struct acl_t acls0[] = { + { ARCHIVE_ENTRY_ACL_TYPE_ACCESS, ARCHIVE_ENTRY_ACL_EXECUTE, + ARCHIVE_ENTRY_ACL_USER_OBJ, "" }, + { ARCHIVE_ENTRY_ACL_TYPE_ACCESS, ARCHIVE_ENTRY_ACL_READ, + ARCHIVE_ENTRY_ACL_USER, "user77" }, + { ARCHIVE_ENTRY_ACL_TYPE_ACCESS, ARCHIVE_ENTRY_ACL_READ, + ARCHIVE_ENTRY_ACL_GROUP_OBJ, "" }, + { ARCHIVE_ENTRY_ACL_TYPE_ACCESS, ARCHIVE_ENTRY_ACL_READ, + ARCHIVE_ENTRY_ACL_MASK, ""}, + { ARCHIVE_ENTRY_ACL_TYPE_ACCESS, ARCHIVE_ENTRY_ACL_WRITE, + ARCHIVE_ENTRY_ACL_OTHER, "" }, +}; + +static struct acl_t acls1[] = { + { ARCHIVE_ENTRY_ACL_TYPE_ACCESS, ARCHIVE_ENTRY_ACL_EXECUTE | ARCHIVE_ENTRY_ACL_READ, + ARCHIVE_ENTRY_ACL_USER_OBJ, "" }, + { ARCHIVE_ENTRY_ACL_TYPE_ACCESS, ARCHIVE_ENTRY_ACL_READ, + ARCHIVE_ENTRY_ACL_USER, "user77" }, + { ARCHIVE_ENTRY_ACL_TYPE_ACCESS, 0, + ARCHIVE_ENTRY_ACL_USER, "user78" }, + { ARCHIVE_ENTRY_ACL_TYPE_ACCESS, ARCHIVE_ENTRY_ACL_READ, + ARCHIVE_ENTRY_ACL_GROUP_OBJ, "" }, + { ARCHIVE_ENTRY_ACL_TYPE_ACCESS, 0007, + ARCHIVE_ENTRY_ACL_GROUP, "group78" }, + { ARCHIVE_ENTRY_ACL_TYPE_ACCESS, 0007, + ARCHIVE_ENTRY_ACL_MASK, ""}, + { ARCHIVE_ENTRY_ACL_TYPE_ACCESS, ARCHIVE_ENTRY_ACL_WRITE | ARCHIVE_ENTRY_ACL_EXECUTE, + ARCHIVE_ENTRY_ACL_OTHER, "" }, +}; + +static struct acl_t acls2[] = { + { ARCHIVE_ENTRY_ACL_TYPE_DEFAULT, ARCHIVE_ENTRY_ACL_EXECUTE, + ARCHIVE_ENTRY_ACL_USER_OBJ, "" }, + { ARCHIVE_ENTRY_ACL_TYPE_DEFAULT, ARCHIVE_ENTRY_ACL_READ, + ARCHIVE_ENTRY_ACL_USER, "user77" }, + { ARCHIVE_ENTRY_ACL_TYPE_DEFAULT, ARCHIVE_ENTRY_ACL_READ, + ARCHIVE_ENTRY_ACL_GROUP_OBJ, "" }, + { ARCHIVE_ENTRY_ACL_TYPE_DEFAULT, ARCHIVE_ENTRY_ACL_EXECUTE, + ARCHIVE_ENTRY_ACL_GROUP, "group78" }, + { ARCHIVE_ENTRY_ACL_TYPE_DEFAULT, ARCHIVE_ENTRY_ACL_READ | ARCHIVE_ENTRY_ACL_EXECUTE, + ARCHIVE_ENTRY_ACL_MASK, ""}, + { ARCHIVE_ENTRY_ACL_TYPE_DEFAULT, ARCHIVE_ENTRY_ACL_WRITE, + ARCHIVE_ENTRY_ACL_OTHER, "" }, +}; + +static int +acl_match(struct acl_t *acl, int type, int permset, int tag, const char *name) +{ + if (type != acl->type) + return (0); + if (permset != acl->permset) + return (0); + if (tag != acl->tag) + return (0); + if (tag == ARCHIVE_ENTRY_ACL_USER_OBJ) + return (1); + if (tag == ARCHIVE_ENTRY_ACL_GROUP_OBJ) + return (1); + if (tag == ARCHIVE_ENTRY_ACL_OTHER) + return (1); + if (tag == ARCHIVE_ENTRY_ACL_MASK) + return (1); + if (name == NULL) + return (acl->name == NULL || acl->name[0] == '\0'); + if (acl->name == NULL) + return (name == NULL || name[0] == '\0'); + return (0 == strcmp(name, acl->name)); +} + +static void +compare_acls(struct archive_entry *ae, struct acl_t *acls, int n, int mode, + int want_type) +{ + int *marker = malloc(sizeof(marker[0]) * n); + int i; + int r; + int type, permset, tag, qual; + int matched; + const char *name; + + for (i = 0; i < n; i++) + marker[i] = i; + + while (0 == (r = archive_entry_acl_next(ae, want_type, + &type, &permset, &tag, &qual, &name))) { + for (i = 0, matched = 0; i < n && !matched; i++) { + if (acl_match(&acls[marker[i]], type, permset, + tag, name)) { + /* We found a match; remove it. */ + marker[i] = marker[n - 1]; + n--; + matched = 1; + } + } + if (tag == ARCHIVE_ENTRY_ACL_USER_OBJ) { + if (!matched) printf("No match for user_obj perm\n"); + if (want_type == ARCHIVE_ENTRY_ACL_TYPE_ACCESS) { + failure("USER_OBJ permset (%02o) != user mode (%02o)", + permset, 07 & (mode >> 6)); + assert((permset << 6) == (mode & 0700)); + } + } else if (tag == ARCHIVE_ENTRY_ACL_GROUP_OBJ) { + if (!matched) printf("No match for group_obj perm\n"); + if (want_type == ARCHIVE_ENTRY_ACL_TYPE_ACCESS) { + failure("GROUP_OBJ permset %02o != group mode %02o", + permset, 07 & (mode >> 3)); + assert((permset << 3) == (mode & 0070)); + } + } else if (tag == ARCHIVE_ENTRY_ACL_OTHER) { + if (!matched) printf("No match for other perm\n"); + if (want_type == ARCHIVE_ENTRY_ACL_TYPE_ACCESS) { + failure("OTHER permset (%02o) != other mode (%02o)", + permset, mode & 07); + assert((permset << 0) == (mode & 0007)); + } + } else if (tag != ARCHIVE_ENTRY_ACL_MASK) { + failure("Could not find match for ACL " + "(type=%d,permset=%d,tag=%d,name=``%s'')", + type, permset, tag, name); + assert(matched == 1); + } + } + assertEqualInt(ARCHIVE_EOF, r); + assert((mode_t)(mode & 0777) == (archive_entry_mode(ae) & 0777)); + failure("Could not find match for ACL " + "(type=%d,permset=%d,tag=%d,name=``%s'')", + acls[marker[0]].type, acls[marker[0]].permset, + acls[marker[0]].tag, acls[marker[0]].name); + assert(n == 0); /* Number of ACLs not matched should == 0 */ + free(marker); +} + +DEFINE_TEST(test_compat_star_acl_posix1e) +{ + char name[] = "test_compat_star_acl_posix1e.tar"; + struct archive *a; + struct archive_entry *ae; + + /* Read archive file */ + assert(NULL != (a = archive_read_new())); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); + extract_reference_file(name); + assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, name, 10240)); + + /* First item has a few ACLs */ + assertA(0 == archive_read_next_header(a, &ae)); + failure("One extended ACL should flag all ACLs to be returned."); + assertEqualInt(5, archive_entry_acl_reset(ae, ARCHIVE_ENTRY_ACL_TYPE_ACCESS)); + compare_acls(ae, acls0, sizeof(acls0)/sizeof(acls0[0]), 0142, ARCHIVE_ENTRY_ACL_TYPE_ACCESS); + failure("Basic ACLs should set mode to 0142, not %04o", + archive_entry_mode(ae)&0777); + assert((archive_entry_mode(ae) & 0777) == 0142); + + /* Second item has pretty extensive ACLs */ + assertA(0 == archive_read_next_header(a, &ae)); + assertEqualInt(7, archive_entry_acl_reset(ae, ARCHIVE_ENTRY_ACL_TYPE_ACCESS)); + compare_acls(ae, acls1, sizeof(acls1)/sizeof(acls1[0]), 0543, ARCHIVE_ENTRY_ACL_TYPE_ACCESS); + failure("Basic ACLs should set mode to 0543, not %04o", + archive_entry_mode(ae)&0777); + assert((archive_entry_mode(ae) & 0777) == 0543); + + /* Third item has default ACLs */ + assertA(0 == archive_read_next_header(a, &ae)); + assertEqualInt(6, archive_entry_acl_reset(ae, ARCHIVE_ENTRY_ACL_TYPE_DEFAULT)); + compare_acls(ae, acls2, sizeof(acls2)/sizeof(acls2[0]), 0142, ARCHIVE_ENTRY_ACL_TYPE_DEFAULT); + failure("Basic ACLs should set mode to 0142, not %04o", + archive_entry_mode(ae)&0777); + assert((archive_entry_mode(ae) & 0777) == 0142); + + /* Close the archive. */ + assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); + assertEqualInt(ARCHIVE_OK, archive_read_free(a)); +} diff --git a/contrib/libarchive/libarchive/test/test_compat_star_acl_posix1e.tar.uu b/contrib/libarchive/libarchive/test/test_compat_star_acl_posix1e.tar.uu new file mode 100644 index 0000000..81b771b --- /dev/null +++ b/contrib/libarchive/libarchive/test/test_compat_star_acl_posix1e.tar.uu @@ -0,0 +1,231 @@ +begin 644 test_compat_star_acl_posix1e.tar +M+B\N+T!087A(96%D97(````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M`````````````#`P,#`V,#`@,#`P,#`P,"`P,#`P,#`P(#`P,#`P,#`P,C<R +M(#`P,#`P,#`P,#`P(#`P,38P-S0@9P`````````````````````````````` +M```````````````````````````````````````````````````````````` +M``````````````````````````````````````````!U<W1A<@`P,')O;W0` +M````````````````````````````````````=VAE96P````````````````` +M```````````````````P,#`P,#`P(#`P,#`P,#`@```````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````P,#`P,#`P,#`P,"`P,#`P,#`P +M,#`P,"`````````````````U-R!30TA)3%DN<F5L96%S93US=&%R(#$N-2XS +M("AA;60V-"UU;FMN;W=N+69R965B<V0Q,2XP*0HR-R!30TA)3%DN87)C:'1Y +M<&4]97AU<W1A<@HT-R!30TA)3%DN=F]L:&1R+F1U;7!D871E/3$T-SDQ,CDY +M-30N,#4X-S<R-SDS"C(U(%-#2$E,62YV;VQH9'(N=F]L;F\],0HS,"!30TA) +M3%DN=F]L:&1R+F)L;V-K<VEZ93TR,`H````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M`````````````````````````````````````````````"XO+B]`4&%X2&5A +M9&5R```````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````P +M,#`P-C`P(#`P,#`P,#`@,#`P,#`P,"`P,#`P,#`P,#(U,2`P,#`P,#`P,#`P +M,"`P,#$V,3$R('@````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M````````````````````````````=7-T87(`,#!R;V]T```````````````` +M`````````````````````'=H965L```````````````````````````````` +M````,#`P,#`P,"`P,#`P,#`P(``````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M````````````````````,#`P,#`P,#`P,#`@,#`P,#`P,#`P,#`@```````` +M````````,S`@871I;64],30W.3$R,34Y-BXT.#4W,30P,#`*,S`@8W1I;64] +M,30W.3$R.3<V-RXQ,#@Y.#8P,#`*,S`@;71I;64],30W.3$R,34Y-BXT.#4W +M,30P,#`*-SD@4T-(24Q9+F%C;"YA8V-E<W,]=7-E<CHZ+2UX+'5S97(Z=7-E +M<C<W.G(M+2QG<F]U<#HZ<BTM+&UA<VLZ.G(M+2QO=&AE<CHZ+7<M"@`````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M``````````````````````````````!F:6QE,0`````````````````````` +M```````````````````````````````````````````````````````````` +M````````````````````````````````````````````,#`P,#$T,B`P,#`P +M,#`P(#`P,#`P,#`@,#`P,#`P,#`P,#`@,3,P,3(S,34R-S0@,#`Q-#8W,2`P +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M`````````````'5S=&%R`#`P<F]O=``````````````````````````````` +M``````!W:&5E;````````````````````````````````````#`P,#`P,#`@ +M,#`P,#`P,"`````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M`````#$S,#$R,S$U,C<T(#$S,#$R,S,U,C0W(````````````````"XO+B]` +M4&%X2&5A9&5R```````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````P,#`P-C`P(#`P,#`P,#`@,#`P,#`P,"`P,#`P,#`P,#,Q-"`P,#`P +M,#`P,#`P,"`P,#$V,3$R('@````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M````````````````````````````````````=7-T87(`,#!R;V]T```````` +M`````````````````````````````'=H965L```````````````````````` +M````````````,#`P,#`P,"`P,#`P,#`P(``````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M````````````````````````````,#`P,#`P,#`P,#`@,#`P,#`P,#`P,#`@ +M````````````````,S`@871I;64],30W.3$R,38P,2XP-C`X-C8P,#`*,S`@ +M8W1I;64],30W.3$R.3<V-RXQ,#@Y-S0P,#`*,S`@;71I;64],30W.3$R,38P +M,2XP-C`X-C8P,#`*,3$T(%-#2$E,62YA8VPN86-C97-S/75S97(Z.G(M>"QU +M<V5R.G5S97(W-SIR+2TL=7-E<CIU<V5R-S@Z+2TM+&=R;W5P.CIR+2TL9W)O +M=7`Z9W)O=7`W.#IR=W@L;6%S:SHZ<G=X+&]T:&5R.CHM=W@*```````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M``````````````````````````````````````!F:6QE,@`````````````` +M```````````````````````````````````````````````````````````` +M````````````````````````````````````````````````````,#`P,#4W +M,R`P,#`P,#`P(#`P,#`P,#`@,#`P,#`P,#`P,#`@,3,P,3(S,34S,#$@,#`Q +M-#8V,"`P```````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M`````````````````````'5S=&%R`#`P<F]O=``````````````````````` +M``````````````!W:&5E;````````````````````````````````````#`P +M,#`P,#`@,#`P,#`P,"`````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M`````````````#$S,#$R,S$U,S`Q(#$S,#$R,S,U,C0W(``````````````` +M`"XO+B]`4&%X2&5A9&5R```````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````P,#`P-C`P(#`P,#`P,#`@,#`P,#`P,"`P,#`P,#`P,#,W +M,R`P,#`P,#`P,#`P,"`P,#$V,3$W('@````````````````````````````` +M```````````````````````````````````````````````````````````` +M````````````````````````````````````````````=7-T87(`,#!R;V]T +M`````````````````````````````````````'=H965L```````````````` +M````````````````````,#`P,#`P,"`P,#`P,#`P(``````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M````````````````````````````````````,#`P,#`P,#`P,#`@,#`P,#`P +M,#`P,#`@````````````````,S`@871I;64],30W.3$R,3<R-BXX,3<T-3`P +M,#`*,S`@8W1I;64],30W.3$R,3@S,2XU.#,U-3(P,#`*,S`@;71I;64],30W +M.3$R,3<R-BXX,3<T-3`P,#`*-C,@4T-(24Q9+F%C;"YA8V-E<W,]=7-E<CHZ +M+2UX+&=R;W5P.CIR+2TL;6%S:SHZ<BTM+&]T:&5R.CHM=RT*.3@@4T-(24Q9 +M+F%C;"YD969A=6QT/75S97(Z.BTM>"QU<V5R.G5S97(W-SIR+2TL9W)O=7`Z +M.G(M+2QG<F]U<#IG<F]U<#<X.BTM>"QM87-K.CIR+7@L;W1H97(Z.BUW+0H` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M``````````````````````````````````````````````!D:7(Q+P`````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M,#`P,#$T,B`P,#`P,#`P(#`P,#`P,#`@,#`P,#`P,#`P,#`@,3,P,3(S,34T +M-S8@,#`Q-#8R-B`U```````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M`````````````````````````````'5S=&%R`#`P<F]O=``````````````` +M``````````````````````!W:&5E;``````````````````````````````` +M`````#`P,#`P,#`@,#`P,#`P,"`````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M`````````````````````#$S,#$R,S$U-#<V(#$S,#$R,S$U-C0W(``````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +9```````````````````````````````````` +` +end diff --git a/contrib/libarchive/libarchive/test/test_fuzz.c b/contrib/libarchive/libarchive/test/test_fuzz.c index 67aa1ac..b70a415a 100644 --- a/contrib/libarchive/libarchive/test/test_fuzz.c +++ b/contrib/libarchive/libarchive/test/test_fuzz.c @@ -104,16 +104,19 @@ test_fuzz(const struct files *filesets) } if (!assert(size < buffsize)) { free(rawimage); + rawimage = NULL; continue; } } else { for (i = 0; filesets[n].names[i] != NULL; ++i) { tmp = slurpfile(&size, filesets[n].names[i]); - char *newraw = (char *)realloc(rawimage, oldsize + size); + char *newraw = realloc(rawimage, oldsize + size); if (!assert(newraw != NULL)) { free(rawimage); + rawimage = NULL; + free(tmp); continue; } rawimage = newraw; @@ -123,14 +126,21 @@ test_fuzz(const struct files *filesets) free(tmp); } } - if (size == 0) + if (size == 0) { + free(rawimage); + rawimage = NULL; continue; + } image = malloc(size); assert(image != NULL); if (image == NULL) { free(rawimage); + rawimage = NULL; return; } + + assert(rawimage != NULL); + srand((unsigned)time(NULL)); for (i = 0; i < 1000; ++i) { @@ -162,6 +172,7 @@ test_fuzz(const struct files *filesets) Sleep(100); #endif } + assert(f != NULL); assertEqualInt((size_t)size, fwrite(image, 1, (size_t)size, f)); fclose(f); @@ -195,7 +206,7 @@ test_fuzz(const struct files *filesets) archive_read_close(a); } archive_read_free(a); -} + } free(image); free(rawimage); } diff --git a/contrib/libarchive/libarchive/test/test_pax_filename_encoding.c b/contrib/libarchive/libarchive/test/test_pax_filename_encoding.c index 08518e2..635e8e6 100644 --- a/contrib/libarchive/libarchive/test/test_pax_filename_encoding.c +++ b/contrib/libarchive/libarchive/test/test_pax_filename_encoding.c @@ -347,7 +347,7 @@ DEFINE_TEST(test_pax_filename_encoding_KOI8R) return; } - /* Check if the paltform completely supports the string conversion. */ + /* Check if the platform completely supports the string conversion. */ a = archive_write_new(); assertEqualInt(ARCHIVE_OK, archive_write_set_format_pax(a)); if (archive_write_set_options(a, "hdrcharset=UTF-8") != ARCHIVE_OK) { @@ -394,7 +394,7 @@ DEFINE_TEST(test_pax_filename_encoding_CP1251) return; } - /* Check if the paltform completely supports the string conversion. */ + /* Check if the platform completely supports the string conversion. */ a = archive_write_new(); assertEqualInt(ARCHIVE_OK, archive_write_set_format_pax(a)); if (archive_write_set_options(a, "hdrcharset=UTF-8") != ARCHIVE_OK) { @@ -440,7 +440,7 @@ DEFINE_TEST(test_pax_filename_encoding_EUCJP) return; } - /* Check if the paltform completely supports the string conversion. */ + /* Check if the platform completely supports the string conversion. */ a = archive_write_new(); assertEqualInt(ARCHIVE_OK, archive_write_set_format_pax(a)); if (archive_write_set_options(a, "hdrcharset=UTF-8") != ARCHIVE_OK) { @@ -488,7 +488,7 @@ DEFINE_TEST(test_pax_filename_encoding_CP932) return; } - /* Check if the paltform completely supports the string conversion. */ + /* Check if the platform completely supports the string conversion. */ a = archive_write_new(); assertEqualInt(ARCHIVE_OK, archive_write_set_format_pax(a)); if (archive_write_set_options(a, "hdrcharset=UTF-8") != ARCHIVE_OK) { diff --git a/contrib/libarchive/libarchive/test/test_read_disk_directory_traversals.c b/contrib/libarchive/libarchive/test/test_read_disk_directory_traversals.c index c16b0c6..31eb76b 100644 --- a/contrib/libarchive/libarchive/test/test_read_disk_directory_traversals.c +++ b/contrib/libarchive/libarchive/test/test_read_disk_directory_traversals.c @@ -33,7 +33,7 @@ __FBSDID("$FreeBSD$"); #endif /* - * Test if the current filesytem is mounted with noatime option. + * Test if the current filesystem is mounted with noatime option. */ static int atimeIsUpdated(void) @@ -500,8 +500,8 @@ test_basic(void) /* * We should be on the initial directory where we performed - * archive_read_disk_new() after we perfome archive_read_free() - * even if we broke off the directory traversals. + * archive_read_disk_new() after we perform archive_read_free() + * even if we broke off the directory traversals. */ /* Save current working directory. */ @@ -1327,6 +1327,7 @@ test_callbacks(void) if (assert((m = archive_match_new()) != NULL)) { archive_entry_free(ae); archive_read_free(a); + archive_match_free(m); return; } @@ -1564,11 +1565,11 @@ DEFINE_TEST(test_read_disk_directory_traversals) { /* Basic test. */ test_basic(); - /* Test hybird mode; follow symlink initially, then not. */ + /* Test hybrid mode; follow symlink initially, then not. */ test_symlink_hybrid(); - /* Test logcal mode; follow all symlinks. */ + /* Test logical mode; follow all symlinks. */ test_symlink_logical(); - /* Test logcal mode; prevent loop in symlinks. */ + /* Test logical mode; prevent loop in symlinks. */ test_symlink_logical_loop(); /* Test to restore atime. */ test_restore_atime(); diff --git a/contrib/libarchive/libarchive/test/test_read_format_raw.bufr.uu b/contrib/libarchive/libarchive/test/test_read_format_raw.bufr.uu new file mode 100644 index 0000000..2f4cef7 --- /dev/null +++ b/contrib/libarchive/libarchive/test/test_read_format_raw.bufr.uu @@ -0,0 +1,95 @@ +begin 660 test_read_format_raw.bufr.uu +M,#`P-S0T.3@P,`$-#0HP,#`-#0I)15%8,#$@155-4"`P-S`U,#`-#0I"5492 +M`2+?!```%@``_@`````#_]T0``?@"P<$.P````D``'C`Z`@!(K0``,``_@!N +M@#T!^`"P!P"!`````"JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ@#=]]]]] +M]]]]]]]]]]@````````````````````````````````````````````````` +M````````````````````````````````````````````````````````0AS@ +M/.`\X#S@//M\^WS[?/M]%ET6719=%ETQ/3$],3TQ(```````````&V`;8!M@ +M&V`V0#9`-D`V0%&`48!1@%&`;&!L8&Q@;&"'0(=`AT"'0*(@HB"B(*(@O8"] +M@+V`O8#80-A`V$#80/.@\Z#SH/.A#H$.@0Z!#H$I82EA*6$I843!1,%$P43! +M7X%?@5^!7X%Z87IA>F%Z897!E<&5P97!L*&PH;"AL*',`<P!S`',`>;AYN'F +MX>;B`B("(@(B`B(<@AR"'((<@C?B-^(WXC?B4L)2PE+"4L)N(FXB;B)N(HCB +MB.*(XHCBH\*CPJ/"H\BZQK3$>Z`M3P```96P=EB)(F#:0C*.B=E8YJH8[61W +MV+Z)DM;2)*Q8Z4V[T6O1*GO&@Y3UWQHV$QNX==:0U"G4XC@H"!]-(J(@'D/? +M@(SYTVUR+"E#9NEU?4F/)3&DAC2@Z%6S^G>N30VJGI%L62FLU1@^LI27SAJ\ +MAE7)"Z[IC/VMTH6><,,*6=1B_>=>!,RS3:UOL>+6(/[321O:>SY39A-MM<W- +MRC7A%J!DXUZ=ZKM_#FX=3KN![XZY_(<B@/0)X">;Q$AVID_52A79OI7GLR$& +MSF*I)!#&@`%Q#EY!`,.RR%*'&\:EF1QI5(J]<GHB=*+)O?D-%S2?J38<U/^7 +MI50TKK;FT6L)]PU4'>X(-6,[J'"6>D\2[%OX:S*/?P46S?=U=PV5MOW^%-?Q +M"-,Z'1F[U]*D5IJX<+]WA,(L9NKCB>[D-C</1[P"M>3H[!`U7VI[+9C9M9:A +M3'3YOJJE-5E\Z$7102[J,RG1VXIIC',\]YQ3C.:890?))T[97M[+-*8XQY&W +MIH_F5(+RXB"?$"!HHBA%2^8,)-!3&H29["AH7VT*^HIG\Y^_U;GAW,\!)WGV +M&],S7-,TY;['3(@ZG`VXB\VVM&^?"X!RVCO\T02FIP`U;[V.JPQGC64RBRT4 +MUY0&N\%%_CDP*E%B_.L)Q%IB\M:L5+[&I0_%2T.JE&DSJ\F.HTZ_HGFV49Y: +MC`"$AQ,D=<3^/R?B54&T*A&33@,V;Q7#IJ$==HB_(T7H(#)O*9>_":$02^K" +MF*F5#21OUT-KRQ]\L0"FP^9B'>[1/3**.N@"OB````7M\#3O$=.;64K*60;( +M,]2>I1YH\R)I$TL26+"'A#Q(8D+O!W@^'?#M86L+?5OJO77KL:6-2E)2DKC5 +MQHT4:*6!+"=3.IGX3\1=8NN9D,R$7"+A.DG2+C%R#<!N`6L+:'X#[@```P(8 +M$("2!*@$P!P@<00%]"]C?QP`O07D3V)[D:B-)G(SF7E+R'[S]YV$[`EN2W(W +MT;RO%7BIA4P,>&/"^9?*X#<"-<&M[Y5\L[_=_1,(F$):$K+4EJR-I&M(FD3/ +MDGR64K*=:6M(.$Q](FI95+*I%-(>I9E++I$-(4I9U+,I"](+I:=+1I!](`I; +M-+6I`E'RI;]+;H^U'CI==+FH]%'1I?=+TH[%&WIAU,$HX%&8IEE,?HTE%NIK +MU-)HO]$GIU=.(HHE"HJ(-/[H<4]LJX=3^H!L:<OTUC(F6Q$]"Z@``+20XM$K +M@BJ'9XU0%(0H!&Q8SQ%68J2&B`RN%=`K5&8(R0%C`L,&3PQU%F0LJ&/XQ?%H +M@L^&,XQ-%J`M-&*@P]%K`M6&(8PO%KHM;&&@PA%KXM?&$XP5%L`MAP'%K +MHM?&!HOX%JXM:%_ZZ1+!N"P``"Q/"4#>'H>H[!FC6*`3@CA)3!E[+&6LWYN# +M1&I/L>\[9XD4HC0@A=+*4T@I(4.H%."=E9*L4XJ);BUECK,8*O]>"]F6LH8R +MQYJK4&@M&;ZWAM+;G2N@<BY9YSR7<N^?N_)\3Z(1P=@;!**$2H<P^C_'F,\; +M98RLDQ)Z=$XIFS3I'1V@U#*R5>J)4JUMI[%61P#?J[-X,QY<QKCS;6TM1ZJ+ +MDLN!+X(#0Q=<XET[S6S-$:XWYE3"V/L^7NMM=;"5EJP5^MI4:BE+JQ4`FA.B +MC$OI)2FFM(**T:I,1*A!#*+T%GV/^A0^)W3RGZ.R<4YIX3@FM-L<DU1ES/FR +M,F8`Q!FR^%I+B80LI4BM%M*<3LH95B;DD)83\CY#"*$H(,/(?9#QV#8'"/4: +M`O!C#:%F)X5(OA)A]$2)\-X60S!]".#`'X5P,@``D"L`'``00,(%#!Q`D4+& +M#1P\@1)$RA4L7,&31LX=/'T"%$C2)4R=0I5*UBU<O8,63-HU;-W#ET[>/7S^ +M!!A0XD6-'D294N9-G3Z%&E3J5:U>Q9M6[EV]?P8<6/)ES9]&G5KV;=V_AQY< +M^G7MW`%/B`"Y@?X"'Q```0!\T``'S@$_P``3_0(0T``R`!`,@&0````$#__X +M'_^!__@?@?_X'_^!^!__@?_X'X'_^!__@?@?_X'_^!^!__@?_X'X'_^!__@? +M@?_X'_^!^!__@?_X'X'_^!__@?@``"!__@?_^```@#YH``9`!R@\C(R&ZKFQ +ML]VG'6NK;7Y'YR_*2;6$.#`H3IT%@:D4DL9DAIUJ.-A"5-S[1?*=.G\Y*:'1 +M1KZ6E`1&3E36NH7)B!2(Z,%9;J:8I;R%A;D%KE3`J3R4O.]L0J^):=TM0O*. +M\2.HMA=FQ.2(#*``+0#__RQ`^FC6'9C\M-VY1W%.XY7!&\H5`"+,W&V_=W\^ +M_77O*T?R-^O4X)'`Z3U.Z1X5.M50:RX+XQ#';7;^I6W+O"/4^>9R1RG!Z1^: +M:>8FK#]*MUP\U+YH#IT%O_MOI9`M^L8R)"\'@`\Q$O@``4=AV`+M`SU9^H'X +M9ZFNQQ-0CUX*.""6+X'2R]-H;+96%JR-5HW)NY[/(B9T/2$Z,30K8-_0/9C+ +M-7:)?(99;O+XYLW$/Y(?+U8G^=LTGNZ:2Z'"G8R['JXC>ZW8VK#*5P[&]Y!7 +M(4XT+*1XM?)29BO)=9)?%%8T1___PX77'!5!9,V\L_>>[=7X1I8K?."<=)*) +MMQ(<RB6+J'/OH@ZI$`#TX%O*9FC1LS,%,@#!0[U#R:'KM0F_`TXX.C1`_/45 +MA0='R^X(K^\7,5=:.TERK*^!L*XX2*>C#^/3<6OKMFJRXPC!'E*=:HK)C##& +MELG0LWAM[26Z-W?2[5N;S8%P`?Z1<Q;10VP4D3*Z-[3)&1(3'%^=4M($4>IE +M3*?-I+]6DJZ___G?+6HC]^T+#5G,/$>(M"IY_F>+.3THA1TWV#8R2@W:,SB% +M;4+BDGXR0^$/44-L<J)[45H`4RU3P``J'<.:G.V5)K41PHVTR(]BHA3->-'" +M),O9S0>/PWNA#L#-&!*T9TSX?AZEJ&$LLL@]$`#L,&2TZA;RY*]+\74Q1=#P +ME9*X;4Y9E##F*M+0M5N0U#)+.2>*)+#6#3IAVY5R<69<QH@S'2]=>:&V"?__ +M]XEC]%^&4693BM$.(L;Y'RKS/)&2$@A$K(7BL)4:TA=:_V'/=C@T9I[K7UP? +M>S`:!<Q)6OL?@_%ZL&T/K(DS&AL<=G/N\<D0=L88A")5`>,T9`N`;I41,6P[ +MJG&?KE50XF!\1TYPJE_`5R<0X#12A0_M]+_HOO(>:]EYCGFVN0=:U]ES/FDP +M4?@WZ+:X5(JC6VN%)2A&IG\->?E(Q'R.%.+<"\``@Q2/__^`RJ5L!E6DGZ?Z +M@J6*'B7N.GG>N`X):Y*6+>5DU'8EN%A,]=6C7U>%38)2D),4T4Z+@U4]2HB" +MI0`=!:($>Q@'\(1+`8$Q.`0!`7!4`!T%4(`N((JRA(0MD&/4=$I.X[3K1A+4 +M82-/$Y3=)%L5-2U;6A9UD7-H&07U@E365H$TBJ$G\B*0)9C-_:NI^@Z6R&YK +M6P/=-.QC3'___7922)<0Y5,>Q2VKBW36LFTSS.VZSGO.^+T/I`KYOX_<)1G` +MT+QG#T+P-'#QR7+D7O^^\7R6F#1QY*D)R8]L)M\>,%$Z>B]$$7Z,(\1*>+JN +MJ.+`V"_,"X\60HGD=Q'`[R0?$D8Q4^S_PW`CJ/2_+S.*WSNNFR#1N4S*YK<P +M#,)RI"J*\@B%H:AYA'X?YFCP3IADD!XB"&`#___N`EF-52JAH,EFLAC+9"LU +M:+M<L55ADW,%:JA3,99A1D--IOUFRII-4`"5^IY7OER15_K\MF,:FH^N8_%U +M`D!.&!-E4C)&2K4H-&30:00F$OB*T%P,QYP-=--DM)?,YE*)PM9J-=LNUTM= +M[.QOOTJH5Y#J.0.&2%JOU[J]QN5TN)Q.1M.-M-5WOY___[$3I-;)9YD\IEM- +M=+C;+_1:'3JI,8+%J%#W[!9#$'@_(H_H]')NY6>KVVW5BL'"S3RI&ZR$\M4* +MK5<+$V&@H80`)A,%0F?C4/BJ@TJBT&G5HSD(MV>MU6GUHM%4DU0JE,L6(N%8 +MRF<T%^X7$V&ZTG`_VG,8[$YI*9;'8K)Z1-XS+:'1IK(IK,I"___^F)"0$%HK +M`0#!@(!(;&@#`X+``,#`P!P+#!1!@=)Z$%PJ&1#.!?%(7'B`$9#(`:&:$0I: +M<C[7J`>2+:D3:CV7C+:$#@+#4#EC;)0*`1B+,!&*Q_'Q,*A4%@M%0C%0G%HV +M%XQ&`Q$@I&`J$8F%HP$@D%@^(`V%(\(@X%1#)))(!')H^)Q8(8_&9'?__^OD +MT:L1&`T*B4ZF25ZK^1PJ,1N0-%`MJ&-U<-A[K@GM1Y.!7)=@L)!E4EL,L&UC +MK@LF$\`4$!88`05#@`#\9"DF#<2B\D%46!$:&0Z'0WG=:IDUL`WIA3JIA*E; +MK]C,=,-)F,QH-1Q.!F-MW.-O)!2M%!/1_/N!.2!O9I0>1Q!^QB2R2.PZ,1>% +M/___UB$XV>8$F+"4I'EB-+R$A(2)%E%8@*SPP'C^7(@P%)T,E&4^)A@QA3P8 +M*.C%&E7*!<GIE87E>7V988%Y94SQ-8E,I*28F*P89+09/)!4H`!P*%0@2-0T +M3#@H9$!08'0X/$X=S.8\K&!D<2B<P9#TK+#]*02XY;&E69H```#PZ`X)#J4: +M90J.C$ZELM3I2AU<K7JU:HPJ6+EBA@R3%$"]6I:,FKU6I=+5S!FO7*V3E0M= +MO%S9^^9NWKIVQ8LG3%4Q8*ES%>M7,#Z-,L4HU"E.@1IU`8:5`(3YQ$-/FPYP +MZ;,)41Y.R4(U;___X8@5#U%6!PL`"0DF1@D/$0\+)FP[#B`]*!,I@Q\+#`<G +M"!5+=7`,5$0)"EM/-XV3CGF'6'V>>GIK<G-_@6Q-:HAO13L_/4`D($LE0"LI +!20`` +` +end diff --git a/contrib/libarchive/libarchive/test/test_read_format_raw.c b/contrib/libarchive/libarchive/test/test_read_format_raw.c index 48b08e7..29465fd 100644 --- a/contrib/libarchive/libarchive/test/test_read_format_raw.c +++ b/contrib/libarchive/libarchive/test/test_read_format_raw.c @@ -35,6 +35,7 @@ DEFINE_TEST(test_read_format_raw) struct archive *a; const char *reffile1 = "test_read_format_raw.data"; const char *reffile2 = "test_read_format_raw.data.Z"; + const char *reffile3 = "test_read_format_raw.bufr"; /* First, try pulling data out of an uninterpretable file. */ extract_reference_file(reffile1); @@ -90,4 +91,30 @@ DEFINE_TEST(test_read_format_raw) assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae)); assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); assertEqualInt(ARCHIVE_OK, archive_read_free(a)); + + + /* Third, try with file which fooled us in past - appeared to be tar. */ + extract_reference_file(reffile3); + assert((a = archive_read_new()) != NULL); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_raw(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); + assertEqualIntA(a, ARCHIVE_OK, + archive_read_open_filename(a, reffile3, 1)); + + /* First (and only!) Entry */ + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualString("data", archive_entry_pathname(ae)); + assertEqualInt(archive_entry_is_encrypted(ae), 0); + assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED); + /* Most fields should be unset (unknown) */ + assert(!archive_entry_size_is_set(ae)); + assert(!archive_entry_atime_is_set(ae)); + assert(!archive_entry_ctime_is_set(ae)); + assert(!archive_entry_mtime_is_set(ae)); + + /* Test EOF */ + assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); + assertEqualInt(ARCHIVE_OK, archive_read_free(a)); } diff --git a/contrib/libarchive/libarchive/test/test_read_format_zip_jar.c b/contrib/libarchive/libarchive/test/test_read_format_zip_jar.c new file mode 100644 index 0000000..ffb520e --- /dev/null +++ b/contrib/libarchive/libarchive/test/test_read_format_zip_jar.c @@ -0,0 +1,59 @@ +/*- + * Copyright (c) 2016 Peter Wu + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include "test.h" +__FBSDID("$FreeBSD$"); + +/* + * Issue 822: jar files have an empty External File Attributes field which + * is misinterpreted as regular file type due to OS MS-DOS. + */ + +DEFINE_TEST(test_read_format_zip_jar) +{ + const char *refname = "test_read_format_zip_jar.jar"; + char *p; + size_t s; + struct archive *a; + struct archive_entry *ae; + char data[16]; + + extract_reference_file(refname); + p = slurpfile(&s, refname); + + assert((a = archive_read_new()) != NULL); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip_seekable(a)); + assertEqualIntA(a, ARCHIVE_OK, read_open_memory_seek(a, p, s, 1)); + + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualString("somedir/", archive_entry_pathname(ae)); + assertEqualInt(AE_IFDIR | 0775, archive_entry_mode(ae)); + assertEqualInt(0, archive_entry_size(ae)); + assertEqualIntA(a, 0, archive_read_data(a, data, 16)); + + assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a)); + free(p); +} diff --git a/contrib/libarchive/libarchive/test/test_read_format_zip_jar.jar.uu b/contrib/libarchive/libarchive/test/test_read_format_zip_jar.jar.uu new file mode 100644 index 0000000..0778c93 --- /dev/null +++ b/contrib/libarchive/libarchive/test/test_read_format_zip_jar.jar.uu @@ -0,0 +1,6 @@ +begin 640 test_read_format_zip_jar.jar +M4$L#! H @ $AQETD ( 0 <V]M961I<B_^R@ 4$L! +M @H "@ " 2'&720 @ ! '-O +@;65D:7(O_LH %!+!08 0 ! #H J + +end diff --git a/contrib/libarchive/libarchive/test/test_read_set_format.c b/contrib/libarchive/libarchive/test/test_read_set_format.c index fb5e004..b4f414f 100644 --- a/contrib/libarchive/libarchive/test/test_read_set_format.c +++ b/contrib/libarchive/libarchive/test/test_read_set_format.c @@ -219,8 +219,8 @@ DEFINE_TEST(test_read_append_filter_wrong_program) /* bunzip2 will write to stderr, redirect it to a file */ fflush(stderr); fgetpos(stderr, &pos); - fd = dup(fileno(stderr)); - fp = freopen("stderr1", "w", stderr); + assert((fd = dup(fileno(stderr))) != -1); + fp = freopen("stderr1", "w", stderr); #endif assert((a = archive_read_new()) != NULL); @@ -238,10 +238,10 @@ DEFINE_TEST(test_read_append_filter_wrong_program) if (fp != NULL) { fflush(stderr); dup2(fd, fileno(stderr)); - close(fd); clearerr(stderr); - fsetpos(stderr, &pos); + (void)fsetpos(stderr, &pos); } + close(fd); assertTextFileContents("bunzip2: (stdin) is not a bzip2 file.\n", "stderr1"); #endif } diff --git a/contrib/libarchive/libarchive/test/test_sparse_basic.c b/contrib/libarchive/libarchive/test/test_sparse_basic.c index 3cea459..06f2c9d 100644 --- a/contrib/libarchive/libarchive/test/test_sparse_basic.c +++ b/contrib/libarchive/libarchive/test/test_sparse_basic.c @@ -146,28 +146,14 @@ create_sparse_file(const char *path, const struct sparse *s) #else -#if defined(_PC_MIN_HOLE_SIZE) - -/* - * FreeBSD and Solaris can detect 'hole' of a sparse file - * through lseek(HOLE) on ZFS. (UFS does not support yet) - */ - -static int -is_sparse_supported(const char *path) -{ - return (pathconf(path, _PC_MIN_HOLE_SIZE) > 0); -} - -#elif defined(__linux__)&& defined(HAVE_LINUX_FIEMAP_H) - +#if defined(HAVE_LINUX_FIEMAP_H) /* * FIEMAP, which can detect 'hole' of a sparse file, has * been supported from 2.6.28 */ static int -is_sparse_supported(const char *path) +is_sparse_supported_fiemap(const char *path) { const struct sparse sparse_file[] = { /* This hole size is too small to create a sparse @@ -198,7 +184,58 @@ is_sparse_supported(const char *path) return (r >= 0); } -#else +#if !defined(SEEK_HOLE) || !defined(SEEK_DATA) +static int +is_sparse_supported(const char *path) +{ + return is_sparse_supported_fiemap(path); +} +#endif +#endif + +#if defined(_PC_MIN_HOLE_SIZE) + +/* + * FreeBSD and Solaris can detect 'hole' of a sparse file + * through lseek(HOLE) on ZFS. (UFS does not support yet) + */ + +static int +is_sparse_supported(const char *path) +{ + return (pathconf(path, _PC_MIN_HOLE_SIZE) > 0); +} + +#elif defined(SEEK_HOLE) && defined(SEEK_DATA) + +static int +is_sparse_supported(const char *path) +{ + const struct sparse sparse_file[] = { + /* This hole size is too small to create a sparse + * files for almost filesystem. */ + { HOLE, 1024 }, { DATA, 10240 }, + { END, 0 } + }; + int fd, r; + const char *testfile = "can_sparse"; + + (void)path; /* UNUSED */ + create_sparse_file(testfile, sparse_file); + fd = open(testfile, O_RDWR); + if (fd < 0) + return (0); + r = lseek(fd, 0, SEEK_HOLE); + close(fd); + unlink(testfile); +#if defined(HAVE_LINUX_FIEMAP_H) + if (r < 0) + return (is_sparse_supported_fiemap(path)); +#endif + return (r >= 0); +} + +#elif !defined(HAVE_LINUX_FIEMAP_H) /* * Other system may do not have the API such as lseek(HOLE), diff --git a/contrib/libarchive/libarchive/test/test_write_disk_appledouble.c b/contrib/libarchive/libarchive/test/test_write_disk_appledouble.c index 81032fc..706794a 100644 --- a/contrib/libarchive/libarchive/test/test_write_disk_appledouble.c +++ b/contrib/libarchive/libarchive/test/test_write_disk_appledouble.c @@ -144,7 +144,7 @@ DEFINE_TEST(test_write_disk_appledouble) assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); assertEqualString("./file3", archive_entry_pathname(ae)); assertEqualIntA(a, ARCHIVE_OK, archive_read_extract2(a, ae, ad)); - /* Extract ._file3 which will be merged into file3 as medtadata. */ + /* Extract ._file3 which will be merged into file3 as metadata. */ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); assertEqualString("./._file3", archive_entry_pathname(ae)); assertEqualIntA(a, ARCHIVE_OK, archive_read_extract2(a, ae, ad)); @@ -203,7 +203,7 @@ DEFINE_TEST(test_write_disk_appledouble) assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); assertEqualString("./file3", archive_entry_pathname(ae)); assertEqualIntA(a, ARCHIVE_OK, archive_read_extract2(a, ae, ad)); - /* Extract ._file3 which will be merged into file3 as medtadata. */ + /* Extract ._file3 which will be merged into file3 as metadata. */ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); assertEqualString("./._file3", archive_entry_pathname(ae)); assertEqualIntA(a, ARCHIVE_OK, archive_read_extract2(a, ae, ad)); diff --git a/contrib/libarchive/libarchive/test/test_write_format_xar_empty.c b/contrib/libarchive/libarchive/test/test_write_format_xar_empty.c index aa26d5d..97c0808 100644 --- a/contrib/libarchive/libarchive/test/test_write_format_xar_empty.c +++ b/contrib/libarchive/libarchive/test/test_write_format_xar_empty.c @@ -115,6 +115,6 @@ DEFINE_TEST(test_write_format_xar_empty) assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); assertEqualInt(ARCHIVE_OK, archive_write_free(a)); - /* Verify the correct format for an empy Xar archive. */ + /* Verify the correct format for an empty Xar archive. */ assertEqualInt(used, 0); } diff --git a/contrib/libarchive/libarchive/test/test_write_format_zip_empty.c b/contrib/libarchive/libarchive/test/test_write_format_zip_empty.c index 4351c28..628ccb1 100644 --- a/contrib/libarchive/libarchive/test/test_write_format_zip_empty.c +++ b/contrib/libarchive/libarchive/test/test_write_format_zip_empty.c @@ -49,7 +49,7 @@ DEFINE_TEST(test_write_format_zip_empty) assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); assertEqualInt(ARCHIVE_OK, archive_write_free(a)); - /* Verify the correct format for an empy Zip archive. */ + /* Verify the correct format for an empty Zip archive. */ assertEqualInt(used, 22); assertEqualMem(buff, "PK\005\006\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", diff --git a/contrib/libarchive/libarchive/test/test_write_format_zip_empty_zip64.c b/contrib/libarchive/libarchive/test/test_write_format_zip_empty_zip64.c index d6be44a..5215a71 100644 --- a/contrib/libarchive/libarchive/test/test_write_format_zip_empty_zip64.c +++ b/contrib/libarchive/libarchive/test/test_write_format_zip_empty_zip64.c @@ -51,7 +51,7 @@ DEFINE_TEST(test_write_format_zip_empty_zip64) assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); assertEqualInt(ARCHIVE_OK, archive_write_free(a)); - /* Verify the correct format for an empy Zip archive with Zip64 extensions forced. */ + /* Verify the correct format for an empty Zip archive with Zip64 extensions forced. */ assertEqualInt(used, 98); assertEqualMem(buff, "PK\006\006" /* Zip64 end-of-central-directory record */ diff --git a/contrib/libarchive/tar/creation_set.c b/contrib/libarchive/tar/creation_set.c index 87d561b3..24cf3fc 100644 --- a/contrib/libarchive/tar/creation_set.c +++ b/contrib/libarchive/tar/creation_set.c @@ -295,7 +295,7 @@ cset_auto_compress(struct creation_set *cset, const char *filename) struct filter_set *v; int i, r; - /* Release previos filters. */ + /* Release previous filters. */ _cleanup_filters(old_filters, old_filter_count); v = malloc(sizeof(*v) * cset->filter_count); @@ -308,7 +308,7 @@ cset_auto_compress(struct creation_set *cset, const char *filename) cset->filters = v; return (1); } else { - /* Put previos filters back. */ + /* Put previous filters back. */ cset->filters = old_filters; cset->filter_count = old_filter_count; return (0); diff --git a/contrib/libarchive/tar/read.c b/contrib/libarchive/tar/read.c index 91de50c..902ba7b 100644 --- a/contrib/libarchive/tar/read.c +++ b/contrib/libarchive/tar/read.c @@ -188,18 +188,17 @@ read_archive(struct bsdtar *bsdtar, char mode, struct archive *writer) reader_options = getenv(ENV_READER_OPTIONS); if (reader_options != NULL) { + size_t module_len = sizeof(IGNORE_WRONG_MODULE_NAME) - 1; + size_t opt_len = strlen(reader_options) + 1; char *p; /* Set default read options. */ - p = (char *)malloc(sizeof(IGNORE_WRONG_MODULE_NAME) - + strlen(reader_options) + 1); - if (p == NULL) + if ((p = malloc(module_len + opt_len)) == NULL) lafe_errc(1, errno, "Out of memory"); /* Prepend magic code to ignore options for * a format or modules which are not added to * the archive read object. */ - strncpy(p, IGNORE_WRONG_MODULE_NAME, - sizeof(IGNORE_WRONG_MODULE_NAME) -1); - strcpy(p + sizeof(IGNORE_WRONG_MODULE_NAME) -1, reader_options); + memcpy(p, IGNORE_WRONG_MODULE_NAME, module_len); + memcpy(p + module_len, reader_options, opt_len); r = archive_read_set_options(a, p); free(p); if (r == ARCHIVE_FATAL) diff --git a/contrib/libarchive/tar/test/main.c b/contrib/libarchive/tar/test/main.c index 6bffee2..4f498b6 100644 --- a/contrib/libarchive/tar/test/main.c +++ b/contrib/libarchive/tar/test/main.c @@ -521,7 +521,7 @@ _utf8_to_unicode(uint32_t *pwc, const char *s, size_t n) return (0); /* Standard: return 0 for end-of-string. */ cnt = utf8_count[ch]; - /* Invalide sequence or there are not plenty bytes. */ + /* Invalid sequence or there are not plenty bytes. */ if (n < (size_t)cnt) return (-1); @@ -560,7 +560,7 @@ _utf8_to_unicode(uint32_t *pwc, const char *s, size_t n) return (-1); } - /* The code point larger than 0x10FFFF is not leagal + /* The code point larger than 0x10FFFF is not legal * Unicode values. */ if (wc > 0x10FFFF) return (-1); @@ -1060,7 +1060,7 @@ assertion_file_contains_lines_any_order(const char *file, int line, char **expected = NULL; char *p, **actual = NULL; char c; - int expected_failure = 0, actual_failure = 0; + int expected_failure = 0, actual_failure = 0, retval = 0; assertion_count(file, line); @@ -1081,8 +1081,7 @@ assertion_file_contains_lines_any_order(const char *file, int line, if (expected == NULL) { failure_start(pathname, line, "Can't allocate memory"); failure_finish(NULL); - free(expected); - return (0); + goto done; } for (i = 0; lines[i] != NULL; ++i) { expected[i] = strdup(lines[i]); @@ -1103,8 +1102,7 @@ assertion_file_contains_lines_any_order(const char *file, int line, if (actual == NULL) { failure_start(pathname, line, "Can't allocate memory"); failure_finish(NULL); - free(expected); - return (0); + goto done; } for (j = 0, p = buff; p < buff + buff_size; p += 1 + strlen(p)) { @@ -1141,27 +1139,27 @@ assertion_file_contains_lines_any_order(const char *file, int line, ++actual_failure; } if (expected_failure == 0 && actual_failure == 0) { - free(buff); - free(expected); - free(actual); - return (1); + retval = 1; + goto done; } failure_start(file, line, "File doesn't match: %s", pathname); for (i = 0; i < expected_count; ++i) { - if (expected[i] != NULL) { + if (expected[i] != NULL) logprintf(" Expected but not present: %s\n", expected[i]); - free(expected[i]); - } } for (j = 0; j < actual_count; ++j) { if (actual[j] != NULL) logprintf(" Present but not expected: %s\n", actual[j]); } failure_finish(NULL); +done: + free(actual); free(buff); + for (i = 0; i < expected_count; ++i) + free(expected[i]); free(expected); - free(actual); - return (0); + + return (retval); } /* Verify that a text file does not contains the specified strings */ @@ -1590,7 +1588,7 @@ is_symlink(const char *file, int line, * really not much point in bothering with this. */ return (0); #else - char buff[300]; + char buff[301]; struct stat st; ssize_t linklen; int r; @@ -1607,7 +1605,7 @@ is_symlink(const char *file, int line, return (0); if (contents == NULL) return (1); - linklen = readlink(pathname, buff, sizeof(buff)); + linklen = readlink(pathname, buff, sizeof(buff) - 1); if (linklen < 0) { failure_start(file, line, "Can't read symlink %s", pathname); failure_finish(NULL); @@ -2324,7 +2322,7 @@ extract_reference_file(const char *name) for (;;) { if (fgets(buff, sizeof(buff), in) == NULL) { /* TODO: This is a failure. */ - return; + goto done; } if (memcmp(buff, "begin ", 6) == 0) break; @@ -2365,6 +2363,7 @@ extract_reference_file(const char *name) } } fclose(out); +done: fclose(in); } @@ -2958,8 +2957,8 @@ main(int argc, char **argv) strftime(tmpdir_timestamp, sizeof(tmpdir_timestamp), "%Y-%m-%dT%H.%M.%S", localtime(&now)); - sprintf(tmpdir, "%s/%s.%s-%03d", tmp, progname, - tmpdir_timestamp, i); + snprintf(tmpdir, sizeof(tmpdir), "%s/%s.%s-%03d", tmp, + progname, tmpdir_timestamp, i); if (assertMakeDir(tmpdir,0755)) break; if (i >= 999) { diff --git a/contrib/libarchive/tar/test/test_copy.c b/contrib/libarchive/tar/test/test_copy.c index 6890d1a..bc4166d 100644 --- a/contrib/libarchive/tar/test/test_copy.c +++ b/contrib/libarchive/tar/test/test_copy.c @@ -285,7 +285,7 @@ copy_basic(void) /* NOTE: for proper operation on cygwin-1.5 and windows, the * length of the name of the directory below, "plain", must be - * less than or equal to the lengthe of the name of the original + * less than or equal to the length of the name of the original * directory, "original" This restriction derives from the * extremely limited pathname lengths on those platforms. */ @@ -327,7 +327,7 @@ copy_ustar(void) /* NOTE: for proper operation on cygwin-1.5 and windows, the * length of the name of the directory below, "ustar", must be - * less than or equal to the lengthe of the name of the original + * less than or equal to the length of the name of the original * directory, "original" This restriction derives from the * extremely limited pathname lengths on those platforms. */ diff --git a/contrib/libarchive/tar/test/test_leading_slash.c b/contrib/libarchive/tar/test/test_leading_slash.c index a8921eb..572c45e 100644 --- a/contrib/libarchive/tar/test/test_leading_slash.c +++ b/contrib/libarchive/tar/test/test_leading_slash.c @@ -44,6 +44,7 @@ DEFINE_TEST(test_leading_slash) if (assertFileExists("test.err")) { errfile = slurpfile(&errfile_size, "test.err"); assert(strstr(errfile, expected_errmsg) != NULL); + free(errfile); } } diff --git a/contrib/libarchive/tar/test/test_option_a.c b/contrib/libarchive/tar/test/test_option_a.c index a000621..d9eed87 100644 --- a/contrib/libarchive/tar/test/test_option_a.c +++ b/contrib/libarchive/tar/test/test_option_a.c @@ -43,6 +43,7 @@ DEFINE_TEST(test_option_a) assert(s > 2); failure("The archive should be compressed"); assertEqualMem(p, "\x1f\x9d", 2); + free(p); /* Test2: archive it with .taZ suffix. */ assertEqualInt(0, @@ -53,6 +54,7 @@ DEFINE_TEST(test_option_a) assert(s > 2); failure("The archive should be compressed"); assertEqualMem(p, "\x1f\x9d", 2); + free(p); /* Test3: archive it with .tar.Z.uu suffix. */ assertEqualInt(0, @@ -63,6 +65,7 @@ DEFINE_TEST(test_option_a) assert(s > 12); failure("The archive should be uuencoded"); assertEqualMem(p, "begin 644 -\n", 12); + free(p); /* Test4: archive it with .zip suffix. */ assertEqualInt(0, @@ -73,6 +76,7 @@ DEFINE_TEST(test_option_a) assert(s > 4); failure("The archive should be zipped"); assertEqualMem(p, "\x50\x4b\x03\x04", 4); + free(p); /* Test5: archive it with .tar.Z suffix and --uuencode option. */ assertEqualInt(0, @@ -84,6 +88,7 @@ DEFINE_TEST(test_option_a) assert(s > 2); failure("The archive should be compressed, ignoring --uuencode option"); assertEqualMem(p, "\x1f\x9d", 2); + free(p); /* Test6: archive it with .xxx suffix(unknown suffix) and * --uuencode option. */ @@ -96,6 +101,7 @@ DEFINE_TEST(test_option_a) assert(s > 12); failure("The archive should be uuencoded"); assertEqualMem(p, "begin 644 -\n", 12); + free(p); /* Test7: archive it with .tar.Z suffix using a long-name option. */ assertEqualInt(0, @@ -107,4 +113,5 @@ DEFINE_TEST(test_option_a) assert(s > 2); failure("The archive should be compressed"); assertEqualMem(p, "\x1f\x9d", 2); + free(p); } diff --git a/contrib/libarchive/tar/test/test_option_b.c b/contrib/libarchive/tar/test/test_option_b.c index 7c2f604..0eee80d 100644 --- a/contrib/libarchive/tar/test/test_option_b.c +++ b/contrib/libarchive/tar/test/test_option_b.c @@ -78,4 +78,6 @@ DEFINE_TEST(test_option_b) * Note: It's not possible to verify at this level that blocks * are getting written with the */ + + free(testprog_ustar); } diff --git a/contrib/libarchive/tar/test/test_option_b64encode.c b/contrib/libarchive/tar/test/test_option_b64encode.c index 1e7c571..1d04204 100644 --- a/contrib/libarchive/tar/test/test_option_b64encode.c +++ b/contrib/libarchive/tar/test/test_option_b64encode.c @@ -42,6 +42,7 @@ DEFINE_TEST(test_option_b64encode) p = slurpfile(&s, "archive.out"); assert(s > 2); assertEqualMem(p, "begin-base64 644", 16); + free(p); /* Archive it with uuencode only. */ assertEqualInt(0, @@ -51,4 +52,5 @@ DEFINE_TEST(test_option_b64encode) p = slurpfile(&s, "archive.out"); assert(s > 2); assertEqualMem(p, "begin-base64 644", 16); + free(p); } diff --git a/contrib/libarchive/tar/test/test_option_gid_gname.c b/contrib/libarchive/tar/test/test_option_gid_gname.c index e45da5b..4e5f51c 100644 --- a/contrib/libarchive/tar/test/test_option_gid_gname.c +++ b/contrib/libarchive/tar/test/test_option_gid_gname.c @@ -53,6 +53,7 @@ DEFINE_TEST(test_option_gid_gname) /* Should force gid and gname fields in ustar header. */ assertEqualMem(data + 116, "000021 \0", 8); assertEqualMem(data + 297, "foofoofoo\0", 10); + free(data); /* Again with just --gname */ failure("Error invoking %s c", testprog); @@ -65,6 +66,8 @@ DEFINE_TEST(test_option_gid_gname) /* Gid should be unchanged from original reference. */ assertEqualMem(data + 116, reference + 116, 8); assertEqualMem(data + 297, "foofoofoo\0", 10); + free(data); + free(reference); /* Again with --gid and force gname to empty. */ failure("Error invoking %s c", testprog); @@ -77,6 +80,7 @@ DEFINE_TEST(test_option_gid_gname) assertEqualMem(data + 116, "000021 \0", 8); /* Gname field in ustar header should be empty. */ assertEqualMem(data + 297, "\0", 1); + free(data); /* TODO: It would be nice to verify that --gid= by itself * will look up the associated gname and use that, but diff --git a/contrib/libarchive/tar/test/test_option_grzip.c b/contrib/libarchive/tar/test/test_option_grzip.c index 5132eee..fbff252 100644 --- a/contrib/libarchive/tar/test/test_option_grzip.c +++ b/contrib/libarchive/tar/test/test_option_grzip.c @@ -45,8 +45,11 @@ DEFINE_TEST(test_option_grzip) testprog)); p = slurpfile(&s, "archive.err"); p[s] = '\0'; + free(p); + /* Check that the archive file has an grzip signature. */ p = slurpfile(&s, "archive.out"); assert(s > 2); assertEqualMem(p, "GRZipII\x00\x02\x04:)", 12); + free(p); } diff --git a/contrib/libarchive/tar/test/test_option_j.c b/contrib/libarchive/tar/test/test_option_j.c index 3202c3b..838234a 100644 --- a/contrib/libarchive/tar/test/test_option_j.c +++ b/contrib/libarchive/tar/test/test_option_j.c @@ -42,15 +42,18 @@ DEFINE_TEST(test_option_j) if (r != 0) { if (!canBzip2()) { skipping("bzip2 is not supported on this platform"); - return; + goto done; } failure("-j option is broken"); assertEqualInt(r, 0); - return; + goto done; } + free(p); assertEmptyFile("archive.err"); /* Check that the archive file has a bzip2 signature. */ p = slurpfile(&s, "archive.out"); assert(s > 2); assertEqualMem(p, "BZh9", 4); +done: + free(p); } diff --git a/contrib/libarchive/tar/test/test_option_lrzip.c b/contrib/libarchive/tar/test/test_option_lrzip.c index d3486a3..11e9827 100644 --- a/contrib/libarchive/tar/test/test_option_lrzip.c +++ b/contrib/libarchive/tar/test/test_option_lrzip.c @@ -45,8 +45,10 @@ DEFINE_TEST(test_option_lrzip) testprog)); p = slurpfile(&s, "archive.err"); p[s] = '\0'; + free(p); /* Check that the archive file has an lzma signature. */ p = slurpfile(&s, "archive.out"); assert(s > 2); assertEqualMem(p, "LRZI\x00", 5); + free(p); } diff --git a/contrib/libarchive/tar/test/test_option_lz4.c b/contrib/libarchive/tar/test/test_option_lz4.c index 5dc9452..70fdaac 100644 --- a/contrib/libarchive/tar/test/test_option_lz4.c +++ b/contrib/libarchive/tar/test/test_option_lz4.c @@ -43,7 +43,7 @@ DEFINE_TEST(test_option_lz4) if (strstr(p, "Unsupported compression") != NULL) { skipping("This version of bsdtar was compiled " "without lz4 support"); - return; + goto done; } /* POSIX permits different handling of the spawnp * system call used to launch the subsidiary @@ -52,7 +52,7 @@ DEFINE_TEST(test_option_lz4) if (strstr(p, "Can't launch") != NULL && !canLz4()) { skipping("This version of bsdtar uses an external lz4 program " "but no such program is available on this system."); - return; + goto done; } /* Some systems successfully spawn the new process, * but fail to exec a program within that process. @@ -61,14 +61,25 @@ DEFINE_TEST(test_option_lz4) if (strstr(p, "Can't write") != NULL && !canLz4()) { skipping("This version of bsdtar uses an external lz4 program " "but no such program is available on this system."); + goto done; + } + /* On some systems the error won't be detected until closing + time, by a 127 exit error returned by waitpid. */ + if (strstr(p, "Error closing") != NULL && !canLz4()) { + skipping("This version of bsdcpio uses an external lz4 program " + "but no such program is available on this system."); return; } failure("--lz4 option is broken: %s", p); assertEqualInt(r, 0); - return; + goto done; } + free(p); /* Check that the archive file has an lz4 signature. */ p = slurpfile(&s, "archive.out"); assert(s > 2); assertEqualMem(p, "\x04\x22\x4d\x18", 4); + +done: + free(p); } diff --git a/contrib/libarchive/tar/test/test_option_lzma.c b/contrib/libarchive/tar/test/test_option_lzma.c index a845666..a618ff8 100644 --- a/contrib/libarchive/tar/test/test_option_lzma.c +++ b/contrib/libarchive/tar/test/test_option_lzma.c @@ -48,10 +48,13 @@ DEFINE_TEST(test_option_lzma) } failure("--lzma option is broken"); assertEqualInt(r, 0); - return; + goto done; } + free(p); /* Check that the archive file has an lzma signature. */ p = slurpfile(&s, "archive.out"); assert(s > 2); assertEqualMem(p, "\x5d\00\00", 3); +done: + free(p); } diff --git a/contrib/libarchive/tar/test/test_option_lzop.c b/contrib/libarchive/tar/test/test_option_lzop.c index 1145499..20ef06c 100644 --- a/contrib/libarchive/tar/test/test_option_lzop.c +++ b/contrib/libarchive/tar/test/test_option_lzop.c @@ -42,14 +42,17 @@ DEFINE_TEST(test_option_lzop) if (r != 0) { if (!canLzop()) { skipping("lzop is not supported on this platform"); - return; + goto done; } failure("--lzop option is broken"); assertEqualInt(r, 0); - return; + goto done; } + free(p); /* Check that the archive file has an lzma signature. */ p = slurpfile(&s, "archive.out"); assert(s > 2); assertEqualMem(p, "\x89\x4c\x5a\x4f\x00\x0d\x0a\x1a\x0a", 9); +done: + free(p); } diff --git a/contrib/libarchive/tar/test/test_option_r.c b/contrib/libarchive/tar/test/test_option_r.c index 7787685..287e809 100644 --- a/contrib/libarchive/tar/test/test_option_r.c +++ b/contrib/libarchive/tar/test/test_option_r.c @@ -36,6 +36,10 @@ DEFINE_TEST(test_option_r) size_t s, buff_size_rounded; int r, i; + buff = NULL; + p0 = NULL; + p1 = NULL; + /* Create an archive with one file. */ assertMakeFile("f1", 0644, "abc"); r = systemf("%s cf archive.tar --format=ustar f1 >step1.out 2>step1.err", testprog); @@ -47,11 +51,9 @@ DEFINE_TEST(test_option_r) /* Do some basic validation of the constructed archive. */ p0 = slurpfile(&s, "archive.tar"); if (!assert(p0 != NULL)) - return; - if (!assert(s >= 2048)) { - free(p0); - return; - } + goto done; + if (!assert(s >= 2048)) + goto done; assertEqualMem(p0 + 0, "f1", 3); assertEqualMem(p0 + 512, "abc", 3); assertEqualMem(p0 + 1024, "\0\0\0\0\0\0\0\0", 8); @@ -60,10 +62,8 @@ DEFINE_TEST(test_option_r) /* Edit that file with a lot more data and update the archive with a new copy. */ buff = malloc(buff_size); assert(buff != NULL); - if (buff == NULL) { - free(p0); - return; - } + if (buff == NULL) + goto done; for (i = 0; i < (int)buff_size; ++i) buff[i] = "abcdefghijklmnopqrstuvwxyz"[rand() % 26]; @@ -77,10 +77,8 @@ DEFINE_TEST(test_option_r) /* The constructed archive should just have the new entry appended. */ p1 = slurpfile(&s, "archive.tar"); - if (!assert(p1 != NULL)) { - free(p0); - return; - } + if (!assert(p1 != NULL)) + goto done; buff_size_rounded = ((buff_size + 511) / 512) * 512; assert(s >= 2560 + buff_size_rounded); /* Verify first entry is unchanged. */ @@ -105,10 +103,8 @@ DEFINE_TEST(test_option_r) /* Validate the constructed archive. */ p1 = slurpfile(&s, "archive.tar"); - if (!assert(p1 != NULL)) { - free(p0); - return; - } + if (!assert(p1 != NULL)) + goto done; assert(s >= 3584 + buff_size_rounded); /* Verify first two entries are unchanged. */ assertEqualMem(p0, p1, 1536 + buff_size_rounded); @@ -118,7 +114,6 @@ DEFINE_TEST(test_option_r) /* Verify end-of-archive marker. */ assertEqualMem(p1 + 2560 + buff_size_rounded, "\0\0\0\0\0\0\0\0", 8); assertEqualMem(p1 + 3072 + buff_size_rounded, "\0\0\0\0\0\0\0\0", 8); - free(p0); free(p1); /* Unpack everything */ @@ -132,4 +127,7 @@ DEFINE_TEST(test_option_r) /* Verify that the second copy of f1 overwrote the first. */ assertFileContents(buff, (int)strlen(buff), "f1"); +done: + free(buff); + free(p0); } diff --git a/contrib/libarchive/tar/test/test_option_uid_uname.c b/contrib/libarchive/tar/test/test_option_uid_uname.c index 83ea5f1..0a8a9bb 100644 --- a/contrib/libarchive/tar/test/test_option_uid_uname.c +++ b/contrib/libarchive/tar/test/test_option_uid_uname.c @@ -53,6 +53,7 @@ DEFINE_TEST(test_option_uid_uname) /* Should force uid and uname fields in ustar header. */ assertEqualMem(data + 108, "000021 \0", 8); assertEqualMem(data + 265, "foofoofoo\0", 10); + free(data); /* Again with just --uid */ failure("Error invoking %s c", testprog); @@ -65,6 +66,7 @@ DEFINE_TEST(test_option_uid_uname) assertEqualMem(data + 108, "000021 \0", 8); /* Uname field in ustar header should be empty. */ assertEqualMem(data + 265, "\0", 1); + free(data); /* Again with just --uname */ failure("Error invoking %s c", testprog); @@ -77,4 +79,7 @@ DEFINE_TEST(test_option_uid_uname) /* Uid should be unchanged from original reference. */ assertEqualMem(data + 108, reference + 108, 8); assertEqualMem(data + 265, "foofoofoo\0", 10); + free(data); + + free(reference); } diff --git a/contrib/libarchive/tar/test/test_option_uuencode.c b/contrib/libarchive/tar/test/test_option_uuencode.c index cdc6bab..a28a8e3 100644 --- a/contrib/libarchive/tar/test/test_option_uuencode.c +++ b/contrib/libarchive/tar/test/test_option_uuencode.c @@ -42,6 +42,7 @@ DEFINE_TEST(test_option_uuencode) p = slurpfile(&s, "archive.out"); assert(s > 2); assertEqualMem(p, "begin 644", 9); + free(p); /* Archive it with uuencode only. */ assertEqualInt(0, @@ -51,4 +52,5 @@ DEFINE_TEST(test_option_uuencode) p = slurpfile(&s, "archive.out"); assert(s > 2); assertEqualMem(p, "begin 644", 9); + free(p); } diff --git a/contrib/libarchive/tar/test/test_option_xz.c b/contrib/libarchive/tar/test/test_option_xz.c index 7387a60..91da073 100644 --- a/contrib/libarchive/tar/test/test_option_xz.c +++ b/contrib/libarchive/tar/test/test_option_xz.c @@ -44,14 +44,17 @@ DEFINE_TEST(test_option_xz) if (strstr(p, "Unsupported compression") != NULL) { skipping("This version of bsdtar was compiled " "without xz support"); - return; + goto done; } failure("--xz option is broken"); assertEqualInt(r, 0); - return; + goto done; } + free(p); /* Check that the archive file has an xz signature. */ p = slurpfile(&s, "archive.out"); assert(s > 2); assertEqualMem(p, "\xFD\x37\x7A\x58\x5A\x00", 6); +done: + free(p); } diff --git a/contrib/libarchive/tar/test/test_option_z.c b/contrib/libarchive/tar/test/test_option_z.c index 1f952ab..5974499 100644 --- a/contrib/libarchive/tar/test/test_option_z.c +++ b/contrib/libarchive/tar/test/test_option_z.c @@ -42,14 +42,17 @@ DEFINE_TEST(test_option_z) if (r != 0) { if (!canGzip()) { skipping("gzip is not supported on this platform"); - return; + goto done; } failure("-z option is broken"); assertEqualInt(r, 0); - return; + goto done; } + free(p); /* Check that the archive file has a gzip signature. */ p = slurpfile(&s, "archive.out"); assert(s > 4); assertEqualMem(p, "\x1f\x8b\x08\x00", 4); +done: + free(p); } diff --git a/contrib/libarchive/tar/test/test_stdio.c b/contrib/libarchive/tar/test/test_stdio.c index 8d44dd6..7e53cb1 100644 --- a/contrib/libarchive/tar/test/test_stdio.c +++ b/contrib/libarchive/tar/test/test_stdio.c @@ -116,6 +116,7 @@ DEFINE_TEST(test_stdio) assertEqualInt((int)s, 3); assertEqualMem(p, "abc", 3); /* TODO: Verify xvf.err */ + free(p); /* 'xvf -' should generate list on stderr, empty stdout. */ r = systemf("%s xvf - < archive >xvf-.out 2>xvf-.err", testprog); diff --git a/contrib/libarchive/tar/test/test_version.c b/contrib/libarchive/tar/test/test_version.c index 67771b7..93e826d 100644 --- a/contrib/libarchive/tar/test/test_version.c +++ b/contrib/libarchive/tar/test/test_version.c @@ -53,7 +53,7 @@ DEFINE_TEST(test_version) assert(s > 6); failure("Version must start with 'bsdtar': ``%s''", p); if (!assertEqualMem(q, "bsdtar ", 7)) - return; + goto done; q += 7; s -= 7; /* Version number is a series of digits and periods. */ while (s > 0 && (*q == '.' || (*q >= '0' && *q <= '9'))) { @@ -98,5 +98,6 @@ DEFINE_TEST(test_version) failure("Version output must end with \\n or \\r\\n"); if (*q == '\r') { ++q; --s; } assertEqualMem(q, "\n", 1); +done: free(p); } diff --git a/contrib/libarchive/tar/write.c b/contrib/libarchive/tar/write.c index 18193de..4265d14 100644 --- a/contrib/libarchive/tar/write.c +++ b/contrib/libarchive/tar/write.c @@ -145,18 +145,17 @@ set_writer_options(struct bsdtar *bsdtar, struct archive *a) writer_options = getenv(ENV_WRITER_OPTIONS); if (writer_options != NULL) { + size_t module_len = sizeof(IGNORE_WRONG_MODULE_NAME) - 1; + size_t opt_len = strlen(writer_options) + 1; char *p; /* Set default write options. */ - p = malloc(sizeof(IGNORE_WRONG_MODULE_NAME) - + strlen(writer_options) + 1); - if (p == NULL) + if ((p = malloc(module_len + opt_len)) == NULL) lafe_errc(1, errno, "Out of memory"); /* Prepend magic code to ignore options for * a format or filters which are not added to * the archive write object. */ - strncpy(p, IGNORE_WRONG_MODULE_NAME, - sizeof(IGNORE_WRONG_MODULE_NAME) -1); - strcpy(p + sizeof(IGNORE_WRONG_MODULE_NAME) -1, writer_options); + memcpy(p, IGNORE_WRONG_MODULE_NAME, module_len); + memcpy(p, writer_options, opt_len); r = archive_write_set_options(a, p); free(p); if (r < ARCHIVE_WARN) @@ -178,18 +177,18 @@ set_reader_options(struct bsdtar *bsdtar, struct archive *a) reader_options = getenv(ENV_READER_OPTIONS); if (reader_options != NULL) { + size_t module_len = sizeof(IGNORE_WRONG_MODULE_NAME) - 1; + size_t opt_len = strlen(reader_options) + 1; char *p; /* Set default write options. */ - p = malloc(sizeof(IGNORE_WRONG_MODULE_NAME) - + strlen(reader_options) + 1); + if ((p = malloc(module_len + opt_len)) == NULL) if (p == NULL) lafe_errc(1, errno, "Out of memory"); /* Prepend magic code to ignore options for * a format or filters which are not added to * the archive write object. */ - strncpy(p, IGNORE_WRONG_MODULE_NAME, - sizeof(IGNORE_WRONG_MODULE_NAME) -1); - strcpy(p + sizeof(IGNORE_WRONG_MODULE_NAME) -1, reader_options); + memcpy(p, IGNORE_WRONG_MODULE_NAME, module_len); + memcpy(p, reader_options, opt_len); r = archive_read_set_options(a, p); free(p); if (r < ARCHIVE_WARN) @@ -527,7 +526,7 @@ write_archive(struct archive *a, struct bsdtar *bsdtar) struct archive *disk = bsdtar->diskreader; /* - * This tricky code here is to correctly read the cotents + * This tricky code here is to correctly read the contents * of the entry because the disk reader bsdtar->diskreader * is pointing at does not have any information about the * entry by this time and using archive_read_data_block() diff --git a/contrib/llvm/lib/Analysis/LazyValueInfo.cpp b/contrib/llvm/lib/Analysis/LazyValueInfo.cpp index dd0f4cc0..2fa6c8f 100644 --- a/contrib/llvm/lib/Analysis/LazyValueInfo.cpp +++ b/contrib/llvm/lib/Analysis/LazyValueInfo.cpp @@ -1051,7 +1051,7 @@ static bool isKnownNonConstant(Value *V) { Constant *LazyValueInfo::getConstant(Value *V, BasicBlock *BB) { // Bail out early if V is known not to be a Constant. if (isKnownNonConstant(V)) - return nullptr; + return 0; LVILatticeVal Result = getCache(PImpl).getValueInBlock(V, BB); diff --git a/contrib/netbsd-tests/lib/libc/c063/t_fexecve.c b/contrib/netbsd-tests/lib/libc/c063/t_fexecve.c index d557b00..30b26a7 100644 --- a/contrib/netbsd-tests/lib/libc/c063/t_fexecve.c +++ b/contrib/netbsd-tests/lib/libc/c063/t_fexecve.c @@ -70,6 +70,9 @@ ATF_TC_BODY(fexecve, tc) error = 76; else error = EXIT_FAILURE; +#ifdef __FreeBSD__ + (void)close(fd); +#endif err(error, "fexecve"); } } diff --git a/contrib/netbsd-tests/lib/libc/c063/t_mkfifoat.c b/contrib/netbsd-tests/lib/libc/c063/t_mkfifoat.c index 1ae023c..3736dfa 100644 --- a/contrib/netbsd-tests/lib/libc/c063/t_mkfifoat.c +++ b/contrib/netbsd-tests/lib/libc/c063/t_mkfifoat.c @@ -63,6 +63,9 @@ ATF_TC_BODY(mkfifoat_fd, tc) ATF_REQUIRE((fd = mkfifoat(dfd, BASEFIFO, mode)) != -1); ATF_REQUIRE(close(fd) == 0); ATF_REQUIRE(access(FIFO, F_OK) == 0); +#ifdef __FreeBSD__ + (void)close(dfd); +#endif } ATF_TC(mkfifoat_fdcwd); diff --git a/contrib/netbsd-tests/lib/libc/c063/t_mknodat.c b/contrib/netbsd-tests/lib/libc/c063/t_mknodat.c index b04a159..e8f71cd 100644 --- a/contrib/netbsd-tests/lib/libc/c063/t_mknodat.c +++ b/contrib/netbsd-tests/lib/libc/c063/t_mknodat.c @@ -80,6 +80,9 @@ ATF_TC_BODY(mknodat_fd, tc) ATF_REQUIRE((fd = mknodat(dfd, BASEFILE, mode, dev)) != -1); ATF_REQUIRE(close(fd) == 0); ATF_REQUIRE(access(FILE, F_OK) == 0); +#ifdef __FreeBSD__ + (void)close(dfd); +#endif } ATF_TC(mknodat_fdcwd); diff --git a/contrib/netbsd-tests/lib/libc/gen/t_ftok.c b/contrib/netbsd-tests/lib/libc/gen/t_ftok.c index 100bd1b..718d310 100644 --- a/contrib/netbsd-tests/lib/libc/gen/t_ftok.c +++ b/contrib/netbsd-tests/lib/libc/gen/t_ftok.c @@ -68,6 +68,9 @@ ATF_TC_BODY(ftok_link, tc) fd = open(path, O_RDONLY | O_CREAT); ATF_REQUIRE(fd >= 0); +#ifdef __FreeBSD__ + (void)close(fd); +#endif ATF_REQUIRE(link(path, hlnk) == 0); ATF_REQUIRE(symlink(path, slnk) == 0); diff --git a/contrib/netbsd-tests/lib/libc/gen/t_ttyname.c b/contrib/netbsd-tests/lib/libc/gen/t_ttyname.c index 0c10c24..1c813fb 100644 --- a/contrib/netbsd-tests/lib/libc/gen/t_ttyname.c +++ b/contrib/netbsd-tests/lib/libc/gen/t_ttyname.c @@ -78,6 +78,9 @@ ATF_TC_BODY(ttyname_err, tc) ATF_REQUIRE(ttyname(fd) == NULL); ATF_REQUIRE(errno == ENOTTY); +#ifdef __FreeBSD__ + (void)close(fd); +#endif } } diff --git a/contrib/netbsd-tests/lib/libc/string/t_strchr.c b/contrib/netbsd-tests/lib/libc/string/t_strchr.c index 958b186..4556b2c 100644 --- a/contrib/netbsd-tests/lib/libc/string/t_strchr.c +++ b/contrib/netbsd-tests/lib/libc/string/t_strchr.c @@ -58,6 +58,9 @@ ATF_TC_HEAD(strchr_basic, tc) ATF_TC_BODY(strchr_basic, tc) { +#ifdef __FreeBSD__ + void *dl_handle; +#endif unsigned int t, a; char *off; char buf[32]; @@ -245,8 +248,12 @@ ATF_TC_BODY(strchr_basic, tc) "abcdefgh/abcdefgh/", }; - +#ifdef __FreeBSD__ + dl_handle = dlopen(NULL, RTLD_LAZY); + strchr_fn = dlsym(dl_handle, "test_strlen"); +#else strchr_fn = dlsym(dlopen(0, RTLD_LAZY), "test_strchr"); +#endif if (!strchr_fn) strchr_fn = strchr; @@ -281,6 +288,9 @@ ATF_TC_BODY(strchr_basic, tc) verify_strchr(buf + a, 0xff, t, a); } } +#ifdef __FreeBSD__ + (void)dlclose(dl_handle); +#endif } ATF_TP_ADD_TCS(tp) diff --git a/contrib/netbsd-tests/lib/libc/string/t_strlen.c b/contrib/netbsd-tests/lib/libc/string/t_strlen.c index 66158fd..7483dc6 100644 --- a/contrib/netbsd-tests/lib/libc/string/t_strlen.c +++ b/contrib/netbsd-tests/lib/libc/string/t_strlen.c @@ -40,6 +40,9 @@ ATF_TC_HEAD(strlen_basic, tc) ATF_TC_BODY(strlen_basic, tc) { +#ifdef __FreeBSD__ + void *dl_handle; +#endif /* try to trick the compiler */ size_t (*strlen_fn)(const char *); @@ -107,7 +110,12 @@ ATF_TC_BODY(strlen_basic, tc) * During testing it is useful have the rest of the program * use a known good version! */ +#ifdef __FreeBSD__ + dl_handle = dlopen(NULL, RTLD_LAZY); + strlen_fn = dlsym(dl_handle, "test_strlen"); +#else strlen_fn = dlsym(dlopen(NULL, RTLD_LAZY), "test_strlen"); +#endif if (!strlen_fn) strlen_fn = strlen; @@ -134,6 +142,9 @@ ATF_TC_BODY(strlen_basic, tc) } } } +#ifdef __FreeBSD__ + (void)dlclose(dl_handle); +#endif } ATF_TC(strlen_huge); diff --git a/contrib/netbsd-tests/lib/libc/sys/t_kevent.c b/contrib/netbsd-tests/lib/libc/sys/t_kevent.c index fe298c5..c2fef44 100644 --- a/contrib/netbsd-tests/lib/libc/sys/t_kevent.c +++ b/contrib/netbsd-tests/lib/libc/sys/t_kevent.c @@ -101,6 +101,9 @@ ATF_TC_BODY(kqueue_desc_passing, tc) m.msg_namelen = 0; m.msg_control = msg; m.msg_controllen = CMSG_SPACE(sizeof(int)); +#ifdef __FreeBSD__ + m.msg_flags = 0; +#endif child = fork(); if (child == 0) { diff --git a/contrib/netbsd-tests/lib/libc/sys/t_listen.c b/contrib/netbsd-tests/lib/libc/sys/t_listen.c index d7c7d9e..a9ee733 100644 --- a/contrib/netbsd-tests/lib/libc/sys/t_listen.c +++ b/contrib/netbsd-tests/lib/libc/sys/t_listen.c @@ -110,6 +110,9 @@ ATF_TC_BODY(listen_low_port, tc) int sd, val; sd = socket(AF_INET, SOCK_STREAM, 0); +#ifdef __FreeBSD__ + ATF_REQUIRE_MSG(sd != -1, "socket failed: %s", strerror(errno)); +#endif val = IP_PORTRANGE_LOW; if (setsockopt(sd, IPPROTO_IP, IP_PORTRANGE, &val, diff --git a/contrib/netbsd-tests/lib/libc/sys/t_mincore.c b/contrib/netbsd-tests/lib/libc/sys/t_mincore.c index 872856e..c31170f 100644 --- a/contrib/netbsd-tests/lib/libc/sys/t_mincore.c +++ b/contrib/netbsd-tests/lib/libc/sys/t_mincore.c @@ -144,6 +144,9 @@ ATF_TC_WITH_CLEANUP(mincore_resid); ATF_TC_HEAD(mincore_resid, tc) { atf_tc_set_md_var(tc, "descr", "Test page residency with mincore(2)"); +#ifdef __FreeBSD__ + atf_tc_set_md_var(tc, "require.user", "root"); +#endif } ATF_TC_BODY(mincore_resid, tc) @@ -155,6 +158,13 @@ ATF_TC_BODY(mincore_resid, tc) struct rlimit rlim; ATF_REQUIRE(getrlimit(RLIMIT_MEMLOCK, &rlim) == 0); +#ifdef __FreeBSD__ + /* + * Bump the mlock limit to unlimited so the rest of the testcase + * passes instead of failing on the mlock call. + */ + rlim.rlim_max = RLIM_INFINITY; +#endif rlim.rlim_cur = rlim.rlim_max; ATF_REQUIRE(setrlimit(RLIMIT_MEMLOCK, &rlim) == 0); @@ -206,8 +216,9 @@ ATF_TC_BODY(mincore_resid, tc) "might be low on memory"); #ifdef __FreeBSD__ - ATF_REQUIRE_MSG(mlock(addr, npgs * page) == 0, "mlock failed: %s", - strerror(errno)); + if (mlock(addr, npgs * page) == -1 && errno != ENOMEM) + atf_tc_skip("could not wire anonymous test area, system might " + "be low on memory"); #endif ATF_REQUIRE(check_residency(addr, npgs) == npgs); ATF_REQUIRE(munmap(addr, npgs * page) == 0); @@ -268,6 +279,9 @@ ATF_TC_BODY(mincore_resid, tc) (void)munmap(addr2, npgs * page); (void)munmap(addr3, npgs * page); (void)unlink(path); +#ifdef __FreeBSD__ + free(buf); +#endif } ATF_TC_CLEANUP(mincore_resid, tc) diff --git a/contrib/netbsd-tests/lib/libc/sys/t_pipe.c b/contrib/netbsd-tests/lib/libc/sys/t_pipe.c index b30b94d..32beecc 100644 --- a/contrib/netbsd-tests/lib/libc/sys/t_pipe.c +++ b/contrib/netbsd-tests/lib/libc/sys/t_pipe.c @@ -153,6 +153,9 @@ ATF_TC_BODY(pipe_restart, tc) ATF_REQUIRE_EQ(WEXITSTATUS(st), 0); } +#ifdef __FreeBSD__ + free(f); +#endif } ATF_TP_ADD_TCS(tp) diff --git a/contrib/netbsd-tests/lib/libc/sys/t_revoke.c b/contrib/netbsd-tests/lib/libc/sys/t_revoke.c index 926d2740..8e4c2a3 100644 --- a/contrib/netbsd-tests/lib/libc/sys/t_revoke.c +++ b/contrib/netbsd-tests/lib/libc/sys/t_revoke.c @@ -176,6 +176,9 @@ ATF_TC_BODY(revoke_perm, tc) if (WIFEXITED(sta) == 0 || WEXITSTATUS(sta) != EXIT_SUCCESS) atf_tc_fail("revoke(2) did not obey permissions"); +#ifdef __FreeBSD__ + (void)close(fd); +#endif ATF_REQUIRE(unlink(path) == 0); } diff --git a/contrib/netbsd-tests/lib/libc/sys/t_setrlimit.c b/contrib/netbsd-tests/lib/libc/sys/t_setrlimit.c index 72175e4..4b21860 100644 --- a/contrib/netbsd-tests/lib/libc/sys/t_setrlimit.c +++ b/contrib/netbsd-tests/lib/libc/sys/t_setrlimit.c @@ -124,6 +124,9 @@ out: if (lim != 0) atf_tc_fail("failed to set limit (%d)", lim); +#ifdef __FreeBSD__ + free(buf); +#endif } ATF_TC(setrlimit_current); diff --git a/contrib/netbsd-tests/lib/libc/sys/t_stat.c b/contrib/netbsd-tests/lib/libc/sys/t_stat.c index 5e1d17e..300c6e8 100644 --- a/contrib/netbsd-tests/lib/libc/sys/t_stat.c +++ b/contrib/netbsd-tests/lib/libc/sys/t_stat.c @@ -398,6 +398,9 @@ ATF_TC_BODY(stat_symlink, tc) ATF_REQUIRE(unlink(path) == 0); ATF_REQUIRE(unlink(pathlink) == 0); +#ifdef __FreeBSD__ + (void)close(fd); +#endif } ATF_TC_CLEANUP(stat_symlink, tc) diff --git a/contrib/netbsd-tests/lib/libc/sys/t_umask.c b/contrib/netbsd-tests/lib/libc/sys/t_umask.c index 748cbdc..7a65574 100644 --- a/contrib/netbsd-tests/lib/libc/sys/t_umask.c +++ b/contrib/netbsd-tests/lib/libc/sys/t_umask.c @@ -129,6 +129,9 @@ ATF_TC_BODY(umask_open, tc) if (fd < 0) continue; +#ifdef __FreeBSD__ + (void)close(fd); +#endif (void)memset(&st, 0, sizeof(struct stat)); if (stat(path, &st) != 0) { diff --git a/contrib/netbsd-tests/lib/libc/ttyio/t_ttyio.c b/contrib/netbsd-tests/lib/libc/ttyio/t_ttyio.c index 5a5ec0f..1e42536 100644 --- a/contrib/netbsd-tests/lib/libc/ttyio/t_ttyio.c +++ b/contrib/netbsd-tests/lib/libc/ttyio/t_ttyio.c @@ -152,6 +152,9 @@ ATF_TC_BODY(ioctl, tc) REQUIRE_ERRNO(sigaction(SIGCHLD, &sa, NULL), -1); (void) wait(NULL); +#ifdef __FreeBSD__ + (void)close(s); +#endif ATF_REQUIRE_EQ(rc, 0); } diff --git a/contrib/netbsd-tests/lib/libpthread/t_swapcontext.c b/contrib/netbsd-tests/lib/libpthread/t_swapcontext.c index c0c375f..a18ac2f 100644 --- a/contrib/netbsd-tests/lib/libpthread/t_swapcontext.c +++ b/contrib/netbsd-tests/lib/libpthread/t_swapcontext.c @@ -30,6 +30,8 @@ __RCSID("$NetBSD"); #ifdef __FreeBSD__ #include <sys/types.h> +#include <errno.h> +#include <string.h> #endif #include <pthread.h> #include <ucontext.h> @@ -80,7 +82,12 @@ threadfunc(void *arg) oself = (void *)pthread_self(); printf("before swapcontext self = %p\n", oself); +#ifdef __FreeBSD__ + ATF_REQUIRE_MSG(swapcontext(&octx, &nctx) != -1, "swapcontext failed: %s", + strerror(errno)); +#else PTHREAD_REQUIRE(swapcontext(&octx, &nctx)); +#endif /* NOTREACHED */ return NULL; @@ -102,7 +109,12 @@ ATF_TC_BODY(swapcontext1, tc) printf("Testing if swapcontext() alters pthread_self()\n"); +#ifdef __FreeBSD__ + ATF_REQUIRE_MSG(getcontext(&nctx) != -1, "getcontext failed: %s", + strerror(errno)); +#else PTHREAD_REQUIRE(getcontext(&nctx)); +#endif PTHREAD_REQUIRE(pthread_create(&thread, NULL, threadfunc, NULL)); PTHREAD_REQUIRE(pthread_join(thread, NULL)); } diff --git a/etc/devd/hyperv.conf b/etc/devd/hyperv.conf index bed7383..0abf284 100644 --- a/etc/devd/hyperv.conf +++ b/etc/devd/hyperv.conf @@ -17,3 +17,19 @@ notify 10 { match "cdev" "hv_kvp_dev"; action "pkill -x hv_kvp_daemon"; }; + +notify 11 { + match "system" "DEVFS"; + match "subsystem" "CDEV"; + match "type" "CREATE"; + match "cdev" "hv_fsvss_dev"; + action "/usr/sbin/hv_vss_daemon"; +}; + +notify 11 { + match "system" "DEVFS"; + match "subsystem" "CDEV"; + match "type" "DESTROY"; + match "cdev" "hv_fsvss_dev"; + action "pkill -x hv_vss_daemon"; +}; diff --git a/etc/mtree/BSD.include.dist b/etc/mtree/BSD.include.dist index 011fa61..efffe06 100644 --- a/etc/mtree/BSD.include.dist +++ b/etc/mtree/BSD.include.dist @@ -118,6 +118,8 @@ .. hwpmc .. + hyperv + .. ic .. ieee488 diff --git a/etc/snmpd.config b/etc/snmpd.config index 86b0989..7787542 100644 --- a/etc/snmpd.config +++ b/etc/snmpd.config @@ -112,12 +112,58 @@ sysObjectId = 1.3.6.1.4.1.12325.1.1.2.1.$(system) snmpEnableAuthenTraps = 2 +# Uncomment `begemotSnmpdModulePath.".." = ".."' entries below to enable +# modules + +# +# Bridge module +# This requires the mibII module. +# +#begemotSnmpdModulePath."bridge" = "/usr/lib/snmp_bridge.so" + +# +# Host resources module +# This requires the mibII module. +# +#begemotSnmpdModulePath."hostres" = "/usr/lib/snmp_hostres.so" + +# +# MIB-2 module +# +begemotSnmpdModulePath."mibII" = "/usr/lib/snmp_mibII.so" + +# +# Netgraph module +# +#begemotSnmpdModulePath."netgraph" = "/usr/lib/snmp_netgraph.so" + +# +# pf(4) module +# +#begemotSnmpdModulePath."pf" = "/usr/lib/snmp_pf.so" + +# +# SNMPv3 Notification Targets +# +# begemotSnmpdModulePath."target" = "/usr/lib/snmp_target.so" + # # SNMPv3 User-based security module - must be loaded for SNMPv3 USM # #begemotSnmpdModulePath."usm" = "/usr/lib/snmp_usm.so" # +# SNMPv3 View-based Access Control module +# +#begemotSnmpdModulePath."vacm" = "/usr/lib/snmp_vacm.so" + +# +# Wireless module +# This requires the mibII module. +# +#begemotSnmpdModulePath."wlan" = "/usr/lib/snmp_wlan.so" + +# # SNMPv3 USM User definition. # @@ -127,7 +173,7 @@ snmpEnableAuthenTraps = 2 # The following block creates a user with name "bsnmp" and sets privacy # and encryption options to SHA256 message digests and AES encryption # for this user. -# +# # usmUserStatus.$(engine).$(user1) = 5 # usmUserAuthProtocol.$(engine).$(user1) = $(HMACSHAAuthProtocol) # usmUserAuthKeyChange.$(engine).$(user1) = $(user1passwd) @@ -147,11 +193,6 @@ snmpEnableAuthenTraps = 2 # # -# SNMPv3 View-based Access Control module -# -#begemotSnmpdModulePath."vacm" = "/usr/lib/snmp_vacm.so" - -# # Definition of view-based access control entries. # #%vacm @@ -170,7 +211,7 @@ snmpEnableAuthenTraps = 2 # vacmSecurityToGroupStatus.$(securityModelUSM).$(read) = 4 # vacmGroupName.$(securityModelUSM).$(read) = $(write) -# +# # The OID of the .iso.org.dod.internet subtree # # internetoid := 1.3.6.1 @@ -193,7 +234,7 @@ snmpEnableAuthenTraps = 2 # vacmAccessReadViewName.$(read)."".$(securityModelSNMPv1).$(noAuthNoPriv) = "internet" # -# Read-write access for SNMPv2 users +# Read-write access for SNMPv2 users # # vacmAccessStatus.$(write)."".$(securityModelSNMPv2c).$(noAuthNoPriv) = 4 # vacmAccessReadViewName.$(write)."".$(securityModelSNMPv2c).$(noAuthNoPriv) = "internet" @@ -210,15 +251,10 @@ snmpEnableAuthenTraps = 2 # #Read-write-notify access to restricted for SNMPv3 USM users with authPriv # -# vacmAccessStatus.$(write)."".3.$(authPriv) = 4 -# vacmAccessReadViewName.$(write)."".3.$(authPriv) = "restricted" -# vacmAccessWriteViewName.$(write)."".3.$(authPriv) = "restricted" -# vacmAccessNotifyViewName.$(write)."".3.$(authPriv) = "restricted" - -# -# SNMPv3 Notification Targets -# -# begemotSnmpdModulePath."target" = "/usr/lib/snmp_target.so" +# vacmAccessStatus.$(write)."".$(securityModelUSM).$(authPriv) = 4 +# vacmAccessReadViewName.$(write)."".$(securityModelUSM).$(authPriv) = "restricted" +# vacmAccessWriteViewName.$(write)."".$(securityModelUSM).$(authPriv) = "restricted" +# vacmAccessNotifyViewName.$(write)."".$(securityModelUSM).$(authPriv) = "restricted" #%target # Send notifications to target tag "test" @@ -259,44 +295,11 @@ snmpEnableAuthenTraps = 2 # snmpTargetAddrParams.$(tagremote) = $(tag) # snmpTargetAddrRowStatus.$(tagremote) = 1 -# -# Load MIB-2 module -# -begemotSnmpdModulePath."mibII" = "/usr/lib/snmp_mibII.so" - # Force a polling rate for the 64-bit interface counters in case # the automatic computation is wrong (which may be the case if an interface # announces the wrong bit rate via its MIB). #%mibII #begemotIfForcePoll = 2000 - -# Netgraph module -# -#begemotSnmpdModulePath."netgraph" = "/usr/lib/snmp_netgraph.so" -# #%netgraph #begemotNgControlNodeName = "snmpd" - -# -# pf(4) module -# -#begemotSnmpdModulePath."pf" = "/usr/lib/snmp_pf.so" - -# -# Host resources module -# This requires the mibII module. -# -#begemotSnmpdModulePath."hostres" = "/usr/lib/snmp_hostres.so" - -# -# Bridge module -# This requires the mibII module. -# -#begemotSnmpdModulePath."bridge" = "/usr/lib/snmp_bridge.so" - -# -# Wireless module -# This requires the mibII module. -# -#begemotSnmpdModulePath."wlan" = "/usr/lib/snmp_wlan.so" diff --git a/include/Makefile b/include/Makefile index 449cdf4..abf71aa 100644 --- a/include/Makefile +++ b/include/Makefile @@ -44,7 +44,7 @@ LDIRS= bsm cam geom net net80211 netatalk netgraph netinet netinet6 \ LSUBDIRS= cam/ata cam/scsi \ dev/acpica dev/agp dev/an dev/bktr dev/ciss dev/filemon dev/firewire \ - dev/hwpmc \ + dev/hwpmc dev/hyperv \ dev/ic dev/iicbus ${_dev_ieee488} dev/io dev/lmc dev/mfi dev/nvme \ dev/ofw dev/pbio dev/pci ${_dev_powermac_nvram} dev/ppbus dev/smbus \ dev/speaker dev/utopia dev/vkbd dev/wi \ @@ -161,7 +161,7 @@ copies: done .endif .endfor -.for i in ${LDIRS} ${LSUBDIRS:Ndev/agp:Ndev/acpica:Ndev/bktr:Ndev/nand:Ndev/pci} ${LSUBSUBDIRS} +.for i in ${LDIRS} ${LSUBDIRS:Ndev/agp:Ndev/acpica:Ndev/bktr:Ndev/hyperv:Ndev/nand:Ndev/pci} ${LSUBSUBDIRS} cd ${.CURDIR}/../sys; \ ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 $i/*.h \ ${DESTDIR}${INCLUDEDIR}/$i @@ -184,6 +184,12 @@ copies: ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 nand_dev.h \ ${DESTDIR}${INCLUDEDIR}/dev/nand .endif + cd ${.CURDIR}/../sys/dev/hyperv/include; \ + ${INSTALL} -C ${TAG_ARGS} -o ${BINOWN} -g ${BINGRP} -m 444 hyperv.h \ + ${DESTDIR}${INCLUDEDIR}/dev/hyperv + cd ${.CURDIR}/../sys/dev/hyperv/utilities; \ + ${INSTALL} -C ${TAG_ARGS} -o ${BINOWN} -g ${BINGRP} -m 444 hv_snapshot.h \ + ${DESTDIR}${INCLUDEDIR}/dev/hyperv cd ${.CURDIR}/../sys/dev/pci; \ ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 pcireg.h \ ${DESTDIR}${INCLUDEDIR}/dev/pci @@ -256,7 +262,7 @@ symlinks: ln -fs ../../../sys/$i/$$h ${DESTDIR}${INCLUDEDIR}/$i; \ done .endfor -.for i in ${LSUBDIRS:Ndev/agp:Ndev/acpica:Ndev/bktr:Ndev/nand:Ndev/pci} +.for i in ${LSUBDIRS:Ndev/agp:Ndev/acpica:Ndev/bktr:Ndev/hyperv:Ndev/nand:Ndev/pci} cd ${.CURDIR}/../sys/$i; \ for h in *.h; do \ ln -fs ../../../../sys/$i/$$h ${DESTDIR}${INCLUDEDIR}/$i; \ @@ -284,6 +290,16 @@ symlinks: ${DESTDIR}${INCLUDEDIR}/dev/nand; \ done .endif + cd ${.CURDIR}/../sys/dev/hyperv/include; \ + for h in hyperv.h; do \ + ${INSTALL_SYMLINK} ${TAG_ARGS} ../../../../sys/dev/hyperv/include/$$h \ + ${DESTDIR}${INCLUDEDIR}/dev/hyperv; \ + done + cd ${.CURDIR}/../sys/dev/hyperv/utilities; \ + for h in hv_snapshot.h; do \ + ${INSTALL_SYMLINK} ${TAG_ARGS} ../../../../sys/dev/hyperv/utilities/$$h \ + ${DESTDIR}${INCLUDEDIR}/dev/hyperv; \ + done cd ${.CURDIR}/../sys/dev/pci; \ for h in pcireg.h; do \ ln -fs ../../../../sys/dev/pci/$$h \ diff --git a/include/stddef.h b/include/stddef.h index 99629e0..3c1b1bb 100644 --- a/include/stddef.h +++ b/include/stddef.h @@ -63,7 +63,7 @@ typedef ___wchar_t wchar_t; #ifndef __CLANG_MAX_ALIGN_T_DEFINED typedef __max_align_t max_align_t; #define __CLANG_MAX_ALIGN_T_DEFINED -#define __GCC_MAX_ALIGN_T +#define _GCC_MAX_ALIGN_T #endif #endif diff --git a/kerberos5/Makefile.inc b/kerberos5/Makefile.inc index 5667599..d665bb5 100644 --- a/kerberos5/Makefile.inc +++ b/kerberos5/Makefile.inc @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + NO_LINT= KRB5DIR= ${.CURDIR}/../../../crypto/heimdal @@ -27,11 +29,14 @@ ETSRCS= \ ${KRB5DIR}/lib/krb5/k524_err.et \ ${KRB5DIR}/lib/krb5/krb5_err.et \ ${KRB5DIR}/lib/krb5/krb_err.et \ - ${KRB5DIR}/lib/gssapi/krb5/gkrb5_err.et \ ${KRB5DIR}/lib/hx509/hx509_err.et \ ${KRB5DIR}/lib/wind/wind_err.et \ ${KRB5DIR}/lib/ntlm/ntlm_err.et +.if ${MK_GSSAPI} != "no" +ETSRCS+= ${KRB5DIR}/lib/gssapi/krb5/gkrb5_err.et +.endif + .for ET in ${ETSRCS} .for _ET in ${ET:T:R} .if ${SRCS:M${_ET}.[ch]} != "" diff --git a/kerberos5/lib/Makefile b/kerberos5/lib/Makefile index 238fe90..1e6eeb6 100644 --- a/kerberos5/lib/Makefile +++ b/kerberos5/lib/Makefile @@ -1,10 +1,17 @@ - # $FreeBSD$ -SUBDIR= libasn1 libgssapi_krb5 libgssapi_ntlm libgssapi_spnego libhdb \ +.include <bsd.own.mk> + +SUBDIR= libasn1 libhdb \ libheimntlm libhx509 libkadm5clnt libkadm5srv libkafs5 libkrb5 \ libroken libsl libvers libkdc libwind libheimsqlite libheimbase libheimipcc libheimipcs SUBDIR_DEPEND_libkafs5= libkrb5 +.if ${MK_GSSAPI} != "no" +SUBDIR+= libgssapi_krb5 +SUBDIR+= libgssapi_ntlm +SUBDIR+= libgssapi_spnego +.endif + .include <bsd.subdir.mk> diff --git a/kerberos5/libexec/Makefile b/kerberos5/libexec/Makefile index 26a830d..2de2963 100644 --- a/kerberos5/libexec/Makefile +++ b/kerberos5/libexec/Makefile @@ -1,7 +1,13 @@ # $FreeBSD$ -SUBDIR= digest-service ipropd-master ipropd-slave hprop hpropd kadmind kdc \ +.include <bsd.own.mk> + +SUBDIR= digest-service ipropd-master ipropd-slave hprop hpropd kdc \ kdigest kfd kimpersonate kpasswdd kcm SUBDIR_PARALLEL= +.if ${MK_GSSAPI} != "no" +SUBDIR+= kadmind +.endif + .include <bsd.subdir.mk> diff --git a/lib/libarchive/tests/Makefile b/lib/libarchive/tests/Makefile index f0ede5f..58c642e 100644 --- a/lib/libarchive/tests/Makefile +++ b/lib/libarchive/tests/Makefile @@ -11,7 +11,7 @@ BINDIR= ${TESTSDIR} PROGS+= libarchive_test -CFLAGS+= -I${.CURDIR:H} -I${.OBJDIR} +CFLAGS+= -I${.CURDIR} -I${.CURDIR:H} -I${.OBJDIR} CFLAGS+= -I${LIBARCHIVEDIR}/libarchive -I${LIBARCHIVEDIR}/test_utils CFLAGS+= -DHAVE_LIBLZMA=1 -DHAVE_LZMA_H=1 @@ -70,8 +70,11 @@ TESTS_SRCS= \ test_compat_lzop.c \ test_compat_mac.c \ test_compat_pax_libarchive_2x.c \ + test_compat_perl_archive_tar.c \ + test_compat_plexus_archiver_tar.c \ test_compat_solaris_tar_acl.c \ test_compat_solaris_pax_sparse.c \ + test_compat_star_acl_posix1e.c \ test_compat_tar_hardlink.c \ test_compat_uudecode.c \ test_compat_uudecode_large.c \ @@ -178,6 +181,7 @@ TESTS_SRCS= \ test_read_format_zip_encryption_partially.c \ test_read_format_zip_filename.c \ test_read_format_zip_high_compression.c \ + test_read_format_zip_jar.c \ test_read_format_zip_mac_metadata.c \ test_read_format_zip_malformed.c \ test_read_format_zip_msdos.c \ @@ -321,6 +325,7 @@ FILES+= test_compat_bzip2_1.tbz.uu FILES+= test_compat_bzip2_2.tbz.uu FILES+= test_compat_cpio_1.cpio.uu FILES+= test_compat_gtar_1.tar.uu +FILES+= test_compat_gtar_2.tar.uu FILES+= test_compat_gzip_1.tgz.uu FILES+= test_compat_lz4_1.tar.lz4.uu FILES+= test_compat_lz4_2.tar.lz4.uu @@ -346,9 +351,12 @@ FILES+= test_compat_lzop_3.tar.lzo.uu FILES+= test_compat_mac-1.tar.Z.uu FILES+= test_compat_mac-2.tar.Z.uu FILES+= test_compat_pax_libarchive_2x.tar.Z.uu +FILES+= test_compat_perl_archive_tar.tar.uu +FILES+= test_compat_plexus_archiver_tar.tar.uu FILES+= test_compat_solaris_pax_sparse_1.pax.Z.uu FILES+= test_compat_solaris_pax_sparse_2.pax.Z.uu FILES+= test_compat_solaris_tar_acl.tar.uu +FILES+= test_compat_star_acl_posix1e.tar.uu FILES+= test_compat_tar_hardlink_1.tar.uu FILES+= test_compat_uudecode_large.tar.Z.uu FILES+= test_compat_xz_1.txz.uu @@ -490,6 +498,7 @@ FILES+= test_read_format_rar_sfx.exe.uu FILES+= test_read_format_rar_subblock.rar.uu FILES+= test_read_format_rar_unicode.rar.uu FILES+= test_read_format_rar_windows.rar.uu +FILES+= test_read_format_raw.bufr.uu FILES+= test_read_format_raw.data.Z.uu FILES+= test_read_format_raw.data.uu FILES+= test_read_format_tar_concatenated.tar.uu @@ -513,6 +522,7 @@ FILES+= test_read_format_zip_filename_utf8_jp.zip.uu FILES+= test_read_format_zip_filename_utf8_ru.zip.uu FILES+= test_read_format_zip_filename_utf8_ru2.zip.uu FILES+= test_read_format_zip_high_compression.zip.uu +FILES+= test_read_format_zip_jar.jar.uu FILES+= test_read_format_zip_length_at_end.zip.uu FILES+= test_read_format_zip_mac_metadata.zip.uu FILES+= test_read_format_zip_malformed1.zip.uu diff --git a/lib/libbsnmp/libbsnmp/Makefile b/lib/libbsnmp/libbsnmp/Makefile index 20015b9..a756f90 100644 --- a/lib/libbsnmp/libbsnmp/Makefile +++ b/lib/libbsnmp/libbsnmp/Makefile @@ -20,7 +20,100 @@ LDADD+= -lcrypto .endif SRCS= asn1.c snmp.c snmpagent.c snmpclient.c snmpcrypto.c support.c -INCS= asn1.h snmp.h snmpagent.h snmpclient.h -MAN= asn1.3 bsnmplib.3 bsnmpclient.3 bsnmpagent.3 +INCS= asn1.h snmp.h snmpagent.h snmpclient.h +MAN= asn1.3 bsnmpagent.3 bsnmpclient.3 bsnmplib.3 + +MLINKS+= asn1.3 asn_append_oid.3 +MLINKS+= asn1.3 asn_commit_header.3 +MLINKS+= asn1.3 asn_compare_oid.3 +MLINKS+= asn1.3 asn_get_counter64_raw.3 +MLINKS+= asn1.3 asn_get_header.3 +MLINKS+= asn1.3 asn_get_integer.3 +MLINKS+= asn1.3 asn_get_integer_raw.3 +MLINKS+= asn1.3 asn_get_ipaddress.3 +MLINKS+= asn1.3 asn_get_ipaddress_raw.3 +MLINKS+= asn1.3 asn_get_null.3 +MLINKS+= asn1.3 asn_get_null_raw.3 +MLINKS+= asn1.3 asn_get_objid.3 +MLINKS+= asn1.3 asn_get_objid_raw.3 +MLINKS+= asn1.3 asn_get_octetstring.3 +MLINKS+= asn1.3 asn_get_octetstring_raw.3 +MLINKS+= asn1.3 asn_get_sequence.3 +MLINKS+= asn1.3 asn_get_timeticks.3 +MLINKS+= asn1.3 asn_get_uint32_raw.3 +MLINKS+= asn1.3 asn_is_suboid.3 +MLINKS+= asn1.3 asn_oid2str.3 +MLINKS+= asn1.3 asn_oid2str_r.3 +MLINKS+= asn1.3 asn_put_counter64.3 +MLINKS+= asn1.3 asn_put_exception.3 +MLINKS+= asn1.3 asn_put_header.3 +MLINKS+= asn1.3 asn_put_integer.3 +MLINKS+= asn1.3 asn_put_ipaddress.3 +MLINKS+= asn1.3 asn_put_null.3 +MLINKS+= asn1.3 asn_put_objid.3 +MLINKS+= asn1.3 asn_put_octetstring.3 +MLINKS+= asn1.3 asn_put_temp_header.3 +MLINKS+= asn1.3 asn_put_timeticks.3 +MLINKS+= asn1.3 asn_put_uint32.3 +MLINKS+= asn1.3 asn_skip.3 +MLINKS+= asn1.3 asn_slice_oid.3 + +MLINKS+= bsnmpagent.3 snmp_debug.3 +MLINKS+= bsnmpagent.3 snmp_dep_commit.3 +MLINKS+= bsnmpagent.3 snmp_dep_finish.3 +MLINKS+= bsnmpagent.3 snmp_dep_lookup.3 +MLINKS+= bsnmpagent.3 snmp_dep_rollback.3 +MLINKS+= bsnmpagent.3 snmp_depop_t.3 +MLINKS+= bsnmpagent.3 snmp_get.3 +MLINKS+= bsnmpagent.3 snmp_getbulk.3 +MLINKS+= bsnmpagent.3 snmp_getnext.3 +MLINKS+= bsnmpagent.3 snmp_init_context.3 +MLINKS+= bsnmpagent.3 snmp_make_errresp.3 +MLINKS+= bsnmpagent.3 snmp_op_t.3 +MLINKS+= bsnmpagent.3 snmp_set.3 +MLINKS+= bsnmpagent.3 snmp_trace.3 +MLINKS+= bsnmpagent.3 tree.3 +MLINKS+= bsnmpagent.3 tree_size.3 + +MLINKS+= bsnmpclient.3 snmp_add_binding.3 +MLINKS+= bsnmpclient.3 snmp_client.3 +MLINKS+= bsnmpclient.3 snmp_client_init.3 +MLINKS+= bsnmpclient.3 snmp_client_set_host.3 +MLINKS+= bsnmpclient.3 snmp_client_set_port.3 +MLINKS+= bsnmpclient.3 snmp_close.3 +MLINKS+= bsnmpclient.3 snmp_dialog.3 +MLINKS+= bsnmpclient.3 snmp_discover_engine.3 +MLINKS+= bsnmpclient.3 snmp_oid_append.3 +MLINKS+= bsnmpclient.3 snmp_open.3 +MLINKS+= bsnmpclient.3 snmp_parse_server.3 +MLINKS+= bsnmpclient.3 snmp_pdu_check.3 +MLINKS+= bsnmpclient.3 snmp_pdu_create.3 +MLINKS+= bsnmpclient.3 snmp_pdu_send.3 +MLINKS+= bsnmpclient.3 snmp_receive.3 +MLINKS+= bsnmpclient.3 snmp_send_cb_f.3 +MLINKS+= bsnmpclient.3 snmp_table_cb_f.3 +MLINKS+= bsnmpclient.3 snmp_table_fetch.3 +MLINKS+= bsnmpclient.3 snmp_table_fetch_async.3 +MLINKS+= bsnmpclient.3 snmp_timeout_cb_f.3 +MLINKS+= bsnmpclient.3 snmp_timeout_start_f.3 +MLINKS+= bsnmpclient.3 snmp_timeout_stop_f.3 + +MLINKS+= bsnmplib.3 TRUTH_GET.3 +MLINKS+= bsnmplib.3 TRUTH_MK.3 +MLINKS+= bsnmplib.3 TRUTH_OK.3 +MLINKS+= bsnmplib.3 snmp_calc_keychange.3 +MLINKS+= bsnmplib.3 snmp_get_local_keys.3 +MLINKS+= bsnmplib.3 snmp_passwd_to_keys.3 +MLINKS+= bsnmplib.3 snmp_pdu_decode.3 +MLINKS+= bsnmplib.3 snmp_pdu_decode_header.3 +MLINKS+= bsnmplib.3 snmp_pdu_decode_scoped.3 +MLINKS+= bsnmplib.3 snmp_pdu_decode_secmode.3 +MLINKS+= bsnmplib.3 snmp_pdu_dump.3 +MLINKS+= bsnmplib.3 snmp_pdu_encode.3 +MLINKS+= bsnmplib.3 snmp_pdu_free.3 +MLINKS+= bsnmplib.3 snmp_pdu_init_secparams.3 +MLINKS+= bsnmplib.3 snmp_value_copy.3 +MLINKS+= bsnmplib.3 snmp_value_free.3 +MLINKS+= bsnmplib.3 snmp_value_parse.3 .include <bsd.lib.mk> diff --git a/lib/libc/gen/jrand48.c b/lib/libc/gen/jrand48.c index 1707620..5aab1e1 100644 --- a/lib/libc/gen/jrand48.c +++ b/lib/libc/gen/jrand48.c @@ -14,11 +14,14 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); +#include <stdint.h> + #include "rand48.h" long jrand48(unsigned short xseed[3]) { + _dorand48(xseed); - return ((long) xseed[2] << 16) + (long) xseed[1]; + return ((int32_t)(((uint32_t)xseed[2] << 16) | (uint32_t)xseed[1])); } diff --git a/lib/libc/gen/mrand48.c b/lib/libc/gen/mrand48.c index ef20fb87b..795a858 100644 --- a/lib/libc/gen/mrand48.c +++ b/lib/libc/gen/mrand48.c @@ -14,6 +14,8 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); +#include <stdint.h> + #include "rand48.h" extern unsigned short _rand48_seed[3]; @@ -21,6 +23,8 @@ extern unsigned short _rand48_seed[3]; long mrand48(void) { + _dorand48(_rand48_seed); - return ((long) _rand48_seed[2] << 16) + (long) _rand48_seed[1]; + return ((int32_t)(((uint32_t)_rand48_seed[2] << 16) | + (uint32_t)_rand48_seed[1])); } diff --git a/lib/libc/net/getaddrinfo.c b/lib/libc/net/getaddrinfo.c index ec22570..163241b 100644 --- a/lib/libc/net/getaddrinfo.c +++ b/lib/libc/net/getaddrinfo.c @@ -673,9 +673,8 @@ reorder(struct addrinfo *sentinel) return(n); /* allocate a temporary array for sort and initialization of it. */ - if ((aio = malloc(sizeof(*aio) * n)) == NULL) + if ((aio = calloc(n, sizeof(*aio))) == NULL) return(n); /* give up reordering */ - memset(aio, 0, sizeof(*aio) * n); /* retrieve address selection policy from the kernel */ TAILQ_INIT(&policyhead); @@ -1454,9 +1453,8 @@ copy_ai(const struct addrinfo *pai) size_t l; l = sizeof(*ai) + pai->ai_addrlen; - if ((ai = (struct addrinfo *)malloc(l)) == NULL) + if ((ai = calloc(1, l)) == NULL) return NULL; - memset(ai, 0, l); memcpy(ai, pai, sizeof(*ai)); ai->ai_addr = (struct sockaddr *)(void *)(ai + 1); memcpy(ai->ai_addr, pai->ai_addr, pai->ai_addrlen); @@ -1876,8 +1874,7 @@ addrinfo_unmarshal_func(char *buffer, size_t buffer_size, void *retval, size = new_ai.ai_addrlen + sizeof(struct addrinfo) + _ALIGNBYTES; - sentinel = (struct addrinfo *)malloc(size); - memset(sentinel, 0, size); + sentinel = calloc(1, size); memcpy(sentinel, &new_ai, sizeof(struct addrinfo)); sentinel->ai_addr = (struct sockaddr *)_ALIGN((char *)sentinel + @@ -1890,8 +1887,7 @@ addrinfo_unmarshal_func(char *buffer, size_t buffer_size, void *retval, memcpy(&size, p, sizeof(size_t)); p += sizeof(size_t); - sentinel->ai_canonname = (char *)malloc(size + 1); - memset(sentinel->ai_canonname, 0, size + 1); + sentinel->ai_canonname = calloc(1, size + 1); memcpy(sentinel->ai_canonname, p, size); p += size; diff --git a/lib/libkvm/kvm_proc.c b/lib/libkvm/kvm_proc.c index f8e152e..ed34a9c 100644 --- a/lib/libkvm/kvm_proc.c +++ b/lib/libkvm/kvm_proc.c @@ -424,8 +424,6 @@ nopgrp: kp->ki_pri.pri_native = mtd.td_base_pri; kp->ki_lastcpu = mtd.td_lastcpu; kp->ki_wchan = mtd.td_wchan; - if (mtd.td_name[0] != 0) - strlcpy(kp->ki_tdname, mtd.td_name, MAXCOMLEN); kp->ki_oncpu = mtd.td_oncpu; if (mtd.td_name[0] != '\0') strlcpy(kp->ki_tdname, mtd.td_name, sizeof(kp->ki_tdname)); diff --git a/lib/libusb/libusb20_ugen20.c b/lib/libusb/libusb20_ugen20.c index e40bc07..be2acee 100644 --- a/lib/libusb/libusb20_ugen20.c +++ b/lib/libusb/libusb20_ugen20.c @@ -214,8 +214,8 @@ ugen20_enumerate(struct libusb20_device *pdev, const char *id) snprintf(pdev->usb_desc, sizeof(pdev->usb_desc), USB_GENERIC_NAME "%u.%u: <%s %s> at usbus%u", pdev->bus_number, - pdev->device_address, devinfo.udi_product, - devinfo.udi_vendor, pdev->bus_number); + pdev->device_address, devinfo.udi_vendor, + devinfo.udi_product, pdev->bus_number); error = 0; done: diff --git a/lib/libutil/gr_util.c b/lib/libutil/gr_util.c index 80d9ee6..6979ba0 100644 --- a/lib/libutil/gr_util.c +++ b/lib/libutil/gr_util.c @@ -141,7 +141,7 @@ gr_tmp(int mfd) errno = ENAMETOOLONG; return (-1); } - if ((tfd = mkostemp(tempname, O_SYNC)) == -1) + if ((tfd = mkostemp(tempname, 0)) == -1) return (-1); if (mfd != -1) { while ((nr = read(mfd, buf, sizeof(buf))) > 0) @@ -164,11 +164,12 @@ gr_tmp(int mfd) int gr_copy(int ffd, int tfd, const struct group *gr, struct group *old_gr) { - char buf[8192], *end, *line, *p, *q, *r, t; + char *buf, *end, *line, *p, *q, *r, *tmp; struct group *fgr; const struct group *sgr; - size_t len; + size_t len, size; int eof, readlen; + char t; if (old_gr == NULL && gr == NULL) return(-1); @@ -186,6 +187,10 @@ gr_copy(int ffd, int tfd, const struct group *gr, struct group *old_gr) if (sgr == NULL) sgr = gr; + /* initialize the buffer */ + if ((buf = malloc(size = 1024)) == NULL) + goto err; + eof = 0; len = 0; p = q = end = buf; @@ -199,10 +204,16 @@ gr_copy(int ffd, int tfd, const struct group *gr, struct group *old_gr) if (q >= end) { if (eof) break; - if ((size_t)(q - p) >= sizeof(buf)) { - warnx("group line too long"); - errno = EINVAL; /* hack */ - goto err; + while ((size_t)(q - p) >= size) { + if ((tmp = realloc(buf, size * 2)) == NULL) { + warnx("group line too long"); + goto err; + } + p = tmp + (p - buf); + q = tmp + (q - buf); + end = tmp + (end - buf); + buf = tmp; + size = size * 2; } if (p < end) { q = memmove(buf, p, end -p); @@ -210,7 +221,7 @@ gr_copy(int ffd, int tfd, const struct group *gr, struct group *old_gr) } else { p = q = end = buf; } - readlen = read(ffd, end, sizeof(buf) - (end -buf)); + readlen = read(ffd, end, size - (end - buf)); if (readlen == -1) goto err; else @@ -219,7 +230,7 @@ gr_copy(int ffd, int tfd, const struct group *gr, struct group *old_gr) break; end += len; len = end - buf; - if (len < (ssize_t)sizeof(buf)) { + if (len < size) { eof = 1; if (len > 0 && buf[len -1] != '\n') ++len, *end++ = '\n'; @@ -281,7 +292,7 @@ gr_copy(int ffd, int tfd, const struct group *gr, struct group *old_gr) if (write(tfd, q, end - q) != end - q) goto err; q = buf; - readlen = read(ffd, buf, sizeof(buf)); + readlen = read(ffd, buf, size); if (readlen == 0) break; else @@ -303,12 +314,12 @@ gr_copy(int ffd, int tfd, const struct group *gr, struct group *old_gr) write(tfd, "\n", 1) != 1) goto err; done: - if (line != NULL) - free(line); + free(line); + free(buf); return (0); err: - if (line != NULL) - free(line); + free(line); + free(buf); return (-1); } diff --git a/lib/libutil/pw_util.c b/lib/libutil/pw_util.c index af749d5..3e79e8d 100644 --- a/lib/libutil/pw_util.c +++ b/lib/libutil/pw_util.c @@ -226,7 +226,7 @@ pw_tmp(int mfd) errno = ENAMETOOLONG; return (-1); } - if ((tfd = mkostemp(tempname, O_SYNC)) == -1) + if ((tfd = mkostemp(tempname, 0)) == -1) return (-1); if (mfd != -1) { while ((nr = read(mfd, buf, sizeof(buf))) > 0) @@ -428,11 +428,12 @@ pw_make_v7(const struct passwd *pw) int pw_copy(int ffd, int tfd, const struct passwd *pw, struct passwd *old_pw) { - char buf[8192], *end, *line, *p, *q, *r, t; + char *buf, *end, *line, *p, *q, *r, *tmp; struct passwd *fpw; const struct passwd *spw; - size_t len; + size_t len, size; int eof, readlen; + char t; if (old_pw == NULL && pw == NULL) return (-1); @@ -450,6 +451,10 @@ pw_copy(int ffd, int tfd, const struct passwd *pw, struct passwd *old_pw) if (spw == NULL) spw = pw; + /* initialize the buffer */ + if ((buf = malloc(size = 1024)) == NULL) + goto err; + eof = 0; len = 0; p = q = end = buf; @@ -463,10 +468,16 @@ pw_copy(int ffd, int tfd, const struct passwd *pw, struct passwd *old_pw) if (q >= end) { if (eof) break; - if ((size_t)(q - p) >= sizeof(buf)) { - warnx("passwd line too long"); - errno = EINVAL; /* hack */ - goto err; + while ((size_t)(q - p) >= size) { + if ((tmp = realloc(buf, size * 2)) == NULL) { + warnx("passwd line too long"); + goto err; + } + p = tmp + (p - buf); + q = tmp + (q - buf); + end = tmp + (end - buf); + buf = tmp; + size = size * 2; } if (p < end) { q = memmove(buf, p, end - p); @@ -474,7 +485,7 @@ pw_copy(int ffd, int tfd, const struct passwd *pw, struct passwd *old_pw) } else { p = q = end = buf; } - readlen = read(ffd, end, sizeof(buf) - (end - buf)); + readlen = read(ffd, end, size - (end - buf)); if (readlen == -1) goto err; else @@ -483,7 +494,7 @@ pw_copy(int ffd, int tfd, const struct passwd *pw, struct passwd *old_pw) break; end += len; len = end - buf; - if (len < (ssize_t)sizeof(buf)) { + if (len < size) { eof = 1; if (len > 0 && buf[len - 1] != '\n') ++len, *end++ = '\n'; @@ -546,7 +557,7 @@ pw_copy(int ffd, int tfd, const struct passwd *pw, struct passwd *old_pw) if (write(tfd, q, end - q) != end - q) goto err; q = buf; - readlen = read(ffd, buf, sizeof(buf)); + readlen = read(ffd, buf, size); if (readlen == 0) break; else @@ -568,12 +579,12 @@ pw_copy(int ffd, int tfd, const struct passwd *pw, struct passwd *old_pw) write(tfd, "\n", 1) != 1) goto err; done: - if (line != NULL) - free(line); + free(line); + free(buf); return (0); err: - if (line != NULL) - free(line); + free(line); + free(buf); return (-1); } diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c index d04cf85..f5b43db 100644 --- a/libexec/rtld-elf/rtld.c +++ b/libexec/rtld-elf/rtld.c @@ -2469,7 +2469,7 @@ objlist_call_init(Objlist *list, RtldLockState *lockstate) continue; /* * Race: other thread might try to use this object before current - * one completes the initilization. Not much can be done here + * one completes the initialization. Not much can be done here * without better locking. */ elm->obj->init_done = true; diff --git a/libexec/talkd/table.c b/libexec/talkd/table.c index 70b71b2..f742cf6 100644 --- a/libexec/talkd/table.c +++ b/libexec/talkd/table.c @@ -60,7 +60,7 @@ static const char rcsid[] = #define NIL ((TABLE_ENTRY *)0) -static struct timeval tp; +static struct timespec ts; typedef struct table_entry TABLE_ENTRY; @@ -82,14 +82,15 @@ static TABLE_ENTRY *table = NIL; CTL_MSG * find_match(CTL_MSG *request) { - TABLE_ENTRY *ptr; + TABLE_ENTRY *ptr, *next; time_t current_time; - gettimeofday(&tp, NULL); - current_time = tp.tv_sec; + clock_gettime(CLOCK_MONOTONIC_FAST, &ts); + current_time = ts.tv_sec; if (debug) print_request("find_match", request); - for (ptr = table; ptr != NIL; ptr = ptr->next) { + for (ptr = table; ptr != NIL; ptr = next) { + next = ptr->next; if ((ptr->time - current_time) > MAX_LIFE) { /* the entry is too old */ if (debug) @@ -115,18 +116,19 @@ find_match(CTL_MSG *request) CTL_MSG * find_request(CTL_MSG *request) { - TABLE_ENTRY *ptr; + TABLE_ENTRY *ptr, *next; time_t current_time; - gettimeofday(&tp, NULL); - current_time = tp.tv_sec; + clock_gettime(CLOCK_MONOTONIC_FAST, &ts); + current_time = ts.tv_sec; /* * See if this is a repeated message, and check for * out of date entries in the table while we are it. */ if (debug) print_request("find_request", request); - for (ptr = table; ptr != NIL; ptr = ptr->next) { + for (ptr = table; ptr != NIL; ptr = next) { + next = ptr->next; if ((ptr->time - current_time) > MAX_LIFE) { /* the entry is too old */ if (debug) @@ -155,8 +157,8 @@ insert_table(CTL_MSG *request, CTL_RESPONSE *response) TABLE_ENTRY *ptr; time_t current_time; - gettimeofday(&tp, NULL); - current_time = tp.tv_sec; + clock_gettime(CLOCK_MONOTONIC_FAST, &ts); + current_time = ts.tv_sec; request->id_num = new_id(); response->id_num = htonl(request->id_num); /* insert a new entry into the top of the list */ diff --git a/sbin/mount/getmntopts.c b/sbin/mount/getmntopts.c index f8a3453..59a383e 100644 --- a/sbin/mount/getmntopts.c +++ b/sbin/mount/getmntopts.c @@ -181,3 +181,17 @@ build_iovec_argf(struct iovec **iov, int *iovlen, const char *name, va_end(ap); build_iovec(iov, iovlen, name, strdup(val), (size_t)-1); } + +/* + * Free the iovec and reset to NULL with zero length. Useful for calling + * nmount in a loop. + */ +void +free_iovec(struct iovec **iov, int *iovlen) +{ + int i; + + for (i = 0; i < *iovlen; i++) + free((*iov)[i].iov_base); + free(*iov); +} diff --git a/sbin/mount/mntopts.h b/sbin/mount/mntopts.h index d273dde..4cb83f1 100644 --- a/sbin/mount/mntopts.h +++ b/sbin/mount/mntopts.h @@ -99,3 +99,4 @@ int checkpath(const char *, char resolved_path[]); extern int getmnt_silent; void build_iovec(struct iovec **iov, int *iovlen, const char *name, void *val, size_t len); void build_iovec_argf(struct iovec **iov, int *iovlen, const char *name, const char *fmt, ...); +void free_iovec(struct iovec **iovec, int *iovlen); diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile index 74f5e70..05c249a 100644 --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -180,6 +180,7 @@ MAN= aac.4 \ ${_hv_storvsc.4} \ ${_hv_utils.4} \ ${_hv_vmbus.4} \ + hv_vss.4 \ hwpmc.4 \ ichsmb.4 \ ${_ichwd.4} \ @@ -584,11 +585,21 @@ MLINKS+=crypto.4 cryptodev.4 MLINKS+=cue.4 if_cue.4 MLINKS+=cxgb.4 if_cxgb.4 MLINKS+=cxgbe.4 if_cxgbe.4 \ + cxgbe.4 vcxgbe.4 \ + cxgbe.4 if_vcxgbe.4 \ cxgbe.4 cxl.4 \ - cxgbe.4 if_cxl.4 + cxgbe.4 if_cxl.4 \ + cxgbe.4 vcxl.4 \ + cxgbe.4 if_vcxl.4 \ + cxgbe.4 cc.4 \ + cxgbe.4 if_cc.4 \ + cxgbe.4 vcc.4 \ + cxgbe.4 if_vcc.4 MLINKS+=cxgbev.4 if_cxgbev.4 \ cxgbev.4 cxlv.4 \ - cxgbev.4 if_cxlv.4 + cxgbev.4 if_cxlv.4 \ + cxgbev.4 ccv.4 \ + cxgbev.4 if_ccv.4 MLINKS+=dc.4 if_dc.4 MLINKS+=de.4 if_de.4 MLINKS+=disc.4 if_disc.4 diff --git a/share/man/man4/cxgbe.4 b/share/man/man4/cxgbe.4 index c9d1de0..a4800e1 100644 --- a/share/man/man4/cxgbe.4 +++ b/share/man/man4/cxgbe.4 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2011-2014, Chelsio Inc +.\" Copyright (c) 2011-2016, Chelsio Inc .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -31,12 +31,12 @@ .\" .\" $FreeBSD$ .\" -.Dd December 2, 2015 +.Dd December 22, 2016 .Dt CXGBE 4 .Os .Sh NAME .Nm cxgbe -.Nd "Chelsio T4 and T5 based 40Gb, 10Gb, and 1Gb Ethernet adapter driver" +.Nd "Chelsio T4-, T5-, and T6-based 100Gb, 40Gb, 25Gb, 10Gb, and 1Gb Ethernet adapter driver" .Sh SYNOPSIS To compile this driver into the kernel, place the following lines in your @@ -51,13 +51,14 @@ module at boot time, place the following lines in .Bd -literal -offset indent t4fw_cfg_load="YES" t5fw_cfg_load="YES" +t6fw_cfg_load="YES" if_cxgbe_load="YES" .Ed .Sh DESCRIPTION The .Nm driver provides support for PCI Express Ethernet adapters based on -the Chelsio Terminator 4 and Terminator 5 ASICs (T4 and T5). +the Chelsio Terminator 4, Terminator 5, and Terminator 6 ASICs (T4, T5, and T6). The driver supports Jumbo Frames, Transmit/Receive checksum offload, TCP segmentation offload (TSO), Large Receive Offload (LRO), VLAN tag insertion/extraction, VLAN checksum offload, VLAN TSO, and @@ -66,18 +67,47 @@ For further hardware information and questions related to hardware requirements, see .Pa http://www.chelsio.com/ . .Pp -Note that ports of T5 cards are named cxl and attach to a t5nex parent device -(in contrast to ports named cxgbe that attach to a t4nex parent for a T4 card). -Loader tunables with the hw.cxgbe prefix apply to both T4 and T5 cards. -The sysctl MIBs are at dev.t5nex and dev.cxl for T5 cards and at dev.t4nex and -dev.cxgbe for T4 cards. +The +.Nm +driver uses different names for devices based on the associated ASIC: +.Bl -column -offset indent "ASIC" "Port Name" "Parent Device" +.It Sy ASIC Ta Sy Port Name Ta Sy Parent Device Ta Sy Virtual Interface +.It T4 Ta cxgbe Ta t4nex Ta vcxgbe +.It T5 Ta cxl Ta t5nex Ta vcxl +.It T6 Ta cc Ta t6nex Ta vcc +.El .Pp +Loader tunables with the hw.cxgbe prefix apply to all cards. +The driver provides sysctl MIBs for both ports and parent devices using +the names above. +For example, a T5 adapter provides port MIBs under dev.cxl and +adapter-wide MIBs under dev.t5nex. +References to sysctl MIBs in the remainder of this page use +dev.<port> for port MIBs and dev.<nexus> for adapter-wide MIBs. +.Pp For more information on configuring this device, see .Xr ifconfig 8 . .Sh HARDWARE The .Nm +driver supports 100Gb and 25Gb Ethernet adapters based on the T6 ASIC: +.Pp +.Bl -bullet -compact +.It +Chelsio T6225-CR +.It +Chelsio T6225-SO-CR +.It +Chelsio T62100-LP-CR +.It +Chelsio T62100-SO-CR +.It +Chelsio T62100-CR +.El +.Pp +The +.Nm driver supports 40Gb, 10Gb and 1Gb Ethernet adapters based on the T5 ASIC: .Pp .Bl -bullet -compact @@ -140,92 +170,89 @@ prompt before booting the kernel or stored in .Xr loader.conf 5 . .Bl -tag -width indent .It Va hw.cxgbe.ntxq10g -The number of tx queues to use for a 10Gb or 40Gb port. +Number of tx queues used for a 10Gb or higher-speed port. The default is 16 or the number of CPU cores in the system, whichever is less. .It Va hw.cxgbe.nrxq10g -The number of rx queues to use for a 10Gb or 40Gb port. +Number of rx queues used for a 10Gb or higher-speed port. The default is 8 or the number of CPU cores in the system, whichever is less. .It Va hw.cxgbe.ntxq1g -The number of tx queues to use for a 1Gb port. +Number of tx queues used for a 1Gb port. The default is 4 or the number of CPU cores in the system, whichever is less. .It Va hw.cxgbe.nrxq1g -The number of rx queues to use for a 1Gb port. +Number of rx queues used for a 1Gb port. The default is 2 or the number of CPU cores in the system, whichever is less. .It Va hw.cxgbe.nofldtxq10g -The number of TOE tx queues to use for a 10Gb or 40Gb port. +Number of TOE tx queues used for a 10Gb or higher-speed port. The default is 8 or the number of CPU cores in the system, whichever is less. .It Va hw.cxgbe.nofldrxq10g -The number of TOE rx queues to use for a 10Gb or 40Gb port. +Number of TOE rx queues used for a 10Gb or higher-speed port. The default is 2 or the number of CPU cores in the system, whichever is less. .It Va hw.cxgbe.nofldtxq1g -The number of TOE tx queues to use for a 1Gb port. +Number of TOE tx queues used for a 1Gb port. The default is 2 or the number of CPU cores in the system, whichever is less. .It Va hw.cxgbe.nofldrxq1g -The number of TOE rx queues to use for a 1Gb port. +Number of TOE rx queues used for a 1Gb port. The default is 1. .It Va hw.cxgbe.num_vis -The number of virtual interfaces (VIs) created for each port. +Number of virtual interfaces (VIs) created for each port. Each virtual interface creates a separate network interface. The first virtual interface on each port is required and represents the primary network interface on the port. -Additional virtual interfaces on a port are named vcxgbe (T4) or -vcxl (T5) and only use a single rx and tx queue. +Additional virtual interfaces on a port are named using the Virtual Interface +name from the table above. Additional virtual interfaces use a single pair of queues for rx and tx as well an additional pair of queues for TOE rx and tx. The default is 1. .It Va hw.cxgbe.holdoff_timer_idx_10G .It Va hw.cxgbe.holdoff_timer_idx_1G -The timer index value to use to delay interrupts. +Timer index value used to delay interrupts. The holdoff timer list has the values 1, 5, 10, 50, 100, and 200 by default (all values are in microseconds) and the index selects a value from this list. The default value is 1 which means the timer value is 5us. Different interfaces can be assigned different values at any time via the -dev.cxgbe.X.holdoff_tmr_idx or dev.cxl.X.holdoff_tmr_idx sysctl. +dev.<port>.X.holdoff_tmr_idx sysctl. .It Va hw.cxgbe.holdoff_pktc_idx_10G .It Va hw.cxgbe.holdoff_pktc_idx_1G -The packet-count index value to use to delay interrupts. -The packet-count list has the values 1, 8, 16, and 32 by default +Packet-count index value used to delay interrupts. +The packet-count list has the values 1, 8, 16, and 32 by default, and the index selects a value from this list. The default value is -1 which means packet counting is disabled and interrupts are generated based solely on the holdoff timer value. Different interfaces can be assigned different values via the -dev.cxgbe.X.holdoff_pktc_idx or dev.cxl.X.holdoff_pktc_idx sysctl. +dev.<port>.X.holdoff_pktc_idx sysctl. This sysctl works only when the interface has never been marked up (as done by ifconfig up). .It Va hw.cxgbe.qsize_txq -The size, in number of entries, of the descriptor ring used for a tx -queue. +Number of entries in a transmit queue's descriptor ring. A buf_ring of the same size is also allocated for additional software queuing. See .Xr ifnet 9 . The default value is 1024. Different interfaces can be assigned different values via the -dev.cxgbe.X.qsize_txq sysctl or dev.cxl.X.qsize_txq sysctl. +dev.<port>.X.qsize_txq sysctl. This sysctl works only when the interface has never been marked up (as done by ifconfig up). .It Va hw.cxgbe.qsize_rxq -The size, in number of entries, of the descriptor ring used for an -rx queue. +Number of entries in a receive queue's descriptor ring. The default value is 1024. Different interfaces can be assigned different values via the -dev.cxgbe.X.qsize_rxq or dev.cxl.X.qsize_rxq sysctl. +dev.<port>.X.qsize_rxq sysctl. This sysctl works only when the interface has never been marked up (as done by ifconfig up). .It Va hw.cxgbe.interrupt_types -The interrupt types that the driver is allowed to use. -Bit 0 represents INTx (line interrupts), bit 1 MSI, bit 2 MSI-X. +Permitted interrupt types. +Bit 0 represents INTx (line interrupts), bit 1 MSI, and bit 2 MSI-X. The default is 7 (all allowed). -The driver will select the best possible type out of the allowed types by -itself. +The driver selects the best possible type out of the allowed types. .It Va hw.cxgbe.fw_install 0 prohibits the driver from installing a firmware on the card. 1 allows the driver to install a new firmware if internal driver @@ -236,7 +263,7 @@ long as it is compatible with the driver and is a different version than the one already on the card. The default is 1. .It Va hw.cxgbe.fl_pktshift -The number of bytes of padding inserted before the beginning of an Ethernet +Number of padding bytes inserted before the beginning of an Ethernet frame in the receive buffer. The default value of 2 ensures that the Ethernet payload (usually the IP header) is at a 4 byte aligned address. @@ -262,7 +289,25 @@ reaches a high threshold, 0 prohibits the hardware from emitting PAUSE frames. The default is 3 (both rx_pause and tx_pause = 1). This tunable establishes the default PAUSE settings for all ports. Settings can be displayed and controlled on a per-port basis via the -dev.cxgbe.X.pause_settings (dev.cxl.X.pause_settings for T5 cards) sysctl. +dev.<port>.X.pause_settings sysctl. +.It Va hw.cxgbe.fec +FEC (Forward Error Correction) settings. +0 diables FEC. +Bit 0 enables RS FEC, bit 1 enables BASE-R RS, bit 3 is reserved. +The default is -1 which lets the driver pick a value. +This tunable establishes the default FEC settings for all ports. +Settings can be displayed and controlled on a per-port basis via the +dev.<port>.X.fec sysctl. +.It Va hw.cxgbe.autoneg +Link autonegotiation settings. +This tunable establishes the default autonegotiation settings for all ports. +Settings can be displayed and controlled on a per-port basis via the +dev.<port>.X.autoneg sysctl. +0 disables autonegotiation. +1 enables autonegotiation. +The default is -1 which lets the driver pick a value. +dev.<port>.X.autoneg is -1 for port and module combinations that do not support +autonegotiation. .It Va hw.cxgbe.buffer_packing Allow the hardware to deliver multiple frames in the same receive buffer opportunistically. @@ -278,8 +323,8 @@ Sizes of rx clusters. Each of these must be set to one of the sizes available (usually 2048, 4096, 9216, and 16384) and largest_rx_cluster must be greater than or equal to safest_rx_cluster. The defaults are 16384 and 4096 respectively. -The driver will never attempt to allocate a receive buffer larger than -largest_rx_cluster and will fall back to allocating buffers of +The driver never attempts to allocate a receive buffer larger than +largest_rx_cluster and falls back to allocating buffers of safest_rx_cluster size if an allocation larger than safest_rx_cluster fails. Note that largest_rx_cluster merely establishes a ceiling -- the driver is allowed to allocate buffers of smaller sizes. @@ -289,8 +334,8 @@ A configuration file contains a recipe for partitioning and configuring the hardware resources on the card. This tunable is for specialized applications only and should not be used in normal operation. -The configuration profile currently in use is available in the dev.t4nex.X.cf -and dev.t4nex.X.cfcsum (dev.t5nex for T5 cards) sysctls. +The configuration profile currently in use is available in the dev.<nexus>.X.cf +and dev.<nexus>.X.cfcsum sysctls. .It Va hw.cxgbe.linkcaps_allowed .It Va hw.cxgbe.niccaps_allowed .It Va hw.cxgbe.toecaps_allowed @@ -304,7 +349,7 @@ capability. This tunable is for specialized applications only and should not be used in normal operation. The capabilities for which hardware resources have been reserved are listed in -dev.t4nex.X.*caps or dev.t5nex.X.*caps sysctls. +dev.<nexus>.X.*caps sysctls. .El .Sh SUPPORT For general information and support, @@ -331,6 +376,10 @@ Support for T5 cards first appeared in .Fx 9.2 and .Fx 10.0 . +Support for T6 cards first appeared in +.Fx 11.1 +and +.Fx 12.0 . .Sh AUTHORS .An -nosplit The diff --git a/share/man/man4/cxgbev.4 b/share/man/man4/cxgbev.4 index f4e3dc5..a442d14 100644 --- a/share/man/man4/cxgbev.4 +++ b/share/man/man4/cxgbev.4 @@ -31,12 +31,12 @@ .\" .\" $FreeBSD$ .\" -.Dd August 22, 2016 +.Dd December 22, 2016 .Dt CXGBEV 4 .Os .Sh NAME .Nm cxgbev -.Nd "Chelsio T4 and T5 based 40Gb, 10Gb, and 1Gb Ethernet VF driver" +.Nd "Chelsio T4-, T5-, and T6-based 100Gb, 40Gb, 25Gb, 10Gb, and 1Gb Ethernet VF driver" .Sh SYNOPSIS To compile this driver into the kernel, place the following lines in your @@ -56,7 +56,8 @@ if_cxgbev_load="YES" The .Nm driver provides support for Virtual Functions on PCI Express Ethernet adapters -based on the Chelsio Terminator 4 and Terminator 5 ASICs (T4 and T5). +based on the Chelsio Terminator 4, Terminator 5, and Terminator 6 ASICs +(T4, T5, and T6). The driver supports Jumbo Frames, Transmit/Receive checksum offload, TCP segmentation offload (TSO), Large Receive Offload (LRO), VLAN tag insertion/extraction, VLAN checksum offload, VLAN TSO, and @@ -65,18 +66,49 @@ For further hardware information and questions related to hardware requirements, see .Pa http://www.chelsio.com/ . .Pp -Note that ports of T5 VFs are named cxlv and attach to a t5vf parent device -(in contrast to ports named cxgbev that attach to a t4vf parent for a T4 VF). -Loader tunables with the hw.cxgbe prefix apply to both T4 and T5 VFs. -The Physical Function driver for T4 and T5 adapters shares these tunables. -The sysctl MIBs are at dev.t5vf and dev.cxlv for T5 cards and at dev.t4vf and -dev.cxgbev for T4 cards. +The +.Nm +driver uses different names for devices based on the associated ASIC: +.Bl -column -offset indent "ASIC" "Port Name" +.It Sy ASIC Ta Sy Port Name Ta Sy Parent Device +.It T4 Ta cxgbev Ta t4vf +.It T5 Ta cxlv Ta t5vf +.It T6 Ta ccv Ta t6vf +.El +.Pp +Loader tunables with the hw.cxgbe prefix apply to VFs from all cards. +The Physical Function driver for Chelsio Terminator adapters shares these +tunables. +The driver provides sysctl MIBs for both ports and parent devices using +the names above. +For example, a T5 VF provides port MIBs under dev.cxlv and +parent device MIBs under dev.t5vf. +References to sysctl MIBs in the remainder of this page use +dev.<port> for port MIBs and dev.<nexus> for parent device MIBs. .Pp For more information on configuring this device, see .Xr ifconfig 8 . .Sh HARDWARE The .Nm +driver supports Virtual Functions on 100Gb and 25Gb Ethernet adapters +based on the T6 ASIC: +.Pp +.Bl -bullet -compact +.It +Chelsio T6225-CR +.It +Chelsio T6225-SO-CR +.It +Chelsio T62100-LP-CR +.It +Chelsio T62100-SO-CR +.It +Chelsio T62100-CR +.El +.Pp +The +.Nm driver supports Virtual Functions on 40Gb, 10Gb and 1Gb Ethernet adapters based on the T5 ASIC: .Pp @@ -141,69 +173,68 @@ prompt before booting the kernel or stored in .Xr loader.conf 5 . .Bl -tag -width indent .It Va hw.cxgbe.ntxq10g -The number of tx queues to use for a 10Gb or 40Gb port. +Number of tx queues used for a 10Gb or higher-speed port. The default is 16 or the number of CPU cores in the system, whichever is less. .It Va hw.cxgbe.nrxq10g -The number of rx queues to use for a 10Gb or 40Gb port. +Number of rx queues used for a 10Gb or higher-speed port. The default is 8 or the number of CPU cores in the system, whichever is less. .It Va hw.cxgbe.ntxq1g -The number of tx queues to use for a 1Gb port. +Number of tx queues used for a 1Gb port. The default is 4 or the number of CPU cores in the system, whichever is less. .It Va hw.cxgbe.nrxq1g -The number of rx queues to use for a 1Gb port. +Number of rx queues used for a 1Gb port. The default is 2 or the number of CPU cores in the system, whichever is less. .It Va hw.cxgbe.holdoff_timer_idx_10G .It Va hw.cxgbe.holdoff_timer_idx_1G -The timer index value to use to delay interrupts. +Timer index value used to delay interrupts. The holdoff timer list has the values 1, 5, 10, 50, 100, and 200 by default (all values are in microseconds) and the index selects a value from this list. The default value is 1 which means the timer value is 5us. Different interfaces can be assigned different values at any time via the -dev.cxgbev.X.holdoff_tmr_idx or dev.cxlv.X.holdoff_tmr_idx sysctl. +dev.<port>.X.holdoff_tmr_idx sysctl. .It Va hw.cxgbe.holdoff_pktc_idx_10G .It Va hw.cxgbe.holdoff_pktc_idx_1G -The packet-count index value to use to delay interrupts. -The packet-count list has the values 1, 8, 16, and 32 by default +Packet-count index value used to delay interrupts. +The packet-count list has the values 1, 8, 16, and 32 by default, and the index selects a value from this list. The default value is -1 which means packet counting is disabled and interrupts are generated based solely on the holdoff timer value. Different interfaces can be assigned different values via the -dev.cxgbev.X.holdoff_pktc_idx or dev.cxlv.X.holdoff_pktc_idx sysctl. +dev.<port>.X.holdoff_pktc_idx sysctl. This sysctl works only when the interface has never been marked up (as done by ifconfig up). .It Va hw.cxgbe.qsize_txq -The size, in number of entries, of the descriptor ring used for a tx -queue. +Number of entries in a transmit queue's descriptor ring. A buf_ring of the same size is also allocated for additional software queuing. See .Xr ifnet 9 . The default value is 1024. Different interfaces can be assigned different values via the -dev.cxgbev.X.qsize_txq sysctl or dev.cxlv.X.qsize_txq sysctl. +dev.<port>.X.qsize_txq sysctl. This sysctl works only when the interface has never been marked up (as done by ifconfig up). .It Va hw.cxgbe.qsize_rxq -The size, in number of entries, of the descriptor ring used for an -rx queue. +Number of entries in a receive queue's descriptor ring. The default value is 1024. Different interfaces can be assigned different values via the -dev.cxgbev.X.qsize_rxq or dev.cxlv.X.qsize_rxq sysctl. +dev.<port>.X.qsize_rxq sysctl. This sysctl works only when the interface has never been marked up (as done by ifconfig up). .It Va hw.cxgbe.interrupt_types -The interrupt types that the driver is allowed to use. -Bit 0 represents INTx (line interrupts), bit 1 MSI, bit 2 MSI-X. +Permitted interrupt types. +Bit 0 represents INTx (line interrupts), bit 1 MSI, and bit 2 MSI-X. The default is 7 (all allowed). -The driver will select the best possible type out of the allowed types by -itself. +The driver selects the best possible type out of the allowed types. +Note that Virtual Functions do not support INTx interrupts and fail +to attach if neither MSI nor MSI-X are enabled. .It Va hw.cxgbe.fl_pktshift -The number of bytes of padding inserted before the beginning of an Ethernet +Number of padding bytes inserted before the beginning of an Ethernet frame in the receive buffer. The default value of 2 ensures that the Ethernet payload (usually the IP header) is at a 4 byte aligned address. @@ -230,8 +261,8 @@ Each of these must be set to one of the sizes available (usually 2048, 4096, 9216, and 16384) and largest_rx_cluster must be greater than or equal to safest_rx_cluster. The defaults are 16384 and 4096 respectively. -The driver will never attempt to allocate a receive buffer larger than -largest_rx_cluster and will fall back to allocating buffers of +The driver never attempts to allocate a receive buffer larger than +largest_rx_cluster and falls back to allocating buffers of safest_rx_cluster size if an allocation larger than safest_rx_cluster fails. Note that largest_rx_cluster merely establishes a ceiling -- the driver is allowed to allocate buffers of smaller sizes. @@ -239,8 +270,8 @@ allowed to allocate buffers of smaller sizes. .Pp Certain settings and resources for Virtual Functions are dictated by the parent Physical Function driver. -For example, the Physical Function driver limits the number of queues a -Virtual Function is permitted to use. +For example, the Physical Function driver limits the number of queues +available to a Virtual Function. Some of these limits can be adjusted in the firmware configuration file used with the Physical Function driver. .Pp @@ -258,7 +289,7 @@ to 1 .Pc . .Pp The VF driver currently depends on the PF driver. -As a result, loading the VF driver will also load the PF driver as a +As a result, loading the VF driver also loads the PF driver as a dependency. .Sh SUPPORT For general information and support, @@ -279,6 +310,8 @@ email all the specific information related to the issue to The .Nm device driver first appeared in +.Fx 11.1 +and .Fx 12.0 . .Sh AUTHORS .An -nosplit diff --git a/share/man/man4/hv_vss.4 b/share/man/man4/hv_vss.4 new file mode 100644 index 0000000..4db54e3 --- /dev/null +++ b/share/man/man4/hv_vss.4 @@ -0,0 +1,366 @@ +.\" Copyright (c) 2016 Microsoft Corp. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.Dd October 12, 2016 +.Dt HV_VSS 4 +.Os +.Sh NAME +.Nm hv_vss +.Nd Hyper-V Volume Shadow Copy Service API +.Sh SYNOPSIS +.In dev/hyperv/hv_snapshot.h +.Bd -literal +#define VSS_SUCCESS 0x00000000 +#define VSS_FAIL 0x00000001 + +enum hv_vss_op_t { + HV_VSS_NONE = 0, + HV_VSS_CHECK, + HV_VSS_FREEZE, + HV_VSS_THAW, + HV_VSS_COUNT +}; + +struct hv_vss_opt_msg { + uint32_t opt; /* operation */ + uint32_t status; /* 0 for success, 1 for error */ + uint64_t msgid; /* an ID used to identify the transaction */ + uint8_t reserved[48]; /* reserved values are all zeroes */ +}; +.Ed +.Sh DESCRIPTION +The freeze or thaw functionality of application is important to guarantee +the application consistent backup. On windows platform, VSS is defined to do +live backup. But for VM guest running on Hyper-V, the corresponding VSS is +not defined yet. For example, a running database server instance, it knows when the +applications' freeze/thaw should start or finish. But it is not aware of +the freeze/thaw notification from Hyper-V host. The +.Nm +is designed to notify application freeze/thaw request. +Thus, it plays a role of broker to forward the freeze/thaw command from Hyper-V host +to userland application if it registered VSS service on +.Fx +VM, and sends the result back to Hyper-V host. +.Pp +Generally, +.Xr hv_vss_daemon 8 +takes the responsiblity to freeze/thaw UFS file system, +and it is automatically launched after system boots. When Hyper-V host wants to +take a snapshot of the +.Fx +VM, it will first send VSS capability check to +.Fx +VM. The +.Nm +received the request and forward the request to userland application if it is +registered. Only after +.Nm +received the VSS_SUCCESS response from application, the +.Xr hv_vss_daemon 8 +will be informed to check whether file system freeze/thaw is supported. Any error +occurs during this period, +.Nm +will inform Hyper-V host that VSS is not supported. In addition, there is a default +timeout limit before sending response to Hyper-V host. +If the total response time from application and +.Xr hv_vss_daemon 8 +exceeds this value, timeout +will occurs and VSS unsupported is responsed to Hyper-V host. +.Pp +After Hyper-V host confirmed the +.Fx +VM supports VSS, it will send freeze request to VM, and +.Nm +will first forward it to application. After application finished freezing, it should +inform +.Nm +and file system level freezing will be triggered by +.Xr hv_vss_daemon 8 . After all freezing +on both application and +.Xr hv_vss_daemon 8 +were finished, the +.Nm +will inform Hyper-V host that freezing is done. Of course, there is a timeout limit as +same as VSS capability is set to make sure freezing on +.Fx +VM is not hang. If there is any error occurs or timeout happened, the freezing is failed +on Hyper-V side. +.Pp +Hyper-V host will send thaw request after taking the snapshot, typically, this period is +very short in order not to block the running application. +.Nm +firstly thaw the file system by notifying +.Xr hv_vss_daemon 8 , +then notifies user registered +application. There is also a timeout check before sending response to Hyper-V host. +.Pp +All the default timeout limit used in VSS capability check, freeze or thaw is the same. +It is 15 seconds currently. +.Sh NOTES +.Nm +only support UFS currently. If any of file system partition is non UFS, the VSS capability +check will fail. If application does not register VSS, +.Nm +only support backup for file system level consistent. The device should be closed before it +was opened again. If you want to simultaneously open "/dev/hv_appvss_dev" two or more times, +an error (-1) will be returned, and errno was set. +.Pp +If +.Xr hv_vss_daemon 8 +was killed after system boots, the VSS functionality will not work. +.Sh EXAMPLES +The following is a complete example which does nothing except for waiting 2 seconds when +receiving those notifications from +.Nm +.Bd -literal +#include <string.h> +#include <stdio.h> +#include <sys/ioctl.h> +#include <sys/param.h> +#include <sys/ucred.h> +#include <sys/mount.h> +#include <sys/types.h> +#include <unistd.h> +#include <stdlib.h> +#include <poll.h> +#include <stdint.h> +#include <syslog.h> +#include <errno.h> +#include <err.h> +#include <fcntl.h> +#include <ufs/ffs/fs.h> +#include <paths.h> +#include <sys/ioccom.h> +#include <dev/hyperv/hv_snapshot.h> + +#define UNDEF_FREEZE_THAW (0) +#define FREEZE (1) +#define THAW (2) +#define CHECK (3) + +#define VSS_LOG(priority, format, args...) do { \\ + if (is_debugging == 1) { \\ + if (is_daemon == 1) \\ + syslog(priority, format, ## args); \\ + else \\ + printf(format, ## args); \\ + } else { \\ + if (priority < LOG_DEBUG) { \\ + if (is_daemon == 1) \\ + syslog(priority, format, ## args); \\ + else \\ + printf(format, ## args); \\ + } \\ + } \\ + } while(0) + +#define CHECK_TIMEOUT 1 +#define CHECK_FAIL 2 +#define FREEZE_TIMEOUT 1 +#define FREEZE_FAIL 2 +#define THAW_TIMEOUT 1 +#define THAW_FAIL 2 + +static int is_daemon = 1; +static int is_debugging = 0; +static int simu_opt_waiting = 2; // seconds + +#define GENERIC_OPT(TIMEOUT, FAIL) \\ + do { \\ + sleep(simu_opt_waiting); \\ + if (opt == CHECK_TIMEOUT) { \\ + sleep(simu_opt_waiting * 10); \\ + VSS_LOG(LOG_INFO, "%s timeout simulation\\n", \\ + __func__); \\ + return (0); \\ + } else if (opt == CHECK_FAIL) { \\ + VSS_LOG(LOG_INFO, "%s failure simulation\\n", \\ + __func__); \\ + return (CHECK_FAIL); \\ + } else { \\ + VSS_LOG(LOG_INFO, "%s success simulation\\n", \\ + __func__); \\ + return (0); \\ + } \\ + } while (0) + +static int +check(int opt) +{ + GENERIC_OPT(CHECK_TIMEOUT, CHECK_FAIL); +} + +static int +freeze(int opt) +{ + GENERIC_OPT(FREEZE_TIMEOUT, FREEZE_FAIL); +} + +static int +thaw(int opt) +{ + GENERIC_OPT(THAW_TIMEOUT, THAW_FAIL); +} + +static void usage(const char* cmd) { + fprintf(stderr, + "%s -f <0|1|2>: simulate app freeze." + " 0: successful, 1: freeze timeout, 2: freeze failed\\n" + " -c <0|1|2>: simulate vss feature check" + " -t <0|1|2>: simulate app thaw." + " 0: successful, 1: freeze timeout, 2: freeze failed\\n" + " -d : enable debug mode\\n" + " -n : run this tool under non-daemon mode\\n", cmd); +} + +int +main(int argc, char* argv[]) { + int ch, freezesimuop = 0, thawsimuop = 0, checksimuop = 0, fd, r, error; + uint32_t op; + struct pollfd app_vss_fd[1]; + struct hv_vss_opt_msg userdata; + + while ((ch = getopt(argc, argv, "f:c:t:dnh")) != -1) { + switch (ch) { + case 'f': + /* Run as regular process for debugging purpose. */ + freezesimuop = (int)strtol(optarg, NULL, 10); + break; + case 't': + thawsimuop = (int)strtol(optarg, NULL, 10); + break; + case 'c': + checksimuop = (int)strtol(optarg, NULL, 10); + break; + case 'd': + is_debugging = 1; + break; + case 'n': + is_daemon = 0; + break; + case 'h': + default: + usage(argv[0]); + exit(0); + } + } + + openlog("APPVSS", 0, LOG_USER); + /* Become daemon first. */ + if (is_daemon == 1) + daemon(1, 0); + else + VSS_LOG(LOG_DEBUG, "Run as regular process.\\n"); + + VSS_LOG(LOG_INFO, "HV_VSS starting; pid is: %d\\n", getpid()); + + fd = open(VSS_DEV(APP_VSS_DEV_NAME), O_RDWR); + if (fd < 0) { + VSS_LOG(LOG_ERR, "Fail to open %s, error: %d %s\\n", + VSS_DEV(APP_VSS_DEV_NAME), errno, strerror(errno)); + exit(EXIT_FAILURE); + } + app_vss_fd[0].fd = fd; + app_vss_fd[0].events = POLLIN | POLLRDNORM; + + while (1) { + r = poll(app_vss_fd, 1, INFTIM); + + VSS_LOG(LOG_DEBUG, "poll returned r = %d, revent = 0x%x\\n", + r, app_vss_fd[0].revents); + + if (r == 0 || (r < 0 && errno == EAGAIN) || + (r < 0 && errno == EINTR)) { + /* Nothing to read */ + continue; + } + + if (r < 0) { + /* + * For poll return failure other than EAGAIN, + * we want to exit. + */ + VSS_LOG(LOG_ERR, "Poll failed.\\n"); + perror("poll"); + exit(EIO); + } + + /* Read from character device */ + error = ioctl(fd, IOCHVVSSREAD, &userdata); + if (error < 0) { + VSS_LOG(LOG_ERR, "Read failed.\\n"); + perror("pread"); + exit(EIO); + } + + if (userdata.status != 0) { + VSS_LOG(LOG_ERR, "data read error\\n"); + continue; + } + + op = userdata.opt; + + switch (op) { + case HV_VSS_CHECK: + error = check(checksimuop); + break; + case HV_VSS_FREEZE: + error = freeze(freezesimuop); + break; + case HV_VSS_THAW: + error = thaw(thawsimuop); + break; + default: + VSS_LOG(LOG_ERR, "Illegal operation: %d\\n", op); + error = VSS_FAIL; + } + if (error) + userdata.status = VSS_FAIL; + else + userdata.status = VSS_SUCCESS; + error = ioctl(fd, IOCHVVSSWRITE, &userdata); + if (error != 0) { + VSS_LOG(LOG_ERR, "Fail to write to device\\n"); + exit(EXIT_FAILURE); + } else { + VSS_LOG(LOG_INFO, "Send response %d for %s to kernel\\n", + userdata.status, op == HV_VSS_FREEZE ? "Freeze" : + (op == HV_VSS_THAW ? "Thaw" : "Check")); + } + } + return 0; +} +.Sh SEE ALSO +.Xr hv_vss_daemon 8 , +.Xr hv_utils 4 +.Sh HISTORY +The daemon was introduced in October 2016 and developed by Microsoft Corp. +.Sh AUTHORS +.An -nosplit +.Fx +support for +.Nm +was first added by +.An Microsoft BSD Integration Services Team Aq Mt bsdic@microsoft.com . diff --git a/share/man/man4/isp.4 b/share/man/man4/isp.4 index da6b776..f48dc80 100644 --- a/share/man/man4/isp.4 +++ b/share/man/man4/isp.4 @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 9, 2015 +.Dd December 20, 2016 .Dt ISP 4 .Os .Sh NAME @@ -39,13 +39,15 @@ kernel configuration file: .Bd -ragged -offset indent .Cd "device scbus" .Cd "device isp" +.Cd "device ispfw" .Ed .Pp Alternatively, to load the driver as a -module at boot time, place the following line in +module at boot time, place the following lines in .Xr loader.conf 5 : .Bd -literal -offset indent isp_load="YES" +ispfw_load="YES" .Ed .Sh DESCRIPTION This driver provides access to @@ -62,6 +64,30 @@ Fibre Channel supports initiator and target modes of FCP SCSI profile, utilizing Class 3 and Class 2 (2200 and later) connections. Support is available for Public and Private loops, Point-to-Point and Fabric connections. +.Pp +FC-Tape is supported on 4Gb (2400) and newer controllers. +FC-Tape is highly recommended for connections to tape drives that support +it. +It encompasses four elements from the the T-10 FCP-4 specification: +.Bl -bullet -offset indent +.It +Precise Delivery of Commands +.It +Confirmed Completion of FCP I/O Operations +.It +Retransmission of Unsuccessfully Transmitted IUs +.It +Task Retry Identification +.El +.Pp +Together these features allow for link level error recovery with tape +devices. +Without it, an initiator cannot, for instance, tell whether a tape write +command that has timed out resulted in all, part or none of the data going to +the tape drive. +FC-Tape is automatically enabled when connecting controller that supports +it to a target that supports it. +It may be disabled using configuration and hint options described below. .Sh FIRMWARE Firmware loading is supported if the .Xr ispfw 4 @@ -120,6 +146,13 @@ Target mode support for Fibre Channel adapters may be enabled with the .Cd options ISP_TARGET_MODE .Pp option. +.Pp +To disable FC-Tape, use the following configuration option: +.Pp +.Cd options ISP_FCTAPE_OFF +.Pp +Note that even if the ISP_FCTAPE_OFF option is used, it may be overridden +by the fctape hint described below. .Sh BOOT OPTIONS The following options are switchable by setting values in .Pa /boot/device.hints . @@ -169,6 +202,11 @@ A hint value for a driver debug level (see the file for the values. .It Va hint.isp.0.vports A hint to create specified number of additional virtual ports. +.It Va hint.isp.0.nofctape +Set this to 1 to disable FC-Tape operation on the given isp instance. +.It Va hint.isp.0.fctape +Set this to 1 to enable FC-Tape operation on the given isp instance for +targets that support it. .El .Sh SYSCTL OPTIONS .Bl -tag -width indent diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5 index 61a7c44..ba04a6e 100644 --- a/share/man/man5/src.conf.5 +++ b/share/man/man5/src.conf.5 @@ -1,7 +1,7 @@ .\" DO NOT EDIT-- this file is automatically generated. -.\" from FreeBSD: stable/10/tools/build/options/makeman 288396 2015-09-29 21:45:23Z bdrewery +.\" from FreeBSD: stable/10/tools/build/options/makeman 291805 2015-12-04 18:32:39Z bdrewery .\" $FreeBSD$ -.Dd October 25, 2015 +.Dd January 6, 2017 .Dt SRC.CONF 5 .Os .Sh NAME @@ -872,16 +872,6 @@ Infiniband software stack. .It Va WITHOUT_OPENSSH .\" from FreeBSD: stable/10/tools/build/options/WITHOUT_OPENSSH 156932 2006-03-21 07:50:50Z ru Set to not build OpenSSH. -.It Va WITH_OPENSSH_NONE_CIPHER -.\" from FreeBSD: stable/10/tools/build/options/WITH_OPENSSH_NONE_CIPHER 245527 2013-01-17 01:51:04Z bz -Set to include the "None" cipher support in OpenSSH and its libraries. -Additional adjustments may need to be done to system configuration -files, such as -.Xr sshd_config 5 , -to enable this cipher. -Please see -.Pa /usr/src/crypto/openssh/README.hpn -for full details. .It Va WITHOUT_OPENSSL .\" from FreeBSD: stable/10/tools/build/options/WITHOUT_OPENSSL 156932 2006-03-21 07:50:50Z ru Set to not build OpenSSL. @@ -989,10 +979,12 @@ This includes .Xr rsh 1 , etc. .It Va WITHOUT_RCS -.\" from FreeBSD: stable/10/tools/build/options/WITHOUT_RCS 256198 2013-10-09 17:07:20Z gjb +.\" from FreeBSD: stable/10/tools/build/options/WITHOUT_RCS 292280 2015-12-15 18:01:05Z ngie Set to not build .Xr rcs 1 -and related utilities. +, +.Xr etcupdate 8 +, and related utilities. .It Va WITHOUT_RESCUE .\" from FreeBSD: stable/10/tools/build/options/WITHOUT_RESCUE 156932 2006-03-21 07:50:50Z ru Set to not build diff --git a/share/mk/bsd.files.mk b/share/mk/bsd.files.mk index 2f21ed9..4178fbc 100644 --- a/share/mk/bsd.files.mk +++ b/share/mk/bsd.files.mk @@ -9,15 +9,13 @@ __<bsd.files.mk>__: FILESGROUPS?= FILES -_FILESGROUPS= ${FILESGROUPS:C,[/*],_,g:u} - -.for group in ${_FILESGROUPS} +.for group in ${FILESGROUPS} buildfiles: ${${group}} .endfor all: buildfiles -.for group in ${_FILESGROUPS} +.for group in ${FILESGROUPS} .if defined(${group}) && !empty(${group}) installfiles: installfiles-${group} diff --git a/share/mk/bsd.incs.mk b/share/mk/bsd.incs.mk index 1b5f17f..74c378b 100644 --- a/share/mk/bsd.incs.mk +++ b/share/mk/bsd.incs.mk @@ -8,10 +8,8 @@ INCSGROUPS?= INCS -_INCSGROUPS= ${INCSGROUPS:C,[/*],_,g} - .if !target(buildincludes) -.for group in ${_INCSGROUPS} +.for group in ${INCSGROUPS} buildincludes: ${${group}} .endfor .endif @@ -19,7 +17,7 @@ buildincludes: ${${group}} all: buildincludes .if !target(installincludes) -.for group in ${_INCSGROUPS} +.for group in ${INCSGROUPS} .if defined(${group}) && !empty(${group}) ${group}OWN?= ${BINOWN} diff --git a/sys/amd64/amd64/support.S b/sys/amd64/amd64/support.S index bc23e90..c8b6253 100644 --- a/sys/amd64/amd64/support.S +++ b/sys/amd64/amd64/support.S @@ -65,17 +65,10 @@ END(bzero) /* Address: %rdi */ ENTRY(pagezero) PUSH_FRAME_POINTER - movq $-PAGE_SIZE,%rdx - subq %rdx,%rdi + movq $PAGE_SIZE/8,%rcx xorl %eax,%eax -1: - movnti %rax,(%rdi,%rdx) - movnti %rax,8(%rdi,%rdx) - movnti %rax,16(%rdi,%rdx) - movnti %rax,24(%rdi,%rdx) - addq $32,%rdx - jne 1b - sfence + rep + stosq POP_FRAME_POINTER ret END(pagezero) diff --git a/sys/amd64/amd64/trap.c b/sys/amd64/amd64/trap.c index f487c44..ab52a7e 100644 --- a/sys/amd64/amd64/trap.c +++ b/sys/amd64/amd64/trap.c @@ -812,11 +812,11 @@ trap_fatal(frame, eva) #endif if (type == T_PAGEFLT) { printf("fault virtual address = 0x%lx\n", eva); - printf("fault code = %s %s %s%s, %s\n", + printf("fault code = %s %s %s, %s\n", code & PGEX_U ? "user" : "supervisor", code & PGEX_W ? "write" : "read", code & PGEX_I ? "instruction" : "data", - code & PGEX_RSV ? " rsv" : "", + code & PGEX_RSV ? "reserved bits in PTE" : code & PGEX_P ? "protection violation" : "page not present"); } printf("instruction pointer = 0x%lx:0x%lx\n", @@ -971,7 +971,7 @@ amd64_syscall(struct thread *td, int traced) } KASSERT(PCB_USER_FPU(td->td_pcb), - ("System call %s returing with kernel FPU ctx leaked", + ("System call %s returning with kernel FPU ctx leaked", syscallname(td->td_proc, sa.code))); KASSERT(td->td_pcb->pcb_save == get_pcb_user_save_td(td), ("System call %s returning with mangled pcb_save", diff --git a/sys/cam/cam.h b/sys/cam/cam.h index 5b8a5e0..2b79979 100644 --- a/sys/cam/cam.h +++ b/sys/cam/cam.h @@ -81,7 +81,7 @@ typedef enum { CAM_RL_VALUES } cam_rl; /* - * The generation number is incremented everytime a new entry is entered into + * The generation number is incremented every time a new entry is entered into * the queue giving round robin per priority level scheduling. */ typedef struct { @@ -122,7 +122,7 @@ typedef enum { enum { SF_RETRY_UA = 0x01, /* Retry UNIT ATTENTION conditions. */ SF_NO_PRINT = 0x02, /* Never print error status. */ - SF_QUIET_IR = 0x04, /* Be quiet about Illegal Request reponses */ + SF_QUIET_IR = 0x04, /* Be quiet about Illegal Request responses */ SF_PRINT_ALWAYS = 0x08, /* Always print error status. */ SF_NO_RECOVERY = 0x10, /* Don't do active error recovery. */ SF_NO_RETRY = 0x20, /* Don't do any retries. */ diff --git a/sys/cam/cam_periph.c b/sys/cam/cam_periph.c index f3c06f0..9a59155 100644 --- a/sys/cam/cam_periph.c +++ b/sys/cam/cam_periph.c @@ -1604,7 +1604,7 @@ sense_error_done: /* * Generic error handler. Peripheral drivers usually filter - * out the errors that they handle in a unique mannor, then + * out the errors that they handle in a unique manner, then * call this function. */ int diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c index 423e0ad..3cf307a 100644 --- a/sys/cam/cam_xpt.c +++ b/sys/cam/cam_xpt.c @@ -867,7 +867,7 @@ xpt_init(void *dummy) xsoftc.boot_delay = CAM_BOOT_DELAY; #endif /* - * The xpt layer is, itself, the equivelent of a SIM. + * The xpt layer is, itself, the equivalent of a SIM. * Allow 16 ccbs in the ccb pool for it. This should * give decent parallelism when we probe busses and * perform other XPT functions. @@ -896,7 +896,7 @@ xpt_init(void *dummy) /* * Looking at the XPT from the SIM layer, the XPT is - * the equivelent of a peripheral driver. Allocate + * the equivalent of a peripheral driver. Allocate * a peripheral driver entry for us. */ if ((status = xpt_create_path(&path, NULL, CAM_XPT_PATH_ID, @@ -1096,7 +1096,7 @@ xpt_denounce_periph(struct cam_periph *periph) int xpt_getattr(char *buf, size_t len, const char *attr, struct cam_path *path) { - int ret = -1, l; + int ret = -1, l, o; struct ccb_dev_advinfo cdai; struct scsi_vpd_id_descriptor *idd; @@ -1136,6 +1136,12 @@ xpt_getattr(char *buf, size_t len, const char *attr, struct cam_path *path) if (idd == NULL) idd = scsi_get_devid((struct scsi_vpd_device_id *)cdai.buf, cdai.provsiz, scsi_devid_is_lun_eui64); + if (idd == NULL) + idd = scsi_get_devid((struct scsi_vpd_device_id *)cdai.buf, + cdai.provsiz, scsi_devid_is_lun_uuid); + if (idd == NULL) + idd = scsi_get_devid((struct scsi_vpd_device_id *)cdai.buf, + cdai.provsiz, scsi_devid_is_lun_md5); } else idd = NULL; if (idd == NULL) @@ -1162,6 +1168,17 @@ xpt_getattr(char *buf, size_t len, const char *attr, struct cam_path *path) buf[l] = 0; } else ret = EFAULT; + } else if ((idd->id_type & SVPD_ID_TYPE_MASK) == SVPD_ID_TYPE_UUID + && idd->identifier[0] == 0x10) { + if ((idd->length - 2) * 2 + 4 < len) { + for (l = 2, o = 0; l < idd->length; l++) { + if (l == 6 || l == 8 || l == 10 || l == 12) + o += sprintf(buf + o, "-"); + o += sprintf(buf + o, "%02x", + idd->identifier[l]); + } + } else + ret = EFAULT; } else { if (idd->length * 2 < len) { for (l = 0; l < idd->length; l++) diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c index e5c12c1..1a24641 100644 --- a/sys/cam/ctl/ctl.c +++ b/sys/cam/ctl/ctl.c @@ -93,25 +93,6 @@ struct ctl_softc *control_softc = NULL; * Note that these are default values only. The actual values will be * filled in when the user does a mode sense. */ -const static struct copan_debugconf_subpage debugconf_page_default = { - DBGCNF_PAGE_CODE | SMPH_SPF, /* page_code */ - DBGCNF_SUBPAGE_CODE, /* subpage */ - {(sizeof(struct copan_debugconf_subpage) - 4) >> 8, - (sizeof(struct copan_debugconf_subpage) - 4) >> 0}, /* page_length */ - DBGCNF_VERSION, /* page_version */ - {CTL_TIME_IO_DEFAULT_SECS>>8, - CTL_TIME_IO_DEFAULT_SECS>>0}, /* ctl_time_io_secs */ -}; - -const static struct copan_debugconf_subpage debugconf_page_changeable = { - DBGCNF_PAGE_CODE | SMPH_SPF, /* page_code */ - DBGCNF_SUBPAGE_CODE, /* subpage */ - {(sizeof(struct copan_debugconf_subpage) - 4) >> 8, - (sizeof(struct copan_debugconf_subpage) - 4) >> 0}, /* page_length */ - 0, /* page_version */ - {0xff,0xff}, /* ctl_time_io_secs */ -}; - const static struct scsi_da_rw_recovery_page rw_er_page_default = { /*page_code*/SMS_RW_ERROR_RECOVERY_PAGE, /*page_length*/sizeof(struct scsi_da_rw_recovery_page) - 2, @@ -129,12 +110,12 @@ const static struct scsi_da_rw_recovery_page rw_er_page_default = { const static struct scsi_da_rw_recovery_page rw_er_page_changeable = { /*page_code*/SMS_RW_ERROR_RECOVERY_PAGE, /*page_length*/sizeof(struct scsi_da_rw_recovery_page) - 2, - /*byte3*/0, + /*byte3*/SMS_RWER_PER, /*read_retry_count*/0, /*correction_span*/0, /*head_offset_count*/0, /*data_strobe_offset_cnt*/0, - /*byte8*/0, + /*byte8*/SMS_RWER_LBPERE, /*write_retry_count*/0, /*reserved2*/0, /*recovery_time_limit*/{0, 0}, @@ -206,6 +187,24 @@ const static struct scsi_rigid_disk_page rigid_disk_page_changeable = { /*reserved2*/ {0, 0} }; +const static struct scsi_da_verify_recovery_page verify_er_page_default = { + /*page_code*/SMS_VERIFY_ERROR_RECOVERY_PAGE, + /*page_length*/sizeof(struct scsi_da_verify_recovery_page) - 2, + /*byte3*/0, + /*read_retry_count*/0, + /*reserved*/{ 0, 0, 0, 0, 0, 0 }, + /*recovery_time_limit*/{0, 0}, +}; + +const static struct scsi_da_verify_recovery_page verify_er_page_changeable = { + /*page_code*/SMS_VERIFY_ERROR_RECOVERY_PAGE, + /*page_length*/sizeof(struct scsi_da_verify_recovery_page) - 2, + /*byte3*/SMS_VER_PER, + /*read_retry_count*/0, + /*reserved*/{ 0, 0, 0, 0, 0, 0 }, + /*recovery_time_limit*/{0, 0}, +}; + const static struct scsi_caching_page caching_page_default = { /*page_code*/SMS_CACHING_PAGE, /*page_length*/sizeof(struct scsi_caching_page) - 2, @@ -254,7 +253,7 @@ const static struct scsi_control_page control_page_changeable = { /*page_code*/SMS_CONTROL_MODE_PAGE, /*page_length*/sizeof(struct scsi_control_page) - 2, /*rlec*/SCP_DSENSE, - /*queue_flags*/SCP_QUEUE_ALG_MASK, + /*queue_flags*/SCP_QUEUE_ALG_MASK | SCP_NUAR, /*eca_and_aen*/SCP_SWP, /*flags4*/0, /*aen_holdoff_period*/{0, 0}, @@ -279,25 +278,26 @@ const static struct scsi_control_ext_page control_ext_page_changeable = { /*page_length*/{CTL_CEM_LEN >> 8, CTL_CEM_LEN}, /*flags*/0, /*prio*/0, - /*max_sense*/0 + /*max_sense*/0xff }; const static struct scsi_info_exceptions_page ie_page_default = { /*page_code*/SMS_INFO_EXCEPTIONS_PAGE, /*page_length*/sizeof(struct scsi_info_exceptions_page) - 2, - /*info_flags*/SIEP_FLAGS_DEXCPT, - /*mrie*/0, + /*info_flags*/SIEP_FLAGS_EWASC, + /*mrie*/SIEP_MRIE_NO, /*interval_timer*/{0, 0, 0, 0}, - /*report_count*/{0, 0, 0, 0} + /*report_count*/{0, 0, 0, 1} }; const static struct scsi_info_exceptions_page ie_page_changeable = { /*page_code*/SMS_INFO_EXCEPTIONS_PAGE, /*page_length*/sizeof(struct scsi_info_exceptions_page) - 2, - /*info_flags*/0, - /*mrie*/0, - /*interval_timer*/{0, 0, 0, 0}, - /*report_count*/{0, 0, 0, 0} + /*info_flags*/SIEP_FLAGS_EWASC | SIEP_FLAGS_DEXCPT | SIEP_FLAGS_TEST | + SIEP_FLAGS_LOGERR, + /*mrie*/0x0f, + /*interval_timer*/{0xff, 0xff, 0xff, 0xff}, + /*report_count*/{0xff, 0xff, 0xff, 0xff} }; #define CTL_LBPM_LEN (sizeof(struct ctl_logical_block_provisioning_page) - 4) @@ -332,7 +332,7 @@ const static struct ctl_logical_block_provisioning_page lbp_page_changeable = {{ /*page_code*/SMS_INFO_EXCEPTIONS_PAGE | SMPH_SPF, /*subpage_code*/0x02, /*page_length*/{CTL_LBPM_LEN >> 8, CTL_LBPM_LEN}, - /*flags*/0, + /*flags*/SLBPP_SITUA, /*reserved*/{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /*descr*/{}}, {{/*flags*/0, @@ -4061,6 +4061,26 @@ ctl_init_page_index(struct ctl_lun *lun) (uint8_t *)lun->mode_pages.rigid_disk_page; break; } + case SMS_VERIFY_ERROR_RECOVERY_PAGE: { + KASSERT(page_index->subpage == SMS_SUBPAGE_PAGE_0, + ("subpage %#x for page %#x is incorrect!", + page_index->subpage, page_code)); + memcpy(&lun->mode_pages.verify_er_page[CTL_PAGE_CURRENT], + &verify_er_page_default, + sizeof(verify_er_page_default)); + memcpy(&lun->mode_pages.verify_er_page[CTL_PAGE_CHANGEABLE], + &verify_er_page_changeable, + sizeof(verify_er_page_changeable)); + memcpy(&lun->mode_pages.verify_er_page[CTL_PAGE_DEFAULT], + &verify_er_page_default, + sizeof(verify_er_page_default)); + memcpy(&lun->mode_pages.verify_er_page[CTL_PAGE_SAVED], + &verify_er_page_default, + sizeof(verify_er_page_default)); + page_index->page_data = + (uint8_t *)lun->mode_pages.verify_er_page; + break; + } case SMS_CACHING_PAGE: { struct scsi_caching_page *caching_page; @@ -4271,35 +4291,6 @@ ctl_init_page_index(struct ctl_lun *lun) (uint8_t *)lun->mode_pages.cddvd_page; break; } - case SMS_VENDOR_SPECIFIC_PAGE:{ - switch (page_index->subpage) { - case DBGCNF_SUBPAGE_CODE: { - memcpy(&lun->mode_pages.debugconf_subpage[ - CTL_PAGE_CURRENT], - &debugconf_page_default, - sizeof(debugconf_page_default)); - memcpy(&lun->mode_pages.debugconf_subpage[ - CTL_PAGE_CHANGEABLE], - &debugconf_page_changeable, - sizeof(debugconf_page_changeable)); - memcpy(&lun->mode_pages.debugconf_subpage[ - CTL_PAGE_DEFAULT], - &debugconf_page_default, - sizeof(debugconf_page_default)); - memcpy(&lun->mode_pages.debugconf_subpage[ - CTL_PAGE_SAVED], - &debugconf_page_default, - sizeof(debugconf_page_default)); - page_index->page_data = - (uint8_t *)lun->mode_pages.debugconf_subpage; - break; - } - default: - panic("subpage %#x for page %#x is incorrect!", - page_index->subpage, page_code); - } - break; - } default: panic("invalid page code value %#x", page_code); } @@ -4352,6 +4343,8 @@ ctl_init_log_page_index(struct ctl_lun *lun) lun->log_pages.index[2].page_len = 12*CTL_NUM_LBP_PARAMS; lun->log_pages.index[3].page_data = (uint8_t *)&lun->log_pages.stat_page; lun->log_pages.index[3].page_len = sizeof(lun->log_pages.stat_page); + lun->log_pages.index[4].page_data = (uint8_t *)&lun->log_pages.ie_page; + lun->log_pages.index[4].page_len = sizeof(lun->log_pages.ie_page); return (CTL_RETVAL_COMPLETE); } @@ -4369,6 +4362,8 @@ hex2bin(const char *str, uint8_t *buf, int buf_size) str += 2; buf_size *= 2; for (i = 0; str[i] != 0 && i < buf_size; i++) { + while (str[i] == '-') /* Skip dashes in UUIDs. */ + str++; c = str[i]; if (isdigit(c)) c -= '0'; @@ -4404,7 +4399,7 @@ ctl_alloc_lun(struct ctl_softc *ctl_softc, struct ctl_lun *ctl_lun, struct ctl_lun *nlun, *lun; struct scsi_vpd_id_descriptor *desc; struct scsi_vpd_id_t10 *t10id; - const char *eui, *naa, *scsiname, *vendor, *value; + const char *eui, *naa, *scsiname, *uuid, *vendor, *value; int lun_number, i, lun_malloced; int devidlen, idlen1, idlen2 = 0, len; @@ -4456,6 +4451,10 @@ ctl_alloc_lun(struct ctl_softc *ctl_softc, struct ctl_lun *ctl_lun, if (naa != NULL) { len += sizeof(struct scsi_vpd_id_descriptor) + 16; } + uuid = ctl_get_opt(&be_lun->options, "uuid"); + if (uuid != NULL) { + len += sizeof(struct scsi_vpd_id_descriptor) + 18; + } lun->lun_devid = malloc(sizeof(struct ctl_devid) + len, M_CTL, M_WAITOK | M_ZERO); desc = (struct scsi_vpd_id_descriptor *)lun->lun_devid->data; @@ -4502,6 +4501,16 @@ ctl_alloc_lun(struct ctl_softc *ctl_softc, struct ctl_lun *ctl_lun, desc->length = desc->length > 8 ? 16 : 8; len -= 16 - desc->length; } + if (uuid != NULL) { + desc = (struct scsi_vpd_id_descriptor *)(&desc->identifier[0] + + desc->length); + desc->proto_codeset = SVPD_ID_CODESET_BINARY; + desc->id_type = SVPD_ID_PIV | SVPD_ID_ASSOC_LUN | + SVPD_ID_TYPE_UUID; + desc->identifier[0] = 0x10; + hex2bin(uuid, &desc->identifier[2], 16); + desc->length = 18; + } lun->lun_devid->len = len; mtx_lock(&ctl_softc->ctl_lock); @@ -4582,6 +4591,8 @@ ctl_alloc_lun(struct ctl_softc *ctl_softc, struct ctl_lun *ctl_lun, TAILQ_INIT(&lun->ooa_queue); TAILQ_INIT(&lun->blocked_queue); STAILQ_INIT(&lun->error_list); + lun->ie_reported = 1; + callout_init_mtx(&lun->ie_callout, &lun->lun_lock, 0); ctl_tpc_lun_init(lun); /* @@ -4655,6 +4666,9 @@ ctl_free_lun(struct ctl_lun *lun) atomic_subtract_int(&lun->be_lun->be->num_luns, 1); lun->be_lun->lun_shutdown(lun->be_lun->be_lun); + lun->ie_reportcnt = UINT32_MAX; + callout_drain(&lun->ie_callout); + ctl_tpc_lun_shutdown(lun); mtx_destroy(&lun->lun_lock); free(lun->lun_devid, M_CTL); @@ -5355,7 +5369,8 @@ ctl_sync_cache(struct ctl_scsiio *ctsio) * to see an error for an out of range LBA. */ if ((starting_lba + block_count) > (lun->be_lun->maxlba + 1)) { - ctl_set_lba_out_of_range(ctsio); + ctl_set_lba_out_of_range(ctsio, + MAX(starting_lba, lun->be_lun->maxlba + 1)); ctl_done((union ctl_io *)ctsio); goto bailout; } @@ -5493,19 +5508,6 @@ ctl_read_buffer(struct ctl_scsiio *ctsio) return (CTL_RETVAL_COMPLETE); } - if ((byte2 & RWB_MODE) != RWB_MODE_DATA && - (byte2 & RWB_MODE) != RWB_MODE_ECHO_DESCR && - (byte2 & RWB_MODE) != RWB_MODE_DESCR) { - ctl_set_invalid_field(ctsio, - /*sks_valid*/ 1, - /*command*/ 1, - /*field*/ 1, - /*bit_valid*/ 1, - /*bit*/ 4); - ctl_done((union ctl_io *)ctsio); - return (CTL_RETVAL_COMPLETE); - } - if (buffer_offset > CTL_WRITE_BUFFER_SIZE || buffer_offset + len > CTL_WRITE_BUFFER_SIZE) { ctl_set_invalid_field(ctsio, @@ -5556,17 +5558,6 @@ ctl_write_buffer(struct ctl_scsiio *ctsio) lun = (struct ctl_lun *)ctsio->io_hdr.ctl_private[CTL_PRIV_LUN].ptr; cdb = (struct scsi_write_buffer *)ctsio->cdb; - if ((cdb->byte2 & RWB_MODE) != RWB_MODE_DATA) { - ctl_set_invalid_field(ctsio, - /*sks_valid*/ 1, - /*command*/ 1, - /*field*/ 1, - /*bit_valid*/ 1, - /*bit*/ 4); - ctl_done((union ctl_io *)ctsio); - return (CTL_RETVAL_COMPLETE); - } - len = scsi_3btoul(cdb->length); buffer_offset = scsi_3btoul(cdb->offset); @@ -5671,7 +5662,8 @@ ctl_write_same(struct ctl_scsiio *ctsio) */ if (((lba + num_blocks) > (lun->be_lun->maxlba + 1)) || ((lba + num_blocks) < lba)) { - ctl_set_lba_out_of_range(ctsio); + ctl_set_lba_out_of_range(ctsio, + MAX(lba, lun->be_lun->maxlba + 1)); ctl_done((union ctl_io *)ctsio); return (CTL_RETVAL_COMPLETE); } @@ -5699,7 +5691,7 @@ ctl_write_same(struct ctl_scsiio *ctsio) */ if ((byte2 & SWS_NDOB) == 0 && (ctsio->io_hdr.flags & CTL_FLAG_ALLOCATED) == 0) { - ctsio->kern_data_ptr = malloc(len, M_CTL, M_WAITOK);; + ctsio->kern_data_ptr = malloc(len, M_CTL, M_WAITOK); ctsio->kern_data_len = len; ctsio->kern_total_len = len; ctsio->kern_data_resid = 0; @@ -5747,7 +5739,7 @@ ctl_unmap(struct ctl_scsiio *ctsio) * malloc it and tell the caller the data buffer is here. */ if ((ctsio->io_hdr.flags & CTL_FLAG_ALLOCATED) == 0) { - ctsio->kern_data_ptr = malloc(len, M_CTL, M_WAITOK);; + ctsio->kern_data_ptr = malloc(len, M_CTL, M_WAITOK); ctsio->kern_data_len = len; ctsio->kern_total_len = len; ctsio->kern_data_resid = 0; @@ -5784,7 +5776,8 @@ ctl_unmap(struct ctl_scsiio *ctsio) num_blocks = scsi_4btoul(range->length); if (((lba + num_blocks) > (lun->be_lun->maxlba + 1)) || ((lba + num_blocks) < lba)) { - ctl_set_lba_out_of_range(ctsio); + ctl_set_lba_out_of_range(ctsio, + MAX(lba, lun->be_lun->maxlba + 1)); ctl_done((union ctl_io *)ctsio); return (CTL_RETVAL_COMPLETE); } @@ -5823,25 +5816,12 @@ done: return (CTL_RETVAL_COMPLETE); } -/* - * Note that this function currently doesn't actually do anything inside - * CTL to enforce things if the DQue bit is turned on. - * - * Also note that this function can't be used in the default case, because - * the DQue bit isn't set in the changeable mask for the control mode page - * anyway. This is just here as an example for how to implement a page - * handler, and a placeholder in case we want to allow the user to turn - * tagged queueing on and off. - * - * The D_SENSE bit handling is functional, however, and will turn - * descriptor sense on and off for a given LUN. - */ int -ctl_control_page_handler(struct ctl_scsiio *ctsio, +ctl_default_page_handler(struct ctl_scsiio *ctsio, struct ctl_page_index *page_index, uint8_t *page_ptr) { - struct scsi_control_page *current_cp, *saved_cp, *user_cp; struct ctl_lun *lun; + uint8_t *current_cp, *saved_cp; int set_ua; uint32_t initidx; @@ -5849,50 +5829,15 @@ ctl_control_page_handler(struct ctl_scsiio *ctsio, initidx = ctl_get_initindex(&ctsio->io_hdr.nexus); set_ua = 0; - user_cp = (struct scsi_control_page *)page_ptr; - current_cp = (struct scsi_control_page *) - (page_index->page_data + (page_index->page_len * - CTL_PAGE_CURRENT)); - saved_cp = (struct scsi_control_page *) - (page_index->page_data + (page_index->page_len * - CTL_PAGE_SAVED)); + current_cp = (page_index->page_data + (page_index->page_len * + CTL_PAGE_CURRENT)); + saved_cp = (page_index->page_data + (page_index->page_len * + CTL_PAGE_SAVED)); mtx_lock(&lun->lun_lock); - if (((current_cp->rlec & SCP_DSENSE) == 0) - && ((user_cp->rlec & SCP_DSENSE) != 0)) { - /* - * Descriptor sense is currently turned off and the user - * wants to turn it on. - */ - current_cp->rlec |= SCP_DSENSE; - saved_cp->rlec |= SCP_DSENSE; - lun->flags |= CTL_LUN_SENSE_DESC; - set_ua = 1; - } else if (((current_cp->rlec & SCP_DSENSE) != 0) - && ((user_cp->rlec & SCP_DSENSE) == 0)) { - /* - * Descriptor sense is currently turned on, and the user - * wants to turn it off. - */ - current_cp->rlec &= ~SCP_DSENSE; - saved_cp->rlec &= ~SCP_DSENSE; - lun->flags &= ~CTL_LUN_SENSE_DESC; - set_ua = 1; - } - if ((current_cp->queue_flags & SCP_QUEUE_ALG_MASK) != - (user_cp->queue_flags & SCP_QUEUE_ALG_MASK)) { - current_cp->queue_flags &= ~SCP_QUEUE_ALG_MASK; - current_cp->queue_flags |= user_cp->queue_flags & SCP_QUEUE_ALG_MASK; - saved_cp->queue_flags &= ~SCP_QUEUE_ALG_MASK; - saved_cp->queue_flags |= user_cp->queue_flags & SCP_QUEUE_ALG_MASK; - set_ua = 1; - } - if ((current_cp->eca_and_aen & SCP_SWP) != - (user_cp->eca_and_aen & SCP_SWP)) { - current_cp->eca_and_aen &= ~SCP_SWP; - current_cp->eca_and_aen |= user_cp->eca_and_aen & SCP_SWP; - saved_cp->eca_and_aen &= ~SCP_SWP; - saved_cp->eca_and_aen |= user_cp->eca_and_aen & SCP_SWP; + if (memcmp(current_cp, page_ptr, page_index->page_len)) { + memcpy(current_cp, page_ptr, page_index->page_len); + memcpy(saved_cp, page_ptr, page_index->page_len); set_ua = 1; } if (set_ua != 0) @@ -5903,101 +5848,76 @@ ctl_control_page_handler(struct ctl_scsiio *ctsio, ctl_get_initindex(&ctsio->io_hdr.nexus), page_index->page_code, page_index->subpage); } - return (0); + return (CTL_RETVAL_COMPLETE); } -int -ctl_caching_sp_handler(struct ctl_scsiio *ctsio, - struct ctl_page_index *page_index, uint8_t *page_ptr) +static void +ctl_ie_timer(void *arg) { - struct scsi_caching_page *current_cp, *saved_cp, *user_cp; - struct ctl_lun *lun; - int set_ua; - uint32_t initidx; + struct ctl_lun *lun = arg; + uint64_t t; - lun = (struct ctl_lun *)ctsio->io_hdr.ctl_private[CTL_PRIV_LUN].ptr; - initidx = ctl_get_initindex(&ctsio->io_hdr.nexus); - set_ua = 0; + if (lun->ie_asc == 0) + return; - user_cp = (struct scsi_caching_page *)page_ptr; - current_cp = (struct scsi_caching_page *) - (page_index->page_data + (page_index->page_len * - CTL_PAGE_CURRENT)); - saved_cp = (struct scsi_caching_page *) - (page_index->page_data + (page_index->page_len * - CTL_PAGE_SAVED)); + if (lun->MODE_IE.mrie == SIEP_MRIE_UA) + ctl_est_ua_all(lun, -1, CTL_UA_IE); + else + lun->ie_reported = 0; - mtx_lock(&lun->lun_lock); - if ((current_cp->flags1 & (SCP_WCE | SCP_RCD)) != - (user_cp->flags1 & (SCP_WCE | SCP_RCD))) { - current_cp->flags1 &= ~(SCP_WCE | SCP_RCD); - current_cp->flags1 |= user_cp->flags1 & (SCP_WCE | SCP_RCD); - saved_cp->flags1 &= ~(SCP_WCE | SCP_RCD); - saved_cp->flags1 |= user_cp->flags1 & (SCP_WCE | SCP_RCD); - set_ua = 1; + if (lun->ie_reportcnt < scsi_4btoul(lun->MODE_IE.report_count)) { + lun->ie_reportcnt++; + t = scsi_4btoul(lun->MODE_IE.interval_timer); + if (t == 0 || t == UINT32_MAX) + t = 3000; /* 5 min */ + callout_schedule(&lun->ie_callout, t * hz / 10); } - if (set_ua != 0) - ctl_est_ua_all(lun, initidx, CTL_UA_MODE_CHANGE); - mtx_unlock(&lun->lun_lock); - if (set_ua) { - ctl_isc_announce_mode(lun, - ctl_get_initindex(&ctsio->io_hdr.nexus), - page_index->page_code, page_index->subpage); - } - return (0); -} - -int -ctl_debugconf_sp_select_handler(struct ctl_scsiio *ctsio, - struct ctl_page_index *page_index, - uint8_t *page_ptr) -{ - uint8_t *c; - int i; - - c = ((struct copan_debugconf_subpage *)page_ptr)->ctl_time_io_secs; - ctl_time_io_secs = - (c[0] << 8) | - (c[1] << 0) | - 0; - CTL_DEBUG_PRINT(("set ctl_time_io_secs to %d\n", ctl_time_io_secs)); - printf("set ctl_time_io_secs to %d\n", ctl_time_io_secs); - printf("page data:"); - for (i=0; i<8; i++) - printf(" %.2x",page_ptr[i]); - printf("\n"); - return (0); } int -ctl_debugconf_sp_sense_handler(struct ctl_scsiio *ctsio, - struct ctl_page_index *page_index, - int pc) +ctl_ie_page_handler(struct ctl_scsiio *ctsio, + struct ctl_page_index *page_index, uint8_t *page_ptr) { - struct copan_debugconf_subpage *page; + struct scsi_info_exceptions_page *pg; + struct ctl_lun *lun; + uint64_t t; - page = (struct copan_debugconf_subpage *)page_index->page_data + - (page_index->page_len * pc); + (void)ctl_default_page_handler(ctsio, page_index, page_ptr); - switch (pc) { - case SMS_PAGE_CTRL_CHANGEABLE >> 6: - case SMS_PAGE_CTRL_DEFAULT >> 6: - case SMS_PAGE_CTRL_SAVED >> 6: - /* - * We don't update the changable or default bits for this page. - */ - break; - case SMS_PAGE_CTRL_CURRENT >> 6: - page->ctl_time_io_secs[0] = ctl_time_io_secs >> 8; - page->ctl_time_io_secs[1] = ctl_time_io_secs >> 0; - break; - default: - break; + lun = (struct ctl_lun *)ctsio->io_hdr.ctl_private[CTL_PRIV_LUN].ptr; + pg = (struct scsi_info_exceptions_page *)page_ptr; + mtx_lock(&lun->lun_lock); + if (pg->info_flags & SIEP_FLAGS_TEST) { + lun->ie_asc = 0x5d; + lun->ie_ascq = 0xff; + if (pg->mrie == SIEP_MRIE_UA) { + ctl_est_ua_all(lun, -1, CTL_UA_IE); + lun->ie_reported = 1; + } else { + ctl_clr_ua_all(lun, -1, CTL_UA_IE); + lun->ie_reported = -1; + } + lun->ie_reportcnt = 1; + if (lun->ie_reportcnt < scsi_4btoul(pg->report_count)) { + lun->ie_reportcnt++; + t = scsi_4btoul(pg->interval_timer); + if (t == 0 || t == UINT32_MAX) + t = 3000; /* 5 min */ + callout_reset(&lun->ie_callout, t * hz / 10, + ctl_ie_timer, lun); + } + } else { + lun->ie_asc = 0; + lun->ie_ascq = 0; + lun->ie_reported = 1; + ctl_clr_ua_all(lun, -1, CTL_UA_IE); + lun->ie_reportcnt = UINT32_MAX; + callout_stop(&lun->ie_callout); } - return (0); + mtx_unlock(&lun->lun_lock); + return (CTL_RETVAL_COMPLETE); } - static int ctl_do_mode_select(union ctl_io *io) { @@ -6122,11 +6042,7 @@ do_next_page: * the mode page header, or if they didn't specify enough data in * the CDB to avoid truncating this page, kick out the request. */ - if ((page_len != (page_index->page_len - page_len_offset - - page_len_size)) - || (*len_left < page_index->page_len)) { - - + if (page_len != page_index->page_len - page_len_offset - page_len_size) { ctl_set_invalid_field(ctsio, /*sks_valid*/ 1, /*command*/ 0, @@ -6137,6 +6053,12 @@ do_next_page: ctl_done((union ctl_io *)ctsio); return (CTL_RETVAL_COMPLETE); } + if (*len_left < page_index->page_len) { + free(ctsio->kern_data_ptr, M_CTL); + ctl_set_param_len_error(ctsio); + ctl_done((union ctl_io *)ctsio); + return (CTL_RETVAL_COMPLETE); + } /* * Run through the mode page, checking to make sure that the bits @@ -6541,9 +6463,8 @@ ctl_mode_sense(struct ctl_scsiio *ctsio) if (lun->be_lun->lun_type == T_DIRECT) { header->dev_specific = 0x10; /* DPOFUA */ if ((lun->be_lun->flags & CTL_LUN_FLAG_READONLY) || - (lun->mode_pages.control_page[CTL_PAGE_CURRENT] - .eca_and_aen & SCP_SWP) != 0) - header->dev_specific |= 0x80; /* WP */ + (lun->MODE_CTRL.eca_and_aen & SCP_SWP) != 0) + header->dev_specific |= 0x80; /* WP */ } if (dbd) header->block_descr_len = 0; @@ -6564,9 +6485,8 @@ ctl_mode_sense(struct ctl_scsiio *ctsio) if (lun->be_lun->lun_type == T_DIRECT) { header->dev_specific = 0x10; /* DPOFUA */ if ((lun->be_lun->flags & CTL_LUN_FLAG_READONLY) || - (lun->mode_pages.control_page[CTL_PAGE_CURRENT] - .eca_and_aen & SCP_SWP) != 0) - header->dev_specific |= 0x80; /* WP */ + (lun->MODE_CTRL.eca_and_aen & SCP_SWP) != 0) + header->dev_specific |= 0x80; /* WP */ } if (dbd) scsi_ulto2b(0, header->block_descr_len); @@ -6815,8 +6735,27 @@ ctl_sap_log_sense_handler(struct ctl_scsiio *ctsio, sizeof(struct scsi_log_param_header); scsi_ulto4b(3, data->ti.exponent); scsi_ulto4b(1, data->ti.integer); + return (0); +} - page_index->page_len = sizeof(*data); +int +ctl_ie_log_sense_handler(struct ctl_scsiio *ctsio, + struct ctl_page_index *page_index, + int pc) +{ + struct ctl_lun *lun; + struct scsi_log_informational_exceptions *data; + + lun = (struct ctl_lun *)ctsio->io_hdr.ctl_private[CTL_PRIV_LUN].ptr; + data = (struct scsi_log_informational_exceptions *)page_index->page_data; + + scsi_ulto2b(SLP_IE_GEN, data->hdr.param_code); + data->hdr.param_control = SLP_LBIN; + data->hdr.param_len = sizeof(struct scsi_log_informational_exceptions) - + sizeof(struct scsi_log_param_header); + data->ie_asc = lun->ie_asc; + data->ie_ascq = lun->ie_ascq; + data->temperature = 0xff; return (0); } @@ -7044,7 +6983,7 @@ ctl_get_lba_status(struct ctl_scsiio *ctsio) alloc_len = scsi_4btoul(cdb->alloc_len); if (lba > lun->be_lun->maxlba) { - ctl_set_lba_out_of_range(ctsio); + ctl_set_lba_out_of_range(ctsio, lba); ctl_done((union ctl_io *)ctsio); return (CTL_RETVAL_COMPLETE); } @@ -7399,6 +7338,8 @@ ctl_report_supported_opcodes(struct ctl_scsiio *ctsio) ctl_done((union ctl_io *)ctsio); return (CTL_RETVAL_COMPLETE); } + /* FALLTHROUGH */ + case RSO_OPTIONS_OC_ASA: total_len = sizeof(struct scsi_report_supported_opcodes_one) + 32; break; default: @@ -7487,6 +7428,18 @@ fill_one: } else one->support = 1; break; + case RSO_OPTIONS_OC_ASA: + one = (struct scsi_report_supported_opcodes_one *) + ctsio->kern_data_ptr; + entry = &ctl_cmd_table[opcode]; + if (entry->flags & CTL_CMD_FLAG_SA5) { + entry = &((const struct ctl_cmd_entry *) + entry->execute)[service_action]; + } else if (service_action != 0) { + one->support = 1; + break; + } + goto fill_one; } ctl_set_success(ctsio); @@ -7500,7 +7453,7 @@ int ctl_report_supported_tmf(struct ctl_scsiio *ctsio) { struct scsi_report_supported_tmf *cdb; - struct scsi_report_supported_tmf_data *data; + struct scsi_report_supported_tmf_ext_data *data; int retval; int alloc_len, total_len; @@ -7510,7 +7463,10 @@ ctl_report_supported_tmf(struct ctl_scsiio *ctsio) retval = CTL_RETVAL_COMPLETE; - total_len = sizeof(struct scsi_report_supported_tmf_data); + if (cdb->options & RST_REPD) + total_len = sizeof(struct scsi_report_supported_tmf_ext_data); + else + total_len = sizeof(struct scsi_report_supported_tmf_data); alloc_len = scsi_4btoul(cdb->length); ctsio->kern_data_ptr = malloc(total_len, M_CTL, M_WAITOK | M_ZERO); @@ -7529,10 +7485,11 @@ ctl_report_supported_tmf(struct ctl_scsiio *ctsio) ctsio->kern_data_resid = 0; ctsio->kern_rel_offset = 0; - data = (struct scsi_report_supported_tmf_data *)ctsio->kern_data_ptr; + data = (struct scsi_report_supported_tmf_ext_data *)ctsio->kern_data_ptr; data->byte1 |= RST_ATS | RST_ATSS | RST_CTSS | RST_LURS | RST_QTS | RST_TRS; data->byte2 |= RST_QAES | RST_QTSS | RST_ITNRS; + data->length = total_len - 4; ctl_set_success(ctsio); ctsio->io_hdr.flags |= CTL_FLAG_ALLOCATED; @@ -8489,12 +8446,11 @@ ctl_persistent_reserve_out(struct ctl_scsiio *ctsio) lun->pr_res_type = 0; /* - * if this isn't an exclusive access - * res generate UA for all other - * registrants. + * If this isn't an exclusive access reservation and NUAR + * is not set, generate UA for all other registrants. */ - if (type != SPR_TYPE_EX_AC - && type != SPR_TYPE_WR_EX) { + if (type != SPR_TYPE_EX_AC && type != SPR_TYPE_WR_EX && + (lun->MODE_CTRL.queue_flags & SCP_NUAR) == 0) { for (i = softc->init_min; i < softc->init_max; i++) { if (i == residx || ctl_get_prkey(lun, i) == 0) continue; @@ -8644,11 +8600,12 @@ ctl_hndl_per_res_out_on_other_sc(union ctl_ha_msg *msg) case CTL_PR_RELEASE: /* - * if this isn't an exclusive access res generate UA for all - * other registrants. + * If this isn't an exclusive access reservation and NUAR + * is not set, generate UA for all other registrants. */ if (lun->pr_res_type != SPR_TYPE_EX_AC && - lun->pr_res_type != SPR_TYPE_WR_EX) { + lun->pr_res_type != SPR_TYPE_WR_EX && + (lun->MODE_CTRL.queue_flags & SCP_NUAR) == 0) { for (i = softc->init_min; i < softc->init_max; i++) if (i == residx || ctl_get_prkey(lun, i) == 0) continue; @@ -8834,7 +8791,8 @@ ctl_read_write(struct ctl_scsiio *ctsio) */ if (((lba + num_blocks) > (lun->be_lun->maxlba + 1)) || ((lba + num_blocks) < lba)) { - ctl_set_lba_out_of_range(ctsio); + ctl_set_lba_out_of_range(ctsio, + MAX(lba, lun->be_lun->maxlba + 1)); ctl_done((union ctl_io *)ctsio); return (CTL_RETVAL_COMPLETE); } @@ -8852,12 +8810,10 @@ ctl_read_write(struct ctl_scsiio *ctsio) /* Set FUA and/or DPO if caches are disabled. */ if (isread) { - if ((lun->mode_pages.caching_page[CTL_PAGE_CURRENT].flags1 & - SCP_RCD) != 0) + if ((lun->MODE_CACHING.flags1 & SCP_RCD) != 0) flags |= CTL_LLF_FUA | CTL_LLF_DPO; } else { - if ((lun->mode_pages.caching_page[CTL_PAGE_CURRENT].flags1 & - SCP_WCE) == 0) + if ((lun->MODE_CACHING.flags1 & SCP_WCE) == 0) flags |= CTL_LLF_FUA; } @@ -8945,7 +8901,8 @@ ctl_cnw(struct ctl_scsiio *ctsio) */ if (((lba + num_blocks) > (lun->be_lun->maxlba + 1)) || ((lba + num_blocks) < lba)) { - ctl_set_lba_out_of_range(ctsio); + ctl_set_lba_out_of_range(ctsio, + MAX(lba, lun->be_lun->maxlba + 1)); ctl_done((union ctl_io *)ctsio); return (CTL_RETVAL_COMPLETE); } @@ -8960,8 +8917,7 @@ ctl_cnw(struct ctl_scsiio *ctsio) } /* Set FUA if write cache is disabled. */ - if ((lun->mode_pages.caching_page[CTL_PAGE_CURRENT].flags1 & - SCP_WCE) == 0) + if ((lun->MODE_CACHING.flags1 & SCP_WCE) == 0) flags |= CTL_LLF_FUA; ctsio->kern_total_len = 2 * num_blocks * lun->be_lun->blocksize; @@ -9057,7 +9013,8 @@ ctl_verify(struct ctl_scsiio *ctsio) */ if (((lba + num_blocks) > (lun->be_lun->maxlba + 1)) || ((lba + num_blocks) < lba)) { - ctl_set_lba_out_of_range(ctsio); + ctl_set_lba_out_of_range(ctsio, + MAX(lba, lun->be_lun->maxlba + 1)); ctl_done((union ctl_io *)ctsio); return (CTL_RETVAL_COMPLETE); } @@ -9250,16 +9207,18 @@ ctl_request_sense(struct ctl_scsiio *ctsio) { struct scsi_request_sense *cdb; struct scsi_sense_data *sense_ptr; - struct ctl_softc *ctl_softc; + struct ctl_softc *softc; struct ctl_lun *lun; uint32_t initidx; int have_error; + u_int sense_len = SSD_FULL_SIZE; scsi_sense_data_type sense_format; ctl_ua_type ua_type; + uint8_t asc = 0, ascq = 0; cdb = (struct scsi_request_sense *)ctsio->cdb; - ctl_softc = control_softc; + softc = control_softc; lun = (struct ctl_lun *)ctsio->io_hdr.ctl_private[CTL_PRIV_LUN].ptr; CTL_DEBUG_PRINT(("ctl_request_sense\n")); @@ -9292,8 +9251,18 @@ ctl_request_sense(struct ctl_scsiio *ctsio) /* * If we don't have a LUN, we don't have any pending sense. */ - if (lun == NULL) - goto no_sense; + if (lun == NULL || + ((lun->flags & CTL_LUN_PRIMARY_SC) == 0 && + softc->ha_link < CTL_HA_LINK_UNKNOWN)) { + /* "Logical unit not supported" */ + ctl_set_sense_data(sense_ptr, &sense_len, NULL, sense_format, + /*current_error*/ 1, + /*sense_key*/ SSD_KEY_ILLEGAL_REQUEST, + /*asc*/ 0x25, + /*ascq*/ 0x00, + SSD_ELEM_NONE); + goto send; + } have_error = 0; initidx = ctl_get_initindex(&ctsio->io_hdr.nexus); @@ -9341,57 +9310,33 @@ ctl_request_sense(struct ctl_scsiio *ctsio) have_error = 1; } else #endif - { - ua_type = ctl_build_ua(lun, initidx, sense_ptr, sense_format); + if (have_error == 0) { + ua_type = ctl_build_ua(lun, initidx, sense_ptr, &sense_len, + sense_format); if (ua_type != CTL_UA_NONE) have_error = 1; - if (ua_type == CTL_UA_LUN_CHANGE) { - mtx_unlock(&lun->lun_lock); - mtx_lock(&ctl_softc->ctl_lock); - ctl_clr_ua_allluns(ctl_softc, initidx, ua_type); - mtx_unlock(&ctl_softc->ctl_lock); - mtx_lock(&lun->lun_lock); - } - } - mtx_unlock(&lun->lun_lock); - - /* - * We already have a pending error, return it. - */ - if (have_error != 0) { + if (have_error == 0) { /* - * We report the SCSI status as OK, since the status of the - * request sense command itself is OK. - * We report 0 for the sense length, because we aren't doing - * autosense in this case. We're reporting sense as - * parameter data. + * Report informational exception if have one and allowed. */ - ctl_set_success(ctsio); - ctsio->io_hdr.flags |= CTL_FLAG_ALLOCATED; - ctsio->be_move_done = ctl_config_move_done; - ctl_datamove((union ctl_io *)ctsio); - return (CTL_RETVAL_COMPLETE); + if (lun->MODE_IE.mrie != SIEP_MRIE_NO) { + asc = lun->ie_asc; + ascq = lun->ie_ascq; + } + ctl_set_sense_data(sense_ptr, &sense_len, lun, sense_format, + /*current_error*/ 1, + /*sense_key*/ SSD_KEY_NO_SENSE, + /*asc*/ asc, + /*ascq*/ ascq, + SSD_ELEM_NONE); } + mtx_unlock(&lun->lun_lock); -no_sense: - - /* - * No sense information to report, so we report that everything is - * okay. - */ - ctl_set_sense_data(sense_ptr, - lun, - sense_format, - /*current_error*/ 1, - /*sense_key*/ SSD_KEY_NO_SENSE, - /*asc*/ 0x00, - /*ascq*/ 0x00, - SSD_ELEM_NONE); - +send: /* - * We report 0 for the sense length, because we aren't doing - * autosense in this case. We're reporting sense as parameter data. + * We report the SCSI status as OK, since the status of the command + * itself is OK. We're reporting sense as parameter data. */ ctl_set_success(ctsio); ctsio->io_hdr.flags |= CTL_FLAG_ALLOCATED; @@ -9601,7 +9546,7 @@ ctl_inquiry_evpd_eid(struct ctl_scsiio *ctsio, int alloc_len) * attention for a particular IT nexus on all LUNs once we report * it to that nexus once. This bit is required as of SPC-4. */ - eid_ptr->flags4 = SVPD_EID_LUICLT; + eid_ptr->flags4 = SVPD_EID_LUICLR; /* * XXX KDM in order to correctly answer this, we would need @@ -10227,7 +10172,7 @@ ctl_inquiry_std(struct ctl_scsiio *ctsio) inq_ptr->device = (SID_QUAL_BAD_LU << 5) | T_NODEVICE; /* RMB in byte 2 is 0 */ - inq_ptr->version = SCSI_REV_SPC4; + inq_ptr->version = SCSI_REV_SPC5; /* * According to SAM-3, even if a device only supports a single @@ -10244,7 +10189,7 @@ ctl_inquiry_std(struct ctl_scsiio *ctsio) * * Therefore we set the HiSup bit here. * - * The reponse format is 2, per SPC-3. + * The response format is 2, per SPC-3. */ inq_ptr->response_format = SID_HiSup | 2; @@ -10325,10 +10270,10 @@ ctl_inquiry_std(struct ctl_scsiio *ctsio) inq_ptr->spi3data = SID_SPI_CLOCK_DT_ST | SID_SPI_QAS | SID_SPI_IUS; - /* SAM-5 (no version claimed) */ - scsi_ulto2b(0x00A0, inq_ptr->version1); - /* SPC-4 (no version claimed) */ - scsi_ulto2b(0x0460, inq_ptr->version2); + /* SAM-6 (no version claimed) */ + scsi_ulto2b(0x00C0, inq_ptr->version1); + /* SPC-5 (no version claimed) */ + scsi_ulto2b(0x05C0, inq_ptr->version2); if (port_type == CTL_PORT_FC) { /* FCP-2 ANSI INCITS.350:2003 */ scsi_ulto2b(0x0917, inq_ptr->version3); @@ -11140,8 +11085,8 @@ ctl_check_for_blockage(struct ctl_lun *lun, union ctl_io *pending_io, return (ctl_extent_check(ooa_io, pending_io, (lun->be_lun && lun->be_lun->serseq == CTL_LUN_SERSEQ_ON))); case CTL_SER_EXTENTOPT: - if ((lun->mode_pages.control_page[CTL_PAGE_CURRENT].queue_flags - & SCP_QUEUE_ALG_MASK) != SCP_QUEUE_ALG_UNRESTRICTED) + if ((lun->MODE_CTRL.queue_flags & SCP_QUEUE_ALG_MASK) != + SCP_QUEUE_ALG_UNRESTRICTED) return (ctl_extent_check(ooa_io, pending_io, (lun->be_lun && lun->be_lun->serseq == CTL_LUN_SERSEQ_ON))); @@ -11153,8 +11098,8 @@ ctl_check_for_blockage(struct ctl_lun *lun, union ctl_io *pending_io, case CTL_SER_PASS: return (CTL_ACTION_PASS); case CTL_SER_BLOCKOPT: - if ((lun->mode_pages.control_page[CTL_PAGE_CURRENT].queue_flags - & SCP_QUEUE_ALG_MASK) != SCP_QUEUE_ALG_UNRESTRICTED) + if ((lun->MODE_CTRL.queue_flags & SCP_QUEUE_ALG_MASK) != + SCP_QUEUE_ALG_UNRESTRICTED) return (CTL_ACTION_BLOCK); return (CTL_ACTION_PASS); case CTL_SER_SKIP: @@ -11395,8 +11340,7 @@ ctl_scsiio_lun_check(struct ctl_lun *lun, retval = 1; goto bailout; } - if ((lun->mode_pages.control_page[CTL_PAGE_CURRENT] - .eca_and_aen & SCP_SWP) != 0) { + if ((lun->MODE_CTRL.eca_and_aen & SCP_SWP) != 0) { ctl_set_sense(ctsio, /*current_error*/ 1, /*sense_key*/ SSD_KEY_DATA_PROTECT, /*asc*/ 0x27, /*ascq*/ 0x02, SSD_ELEM_NONE); @@ -11684,14 +11628,15 @@ ctl_scsiio_precheck(struct ctl_softc *softc, struct ctl_scsiio *ctsio) */ if ((entry->flags & CTL_CMD_FLAG_NO_SENSE) == 0) { ctl_ua_type ua_type; + u_int sense_len = 0; ua_type = ctl_build_ua(lun, initidx, &ctsio->sense_data, - SSD_TYPE_NONE); + &sense_len, SSD_TYPE_NONE); if (ua_type != CTL_UA_NONE) { mtx_unlock(&lun->lun_lock); ctsio->scsi_status = SCSI_STATUS_CHECK_COND; ctsio->io_hdr.status = CTL_SCSI_ERROR | CTL_AUTOSENSE; - ctsio->sense_len = SSD_FULL_SIZE; + ctsio->sense_len = sense_len; ctl_done((union ctl_io *)ctsio); return (retval); } @@ -13256,6 +13201,34 @@ ctl_process_done(union ctl_io *io) mtx_lock(&lun->lun_lock); /* + * Check to see if we have any informational exception and status + * of this command can be modified to report it in form of either + * RECOVERED ERROR or NO SENSE, depending on MRIE mode page field. + */ + if (lun->ie_reported == 0 && lun->ie_asc != 0 && + io->io_hdr.status == CTL_SUCCESS && + (io->io_hdr.flags & CTL_FLAG_STATUS_SENT) == 0) { + uint8_t mrie = lun->MODE_IE.mrie; + uint8_t per = ((lun->MODE_RWER.byte3 & SMS_RWER_PER) || + (lun->MODE_VER.byte3 & SMS_VER_PER)); + if (((mrie == SIEP_MRIE_REC_COND && per) || + mrie == SIEP_MRIE_REC_UNCOND || + mrie == SIEP_MRIE_NO_SENSE) && + (ctl_get_cmd_entry(&io->scsiio, NULL)->flags & + CTL_CMD_FLAG_NO_SENSE) == 0) { + ctl_set_sense(&io->scsiio, + /*current_error*/ 1, + /*sense_key*/ (mrie == SIEP_MRIE_NO_SENSE) ? + SSD_KEY_NO_SENSE : SSD_KEY_RECOVERED_ERROR, + /*asc*/ lun->ie_asc, + /*ascq*/ lun->ie_ascq, + SSD_ELEM_NONE); + lun->ie_reported = 1; + } + } else if (lun->ie_reported < 0) + lun->ie_reported = 0; + + /* * Check to see if we have any errors to inject here. We only * inject errors for commands that don't already have errors set. */ @@ -13528,10 +13501,6 @@ ctl_done(union ctl_io *io) #ifdef CTL_IO_DELAY if (io->io_hdr.flags & CTL_FLAG_DELAY_DONE) { - struct ctl_lun *lun; - - lun =(struct ctl_lun *)io->io_hdr.ctl_private[CTL_PRIV_LUN].ptr; - io->io_hdr.flags &= ~CTL_FLAG_DELAY_DONE; } else { struct ctl_lun *lun; @@ -13647,7 +13616,6 @@ ctl_thresh_thread(void *arg) { struct ctl_softc *softc = (struct ctl_softc *)arg; struct ctl_lun *lun; - struct scsi_da_rw_recovery_page *rwpage; struct ctl_logical_block_provisioning_page *page; const char *attr; union ctl_ha_msg msg; @@ -13666,11 +13634,10 @@ ctl_thresh_thread(void *arg) if ((lun->flags & CTL_LUN_PRIMARY_SC) == 0 && softc->ha_mode == CTL_HA_MODE_XFER) continue; - rwpage = &lun->mode_pages.rw_er_page[CTL_PAGE_CURRENT]; - if ((rwpage->byte8 & SMS_RWER_LBPERE) == 0) + if ((lun->MODE_RWER.byte8 & SMS_RWER_LBPERE) == 0) continue; e = 0; - page = &lun->mode_pages.lbp_page[CTL_PAGE_CURRENT]; + page = &lun->MODE_LBP; for (i = 0; i < CTL_NUM_LBP_THRESH; i++) { if ((page->descr[i].flags & SLBPPD_ENABLED) == 0) continue; diff --git a/sys/cam/ctl/ctl.h b/sys/cam/ctl/ctl.h index 3c47a6f..7b4d06c 100644 --- a/sys/cam/ctl/ctl.h +++ b/sys/cam/ctl/ctl.h @@ -127,7 +127,8 @@ typedef enum { CTL_UA_ASYM_ACC_CHANGE = 0x2000, CTL_UA_CAPACITY_CHANGE = 0x4000, CTL_UA_THIN_PROV_THRES = 0x8000, - CTL_UA_MEDIUM_CHANGE = 0x10000 + CTL_UA_MEDIUM_CHANGE = 0x10000, + CTL_UA_IE = 0x20000 } ctl_ua_type; #ifdef _KERNEL @@ -154,23 +155,21 @@ int ctl_ffz(uint32_t *mask, uint32_t first, uint32_t last); int ctl_set_mask(uint32_t *mask, uint32_t bit); int ctl_clear_mask(uint32_t *mask, uint32_t bit); int ctl_is_set(uint32_t *mask, uint32_t bit); -int ctl_caching_sp_handler(struct ctl_scsiio *ctsio, - struct ctl_page_index *page_index, uint8_t *page_ptr); -int ctl_control_page_handler(struct ctl_scsiio *ctsio, +int ctl_default_page_handler(struct ctl_scsiio *ctsio, struct ctl_page_index *page_index, uint8_t *page_ptr); -int ctl_debugconf_sp_sense_handler(struct ctl_scsiio *ctsio, - struct ctl_page_index *page_index, - int pc); -int ctl_debugconf_sp_select_handler(struct ctl_scsiio *ctsio, - struct ctl_page_index *page_index, - uint8_t *page_ptr); +int ctl_ie_page_handler(struct ctl_scsiio *ctsio, + struct ctl_page_index *page_index, + uint8_t *page_ptr); int ctl_lbp_log_sense_handler(struct ctl_scsiio *ctsio, struct ctl_page_index *page_index, int pc); int ctl_sap_log_sense_handler(struct ctl_scsiio *ctsio, struct ctl_page_index *page_index, int pc); +int ctl_ie_log_sense_handler(struct ctl_scsiio *ctsio, + struct ctl_page_index *page_index, + int pc); int ctl_config_move_done(union ctl_io *io); void ctl_datamove(union ctl_io *io); void ctl_serseq_done(union ctl_io *io); diff --git a/sys/cam/ctl/ctl_backend_block.c b/sys/cam/ctl/ctl_backend_block.c index 924455d..8fa93cf 100644 --- a/sys/cam/ctl/ctl_backend_block.c +++ b/sys/cam/ctl/ctl_backend_block.c @@ -203,7 +203,8 @@ struct ctl_be_block_io { int num_bios_sent; int num_bios_done; int send_complete; - int num_errors; + int first_error; + uint64_t first_error_offset; struct bintime ds_t0; devstat_tag_type ds_tag_type; devstat_trans_flags ds_trans_type; @@ -489,8 +490,12 @@ ctl_be_block_biodone(struct bio *bio) error = bio->bio_error; mtx_lock(&be_lun->io_lock); - if (error != 0) - beio->num_errors++; + if (error != 0 && + (beio->first_error == 0 || + bio->bio_offset < beio->first_error_offset)) { + beio->first_error = error; + beio->first_error_offset = bio->bio_offset; + } beio->num_bios_done++; @@ -523,7 +528,8 @@ ctl_be_block_biodone(struct bio *bio) * If there are any errors from the backing device, we fail the * entire I/O with a medium error. */ - if (beio->num_errors > 0) { + error = beio->first_error; + if (error != 0) { if (error == EOPNOTSUPP) { ctl_set_invalid_opcode(&io->scsiio); } else if (error == ENOSPC || error == EDQUOT) { diff --git a/sys/cam/ctl/ctl_cmd_table.c b/sys/cam/ctl/ctl_cmd_table.c index 498f7c5..eaedea6 100644 --- a/sys/cam/ctl/ctl_cmd_table.c +++ b/sys/cam/ctl/ctl_cmd_table.c @@ -62,6 +62,215 @@ * tables. */ +/* 3B WRITE BUFFER */ +const struct ctl_cmd_entry ctl_cmd_table_3b[32] = +{ +/* 00 WRITE BUFFER HDR DATA */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 01 WRITE BUFFER VENDOR */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 02 WRITE BUFFER DATA */ +{ctl_write_buffer, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | + CTL_CMD_FLAG_OK_ON_NO_MEDIA | + CTL_CMD_FLAG_OK_ON_STANDBY | + CTL_FLAG_DATA_OUT, + CTL_LUN_PAT_NONE, + 10, {0x02, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, + +/* 03 WRITE BUFFER DESCR */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 04 WRITE BUFFER DOWNLOAD */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 05 WRITE BUFFER DOWNLOAD SAVE */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 06 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 07 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 08 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 09 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 0A WRITE BUFFER ECHO */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 0B WRITE BUFFER ECHO DESCRIPTOR */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 0C */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 0D */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 0E */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 0F */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 10 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 11 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 12 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 13 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 14 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 15 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 16 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 17 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 18 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 19 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 1A */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 1B */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 1C WRITE BUFFER ERROR HISTORY */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 1d-1f */ +}; + +/* 3C READ BUFFER(10) */ +const struct ctl_cmd_entry ctl_cmd_table_3c[32] = +{ +/* 00 READ BUFFER(10) HDR DATA */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 01 READ BUFFER(10) VENDOR */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 02 READ BUFFER(10) DATA */ +{ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | + CTL_CMD_FLAG_OK_ON_NO_MEDIA | + CTL_CMD_FLAG_OK_ON_STANDBY | + CTL_FLAG_DATA_IN | + CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, + CTL_LUN_PAT_NONE, + 10, {0x02, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, + +/* 03 READ BUFFER(10) DESCR */ +{ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | + CTL_CMD_FLAG_OK_ON_NO_MEDIA | + CTL_CMD_FLAG_OK_ON_STANDBY | + CTL_FLAG_DATA_IN | + CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, + CTL_LUN_PAT_NONE, + 10, {0x03, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, + +/* 04 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 05 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 06 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 07 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 08 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 09 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 0A READ BUFFER(10) ECHO */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 0B READ BUFFER(10) ECHO DESCRIPTOR */ +{ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | + CTL_CMD_FLAG_OK_ON_NO_MEDIA | + CTL_CMD_FLAG_OK_ON_STANDBY | + CTL_FLAG_DATA_IN | + CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, + CTL_LUN_PAT_NONE, + 10, {0x0b, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, + +/* 0C */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 0D */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 0E */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 0F */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 10 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 11 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 12 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 13 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 14 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 15 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 16 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 17 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 18 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 19 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 1A */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 1B */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 1C READ BUFFER(10) ERROR HISTORY */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 1d-1f */ +}; + /* 5E PERSISTENT RESERVE IN */ const struct ctl_cmd_entry ctl_cmd_table_5e[32] = { @@ -273,7 +482,7 @@ const struct ctl_cmd_entry ctl_cmd_table_83[32] = /* 15 */ {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, -/* 16 */ +/* 16 SET TAPE STREAM MIRRORING */ {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, /* 17 */ @@ -297,6 +506,11 @@ const struct ctl_cmd_entry ctl_cmd_table_83[32] = CTL_FLAG_DATA_NONE, CTL_LUN_PAT_NONE, 16, { 0x1c, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x07}}, + +/* 1D COPY OPERATION CLOSE */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 1e-1f */ }; /* 84 RECEIVE COPY STATUS */ @@ -365,8 +579,164 @@ const struct ctl_cmd_entry ctl_cmd_table_84[32] = CTL_CMD_FLAG_ALLOW_ON_PR_RESV, CTL_LUN_PAT_NONE, 16, {0x08, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, + +/* 09 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 0A */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 0B */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 0C */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 0D */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 0E */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 0F */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 10 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 11 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 12 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 13 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 14 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 15 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 16 REPORT TAPE STREAM MIRRORING */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 17-1f */ }; +/* 9B READ BUFFER(16) */ +const struct ctl_cmd_entry ctl_cmd_table_9b[32] = +{ +/* 00 READ BUFFER(16) HDR DATA */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 01 READ BUFFER(16) VENDOR */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 02 READ BUFFER(16) DATA */ +{ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | + CTL_CMD_FLAG_OK_ON_NO_MEDIA | + CTL_CMD_FLAG_OK_ON_STANDBY | + CTL_FLAG_DATA_IN, + CTL_LUN_PAT_NONE, + 16, {0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, + +/* 03 READ BUFFER(16) DESCR */ +{ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | + CTL_CMD_FLAG_OK_ON_NO_MEDIA | + CTL_CMD_FLAG_OK_ON_STANDBY | + CTL_FLAG_DATA_IN, + CTL_LUN_PAT_NONE, + 16, {0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, + +/* 04 READ BUFFER(16) */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 05 READ BUFFER(16) */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 06 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 07 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 08 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 09 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 0A READ BUFFER(16) ECHO */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 0B READ BUFFER(16) ECHO DESCRIPTOR */ +{ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | + CTL_CMD_FLAG_OK_ON_NO_MEDIA | + CTL_CMD_FLAG_OK_ON_STANDBY | + CTL_FLAG_DATA_IN, + CTL_LUN_PAT_NONE, + 16, {0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, + +/* 0C */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 0D */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 0E */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 0F */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 10 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 11 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 12 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 13 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 14 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 15 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 16 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 17 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 18 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 19 */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 1A */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 1B */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 1C READ BUFFER(16) ERROR HISTORY */ +{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, + +/* 1d-1f */ +}; + + /* 9E SERVICE ACTION IN(16) */ const struct ctl_cmd_entry ctl_cmd_table_9e[32] = { @@ -503,7 +873,7 @@ const struct ctl_cmd_entry ctl_cmd_table_a3[32] = CTL_FLAG_DATA_IN | CTL_CMD_FLAG_ALLOW_ON_PR_RESV, CTL_LUN_PAT_NONE, - 12, {0x0d, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, + 12, {0x0d, 0x80, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, /* 0E */ {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, @@ -782,21 +1152,12 @@ const struct ctl_cmd_entry ctl_cmd_table[256] = {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, /* 3B WRITE BUFFER */ -{ctl_write_buffer, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | - CTL_CMD_FLAG_OK_ON_NO_MEDIA | - CTL_CMD_FLAG_OK_ON_STANDBY | - CTL_FLAG_DATA_OUT, - CTL_LUN_PAT_NONE, - 10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, +{__DECONST(ctl_opfunc *, ctl_cmd_table_3b), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, + CTL_LUN_PAT_NONE}, /* 3C READ BUFFER */ -{ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | - CTL_CMD_FLAG_OK_ON_NO_MEDIA | - CTL_CMD_FLAG_OK_ON_STANDBY | - CTL_FLAG_DATA_IN | - CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, - CTL_LUN_PAT_NONE, - 10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, +{__DECONST(ctl_opfunc *, ctl_cmd_table_3c), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, + CTL_LUN_PAT_NONE}, /* 3D UPDATE BLOCK */ {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, @@ -1154,14 +1515,8 @@ const struct ctl_cmd_entry ctl_cmd_table[256] = {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, /* 9B READ BUFFER(16) */ -{ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | - CTL_CMD_FLAG_OK_ON_NO_MEDIA | - CTL_CMD_FLAG_OK_ON_STANDBY | - CTL_FLAG_DATA_IN | - CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, - CTL_LUN_PAT_NONE, - 10, {0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, +{__DECONST(ctl_opfunc *, ctl_cmd_table_9b), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, + CTL_LUN_PAT_NONE}, /* 9C WRITE ATOMIC (16) */ {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, diff --git a/sys/cam/ctl/ctl_error.c b/sys/cam/ctl/ctl_error.c index 61ec4ec..02330a1 100644 --- a/sys/cam/ctl/ctl_error.c +++ b/sys/cam/ctl/ctl_error.c @@ -65,9 +65,9 @@ __FBSDID("$FreeBSD$"); #include <cam/ctl/ctl_private.h> void -ctl_set_sense_data_va(struct scsi_sense_data *sense_data, void *lunptr, - scsi_sense_data_type sense_format, int current_error, - int sense_key, int asc, int ascq, va_list ap) +ctl_set_sense_data_va(struct scsi_sense_data *sense_data, u_int *sense_len, + void *lunptr, scsi_sense_data_type sense_format, int current_error, + int sense_key, int asc, int ascq, va_list ap) { struct ctl_lun *lun; @@ -83,27 +83,36 @@ ctl_set_sense_data_va(struct scsi_sense_data *sense_data, void *lunptr, * sense if the LUN exists and descriptor sense is turned * on for that LUN. */ - if ((lun != NULL) - && (lun->flags & CTL_LUN_SENSE_DESC)) + if ((lun != NULL) && (lun->MODE_CTRL.rlec & SCP_DSENSE)) sense_format = SSD_TYPE_DESC; else sense_format = SSD_TYPE_FIXED; } - scsi_set_sense_data_va(sense_data, sense_format, current_error, - sense_key, asc, ascq, ap); + /* + * Determine maximum sense data length to return. + */ + if (*sense_len == 0) { + if ((lun != NULL) && (lun->MODE_CTRLE.max_sense != 0)) + *sense_len = lun->MODE_CTRLE.max_sense; + else + *sense_len = SSD_FULL_SIZE; + } + + scsi_set_sense_data_va(sense_data, sense_len, sense_format, + current_error, sense_key, asc, ascq, ap); } void -ctl_set_sense_data(struct scsi_sense_data *sense_data, void *lunptr, - scsi_sense_data_type sense_format, int current_error, - int sense_key, int asc, int ascq, ...) +ctl_set_sense_data(struct scsi_sense_data *sense_data, u_int *sense_len, + void *lunptr, scsi_sense_data_type sense_format, int current_error, + int sense_key, int asc, int ascq, ...) { va_list ap; va_start(ap, ascq); - ctl_set_sense_data_va(sense_data, lunptr, sense_format, current_error, - sense_key, asc, ascq, ap); + ctl_set_sense_data_va(sense_data, sense_len, lunptr, sense_format, + current_error, sense_key, asc, ascq, ap); va_end(ap); } @@ -113,6 +122,7 @@ ctl_set_sense(struct ctl_scsiio *ctsio, int current_error, int sense_key, { va_list ap; struct ctl_lun *lun; + u_int sense_len; /* * The LUN can't go away until all of the commands have been @@ -122,7 +132,8 @@ ctl_set_sense(struct ctl_scsiio *ctsio, int current_error, int sense_key, lun = (struct ctl_lun *)ctsio->io_hdr.ctl_private[CTL_PRIV_LUN].ptr; va_start(ap, ascq); - ctl_set_sense_data_va(&ctsio->sense_data, + sense_len = 0; + ctl_set_sense_data_va(&ctsio->sense_data, &sense_len, lun, SSD_TYPE_NONE, current_error, @@ -133,7 +144,7 @@ ctl_set_sense(struct ctl_scsiio *ctsio, int current_error, int sense_key, va_end(ap); ctsio->scsi_status = SCSI_STATUS_CHECK_COND; - ctsio->sense_len = SSD_FULL_SIZE; + ctsio->sense_len = sense_len; ctsio->io_hdr.status = CTL_SCSI_ERROR | CTL_AUTOSENSE; } @@ -149,6 +160,7 @@ ctl_sense_to_desc(struct scsi_sense_data_fixed *sense_src, { struct scsi_sense_stream stream_sense; int current_error; + u_int sense_len; uint8_t stream_bits; bzero(sense_dest, sizeof(*sense_dest)); @@ -174,7 +186,8 @@ ctl_sense_to_desc(struct scsi_sense_data_fixed *sense_src, * value is set in the fixed sense data, set it in the descriptor * data. Otherwise, skip it. */ - ctl_set_sense_data((struct scsi_sense_data *)sense_dest, + sense_len = SSD_FULL_SIZE; + ctl_set_sense_data((struct scsi_sense_data *)sense_dest, &sense_len, /*lun*/ NULL, /*sense_format*/ SSD_TYPE_DESC, current_error, @@ -182,8 +195,8 @@ ctl_sense_to_desc(struct scsi_sense_data_fixed *sense_src, /*asc*/ sense_src->add_sense_code, /*ascq*/ sense_src->add_sense_code_qual, - /* Information Bytes */ - (scsi_4btoul(sense_src->info) != 0) ? + /* Information Bytes */ + (sense_src->error_code & SSD_ERRCODE_VALID) ? SSD_ELEM_INFO : SSD_ELEM_SKIP, sizeof(sense_src->info), sense_src->info, @@ -234,6 +247,7 @@ ctl_sense_to_fixed(struct scsi_sense_data_desc *sense_src, int info_size = 0, cmd_size = 0, fru_size = 0; int sks_size = 0, stream_size = 0; int pos; + u_int sense_len; if ((sense_src->error_code & SSD_ERRCODE) == SSD_DESC_CURRENT_ERROR) current_error = 1; @@ -319,7 +333,8 @@ ctl_sense_to_fixed(struct scsi_sense_data_desc *sense_src, } } - ctl_set_sense_data((struct scsi_sense_data *)sense_dest, + sense_len = SSD_FULL_SIZE; + ctl_set_sense_data((struct scsi_sense_data *)sense_dest, &sense_len, /*lun*/ NULL, /*sense_format*/ SSD_TYPE_FIXED, current_error, @@ -367,7 +382,7 @@ ctl_set_ua(struct ctl_scsiio *ctsio, int asc, int ascq) } static void -ctl_ua_to_acsq(struct ctl_lun *lun, ctl_ua_type ua_to_build, int *asc, +ctl_ua_to_ascq(struct ctl_lun *lun, ctl_ua_type ua_to_build, int *asc, int *ascq, ctl_ua_type *ua_to_clear, uint8_t **info) { @@ -461,6 +476,11 @@ ctl_ua_to_acsq(struct ctl_lun *lun, ctl_ua_type ua_to_build, int *asc, *asc = 0x28; *ascq = 0x00; break; + case CTL_UA_IE: + /* Informational exception */ + *asc = lun->ie_asc; + *ascq = lun->ie_ascq; + break; default: panic("%s: Unknown UA %x", __func__, ua_to_build); } @@ -488,7 +508,7 @@ ctl_build_qae(struct ctl_lun *lun, uint32_t initidx, uint8_t *resp) ua_to_build = (1 << (ffs(ua) - 1)); ua_to_clear = ua_to_build; info = NULL; - ctl_ua_to_acsq(lun, ua_to_build, &asc, &ascq, &ua_to_clear, &info); + ctl_ua_to_ascq(lun, ua_to_build, &asc, &ascq, &ua_to_clear, &info); resp[0] = SSD_KEY_UNIT_ATTENTION; if (ua_to_build == ua) @@ -497,12 +517,13 @@ ctl_build_qae(struct ctl_lun *lun, uint32_t initidx, uint8_t *resp) resp[0] |= 0x20; resp[1] = asc; resp[2] = ascq; - return (ua); + return (ua_to_build); } ctl_ua_type ctl_build_ua(struct ctl_lun *lun, uint32_t initidx, - struct scsi_sense_data *sense, scsi_sense_data_type sense_format) + struct scsi_sense_data *sense, u_int *sense_len, + scsi_sense_data_type sense_format) { ctl_ua_type *ua; ctl_ua_type ua_to_build, ua_to_clear; @@ -511,6 +532,7 @@ ctl_build_ua(struct ctl_lun *lun, uint32_t initidx, uint32_t p, i; mtx_assert(&lun->lun_lock, MA_OWNED); + mtx_assert(&lun->ctl_softc->ctl_lock, MA_NOTOWNED); p = initidx / CTL_MAX_INIT_PER_PORT; if ((ua = lun->pending_ua[p]) == NULL) { mtx_unlock(&lun->lun_lock); @@ -533,9 +555,9 @@ ctl_build_ua(struct ctl_lun *lun, uint32_t initidx, ua_to_build = (1 << (ffs(ua[i]) - 1)); ua_to_clear = ua_to_build; info = NULL; - ctl_ua_to_acsq(lun, ua_to_build, &asc, &ascq, &ua_to_clear, &info); + ctl_ua_to_ascq(lun, ua_to_build, &asc, &ascq, &ua_to_clear, &info); - ctl_set_sense_data(sense, lun, sense_format, /*current_error*/ 1, + ctl_set_sense_data(sense, sense_len, lun, sense_format, 1, /*sense_key*/ SSD_KEY_UNIT_ATTENTION, asc, ascq, ((info != NULL) ? SSD_ELEM_INFO : SSD_ELEM_SKIP), 8, info, SSD_ELEM_NONE); @@ -543,6 +565,17 @@ ctl_build_ua(struct ctl_lun *lun, uint32_t initidx, /* We're reporting this UA, so clear it */ ua[i] &= ~ua_to_clear; + if (ua_to_build == CTL_UA_LUN_CHANGE) { + mtx_unlock(&lun->lun_lock); + mtx_lock(&lun->ctl_softc->ctl_lock); + ctl_clr_ua_allluns(lun->ctl_softc, initidx, ua_to_build); + mtx_unlock(&lun->ctl_softc->ctl_lock); + mtx_lock(&lun->lun_lock); + } else if (ua_to_build == CTL_UA_THIN_PROV_THRES && + (lun->MODE_LBP.main.flags & SLBPP_SITUA) != 0) { + ctl_clr_ua_all(lun, -1, ua_to_build); + } + return (ua_to_build); } @@ -723,14 +756,20 @@ ctl_set_aborted(struct ctl_scsiio *ctsio) } void -ctl_set_lba_out_of_range(struct ctl_scsiio *ctsio) +ctl_set_lba_out_of_range(struct ctl_scsiio *ctsio, uint64_t lba) { + uint8_t info[8]; + + scsi_u64to8b(lba, info); + /* "Logical block address out of range" */ ctl_set_sense(ctsio, /*current_error*/ 1, /*sense_key*/ SSD_KEY_ILLEGAL_REQUEST, /*asc*/ 0x21, /*ascq*/ 0x00, + /*type*/ (lba != 0) ? SSD_ELEM_INFO : SSD_ELEM_SKIP, + /*size*/ sizeof(info), /*data*/ &info, SSD_ELEM_NONE); } diff --git a/sys/cam/ctl/ctl_error.h b/sys/cam/ctl/ctl_error.h index 9870643..d4cdbb3 100644 --- a/sys/cam/ctl/ctl_error.h +++ b/sys/cam/ctl/ctl_error.h @@ -45,12 +45,12 @@ struct ctl_lun; -void ctl_set_sense_data_va(struct scsi_sense_data *sense_data, void *lun, - scsi_sense_data_type sense_format, int current_error, - int sense_key, int asc, int ascq, va_list ap); -void ctl_set_sense_data(struct scsi_sense_data *sense_data, void *lun, - scsi_sense_data_type sense_format, int current_error, - int sense_key, int asc, int ascq, ...); +void ctl_set_sense_data_va(struct scsi_sense_data *sense_data, u_int *sense_len, + void *lun, scsi_sense_data_type sense_format, int current_error, + int sense_key, int asc, int ascq, va_list ap); +void ctl_set_sense_data(struct scsi_sense_data *sense_data, u_int *sense_len, + void *lun, scsi_sense_data_type sense_format, int current_error, + int sense_key, int asc, int ascq, ...); void ctl_set_sense(struct ctl_scsiio *ctsio, int current_error, int sense_key, int asc, int ascq, ...); void ctl_sense_to_desc(struct scsi_sense_data_fixed *sense_src, @@ -60,7 +60,8 @@ void ctl_sense_to_fixed(struct scsi_sense_data_desc *sense_src, void ctl_set_ua(struct ctl_scsiio *ctsio, int asc, int ascq); ctl_ua_type ctl_build_qae(struct ctl_lun *lun, uint32_t initidx, uint8_t *resp); ctl_ua_type ctl_build_ua(struct ctl_lun *lun, uint32_t initidx, - struct scsi_sense_data *sense, scsi_sense_data_type sense_format); + struct scsi_sense_data *sense, u_int *sense_len, + scsi_sense_data_type sense_format); void ctl_set_overlapped_cmd(struct ctl_scsiio *ctsio); void ctl_set_overlapped_tag(struct ctl_scsiio *ctsio, uint8_t tag); void ctl_set_invalid_field(struct ctl_scsiio *ctsio, int sks_valid, int command, @@ -76,7 +77,7 @@ void ctl_set_internal_failure(struct ctl_scsiio *ctsio, int sks_valid, uint16_t retry_count); void ctl_set_medium_error(struct ctl_scsiio *ctsio, int read); void ctl_set_aborted(struct ctl_scsiio *ctsio); -void ctl_set_lba_out_of_range(struct ctl_scsiio *ctsio); +void ctl_set_lba_out_of_range(struct ctl_scsiio *ctsio, uint64_t lba); void ctl_set_lun_stopped(struct ctl_scsiio *ctsio); void ctl_set_lun_int_reqd(struct ctl_scsiio *ctsio); void ctl_set_lun_ejected(struct ctl_scsiio *ctsio); diff --git a/sys/cam/ctl/ctl_frontend_cam_sim.c b/sys/cam/ctl/ctl_frontend_cam_sim.c index 9f9ea15..2166f45 100644 --- a/sys/cam/ctl/ctl_frontend_cam_sim.c +++ b/sys/cam/ctl/ctl_frontend_cam_sim.c @@ -106,7 +106,7 @@ static void cfcs_async(void *callback_arg, uint32_t code, struct cfcs_softc cfcs_softc; /* - * This is primarly intended to allow for error injection to test the CAM + * This is primarily intended to allow for error injection to test the CAM * sense data and sense residual handling code. This sets the maximum * amount of SCSI sense data that we will report to CAM. */ diff --git a/sys/cam/ctl/ctl_frontend_ioctl.c b/sys/cam/ctl/ctl_frontend_ioctl.c index 6ef2f66..97f29f1 100644 --- a/sys/cam/ctl/ctl_frontend_ioctl.c +++ b/sys/cam/ctl/ctl_frontend_ioctl.c @@ -339,7 +339,7 @@ cfi_submit_wait(union ctl_io *io) mtx_lock(¶ms.ioctl_mtx); /* * Check the state here, and don't sleep if the state has - * already changed (i.e. wakeup has already occured, but we + * already changed (i.e. wakeup has already occurred, but we * weren't waiting yet). */ if (params.state == last_state) { diff --git a/sys/cam/ctl/ctl_ha.c b/sys/cam/ctl/ctl_ha.c index 5e31b41..1d85847 100644 --- a/sys/cam/ctl/ctl_ha.c +++ b/sys/cam/ctl/ctl_ha.c @@ -444,7 +444,8 @@ ctl_ha_connect(struct ha_softc *softc) memcpy(&sa, &softc->ha_peer_in, sizeof(sa)); error = soconnect(so, (struct sockaddr *)&sa, td); if (error != 0) { - printf("%s: soconnect() error %d\n", __func__, error); + if (bootverbose) + printf("%s: soconnect() error %d\n", __func__, error); goto out; } return (0); diff --git a/sys/cam/ctl/ctl_io.h b/sys/cam/ctl/ctl_io.h index 21db94a..bad030f 100644 --- a/sys/cam/ctl/ctl_io.h +++ b/sys/cam/ctl/ctl_io.h @@ -80,7 +80,7 @@ typedef enum { /* * WARNING: Keep the data in/out/none flags where they are. They're used - * in conjuction with ctl_cmd_flags. See comment above ctl_cmd_flags + * in conjunction with ctl_cmd_flags. See comment above ctl_cmd_flags * definition in ctl_private.h. */ typedef enum { diff --git a/sys/cam/ctl/ctl_ioctl.h b/sys/cam/ctl/ctl_ioctl.h index 347f931..e8f6b87 100644 --- a/sys/cam/ctl/ctl_ioctl.h +++ b/sys/cam/ctl/ctl_ioctl.h @@ -313,7 +313,7 @@ typedef enum { * * namelen: Length of the name field, including the terminating NUL. * - * name: Name of the paramter. This must be NUL-terminated. + * name: Name of the parameter. This must be NUL-terminated. * * flags: Flags for the parameter, see above for values. * @@ -485,7 +485,7 @@ struct ctl_lun_req { * NEED_MORE_SPACE: The allocated length of the entries field is too * small for the available data. * - * ERROR: An error occured, look at the error string for a + * ERROR: An error occurred, look at the error string for a * description of the error. */ typedef enum { @@ -573,7 +573,7 @@ struct ctl_req { * * OK: Request completed successfully. * - * ERROR: An error occured, look at the error string for a + * ERROR: An error occurred, look at the error string for a * description of the error. * * CTL_ISCSI_LIST_NEED_MORE_SPACE: diff --git a/sys/cam/ctl/ctl_private.h b/sys/cam/ctl/ctl_private.h index 959d79e..e118343 100644 --- a/sys/cam/ctl/ctl_private.h +++ b/sys/cam/ctl/ctl_private.h @@ -151,7 +151,6 @@ typedef enum { CTL_LUN_EJECTED = 0x080, CTL_LUN_PR_RESERVED = 0x100, CTL_LUN_PRIMARY_SC = 0x200, - CTL_LUN_SENSE_DESC = 0x400, CTL_LUN_READONLY = 0x800, CTL_LUN_PEER_SC_PRIMARY = 0x1000, CTL_LUN_REMOVABLE = 0x2000 @@ -272,30 +271,29 @@ struct ctl_logical_block_provisioning_page { static const struct ctl_page_index page_index_template[] = { {SMS_RW_ERROR_RECOVERY_PAGE, 0, sizeof(struct scsi_da_rw_recovery_page), NULL, - CTL_PAGE_FLAG_DIRECT | CTL_PAGE_FLAG_CDROM, NULL, NULL}, + CTL_PAGE_FLAG_DIRECT | CTL_PAGE_FLAG_CDROM, NULL, ctl_default_page_handler}, {SMS_FORMAT_DEVICE_PAGE, 0, sizeof(struct scsi_format_page), NULL, CTL_PAGE_FLAG_DIRECT, NULL, NULL}, {SMS_RIGID_DISK_PAGE, 0, sizeof(struct scsi_rigid_disk_page), NULL, CTL_PAGE_FLAG_DIRECT, NULL, NULL}, + {SMS_VERIFY_ERROR_RECOVERY_PAGE, 0, sizeof(struct scsi_da_verify_recovery_page), NULL, + CTL_PAGE_FLAG_DIRECT | CTL_PAGE_FLAG_CDROM, NULL, ctl_default_page_handler}, {SMS_CACHING_PAGE, 0, sizeof(struct scsi_caching_page), NULL, CTL_PAGE_FLAG_DIRECT | CTL_PAGE_FLAG_CDROM, - NULL, ctl_caching_sp_handler}, + NULL, ctl_default_page_handler}, {SMS_CONTROL_MODE_PAGE, 0, sizeof(struct scsi_control_page), NULL, - CTL_PAGE_FLAG_ALL, NULL, ctl_control_page_handler}, + CTL_PAGE_FLAG_ALL, NULL, ctl_default_page_handler}, {SMS_CONTROL_MODE_PAGE | SMPH_SPF, 0x01, sizeof(struct scsi_control_ext_page), NULL, - CTL_PAGE_FLAG_ALL, NULL, NULL}, + CTL_PAGE_FLAG_ALL, NULL, ctl_default_page_handler}, {SMS_INFO_EXCEPTIONS_PAGE, 0, sizeof(struct scsi_info_exceptions_page), NULL, - CTL_PAGE_FLAG_ALL, NULL, NULL}, + CTL_PAGE_FLAG_ALL, NULL, ctl_ie_page_handler}, {SMS_INFO_EXCEPTIONS_PAGE | SMPH_SPF, 0x02, sizeof(struct ctl_logical_block_provisioning_page), NULL, - CTL_PAGE_FLAG_DIRECT, NULL, NULL}, + CTL_PAGE_FLAG_DIRECT, NULL, ctl_default_page_handler}, {SMS_CDDVD_CAPS_PAGE, 0, sizeof(struct scsi_cddvd_capabilities_page), NULL, CTL_PAGE_FLAG_CDROM, NULL, NULL}, - {SMS_VENDOR_SPECIFIC_PAGE | SMPH_SPF, DBGCNF_SUBPAGE_CODE, - sizeof(struct copan_debugconf_subpage), NULL, CTL_PAGE_FLAG_ALL, - ctl_debugconf_sp_sense_handler, ctl_debugconf_sp_select_handler}, }; #define CTL_NUM_MODE_PAGES sizeof(page_index_template)/ \ @@ -305,16 +303,27 @@ struct ctl_mode_pages { struct scsi_da_rw_recovery_page rw_er_page[4]; struct scsi_format_page format_page[4]; struct scsi_rigid_disk_page rigid_disk_page[4]; + struct scsi_da_verify_recovery_page verify_er_page[4]; struct scsi_caching_page caching_page[4]; struct scsi_control_page control_page[4]; struct scsi_control_ext_page control_ext_page[4]; struct scsi_info_exceptions_page ie_page[4]; struct ctl_logical_block_provisioning_page lbp_page[4]; struct scsi_cddvd_capabilities_page cddvd_page[4]; - struct copan_debugconf_subpage debugconf_subpage[4]; struct ctl_page_index index[CTL_NUM_MODE_PAGES]; }; +#define MODE_RWER mode_pages.rw_er_page[CTL_PAGE_CURRENT] +#define MODE_FMT mode_pages.format_page[CTL_PAGE_CURRENT] +#define MODE_RDISK mode_pages.rigid_disk_page[CTL_PAGE_CURRENT] +#define MODE_VER mode_pages.verify_er_page[CTL_PAGE_CURRENT] +#define MODE_CACHING mode_pages.caching_page[CTL_PAGE_CURRENT] +#define MODE_CTRL mode_pages.control_page[CTL_PAGE_CURRENT] +#define MODE_CTRLE mode_pages.control_ext_page[CTL_PAGE_CURRENT] +#define MODE_IE mode_pages.ie_page[CTL_PAGE_CURRENT] +#define MODE_LBP mode_pages.lbp_page[CTL_PAGE_CURRENT] +#define MODE_CDDVD mode_pages.cddvd_page[CTL_PAGE_CURRENT] + static const struct ctl_page_index log_page_index_template[] = { {SLS_SUPPORTED_PAGES_PAGE, 0, 0, NULL, CTL_PAGE_FLAG_ALL, NULL, NULL}, @@ -324,6 +333,8 @@ static const struct ctl_page_index log_page_index_template[] = { CTL_PAGE_FLAG_DIRECT, ctl_lbp_log_sense_handler, NULL}, {SLS_STAT_AND_PERF, 0, 0, NULL, CTL_PAGE_FLAG_ALL, ctl_sap_log_sense_handler, NULL}, + {SLS_IE_PAGE, 0, 0, NULL, + CTL_PAGE_FLAG_ALL, ctl_ie_log_sense_handler, NULL}, }; #define CTL_NUM_LOG_PAGES sizeof(log_page_index_template)/ \ @@ -338,6 +349,7 @@ struct ctl_log_pages { struct scsi_log_idle_time it; struct scsi_log_time_interval ti; } stat_page; + struct scsi_log_informational_exceptions ie_page; struct ctl_page_index index[CTL_NUM_LOG_PAGES]; }; @@ -385,6 +397,11 @@ struct ctl_lun { ctl_ua_type *pending_ua[CTL_MAX_PORTS]; uint8_t ua_tpt_info[8]; time_t lasttpt; + uint8_t ie_asc; /* Informational exceptions */ + uint8_t ie_ascq; + int ie_reported; /* Already reported */ + uint32_t ie_reportcnt; /* REPORT COUNT */ + struct callout ie_callout; /* INTERVAL TIMER */ struct ctl_mode_pages mode_pages; struct ctl_log_pages log_pages; struct ctl_lun_io_stats stats; diff --git a/sys/cam/ctl/ctl_tpc.c b/sys/cam/ctl/ctl_tpc.c index bebaccf..484293b 100644 --- a/sys/cam/ctl/ctl_tpc.c +++ b/sys/cam/ctl/ctl_tpc.c @@ -82,6 +82,8 @@ struct tpc_list; TAILQ_HEAD(runl, tpc_io); struct tpc_io { union ctl_io *io; + uint8_t target; + uint32_t cscd; uint64_t lun; struct tpc_list *list; struct runl run; @@ -134,6 +136,11 @@ struct tpc_list { int completed; time_t last_active; TAILQ_HEAD(, tpc_io) allio; + struct scsi_sense_data fwd_sense_data; + uint8_t fwd_sense_len; + uint8_t fwd_scsi_status; + uint8_t fwd_target; + uint16_t fwd_cscd; struct scsi_sense_data sense_data; uint8_t sense_len; uint8_t scsi_status; @@ -809,6 +816,44 @@ tpc_resolve(struct tpc_list *list, uint16_t idx, uint32_t *ss, list->init_port, &list->cscd[idx], ss, pb, pbo)); } +static void +tpc_set_io_error_sense(struct tpc_list *list) +{ + int flen; + uint8_t csi[4]; + uint8_t sks[3]; + uint8_t fbuf[4 + 64]; + + scsi_ulto4b(list->curseg, csi); + if (list->fwd_cscd <= 0x07ff) { + sks[0] = SSD_SKS_SEGMENT_VALID; + scsi_ulto2b((uint8_t *)&list->cscd[list->fwd_cscd] - + list->params, &sks[1]); + } else + sks[0] = 0; + if (list->fwd_scsi_status) { + fbuf[0] = 0x0c; + fbuf[2] = list->fwd_target; + flen = list->fwd_sense_len; + if (flen > 64) { + flen = 64; + fbuf[2] |= SSD_FORWARDED_FSDT; + } + fbuf[1] = 2 + flen; + fbuf[3] = list->fwd_scsi_status; + bcopy(&list->fwd_sense_data, &fbuf[4], flen); + flen += 4; + } else + flen = 0; + ctl_set_sense(list->ctsio, /*current_error*/ 1, + /*sense_key*/ SSD_KEY_COPY_ABORTED, + /*asc*/ 0x0d, /*ascq*/ 0x01, + SSD_ELEM_COMMAND, sizeof(csi), csi, + sks[0] ? SSD_ELEM_SKS : SSD_ELEM_SKIP, sizeof(sks), sks, + flen ? SSD_ELEM_DESC : SSD_ELEM_SKIP, flen, fbuf, + SSD_ELEM_NONE); +} + static int tpc_process_b2b(struct tpc_list *list) { @@ -820,6 +865,7 @@ tpc_process_b2b(struct tpc_list *list) off_t srclba, dstlba, numbytes, donebytes, roundbytes; int numlba; uint32_t srcblock, dstblock, pb, pbo, adj; + uint16_t scscd, dcscd; uint8_t csi[4]; scsi_ulto4b(list->curseg, csi); @@ -834,11 +880,7 @@ tpc_process_b2b(struct tpc_list *list) ctl_set_task_aborted(list->ctsio); return (CTL_RETVAL_ERROR); } else if (list->error) { - ctl_set_sense(list->ctsio, /*current_error*/ 1, - /*sense_key*/ SSD_KEY_COPY_ABORTED, - /*asc*/ 0x0d, /*ascq*/ 0x01, - SSD_ELEM_COMMAND, sizeof(csi), csi, - SSD_ELEM_NONE); + tpc_set_io_error_sense(list); return (CTL_RETVAL_ERROR); } list->cursectors += list->segsectors; @@ -848,8 +890,10 @@ tpc_process_b2b(struct tpc_list *list) TAILQ_INIT(&list->allio); seg = (struct scsi_ec_segment_b2b *)list->seg[list->curseg]; - sl = tpc_resolve(list, scsi_2btoul(seg->src_cscd), &srcblock, NULL, NULL); - dl = tpc_resolve(list, scsi_2btoul(seg->dst_cscd), &dstblock, &pb, &pbo); + scscd = scsi_2btoul(seg->src_cscd); + dcscd = scsi_2btoul(seg->dst_cscd); + sl = tpc_resolve(list, scscd, &srcblock, NULL, NULL); + dl = tpc_resolve(list, dcscd, &dstblock, &pb, &pbo); if (sl >= CTL_MAX_LUNS || dl >= CTL_MAX_LUNS) { ctl_set_sense(list->ctsio, /*current_error*/ 1, /*sense_key*/ SSD_KEY_COPY_ABORTED, @@ -860,10 +904,10 @@ tpc_process_b2b(struct tpc_list *list) } if (pbo > 0) pbo = pb - pbo; - sdstp = &list->cscd[scsi_2btoul(seg->src_cscd)].dtsp; + sdstp = &list->cscd[scscd].dtsp; if (scsi_3btoul(sdstp->block_length) != 0) srcblock = scsi_3btoul(sdstp->block_length); - ddstp = &list->cscd[scsi_2btoul(seg->dst_cscd)].dtsp; + ddstp = &list->cscd[dcscd].dtsp; if (scsi_3btoul(ddstp->block_length) != 0) dstblock = scsi_3btoul(ddstp->block_length); numlba = scsi_2btoul(seg->number_of_blocks); @@ -924,6 +968,8 @@ tpc_process_b2b(struct tpc_list *list) /*tag_type*/ CTL_TAG_SIMPLE, /*control*/ 0); tior->io->io_hdr.retries = 3; + tior->target = SSD_FORWARDED_SDS_EXSRC; + tior->cscd = scscd; tior->lun = sl; tior->io->io_hdr.ctl_private[CTL_PRIV_FRONTEND].ptr = tior; @@ -943,6 +989,8 @@ tpc_process_b2b(struct tpc_list *list) /*tag_type*/ CTL_TAG_SIMPLE, /*control*/ 0); tiow->io->io_hdr.retries = 3; + tiow->target = SSD_FORWARDED_SDS_EXDST; + tiow->cscd = dcscd; tiow->lun = dl; tiow->io->io_hdr.ctl_private[CTL_PRIV_FRONTEND].ptr = tiow; @@ -970,6 +1018,7 @@ tpc_process_verify(struct tpc_list *list) struct scsi_ec_segment_verify *seg; struct tpc_io *tio; uint64_t sl; + uint16_t cscd; uint8_t csi[4]; scsi_ulto4b(list->curseg, csi); @@ -983,11 +1032,7 @@ tpc_process_verify(struct tpc_list *list) ctl_set_task_aborted(list->ctsio); return (CTL_RETVAL_ERROR); } else if (list->error) { - ctl_set_sense(list->ctsio, /*current_error*/ 1, - /*sense_key*/ SSD_KEY_COPY_ABORTED, - /*asc*/ 0x0d, /*ascq*/ 0x01, - SSD_ELEM_COMMAND, sizeof(csi), csi, - SSD_ELEM_NONE); + tpc_set_io_error_sense(list); return (CTL_RETVAL_ERROR); } else return (CTL_RETVAL_COMPLETE); @@ -995,7 +1040,8 @@ tpc_process_verify(struct tpc_list *list) TAILQ_INIT(&list->allio); seg = (struct scsi_ec_segment_verify *)list->seg[list->curseg]; - sl = tpc_resolve(list, scsi_2btoul(seg->src_cscd), NULL, NULL, NULL); + cscd = scsi_2btoul(seg->src_cscd); + sl = tpc_resolve(list, cscd, NULL, NULL, NULL); if (sl >= CTL_MAX_LUNS) { ctl_set_sense(list->ctsio, /*current_error*/ 1, /*sense_key*/ SSD_KEY_COPY_ABORTED, @@ -1018,6 +1064,8 @@ tpc_process_verify(struct tpc_list *list) tio->io = tpcl_alloc_io(); ctl_scsi_tur(tio->io, /*tag_type*/ CTL_TAG_SIMPLE, /*control*/ 0); tio->io->io_hdr.retries = 3; + tio->target = SSD_FORWARDED_SDS_EXSRC; + tio->cscd = cscd; tio->lun = sl; tio->io->io_hdr.ctl_private[CTL_PRIV_FRONTEND].ptr = tio; list->stage++; @@ -1033,6 +1081,7 @@ tpc_process_register_key(struct tpc_list *list) struct tpc_io *tio; uint64_t dl; int datalen; + uint16_t cscd; uint8_t csi[4]; scsi_ulto4b(list->curseg, csi); @@ -1047,11 +1096,7 @@ tpc_process_register_key(struct tpc_list *list) ctl_set_task_aborted(list->ctsio); return (CTL_RETVAL_ERROR); } else if (list->error) { - ctl_set_sense(list->ctsio, /*current_error*/ 1, - /*sense_key*/ SSD_KEY_COPY_ABORTED, - /*asc*/ 0x0d, /*ascq*/ 0x01, - SSD_ELEM_COMMAND, sizeof(csi), csi, - SSD_ELEM_NONE); + tpc_set_io_error_sense(list); return (CTL_RETVAL_ERROR); } else return (CTL_RETVAL_COMPLETE); @@ -1059,7 +1104,8 @@ tpc_process_register_key(struct tpc_list *list) TAILQ_INIT(&list->allio); seg = (struct scsi_ec_segment_register_key *)list->seg[list->curseg]; - dl = tpc_resolve(list, scsi_2btoul(seg->dst_cscd), NULL, NULL, NULL); + cscd = scsi_2btoul(seg->dst_cscd); + dl = tpc_resolve(list, cscd, NULL, NULL, NULL); if (dl >= CTL_MAX_LUNS) { ctl_set_sense(list->ctsio, /*current_error*/ 1, /*sense_key*/ SSD_KEY_COPY_ABORTED, @@ -1084,6 +1130,8 @@ tpc_process_register_key(struct tpc_list *list) scsi_8btou64(seg->res_key), scsi_8btou64(seg->sa_res_key), /*tag_type*/ CTL_TAG_SIMPLE, /*control*/ 0); tio->io->io_hdr.retries = 3; + tio->target = SSD_FORWARDED_SDS_EXDST; + tio->cscd = cscd; tio->lun = dl; tio->io->io_hdr.ctl_private[CTL_PRIV_FRONTEND].ptr = tio; list->stage++; @@ -1104,7 +1152,8 @@ tpc_ranges_length(struct scsi_range_desc *range, int nrange) } static int -tpc_check_ranges_l(struct scsi_range_desc *range, int nrange, uint64_t maxlba) +tpc_check_ranges_l(struct scsi_range_desc *range, int nrange, uint64_t maxlba, + uint64_t *lba) { uint64_t b1; uint32_t l1; @@ -1113,8 +1162,10 @@ tpc_check_ranges_l(struct scsi_range_desc *range, int nrange, uint64_t maxlba) for (i = 0; i < nrange; i++) { b1 = scsi_8btou64(range[i].lba); l1 = scsi_4btoul(range[i].length); - if (b1 + l1 < b1 || b1 + l1 > maxlba + 1) + if (b1 + l1 < b1 || b1 + l1 > maxlba + 1) { + *lba = MAX(b1, maxlba + 1); return (-1); + } } return (0); } @@ -1182,9 +1233,17 @@ tpc_process_wut(struct tpc_list *list) ctl_set_task_aborted(list->ctsio); return (CTL_RETVAL_ERROR); } else if (list->error) { - ctl_set_sense(list->ctsio, /*current_error*/ 1, - /*sense_key*/ SSD_KEY_COPY_ABORTED, - /*asc*/ 0x0d, /*ascq*/ 0x01, SSD_ELEM_NONE); + if (list->fwd_scsi_status) { + list->ctsio->io_hdr.status = + CTL_SCSI_ERROR | CTL_AUTOSENSE; + list->ctsio->scsi_status = list->fwd_scsi_status; + list->ctsio->sense_data = list->fwd_sense_data; + list->ctsio->sense_len = list->fwd_sense_len; + } else { + ctl_set_invalid_field(list->ctsio, + /*sks_valid*/ 0, /*command*/ 0, + /*field*/ 0, /*bit_valid*/ 0, /*bit*/ 0); + } return (CTL_RETVAL_ERROR); } list->cursectors += list->segsectors; @@ -1207,9 +1266,8 @@ tpc_process_wut(struct tpc_list *list) if (tpc_skip_ranges(list->token->range, list->token->nrange, list->offset_into_rod + list->cursectors * dstblock / srcblock, &srange, &soffset) != 0) { - ctl_set_sense(list->ctsio, /*current_error*/ 1, - /*sense_key*/ SSD_KEY_COPY_ABORTED, - /*asc*/ 0x0d, /*ascq*/ 0x04, SSD_ELEM_NONE); + ctl_set_invalid_field(list->ctsio, /*sks_valid*/ 0, + /*command*/ 0, /*field*/ 0, /*bit_valid*/ 0, /*bit*/ 0); return (CTL_RETVAL_ERROR); } @@ -1230,9 +1288,8 @@ tpc_process_wut(struct tpc_list *list) } if (numbytes % srcblock != 0 || numbytes % dstblock != 0) { - ctl_set_sense(list->ctsio, /*current_error*/ 1, - /*sense_key*/ SSD_KEY_COPY_ABORTED, - /*asc*/ 0x26, /*ascq*/ 0x0A, SSD_ELEM_NONE); + ctl_set_invalid_field(list->ctsio, /*sks_valid*/ 0, + /*command*/ 0, /*field*/ 0, /*bit_valid*/ 0, /*bit*/ 0); return (CTL_RETVAL_ERROR); } @@ -1334,9 +1391,17 @@ complete: ctl_set_task_aborted(list->ctsio); return (CTL_RETVAL_ERROR); } else if (list->error) { - ctl_set_sense(list->ctsio, /*current_error*/ 1, - /*sense_key*/ SSD_KEY_COPY_ABORTED, - /*asc*/ 0x0d, /*ascq*/ 0x01, SSD_ELEM_NONE); + if (list->fwd_scsi_status) { + list->ctsio->io_hdr.status = + CTL_SCSI_ERROR | CTL_AUTOSENSE; + list->ctsio->scsi_status = list->fwd_scsi_status; + list->ctsio->sense_data = list->fwd_sense_data; + list->ctsio->sense_len = list->fwd_sense_len; + } else { + ctl_set_invalid_field(list->ctsio, + /*sks_valid*/ 0, /*command*/ 0, + /*field*/ 0, /*bit_valid*/ 0, /*bit*/ 0); + } return (CTL_RETVAL_ERROR); } list->cursectors += list->segsectors; @@ -1613,9 +1678,17 @@ tpc_done(union ctl_io *io) } } - if ((io->io_hdr.status & CTL_STATUS_MASK) != CTL_SUCCESS) + if ((io->io_hdr.status & CTL_STATUS_MASK) != CTL_SUCCESS) { tio->list->error = 1; - else + if (io->io_hdr.io_type == CTL_IO_SCSI && + (io->io_hdr.status & CTL_STATUS_MASK) == CTL_SCSI_ERROR) { + tio->list->fwd_scsi_status = io->scsiio.scsi_status; + tio->list->fwd_sense_data = io->scsiio.sense_data; + tio->list->fwd_sense_len = io->scsiio.sense_len; + tio->list->fwd_target = tio->target; + tio->list->fwd_cscd = tio->cscd; + } + } else atomic_add_int(&tio->list->curops, 1); if (!tio->list->error && !tio->list->abort) { while ((tior = TAILQ_FIRST(&tio->run)) != NULL) { @@ -1634,6 +1707,8 @@ ctl_extended_copy_lid1(struct ctl_scsiio *ctsio) { struct scsi_extended_copy *cdb; struct scsi_extended_copy_lid1_data *data; + struct scsi_ec_cscd *cscd; + struct scsi_ec_segment *seg; struct ctl_lun *lun; struct tpc_list *list, *tlist; uint8_t *ptr; @@ -1712,6 +1787,17 @@ ctl_extended_copy_lid1(struct ctl_scsiio *ctsio) list->flags = data->flags; list->params = ctsio->kern_data_ptr; list->cscd = (struct scsi_ec_cscd *)&data->data[0]; + ptr = &data->data[0]; + for (off = 0; off < lencscd; off += sizeof(struct scsi_ec_cscd)) { + cscd = (struct scsi_ec_cscd *)(ptr + off); + if (cscd->type_code != EC_CSCD_ID) { + free(list, M_CTL); + ctl_set_sense(ctsio, /*current_error*/ 1, + /*sense_key*/ SSD_KEY_ILLEGAL_REQUEST, + /*asc*/ 0x26, /*ascq*/ 0x07, SSD_ELEM_NONE); + goto done; + } + } ptr = &data->data[lencscd]; for (nseg = 0, off = 0; off < lenseg; nseg++) { if (nseg >= TPC_MAX_SEGS) { @@ -1721,9 +1807,19 @@ ctl_extended_copy_lid1(struct ctl_scsiio *ctsio) /*asc*/ 0x26, /*ascq*/ 0x08, SSD_ELEM_NONE); goto done; } - list->seg[nseg] = (struct scsi_ec_segment *)(ptr + off); + seg = (struct scsi_ec_segment *)(ptr + off); + if (seg->type_code != EC_SEG_B2B && + seg->type_code != EC_SEG_VERIFY && + seg->type_code != EC_SEG_REGISTER_KEY) { + free(list, M_CTL); + ctl_set_sense(ctsio, /*current_error*/ 1, + /*sense_key*/ SSD_KEY_ILLEGAL_REQUEST, + /*asc*/ 0x26, /*ascq*/ 0x09, SSD_ELEM_NONE); + goto done; + } + list->seg[nseg] = seg; off += sizeof(struct scsi_ec_segment) + - scsi_2btoul(list->seg[nseg]->descr_length); + scsi_2btoul(seg->descr_length); } list->inl = &data->data[lencscd + lenseg]; list->ncscd = lencscd / sizeof(struct scsi_ec_cscd); @@ -1767,6 +1863,8 @@ ctl_extended_copy_lid4(struct ctl_scsiio *ctsio) { struct scsi_extended_copy *cdb; struct scsi_extended_copy_lid4_data *data; + struct scsi_ec_cscd *cscd; + struct scsi_ec_segment *seg; struct ctl_lun *lun; struct tpc_list *list, *tlist; uint8_t *ptr; @@ -1845,6 +1943,17 @@ ctl_extended_copy_lid4(struct ctl_scsiio *ctsio) list->flags = data->flags; list->params = ctsio->kern_data_ptr; list->cscd = (struct scsi_ec_cscd *)&data->data[0]; + ptr = &data->data[0]; + for (off = 0; off < lencscd; off += sizeof(struct scsi_ec_cscd)) { + cscd = (struct scsi_ec_cscd *)(ptr + off); + if (cscd->type_code != EC_CSCD_ID) { + free(list, M_CTL); + ctl_set_sense(ctsio, /*current_error*/ 1, + /*sense_key*/ SSD_KEY_ILLEGAL_REQUEST, + /*asc*/ 0x26, /*ascq*/ 0x07, SSD_ELEM_NONE); + goto done; + } + } ptr = &data->data[lencscd]; for (nseg = 0, off = 0; off < lenseg; nseg++) { if (nseg >= TPC_MAX_SEGS) { @@ -1854,9 +1963,19 @@ ctl_extended_copy_lid4(struct ctl_scsiio *ctsio) /*asc*/ 0x26, /*ascq*/ 0x08, SSD_ELEM_NONE); goto done; } - list->seg[nseg] = (struct scsi_ec_segment *)(ptr + off); + seg = (struct scsi_ec_segment *)(ptr + off); + if (seg->type_code != EC_SEG_B2B && + seg->type_code != EC_SEG_VERIFY && + seg->type_code != EC_SEG_REGISTER_KEY) { + free(list, M_CTL); + ctl_set_sense(ctsio, /*current_error*/ 1, + /*sense_key*/ SSD_KEY_ILLEGAL_REQUEST, + /*asc*/ 0x26, /*ascq*/ 0x09, SSD_ELEM_NONE); + goto done; + } + list->seg[nseg] = seg; off += sizeof(struct scsi_ec_segment) + - scsi_2btoul(list->seg[nseg]->descr_length); + scsi_2btoul(seg->descr_length); } list->inl = &data->data[lencscd + lenseg]; list->ncscd = lencscd / sizeof(struct scsi_ec_cscd); @@ -1952,6 +2071,7 @@ ctl_populate_token(struct ctl_scsiio *ctsio) struct ctl_port *port; struct tpc_list *list, *tlist; struct tpc_token *token; + uint64_t lba; int len, lendata, lendesc; CTL_DEBUG_PRINT(("ctl_populate_token\n")); @@ -2032,8 +2152,8 @@ ctl_populate_token(struct ctl_scsiio *ctsio) if (tpc_check_ranges_l(&data->desc[0], scsi_2btoul(data->range_descriptor_length) / sizeof(struct scsi_range_desc), - lun->be_lun->maxlba) != 0) { - ctl_set_lba_out_of_range(ctsio); + lun->be_lun->maxlba, &lba) != 0) { + ctl_set_lba_out_of_range(ctsio, lba); goto done; } if (tpc_check_ranges_x(&data->desc[0], @@ -2118,6 +2238,7 @@ ctl_write_using_token(struct ctl_scsiio *ctsio) struct ctl_lun *lun; struct tpc_list *list, *tlist; struct tpc_token *token; + uint64_t lba; int len, lendata, lendesc; CTL_DEBUG_PRINT(("ctl_write_using_token\n")); @@ -2180,8 +2301,8 @@ ctl_write_using_token(struct ctl_scsiio *ctsio) if (tpc_check_ranges_l(&data->desc[0], scsi_2btoul(data->range_descriptor_length) / sizeof(struct scsi_range_desc), - lun->be_lun->maxlba) != 0) { - ctl_set_lba_out_of_range(ctsio); + lun->be_lun->maxlba, &lba) != 0) { + ctl_set_lba_out_of_range(ctsio, lba); goto done; } if (tpc_check_ranges_x(&data->desc[0], diff --git a/sys/cam/scsi/scsi_all.c b/sys/cam/scsi/scsi_all.c index 089e874..3ebce7a 100644 --- a/sys/cam/scsi/scsi_all.c +++ b/sys/cam/scsi/scsi_all.c @@ -1232,58 +1232,58 @@ static struct asc_table_entry asc_table[] = { { SST(0x0A, 0x00, SS_FATAL | ENOSPC, "Error log overflow") }, /* DTLPWROMAEBKVF */ - { SST(0x0B, 0x00, SS_RDEF, + { SST(0x0B, 0x00, SS_NOP | SSQ_PRINT_SENSE, "Warning") }, /* DTLPWROMAEBKVF */ - { SST(0x0B, 0x01, SS_RDEF, + { SST(0x0B, 0x01, SS_NOP | SSQ_PRINT_SENSE, "Warning - specified temperature exceeded") }, /* DTLPWROMAEBKVF */ - { SST(0x0B, 0x02, SS_RDEF, + { SST(0x0B, 0x02, SS_NOP | SSQ_PRINT_SENSE, "Warning - enclosure degraded") }, /* DTLPWROMAEBKVF */ - { SST(0x0B, 0x03, SS_RDEF, /* XXX TBD */ + { SST(0x0B, 0x03, SS_NOP | SSQ_PRINT_SENSE, "Warning - background self-test failed") }, /* DTLPWRO AEBKVF */ - { SST(0x0B, 0x04, SS_RDEF, /* XXX TBD */ + { SST(0x0B, 0x04, SS_NOP | SSQ_PRINT_SENSE, "Warning - background pre-scan detected medium error") }, /* DTLPWRO AEBKVF */ - { SST(0x0B, 0x05, SS_RDEF, /* XXX TBD */ + { SST(0x0B, 0x05, SS_NOP | SSQ_PRINT_SENSE, "Warning - background medium scan detected medium error") }, /* DTLPWROMAEBKVF */ - { SST(0x0B, 0x06, SS_RDEF, /* XXX TBD */ + { SST(0x0B, 0x06, SS_NOP | SSQ_PRINT_SENSE, "Warning - non-volatile cache now volatile") }, /* DTLPWROMAEBKVF */ - { SST(0x0B, 0x07, SS_RDEF, /* XXX TBD */ + { SST(0x0B, 0x07, SS_NOP | SSQ_PRINT_SENSE, "Warning - degraded power to non-volatile cache") }, /* DTLPWROMAEBKVF */ - { SST(0x0B, 0x08, SS_RDEF, /* XXX TBD */ + { SST(0x0B, 0x08, SS_NOP | SSQ_PRINT_SENSE, "Warning - power loss expected") }, /* D */ - { SST(0x0B, 0x09, SS_RDEF, /* XXX TBD */ + { SST(0x0B, 0x09, SS_NOP | SSQ_PRINT_SENSE, "Warning - device statistics notification available") }, /* DTLPWROMAEBKVF */ - { SST(0x0B, 0x0A, SS_RDEF, /* XXX TBD */ + { SST(0x0B, 0x0A, SS_NOP | SSQ_PRINT_SENSE, "Warning - High critical temperature limit exceeded") }, /* DTLPWROMAEBKVF */ - { SST(0x0B, 0x0B, SS_RDEF, /* XXX TBD */ + { SST(0x0B, 0x0B, SS_NOP | SSQ_PRINT_SENSE, "Warning - Low critical temperature limit exceeded") }, /* DTLPWROMAEBKVF */ - { SST(0x0B, 0x0C, SS_RDEF, /* XXX TBD */ + { SST(0x0B, 0x0C, SS_NOP | SSQ_PRINT_SENSE, "Warning - High operating temperature limit exceeded") }, /* DTLPWROMAEBKVF */ - { SST(0x0B, 0x0D, SS_RDEF, /* XXX TBD */ + { SST(0x0B, 0x0D, SS_NOP | SSQ_PRINT_SENSE, "Warning - Low operating temperature limit exceeded") }, /* DTLPWROMAEBKVF */ - { SST(0x0B, 0x0E, SS_RDEF, /* XXX TBD */ + { SST(0x0B, 0x0E, SS_NOP | SSQ_PRINT_SENSE, "Warning - High citical humidity limit exceeded") }, /* DTLPWROMAEBKVF */ - { SST(0x0B, 0x0F, SS_RDEF, /* XXX TBD */ + { SST(0x0B, 0x0F, SS_NOP | SSQ_PRINT_SENSE, "Warning - Low citical humidity limit exceeded") }, /* DTLPWROMAEBKVF */ - { SST(0x0B, 0x10, SS_RDEF, /* XXX TBD */ + { SST(0x0B, 0x10, SS_NOP | SSQ_PRINT_SENSE, "Warning - High operating humidity limit exceeded") }, /* DTLPWROMAEBKVF */ - { SST(0x0B, 0x11, SS_RDEF, /* XXX TBD */ + { SST(0x0B, 0x11, SS_NOP | SSQ_PRINT_SENSE, "Warning - Low operating humidity limit exceeded") }, /* T R */ { SST(0x0C, 0x00, SS_RDEF, @@ -2612,253 +2612,259 @@ static struct asc_table_entry asc_table[] = { { SST(0x5C, 0x02, SS_RDEF, "Spindles not synchronized") }, /* DTLPWROMAEBKVF */ - { SST(0x5D, 0x00, SS_RDEF, + { SST(0x5D, 0x00, SS_NOP | SSQ_PRINT_SENSE, "Failure prediction threshold exceeded") }, /* R B */ - { SST(0x5D, 0x01, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x01, SS_NOP | SSQ_PRINT_SENSE, "Media failure prediction threshold exceeded") }, /* R */ - { SST(0x5D, 0x02, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x02, SS_NOP | SSQ_PRINT_SENSE, "Logical unit failure prediction threshold exceeded") }, /* R */ - { SST(0x5D, 0x03, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x03, SS_NOP | SSQ_PRINT_SENSE, "Spare area exhaustion prediction threshold exceeded") }, /* D B */ - { SST(0x5D, 0x10, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x10, SS_NOP | SSQ_PRINT_SENSE, "Hardware impending failure general hard drive failure") }, /* D B */ - { SST(0x5D, 0x11, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x11, SS_NOP | SSQ_PRINT_SENSE, "Hardware impending failure drive error rate too high") }, /* D B */ - { SST(0x5D, 0x12, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x12, SS_NOP | SSQ_PRINT_SENSE, "Hardware impending failure data error rate too high") }, /* D B */ - { SST(0x5D, 0x13, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x13, SS_NOP | SSQ_PRINT_SENSE, "Hardware impending failure seek error rate too high") }, /* D B */ - { SST(0x5D, 0x14, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x14, SS_NOP | SSQ_PRINT_SENSE, "Hardware impending failure too many block reassigns") }, /* D B */ - { SST(0x5D, 0x15, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x15, SS_NOP | SSQ_PRINT_SENSE, "Hardware impending failure access times too high") }, /* D B */ - { SST(0x5D, 0x16, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x16, SS_NOP | SSQ_PRINT_SENSE, "Hardware impending failure start unit times too high") }, /* D B */ - { SST(0x5D, 0x17, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x17, SS_NOP | SSQ_PRINT_SENSE, "Hardware impending failure channel parametrics") }, /* D B */ - { SST(0x5D, 0x18, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x18, SS_NOP | SSQ_PRINT_SENSE, "Hardware impending failure controller detected") }, /* D B */ - { SST(0x5D, 0x19, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x19, SS_NOP | SSQ_PRINT_SENSE, "Hardware impending failure throughput performance") }, /* D B */ - { SST(0x5D, 0x1A, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x1A, SS_NOP | SSQ_PRINT_SENSE, "Hardware impending failure seek time performance") }, /* D B */ - { SST(0x5D, 0x1B, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x1B, SS_NOP | SSQ_PRINT_SENSE, "Hardware impending failure spin-up retry count") }, /* D B */ - { SST(0x5D, 0x1C, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x1C, SS_NOP | SSQ_PRINT_SENSE, "Hardware impending failure drive calibration retry count") }, /* D B */ - { SST(0x5D, 0x20, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x1D, SS_NOP | SSQ_PRINT_SENSE, + "Hardware impending failure power loss protection circuit") }, + /* D B */ + { SST(0x5D, 0x20, SS_NOP | SSQ_PRINT_SENSE, "Controller impending failure general hard drive failure") }, /* D B */ - { SST(0x5D, 0x21, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x21, SS_NOP | SSQ_PRINT_SENSE, "Controller impending failure drive error rate too high") }, /* D B */ - { SST(0x5D, 0x22, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x22, SS_NOP | SSQ_PRINT_SENSE, "Controller impending failure data error rate too high") }, /* D B */ - { SST(0x5D, 0x23, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x23, SS_NOP | SSQ_PRINT_SENSE, "Controller impending failure seek error rate too high") }, /* D B */ - { SST(0x5D, 0x24, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x24, SS_NOP | SSQ_PRINT_SENSE, "Controller impending failure too many block reassigns") }, /* D B */ - { SST(0x5D, 0x25, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x25, SS_NOP | SSQ_PRINT_SENSE, "Controller impending failure access times too high") }, /* D B */ - { SST(0x5D, 0x26, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x26, SS_NOP | SSQ_PRINT_SENSE, "Controller impending failure start unit times too high") }, /* D B */ - { SST(0x5D, 0x27, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x27, SS_NOP | SSQ_PRINT_SENSE, "Controller impending failure channel parametrics") }, /* D B */ - { SST(0x5D, 0x28, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x28, SS_NOP | SSQ_PRINT_SENSE, "Controller impending failure controller detected") }, /* D B */ - { SST(0x5D, 0x29, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x29, SS_NOP | SSQ_PRINT_SENSE, "Controller impending failure throughput performance") }, /* D B */ - { SST(0x5D, 0x2A, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x2A, SS_NOP | SSQ_PRINT_SENSE, "Controller impending failure seek time performance") }, /* D B */ - { SST(0x5D, 0x2B, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x2B, SS_NOP | SSQ_PRINT_SENSE, "Controller impending failure spin-up retry count") }, /* D B */ - { SST(0x5D, 0x2C, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x2C, SS_NOP | SSQ_PRINT_SENSE, "Controller impending failure drive calibration retry count") }, /* D B */ - { SST(0x5D, 0x30, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x30, SS_NOP | SSQ_PRINT_SENSE, "Data channel impending failure general hard drive failure") }, /* D B */ - { SST(0x5D, 0x31, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x31, SS_NOP | SSQ_PRINT_SENSE, "Data channel impending failure drive error rate too high") }, /* D B */ - { SST(0x5D, 0x32, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x32, SS_NOP | SSQ_PRINT_SENSE, "Data channel impending failure data error rate too high") }, /* D B */ - { SST(0x5D, 0x33, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x33, SS_NOP | SSQ_PRINT_SENSE, "Data channel impending failure seek error rate too high") }, /* D B */ - { SST(0x5D, 0x34, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x34, SS_NOP | SSQ_PRINT_SENSE, "Data channel impending failure too many block reassigns") }, /* D B */ - { SST(0x5D, 0x35, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x35, SS_NOP | SSQ_PRINT_SENSE, "Data channel impending failure access times too high") }, /* D B */ - { SST(0x5D, 0x36, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x36, SS_NOP | SSQ_PRINT_SENSE, "Data channel impending failure start unit times too high") }, /* D B */ - { SST(0x5D, 0x37, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x37, SS_NOP | SSQ_PRINT_SENSE, "Data channel impending failure channel parametrics") }, /* D B */ - { SST(0x5D, 0x38, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x38, SS_NOP | SSQ_PRINT_SENSE, "Data channel impending failure controller detected") }, /* D B */ - { SST(0x5D, 0x39, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x39, SS_NOP | SSQ_PRINT_SENSE, "Data channel impending failure throughput performance") }, /* D B */ - { SST(0x5D, 0x3A, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x3A, SS_NOP | SSQ_PRINT_SENSE, "Data channel impending failure seek time performance") }, /* D B */ - { SST(0x5D, 0x3B, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x3B, SS_NOP | SSQ_PRINT_SENSE, "Data channel impending failure spin-up retry count") }, /* D B */ - { SST(0x5D, 0x3C, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x3C, SS_NOP | SSQ_PRINT_SENSE, "Data channel impending failure drive calibration retry count") }, /* D B */ - { SST(0x5D, 0x40, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x40, SS_NOP | SSQ_PRINT_SENSE, "Servo impending failure general hard drive failure") }, /* D B */ - { SST(0x5D, 0x41, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x41, SS_NOP | SSQ_PRINT_SENSE, "Servo impending failure drive error rate too high") }, /* D B */ - { SST(0x5D, 0x42, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x42, SS_NOP | SSQ_PRINT_SENSE, "Servo impending failure data error rate too high") }, /* D B */ - { SST(0x5D, 0x43, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x43, SS_NOP | SSQ_PRINT_SENSE, "Servo impending failure seek error rate too high") }, /* D B */ - { SST(0x5D, 0x44, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x44, SS_NOP | SSQ_PRINT_SENSE, "Servo impending failure too many block reassigns") }, /* D B */ - { SST(0x5D, 0x45, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x45, SS_NOP | SSQ_PRINT_SENSE, "Servo impending failure access times too high") }, /* D B */ - { SST(0x5D, 0x46, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x46, SS_NOP | SSQ_PRINT_SENSE, "Servo impending failure start unit times too high") }, /* D B */ - { SST(0x5D, 0x47, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x47, SS_NOP | SSQ_PRINT_SENSE, "Servo impending failure channel parametrics") }, /* D B */ - { SST(0x5D, 0x48, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x48, SS_NOP | SSQ_PRINT_SENSE, "Servo impending failure controller detected") }, /* D B */ - { SST(0x5D, 0x49, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x49, SS_NOP | SSQ_PRINT_SENSE, "Servo impending failure throughput performance") }, /* D B */ - { SST(0x5D, 0x4A, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x4A, SS_NOP | SSQ_PRINT_SENSE, "Servo impending failure seek time performance") }, /* D B */ - { SST(0x5D, 0x4B, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x4B, SS_NOP | SSQ_PRINT_SENSE, "Servo impending failure spin-up retry count") }, /* D B */ - { SST(0x5D, 0x4C, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x4C, SS_NOP | SSQ_PRINT_SENSE, "Servo impending failure drive calibration retry count") }, /* D B */ - { SST(0x5D, 0x50, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x50, SS_NOP | SSQ_PRINT_SENSE, "Spindle impending failure general hard drive failure") }, /* D B */ - { SST(0x5D, 0x51, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x51, SS_NOP | SSQ_PRINT_SENSE, "Spindle impending failure drive error rate too high") }, /* D B */ - { SST(0x5D, 0x52, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x52, SS_NOP | SSQ_PRINT_SENSE, "Spindle impending failure data error rate too high") }, /* D B */ - { SST(0x5D, 0x53, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x53, SS_NOP | SSQ_PRINT_SENSE, "Spindle impending failure seek error rate too high") }, /* D B */ - { SST(0x5D, 0x54, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x54, SS_NOP | SSQ_PRINT_SENSE, "Spindle impending failure too many block reassigns") }, /* D B */ - { SST(0x5D, 0x55, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x55, SS_NOP | SSQ_PRINT_SENSE, "Spindle impending failure access times too high") }, /* D B */ - { SST(0x5D, 0x56, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x56, SS_NOP | SSQ_PRINT_SENSE, "Spindle impending failure start unit times too high") }, /* D B */ - { SST(0x5D, 0x57, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x57, SS_NOP | SSQ_PRINT_SENSE, "Spindle impending failure channel parametrics") }, /* D B */ - { SST(0x5D, 0x58, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x58, SS_NOP | SSQ_PRINT_SENSE, "Spindle impending failure controller detected") }, /* D B */ - { SST(0x5D, 0x59, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x59, SS_NOP | SSQ_PRINT_SENSE, "Spindle impending failure throughput performance") }, /* D B */ - { SST(0x5D, 0x5A, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x5A, SS_NOP | SSQ_PRINT_SENSE, "Spindle impending failure seek time performance") }, /* D B */ - { SST(0x5D, 0x5B, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x5B, SS_NOP | SSQ_PRINT_SENSE, "Spindle impending failure spin-up retry count") }, /* D B */ - { SST(0x5D, 0x5C, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x5C, SS_NOP | SSQ_PRINT_SENSE, "Spindle impending failure drive calibration retry count") }, /* D B */ - { SST(0x5D, 0x60, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x60, SS_NOP | SSQ_PRINT_SENSE, "Firmware impending failure general hard drive failure") }, /* D B */ - { SST(0x5D, 0x61, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x61, SS_NOP | SSQ_PRINT_SENSE, "Firmware impending failure drive error rate too high") }, /* D B */ - { SST(0x5D, 0x62, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x62, SS_NOP | SSQ_PRINT_SENSE, "Firmware impending failure data error rate too high") }, /* D B */ - { SST(0x5D, 0x63, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x63, SS_NOP | SSQ_PRINT_SENSE, "Firmware impending failure seek error rate too high") }, /* D B */ - { SST(0x5D, 0x64, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x64, SS_NOP | SSQ_PRINT_SENSE, "Firmware impending failure too many block reassigns") }, /* D B */ - { SST(0x5D, 0x65, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x65, SS_NOP | SSQ_PRINT_SENSE, "Firmware impending failure access times too high") }, /* D B */ - { SST(0x5D, 0x66, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x66, SS_NOP | SSQ_PRINT_SENSE, "Firmware impending failure start unit times too high") }, /* D B */ - { SST(0x5D, 0x67, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x67, SS_NOP | SSQ_PRINT_SENSE, "Firmware impending failure channel parametrics") }, /* D B */ - { SST(0x5D, 0x68, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x68, SS_NOP | SSQ_PRINT_SENSE, "Firmware impending failure controller detected") }, /* D B */ - { SST(0x5D, 0x69, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x69, SS_NOP | SSQ_PRINT_SENSE, "Firmware impending failure throughput performance") }, /* D B */ - { SST(0x5D, 0x6A, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x6A, SS_NOP | SSQ_PRINT_SENSE, "Firmware impending failure seek time performance") }, /* D B */ - { SST(0x5D, 0x6B, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x6B, SS_NOP | SSQ_PRINT_SENSE, "Firmware impending failure spin-up retry count") }, /* D B */ - { SST(0x5D, 0x6C, SS_RDEF, /* XXX TBD */ + { SST(0x5D, 0x6C, SS_NOP | SSQ_PRINT_SENSE, "Firmware impending failure drive calibration retry count") }, + /* D B */ + { SST(0x5D, 0x73, SS_NOP | SSQ_PRINT_SENSE, + "Media impending failure endurance limit met") }, /* DTLPWROMAEBKVF */ - { SST(0x5D, 0xFF, SS_RDEF, + { SST(0x5D, 0xFF, SS_NOP | SSQ_PRINT_SENSE, "Failure prediction threshold exceeded (false)") }, /* DTLPWRO A K */ { SST(0x5E, 0x00, SS_RDEF, @@ -3649,7 +3655,7 @@ scsi_desc_iterate(struct scsi_sense_data_desc *sense, u_int sense_len, /* * The length of data actually returned may be different than the - * extra_len recorded in the sturcture. + * extra_len recorded in the structure. */ desc_len = sense_len -offsetof(struct scsi_sense_data_desc, sense_desc); @@ -3735,335 +3741,300 @@ scsi_find_desc(struct scsi_sense_data_desc *sense, u_int sense_len, } /* - * Fill in SCSI sense data with the specified parameters. This routine can - * fill in either fixed or descriptor type sense data. + * Fill in SCSI descriptor sense data with the specified parameters. */ -void -scsi_set_sense_data_va(struct scsi_sense_data *sense_data, - scsi_sense_data_type sense_format, int current_error, - int sense_key, int asc, int ascq, va_list ap) +static void +scsi_set_sense_data_desc_va(struct scsi_sense_data *sense_data, + u_int *sense_len, scsi_sense_data_type sense_format, int current_error, + int sense_key, int asc, int ascq, va_list ap) { - int descriptor_sense; + struct scsi_sense_data_desc *sense; scsi_sense_elem_type elem_type; + int space, len; + uint8_t *desc, *data; - /* - * Determine whether to return fixed or descriptor format sense - * data. If the user specifies SSD_TYPE_NONE for some reason, - * they'll just get fixed sense data. - */ - if (sense_format == SSD_TYPE_DESC) - descriptor_sense = 1; - else - descriptor_sense = 0; - - /* - * Zero the sense data, so that we don't pass back any garbage data - * to the user. - */ memset(sense_data, 0, sizeof(*sense_data)); + sense = (struct scsi_sense_data_desc *)sense_data; + if (current_error != 0) + sense->error_code = SSD_DESC_CURRENT_ERROR; + else + sense->error_code = SSD_DESC_DEFERRED_ERROR; + sense->sense_key = sense_key; + sense->add_sense_code = asc; + sense->add_sense_code_qual = ascq; + sense->flags = 0; + + desc = &sense->sense_desc[0]; + space = *sense_len - offsetof(struct scsi_sense_data_desc, sense_desc); + while ((elem_type = va_arg(ap, scsi_sense_elem_type)) != + SSD_ELEM_NONE) { + if (elem_type >= SSD_ELEM_MAX) { + printf("%s: invalid sense type %d\n", __func__, + elem_type); + break; + } + len = va_arg(ap, int); + data = va_arg(ap, uint8_t *); - if (descriptor_sense != 0) { - struct scsi_sense_data_desc *sense; - - sense = (struct scsi_sense_data_desc *)sense_data; - /* - * The descriptor sense format eliminates the use of the - * valid bit. - */ - if (current_error != 0) - sense->error_code = SSD_DESC_CURRENT_ERROR; - else - sense->error_code = SSD_DESC_DEFERRED_ERROR; - sense->sense_key = sense_key; - sense->add_sense_code = asc; - sense->add_sense_code_qual = ascq; - /* - * Start off with no extra length, since the above data - * fits in the standard descriptor sense information. - */ - sense->extra_len = 0; - while ((elem_type = (scsi_sense_elem_type)va_arg(ap, - scsi_sense_elem_type)) != SSD_ELEM_NONE) { - int sense_len, len_to_copy; - uint8_t *data; - - if (elem_type >= SSD_ELEM_MAX) { - printf("%s: invalid sense type %d\n", __func__, - elem_type); + switch (elem_type) { + case SSD_ELEM_SKIP: + break; + case SSD_ELEM_DESC: + if (space < len) { + sense->flags |= SSDD_SDAT_OVFL; break; } + bcopy(data, desc, len); + desc += len; + space -= len; + break; + case SSD_ELEM_SKS: { + struct scsi_sense_sks *sks = (void *)desc; - sense_len = (int)va_arg(ap, int); - len_to_copy = MIN(sense_len, SSD_EXTRA_MAX - - sense->extra_len); - data = (uint8_t *)va_arg(ap, uint8_t *); - - /* - * We've already consumed the arguments for this one. - */ - if (elem_type == SSD_ELEM_SKIP) - continue; - - switch (elem_type) { - case SSD_ELEM_DESC: { - - /* - * This is a straight descriptor. All we - * need to do is copy the data in. - */ - bcopy(data, &sense->sense_desc[ - sense->extra_len], len_to_copy); - sense->extra_len += len_to_copy; + if (len > sizeof(sks->sense_key_spec)) + break; + if (space < sizeof(*sks)) { + sense->flags |= SSDD_SDAT_OVFL; break; } - case SSD_ELEM_SKS: { - struct scsi_sense_sks sks; - - bzero(&sks, sizeof(sks)); + sks->desc_type = SSD_DESC_SKS; + sks->length = sizeof(*sks) - + (offsetof(struct scsi_sense_sks, length) + 1); + bcopy(data, &sks->sense_key_spec, len); + desc += sizeof(*sks); + space -= sizeof(*sks); + break; + } + case SSD_ELEM_COMMAND: { + struct scsi_sense_command *cmd = (void *)desc; - /* - * This is already-formatted sense key - * specific data. We just need to fill out - * the header and copy everything in. - */ - bcopy(data, &sks.sense_key_spec, - MIN(len_to_copy, - sizeof(sks.sense_key_spec))); - - sks.desc_type = SSD_DESC_SKS; - sks.length = sizeof(sks) - - offsetof(struct scsi_sense_sks, reserved1); - bcopy(&sks,&sense->sense_desc[sense->extra_len], - sizeof(sks)); - sense->extra_len += sizeof(sks); + if (len > sizeof(cmd->command_info)) + break; + if (space < sizeof(*cmd)) { + sense->flags |= SSDD_SDAT_OVFL; break; } - case SSD_ELEM_INFO: - case SSD_ELEM_COMMAND: { - struct scsi_sense_command cmd; - struct scsi_sense_info info; - uint8_t *data_dest; - uint8_t *descriptor; - int descriptor_size, i, copy_len; - - bzero(&cmd, sizeof(cmd)); - bzero(&info, sizeof(info)); - - /* - * Command or information data. The - * operate in pretty much the same way. - */ - if (elem_type == SSD_ELEM_COMMAND) { - len_to_copy = MIN(len_to_copy, - sizeof(cmd.command_info)); - descriptor = (uint8_t *)&cmd; - descriptor_size = sizeof(cmd); - data_dest =(uint8_t *)&cmd.command_info; - cmd.desc_type = SSD_DESC_COMMAND; - cmd.length = sizeof(cmd) - - offsetof(struct scsi_sense_command, - reserved); - } else { - len_to_copy = MIN(len_to_copy, - sizeof(info.info)); - descriptor = (uint8_t *)&info; - descriptor_size = sizeof(cmd); - data_dest = (uint8_t *)&info.info; - info.desc_type = SSD_DESC_INFO; - info.byte2 = SSD_INFO_VALID; - info.length = sizeof(info) - - offsetof(struct scsi_sense_info, - byte2); - } - - /* - * Copy this in reverse because the spec - * (SPC-4) says that when 4 byte quantities - * are stored in this 8 byte field, the - * first four bytes shall be 0. - * - * So we fill the bytes in from the end, and - * if we have less than 8 bytes to copy, - * the initial, most significant bytes will - * be 0. - */ - for (i = sense_len - 1; i >= 0 && - len_to_copy > 0; i--, len_to_copy--) - data_dest[len_to_copy - 1] = data[i]; + cmd->desc_type = SSD_DESC_COMMAND; + cmd->length = sizeof(*cmd) - + (offsetof(struct scsi_sense_command, length) + 1); + bcopy(data, &cmd->command_info[ + sizeof(cmd->command_info) - len], len); + desc += sizeof(*cmd); + space -= sizeof(*cmd); + break; + } + case SSD_ELEM_INFO: { + struct scsi_sense_info *info = (void *)desc; - /* - * This calculation looks much like the - * initial len_to_copy calculation, but - * we have to do it again here, because - * we're looking at a larger amount that - * may or may not fit. It's not only the - * data the user passed in, but also the - * rest of the descriptor. - */ - copy_len = MIN(descriptor_size, - SSD_EXTRA_MAX - sense->extra_len); - bcopy(descriptor, &sense->sense_desc[ - sense->extra_len], copy_len); - sense->extra_len += copy_len; + if (len > sizeof(info->info)) break; - } - case SSD_ELEM_FRU: { - struct scsi_sense_fru fru; - int copy_len; - - bzero(&fru, sizeof(fru)); - - fru.desc_type = SSD_DESC_FRU; - fru.length = sizeof(fru) - - offsetof(struct scsi_sense_fru, reserved); - fru.fru = *data; - - copy_len = MIN(sizeof(fru), SSD_EXTRA_MAX - - sense->extra_len); - bcopy(&fru, &sense->sense_desc[ - sense->extra_len], copy_len); - sense->extra_len += copy_len; + if (space < sizeof(*info)) { + sense->flags |= SSDD_SDAT_OVFL; break; } - case SSD_ELEM_STREAM: { - struct scsi_sense_stream stream_sense; - int copy_len; - - bzero(&stream_sense, sizeof(stream_sense)); - stream_sense.desc_type = SSD_DESC_STREAM; - stream_sense.length = sizeof(stream_sense) - - offsetof(struct scsi_sense_stream, reserved); - stream_sense.byte3 = *data; - - copy_len = MIN(sizeof(stream_sense), - SSD_EXTRA_MAX - sense->extra_len); - bcopy(&stream_sense, &sense->sense_desc[ - sense->extra_len], copy_len); - sense->extra_len += copy_len; + info->desc_type = SSD_DESC_INFO; + info->length = sizeof(*info) - + (offsetof(struct scsi_sense_info, length) + 1); + info->byte2 = SSD_INFO_VALID; + bcopy(data, &info->info[sizeof(info->info) - len], len); + desc += sizeof(*info); + space -= sizeof(*info); + break; + } + case SSD_ELEM_FRU: { + struct scsi_sense_fru *fru = (void *)desc; + + if (len > sizeof(fru->fru)) break; - } - default: - /* - * We shouldn't get here, but if we do, do - * nothing. We've already consumed the - * arguments above. - */ + if (space < sizeof(*fru)) { + sense->flags |= SSDD_SDAT_OVFL; break; } + fru->desc_type = SSD_DESC_FRU; + fru->length = sizeof(*fru) - + (offsetof(struct scsi_sense_fru, length) + 1); + fru->fru = *data; + desc += sizeof(*fru); + space -= sizeof(*fru); + break; } - } else { - struct scsi_sense_data_fixed *sense; - - sense = (struct scsi_sense_data_fixed *)sense_data; - - if (current_error != 0) - sense->error_code = SSD_CURRENT_ERROR; - else - sense->error_code = SSD_DEFERRED_ERROR; - - sense->flags = sense_key; - sense->add_sense_code = asc; - sense->add_sense_code_qual = ascq; - /* - * We've set the ASC and ASCQ, so we have 6 more bytes of - * valid data. If we wind up setting any of the other - * fields, we'll bump this to 10 extra bytes. - */ - sense->extra_len = 6; - - while ((elem_type = (scsi_sense_elem_type)va_arg(ap, - scsi_sense_elem_type)) != SSD_ELEM_NONE) { - int sense_len, len_to_copy; - uint8_t *data; + case SSD_ELEM_STREAM: { + struct scsi_sense_stream *stream = (void *)desc; - if (elem_type >= SSD_ELEM_MAX) { - printf("%s: invalid sense type %d\n", __func__, - elem_type); + if (len > sizeof(stream->byte3)) + break; + if (space < sizeof(*stream)) { + sense->flags |= SSDD_SDAT_OVFL; break; } + stream->desc_type = SSD_DESC_STREAM; + stream->length = sizeof(*stream) - + (offsetof(struct scsi_sense_stream, length) + 1); + stream->byte3 = *data; + desc += sizeof(*stream); + space -= sizeof(*stream); + break; + } + default: /* - * If we get in here, just bump the extra length to - * 10 bytes. That will encompass anything we're - * going to set here. + * We shouldn't get here, but if we do, do nothing. + * We've already consumed the arguments above. */ - sense->extra_len = 10; - sense_len = (int)va_arg(ap, int); - data = (uint8_t *)va_arg(ap, uint8_t *); + break; + } + } + sense->extra_len = desc - &sense->sense_desc[0]; + *sense_len = offsetof(struct scsi_sense_data_desc, extra_len) + 1 + + sense->extra_len; +} - switch (elem_type) { - case SSD_ELEM_SKS: - /* - * The user passed in pre-formatted sense - * key specific data. - */ - bcopy(data, &sense->sense_key_spec[0], - MIN(sizeof(sense->sense_key_spec), - sense_len)); - break; - case SSD_ELEM_INFO: - case SSD_ELEM_COMMAND: { - uint8_t *data_dest; - int i; - - if (elem_type == SSD_ELEM_COMMAND) { - data_dest = &sense->cmd_spec_info[0]; - len_to_copy = MIN(sense_len, - sizeof(sense->cmd_spec_info)); - } else { - data_dest = &sense->info[0]; - len_to_copy = MIN(sense_len, - sizeof(sense->info)); - /* - * We're setting the info field, so - * set the valid bit. - */ - sense->error_code |= SSD_ERRCODE_VALID; - } +/* + * Fill in SCSI fixed sense data with the specified parameters. + */ +static void +scsi_set_sense_data_fixed_va(struct scsi_sense_data *sense_data, + u_int *sense_len, scsi_sense_data_type sense_format, int current_error, + int sense_key, int asc, int ascq, va_list ap) +{ + struct scsi_sense_data_fixed *sense; + scsi_sense_elem_type elem_type; + uint8_t *data; + int len; - /* - * Copy this in reverse so that if we have - * less than 4 bytes to fill, the least - * significant bytes will be at the end. - * If we have more than 4 bytes, only the - * least significant bytes will be included. - */ - for (i = sense_len - 1; i >= 0 && - len_to_copy > 0; i--, len_to_copy--) - data_dest[len_to_copy - 1] = data[i]; + memset(sense_data, 0, sizeof(*sense_data)); + sense = (struct scsi_sense_data_fixed *)sense_data; + if (current_error != 0) + sense->error_code = SSD_CURRENT_ERROR; + else + sense->error_code = SSD_DEFERRED_ERROR; + sense->flags = sense_key & SSD_KEY; + sense->extra_len = 0; + if (*sense_len >= 13) { + sense->add_sense_code = asc; + sense->extra_len = MAX(sense->extra_len, 5); + } else + sense->flags |= SSD_SDAT_OVFL; + if (*sense_len >= 14) { + sense->add_sense_code_qual = ascq; + sense->extra_len = MAX(sense->extra_len, 6); + } else + sense->flags |= SSD_SDAT_OVFL; + while ((elem_type = va_arg(ap, scsi_sense_elem_type)) != + SSD_ELEM_NONE) { + if (elem_type >= SSD_ELEM_MAX) { + printf("%s: invalid sense type %d\n", __func__, + elem_type); + break; + } + len = va_arg(ap, int); + data = va_arg(ap, uint8_t *); + + switch (elem_type) { + case SSD_ELEM_SKIP: + break; + case SSD_ELEM_SKS: + if (len > sizeof(sense->sense_key_spec)) break; - } - case SSD_ELEM_FRU: - sense->fru = *data; + if (*sense_len < 18) { + sense->flags |= SSD_SDAT_OVFL; break; - case SSD_ELEM_STREAM: - sense->flags |= *data; + } + bcopy(data, &sense->sense_key_spec[0], len); + sense->extra_len = MAX(sense->extra_len, 10); + break; + case SSD_ELEM_COMMAND: + if (*sense_len < 12) { + sense->flags |= SSD_SDAT_OVFL; break; - case SSD_ELEM_DESC: - default: - - /* - * If the user passes in descriptor sense, - * we can't handle that in fixed format. - * So just skip it, and any unknown argument - * types. - */ + } + if (len > sizeof(sense->cmd_spec_info)) { + data += len - sizeof(sense->cmd_spec_info); + len -= len - sizeof(sense->cmd_spec_info); + } + bcopy(data, &sense->cmd_spec_info[ + sizeof(sense->cmd_spec_info) - len], len); + sense->extra_len = MAX(sense->extra_len, 4); + break; + case SSD_ELEM_INFO: + /* Set VALID bit only if no overflow. */ + sense->error_code |= SSD_ERRCODE_VALID; + while (len > sizeof(sense->info)) { + if (data[0] != 0) + sense->error_code &= ~SSD_ERRCODE_VALID; + data ++; + len --; + } + bcopy(data, &sense->info[sizeof(sense->info) - len], len); + break; + case SSD_ELEM_FRU: + if (*sense_len < 15) { + sense->flags |= SSD_SDAT_OVFL; break; } + sense->fru = *data; + sense->extra_len = MAX(sense->extra_len, 7); + break; + case SSD_ELEM_STREAM: + sense->flags |= *data & + (SSD_ILI | SSD_EOM | SSD_FILEMARK); + break; + default: + + /* + * We can't handle that in fixed format. Skip it. + */ + break; } } + *sense_len = offsetof(struct scsi_sense_data_fixed, extra_len) + 1 + + sense->extra_len; +} + +/* + * Fill in SCSI sense data with the specified parameters. This routine can + * fill in either fixed or descriptor type sense data. + */ +void +scsi_set_sense_data_va(struct scsi_sense_data *sense_data, u_int *sense_len, + scsi_sense_data_type sense_format, int current_error, + int sense_key, int asc, int ascq, va_list ap) +{ + + if (*sense_len > SSD_FULL_SIZE) + *sense_len = SSD_FULL_SIZE; + if (sense_format == SSD_TYPE_DESC) + scsi_set_sense_data_desc_va(sense_data, sense_len, + sense_format, current_error, sense_key, asc, ascq, ap); + else + scsi_set_sense_data_fixed_va(sense_data, sense_len, + sense_format, current_error, sense_key, asc, ascq, ap); +} + +void +scsi_set_sense_data(struct scsi_sense_data *sense_data, + scsi_sense_data_type sense_format, int current_error, + int sense_key, int asc, int ascq, ...) +{ + va_list ap; + u_int sense_len = SSD_FULL_SIZE; + + va_start(ap, ascq); + scsi_set_sense_data_va(sense_data, &sense_len, sense_format, + current_error, sense_key, asc, ascq, ap); + va_end(ap); } void -scsi_set_sense_data(struct scsi_sense_data *sense_data, +scsi_set_sense_data_len(struct scsi_sense_data *sense_data, u_int *sense_len, scsi_sense_data_type sense_format, int current_error, - int sense_key, int asc, int ascq, ...) + int sense_key, int asc, int ascq, ...) { va_list ap; va_start(ap, ascq); - scsi_set_sense_data_va(sense_data, sense_format, current_error, - sense_key, asc, ascq, ap); + scsi_set_sense_data_va(sense_data, sense_len, sense_format, + current_error, sense_key, asc, ascq, ap); va_end(ap); } @@ -4650,6 +4621,73 @@ scsi_sense_progress_sbuf(struct sbuf *sb, struct scsi_sense_data *sense, scsi_progress_sbuf(sb, progress_val); } +void +scsi_sense_ata_sbuf(struct sbuf *sb, struct scsi_sense_data *sense, + u_int sense_len, uint8_t *cdb, int cdb_len, + struct scsi_inquiry_data *inq_data, + struct scsi_sense_desc_header *header) +{ + struct scsi_sense_ata_ret_desc *res; + + res = (struct scsi_sense_ata_ret_desc *)header; + + sbuf_printf(sb, "ATA status: %02x (%s%s%s%s%s%s%s%s), ", + res->status, + (res->status & 0x80) ? "BSY " : "", + (res->status & 0x40) ? "DRDY " : "", + (res->status & 0x20) ? "DF " : "", + (res->status & 0x10) ? "SERV " : "", + (res->status & 0x08) ? "DRQ " : "", + (res->status & 0x04) ? "CORR " : "", + (res->status & 0x02) ? "IDX " : "", + (res->status & 0x01) ? "ERR" : ""); + if (res->status & 1) { + sbuf_printf(sb, "error: %02x (%s%s%s%s%s%s%s%s), ", + res->error, + (res->error & 0x80) ? "ICRC " : "", + (res->error & 0x40) ? "UNC " : "", + (res->error & 0x20) ? "MC " : "", + (res->error & 0x10) ? "IDNF " : "", + (res->error & 0x08) ? "MCR " : "", + (res->error & 0x04) ? "ABRT " : "", + (res->error & 0x02) ? "NM " : "", + (res->error & 0x01) ? "ILI" : ""); + } + + if (res->flags & SSD_DESC_ATA_FLAG_EXTEND) { + sbuf_printf(sb, "count: %02x%02x, ", + res->count_15_8, res->count_7_0); + sbuf_printf(sb, "LBA: %02x%02x%02x%02x%02x%02x, ", + res->lba_47_40, res->lba_39_32, res->lba_31_24, + res->lba_23_16, res->lba_15_8, res->lba_7_0); + } else { + sbuf_printf(sb, "count: %02x, ", res->count_7_0); + sbuf_printf(sb, "LBA: %02x%02x%02x, ", + res->lba_23_16, res->lba_15_8, res->lba_7_0); + } + sbuf_printf(sb, "device: %02x, ", res->device); +} + +void +scsi_sense_forwarded_sbuf(struct sbuf *sb, struct scsi_sense_data *sense, + u_int sense_len, uint8_t *cdb, int cdb_len, + struct scsi_inquiry_data *inq_data, + struct scsi_sense_desc_header *header) +{ + struct scsi_sense_forwarded *forwarded; + const char *sense_key_desc; + const char *asc_desc; + int error_code, sense_key, asc, ascq; + + forwarded = (struct scsi_sense_forwarded *)header; + scsi_extract_sense_len((struct scsi_sense_data *)forwarded->sense_data, + forwarded->length - 2, &error_code, &sense_key, &asc, &ascq, 1); + scsi_sense_desc(sense_key, asc, ascq, NULL, &sense_key_desc, &asc_desc); + + sbuf_printf(sb, "Forwarded sense: %s asc:%x,%x (%s): ", + sense_key_desc, asc, ascq, asc_desc); +} + /* * Generic sense descriptor printing routine. This is used when we have * not yet implemented a specific printing routine for this descriptor. @@ -4696,7 +4734,9 @@ struct scsi_sense_desc_printer { {SSD_DESC_FRU, scsi_sense_fru_sbuf}, {SSD_DESC_STREAM, scsi_sense_stream_sbuf}, {SSD_DESC_BLOCK, scsi_sense_block_sbuf}, - {SSD_DESC_PROGRESS, scsi_sense_progress_sbuf} + {SSD_DESC_ATA, scsi_sense_ata_sbuf}, + {SSD_DESC_PROGRESS, scsi_sense_progress_sbuf}, + {SSD_DESC_FORWARDED, scsi_sense_forwarded_sbuf} }; void @@ -5627,6 +5667,32 @@ scsi_devid_is_lun_name(uint8_t *bufp) } int +scsi_devid_is_lun_md5(uint8_t *bufp) +{ + struct scsi_vpd_id_descriptor *descr; + + descr = (struct scsi_vpd_id_descriptor *)bufp; + if ((descr->id_type & SVPD_ID_ASSOC_MASK) != SVPD_ID_ASSOC_LUN) + return 0; + if ((descr->id_type & SVPD_ID_TYPE_MASK) != SVPD_ID_TYPE_MD5_LUN_ID) + return 0; + return 1; +} + +int +scsi_devid_is_lun_uuid(uint8_t *bufp) +{ + struct scsi_vpd_id_descriptor *descr; + + descr = (struct scsi_vpd_id_descriptor *)bufp; + if ((descr->id_type & SVPD_ID_ASSOC_MASK) != SVPD_ID_ASSOC_LUN) + return 0; + if ((descr->id_type & SVPD_ID_TYPE_MASK) != SVPD_ID_TYPE_UUID) + return 0; + return 1; +} + +int scsi_devid_is_port_naa(uint8_t *bufp) { struct scsi_vpd_id_descriptor *descr; @@ -8716,7 +8782,7 @@ scsi_static_inquiry_match(caddr_t inqbuffer, caddr_t table_entry) * \return 0 on a match, -1 otherwise. * * Treat rhs and lhs as arrays of vpd device id descriptors. Walk lhs matching - * agains each element in rhs until all data are exhausted or we have found + * against each element in rhs until all data are exhausted or we have found * a match. */ int diff --git a/sys/cam/scsi/scsi_all.h b/sys/cam/scsi/scsi_all.h index b394eea..5dc496e 100644 --- a/sys/cam/scsi/scsi_all.h +++ b/sys/cam/scsi/scsi_all.h @@ -662,6 +662,14 @@ struct scsi_log_fua_stat_and_perf { uint8_t fuanv_write_int[8]; }; +struct scsi_log_informational_exceptions { + struct scsi_log_param_header hdr; +#define SLP_IE_GEN 0x0000 + uint8_t ie_asc; + uint8_t ie_ascq; + uint8_t temperature; +}; + struct scsi_control_page { u_int8_t page_code; u_int8_t page_length; @@ -763,21 +771,6 @@ struct scsi_caching_page { uint8_t non_cache_seg_size[3]; }; -/* - * XXX KDM move this off to a vendor shim. - */ -struct copan_debugconf_subpage { - uint8_t page_code; -#define DBGCNF_PAGE_CODE 0x00 - uint8_t subpage; -#define DBGCNF_SUBPAGE_CODE 0xF0 - uint8_t page_length[2]; - uint8_t page_version; -#define DBGCNF_VERSION 0x00 - uint8_t ctl_time_io_secs[2]; -}; - - struct scsi_info_exceptions_page { u_int8_t page_code; #define SIEP_PAGE_SAVABLE 0x80 /* Page is savable */ @@ -791,6 +784,12 @@ struct scsi_info_exceptions_page { #define SIEP_FLAGS_EBACKERR 0x02 #define SIEP_FLAGS_LOGERR 0x01 u_int8_t mrie; +#define SIEP_MRIE_NO 0x00 +#define SIEP_MRIE_UA 0x02 +#define SIEP_MRIE_REC_COND 0x03 +#define SIEP_MRIE_REC_UNCOND 0x04 +#define SIEP_MRIE_NO_SENSE 0x05 +#define SIEP_MRIE_ON_REQ 0x06 u_int8_t interval_timer[4]; u_int8_t report_count[4]; }; @@ -1454,6 +1453,7 @@ struct scsi_report_supported_opcodes #define RSO_OPTIONS_ALL 0x00 #define RSO_OPTIONS_OC 0x01 #define RSO_OPTIONS_OC_SA 0x02 +#define RSO_OPTIONS_OC_ASA 0x03 uint8_t requested_opcode; uint8_t requested_service_action[2]; uint8_t length[4]; @@ -1479,6 +1479,10 @@ struct scsi_report_supported_opcodes_descr uint8_t flags; #define RSO_SERVACTV 0x01 #define RSO_CTDP 0x02 +#define RSO_CDLP_MASK 0x0c +#define RSO_CDLP_NO 0x00 +#define RSO_CDLP_A 0x04 +#define RSO_CDLP_B 0x08 uint8_t cdb_length[2]; struct scsi_report_supported_opcodes_timeout timeout[0]; }; @@ -1494,6 +1498,10 @@ struct scsi_report_supported_opcodes_one uint8_t reserved; uint8_t support; #define RSO_ONE_CTDP 0x80 +#define RSO_ONE_CDLP_MASK 0x18 +#define RSO_ONE_CDLP_NO 0x00 +#define RSO_ONE_CDLP_A 0x08 +#define RSO_ONE_CDLP_B 0x10 #define RSO_ONE_SUP_MASK 0x07 #define RSO_ONE_SUP_UNAVAIL 0x00 #define RSO_ONE_SUP_NOT_SUP 0x01 @@ -1507,7 +1515,9 @@ struct scsi_report_supported_tmf { uint8_t opcode; uint8_t service_action; - uint8_t reserved[4]; + uint8_t options; +#define RST_REPD 0x80 + uint8_t reserved[3]; uint8_t length[4]; uint8_t reserved1; uint8_t control; @@ -1528,7 +1538,34 @@ struct scsi_report_supported_tmf_data #define RST_ITNRS 0x01 #define RST_QTSS 0x02 #define RST_QAES 0x04 - uint8_t reserved[2]; + uint8_t reserved; + uint8_t length; +}; + +struct scsi_report_supported_tmf_ext_data +{ + uint8_t byte1; + uint8_t byte2; + uint8_t reserved; + uint8_t length; + uint8_t byte5; +#define RST_TMFTMOV 0x01 + uint8_t reserved2; + uint8_t byte7; +#define RST_WAKETS 0x01 +#define RST_TRTS 0x02 +#define RST_QTTS 0x04 +#define RST_LURTS 0x08 +#define RST_CTSTS 0x10 +#define RST_CACATS 0x20 +#define RST_ATSTS 0x40 +#define RST_ATTS 0x80 + uint8_t byte8; +#define RST_ITNRTS 0x01 +#define RST_QTSTS 0x02 +#define RST_QAETS 0x04 + uint8_t long_timeout[4]; + uint8_t short_timeout[4]; }; struct scsi_report_timestamp @@ -2130,6 +2167,7 @@ struct scsi_inquiry_data #define SCSI_REV_SPC2 4 #define SCSI_REV_SPC3 5 #define SCSI_REV_SPC4 6 +#define SCSI_REV_SPC5 7 #define SID_ECMA 0x38 #define SID_ISO 0xC0 @@ -2291,6 +2329,8 @@ struct scsi_vpd_id_descriptor #define SVPD_ID_TYPE_LUNGRP 0x06 #define SVPD_ID_TYPE_MD5_LUN_ID 0x07 #define SVPD_ID_TYPE_SCSI_NAME 0x08 +#define SVPD_ID_TYPE_PROTO 0x09 +#define SVPD_ID_TYPE_UUID 0x0a #define SVPD_ID_TYPE_MASK 0x0f u_int8_t reserved; u_int8_t length; @@ -2448,10 +2488,17 @@ struct scsi_vpd_extended_inquiry_data #define SVPD_EID_NV_SUP 0x02 #define SVPD_EID_V_SUP 0x01 uint8_t flags4; +#define SVPD_EID_NO_PI_CHK 0x20 #define SVPD_EID_P_I_I_SUP 0x10 -#define SVPD_EID_LUICLT 0x01 +#define SVPD_EID_LUICLR 0x01 uint8_t flags5; +#define SVPD_EID_LUCT_MASK 0xe0 +#define SVPD_EID_LUCT_NOT_REP 0x00 +#define SVPD_EID_LUCT_CONGL 0x20 +#define SVPD_EID_LUCT_GROUP 0x40 #define SVPD_EID_R_SUP 0x10 +#define SVPD_EID_RTD_SUP 0x08 +#define SVPD_EID_HSSRELEF 0x02 #define SVPD_EID_CBCS 0x01 uint8_t flags6; #define SVPD_EID_MULTI_I_T_FW 0x0F @@ -2462,10 +2509,16 @@ struct scsi_vpd_extended_inquiry_data uint8_t est[2]; uint8_t flags7; #define SVPD_EID_POA_SUP 0x80 -#define SVPD_EID_HRA_SUP 0x80 -#define SVPD_EID_VSA_SUP 0x80 +#define SVPD_EID_HRA_SUP 0x40 +#define SVPD_EID_VSA_SUP 0x20 uint8_t max_sense_length; - uint8_t reserved2[50]; + uint8_t bind_flags; +#define SVPD_EID_IBS 0x80 +#define SVPD_EID_IAS 0x40 +#define SVPD_EID_SAC 0x04 +#define SVPD_EID_NRD1 0x02 +#define SVPD_EID_NRD0 0x01 + uint8_t reserved2[49]; }; struct scsi_vpd_mode_page_policy_descr @@ -3062,11 +3115,12 @@ struct scsi_sense_data_fixed #define SSD_KEY_BLANK_CHECK 0x08 #define SSD_KEY_Vendor_Specific 0x09 #define SSD_KEY_COPY_ABORTED 0x0a -#define SSD_KEY_ABORTED_COMMAND 0x0b +#define SSD_KEY_ABORTED_COMMAND 0x0b #define SSD_KEY_EQUAL 0x0c #define SSD_KEY_VOLUME_OVERFLOW 0x0d #define SSD_KEY_MISCOMPARE 0x0e -#define SSD_KEY_COMPLETED 0x0f +#define SSD_KEY_COMPLETED 0x0f +#define SSD_SDAT_OVFL 0x10 #define SSD_ILI 0x20 #define SSD_EOM 0x40 #define SSD_FILEMARK 0x80 @@ -3104,7 +3158,9 @@ struct scsi_sense_data_desc uint8_t sense_key; uint8_t add_sense_code; uint8_t add_sense_code_qual; - uint8_t reserved[3]; + uint8_t flags; +#define SSDD_SDAT_OVFL 0x80 + uint8_t reserved[2]; /* * Note that SPC-4, section 4.5.2.1 says that the extra_len field * must be less than or equal to 244. @@ -3144,7 +3200,7 @@ struct scsi_sense_info /* * Command-specific information depends on the command for which the - * reported condition occured. + * reported condition occurred. * * Note that any changes to the field names or positions in this structure, * even reserved fields, should be accompanied by an examination of the @@ -3343,6 +3399,29 @@ struct scsi_sense_osd_attr_id }; /* + * ATA Return descriptor, used for the SCSI ATA PASS-THROUGH(12), (16) and + * (32) commands. Described in SAT-4r05. + */ +struct scsi_sense_ata_ret_desc +{ + uint8_t desc_type; +#define SSD_DESC_ATA 0x09 + uint8_t length; + uint8_t flags; +#define SSD_DESC_ATA_FLAG_EXTEND 0x01 + uint8_t error; + uint8_t count_15_8; + uint8_t count_7_0; + uint8_t lba_31_24; + uint8_t lba_7_0; + uint8_t lba_39_32; + uint8_t lba_15_8; + uint8_t lba_47_40; + uint8_t lba_23_16; + uint8_t device; + uint8_t status; +}; +/* * Used with Sense keys No Sense (0x00) and Not Ready (0x02). * * Maximum descriptors allowed: 32 (as of SPC-4) @@ -3375,11 +3454,13 @@ struct scsi_sense_forwarded #define SSD_FORWARDED_SDS_UNK 0x00 #define SSD_FORWARDED_SDS_EXSRC 0x01 #define SSD_FORWARDED_SDS_EXDST 0x02 + uint8_t status; + uint8_t sense_data[]; }; /* * Vendor-specific sense descriptor. The desc_type field will be in the - * range bewteen MIN and MAX inclusive. + * range between MIN and MAX inclusive. */ struct scsi_sense_vendor { @@ -3547,13 +3628,15 @@ void scsi_desc_iterate(struct scsi_sense_data_desc *sense, u_int sense_len, void *), void *arg); uint8_t *scsi_find_desc(struct scsi_sense_data_desc *sense, u_int sense_len, uint8_t desc_type); -void scsi_set_sense_data(struct scsi_sense_data *sense_data, +void scsi_set_sense_data(struct scsi_sense_data *sense_data, scsi_sense_data_type sense_format, int current_error, int sense_key, int asc, int ascq, ...) ; +void scsi_set_sense_data_len(struct scsi_sense_data *sense_data, + u_int *sense_len, scsi_sense_data_type sense_format, int current_error, + int sense_key, int asc, int ascq, ...) ; void scsi_set_sense_data_va(struct scsi_sense_data *sense_data, - scsi_sense_data_type sense_format, - int current_error, int sense_key, int asc, - int ascq, va_list ap); + u_int *sense_len, scsi_sense_data_type sense_format, + int current_error, int sense_key, int asc, int ascq, va_list ap); int scsi_get_sense_info(struct scsi_sense_data *sense_data, u_int sense_len, uint8_t info_type, uint64_t *info, int64_t *signed_info); @@ -3603,6 +3686,14 @@ void scsi_sense_progress_sbuf(struct sbuf *sb, struct scsi_sense_data *sense, u_int sense_len, uint8_t *cdb, int cdb_len, struct scsi_inquiry_data *inq_data, struct scsi_sense_desc_header *header); +void scsi_sense_ata_sbuf(struct sbuf *sb, struct scsi_sense_data *sense, + u_int sense_len, uint8_t *cdb, int cdb_len, + struct scsi_inquiry_data *inq_data, + struct scsi_sense_desc_header *header); +void scsi_sense_forwarded_sbuf(struct sbuf *sb, struct scsi_sense_data *sense, + u_int sense_len, uint8_t *cdb, int cdb_len, + struct scsi_inquiry_data *inq_data, + struct scsi_sense_desc_header *header); void scsi_sense_generic_sbuf(struct sbuf *sb, struct scsi_sense_data *sense, u_int sense_len, uint8_t *cdb, int cdb_len, struct scsi_inquiry_data *inq_data, @@ -3659,6 +3750,8 @@ int scsi_devid_is_lun_eui64(uint8_t *bufp); int scsi_devid_is_lun_naa(uint8_t *bufp); int scsi_devid_is_lun_name(uint8_t *bufp); int scsi_devid_is_lun_t10(uint8_t *bufp); +int scsi_devid_is_lun_md5(uint8_t *bufp); +int scsi_devid_is_lun_uuid(uint8_t *bufp); int scsi_devid_is_port_naa(uint8_t *bufp); struct scsi_vpd_id_descriptor * scsi_get_devid(struct scsi_vpd_device_id *id, uint32_t len, diff --git a/sys/cam/scsi/scsi_ch.h b/sys/cam/scsi/scsi_ch.h index fd317d2..9d1ffb7 100644 --- a/sys/cam/scsi/scsi_ch.h +++ b/sys/cam/scsi/scsi_ch.h @@ -333,7 +333,7 @@ struct scsi_send_volume_tag_parameters { /* * Device capabilities page. * - * This page defines characteristics of the elemenet types in the + * This page defines characteristics of the element types in the * medium changer device. * * Note in the definitions below, the following abbreviations are @@ -341,7 +341,7 @@ struct scsi_send_volume_tag_parameters { * MT Medium transport element (picker) * ST Storage transport element (slot) * IE Import/export element (portal) - * DT Data tranfer element (tape/disk drive) + * DT Data transfer element (tape/disk drive) */ struct page_device_capabilities { u_int8_t pg_code; /* page code (0x1f) */ diff --git a/sys/cam/scsi/scsi_da.c b/sys/cam/scsi/scsi_da.c index 8874285..cb423c6 100644 --- a/sys/cam/scsi/scsi_da.c +++ b/sys/cam/scsi/scsi_da.c @@ -2868,7 +2868,7 @@ cmd6workaround(union ccb *ccb) * * While we will attempt to choose an alternative delete method * this may result in short deletes if the existing delete - * requests from geom are big for the new method choosen. + * requests from geom are big for the new method chosen. * * This method assumes that the error which triggered this * will not retry the io otherwise a panic will occur @@ -3319,7 +3319,7 @@ dadone(struct cam_periph *periph, union ccb *done_ccb) * Based on older SBC-3 spec revisions * any of the UNMAP methods "may" be * available via LBP given this flag so - * we flag all of them as availble and + * we flag all of them as available and * then remove those which further * probes confirm aren't available * later. diff --git a/sys/cam/scsi/scsi_da.h b/sys/cam/scsi/scsi_da.h index ad4d0db..1af4db4 100644 --- a/sys/cam/scsi/scsi_da.h +++ b/sys/cam/scsi/scsi_da.h @@ -554,6 +554,20 @@ struct scsi_da_rw_recovery_page { u_int8_t recovery_time_limit[2]; }; +struct scsi_da_verify_recovery_page { + u_int8_t page_code; +#define SMS_VERIFY_ERROR_RECOVERY_PAGE 0x07 + u_int8_t page_length; + u_int8_t byte3; +#define SMS_VER_EER 0x08 +#define SMS_VER_PER 0x04 +#define SMS_VER_DTE 0x02 +#define SMS_VER_DCR 0x01 + u_int8_t read_retry_count; + u_int8_t reserved[6]; + u_int8_t recovery_time_limit[2]; +}; + __BEGIN_DECLS /* * XXX These are only left out of the kernel build to silence warnings. If, diff --git a/sys/cam/scsi/scsi_enc_ses.c b/sys/cam/scsi/scsi_enc_ses.c index a735a66..042129f 100644 --- a/sys/cam/scsi/scsi_enc_ses.c +++ b/sys/cam/scsi/scsi_enc_ses.c @@ -550,6 +550,7 @@ static int ses_set_timed_completion(enc_softc_t *, uint8_t); static int ses_putstatus(enc_softc_t *, int, struct ses_comstat *); #endif +static void ses_poll_status(enc_softc_t *); static void ses_print_addl_data(enc_softc_t *, enc_element_t *); /*=========================== SES cleanup routines ===========================*/ @@ -1476,11 +1477,7 @@ out: if (err) ses_cache_free(enc, enc_cache); else { - enc_update_request(enc, SES_UPDATE_GETSTATUS); - if (ses->ses_flags & SES_FLAG_DESC) - enc_update_request(enc, SES_UPDATE_GETELMDESCS); - if (ses->ses_flags & SES_FLAG_ADDLSTATUS) - enc_update_request(enc, SES_UPDATE_GETELMADDLSTATUS); + ses_poll_status(enc); enc_update_request(enc, SES_PUBLISH_CACHE); } ENC_DLOG(enc, "%s: exiting with err %d\n", __func__, err); @@ -1870,7 +1867,7 @@ ses_process_control_request(enc_softc_t *enc, struct enc_fsm_state *state, * o Some SCSI status error. */ ses_terminate_control_requests(&ses->ses_pending_requests, error); - enc_update_request(enc, SES_UPDATE_GETSTATUS); + ses_poll_status(enc); return (0); } @@ -2804,6 +2801,8 @@ ses_poll_status(enc_softc_t *enc) ses = enc->enc_private; enc_update_request(enc, SES_UPDATE_GETSTATUS); + if (ses->ses_flags & SES_FLAG_DESC) + enc_update_request(enc, SES_UPDATE_GETELMDESCS); if (ses->ses_flags & SES_FLAG_ADDLSTATUS) enc_update_request(enc, SES_UPDATE_GETELMADDLSTATUS); } diff --git a/sys/cam/scsi/scsi_low.h b/sys/cam/scsi/scsi_low.h index 2cca8ae..4c74eae 100644 --- a/sys/cam/scsi/scsi_low.h +++ b/sys/cam/scsi/scsi_low.h @@ -193,7 +193,7 @@ struct slccb { *****************************************/ struct sc_p ccb_scp; /* given */ struct sc_p ccb_sscp; /* saved scsi data pointer */ - int ccb_datalen; /* transfered data counter */ + int ccb_datalen; /* transferred data counter */ /***************************************** * Msgout @@ -212,7 +212,7 @@ struct slccb { #define CCB_STARTQ 0x0010 #define CCB_POLLED 0x0100 /* polling ccb */ #define CCB_NORETRY 0x0200 /* do NOT retry */ -#define CCB_AUTOSENSE 0x0400 /* do a sence after CA */ +#define CCB_AUTOSENSE 0x0400 /* do a sense after CA */ #define CCB_URGENT 0x0800 /* an urgent ccb */ #define CCB_NOSDONE 0x1000 /* do not call an os done routine */ #define CCB_SCSIIO 0x2000 /* a normal scsi io coming from upper layer */ diff --git a/sys/cam/scsi/scsi_sa.c b/sys/cam/scsi/scsi_sa.c index 2779544..0379a46 100644 --- a/sys/cam/scsi/scsi_sa.c +++ b/sys/cam/scsi/scsi_sa.c @@ -2861,7 +2861,7 @@ samount(struct cam_periph *periph, int oflags, struct cdev *dev) softc = (struct sa_softc *)periph->softc; /* - * This should determine if something has happend since the last + * This should determine if something has happened since the last * open/mount that would invalidate the mount. We do *not* want * to retry this command- we just want the status. But we only * do this if we're mounted already- if we're not mounted, diff --git a/sys/cam/scsi/scsi_xpt.c b/sys/cam/scsi/scsi_xpt.c index 1af8143..bb60591 100644 --- a/sys/cam/scsi/scsi_xpt.c +++ b/sys/cam/scsi/scsi_xpt.c @@ -459,7 +459,7 @@ static struct scsi_quirk_entry scsi_quirk_table[] = }, { /* - * The Hitachi CJ series with J8A8 firmware apparantly has + * The Hitachi CJ series with J8A8 firmware apparently has * problems with tagged commands. * PR: 23536 * Reported by: amagai@nue.org @@ -2442,7 +2442,7 @@ scsi_devise_transport(struct cam_path *path) path->device->transport_version = otherdev->transport_version; } else { - /* Until we know better, opt for safty */ + /* Until we know better, opt for safety */ path->device->protocol_version = 2; if (path->device->transport == XPORT_SPI) path->device->transport_version = 2; diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c index 3b7131e..5053bdf 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c @@ -88,6 +88,8 @@ extern inline dsl_dataset_phys_t *dsl_dataset_phys(dsl_dataset_t *ds); extern int spa_asize_inflation; +static zil_header_t zero_zil; + /* * Figure out how much of this delta should be propogated to the dsl_dir * layer. If there's a refreservation, that space has already been @@ -132,6 +134,7 @@ dsl_dataset_block_born(dsl_dataset_t *ds, const blkptr_t *bp, dmu_tx_t *tx) return; } + ASSERT3U(bp->blk_birth, >, dsl_dataset_phys(ds)->ds_prev_snap_txg); dmu_buf_will_dirty(ds->ds_dbuf, tx); mutex_enter(&ds->ds_lock); delta = parent_delta(ds, used); @@ -902,8 +905,20 @@ dsl_dataset_zero_zil(dsl_dataset_t *ds, dmu_tx_t *tx) objset_t *os; VERIFY0(dmu_objset_from_ds(ds, &os)); - bzero(&os->os_zil_header, sizeof (os->os_zil_header)); - dsl_dataset_dirty(ds, tx); + if (bcmp(&os->os_zil_header, &zero_zil, sizeof (zero_zil)) != 0) { + dsl_pool_t *dp = ds->ds_dir->dd_pool; + zio_t *zio; + + bzero(&os->os_zil_header, sizeof (os->os_zil_header)); + + zio = zio_root(dp->dp_spa, NULL, NULL, ZIO_FLAG_MUSTSUCCEED); + dsl_dataset_sync(ds, zio, tx); + VERIFY0(zio_wait(zio)); + + /* dsl_dataset_sync_done will drop this reference. */ + dmu_buf_add_ref(ds->ds_dbuf, ds); + dsl_dataset_sync_done(ds, tx); + } } uint64_t @@ -1083,8 +1098,10 @@ dsl_dataset_dirty(dsl_dataset_t *ds, dmu_tx_t *tx) if (dsl_dataset_phys(ds)->ds_next_snap_obj != 0) panic("dirtying snapshot!"); - dp = ds->ds_dir->dd_pool; + /* Must not dirty a dataset in the same txg where it got snapshotted. */ + ASSERT3U(tx->tx_txg, >, dsl_dataset_phys(ds)->ds_prev_snap_txg); + dp = ds->ds_dir->dd_pool; if (txg_list_add(&dp->dp_dirty_datasets, ds, tx->tx_txg)) { /* up the hold count until we can be written out */ dmu_buf_add_ref(ds->ds_dbuf, ds); @@ -1339,8 +1356,6 @@ void dsl_dataset_snapshot_sync_impl(dsl_dataset_t *ds, const char *snapname, dmu_tx_t *tx) { - static zil_header_t zero_zil; - dsl_pool_t *dp = ds->ds_dir->dd_pool; dmu_buf_t *dbuf; dsl_dataset_phys_t *dsphys; @@ -1359,6 +1374,10 @@ dsl_dataset_snapshot_sync_impl(dsl_dataset_t *ds, const char *snapname, bcmp(&os->os_phys->os_zil_header, &zero_zil, sizeof (zero_zil)) == 0); + /* Should not snapshot a dirty dataset. */ + ASSERT(!txg_list_member(&ds->ds_dir->dd_pool->dp_dirty_datasets, + ds, tx->tx_txg)); + dsl_fs_ss_count_adjust(ds->ds_dir, 1, DD_FIELD_SNAPSHOT_COUNT, tx); /* @@ -1718,6 +1737,27 @@ dsl_dataset_sync(dsl_dataset_t *ds, zio_t *zio, dmu_tx_t *tx) } } +static int +deadlist_enqueue_cb(void *arg, const blkptr_t *bp, dmu_tx_t *tx) +{ + dsl_deadlist_t *dl = arg; + dsl_deadlist_insert(dl, bp, tx); + return (0); +} + +void +dsl_dataset_sync_done(dsl_dataset_t *ds, dmu_tx_t *tx) +{ + objset_t *os = ds->ds_objset; + + bplist_iterate(&ds->ds_pending_deadlist, + deadlist_enqueue_cb, &ds->ds_deadlist, tx); + + ASSERT(!dmu_objset_is_dirty(os, dmu_tx_get_txg(tx))); + + dmu_buf_rele(ds->ds_dbuf, ds); +} + static void get_clones_stat(dsl_dataset_t *ds, nvlist_t *nv) { @@ -2237,6 +2277,18 @@ dsl_dataset_rollback_check(void *arg, dmu_tx_t *tx) return (SET_ERROR(EINVAL)); } + /* + * No rollback to a snapshot created in the current txg, because + * the rollback may dirty the dataset and create blocks that are + * not reachable from the rootbp while having a birth txg that + * falls into the snapshot's range. + */ + if (dmu_tx_is_syncing(tx) && + dsl_dataset_phys(ds)->ds_prev_snap_txg >= tx->tx_txg) { + dsl_dataset_rele(ds, FTAG); + return (SET_ERROR(EAGAIN)); + } + /* must not have any bookmarks after the most recent snapshot */ nvlist_t *proprequest = fnvlist_alloc(); fnvlist_add_boolean(proprequest, zfs_prop_to_name(ZFS_PROP_CREATETXG)); diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c index 4765359..a08af0f 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c @@ -20,7 +20,7 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2011, 2015 by Delphix. All rights reserved. + * Copyright (c) 2011, 2016 by Delphix. All rights reserved. * Copyright (c) 2013 Steven Hartland. All rights reserved. * Copyright (c) 2014 Spectra Logic Corporation, All rights reserved. * Copyright (c) 2014 Integros [integros.com] @@ -528,14 +528,6 @@ dsl_pool_mos_diduse_space(dsl_pool_t *dp, mutex_exit(&dp->dp_lock); } -static int -deadlist_enqueue_cb(void *arg, const blkptr_t *bp, dmu_tx_t *tx) -{ - dsl_deadlist_t *dl = arg; - dsl_deadlist_insert(dl, bp, tx); - return (0); -} - static void dsl_pool_sync_mos(dsl_pool_t *dp, dmu_tx_t *tx) { @@ -636,11 +628,7 @@ dsl_pool_sync(dsl_pool_t *dp, uint64_t txg) * - release hold from dsl_dataset_dirty() */ while ((ds = list_remove_head(&synced_datasets)) != NULL) { - objset_t *os = ds->ds_objset; - bplist_iterate(&ds->ds_pending_deadlist, - deadlist_enqueue_cb, &ds->ds_deadlist, tx); - ASSERT(!dmu_objset_is_dirty(os, txg)); - dmu_buf_rele(ds->ds_dbuf, ds); + dsl_dataset_sync_done(ds, tx); } while ((dd = txg_list_remove(&dp->dp_dirty_dirs, txg)) != NULL) { dsl_dir_sync(dd, tx); @@ -697,9 +685,16 @@ dsl_pool_sync_done(dsl_pool_t *dp, uint64_t txg) { zilog_t *zilog; - while (zilog = txg_list_remove(&dp->dp_dirty_zilogs, txg)) { + while (zilog = txg_list_head(&dp->dp_dirty_zilogs, txg)) { dsl_dataset_t *ds = dmu_objset_ds(zilog->zl_os); + /* + * We don't remove the zilog from the dp_dirty_zilogs + * list until after we've cleaned it. This ensures that + * callers of zilog_is_dirty() receive an accurate + * answer when they are racing with the spa sync thread. + */ zil_clean(zilog, txg); + (void) txg_list_remove_this(&dp->dp_dirty_zilogs, zilog, txg); ASSERT(!dmu_objset_is_dirty(zilog->zl_os, txg)); dmu_buf_rele(ds->ds_dbuf, zilog); } diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c index c94f63d..7f51138 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c @@ -6881,8 +6881,6 @@ spa_sync(spa_t *spa, uint64_t txg) spa->spa_config_syncing = NULL; } - spa->spa_ubsync = spa->spa_uberblock; - dsl_pool_sync_done(dp, txg); mutex_enter(&spa->spa_alloc_lock); @@ -6907,6 +6905,13 @@ spa_sync(spa_t *spa, uint64_t txg) spa->spa_sync_pass = 0; + /* + * Update the last synced uberblock here. We want to do this at + * the end of spa_sync() so that consumers of spa_last_synced_txg() + * will be guaranteed that all the processing associated with + * that txg has been completed. + */ + spa->spa_ubsync = spa->spa_uberblock; spa_config_exit(spa, SCL_CONFIG, FTAG); spa_handle_ignored_writes(spa); diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h index 18466bb..22c67b4 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h @@ -274,6 +274,7 @@ boolean_t dsl_dataset_modified_since_snap(dsl_dataset_t *ds, dsl_dataset_t *snap); void dsl_dataset_sync(dsl_dataset_t *os, zio_t *zio, dmu_tx_t *tx); +void dsl_dataset_sync_done(dsl_dataset_t *os, dmu_tx_t *tx); void dsl_dataset_block_born(dsl_dataset_t *ds, const blkptr_t *bp, dmu_tx_t *tx); diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_vfsops.h b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_vfsops.h index df5ce05..bcf22cd 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_vfsops.h +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_vfsops.h @@ -142,7 +142,7 @@ extern uint_t zfs_fsyncer_key; extern int zfs_super_owner; extern int zfs_suspend_fs(zfsvfs_t *zfsvfs); -extern int zfs_resume_fs(zfsvfs_t *zfsvfs, const char *osname); +extern int zfs_resume_fs(zfsvfs_t *zfsvfs, struct dsl_dataset *ds); extern int zfs_userspace_one(zfsvfs_t *zfsvfs, zfs_userquota_prop_t type, const char *domain, uint64_t rid, uint64_t *valuep); extern int zfs_userspace_many(zfsvfs_t *zfsvfs, zfs_userquota_prop_t type, diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c index 52b9c83..0e2ba77 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c @@ -3788,12 +3788,15 @@ zfs_ioc_rollback(const char *fsname, nvlist_t *args, nvlist_t *outnvl) int error; if (getzfsvfs(fsname, &zfsvfs) == 0) { + dsl_dataset_t *ds; + + ds = dmu_objset_ds(zfsvfs->z_os); error = zfs_suspend_fs(zfsvfs); if (error == 0) { int resume_err; error = dsl_dataset_rollback(fsname, zfsvfs, outnvl); - resume_err = zfs_resume_fs(zfsvfs, fsname); + resume_err = zfs_resume_fs(zfsvfs, ds); error = error ? error : resume_err; } #ifdef illumos @@ -4444,8 +4447,10 @@ zfs_ioc_recv(zfs_cmd_t *zc) if (getzfsvfs(tofs, &zfsvfs) == 0) { /* online recv */ + dsl_dataset_t *ds; int end_err; + ds = dmu_objset_ds(zfsvfs->z_os); error = zfs_suspend_fs(zfsvfs); /* * If the suspend fails, then the recv_end will @@ -4453,7 +4458,7 @@ zfs_ioc_recv(zfs_cmd_t *zc) */ end_err = dmu_recv_end(&drc, zfsvfs); if (error == 0) - error = zfs_resume_fs(zfsvfs, tofs); + error = zfs_resume_fs(zfsvfs, ds); error = error ? error : end_err; #ifdef illumos VFS_RELE(zfsvfs->z_vfs); @@ -4999,11 +5004,14 @@ zfs_ioc_userspace_upgrade(zfs_cmd_t *zc) * objset needs to be closed & reopened (to grow the * objset_phys_t). Suspend/resume the fs will do that. */ + dsl_dataset_t *ds; + + ds = dmu_objset_ds(zfsvfs->z_os); error = zfs_suspend_fs(zfsvfs); if (error == 0) { dmu_objset_refresh_ownership(zfsvfs->z_os, zfsvfs); - error = zfs_resume_fs(zfsvfs, zc->zc_name); + error = zfs_resume_fs(zfsvfs, ds); } } if (error == 0) diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c index bae4d8a..112d965 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c @@ -1040,13 +1040,6 @@ zfsvfs_setup(zfsvfs_t *zfsvfs, boolean_t mounting) if (error) return (error); - /* - * Set the objset user_ptr to track its zfsvfs. - */ - mutex_enter(&zfsvfs->z_os->os_user_ptr_lock); - dmu_objset_set_user(zfsvfs->z_os, zfsvfs); - mutex_exit(&zfsvfs->z_os->os_user_ptr_lock); - zfsvfs->z_log = zil_open(zfsvfs->z_os, zfs_get_data); /* @@ -1107,6 +1100,13 @@ zfsvfs_setup(zfsvfs_t *zfsvfs, boolean_t mounting) zfsvfs->z_vfs->vfs_flag |= readonly; /* restore readonly bit */ } + /* + * Set the objset user_ptr to track its zfsvfs. + */ + mutex_enter(&zfsvfs->z_os->os_user_ptr_lock); + dmu_objset_set_user(zfsvfs->z_os, zfsvfs); + mutex_exit(&zfsvfs->z_os->os_user_ptr_lock); + return (0); } @@ -2226,7 +2226,7 @@ zfs_suspend_fs(zfsvfs_t *zfsvfs) * zfsvfs, held, and long held on entry. */ int -zfs_resume_fs(zfsvfs_t *zfsvfs, const char *osname) +zfs_resume_fs(zfsvfs_t *zfsvfs, dsl_dataset_t *ds) { int err; znode_t *zp; @@ -2235,14 +2235,13 @@ zfs_resume_fs(zfsvfs_t *zfsvfs, const char *osname) ASSERT(RW_WRITE_HELD(&zfsvfs->z_teardown_inactive_lock)); /* - * We already own this, so just hold and rele it to update the - * objset_t, as the one we had before may have been evicted. + * We already own this, so just update the objset_t, as the one we + * had before may have been evicted. */ objset_t *os; - VERIFY0(dmu_objset_hold(osname, zfsvfs, &os)); - VERIFY3P(os->os_dsl_dataset->ds_owner, ==, zfsvfs); - VERIFY(dsl_dataset_long_held(os->os_dsl_dataset)); - dmu_objset_rele(os, zfsvfs); + VERIFY3P(ds->ds_owner, ==, zfsvfs); + VERIFY(dsl_dataset_long_held(ds)); + VERIFY0(dmu_objset_from_ds(ds, &os)); err = zfsvfs_init(zfsvfs, os); if (err != 0) diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c index dcfa70f..fa22523 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c @@ -6020,26 +6020,17 @@ zfs_lock(ap) int line; } */ *ap; { - zfsvfs_t *zfsvfs; - znode_t *zp; vnode_t *vp; - int flags; + znode_t *zp; int err; - vp = ap->a_vp; - flags = ap->a_flags; - if ((flags & LK_INTERLOCK) == 0 && (flags & LK_NOWAIT) == 0 && - (vp->v_iflag & VI_DOOMED) == 0 && (zp = vp->v_data) != NULL && - (zp->z_pflags & ZFS_XATTR) == 0) { - zfsvfs = zp->z_zfsvfs; - VERIFY(!RRM_LOCK_HELD(&zfsvfs->z_teardown_lock)); - } err = vop_stdlock(ap); - if ((flags & LK_INTERLOCK) != 0 && (flags & LK_NOWAIT) == 0 && - (vp->v_iflag & VI_DOOMED) == 0 && (zp = vp->v_data) != NULL && - (zp->z_pflags & ZFS_XATTR) == 0) { - zfsvfs = zp->z_zfsvfs; - VERIFY(!RRM_LOCK_HELD(&zfsvfs->z_teardown_lock)); + if (err == 0 && (ap->a_flags & LK_NOWAIT) == 0) { + vp = ap->a_vp; + zp = vp->v_data; + if (vp->v_mount != NULL && (vp->v_iflag & VI_DOOMED) == 0 && + zp != NULL && (zp->z_pflags & ZFS_XATTR) == 0) + VERIFY(!RRM_LOCK_HELD(&zp->z_zfsvfs->z_teardown_lock)); } return (err); } diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c index 224e829..1ad0d83 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c @@ -727,14 +727,7 @@ zfs_znode_alloc(zfsvfs_t *zfsvfs, dmu_buf_t *db, int blksz, /* * Acquire vnode lock before making it available to the world. */ -#ifdef DIAGNOSTIC - vop_lock1_t *orig_lock = vp->v_op->vop_lock1; - vp->v_op->vop_lock1 = vop_stdlock; vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); - vp->v_op->vop_lock1 = orig_lock; -#else - vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); -#endif VN_LOCK_AREC(vp); if (vp->v_type != VFIFO) VN_LOCK_ASHARE(vp); diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c index 799df31..0a7affb 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c @@ -20,8 +20,7 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2011, 2015 by Delphix. All rights reserved. - * Copyright (c) 2011, 2014 by Delphix. All rights reserved. + * Copyright (c) 2011, 2016 by Delphix. All rights reserved. * Copyright (c) 2014 Integros [integros.com] */ @@ -495,6 +494,27 @@ zilog_dirty(zilog_t *zilog, uint64_t txg) } } +/* + * Determine if the zil is dirty in the specified txg. Callers wanting to + * ensure that the dirty state does not change must hold the itxg_lock for + * the specified txg. Holding the lock will ensure that the zil cannot be + * dirtied (zil_itx_assign) or cleaned (zil_clean) while we check its current + * state. + */ +boolean_t +zilog_is_dirty_in_txg(zilog_t *zilog, uint64_t txg) +{ + dsl_pool_t *dp = zilog->zl_dmu_pool; + + if (txg_list_member(&dp->dp_dirty_zilogs, zilog, txg & TXG_MASK)) + return (B_TRUE); + return (B_FALSE); +} + +/* + * Determine if the zil is dirty. The zil is considered dirty if it has + * any pending itx records that have not been cleaned by zil_clean(). + */ boolean_t zilog_is_dirty(zilog_t *zilog) { @@ -1058,8 +1078,6 @@ zil_lwb_commit(zilog_t *zilog, itx_t *itx, lwb_t *lwb) return (NULL); ASSERT(lwb->lwb_buf != NULL); - ASSERT(zilog_is_dirty(zilog) || - spa_freeze_txg(zilog->zl_spa) != UINT64_MAX); if (lrc->lrc_txtype == TX_WRITE && itx->itx_wr_state == WR_NEED_COPY) dlen = P2ROUNDUP_TYPED( @@ -1392,6 +1410,11 @@ zil_get_commit_list(zilog_t *zilog) else otxg = spa_last_synced_txg(zilog->zl_spa) + 1; + /* + * This is inherently racy, since there is nothing to prevent + * the last synced txg from changing. That's okay since we'll + * only commit things in the future. + */ for (txg = otxg; txg < (otxg + TXG_CONCURRENT_STATES); txg++) { itxg_t *itxg = &zilog->zl_itxg[txg & TXG_MASK]; @@ -1401,6 +1424,16 @@ zil_get_commit_list(zilog_t *zilog) continue; } + /* + * If we're adding itx records to the zl_itx_commit_list, + * then the zil better be dirty in this "txg". We can assert + * that here since we're holding the itxg_lock which will + * prevent spa_sync from cleaning it. Once we add the itxs + * to the zl_itx_commit_list we must commit it to disk even + * if it's unnecessary (i.e. the txg was synced). + */ + ASSERT(zilog_is_dirty_in_txg(zilog, txg) || + spa_freeze_txg(zilog->zl_spa) != UINT64_MAX); list_move_tail(commit_list, &itxg->itxg_itxs->i_sync_list); push_sod += itxg->itxg_sod; itxg->itxg_sod = 0; @@ -1426,6 +1459,10 @@ zil_async_to_sync(zilog_t *zilog, uint64_t foid) else otxg = spa_last_synced_txg(zilog->zl_spa) + 1; + /* + * This is inherently racy, since there is nothing to prevent + * the last synced txg from changing. + */ for (txg = otxg; txg < (otxg + TXG_CONCURRENT_STATES); txg++) { itxg_t *itxg = &zilog->zl_itxg[txg & TXG_MASK]; @@ -1497,8 +1534,14 @@ zil_commit_writer(zilog_t *zilog) DTRACE_PROBE1(zil__cw1, zilog_t *, zilog); while (itx = list_head(&zilog->zl_itx_commit_list)) { txg = itx->itx_lr.lrc_txg; - ASSERT(txg); + ASSERT3U(txg, !=, 0); + /* + * This is inherently racy and may result in us writing + * out a log block for a txg that was just synced. This is + * ok since we'll end cleaning up that log block the next + * time we call zil_sync(). + */ if (txg > spa_last_synced_txg(spa) || txg > spa_freeze_txg(spa)) lwb = zil_lwb_commit(zilog, itx, lwb); list_remove(&zilog->zl_itx_commit_list, itx); @@ -1815,7 +1858,10 @@ zil_close(zilog_t *zilog) mutex_exit(&zilog->zl_lock); if (txg) txg_wait_synced(zilog->zl_dmu_pool, txg); - ASSERT(!zilog_is_dirty(zilog)); + + if (zilog_is_dirty(zilog)) + zfs_dbgmsg("zil (%p) is dirty, txg %llu", zilog, txg); + VERIFY(!zilog_is_dirty(zilog)); taskq_destroy(zilog->zl_clean_taskq); zilog->zl_clean_taskq = NULL; diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c index 9a57fd4..953a466 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c @@ -568,9 +568,24 @@ zio_timestamp_compare(const void *x1, const void *x2) if (z1->io_queued_timestamp > z2->io_queued_timestamp) return (1); - if (z1->io_offset < z2->io_offset) + if (z1->io_bookmark.zb_objset < z2->io_bookmark.zb_objset) return (-1); - if (z1->io_offset > z2->io_offset) + if (z1->io_bookmark.zb_objset > z2->io_bookmark.zb_objset) + return (1); + + if (z1->io_bookmark.zb_object < z2->io_bookmark.zb_object) + return (-1); + if (z1->io_bookmark.zb_object > z2->io_bookmark.zb_object) + return (1); + + if (z1->io_bookmark.zb_level < z2->io_bookmark.zb_level) + return (-1); + if (z1->io_bookmark.zb_level > z2->io_bookmark.zb_level) + return (1); + + if (z1->io_bookmark.zb_blkid < z2->io_bookmark.zb_blkid) + return (-1); + if (z1->io_bookmark.zb_blkid > z2->io_bookmark.zb_blkid) return (1); if (z1 < z2) diff --git a/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h b/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h index d449294..a22eb17 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h +++ b/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h @@ -32,8 +32,6 @@ #ifndef _SYS_DTRACE_H #define _SYS_DTRACE_H -#pragma ident "%Z%%M% %I% %E% SMI" - #ifdef __cplusplus extern "C" { #endif diff --git a/sys/compat/freebsd32/freebsd32.h b/sys/compat/freebsd32/freebsd32.h index bbe41cf..ccac785 100644 --- a/sys/compat/freebsd32/freebsd32.h +++ b/sys/compat/freebsd32/freebsd32.h @@ -315,7 +315,8 @@ struct kinfo_proc32 { char ki_comm[COMMLEN+1]; char ki_emul[KI_EMULNAMELEN+1]; char ki_loginclass[LOGINCLASSLEN+1]; - char ki_sparestrings[50]; + char ki_moretdname[MAXCOMLEN-TDNAMLEN+1]; + char ki_sparestrings[46]; int ki_spareints[KI_NSPARE_INT]; int ki_flag2; int ki_fibnum; diff --git a/sys/conf/files b/sys/conf/files index e9d7e1f..5a57ec5 100644 --- a/sys/conf/files +++ b/sys/conf/files @@ -1194,7 +1194,7 @@ t4fw.fwo optional cxgbe \ no-implicit-rule \ clean "t4fw.fwo" t4fw.fw optional cxgbe \ - dependency "$S/dev/cxgbe/firmware/t4fw-1.16.22.0.bin.uu" \ + dependency "$S/dev/cxgbe/firmware/t4fw-1.16.26.0.bin.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "t4fw.fw" @@ -1218,7 +1218,7 @@ t5fw.fwo optional cxgbe \ no-implicit-rule \ clean "t5fw.fwo" t5fw.fw optional cxgbe \ - dependency "$S/dev/cxgbe/firmware/t5fw-1.16.22.0.bin.uu" \ + dependency "$S/dev/cxgbe/firmware/t5fw-1.16.26.0.bin.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "t5fw.fw" @@ -1242,7 +1242,7 @@ t6fw.fwo optional cxgbe \ no-implicit-rule \ clean "t6fw.fwo" t6fw.fw optional cxgbe \ - dependency "$S/dev/cxgbe/firmware/t6fw-1.16.22.0.bin.uu" \ + dependency "$S/dev/cxgbe/firmware/t6fw-1.16.26.0.bin.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "t6fw.fw" diff --git a/sys/conf/files.amd64 b/sys/conf/files.amd64 index 0365973..b8770f2 100644 --- a/sys/conf/files.amd64 +++ b/sys/conf/files.amd64 @@ -271,11 +271,12 @@ dev/hyperv/netvsc/hn_nvs.c optional hyperv dev/hyperv/netvsc/hn_rndis.c optional hyperv dev/hyperv/netvsc/if_hn.c optional hyperv dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c optional hyperv -dev/hyperv/utilities/hv_heartbeat.c optional hyperv dev/hyperv/utilities/hv_kvp.c optional hyperv -dev/hyperv/utilities/hv_shutdown.c optional hyperv -dev/hyperv/utilities/hv_timesync.c optional hyperv -dev/hyperv/utilities/hv_util.c optional hyperv +dev/hyperv/utilities/hv_snapshot.c optional hyperv +dev/hyperv/utilities/vmbus_heartbeat.c optional hyperv +dev/hyperv/utilities/vmbus_ic.c optional hyperv +dev/hyperv/utilities/vmbus_shutdown.c optional hyperv +dev/hyperv/utilities/vmbus_timesync.c optional hyperv dev/hyperv/vmbus/hyperv.c optional hyperv dev/hyperv/vmbus/hyperv_busdma.c optional hyperv dev/hyperv/vmbus/vmbus.c optional hyperv pci @@ -356,9 +357,7 @@ dev/sfxge/common/efx_rx.c optional sfxge pci dev/sfxge/common/efx_sram.c optional sfxge pci dev/sfxge/common/efx_tx.c optional sfxge pci dev/sfxge/common/efx_vpd.c optional sfxge pci -dev/sfxge/common/efx_wol.c optional sfxge pci dev/sfxge/common/hunt_nic.c optional sfxge pci -dev/sfxge/common/hunt_phy.c optional sfxge pci dev/sfxge/common/mcdi_mon.c optional sfxge pci dev/sfxge/common/medford_nic.c optional sfxge pci dev/sfxge/common/siena_mac.c optional sfxge pci diff --git a/sys/conf/files.i386 b/sys/conf/files.i386 index 769e3d2..eada722 100644 --- a/sys/conf/files.i386 +++ b/sys/conf/files.i386 @@ -248,11 +248,12 @@ dev/hyperv/netvsc/hn_nvs.c optional hyperv dev/hyperv/netvsc/hn_rndis.c optional hyperv dev/hyperv/netvsc/if_hn.c optional hyperv dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c optional hyperv -dev/hyperv/utilities/hv_heartbeat.c optional hyperv dev/hyperv/utilities/hv_kvp.c optional hyperv -dev/hyperv/utilities/hv_shutdown.c optional hyperv -dev/hyperv/utilities/hv_timesync.c optional hyperv -dev/hyperv/utilities/hv_util.c optional hyperv +dev/hyperv/utilities/hv_snapshot.c optional hyperv +dev/hyperv/utilities/vmbus_heartbeat.c optional hyperv +dev/hyperv/utilities/vmbus_ic.c optional hyperv +dev/hyperv/utilities/vmbus_shutdown.c optional hyperv +dev/hyperv/utilities/vmbus_timesync.c optional hyperv dev/hyperv/vmbus/hyperv.c optional hyperv dev/hyperv/vmbus/hyperv_busdma.c optional hyperv dev/hyperv/vmbus/vmbus.c optional hyperv pci diff --git a/sys/conf/options b/sys/conf/options index 17b51cf..acd31c4 100644 --- a/sys/conf/options +++ b/sys/conf/options @@ -374,6 +374,7 @@ ISP_TARGET_MODE opt_isp.h ISP_FW_CRASH_DUMP opt_isp.h ISP_DEFAULT_ROLES opt_isp.h ISP_INTERNAL_TARGET opt_isp.h +ISP_FCTAPE_OFF opt_isp.h # Options used only in dev/iscsi ISCSI_INITIATOR_DEBUG opt_iscsi_initiator.h @@ -946,3 +947,6 @@ RANDOM_RWFILE opt_random.h # Intel em(4) driver EM_MULTIQUEUE opt_em.h + +# Hyper-V network driver +HN_DEBUG opt_hn.h diff --git a/sys/dev/acpica/acpi_ec.c b/sys/dev/acpica/acpi_ec.c index 5c79a95..4d4a60b 100644 --- a/sys/dev/acpica/acpi_ec.c +++ b/sys/dev/acpica/acpi_ec.c @@ -618,16 +618,14 @@ EcCheckStatus(struct acpi_ec_softc *sc, const char *msg, EC_EVENT event) } static void -EcGpeQueryHandler(void *Context) +EcGpeQueryHandlerSub(struct acpi_ec_softc *sc) { - struct acpi_ec_softc *sc = (struct acpi_ec_softc *)Context; UINT8 Data; ACPI_STATUS Status; int retry; char qxx[5]; ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); - KASSERT(Context != NULL, ("EcGpeQueryHandler called with NULL")); /* Serialize user access with EcSpaceHandler(). */ Status = EcLock(sc); @@ -652,7 +650,6 @@ EcGpeQueryHandler(void *Context) EC_EVENT_INPUT_BUFFER_EMPTY))) break; } - sc->ec_sci_pend = FALSE; if (ACPI_FAILURE(Status)) { EcUnlock(sc); device_printf(sc->ec_dev, "GPE query failed: %s\n", @@ -683,6 +680,29 @@ EcGpeQueryHandler(void *Context) } } +static void +EcGpeQueryHandler(void *Context) +{ + struct acpi_ec_softc *sc = (struct acpi_ec_softc *)Context; + int pending; + + KASSERT(Context != NULL, ("EcGpeQueryHandler called with NULL")); + + do { + /* Read the current pending count */ + pending = atomic_load_acq_int(&sc->ec_sci_pend); + + /* Call GPE handler function */ + EcGpeQueryHandlerSub(sc); + + /* + * Try to reset the pending count to zero. If this fails we + * know another GPE event has occurred while handling the + * current GPE event and need to loop. + */ + } while (!atomic_cmpset_int(&sc->ec_sci_pend, pending, 0)); +} + /* * The GPE handler is called when IBE/OBF or SCI events occur. We are * called from an unknown lock context. @@ -711,13 +731,14 @@ EcGpeHandler(ACPI_HANDLE GpeDevice, UINT32 GpeNumber, void *Context) * It will run the query and _Qxx method later, under the lock. */ EcStatus = EC_GET_CSR(sc); - if ((EcStatus & EC_EVENT_SCI) && !sc->ec_sci_pend) { + if ((EcStatus & EC_EVENT_SCI) && + atomic_fetchadd_int(&sc->ec_sci_pend, 1) == 0) { CTR0(KTR_ACPI, "ec gpe queueing query handler"); Status = AcpiOsExecute(OSL_GPE_HANDLER, EcGpeQueryHandler, Context); - if (ACPI_SUCCESS(Status)) - sc->ec_sci_pend = TRUE; - else + if (ACPI_FAILURE(Status)) { printf("EcGpeHandler: queuing GPE query handler failed\n"); + atomic_store_rel_int(&sc->ec_sci_pend, 0); + } } return (ACPI_REENABLE_GPE); } @@ -764,7 +785,8 @@ EcSpaceHandler(UINT32 Function, ACPI_PHYSICAL_ADDRESS Address, UINT32 Width, * we call it directly here since our thread taskq is not active yet. */ if (cold || rebooting || sc->ec_suspending) { - if ((EC_GET_CSR(sc) & EC_EVENT_SCI)) { + if ((EC_GET_CSR(sc) & EC_EVENT_SCI) && + atomic_fetchadd_int(&sc->ec_sci_pend, 1) == 0) { CTR0(KTR_ACPI, "ec running gpe handler directly"); EcGpeQueryHandler(sc); } diff --git a/sys/dev/acpica/acpi_pcib_acpi.c b/sys/dev/acpica/acpi_pcib_acpi.c index da72b40..a7914a2 100644 --- a/sys/dev/acpica/acpi_pcib_acpi.c +++ b/sys/dev/acpica/acpi_pcib_acpi.c @@ -480,10 +480,17 @@ acpi_pcib_acpi_attach(device_t dev) pci_domain_release_bus(sc->ap_segment, dev, rid, bus_res); } } else { -#ifdef INVARIANTS - if (first_decoded_bus(sc, &start) == 0) - KASSERT(start == sc->ap_bus, ("bus number mismatch")); -#endif + /* + * Require the bus number from _BBN to match the start of any + * decoded range. + */ + if (first_decoded_bus(sc, &start) == 0 && sc->ap_bus != start) { + device_printf(dev, + "bus number %d does not match start of decoded range %ju\n", + sc->ap_bus, (uintmax_t)start); + pcib_host_res_free(dev, &sc->ap_host_res); + return (ENXIO); + } } #else /* diff --git a/sys/dev/cxgbe/adapter.h b/sys/dev/cxgbe/adapter.h index 2e74f8f..5801140 100644 --- a/sys/dev/cxgbe/adapter.h +++ b/sys/dev/cxgbe/adapter.h @@ -78,45 +78,6 @@ prefetch(void *x) #define SBUF_DRAIN 1 #endif -#ifdef __amd64__ -/* XXX: need systemwide bus_space_read_8/bus_space_write_8 */ -static __inline uint64_t -t4_bus_space_read_8(bus_space_tag_t tag, bus_space_handle_t handle, - bus_size_t offset) -{ - KASSERT(tag == X86_BUS_SPACE_MEM, - ("%s: can only handle mem space", __func__)); - - return (*(volatile uint64_t *)(handle + offset)); -} - -static __inline void -t4_bus_space_write_8(bus_space_tag_t tag, bus_space_handle_t bsh, - bus_size_t offset, uint64_t value) -{ - KASSERT(tag == X86_BUS_SPACE_MEM, - ("%s: can only handle mem space", __func__)); - - *(volatile uint64_t *)(bsh + offset) = value; -} -#else -static __inline uint64_t -t4_bus_space_read_8(bus_space_tag_t tag, bus_space_handle_t handle, - bus_size_t offset) -{ - return (uint64_t)bus_space_read_4(tag, handle, offset) + - ((uint64_t)bus_space_read_4(tag, handle, offset + 4) << 32); -} - -static __inline void -t4_bus_space_write_8(bus_space_tag_t tag, bus_space_handle_t bsh, - bus_size_t offset, uint64_t value) -{ - bus_space_write_4(tag, bsh, offset, value); - bus_space_write_4(tag, bsh, offset + 4, value >> 32); -} -#endif - struct adapter; typedef struct adapter adapter_t; @@ -298,7 +259,6 @@ struct port_info { uint8_t tx_chan; uint8_t rx_chan_map; /* rx MPS channel bitmap */ - int linkdnrc; struct link_config link_cfg; struct timeval last_refreshed; @@ -970,14 +930,25 @@ static inline uint64_t t4_read_reg64(struct adapter *sc, uint32_t reg) { - return t4_bus_space_read_8(sc->bt, sc->bh, reg); +#if defined(__LP64__) && !defined(__ia64__) + return bus_space_read_8(sc->bt, sc->bh, reg); +#else + return (uint64_t)bus_space_read_4(sc->bt, sc->bh, reg) + + ((uint64_t)bus_space_read_4(sc->bt, sc->bh, reg + 4) << 32); + +#endif } static inline void t4_write_reg64(struct adapter *sc, uint32_t reg, uint64_t val) { - t4_bus_space_write_8(sc->bt, sc->bh, reg, val); +#if defined(__LP64__) && !defined(__ia64__) + bus_space_write_8(sc->bt, sc->bh, reg, val); +#else + bus_space_write_4(sc->bt, sc->bh, reg, val); + bus_space_write_4(sc->bt, sc->bh, reg + 4, val>> 32); +#endif } static inline void @@ -1119,7 +1090,7 @@ int t4_os_find_pci_capability(struct adapter *, int); int t4_os_pci_save_state(struct adapter *); int t4_os_pci_restore_state(struct adapter *); void t4_os_portmod_changed(const struct adapter *, int); -void t4_os_link_changed(struct adapter *, int, int, int); +void t4_os_link_changed(struct adapter *, int, int); void t4_iterate(void (*)(struct adapter *, void *), void *); void t4_init_devnames(struct adapter *); void t4_add_adapter(struct adapter *); diff --git a/sys/dev/cxgbe/common/common.h b/sys/dev/cxgbe/common/common.h index 790dbe5..04fdeb1 100644 --- a/sys/dev/cxgbe/common/common.h +++ b/sys/dev/cxgbe/common/common.h @@ -62,6 +62,12 @@ enum { PAUSE_AUTONEG = 1 << 2 }; +enum { + FEC_RS = 1 << 0, + FEC_BASER_RS = 1 << 1, + FEC_RESERVED = 1 << 2, +}; + struct port_stats { u64 tx_octets; /* total # of octets in good frames */ u64 tx_frames; /* all good frames */ @@ -227,7 +233,7 @@ struct tp_params { uint32_t vlan_pri_map; uint32_t ingress_config; - uint32_t rx_pkt_encap; + __be16 err_vec_mask; int8_t fcoe_shift; int8_t port_shift; @@ -392,12 +398,16 @@ struct trace_params { struct link_config { unsigned short supported; /* link capabilities */ unsigned short advertising; /* advertised capabilities */ - unsigned short requested_speed; /* speed user has requested */ - unsigned short speed; /* actual link speed */ + unsigned short lp_advertising; /* peer advertised capabilities */ + unsigned int requested_speed; /* speed user has requested */ + unsigned int speed; /* actual link speed */ unsigned char requested_fc; /* flow control user has requested */ unsigned char fc; /* actual link flow control */ + unsigned char requested_fec; /* FEC user has requested */ + unsigned char fec; /* actual FEC */ unsigned char autoneg; /* autonegotiating? */ unsigned char link_ok; /* link up? */ + unsigned char link_down_rc; /* link down reason */ }; #include "adapter.h" diff --git a/sys/dev/cxgbe/common/t4_hw.c b/sys/dev/cxgbe/common/t4_hw.c index 5f8f3cc..a549d35 100644 --- a/sys/dev/cxgbe/common/t4_hw.c +++ b/sys/dev/cxgbe/common/t4_hw.c @@ -3680,9 +3680,7 @@ void t4_ulprx_read_la(struct adapter *adap, u32 *la_buf) } } -#define ADVERT_MASK (FW_PORT_CAP_SPEED_100M | FW_PORT_CAP_SPEED_1G |\ - FW_PORT_CAP_SPEED_10G | FW_PORT_CAP_SPEED_25G | \ - FW_PORT_CAP_SPEED_40G | FW_PORT_CAP_SPEED_100G | \ +#define ADVERT_MASK (V_FW_PORT_CAP_SPEED(M_FW_PORT_CAP_SPEED) | \ FW_PORT_CAP_ANEG) /** @@ -3702,14 +3700,23 @@ int t4_link_l1cfg(struct adapter *adap, unsigned int mbox, unsigned int port, struct link_config *lc) { struct fw_port_cmd c; - unsigned int fc = 0, mdi = V_FW_PORT_CAP_MDI(FW_PORT_CAP_MDI_AUTO); + unsigned int mdi = V_FW_PORT_CAP_MDI(FW_PORT_CAP_MDI_AUTO); + unsigned int fc, fec; - lc->link_ok = 0; + fc = 0; if (lc->requested_fc & PAUSE_RX) fc |= FW_PORT_CAP_FC_RX; if (lc->requested_fc & PAUSE_TX) fc |= FW_PORT_CAP_FC_TX; + fec = 0; + if (lc->requested_fec & FEC_RS) + fec |= FW_PORT_CAP_FEC_RS; + if (lc->requested_fec & FEC_BASER_RS) + fec |= FW_PORT_CAP_FEC_BASER_RS; + if (lc->requested_fec & FEC_RESERVED) + fec |= FW_PORT_CAP_FEC_RESERVED; + memset(&c, 0, sizeof(c)); c.op_to_portid = cpu_to_be32(V_FW_CMD_OP(FW_PORT_CMD) | F_FW_CMD_REQUEST | F_FW_CMD_EXEC | @@ -3720,13 +3727,16 @@ int t4_link_l1cfg(struct adapter *adap, unsigned int mbox, unsigned int port, if (!(lc->supported & FW_PORT_CAP_ANEG)) { c.u.l1cfg.rcap = cpu_to_be32((lc->supported & ADVERT_MASK) | - fc); - lc->fc = lc->requested_fc & (PAUSE_RX | PAUSE_TX); + fc | fec); + lc->fc = lc->requested_fc & ~PAUSE_AUTONEG; + lc->fec = lc->requested_fec; } else if (lc->autoneg == AUTONEG_DISABLE) { - c.u.l1cfg.rcap = cpu_to_be32(lc->requested_speed | fc | mdi); - lc->fc = lc->requested_fc & (PAUSE_RX | PAUSE_TX); + c.u.l1cfg.rcap = cpu_to_be32(lc->requested_speed | + fc | fec | mdi); + lc->fc = lc->requested_fc & ~PAUSE_AUTONEG; + lc->fec = lc->requested_fec; } else - c.u.l1cfg.rcap = cpu_to_be32(lc->advertising | fc | mdi); + c.u.l1cfg.rcap = cpu_to_be32(lc->advertising | fc | fec | mdi); return t4_wr_mbox(adap, mbox, &c, sizeof(c), NULL); } @@ -7514,18 +7524,14 @@ int t4_handle_fw_rpl(struct adapter *adap, const __be64 *rpl) } if (link_ok != lc->link_ok || speed != lc->speed || fc != lc->fc) { /* something changed */ - int reason; - if (!link_ok && lc->link_ok) - reason = G_FW_PORT_CMD_LINKDNRC(stat); - else - reason = -1; - + lc->link_down_rc = G_FW_PORT_CMD_LINKDNRC(stat); lc->link_ok = link_ok; lc->speed = speed; lc->fc = fc; lc->supported = be16_to_cpu(p->u.info.pcap); - t4_os_link_changed(adap, i, link_ok, reason); + lc->lp_advertising = be16_to_cpu(p->u.info.lpacap); + t4_os_link_changed(adap, i, link_ok); } } else { CH_WARN_RATELIMIT(adap, "Unknown firmware reply %d\n", opcode); @@ -7559,17 +7565,34 @@ static void get_pci_mode(struct adapter *adapter, /** * init_link_config - initialize a link's SW state * @lc: structure holding the link state - * @caps: link capabilities + * @pcaps: supported link capabilities + * @acaps: advertised link capabilities * * Initializes the SW state maintained for each link, including the link's * capabilities and default speed/flow-control/autonegotiation settings. */ -static void init_link_config(struct link_config *lc, unsigned int caps) +static void init_link_config(struct link_config *lc, unsigned int pcaps, + unsigned int acaps) { - lc->supported = caps; + unsigned int fec; + + lc->supported = pcaps; + lc->lp_advertising = 0; lc->requested_speed = 0; lc->speed = 0; lc->requested_fc = lc->fc = PAUSE_RX | PAUSE_TX; + lc->link_ok = 0; + lc->link_down_rc = 255; + + fec = 0; + if (acaps & FW_PORT_CAP_FEC_RS) + fec |= FEC_RS; + if (acaps & FW_PORT_CAP_FEC_BASER_RS) + fec |= FEC_BASER_RS; + if (acaps & FW_PORT_CAP_FEC_RESERVED) + fec |= FEC_RESERVED; + lc->requested_fec = lc->fec = fec; + if (lc->supported & FW_PORT_CAP_ANEG) { lc->advertising = lc->supported & ADVERT_MASK; lc->autoneg = AUTONEG_ENABLE; @@ -8017,12 +8040,17 @@ int t4_init_tp_params(struct adapter *adap) read_filter_mode_and_ingress_config(adap); /* - * For T6, cache the adapter's compressed error vector - * and passing outer header info for encapsulated packets. + * Cache a mask of the bits that represent the error vector portion of + * rx_pkt.err_vec. T6+ can use a compressed error vector to make room + * for information about outer encapsulation (GENEVE/VXLAN/NVGRE). */ + tpp->err_vec_mask = htobe16(0xffff); if (chip_id(adap) > CHELSIO_T5) { v = t4_read_reg(adap, A_TP_OUT_CONFIG); - tpp->rx_pkt_encap = (v & F_CRXPKTENC) ? 1 : 0; + if (v & F_CRXPKTENC) { + tpp->err_vec_mask = + htobe16(V_T6_COMPR_RXERR_VEC(M_T6_COMPR_RXERR_VEC)); + } } return 0; @@ -8118,7 +8146,8 @@ int t4_port_init(struct adapter *adap, int mbox, int pf, int vf, int port_id) p->port_type = G_FW_PORT_CMD_PTYPE(ret); p->mod_type = G_FW_PORT_CMD_MODTYPE(ret); - init_link_config(&p->link_cfg, be16_to_cpu(c.u.info.pcap)); + init_link_config(&p->link_cfg, be16_to_cpu(c.u.info.pcap), + be16_to_cpu(c.u.info.acap)); } ret = t4_alloc_vi(adap, mbox, j, pf, vf, 1, addr, &rss_size); diff --git a/sys/dev/cxgbe/common/t4_msg.h b/sys/dev/cxgbe/common/t4_msg.h index ea48fc6..830743b 100644 --- a/sys/dev/cxgbe/common/t4_msg.h +++ b/sys/dev/cxgbe/common/t4_msg.h @@ -2014,7 +2014,7 @@ struct cpl_rx_pkt { #define S_T6_COMPR_RXERR_VEC 0 #define M_T6_COMPR_RXERR_VEC 0x3F -#define V_T6_COMPR_RXERR_VEC(x) ((x) << S_T6_COMPR_RXERR_LEN) +#define V_T6_COMPR_RXERR_VEC(x) ((x) << S_T6_COMPR_RXERR_VEC) #define G_T6_COMPR_RXERR_VEC(x) \ (((x) >> S_T6_COMPR_RXERR_VEC) & M_T6_COMPR_RXERR_VEC) @@ -2026,7 +2026,7 @@ struct cpl_rx_pkt { * RX_ERROR_IP_HDR_LEN, RX_ERROR_ETH_HDR_LEN */ #define S_T6_COMPR_RXERR_LEN 1 -#define V_T6_COMPR_RXERR_LEN(x) ((x) << S_COMPR_T6_RXERR_LEN) +#define V_T6_COMPR_RXERR_LEN(x) ((x) << S_T6_COMPR_RXERR_LEN) #define F_T6_COMPR_RXERR_LEN V_COMPR_T6_RXERR_LEN(1U) #define S_T6_COMPR_RXERR_TCP_OPT 2 diff --git a/sys/dev/cxgbe/firmware/t4fw-1.16.22.0.bin.uu b/sys/dev/cxgbe/firmware/t4fw-1.16.22.0.bin.uu deleted file mode 100644 index b06e9be..0000000 --- a/sys/dev/cxgbe/firmware/t4fw-1.16.22.0.bin.uu +++ /dev/null @@ -1,9603 +0,0 @@ -/*- - * Copyright (c) 2016 Chelsio Communications, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -begin-base64 644 t4fw -AAAEKgEQFgAAAQkEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAABA0EHAQkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAENoZWxzaW8gRlcgUlVOTUVNIERFQlVHPTAgKEJ1aWx0IFRodSBEZWMgIDEgMDI6 -NTE6MjEgUFNUIDIwMTYgb24gdm5jNC5hc2ljZGVzaWduZXJzLmNvbTovaG9tZS9maXJtd2FyZS9j -dnMvZnctcmVsZWFzZSksIFZlcnNpb24gVDR4eCAwMS4xMC4xNi4wMAAAAAAAAAAAAAAAAK6qwFZg -AMgA4QB78AAQAADhADC4eP///x/84UCAAAAB4QB7cAAAEAAf//2M4QGUcCAAAADhAZwE4QB5AAAC -AEDhAHmAAAYAQAACAAoABgAK4QB5BAAMAACAAAEC4QB7POEAe0ThAHvk4gAAAAABAADhAHuQIAAA -AAAAgADhAHsAAABAAeEAe5wAAEAAREREQuAAAADjAARzREREQOMACAAgAAJcAAAAAB//kuAAAAAA -H/+S5AAAAAAf/5LoAAAAAB//kuwf/8AAAAAAAAAAAADAABL/zRP/zZMgEv/NE//NhCAEMwGTIBH/ -zBL/zJIQEf/MEv/MkhAR/8wB9DER/8siCv+SEADkMQAFMQECABL/yALnMQIWABH/x4EQAQFfwCEC -EQHJERH/xBL/xJIQEf/EEv/EkhBgAA8R/78S/8OSEBH/vxL/wpIQgRAR/8HAIJIREv/AkhLAIJIT -Ev+/khCCEALyUGUv9xH/vccvkhAR/7ySEBL/vBP/vJMgwDKTIRP/u5MigiIS/7oT/7qTICMiIRT/ -uQQzAck4E/+4gzADgxQIMxEU/7akM5MhE/+qkyJgAAjCMJMhE/+nkyIS/7GQIJAhkCKQI5AkkCWQ -JpAnkCiQKZAqkCuQLJAtkC6QLyAmECAmEYIiEv+kwDAtNzAtNzQtNzgtNzwjPQFyM+0AAgAS/6HA -MC83AC83EC83IC83MCM9AXIz7QACABL/l8AwKDcwKDc0KDc4KDc8Iz0BcjPtEv+VwDAnNwAnNxAn -NyAnNzAjPQFyM+0S/5AV/5AW/5HAMNcgBWYBYAAZAAAAAAAAAAQ2BQACANMP0w8FMwxuOxQHRxQH -BEN2MeYENgUFMwxvO+0AAgAS/4MV/4EjCgACJwIHBEMEPgUFMwwHRxRvO/ADAgAS/33JLoMghCGF -IrwidDsOhlC0VZYwtDN0M/Rj/+YAZT/iZV/fEv9xwDIDLgUDAgAS/2jAMCg3QCg3RCg3SCg3TCM9 -AXIz7QACABL/ay0nAMARAUkxAEgxAQIAwAAU/2gE0jEV/2eUUBT/ZwTTMRX/ZpRQFP9mBNQxFf9m -lFAU/2UE1TEV/2WUUBD/ZQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/AAA -H/wAAOMACfgf/AAAH/wAAOMACfgf/AAAH/wAAOMACfgf/4AAH/+KUOMACfgf/4pQH/+KUOMAFEgf -/4pQH/+KUOMAFEgf/4pQH/+L8OMAFEgf/4vwH/+S3OMAFegf/5LgH/+0AOMAHNgf/7QAH/+0AOMA -Pfgf/8AAH//+eeMAPfggAAAAIAABauMAfHQgAAF4IAABfOMAfeAgAAF8IAABheMAfeQgAAGYIAAB -nOMAffAgAAGcIAABpeMAffQgAAG4IAABvOMAfgAgAAG8IAABxeMAfgQgAAHYIAAB2OMAfhAgAAHc -IAAB4uMAfhAgAAH4IAAB+OMAfhggAAH8IAAB/OMAfhggAAIYIAACGOMAfhggAAIcIAACHOMAfhgg -AAI4IAACOOMAfhggAAI8IAACPOMAfhggAAJYIAACWOMAfhggAAJcIAACYuMAfhggAAJ4IAACeOMA -fiAgAAJ8IAACguMAfiAgAAKYIAHz1uMAfiggAwAAIAMVlOMCb2ggAxWUIAMVlOMChPwgAxWYIAbc -HOMChQAgBtwgIAbfkOMGS4ggCAAAIAgOYOMGTvggCA5gIAkpBuMGXVggCSkQIAkp3OMHeAggCwAA -IAsAAOMHeNQgCwAAIAsAAOMHeNQgCwAAIAuf+OMHeNQAAAAAAAAAAAAAAAAgABOGIAATeCAAF2Ig -ABN4IAAW3SAAE3ggABQqIAAWdSAAFfogABN4IAAVqSAAFWIgABT1IAATZSAAFJ8gABN4IAATeCAA -E3ggABRKAAAAAP///////w/8///w////APwgAKujIACtGiAArUogAK0QIACs0SAArMcgAKyRIACs -hyAArHYgAKwiIACtSCAArBggAKvtIACtSiAAq+MgAKvRARAYAQAEAAAAAAAAAAAAAAAAAAoAAAAK -AAAAFAAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEA -AQACAAMABAAFAAYABwAIAAkACgAOABEAFQAZAB4AIwAtADwAUABkAMgBLAGQAfQAAAAAAAAAAAAA -AAAAAAAAAAAAAQABAAIAAgADAAMAAwADAAQABAAEAAQABAAFAAUABQAFAAUABQAGAAYABwAHAAAA -AgAAAAYAAAAKAAAADgAAABQAAAAcAAAAKAAAADgAAABQAAAAcAAAAKAAAADgAAABQAAAAcAAAAKA -AAADgAAABQEAAAcAAAAKAAAADgAAABQAAAAcAAAAKAAAADgAAABQAAAAcAAAAKAAAADgAAABQAAA -AcAAAAKAAAADgAD/AAECAgAAABAgQAAAAAAABAACAAEAAIAAQAAgABAACCBAgAAAAAAAAAAAAAAA -AAAgCKlLIAipSyAIqQMgCKjKIAiokCAIqEsgCKhLIAiqQCAIqkAgCKhLIAiqQCAIqkAgCKhLIAio -SyAIp/cgCKpAIAiqQCAIqkAgCKpAIAiqQCAIqkAgCKpAIAiqQCAIqkAgCKpAIAiqQCAIqkAgCKpA -IAiqQCAIqkAgCKpAIAioJyADCtAAAAABIAMK2AAAAAIgAw8IAAAA/yADCDAAAAD/IAMKvAAAAAIg -AwrAAAAAAyADCsgAAAAHAAAAAAAAAAAgAwqgAAAAASADCqQAAAACIAMKrAAAAAQgAw8IAAAA/yAD -CDAAAAD/AAAAAAAAAAAgAwgwAAAAACADDwgAAAAAIAMJbAAAAAEgAwl0AAAABCADCXwAAAAIIAMJ -iAAAACAgAwmYAAAAQCADCaAAAACAIAMJqAAAAQAgAwmwAAACACADCcQAAAQAIAMJ2AAACAAgAwnw -AAAQACADCgQAACAAIAMKFAAAQAAgAwogAACAACADCjQAAQAAIAMKRAACAAAgAwpUABAAACADCmwA -IAAAIAMKhABAAAAgAwqMAIAAACADCVgAAAAQIAMJYAAAABEgAwlAAAAAACADCUQAAAABIAMJSAAA -AAIgAwlQAAAAAwAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAIAMIwAAAAQAgAwjMAAAA -gCADCNwAAABAIAMI7AAAACAgAwj8AAAAECADCQwAAAAIIAMJGAAAAAQgAwkkAAAAAiADCTAAAAAB -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 -MAAAAB//rpAAAB1AAAD/gCAG3CAgC2Aw4QAuAB//roQf/6pMH/+vQB//qrAAABeA4AAAoOEAMLgA -AIAA4QBgEAAAQADhAhAA4QIwAOECUADhAnAA4QAQCB/84UDhAHtwH/+zwB//s7gf/OAIH/+zvB// -s9gf/7PQH/+z1B//s/Af/7PoH/+z7CAG39Af/7GQH/+sJB/83gAf/600H/+tMB//rdAf/52UH/+w -3B//qjggCwBgH/+vXAAA/4AAAB4gH/+TMB//r2gf/69kH/+vyCALBnAEAAAIBQAAAIP/AACBAAAA -ABAAACoAAAAgAAmsIAMMGB//iZAf/4VAH/+HRB//sKBnRSMB782riZi63P4QMlR2H/+AAAAAPygg -Aw7cz////yALB2AQAAAAP////wIAAABAAAAA//9//yALCIAf/7CQIAAjuCALCLAgCwkgCAAAAAD/ -//8gCwmQ9////yALC4AgACBg//7//yALFmCAAAAAIAMM8AwAAAAAAEAAAAD//wAAgAD/+///D/aA -ACALGdAgCxoAAAEAAAAEAAAgC3RAH/+t4CAAMnggADRYIAAwECALGpAgAC1AIAsbICALG3AgCxwA -BAEACOAAAAAgCxyAIAscQFMAAAAgCxygUgAAACALHOBRAAAAIAHpBB//qqQgCx9wIAsf0CALH6Ag -CyJQH/+uDCALIqAf/52MH/+tsCALJJAUAAAAgAAAAngAAACAAAAGgACwAAAACgAA4zCS///wAIAA -sQDhAZoAAAIAACALJFAf/5sEAAB+QB//reQA/8AAH/+t8B//k7QBAAAAKAAAACYAAAAgCyTAH/+T -8AYAAAAFgAAAH/+p/CsAAAAgAE04IAt28B//q5gDgAAAB////zUAAAADAAAAAD///4BAAAAID/// -H////yAAAAAAAMAAH/+tyD0AAAAf/5l8BwAAAIEEAQCBBAAAH/+sFAAAOpjDAAAAAAAP/wBDAAAA -AAgABAAAAB//q8wgC3dQH/+zNB//sbAf/5jcAAYAAOEAegAf/5lMH/+t1CCgAAAf/6wsH/+dnB// -nYggC3eAAAMHgCALd/Af/5toACAAAABAAAAAAAkAAAAwAv/8+H/AAAAAo/+7AKP/ugANAAAA4AMA -AIP/tgAP////D//4AP8AAAAgC3gwIAsmICALJlAgC3jAAA8AAAAKAAD//wAPA//AAIP/wAAgC3lA -IAt5sB//rrAf/7Ig/2DwAB//sgAf/5LwBIAACB//gFAARAAA/x///wDAAAABgMIAAACBAPAAAACB -gAAA/3///x/84HQf/6jU/7//////AAAAgAAAAACG3R//ntwf/OIAH/+T4O4AAAAAAAm8H/ziDA8A -AAAgCyaQH/+uUAAACLwf/69UH/+fWB//mXgf/4BgIAbdwAAAMAAAACcQH//cgCALgbAgC4GAH/+u -tB//mXAAAP/+H/+dfN6tvu8gAwfgNAAAAD8AAAAf/69wAACJBgCZAAAf/7D4EAAHAgHAgACZAAAA -H/+v4ACIAAiCgAABH/+xSAMVAAADEQAAAA8D/yALKwAf/620IAuCACALK2AgCyuwIAssQCALKzAg -AOTUIAssECALLeAgCy4QIAsuYCALLsAgAOp4KQAAAAAAiRQgAPDcIAuCcCALgtAgAPrQH/+vAPDw -8PD/AP8AqqqqqszMzMwf/7JAAAAfEB//sEgAA///AAAn/yABA1AgC4NAAA9CQCADW7Af/66IAAkA -AAAASACCAAAAIAEnUCALg7Af/640OwAACA4AAADQAAAAH/+AoAAAH8oAAAhQAAAfQCALOBAgCzgw -IAs4UAAJAAgf/7FEMAAAAP//9/8gCzqgIANh9AAAg/8gBuMIFaAAACAG5AAf/7EIH/+t3AAACAYA -AIjMfwAAAAAAD/4gC4hwIAuJAAAA4AAgC4ZQIAuI0B//mxwABAP/CgAAACAG4Egf/62gIAbgkB// -njCD/7cAg/+2ICALOtDhAAAAMwAAAB//sRAf/7IEA//gAH///wAAP/aQAAAf2AP/8AAgC2WwIAtl -cCALZdAf/7MQIAs7UBoAAAAgCzugIAF1cB//sQwAD///H/+vMB//rewgC4mQH/+dvB//qlAf/6xE -IABqiCAG3UggAAWIH/+pMB//mpgf/5kYH/+qqCALPrDABAAAH/+sOB//rFAf/7HwH/+xZCALiqAg -Cz7wIAMNoCAAa2jgAQAAH/+e4CALi/AgCz8wIACn8B//ntggAKTwIAuLcCALi8Af/5s8IAtBQOD/ -/gAgC2hQH/+e5CALTOAf/63oH/+VbCALVwAgC1eQH/+xtCALWkAgC1pwSAAAACABvQgf/6uoIAG/ -DB//mcwf/6pMH/+pRB//rDQf/6lsAAAYMAAAFjwf/6x0IAbfxB//qfQf/5lQ4QAuAB//rIDhAF4A -4QIOAP//v//hAA4A4QGOAP//vv8f/52EH/+qgCABwnggAc6g4AUAAAP/AAAf/6m0IAMM+B/8v/88 -AAAAAAX//4MAAAAf/6lMIAHkmCALY/Af/67EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIGAAAAAAAAA//// -/////////////////x///IAf//yAH//8SB///Egf//xIH//8SB//9dAf//j4H//3VB//91Qf//dU -IAaw2AAAAAAAAAAAAAAAAAAAAAAgBrQgIAa0IAAAAAAAAAAAAAAAAAAAAAAgBrDYIAaw2B//+ewf -//nsH//57B//+ewf//nsH//57AAAAAAgAcOQAAAAAAAAAAAAAAAAAAAAAAIBAAAAAAAAAAAAAAAA -AAAEAAAAAAAAAIGAAAAAAAAQBQAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAgQAAAAAAABgFAAAAgAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -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 -AAAAAAAAAAAgA1S7IANVHSADVKggA1UdIANUqCADVR0gA1S/IANUvyADVQUgA1TtIANU1gAAAAAg -A13fIANd3yADW/UgA13fIANb9SADXbwgA12VIANb9SADXMkgA1v1IANb9SADXMAgA1v1IANd3yAD -W/UgA1v1IANd3yADW/4AAAAAAAAAAAMBAAIAAAAAAAAAAAAAAAAgBLTQIAS2dCAEuAEgBLTQIAS3 -+SAEt+IgBLTQIAS00CAEtNAgBLTQIAS00CAEtNAgBLTQIAS00CAEtNAgBLTQIAS30iAEt8IgBLTQ -IAS00CAEtNAgBLTQIAS00CAEtNAgBLTQIAS00CAEtNAgBLTQIAS00CAEtNAgBLTQIAS00CAEtl4g -BLTQIAS2WCAEtlggBLTQIAS2WCAEtlggBLelIAS2WAAAAAAAAAAAAAAAACAE264gBNuuIATaYiAE -264gBNcdIATbpCAE24AgBNcdIATXHSAE1x0gBNcdIATXHSAE2kYgBNuuIATXHSAE2kYgBNuuAAAA -AAAAAAAAAAAAIATsMyAE6rwgBO6jIATuYyAE7isgBO3tIATtyyAE6xAgBO2nIATtayAE7RMgBOy9 -IATscyAE7EsBEBgBAAIAAAEQGAEAAgAAAAAAAAAAAAAgBZlHIAWU3CAFmRsgBZjvIAWYwiAFmK0g -BZUDIAWVGiAFmJQgBZVPIAWVOyAFlQMgBZVPIAWVAyAFlQMgBZUDIAWZRwAAAAAAAAAAAAAAAAAA -AAAgBejQIAXi8CAF4pwgBeBQIAXcsAAAAAAAAAAAIAXi2SAF4tUgBeLVIAXi1SAF4tkgBeLVIAXi -1SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi2SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLV -IAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi1SAF4tUg -BeLVIAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi1SAF -4tUgBeLVIAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi2SAF4tUgBeLVIAXi -1SAF4tkgBeLVIAXi1SAF4tUgBeLZIAXi1SAF4tUgBeLVIAXi2SAF4tUgBeLVIAXi1SAF4tkgBeLV -IAXi1SAF4tUgBeLZIAXi1SAF4tUgBeLVIAXi2SAF4tUgBeLVIAXi1SAF4tkgBeLVIAXi1SAF4tUg -BeLZIAXi1SAF4tUgBeLVIAXi2SAF4tUgBeLVIAXi1SAF4tkgBeLVIAXi1SAF4tUgBeLZIAXi1SAF -4tUgBeLVIAXi2SAF4tUgBeLVIAXi1SAF4tkgBeLVIAXi1SAF4tUgBeLZIAXi1SAF4tUgBeLVIAXi -2SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLV -IAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLZIAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi1SAF4tUg -BeLVIAXi1SAF4tUgBeLZIAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi1SAF -4tUgBeLVIAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLZIAXi -1SAF4tUgBeLVIAXi2SAF4tUgBeLVIAXi1SAF4tkgBeLVIAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLV -IAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi1SAF4tUg -BeLVIAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi1SAF -4tUgBeLVIAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi -1SAF4tUgBeLVIAXi1SAF4tUgBeLVIAXi2QAAAAAAAAAAAAAAACAF4yMgBeStIAXmbyAF5mEgBeZM -IAXmPiAF5iMgBeYVIAXl+iAF5e0gBeXaIAXlzSAF5bogBeWtIAXlmiAF4x4gBeWGIAXleSAF5WYg -BeVYIAXlQyAF5TogBeUrIAXlOiAF5SsgBeUdIAXlCCAF4x4gBeMeIAXjHiAF4x4gBeT7IAXjPCAF -4x4gBeMeIAXjHiAF5N4gBeTFIAXkuyAF5JwgBeMeIAXkiSAF5G8gBeRcIAXkQiAF5C8gBeQXIAXk -BCAF4/EgBeOQIAXjHiAF4x4gBeMeIAXjHiAF4x4gBeMeIAXjWQAAAAAAAAAAAAAAACAF6RwgBekm -IAXquiAF6o8gBeqIIAXqgSAF6nogBepzIAXqbCAF6mUgBepeIAXqVCAF6kogBeo0IAXqDSAF6eUg -BencIAXpwSAF6bcgBempIAXpmSAF6ZIgBel8IAXpdSAF6Q4gBelOIAXpRCAF6TogBekzAAAAAAAA -AAAAAAAAIAZ9mCAGeuwgBnmAIAZ3HCAGdLggBm/YIAZyeCAGcyggBm50IAZ1hAAAAAAAAAAAJSgD -DwgSpaiDjpOSAAAAAFJWAAAQAAAAY29uZmlndXJhdGlvbiBmaWxlIHBhcnNlciBmb3VuZCBhZGRp -dGlvbmFsIGNvbmZpZ3VyYXRpb24gYWZ0ZXIgW2ZpbmldCgAAMAAAAGZjb2UAAAAAdm5pY19pZAB2 -bGFuAAAAAHRvcwBldGhlcnR5cGUAAABtYWNtYXRjaAAAAABtcHNoaXR0eXBlAABmcmFnbWVudGF0 -aW9uAAAAYmFzaWN2aXJ0dWFsAAAAAGdsYl9rZXkAZ2xidmZfa2V5AAAAcGZ2Zl9rZXkAAAAAaWR4 -dmZfa2V5AAAAc3lubWFwZW4AAAAAc3luNHR1cGVuaXB2NgAAAHN5bjJ0dXBlbmlwdjYAAABzeW40 -dHVwZW5pcHY0AAAAc3luMnR1cGVuaXB2NAAAAG9mZG1hcGVuAAAAAHRubG1hcGVuAAAAAHRubGFs -bGxrcAAAAGhhc2h0b2VwbGl0egAAAABsYW4Ad2FuAGNsdXN0ZXIAbWFudWFsAAB0cF9waW8AAHRw -X3RtX3BpbwAAAG5pY192bQAAbmljX3VtAABuaWNfdW1faXNnbABuaWNfaGFzaGZpbHRlcgAAb2Zs -ZAAAAAByZGRwAAAAAHJkbWFjAAAAaXNjc2lfaW5pdGlhdG9yX3BkdQBpc2NzaV90YXJnZXRfcGR1 -AAAAAGlzY3NpX2luaXRpYXRvcl9mb2ZsZAAAAGlzY3NpX3RhcmdldF9mb2ZsZAAAZmNvZV9pbml0 -aWF0b3IAAGZjb2VfdGFyZ2V0AHBvZmNvZV9pbml0aWF0b3IAAAAAcG9mY29lX3RhcmdldAAAAGlz -Y3NpX3QxMGRpZgAAAABpc2NzaV9pbml0aWF0b3JfY21kb2ZsZABpc2NzaV90YXJnZXRfY21kb2Zs -ZAAAAAB0bHNrZXlzAGNyeXB0b19sb29rYXNpZGUAAAAAcHBwAGRjYngAAAAAYjJiAHNvY2tldG51 -bQAAAGNlZQBpZWVlAAAAAGF1dG8AAAAAYW5fZGlzAABwZGxpdGVfZGlzAAAgAxU0AAQAAAAABAAA -BAAAAAAAAAAAAAAAAAAAAAAAACAGbjgAAAAAIAZtkCAGayAgBmn4IAZJ4CAF75AgBdwIIAXa8AAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAACAETtwgBFuQIARbkCAEW5AgBGuIIASB6CAEkIwgBJokIARL -2CAESUggBD+kIASzoCAEPVQgBDoYIAXaxCAF2ZwgBdLgIARbkCAF0gggBdCsIAXP4CAGt1AgA7bQ -IAQNXCAGh/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACADUtQgAzwwIANMlCADSgAg -A0iEAAAAACADRiwgA1IMAAAAACAEMXAAAAAAAAAAAAAAAAAAAAAAAAAAACAGpIQgBqOUIAa/BCAG -o4QgBqPAIAainCAGpGwgBqIwIAa+9CAGo3D/GDBgYAAAAAABAgMAAAAAAAAAAAAAAAAgBn5AIARN -OCAAZeQAAAAAAAAAgQAAAAAAAAAAAAAAACAEKDwgBCnIIAQpZCAEKdwgBChYAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAACAEKOwAAAAAAAAAAAAAAAAwMTIzNDU2Nzg5YWJjZGVmQUJDREVGAAAA -AAAAAAAAAEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4 -eXowMTIzNDU2Nzg5Ky8AAAAAAAAAAAAAAAAAAAAAIAAijAABAAAgACJsAAUAASAAIlAAAwAFIAAi -MAAHAABjglNjAAAAAP///////wAAAAAACAAAAAUAAAAHAAAAAAAAAIgAAACFAAAAhwAAAAAAAABA -AAABAAAAAoAAAAAAAAQECAAEBAgABAQIAAAAAAAAAAAAAACAAAACAAAAAoAAB0MAAAAAAAAAAAAA -AAAA/////////////////////wAhAAkAgQBBACEACQAhAAkAgQBBAIEAQQCBAEEAgQBBACEACQCB -AEEAIQAJACEAEQCBAEEAgQBBACEACQCBAEEAIQAJACEACQEBAEEAgQAhAIEAIQAQEGEBAQCBAQEA -gQMCAQAEAAAAAAAAAAAAAAAAAACAAAABAAAAAgAAAAQAAAAIAAAAEAAAAAAAAAAAACADCDAAAAAA -IAMPCAAAAAAgAwg0AAAAASADD3QAAAACIAMIPAAAAAQgAwhEAAAACCADCEwAAAAQIAMPfAAAACAg -AwhQAAAAQCADCFwAAACAIAMIaAAAAQAgAwh0AAACAAAAAAUAAAADAAAAAQAAAAIgBoGsIAaBZCAG -gFQgBn8MIAZ+zCAGfqAgBn70AAAAAAAAAgAAAAQAAAAIAFllcwAwMTIzNDU2Nzg5YWJjZGVmZ2hp -amtsbW5vcHFyc3R1dnd4eXoAAAAAbm9uZQAAAABhbGwAKgAAAGRpc2FibGVkAAAAAGVuYWJsZWQA -MHgAAE5BAABWMAAAVjEAAFYyAABWMwAAVjQAAFY1AABWNgAAVjcAAFY4AABWOQAAVkEAAFZCAABW -QwAAVkQAAFZFAABWRgAAcG9ydAAAAABwcm90b2NvbAAAAABnbG9iYWwAAGZ1bmN0aW9uAAAAAGZp -bmkAAAAAcmVnAGZpbHRlck1vZGUAAGZpbHRlck1hc2sAAHJzc19nbGJfY29uZmlnX21vZGUAcnNz -X2tleW1vZGUAcnNzX2dsYl9jb25maWdfb3B0aW9ucwAAc2dlX3RpbWVyX3ZhbHVlAHRwX3BtcngA -dHBfcG1yeF9wYWdlc2l6ZQAAAAB0cF9wbXJ4X2ZsYWdzAAAAdHBfbnJ4Y2gAAAAAdHBfcG10eAB0 -cF9wbXR4X3BhZ2VzaXplAAAAAHRwX250eGNoAAAAAHRwX210dXMAdHBfdGNwdHVuaW5nAAAAAHRw -X3RpbWVycmVzAHRwX3RpbWVydmFscwAAAAB0cF9iYWNrb2ZmdmFscwAAc2NoZWRfaW9xdHhfYnBf -cHJpb3JpdHkAbnZmAHd4X2NhcHMAcl9jYXBzAABuaXFmbGludAAAAABuZXEAbmV0aGN0cmwAAAAA -bnZpAHJzc252aQAAcnNzbnNlY3JldAAAbmV4YWN0ZgBucmF3ZgAAAGNtYXNrAAAAcG1hc2sAAABu -ZXRob2ZsZAAAAABucm91dGUAAG5jbGlwAAAAbmZpbHRlcgBuc2VydmVyAG5oYXNoAAAAdHBfbDJ0 -AAB0cF9kZHAAAHRwX2RkcF9pc2NzaQAAAAB0cF9zdGFnAHRwX3BibAAAdHBfcnEAAABpc2NzaV9u -dGFzawBpc2NzaV9uc2VzcwBpc2NzaV9uY29ubl9wZXJfc2Vzc2lvbgBpc2NzaV9uaW5pdGlhdG9y -X2luc3RhbmNlAAAAaXNjc2lfbWF4X3NnZQAAAHBwbV9tYXhfem9uZXMAAABwcG1fem9uZV9yYW5n -ZTAAcHBtX3pvbmVfcmFuZ2UxAHBwbV96b25lX3JhbmdlMgBwcG1fem9uZV9yYW5nZTMAZmNvZV9u -ZmNmAAAAZmNvZV9udm5wAAAAZmNvZV9uc3NuAAAAZmNvZV9uZmNiAAAAZGNiAGRjYl9hcHBfdGx2 -AGRjYl9kY2J4X3Byb3RvY29sAAAAYmdfbWVtAABscGJrX21lbQAAAABod20AbHdtAGR3bQBkZWJv -dW5jZXRpbWUAAAAAYW5fYWVjX3RpbWUAdmVyc2lvbgBjaGVja3N1bQAAAABTZXNzaW9uVHlwZQBP -Rk1hcmtlcgAAAABJRk1hcmtlcgAAAABEYXRhRGlnZXN0AABIZWFkZXJEaWdlc3QAAAAARXJyb3JS -ZWNvdmVyeUxldmVsAABJbW1lZGlhdGVEYXRhAAAARGF0YVBEVUluT3JkZXIAAERhdGFTZXF1ZW5j -ZUluT3JkZXIASW5pdGlhbFIyVAAATWF4Q29ubmVjdGlvbnMAAE1heFJlY3ZEYXRhU2VnbWVudExl -bmd0aAAAAABJbml0aWF0b3JOYW1lAAAASW5pdGlhdG9yQWxpYXMAAERlZmF1bHRUaW1lMldhaXQA -AAAARGVmYXVsdFRpbWUyUmV0YWluAABNYXhCdXJzdExlbmd0aAAARmlyc3RCdXJzdExlbmd0aAAA -AABNYXhPdXRzdGFuZGluZ1IyVAAAAFRhcmdldE5hbWUAAFRhcmdldEFsaWFzAFRhcmdldEFkZHJl -c3MAAABUYXJnZXRQb3J0YWxHcm91cFRhZwAAAABBdXRoTWV0aG9kAABTZW5kVGFyZ2V0cz1BbGwA -Q0hBUF9BAABDSEFQX0kAAENIQVBfQwAAQ0hBUF9OAABDSEFQX1IAAERpc2NvdmVyeQAAAE5vcm1h -bAAATm9uZQAAAABDUkMzMkMAAENSQzMyQyxOb25lAE5vbmUsQ1JDMzJDAENIQVAAAAAAQ0hBUCxO -b25lAAAATm9uZSxDSEFQAAAATm90VW5kZXJzdG9vZAAAAElycmVsZXZhbnQAAFJlamVjdAAATm8A -ADUAAABDSE5ldCAxLjAwAAAAAAAMAAAAAAEAAXwADAEAAAAAEAAAABQgBtd4AAADFQ5AAAAf/AAA -H/wAAB//tAAf/7QAIAbfkCAG5EAgCSngIAkp4CAKAAAgCoAAIAqAACAK5oAAAAAAH/+uDCALAAAg -CwAwH/+xFB//kzAAD///H/+sJB/83gAf/7CQBAAACIEAAAAaAAAAH/+w3CALAIAgBt/Qg/+3AIAA -AAAAAP//g/+2ICALZhAf/66IH/+w+B//rTAf/63wH/+woDAAABAgC2ZQIAtmsB//snQf/6x4H/+V -hOEBlgAgBuQAIAbiBCADB+AXkAAAFLAAAAAAYACAAAAEIAbkCgAAH8oAAIP/FaAAACADAAAWoAAA -CFABACCgAAA/8AAAI6AAAAP/AB8AwAAEH/+yeCAGsmgqAAAAIANB5CALZuAgC2cgIAayLN6tvv8a -wAAAIAbjCAAA/+ogBuQQAAAIFAAAiAAAAIAAH/+t3B//rmAAACcQAB6EgAAAQAAgA1uwH/+vVAAQ -AAAf/6xQH/+vWCADABAgC2fgIAtnsAEAAAAoAAAA4QAAADgAAAD/P///MAAAdB//hUAgAwBAIAsA -0DAAAAgwAAAMNAAACNAAAAAOAAAAAACJFDsAAAggBuIYNJAAACAG4dAFXUqAIANh9AAYAAD/B/// -ADgAAAAwAAAgC2gAAAAIAOEBjgAAAZEMIAtpACALaLAgC2kw///z/yALaOAgCwJwAABADgAAQBog -CwKgAAAQAAAA/+kAAP/gAABQAAAA//gAAEANAAD/9wAAD/8AAA9CAAD/9QAAIEAAACAAAADEEAAA -wAEAAMggIAsDACALAyAAAMQAAADIAAAAxDAAAMQxAAIQCOD//gAgCwNA///3/wAA6AAgCwNgAADI -EAAAxEUAABABAAAgfAAAMgAAAMwAAAJJ7wACSfDhAF4A4QAuACALbIAgC2zgCAAAAB/84HQgA5AY -H/+t7CALBDAgCwVgIAsEYA88AAAgCwTwIAP6mCAD/HggCwXADwAAACALBiAf/4cQH/+IACALBpAg -CwbQIAsHECADDMAgAwxAIAtucCADDCAgC26gIAttUCALbbAgC24QH/+uRB//k7TgAAAAAA9CQCAA -IqwAAgAAAP///yALbsAgCwegIAsIACALCFAgCwfQIAPYVAAIAAAgA904H/+t4CALCeAgBt3AIAAe -1AAP/AAf/5l4H/+awAAAMAAgCwogIAsKsCALC1BVAAAAEAAAACALb2AgAw04AAAIBiALC+AAAA/+ -IAO4yAIAAAAgA72cH/+utCALDDAf/64wH/+qnCALDPAgC2+AIAsMkCADqbAgA7OEIAsNUCALDcAg -Cw4QIAtwEEAAAAAAAPAAIAsOUCALDsAgCw8gIAsPkCAG4tAgCxAQIAsQUO/////3////IAsQsCAL -EQD9////IAsT0CALEWAgCxHQIAsSMCADwBQgCxKQIAsS8CALE0AgCxOAIAtwUCADDTAgAwzwDAAA -AB//h3Af/4hwIAMO4B//h1A/////z////yALFDAf/4gsH/+t5CALFHAgCxSwIAtwcCALFTB///+r -//8uXAAA0aT//9BNAACcTiALFbAgCxVwIAsU8B//h2wAAEgAIAMM9B//h2gf/4fQIAsV8CAD4OQg -CxagH/+t/CALcQAgC3CQIAtw4CAD48QD/9AAAEAAAABQB/8AAQAAIAtyEB//mkAgC3GAIAOpiCAL -ckAgCxcw//3//yALF3Af/644IAsYgCALF8AATEtAIAPgoCALGBAgCxjABAEACAAgAAAgA8KUIAsY -8CALGUAgCxmgIAtvICAD81QgC27wIAsdIAAAjgIgCx2QIAsd4CALHjAgCx1QIAsegAOAAAAgCx7Q -IAsfIP/3//8gCyAQIAPuYCALINAgCyGQIAty0B//rGAgC3KgIAtzACAD8ZggC3MgIAPyZCAD7Hgg -A+EAIAtzUCALc5AgC3PQIAsh0CALIhAAABdwIAMKhCALdTAgC3TgIAt0wCAED1QgC3SQIAt1ECAD -CgQgAwpkIAsi8OECFgDhAhoA///I////F////x//AAIZHAACGXwAAhmcAAIZ/B//rfj///H/AAIZ -AMAAAAAAAhokAAIapAACGigAAhqoAAIaNAACGrQAAhowAAIasOECDgAAABOHIAMLVCADC0QEAAAB -4QISAAAAIcEgCyNAAAIQ4P//v/8AAhwg4QB6ACALI3Af/6yAIAsjkCALI8AgCyPgH/+rTCALJBAf -/6po4QB+AB//rJAAAPP/BAAAABQAAAAgBC8gH/+VOOAACSQAnAAAIAslECALJfAgCyXAIAt2sCAL -JZAf/55MIAslUAACBMDhAgIA4QCOAB//lWwAAJaAAACWQCAG35AAAJagAACWYOECACz//wAAAAHg -AOEBkgAAAeMABgAAACAEQXz4AAAAAf//5wABwAAgAACABAAQAB//qnjhAZoA4QGaQOEBmjzhAZo4 -4QGaNOEBmjAf/67gIAMKDCADChwgAwoUIAMKJIAAAAOAAAAC//z//+EBDgAf/630f////x//lRwf -/5WcIARO3CALeiAgC3pgIAt6kCALetAgC3sAIAt7QCALe3AgC3uwD///8P/wAAAgC3wQH/+alB// -sZAf/6l0IARbkCALfRAgC31AIAt8sCALfFAf/5o8H/+cVAAA/4Af/5OwIAsm0CALJwAABAAA//v/ -/+EB4sAf/6r44QH+AJAAAPD8/4DAAgAAIP7/gMAgCydQIAsnkAAA+AAAAgEIAAIBDI////8f/6yE -4QGYACALJ+AgCygwIAsoYCALKKDhAN4AAAIDCAACAgD///AA4QDuAP//f/8AAPwAH/+uFAAA4AAA -AAwAAAIDBAABERwAAREYIAt+EAAQCACAAAgAAAIBBP//wAAAAP/+AAAlgAACAwAf/6x84P/iwCAL -fXAf/6tYIAt+YCALfpAgC36wAAD//SALfkAgAwCQAAD/8yALftAgC37wAAAqMCALfxAAAP+PAABS -tQAASAoAAI+CAACPhgAAOAAAAI+KAADjPwAAg64AAP/xIAso8P//z78AABBAIAt/MCALf2AAABIA -IAspIAACGQQgAw2AH/+uACALKUAgAwCgIAspoCALKXAAgAAAH/+eSCALf7D///YkIAuAQAACFgh/ -P///AAD/+wAA/v8AAP/AAAD/PwAA+f8gC3/gIAuAkCALgRAgC4DAIAsqUCALKhAgCyngIAsqcCAL -KsDuAAAAAcCAABAABQ0JAAAAH/+v4CADAVAAAIMAIAstgAAAggAgCyygIAss8CALLTAQAAcCAADA -ACALdZAgC3VQAAAMvAAAiQYgCy8gIAtnYCIiIiIf/5m8IAMBoCALL4AgCy9QIAsycCALMjAgCzHw -IAsxsCALMXAgCzEwIAsw4CALMKAgCzBQIAswACALL8AgC4QgIAuEUCALhIAgC4TAIAuFACALhTAg -CzOgIAszUCALMrAgCzLwAACAwgAAGyEgCzPQIAuFYCALhaAgCzPwIAbfwAD/wAASAAAAIAUJcCAL -NKAgCzRgH/+uJCALNUAgCzWAIAs04CALNeAgC4XAIAs3ACADDLAgCzYwIAs3ICALNpAgBRHsIAuG -oAAAH0AAABA2///v/x//snwf/7EIAAAIUCALN2AgCzewIAs3kAD///wyAAAAH/+y+iADAdgzkAAA -IAbiCCALhwAgC4dgIAuHQCALh6AgCzfQIANsvCADAeAgCziAAACABQAAgAcgCziwgYAAAN6tvu8g -CzjwAACD/TAAABwwAAAEMAAAFAAA/+///v//H/+xtAD/8AAAKAAAIAs5IAAACEAgCzlQAP//+iAL -OaAwAAAAMAAANAAAgAEgAwHwAACAAiAFaPggC4gwEAAFEJkAAAA0AAAAIAuH4CALOeAAGQAAIAs6 -MCADDZAAABIPIAs6YB//qegf/7FEAxUAAAUAAACD/wAbIAs7ECAFv7j//0AAIAuJUCALO+AgCzxg -IAs8sOEBkawAAZGsv////9////8gCzzgCwAAACAFxkQgCz1QIAs9wCALPjAgCz5gIAuJ0CALilAf -/5V8IAScCCADCkQf/5zAAAE4gOAABgAAAicQIAuLAH///w8f/61Q/AD//+EAlgDhAJoAAAAJ/wAA -sAAf/658IAMCQCALP4DhAA4AAwAAAOEAEgATAAAAEQAAAB/8AAAf/63MIAs/wCALjCAAAZSPAAGU -zyADAmAf/6vwH/+dpCADBjAgC0AAIAtAQCAG3CAgC0BwH/+T5B//rBwgAwcgH/+crB//mzwf/5V0 -IAtGYCALRrAgC0cQIAtH4B//q5gAP///H/+bVB//rEwAAP+XAAD+1f//q5Mf/63YwgAADgXcAQAD -/wAAwAAAASALSFAgC0iQIAtI4CALSSAgC0lwIAtJsB////Af/67EAgAAEB//k1Af/50wH/+VqAAC -//8AAJxAIAt2UCALS/AgC0xgH/+sZCALTSAgC3XQIAtNsAAA/gAgC5PwAAUAAhsAAAA6wAAAIAtN -8CAGBmAgC5SwIAuUQCALlIAgBgzoIAuUIAAAwBAAAmJaAADDMCAAAADwAMNwEBAAACAQAAAAEAdg -/+/4nx7+AADhAhgMIAtOIB//lXAAAP/fH/+usCALkNAAAZD4IAuREP/8+H8gC5GAIAbdSB//k8wA -ABOIIAtOUAADAAIgC07QIAtOgCALTwAgC3+AIAYxkB//q1QAABggIAuU8AEw+MAAAYagAJiWgAJi -WgAF9eEAIAtPYCALT0D+AAAAAF/2pwCyN8diAAAAHf///yALlTAgC0/gIAtQICALT4AgC0+wIAuV -kCALlhAgC5XQIAMLZAAAGQAAAhwYHf/w7wAACgDhAgAEAAQF7gAAkCAAAJAQ4QIBBOEB4gAf/5VA -AFAAAACgAAAAAHYAH/+uBB//nZQf/52YH/+a8OEAcgAgCAAAIAguoCAIBmAgCG7wIAgFUCAIBEAg -CAMwIAgCICAIARAf/66AH/+bjB//qiggBt3EH/+oaB//q2AgAcXs4QB2AP//8A8gAwqQH/+tjCAL -VqAf/6yMH/+q5CAG4pogC1kwFJAAAEAAAAQgC1mgIAtZ0CALV6AgBuKQIAO4YCALV+AgC1hAAACP -/iALWJAjKBUAIAtY8B//rDAgC5wgIAubICALm6Af/6/AIAbjiB//s5gf/7MI/+gP/7//DwD//w8A -ABCAACALWrAgBmxAIAMHoAHIQAbhAZngAAB+UAAAfkAAAH4YIAZ67CADDxAgAw8UIAMPCCADDxgg -Aw8kIAMPLABQIAYf/52I4QGaDB//rggAcCAGH/+eMP/gAAAAAiAGIAtdcOEBmgThAZoIAAQgBiAL -XaAf/6tcIAuVcB//k8AABJPgIAMH0CALXdAgC14wIAteAAAA/uUgC15gIAte0B//rPj/+2wg/+F7 -gCALnFAf/5kM3//+AOAAAQAf/MAAAABigAAD/wDAAAAFH/+uhCAGpvAf/6yIIAtfgCALX0D/7/// -IAtfYCALnIAf/6kw4QBWAOEBlNAgC1+wIAucsCALX/AdAAAAH/+urB//rKQgBt3UIAMMtCALnbAg -C55gIAuc4CALnSAgC57gIAueACALnWAgBtzUH/+rpB//rlggC2BwIAasPB//r5Af/7O4H/+z0B// -s+gf/7FQH/+zvB//s9Qf/7Ps4QAxAB//nGgf/5xgH/zhgOIAAAAgCoAAH/+UMAAAHGCf////H/+p -uB//q8ggC5/gv//w/x//rTQf/5YY/w///x//rGggC2JQIAtjICALY5AgC2LgIAtkYCALZKAgBtGE -H/+qMCAG38ggC2UACgAAACAG1nhsEAQoIARohgPAINEPFPvIjC4rQn8JzBGsu4u3K7IOLrAdKbAc -KrAYLbAZ7LAeLM4CgADumQINVgKAAA2qAi6wGu2wHyzOAoAADJkC7LAbLM4CgADtmQINVgKAAA6q -Ai2wFe6wNS1WAoAA7KoCBOAFAAD9Y+YdqIwdAOnLB3dwBQAAKqwBLLAUKLQeLrQ1KrQbLrAW+2IQ -Faj6HQD/Y0Yd6IgdAPljph2o/x0A/2MmHeiIHQD5Y4YdqP8dAC+0GO+wES5mAoAADcwC7bASLmYC -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 -AGQAWgCgAJYAeABuAFAARgA8ADIAKAAeAAoEzgSSCc4JkgKyBFYE4gSmA7YEGgeyCVYGXgJ2CeIJ -pgdOAjoItgkaCBYGIgLGBGoAlgN6AXIHdgC+A94E9gS6BEIDogJiBzoGDgCCA8oELgBuAFoDKgE2 -AeoDPgfGCWoBSgcSBZYIegbCAf4GcgKKA1IF5gW+CN4BmgfaCfYJugl+B54JQgiiCQYBXgdiAk4H -JgMWASIFgghmBaoIygkuCI4BDgVuBVoFRgbWCCoGNgISAcIG6gg+AOYGhgLaBH4CngQGBkoCJggC -A2YAqgOOBfoARgHWBv4GrgXSAYYHigjyAwIIUgD6BTIBrgDSA/IH7gAyBpoC7gUeAB4FCgAACcQJ -iATYBJwHqAlMCdgJnAisCRACvARgAWgHbATsBLACWAcwA8AEJAMgASwHvAlgBYwIcAZoAoAFtAjU -CewJsAk4CJgHWAJEARgFeAjACSQFZAVQCCAGLAbgCDQC0AR0BkACHACgA4QBzAb0AXwHgAhIAPAA -yAPoBpAC5AUABMQEiAKoBEwDrAQQBlQCbAdEAjAIDAYYAIwDcAC0A9QEOAOYBgQAeABkAFAB4AM0 -AUAHCAa4AfQDSAXcAZAH0Al0B5QI/AFUBxwDDAhcBaAIhAEEBTwGzAIIAbgA3AZ8ApQD/Af4A1wF -8AA8BqQFyAjoAvgFKAGkB+QAKAUUABQAAATJBI0JyQmNAq0EUQTdBKEDsQQVB60JUQZZAnEJ3Qmh -B0kCNQixCRUIEQYdAsEEZQCRA3UBbQdxALkD2QTxBLUEPQOdAl0HNQYJAH0DxQQpAGkAVQMlATEB -5QM5B8EJZQFFBw0FkQh1Br0B+QZtAoUDTQXhBbkI2QGVB9UJ8Qm1CXkHmQk9CJ0JAQFZB10CSQch -AxEBHQV9CGEFpQjFCSkIiQEJBWkFVQVBBtEIJQYxAg0BvQblCDkA4QaBAtUEeQKZBAEGRQIhB/0D -YQClA4kF9QBBAdEG+QapBc0BgQeFCO0C/QhNAPUFLQGpAM0D7QfpAC0GlQLpBRkAGQUFAAAJvwmD -BNMElwejCUcJ0wmXCKcJCwK3BFsBYwdnBOcEqwJTBysDuwQfAxsBJwe3CVsFhwhrBmMCewWvCM8J -5wmrCTMIkwdTAj8BEwVzCLsJHwVfBUsIGwYnBtsILwLLBG8GOwIXAJsDfwHHBu8Bdwd7CEMA6wDD -A+MGiwLfBPsEvwSDAqMERwOnBAsGTwJnBz8CKwgHBhMAhwNrAK8DzwQzA5MF/wBzAF8ASwHbAy8B -OwcDBrMB7wNDBdcBiwfLCW8Hjwj3AU8HFwMHCFcFmwh/AP8FNwbHAgMBswDXBncCjwP3B/MDVwXr -ADcGnwXDCOMC8wUjAZ8H3wAjBQ8AAAAKAIwAbgCWAHgAPABQAKAAggBkADIARgBaACgAHgAUAAAA -hwBpAJEAcwA3AEsAmwB9AF8ALQBBAFUAIwAZAAAAADAEAAAwEAAAWQgAAFmkAAGUMAAAECQAABAw -AAAQPAAAENwAAHssAAB7NAAB4owAAeaMAAHqjAAB7owAAfKMAAH2jAAB+owAAf6MAACNzAAAfnQA -AI/cAAGRWAAAj/wAAHUcAAB1GAAAdRAAAHfgAAB35AAAd/QAAZw8AAEQdAABEIQAAJQIAACYXAAA -lgwAAJYUAACWIAAAliwAANAoAACQCAACENwAAjDcAAJQ3AACcNwAAZBUAABgHAABoNgAAZCQAAB3 -4AAAd+QAAHf0AAB5eAAAefgAAZQEAAHjwAAB58AAAevAAAHvwAAB88AAAffAAAH7wAAB/8AAAZQM -AAAwAD///8AAADAIP///wAAAWRCsgAAAAABZrH4lAAAAAZQQH////wABlDQAAAARAAGUCB////8A -AZQ4AAAAEQAAECh/////AAAQLH////8AABA0f////wAAEDh/////AAAQQA9EAAAAAHsoAB//4gAA -ezA//+7/AAB7OAAAAAEAAHtAP//u/wAAfCQAH//iAAHiiAAIAAAAAeaIAAgAAAAB6ogACAAAAAHu -iAAIAAAAAfKIAAgAAAAB9ogACAAAAAH6iAAIAAAAAf6IAAgAAAAAjcj/////AACN0P////8AAH5w -f7///wAAfnh/v///AAB+AALAAAAAAZFUAf///wABkZwB////AACP2AB///0AAI/4/////QAAdRQA -AAAHAAB1DAAAAAsAAHfcAAAAAwAAd/D/////AAGcOAABgEAAAZz4AAAAAwAAkAQAAAA+AAEQeAD/ -//8AARB8AP///wABEIgAAAAAAACUBAAA//8AAJQQAAD//wAAmFQAAAH/AACYWAAAAf8AAJYIAAAA -AAAAlhAAH///AACWGAAf//8AAJYcAA///wAAliQAD///AACWKAD///8AAJYwAP///wAA0CAAAAAH -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 -H/+B6B//qkT//8f/IAuZ4B//nZQgC5ogH/+uVCALVKAf/6yIH/+yvB//svAf/6wkBAAACBIAAAAg -C5OAgQAAAAAAMAAf/68wIAuTsCADC7Af/7EMAAAgmB//swhJAAAAIAuTECALkmAgC5LAAA8D/wMR -AAADFQAAH/+uiCAG3CAgC1TgH/+riB//mlAf/6xUH/+dXB//ntAf/5/UIACn8B//7swf/+4cH/+t -/B//78gCAIIQAgACEAIAABABAAAAABoAAAD6xogAIAAAH/+sfOECAgAgBt0cIAbcdAAA/98AAP/3 -IAtVAB//ghAgC1WAIAtVUCALVSB/////IAtVsB//nYwf/5toIAuWUOEANgAf/6vwAAD4AOEARgAf -/5ngH/+t7AAQQQQACAAAIAgFxCAG3WAf/5QwH/+bDCALmEAgC5fgIAua4CALVlAgC5qAIAuaUCAL -VeAgC5qwIAuXcB//m6gf/5ugH/+pyB//qcQf/4KQH/+rXAAAJxAgC1rQH/+pbB//nFgf/5xUH/+c -TB//grAf/6tYH/+t+CADCFAgAwqwH/+C0B//rnggC1tAH/+qkB//qpQf/6qYH/+qzB//qsgf/6rE -H/+qwB//qrwf/6q0H/+qpB//qqgf/6qsH/+DAB//qhgf/4OwH/+ulCALW4Af/5yYIAtb0B//nGwg -C1wAIAtcMB//g8Af/5vcAAAlgCALXGAgC1ygH/+bhB//mXAf/4PgH/+bgB//mhgf/5lsH/+D8P// -AAAD5/wYIAtc0B//hAAgAwiUIAMInCADCKggAwi0IAMIhA////8gAw5AIAtdMCAICjT///TQIAgJ -1P//9TAgCAiU///2cCAIB/T///cQ4QBqAAAAgID//wj6AABDBAAAfTP//8P/AIAAAP8A/wAf/4RQ -AQEBAQAAZAwf/4RwVapVqgAAqqpaWlpapaWlpTMiEQAAESIziBIAAyADDqDhAGYAAABqGP//f3+A -EAAAH/+EkAAAamAAACEBAABigB//hKAACAApAAB0BAAAYkQAAGIAAABi1B//hLAAAGLYAABi6AAA -YtwAAGL4AABi5B3NZQAAAAnDAABi7B//hNAAAGLwH/+E4AAAYvQf/4UAAABi/AACCNUAAGMAAAEE -awAAYwQAAgjWAABjCAAAYwwf/4UQAABjEAAAosMAAGMUAABjGAAAYyAAAYagAABjJAAAYygf/4Ug -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 -mhf7/+IdoIsFAFtwjpoV+gACHe/69QBbcIsU5SouEhuNRS8SGYxEDt0ojkcMKyibFA/uKK27LxIa -jUYP3SgvEhau3Y5JrbuNSA/uKC8SGA/dKC8SFK7djkutu41KD+4oLxIVD90oLxITrt2OT627jU4P -7igvEhIP3SgvEhCu3S5CG627jU0P7igvEhEP3SiPH67dLkIcrbstQhgP7iiPHg/dKI8crt0uQhqt -uy1CGQ/uKI8dD90ojxqu3S5CHq27LUIdD+4ojxsP3SiPGK7dLkIgrbstQh8P7iiPGQ/dKK7drbsu -QiMtQiIH7igG3SiPF67drbsuQictQiYP7igF3SiPFa7drbsuQigtQiQP7igK3Siu3a27HeTslhEt -0X+XEpUTfcsJhRT6IAYVoAAyAPogBhWgBQUA9WAARXCLBQBYAkrZoOekAAgECoAA+0BIUBIAnQBk -UEWPRA8CAA8CAPHjUA3gBgUA6hYeLSgEgAD6oGgdr/v1APxgaB3v/PUAW/4NWk2diETlJQgDMAUA -AA8CAHhj2SkSHgJnKKeXiBbTDw8CAGSAZiUSBiiKAA8CAAhVAQJVLCUWHAUlKPqgaB2giwUAWAIp -+0BC8BIAnQApEhwPAgDjFhckgamAAMBQ5jQADRgEgAD6YGgdr/v1APzAaB3v/PUAW/3vWk1/KhIc -4yMIAqgFAAB6WdsjEhcrEh3jFhcltFmAAPIAAh3gBQUAJkLnpWaTYCxCyYhEfDMJrIj4YAcLogCd -ACxCyolFfDMJrJn4YAj74gCdACxCy4pGfDMKDKoI+mAJo6IAnQAsQsyLR3wzCay7+mAKU+IAnQAs -Qs2NSHwzCazd/GALA+IAnQAsQs4uQgl8MwoM7gj+YAujogCdACxCz49KfDMJrP/+YAxT4gCdACxC -0IhLfDMJrIj4YA0DogCdACxC0SlCD3wzCgyZCPhgDePiAJ0ALELTik58MwmsqvpgDtOiAJ0ALELU -i018Mwmsu/pgD8PiAJ0ALELSjUz8YBDrogCdAKzd/GAQmuAeVQD+wIYdoADmAAAAAAAA6nQACdgE -gAD8IugV4A8FAP7Ahh3v/PUAW/2h9kAAQ//59QD5QAYV4AgFAJhnWk0sKhIdJV0B5VyAIZgFAAD6 -f/ZFIgCdAGAFPwAAAAAAAADqdAAJ2ASAAPwAAh3gDCUA/MCGHa/89QBb/Y0tEhuaZ/egAEP//vIA -6nQACdgEgAD9/+IdoA41AP7Ahh2gDQUAW/2DLxIammf34ABD//5SAOp0AAnYBIAA/f/iHaAoJQD4 -wIYdoA0FAFv9eSkSGZpn9yAAQ//9sgD6YGgd7/z1APoAgh2hDQUA6mQEK9AEgABb/W8rEhiaZ/dg -AEP//RIA6nQACdgEgAD8AKIdoQ0FAPzAhh2v/PUAW/1lLRIWmmf3oABD//xyAOp0AAnYBIAA/f/i -HaAOFQD+wIYdoQ0FAFv9Wy8SFZpn9+AAQ//70gDqdAAJ2ASAAP3/4h2gGDUA+MCGHaMNBQBb/VGa -Z4muKhIUlpD3QABD//siAAAAAAD64GgdoByVAPzAhh2vm2UA+sCmHeENBQD6YGgd4kwFAFv9Qy0S -E5pn96AAQ//6UgDqdAAJ2ASAAP4C4h3iTAUA/sCGHe+eBQD+wKYdpY0FAFv9NygSEppn9wAAQ//5 -kgD6YGgd4kwFAPoCwh2jjQUA+sCGHa+JVQDpZAUr0ASAAFv9KysSEZpn92AAQ//40gAAACxC2C1C -G3wzCazd/GAKO+IAnQAsQtkuQhzTD3wzCazu/mAK06IAnQAsQtUvQhh8Mwms//5gC3viAJ0ALELW -KEIZ0w98MwmsiPhgDBOiAJ0ALELXKUIafDMJrJn4YAy74gCdACxC2ipCHdMPfDMJrKr6YA1TogCd -ACxC2ytCHnwzCay7+mAN++IAnQAsQtwtQh/TD3wzCazd/GAOk+IAnQAsQt0uQiB8Mwms7v5gDzui -AJ0ALELeL0Ii0w98Mwms//5gD9PiAJ0ALELfKEIjfDMJrIj4YBB7ogCdACxC4ClCJtMPfDMJrJn4 -YBET4gCdACxC4SpCJ3wzCayq+mARu6IAnQAsQuIrQih8Mwmsu/pgEmPiAJ0ALELkLUIk/H/oc6IA -nQCs3fx/6CLiAJ0A6nQACdgEgAD9/+IdoB61AP7Ahh2gDQUAW/zVjxCaZ/fgAEP/83YAAOp0AAnY -BIAA/f/iHaAIhQD4wIYdoA0FAFv8yykSEJpn9yAAQ//y0gD6YGgd4EwFAPwAAh3gCpUA6mQEK9AE -gABb/MGLH5pn92AAQ//yNgAA6nQACdgEgAD8AAId4AylAPzAhh2v/PUAW/y3jR6aZ/egAEP/8ZYA -AOp0AAnYBIAA/f/iHaAOtQD+wIYdoA0FAFv8rY8dmmf34ABD//D2AADqdAAJ2ASAAP3/4h2gCMUA -+MCGHaANBQBb/KOJHJpn9yAAQ//wVgAA+mBoHe/89QD6AaIdp40FAOpkBCvQBIAAW/yZixuaZ/dg -AEP/77YAAOp0AAnYBIAA/AHCHaeNBQD8wIYdr/z1AFv8j40ammf3oABD/+8WAADqdAAJ2ASAAP3/ -4h2gDvUA/sCGHaeNBQBb/IWPGZpn9+AAQ//udgAA6nQACdgEgAD9/+IdoBgFAPjAhh2gjQUAW/x7 -iRiaZ/cgAEP/7dYAAPpgaB3v/PUA+gIiHaENBQDqZAQr0ASAAFv8cYsRmmf3YABD/+02AADqdAAJ -2ASAAPwAAh3gHCUA/MCGHa/89QBb/GeNEppn96AAQ//slgAA6nQACdgEgAD9/+IdoB7lAP7Ahh2j -DQUAW/xdjxOaZ/fgAEP/6/YAAOp0AAnYBIAA/f/iHaAYpQD4wIYdoY0FAFv8U4kXmmf3IABD/+tW -AAD6YGgd7/z1APoDoh2gjQUA6mQEK9AEgABb/EmLFZpn92AAQ//qtgAAACxCHfaWAh3iowUA8YeQ -DeAFBQAW4qAmYqkiQuemVglmEaYihieGbsDA6yESI1HBAABbjJGLK+NqCA1ABIAA+EFGFaAMBQBb -jIwrIhDnaggNSASAAPhBphXgDAUAW4yG+koQFeAMBQDqbQctaASAAO0mEiVTAQAAW4x/KiYTK0Id -sVUPAgB7U4osQh7xh5AN4AUFABbigCZiqiJC56ZWCWYRpiKGJ4ZuwMDrIRIjUcEAAFuMcYsr42oI -DUAEgAD4QUYVoAwFAFuMbCsiEOdqCA1IBIAA+EGmFeAMBQBbjGb6ShAV4AwFAOptBy1oBIAA7SYS -JVMBAABbjF8qJhMrQh6xVQ8CAHtTiixCH/GHYA3gBQUAFuJgJmKrIkLnplYJZhGmIoYnhm7AwOsh -EiNRwQAAW4xRiyvjaggNQASAAPhBRhWgDAUAW4xMKyIQ52oIDUgEgAD4QaYV4AwFAFuMRvpKEBXg -DAUA6m0HLWgEgADtJhIlUwEAAFuMPyomEytCH7FVe1ONwCDRD40WHOKoKUL4L0L3KEL64xYXKvAE -gAD57wAP8ApFAPnvAA+wC2UAW5L18iLoFe/e4gDAof3FOAWgC2UAW5LwxyTRD2wQBBrijuKifClo -BIAAKKJ6K6J98kAAQXDDTQDponkhE/0AAOLCAQWCoYAACJgMCLs2KaJ37S4IBIB5gAB+swf/T4YV -oAAaAMAgziYioocrooEpooYNIgziwgEFgLGAACiiggmYOXgjCPNQ5hWgAB4AAMAgyCzRDwAAAAD7 -IGgd7/7KAMCg/cTkBaALZQBbksvRDwBsEAgc4nQW4lCSFJMVKWDZKGDbLWDULmDVL2DXJGDYreev -d5QQmRGYEqR3qXf44ABDsApVAPYgZhXgC2UAW5K6ZHHtHOJl+CCIFaAKVQDyYABHsAtlAO8WBilo -BIAA6P8MCfAEgABbkrDqHBAg2FEAAPwIAh2gTQUAW211KmDUhBTkZiQtAJ4AAPAAsA2gDAUAAAAA -AAAAAPogqBXgRQUAW5P1/OBoHeAMBQBbky31YEAGcNVNAA3MASpg1SxmJaTE5GYmLQCeAADwALAN -oAoFAAAAAAAAAAD6IKgV4EUFAFuT5fzgaB3gDAUAW5Md9WBABXC1TQALqgH1QAnG0AkFAClmXipg -1/0n4BWvzQUADcwBLGYnpMTkZiotAG4AAPAAmA2gCQUAAPogqBXgRQUAW5PR/OBoHeAMBQBbkwn1 -YEAE8KVNAAqZASpg2ClmK6SU5GYsLQCeAADwALANoAkFAAAAAAAAAAD6IKgV4EUFAFuTwfzgaB3g -DAUAW5L59WBABPClTQAKmQEqYNkpZi2klORmLi0AngAA8ACwDaAJBQAAAAAAAAAA+iCoFeBFBQBb -k7H84Ggd4AwFAFuS6fVgQATwpU0ACpkBKmDbKWYvpJTkZjItAJ4AAIcW8ACwDaAKBQAAAAAAAPog -qBXgRQUAW5Oh/OBoHeAMBQBbktmHFvVgQAVwtU0AC6oBHOH06mYzKWgEgADkrwgJ8ASAAP4ghhXg -C2UA/u8AD/AKVQBbkj6CFNEPKmYnlBRbkCf7QAQA0AkVAOQSBCzICoAA+MvGFe/6zgAAAABsEBCT -FBfh4eLhehlIBIAAFeHemRUrImYsUmoqUmsjcvstUmnoUnMtVkKAAOo6CA5mQoAA7DwIDu5CgAD8 -YABG8AYFAPwiRhXvxAUA7BYTIvP/AADqFhQsRkKAAOgzCA2ArgAALyKZzvv4IIgV4AJqAAAAAADa -YFttPBnhQampKJKAZ4ALbQgFKpKAZ6ACY//zKSKZyZ3AoVttMxnhOampK5KAZ7ALbQgFKpKAZ6AC -Y//zKSKZJlaSLyJmHOFXG+FXK1aN+rHmFeAKJQAqVpUsVpap/y9WjvvgAERwDQUA+LIGFa/EBQDo -VpQn+P0AAPXgBAewDhUAW2zkiRQe4Tj6TMgV78QFACmcPwSZAelWhyWhWYAAL+LGKOLJ0w8J/wwI -/wyx/Q/9Ox/hmg0dEg/dNGbUbi8KZA/fLP/gAQfwClUA7OGUH/cCgADuFgcv/4KAAP4gxhXgCwUA -W5HdW20EJnbdL3IjJHIfKHIeKXIdKnIcK3IbLXIZLnIYLHIaLnbert0uciAtdt+tzCx24Ky7LXIi -K3bhq6osciEqduKqmStyLCl246mIKnItKHbkqEQpci4kduWk/yhyLy925q/uJHIwLnbnrt0vcjEt -duitzC5yMix26ay7LXIzK3bqq6oscjQqduuqmStyNil27KmIKnI3KHbtqEQpcjokdu6k/y927yhy -O6/uLnbwJHI8rt0tdvGtzCx28qy7K3bzq6oqdvSqmSl29amIKHb2qEQkdvhbi2aaH1uLZSlSiSRS -ii1Shvkv4BXvjgUA7pkBAgBpgAAvUocP3QwNTTYoUoTIjgmoEaiYeNMH+LEmFaAAGgDAkOkWECSW -oYAALBIQZMM3HuDXLHb7L+KzKuKp6OKqJyPzAAAtQuzu4qstVkKAAOrJCAxGQoAA6MgID/5CgACv -z58ZmBjoEhIvdkKAAO7OCA7uQoAA/iFGFaStHQBtqQUIAIYJAmH6IkgVpr0dAFtsnC1C7dMP6RII -Lu5CgAD4ImgVpK0dAG2pBQgAhgkCYfoiaBWmvR0AW2ySLULu6RIKLu5CgAD4IogVpK0dAG2pBQgA -hgkCYfoiiBWmvR0AW2yILULz0w/pEgku7kKAAPhgaB2krR0AbakFCACGCQJh+mBoHaa9HQBbbH4j -UoYqUoqaG+ozDAsgBIAABOQWAQIA2zBbkvUE5BYqCgFbbHGTEBThB48b/cIIBaALhQD6IiYVoA0V -AOT/CA1wBIAA/iGGFeAKVQBbkUrZYBjgdSoSEYscqKgoFhUrhoEjhoImhoMJ5BaZHQECACiCgwTq -MCsaAltsVwjqMCkSFSmSiOkWDiSAqYAABOow+iIoFaELJQBbbE8I6jCKHQrkFgSKDFtsRNigjh7+ -IqgV4ApVAOzg5BmnQoAACEQs//EIFeALhQD0IAYVoA0VAFuRKSZWiilShipShyhyGCZWhwqZDOlW -hiQKSYAALFGnwLN8sArCYPAANA2gBCUAAPYAAh2gBGUAgxaKHx3g0IsXnXTtdgUm6DEAAJ13LXYI -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 -vzAqkn4pkoEJqxGrmfsgBhWgGLUAKJQEW2fswKBbZ+VbZ+BbZ6bAINEPAABsEATzfQ4F4KmlAPQA -wh2gBQUABQk/BQY/BQc/BQo/BAg/CQQ/BQU/+GuoFaCKBQAIAD/TD1tsLRi/Ghu/FwoBP+2/Fhrw -BIAA/gPiHeAKFQD7b6YdoAyFAOW0fibRoQAA7LR8JsnRAAD8AaIdoAsFAG3KPu6GYSXgWQAA6YZg -JECBAADphlcm6IEAAO6GViXYBQAA6oZVJMiBAADqhlQlUIEAAC7UYC7UYS7WGQ/MNizUYvRvhh2g -DSUALTR9W2e8GLzQH774Hr74CACHDwJhDwJhDgJhDgJh0Q8AbBAEGL1xIoIawPj7ePQFoA0FAPBT -kA3v/vUA1tD2AAId4AQFAPoAIh3gCdUAbQhDLILXJYLkrGwJwhGiVS5UeCpVKZdcJFUTJlQiK1Qg -K1QhLVQNJlQML1QFnFApVAQsURKFWyOCGqxE5XcIAzAFAABzawNj/7UAIoIbZCCNFb7U9f/iHaAJ -BQDwAOQNoAYFAAAAgsskxAwrxA0mxCKXzCrFKf+PBh2vgwUAI8QgI8QhI4IbsJnidwgDMAUAAONr -SnXYBQAAI4LYLILko2MJMhGizPOABhXgAuUAIsQE78QFLP2OAAApUH70gCAVoAsVAOWfnmKoBQAA -bQgMKVB+sUTln45iqAUAAGP/7CmCHMuX9XjsBeAGBQD4AOId4Af1AG0IIiyC2SuC5KxsCc4Rrruc -sCW2Fi20DSm0DCe0BCqCHLFmemsCY//WwCDRDwAA96BoHe/8kgBsEAQSvRQcvqATvpwbvp4fvpwv -NvT6fmYV4AoVACo2+ys29Ss2+Sw2/PJ+xhWgDhUA8n9GFaACBQDiNvgpaASAAFtInyI2yIo6izmM -OI03jjaINIkzjzUpNsmpiIk+KDbKqP8vNsuv7og7LjbMrt2PPS02za3MjjwsNs6suy0yFys2z6uq -LDIYKjbQqpkrMhkpNtGpiCoyGig20qj/KTIbLzbTr+4oMhwuNtSu3S8yHS021a3MLjIeLDbWrLst -Mh8rNterqiwyISo22KqZKzIiKTbZqYgqMiUoNtqo/y822ykyJq/uLjbcKDInrt0tNt2tzCw23gy7 -CCs23wuqCCo24AqZCCk24QmICCg241tnPewy9C1oBIAA6jL6Lu5CgAD9o+AV7+4FAA7dAf1PAA1/ -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 -wKL9eT4FoAsFAFtrq2P/cWwQBBO6W/JoaBWgCgUAW2Y6/UBoHaCJBQDqJAAOQASAANMP0w9tmg/p -ggAkQBEAAOmmACVQEQAA+4BoHaILBQBbbTfiNkMhAEmAAMAg0Q8A/XkSBaAKBQD6AAId7/21AFtr -kccr0Q8AbBAGGLpvGbyCHrnqHbyCLZYW/yLmFaALBQD7JgQd4ApFACqUYhy8fMfwD8wBLIa2HLx7 -KIKuKZLomRD4ICYVoI8FAFtrf8Ag0Q8AAGwQBBm8dBe8dCqSgSp22PkwSBXgCkUAKnYzKnYyKnY2 -KnZAKnZBKnY8+PsmFeAIBQD46mYVoAOFAPLkphXgCBUAKHY+KHY5F7pNEro0G7npI3B9IiKB/XYe -BaQEBQDyAAAHdA0FAO7bOQE8KoAAK8V+0Q8AErsIH7nfCDUC9O+mHeBVAQAFTzkvJX7RDwAAAGwQ -BBu8Uhq8Uhi8UsDA6rZ/JVEDAAD7D+YVoIuFAFtkjR26Ahy8TezWQyZgCwAALNZE0Q9sEAQauo7r -uqYRDVkAAGgibuSQhGSQBQAA/EJgEVAEFQBgADhpZAUFqAgnhgBySyzqNAAKWASAAFtohehhFGIg -BQAA5akICxd0AAD3IAQd7/96AKWr92AGHe//UgDRDwAsoqkpsoajzAnMEeyZCAMN3QAAaGJ2aWTj -pZ2X0NEPABm6m6k5KZB9aEA25JBlYhAFAAByQ5lj/8MsoqkpsoajzOnMEQIgBQAA7JkIAwxtAABo -Yh1oZCTyn/urogCdAGP/mmWfS2P/lKWY9wAGHe//pgClmvdABB3v/34ApZv3YAYV7/9WAKWcJ8QA -0Q+lnSfVANEP0Q8AAAAAAAAAAAAAIAMPMAzAAAYgBrhkIAMPNAjAAAwgBrhkIAMPOCDAABAgBrfs -IAMPPAbAADggBrnIIAMPQAjAADwgBrhkIAMPRALAAEAgBrnIIAMPSAjAAEQgBrhkIAMPTAiAAEgg -Brj0IAMPUBiAAFwgBrj0IAMPVBiAAHAgBrj0IAMPWBiAAIQgBrj0IAMPXBiAAJggBrj0IAMPYBiA -APwgBrj0IAMPZBiAAQwgBrj0IAMPaBiAARwgBrj0IAMPbBiAASwgBrj0IAMPcAiAAXwgBrj0RkNv -RSBERFAgZmFpbGVkIDogb3hfaWQgMHgleCByeF9pZCAweCV4CgAAAAAAAAAARkNvRSBERFAgZmFp -bGVkIDogRGRwUmVwb3J0IDB4JXggRGRwVmFsaWQgMHgleAoARkMgeGNoZyBhbGxvYyBmYWlsZWQ6 -IGF2YWlsICVkCgBGQ09FIEZyZWU6IHN0aWxsIHlpZWxkZWQgd2hlbiBmcmVlaW5nLi4uZmxvd2Nf -aWQgJXggZmxvd2NfZmxhZ3MgJXggCgAAAAAAAAAAAAAAAFBSTEkgUnNwIHRpbWVkb3V0IDogZmxv -d2NfaWQgMHgleCBveF9pZCAweCV4IHJ4X2lkIDB4JXggCgAAAAAAAABod19iY204NDM0X2NoZWNr -cmFtOiBTdGFydAoAAAAAAFBIWSBwcm9jZXNzb3Igbm90IHJ1bm5pbmcsIHN0aWxsIGluIHJlc2V0 -IGZvciA1bXMsIHBvcnRfYml0X21hcD0ldSAKAAAAAAAAAAAAAAAAUEhZIEZXIGhhcyBiYWQgQ1JD -LCBva19jcmM9JXUKAABQSFkgZmlybXdhcmUgbG9hZCBzdWNjZXNzZnVsIQoAAGh3X2JjbTg0ODM0 -X2xvYWRzZXF1ZW5jZTogU3RhcnRlZAoAAAAAAAAAAAAAAAAAAGh3X2JjbTg0ODM0X2xvYWRzZXF1 -ZW5jZTogVXBsb2FkIGltYWdlIHRvIFBIWSBvbi1jaGlwIG1lbW9yCgAAAABod19iY204NDgzNF9s -b2Fkc2VxdWVuY2U6IGRvbmUgbG9hZGluZyBpbWFnZSAoaSA9ICV1KQoAAAAAAAAAAAAAaHdfYmNt -ODQzNF9sb3dwb3dlclsldV06IGVuYWJsZT0lZAoAAAAAAAAAAAAAAAAAaHdfYmNtODQzNF9sb3dw -b3dlclsldV0sIGZhaWxlZCB0byBzZXQgMzAuMHg0MDFBYml0IDcgc2luY2UgMzAuMHg0MDBFIGJp -dD0xIGFmdGVyIDVtcywJcmVnPSV4CgAAaHdfY2w0NV9pbml0WyV1XSBhY2FwcyAlI3gKAAAAAABo -d19jbDQ1X3VwZF9zcGRfYWR2ICUjeAoAAAAAAAAAAGh3X2FxMTIwMl9saW5rX3VwWyV1XSB1cAoA -AAAAAAAAcFsldV0gUEhZIE9WRVJIRUFURUQgLSBmb3JjZWQgcG93ZXIgZG93biAodGVtcD0lZCkK -AAAAAAAAAAAAAAAAAEZMQVNIIG5vdCByZWFkeTogaSAldSBudnJSZWcgJSN4CgAAAAAAAAAAAAAA -AAAAAEFRX0ZMQVNIX1JlYWR5IC0gVGltZW91dCAoMSkKAAAAQVFfRkxBU0hfUmVhZHkgLSBUaW1l -b3V0ICgyKQoAAAAJQVFfUmV0dXJuQ29udHJvbE9mRkxBU0gKAAAAAAAAAGdhdGhlcl90YXNrc190 -b190eF9saXN0OiB0YXNrIGluIHVzZSBbJXVdCgAAAAAAAGdhdGhlcl90YXNrc190b190eF9saXN0 -OiBpZHggWyV1XSwgdGFzayBmaWQgWzB4JXhdLCB0YXNrIHN0YXRlIFsweCV4XSwgdGFzayBjb25u -IFsweCV4XSwgdGFzayBmZmxhZ3MgWzB4JXhdLCBjb25uIGZpZCBbMHgleF0sIGRkcCBbJWRdCgAA -AAAAAAAAAGdhdGhlcl90YXNrc190b190eF9saXN0OiB0YXNrIFsweCV4XSwgc3RhdGUgWzB4JXhd -IG9uIGNvbm4gWzB4JXhdIG5vdCB2YWxpZCB0byBnYXRoZXIsIHNraXBwaW5nCgAAAAAAAAAAAAAA -AAAAAABnYXRoZXJfdGFza3NfdG9fdHhfbGlzdDogdGFzayBbMHgleF0sIHN0aWxsIHF1ZXVlZCBv -biB0eCBwZW5kaW5nIGxpc3QuIFJlbW92aW5nIGl0LgoAAAAAAAAAAAAAAABnYXRoZXJfdGFza3Nf -dG9fdHhfbGlzdDogY29ubl9mYy0+Zmxvd2NfZmxhZ3MgWzB4JXhdLCBsaXN0X2VtcHR5IFsweCV4 -XSwgYWRkX3Rhc2tfY291bnQgWzB4JXhdCgB0b190eF9saXN0OiBubyB0YXNrIHRvIGNsb3NlIGZv -ciBjb25uIFsweCV4XSwgYmFpbGluZyB0byByZWNvdmVyeSBzdGF0ZSBbMHgleF0KAHNldF9kaWdl -c3Q6IHVwbHN1Ym1vZGU6JXgKAAAAAAAAYXV0aGVudGljYXRlX3RhcmdldDogS0VZX0NIQVBfUkVT -UCAtIFsweCV4JXgleCV4JXgleCV4JXhdCgAAAAAAAGF1dGhlbnRpY2F0ZV90YXJnZXQ6IEtFWV9D -SEFQX1JFU1AgLSBbMHgleCV4JXgleCV4JXgleCV4XQoAAAAAAABhdXRoZW50aWNhdGVfdGFyZ2V0 -OiBJbmNvcnJlY3QgcGFzc3dvcmQKAAAAAAAAAABDSEFQX0M6IGRpZ2VzdCBleHBhbnNpb24gZXJy -b3IKAENIQVBfTjogVGFyZ2V0IHVzZXJpZCBtaXNtYXRjaAoAQ0hBUF9SOiBkaWdlc3QgZXhwYW5z -aW9uIGVycm9yCgBpU0NTSSBTZWMtcGFyYW1zIHJlY2VpdmVkIGhhdmUgZXJyb3JzISEKAAAAAAAA -AABUYXJnZXQgbW92ZWQgdGVtcC4gY29ubiAleCwgc2VzcyAleAoAAAAAAAAAAAAAAABMb2dpbiBG -YWlsZWQhIS4gY29ubl9mYyBbMHgleF0sIHNlc3NfZmMgWzB4JXhdLCBzdGF0dXNfY2xhc3MgWzB4 -JXhdCgAAAAAAAAAAAAAAAFByb3RvY29sIEVycm9yIGNiaXQgJWQgdGJpdCAlZCBjc2cgJWQgbnNn -ICVkCgAAAHJlY3Zfbm9waW46IGN0cmwgdGFzayBhbHJlYWR5IHBlbmRpbmcKAAAAAAAAAAAAAG9m -bGRfcnhfZGF0YTogYWllZSwgaXNjc2kgY29ubiBbMHgleF0gZm9yIHNlc3MgWzB4JXhdLCB0eXBl -IFsweCV4XSB0cmFuc2l0ZWQgaW4gdG9lIG1vZGUuIEtpY2tpbmcgcmVjb3ZlcnkgCgAAAABvZmxk -X3J4X2RhdGE6IGNvbm4gdGlkIFsweCV4XSwgcnhfZGF0YS0+c2VxIFsweCV4XSwgcnhfZGF0YS0+ -bGVuIFsweCV4XSwgcnhfZGF0YS0+c3RhdHVzIFsweCV4XQoAAAAAAAAAAAAAAAAAAAAAb2ZsZF9y -eF9kYXRhOiBjc2sgeyBpZCBbMHgleF0sIGNzb2NrX29mZnNldCBbMHgleF0sIGRsZW4gWzB4JXhd -IH0KAAAAAAAAAAAAAAAAAABhY3RfZXN0OiB0Y2JfZmMgWzB4JXhdLCBmbG93Y19pY29ubl9mbGFn -cyBbMHgleF0KAAAAAAAAAAAAAAAAAAAAYWN0X2VzdGFiOiB0Y2JfZmMtPmZsb3djX2J1ZiBbMHgl -eF0sIHRjYl9mYy0+Zmxvd2NfdHlwZSBbMHgleF0gdGNiX2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0s -IG5wYWdlcyBbMHgleF0sIGZsb3djX3RwX3NuZF9tYXggWzB4JXhdCgAAAAAAAAAAAAAAAAAAYWN0 -X2VzdGFiOiBhdGlkIFsweCV4XSwgdGlkIFsweCV4XSwgb3AgWzB4JXhdLCByY3ZfaXNuIFsweCV4 -XSwgc25kX2lzbiBbMHgleF0sIGNzb2NrLT5mbG93Y19zdGF0ZSBbMHgleF0sIHRjcF9vcHQgWzB4 -JXhdLCB0Y2JfZmMtPmZsb3djX2lkIFsweCV4XSAKAAAAAAAAAAAAAAAAAGNza19mYy0+Zmxvd2Nf -Y3NvY2tfY29va2llIFsweCV4XSAKAAAAAAAAAAAAAAAAAGNobmV0X3F1ZXVlX3htaXQ6IGZjLT5m -bG93Y19pZCBbMHgleF0sIGJ1Zl9sZW4gWzB4JXhdLCBidWZmZXJlZCBbMHgleF0sIGZpZm8ubnVt -X2J5dGVzIFslMHhdCgAAAG5ldGlmX2RvX2RoY3A6IHdyLT5wYXJhbS52bGFuaWQgWyV1XSwgbDJk -ZXZfZmMtPmZsb3djX25ldF9sMmRldl92bGFuZGV2IFsweCV4XQoAbDNpbjRfZGV2X2NvbmZpZzog -d3ItPnBhcmFtLnZsYW5pZCBbJXVdLCBsMmRldl9mYy0+Zmxvd2NfbmV0X2wyZGV2X3ZsYW5kZXYg -WzB4JXhdCgAAAAAAAAAAAAAAAAAAbmV0X2wzaW40X2Rldl9jb25maWc6IGwyZGV2X2ZjLT5mbG93 -Y19pZCBbMHgleF0sIGFkZHJlc3MgYWxyZWFkeSB1c2VkIGJ5IHBvcnQgJWQKAAAAAAAAAAAAAAAA -AAAAbmV0X2wzaW40X2Rldl9jb25maWc6ICBhZGRyIFsweCV4XSwgbWFzayBbMHgleF0sIGd3IFsw -eCV4XSwgcmVmX2NudCBbMHgleF0gaW4gdXNlCgAAAAAAAAAAAAAAAAAAd3JoX2NobmV0X2lmY29u -ZjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgbDJkZXZfZmMtPmZsb3djX3R5cGUgWyUweF0s -IGlmY29uZl93ci0+c3Vib3AgWzB4JXhdCgAAAAAAAAAAAAAAAAAAAHdyaF9jaG5ldF9pZmNvbmY6 -IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIHVua25vd24gc3Vib3AgWzB4JXhdCgAAAAAAAAAA -AAAAAAAAd3JoX2NobmV0X2lmY29uZjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgcmMgJWQK -AAAAAAAAAAAAAAAAAG5ldGlmX2lwX2NvbmZsaWN0X3RpbWVyX2NiOiBsMmRldl9mYy0+Zmxvd2Nf -aWQgWzB4JXhdLCBpbmRldmN0eHQtPnN0YXRlIFslZF0sIGluZGV2Y3R4dC0+cmV0cnlfY250IFsl -ZF0KAAAAAAAAAABuZXRpZl9pcF9jb25mbGljdF90aW1lcl9jYjogbDJkZXZfZmMtPmZsb3djX2lk -IFsweCV4XSwgaW5kZXZjdHh0IFsweCV4XSwgaW4gZnJlZSBzdGF0ZQoAAAAAAAAAAABjbWRoX2No -bmV0X2lmYWNlOiBmYyBbMHgleF0sIGZjLT5mbG93Y19pZCBbMHgleF0sIGZjLT5mbG93Y190eXBl -IFsweCV4XSwgcCBbMHgleF0sIGxlbjE2IFsldV0sIGxvYyBbMHgleF0KAAAAAAAAY21kaF9jaG5l -dF9pZmFjZTpsMmRldl9mYyBbMHgleF0sIGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIGwyZGV2 -LT5mbG93Y190eXBlIFsldV0sIGwyZGV2X2ZjLT5mbG93Y19uZXRfbDJkZXZfZmxhZ3MgWyUweF0K -AAAAAABjbWRoX2NobmV0X2lmYWNlOiByMlswXToldSByMlsxXToldSwgc3Vib3A6MHgleAoAAAAA -AAAAAAAAAAAAAAAAY21kaF9jaG5ldF9pZmFjZTogbDJkZXZfZmMtPmZsb3djX25ldF9sMmRldl9m -bGFncyBjaGFuZ2VkIGZyb20gWyUweF0gdG8gWyUweF0sIHJjIFslZF0KAAAAAAAAAAAAY2huZXRf -bDJkZXZfdXBfbWJfY2I6IHJjIFslZF0sIHBvcnQgWyV1XSwgc3RhdGUgWyV1XSwgY29va2llIFsw -eCV4XQoAAAAAAAAAAAAAAABkaGNwX3Byb2Nlc3NfY2I6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgl -eF0sIGRoY3R4dC0+c3RhdGUgWyUweF0sIGRoY3R4dC0+cnRyeV9jbnQgWyV1XQoAAAAAAAAAAABk -aGNwX3RpbWVyX2NiOiBESENQRElTQ09WRVIgc2VudCwgYnV0IG5vIHJlcGx5IGZyb20gYW55IHBv -c3NpYmxlIHNlcnZlciBvbiB0aGUgbmV0d29yay4gUmV0cnlpbmcgYWdhaW4KAAAAAAAAAAAAZGhj -cF90aW1lcl9jYjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgc2VuZGluZyBESENQRElTQ09W -RVIgZm9yIGRoY3R4dCBbMHgleF0gb24gcGlkIFslZF0KAAAAZGhjcF90aW1lcl9jYjogbDJkZXZf -ZmMtPmZsb3djX2lkIFsweCV4XSwgREhDUE9GRkVSIHJlY2VpdmVkIGZvciBkaGN0eHQgWyV4XSBw -aWQgWyVkXQoAAAAAAAAAAAAAZGhjcF90aW1lcl9jYjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4 -XSwgIERIQ1BBQ0sgcmVjZWl2ZWQgZm9yIGRoY3R4dCBbJXhdLCBwaWQgWyVkXQoAAAAAAAAAAAAA -ZGhjcF90aW1lcl9jYjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgZGhjdHh0LT5pcGFkZHIg -WzB4JXhdCgAAAAAAAAAAAAAAAAAAAABkaGNwX3RpbWVyX2NiOiBzdGFydGluZyB0aW1lciBmb3Ig -bGVhc2UgWyV1XSBzZWNvbmRzCgAAAAAAAAAAAAAAZGhjcF90aW1lcl9jYjogbGVhc2UgdGltZSBv -ZiBbJXVdIHNlY29uZHMgZXhwaXJlZCwgc2VuZGluZyByZW5ldyByZXF1ZXN0CgAAAAAAAABkaGNw -X3RpbWVyX2NiOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBubyByZXBseSBmcm9tIGRoY3Ag -c2VydmVyLCB0aW1pbmcgb3V0CgAAAAAAAAAAAAAAAAAAAABhdXRoX25lZ29fc2VjdXJpdHk6IHNl -bmRfZmxhZyBbMHgleF0sIGF1dGhfcG9saWN5IFsweCV4XQoAAAAAAAAAYXV0aF9uZWdvX3NlY3Vy -aXR5OiBLRVlfQ0hBUF9SRVNQIC0gaGFzaFsweCV4JXgleCV4JXgleCV4JXhdCgAAAGF1dGhfbmVn -b19zZWN1cml0eTogS0VZX0NIQVBfUkVTUCAtIGhhc2hbMHgleCV4JXgleCV4JXgleCV4XQoAAABh -dXRoX25lZ29fc2VjdXJpdHk6IEtFWV9DSEFQX1JFU1AgLSBlcnJvciBlbmNvZGluZyB0byBoZXgK -AAAAAAAAYXV0aF9uZWdvX3NlY3VyaXR5OiBLRVlfQ0hBUF9SRVNQIC0gZWxlbiBbMHgleF0KAAAA -AAAAAAAAAAAAAAAAAGF1dGhfbmVnb19zZWN1cml0eTogS0VZX0NIQVBfQ0hBTCAtIGVycm9yIGVu -Y29kaW5nIHRvIGhleAoAAAAAAABhdXRoX25lZ29fc2VjdXJpdHk6IEtFWV9DSEFQX0NIQUwgLSBl -bGVuIFsweCV4XQoAAAAAAAAAAAAAAAAAAAAAbG9nb3V0X3RpbWVkb3V0OiBsb2dvdXQgcmVxdWVz -dCB0aW1lZG91dCwgcG9zc2libGUgbmV0d29yayBpc3N1ZXMuIEZvcmNlZnVsbHkgYnJlYWtpbmcg -cGF0aCBmb3Igc2VzcyBbMHgleF0KAAAAAHBpbmdfdGFyZ2V0OiBwaW5nIHRpbWVvdXQsIGtpY2tp -bmcgcmVjb3ZlcnkgZm9yIHNlc3MgWzB4JXhdCgAAAABjc29ja19mYWlsZWQ6IGNza19mYy0+Zmxv -d2NfaWQgWzB4JXhdLCBjc2tfZmMtPmZsb3djX3N0YXRlIFsweCV4XSwgc2Vzc19mYy0+Zmxvd2Nf -aWQgWzB4JXhdLCBzZXNzX2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0sIGV2dCBbMHgleF0KAAAAAAAA -AAAAAAByYyBbJWRdLCBjc2tfZmMgWzB4JXhdLCBjc2tfZmMtPmZsb3djX2lkIFsweCV4XQoAAAAA -AAAAAAAAAAAAAAAAcmVjb3ZlcnlfdGltZW91dDogc2VzcyBpZCBbMHgleF0gc3RhdGUgWzB4JXhd -LCByY291bnQgWyVkXSwgZmxhZ3MgWzB4JXhdCgAAAAAAAAByZWNvdmVyeV90aW1lb3V0OiBzZXNz -IGlkIFsweCV4XSBpbiBsb2dvdXQsIGFib3J0IHRoZSBjb25uZWN0aW9uCgAAAAAAAAAAAAAAAAAA -AHJlY292ZXJ5X3RpbWVvdXQ6IHNlc3NfZmMtPmZsb3djX2ZvaXNjc2lfc2Vzc19mbGFncyBbMHgl -eF0sIGNvbm5lY3Rpb24gcmVxdWVzdCBwZW5kaW5nLCBiYWlsaW5nIG91dAoAAAAAAAAAAAAAAABm -b2lzY3NpOiBSZWNvdmVyeSB0aW1lZCBvdXQgYWZ0ZXIgWyV1XSByZXRyeSwgYmFpbGluZyBvdXQK -AAAAAAAAVENQIGNvbm4gZXN0YWJsaXNobWVudCBmYWlsZWQgJWQKAAAAAAAAAAAAAAAAAAAAZGlz -Y292ZXJ5X2RhdGE6IHNlc3MgeyBpZCBbMHgleF0sIGZsYWdzIFsweCV4XSwgYnVmZmVyZWQgWyV1 -XS4gfQoAAAAAAAAAAAAAAAAAAABkaXNjb3ZlcnlfZGF0YTogc2VzcyB7IGlkIFsweCV4XSB9LCB1 -bHB0eGNoIFsldV0gbm8gY3JlZGl0cyBhdmFpbGFibGUsIHJlc2NoZWR1bGluZyByZXF1ZXN0LgoA -AABJbnZhbGlkIG9wY29kZSAweCV4IGluIGN0cmwgcGF0aAoAAAAAAAAAAAAAAAAAAABERFAgZXJy -b3IgWzB4JXhdLCBhYm9ydGluZyBjb25ubiBbMHgleF0KAAAAAAAAAAByeF9kYXRhX2RkcDogUmVz -cG9uY2UgcmVjaWV2ZWQgZm9yIHRhc2sgWzB4JXhdIHdoaWxlIGludmFsaWQgdGFzayBvciBjb25u -ZWN0aW9uIHN0YXRlLiB0YXNrIHN0YXRlIFsweCV4XSwgY29ubiBzdGF0ZSBbMHgleF0sIGNvbm4g -ZmxhZ3MgWzB4JXhdCgBpaGRyOiBSZXNwb25jZSByZWNpZXZlZCBmb3IgdGFzayBbMHgleF0gd2hp -bGUgaW52YWxpZCB0YXNrIG9yIGNvbm5lY3Rpb24gc3RhdGUuIHRhc2sgc3RhdGUgWzB4JXhdLCBj -b25uIHN0YXRlIFsweCV4XSwgY29ubiBmbGFncyBbMHgleF0KAAAAAAAAAABpaGRyOiBJbnZhbGlk -IHRhc2sgc3RhdGUgMHgleCBmb3IgdGFzayAweCV4LCBpdHQgWzB4JXhdLCBvcGMgWzB4JXhdCgAA -AAAAAAAAAAAAAHByb2Nlc3NfdG1mX3Jlc3BvbnNlOiBidWZmZXJlZCBbMHgleF0sIGlzdGFza19m -Yy0+Zmxvd2NfYnVmLT5zY2hlZF9ub2RlLm5leHQgWzB4JXhdLCBpc3Rhc2tfZmMgWzB4JXhdLCBp -c3Rhc2tfZmMtPmZsb3djX2lkIFsweCV4XQoAAAAAAAAAAAAAAAAAAHByb2Nlc3NfdG1mX3Jlc3Bv -bnNlOiB3ciBvcCBbMHgleF0sIHRtZiBvcCBbMHgleF0KAAAAAAAAAAAAAAAAAAB0bWZfcmVzcDog -Zmxvd2M6MHgleCwgaWQ6MHgleCwgc3RhdGU6MHgleCwgeWllbGQ6MHgleAoAAAAAAAAAAAAAdG1m -X3Jlc3A6IHRfdGFzazoweCV4IGZyZWVkLgoAAABzY3NpX2NtZF9yZXNwOiBmbG93YzoweCV4LCBp -ZDoweCV4LCBzdGF0ZToweCV4LCB5aWVsZDoweCV4CgAAAAAAZGF0YV9pbl9yZXNwOiBmbG93Yzow -eCV4LCBpZDoweCV4LCBzdGF0ZToweCV4LCB5aWVsZDoweCV4CgAAAAAAAHJldHVybl9wZW5kaW5n -X3Rhc2s6IGNvb2tpZSBbMHglMDh4XSwgWzB4JTA4eF0KAHJldHVybl9wZW5kaW5nX3Rhc2s6IGRl -bGF5IHByb2Nlc3NpbmcsIGNvbm4gZmxhZ3MgWzB4JXhdCgAAAAAAAAByZXR1cm5fcGVuZGluZ190 -YXNrOiBEb25lIHNlbmRpbmcgdGFzayBlcnJvciB0byBob3N0LCB1bHB0eGxlbjE2IFsldV0KAAAA -AAAAAAAAAHJldHVybl9wZW5kaW5nX3Rhc2s6IGRlcXVldWUgdGFzayBbMHgleF0sIHN0YXRlIFsw -eCV4XSBmcm9tIHR4X2xpc3QKAAAAAAAAAAAAAAAAcmV0dXJuX3BlbmRpbmdfdGFzazogYWxsIHRh -c2tzIHJldHVybmVkLCByZWNvdmVyeSBzdGF0ZSB0cmFucyB0byBbMHgleF0KAAAAAAAAAABjbGVh -cl9kZHBfbWFwOiBpc3Rhc2tfZmMgWzB4JXhdLCBpc3Rhc2tfZmMtPmZsb3djX2lkIFsweCV4XSBi -dWZmZXJlZCAldQoAAAAAAAAAAGNsZWFyX2RkcF9tYXA6IGlzdGFza19mYy0+Zmxvd2NfaXRhc2tf -bnBwb2QgJXUsIG5wcG9kICV1LCBwcGRhZGRyIFsweCV4XQoAAAAAAAAAY2xlYXJfZGRwX21hcDog -YWxsIHJldHVybmVkIHRhc2tzIGRkcCBjbGVhcmVkLCByZWNvdmVyeSBzdGF0ZSB0cmFucyB0byBb -MHgleF0KAAB3cmhfZm9pc2NzaV9ub2RlOiBub2RlX3dyLT5mbG93aWRfbGVuMTYgMiBbJXhdCgB3 -cmhfZm9pc2NzaV9jaGFwOiBpZF9sZW4gWyV4XSwgc2VjX2xlbiBbJXhdCgAAAAB3cmhfZm9pc2Nz -aV9jaGFwOiB0Z3RfaWRfbGVuIFsleF0sIHRndF9zZWNfbGVuIFsleF0KAAAAAAAAAAAAAAAAc2Vz -c2lvbl9ibG9jazogc2Vzc19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBzZXNzX2ZjLT5mbG93Y19zdGF0 -ZSBbMHgleF0sIGNvbm5fZmMtPmZsb3djX2lkIFsweCV4XSwgY29ubl9mYy0+Zmxvd2Nfc3RhdGUg -WzB4JXhdLCBjc2tfZmMtPmZsb3djX2lkIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19zdGF0ZSBbMHgl -eF0KAAAAAAAAAAAAAAAAAAAAc2Vzc2lvbl91bmJsb2NrOiBzZXNzX2ZjLT5mbG93Y19pZCBbMHgl -eF0sIHNlc3NfZmMtPmZsb3djX3N0YXRlIFsweCV4XSwgY29ubl9mYy0+Zmxvd2NfaWQgWzB4JXhd -LCBjb25uX2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0sIGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBj -c2tfZmMtPmZsb3djX3N0YXRlIFsweCV4XQoAAAAAAAAAAAAAAAAAc3RhcnRfbG9nb3V0OiBTZXNz -LWlkIFsweCV4XSBhbHJlYWR5IGxvZ2dpbiBvdXQuCgAAAAAAAAAAAAAAAAAAAHBlZXJfY29uOiBj -c2tfZmMgPT4gZmxvd2lkIFsweCV4XSwgZmxvd2NfYnVmIFsweCV4XQoAAAAAAAAAAAAAAABhbGxv -Y19zZXNzOiBsb2dpbl9yZXRyeSBbJWRdLCByZWNvdl90aW1lb3V0IFslZF0KAAAAAAAAAAAAAAAA -AAAAZm9pc2NzaV9jdHJsOiBzdWJvcCBbMHgleF0sIHNlc3NfdHlwZV90b19lcmwgWzB4JXhdLCBz -ZXNzX3R5cGUgWzB4JXhdCgAAAAAAAAAAAABmb2lzY3NpX2N0cmw6IHJlY2VpdmVkIGJsb2NrZWQg -ZnJvbSBkcml2ZXIsIHRyaWdnZXJpbmcgcmV0dXJuIHRhc2tzIG5vdy4KAAAAAAAAAFdBVENIRE9H -X2Rpc3BhdGNoIGNhc2UgdG8gYXZvaWQ6IENvdW50ZXJfd2F0Y2hkb2cgJXUgQ291bnRlcl9zY2hl -ZCAldSAKAAAAAAAAAAAAeGdtYWNbJXVdIHNldHRpbmcvdW5zZXR0aW5nIGhzcyByZXN5bmMgYml0 -CgAAAAAAV0FUQ0hET0c6IGRldmljZSBzaHV0ZG93bgoAAAAAAABXQVRDSERPRzogcG9ydFsldV0g -cGF1c2Ugd2F0Y2hkb2cgdGltZW91dAoAAAAAAABXQVRDSERPRzogYnlwYXNzIHRpbWVvdXQKAAAA -AAAAAFdBVENIRE9HOiBGTFIgLSBub3QgaW1wbGVtZW50ZWQgeWV0CgAAAAAAAAAAAAAAAFdBVENI -RE9HOiB0ZW1wZXJhdHVyZSBvZiAlZEMgZXhjZWVkcyB0aHJlc2hvbGQgb2YgJWRDCgAAAAAAAAAA -AABmaWx0ZXI6IHBvcmdyYW1taW5nIHRpZCAldSAobGUgdGNhbSBpbmRleCAldSkuLi4KAAAAAAAA -AAAAAAAAAAAAZmlsdGVyOiByZXF1ZXN0aW5nIGNvbXBsZXRpb24uLi4KAAAAAAAAAAAAAAAAAAAA -bDJkZXZfc2VuZF9wb3J0X2V2ZW50OiB3ciBbMHgleF0gcGVuZGluZyBvbiBwb3J0IFslZF0sIGN1 -cnJlbnQgdHJ5IFslZF0KAAAAAAAAAABkY2J4X2llZWVfY21kaFsldV0gd3JpdGUgb25seSBwZXJt -aXR0ZWQgb24gbG9jYWwgY29uZgoAAAAAAAAAAAAAZGNieF9pZWVlX2NtZGhbJXVdIGNhbm5vdCB3 -cml0ZSAldSBhcHBzIChNQVg6ICV1KQoAAAAAAAAAAAAAAAAAAGRjYnhfaWVlZV9jbWRoWyV1XSBy -ZXF1ZXN0aW5nIERDQl9JRUVFX0NNRAoAAAAAAGRjYnhfaWVlZV9jbWRoWyV1XSB1bmtub3duIGZl -YXR1cmUgd3JpdGU6ICV1CgAAAGRjYnhfaWVlZV9jbWRoWyV1XSB1bmtub3duIGZlYXR1cmUgcmVh -ZDogJXUKAAAAAGNhbm5vdCBhbGxvY2F0ZSBvZmZsb2FkZWQgZmlsdGVyIGNvbm5lY3Rpb24KAAAA -AGNhbm5vdCBhbGxvY2F0ZSBvZmZsb2FkZWQgZmlsdGVyIElQdjYgY29ubmVjdGlvbgoAAAAAAAAA -AAAAAAAAAABkaXNwYXRjaF9kZWZlcnJlZF9jbGFzc19jbGFzc19zaGFwaW5nWyV1OiV1XTogbGlz -dF9lbXB0eQoAAAAAAAAAbG9vcGJhY2sgYnVmZmVyIGdyb3VwWyV1XSBpcyBkaXNhYmxlZAoAAAAA -AAAAAAAAaW52YWxpZCBidWZmZXIgZ3JvdXBbJXVdIGNvbmZpZ3VyYXRpb246IG10dSAldSBsd20g -JXUgaHdtICV1IGR3bSAldQoAAAAAAAAAAAAAAABmYyAldSB2ZiAldSBnb3QgaXZmPTB4JXgscmFu -Z2U6ICUjeC0lI3ggKCV1LyV1IHVzZWQpCgAAAAAAAAAAAAAAVkkgJXUgY2Fubm90IGdldCBSU1Mg -c2xpY2U6IE5vIG1vcmUgc2xpY2VzIGF2YWlsYWJsZSAodXNlZCAldS8ldSkKAAAAAAAAAAAAAAAA -AABwZm4gJXUgdmZuICV1IHdpdGggcG9ydCBtYXNrIDB4JXggY2Fubm90IGFjY2VzcyBwb3J0ICV1 -LCByZXQgJWQKAAAAAAAAAAAAAAAAAAAAAHBmbiAldSB2Zm4gJXUgY291bGQgbm90IGFsbG9jYXRl -IHZpaWQsIHJldCAlZAoAAHBmbiAldSB2Zm4gJXUgY291bGQgbWFwIHZpaWQgIDB4JXggdG8gZmxv -d2MsIHJldCAlZAoAAAAAAAAAAAAAAABwZm4gJXUgdmZuICV1IGNvdWxkIG5vdCBhbGxvY2F0ZSB1 -d2lyZSBmdW5jICVkIG1hYyBhZGRyLCByZXQgJWQKAAAAAAAAAAAAAAAAAAAAAG1paV9mb3JjZV9z -cGVlZFsldV06IHJjYXBzIDB4JXgKAAAAAAAAAAAAAAAAAAAAAG1paV9wZG93blsldV06IHBvd2Vy -ZG93biBlbiAldQoAcG9ydF9jbWRfaGFuZGxlcjogdW5rbm93biB1LmRjYi50eXBlIDB4JXgKAAAA -AAAAcG9ydFsldToweCUwMng6MHglMDJ4XTogdW5rbm93biBhY3Rpb24gMHgleAoAAAAAcG9ydFsl -dToweCUwMng6MHglMDJ4XTogdW5rbm93biByZWFkIGFjdGlvbiAweCV4CgAAAAAAAAAAAAAAAAAA -AGNwbF9lcnJfbm90aWZ5OiB0aWQgJXUgY3BsIDB4JTA4eCUwOHgKAAAAAAAAAAAAAGNwbF9lcnJf -bm90aWZ5OiB0aWQgJXUgY3BsIDB4JTA4eCUwOHggMHglMDh4JTA4eAoAAAAAAAAAAAAAAAAAAABj -cGxfZXJyX25vdGlmeTogdGlkICV1IGxlbiAldQoAAEZDT0UgRnJlZTogc3RpbGwgeWllbGRlZCB3 -aGVuIGZyZWVpbmcuLi5mbG93Y19pZCAleCBmbG93Y19mbGFncyAleCAKAAAAAAAAAAAAAAAARkNP -RSBCUCBXUiBFUlI6IFdSIHdpdGggY29va2llICV4JXggZXJyb3JlZCBiYWNrIAoAAAAAAAAAAAAA -AAAAAHNjc2lfYWJvcnQ6IEVudGVyaW5nIEFib3J0X3Rhc2ssIGJ1ZmZlcmVkIFsldV0KAHNjc2lf -YWJvcnQ6IHJjIFsweCV4XSByZWYgdGFzayBub3Qgb3V0c3RhbmRpbmcKAHNjc2lfYWJvcnQ6IGlk -YXRhLT5vcCBbMHgleF0sIGZsYWdzIFsweCV4XSwgZnVuYyBbMHgleF0sIGx1bl9pZHggWzB4JXhd -CgAAAAAAAAAAc2NzaV9hYm9ydDogd3ItPmlxaWQgWzB4JXhdLCBpc3Rhc2tfZmMtPmZsb3djX3Nn -ZV9pcWlkIFsweCV4XSwgaXN0YXNrX2ZjIHRhc2sgZmxhZ3MgWzB4JXhdCgAAAAAAc2NzaV9hYnJ0 -OnRhc2sgZmxvd2NbMHgleF0sIHRtZl9saXN0X2VtcHR5OgoAAAAAc2NzaV9hYm9ydDogY29ubiBb -MHgleF0sIGNtZHNuIFsweCV4XSwgc2VudF9jbWRzbiBbMHgleF0sIG1heF9jbWRzbiBbMHgleF0s -IGl0dCBbMHgleF0KAAAAAAAAAAAAYWJvcnQvY2xvc2UgV1Igd2l0aCBjb29raWUgMHglbHggd2Fz -IGlzc3VlZCBvbiBzc24gMHgleCBpbiB3cm9uZyBzdGF0ZSAweCV4CgAAAABhYm9ydCBXUiBvbiBz -c24gMHgleCBkaWQgbm90IGZpbmQgV1Igd2l0aCBjb29raWUgMHgleCV4CgAAAAAAAAAAY2xvc2Ug -V1Igd2l0aCBjb29raWUgMHglbHggb24gc3NuIDB4JXg7ZGlkIG5vdCBmaW5kIFdSIHdpdGggY29v -a2llIDB4JWx4CgAAAAAAAABhYm9ydCBXUiBvbiBzc24gMHgleCB3YXMgaXNzdWVkIG9uIHhjaGcg -MHgleCB3aXRoIHJ4X2lkIDB4JXggaW4gd3Jvbmcgc3RhdGUgMHgleAoAAAAAAAAAAAAAAAAAAABz -Y3NpX2x1cjogRW50ZXJpbmcgTFVSIGhhbmRsZXIsIGJ1ZmZlcmVkIFsldV0KAABzY3NpX2x1cjog -aWRhdGEtPm9wIFsweCV4XSwgZmxhZ3MgWzB4JXhdLCBmdW5jIFsweCV4XSwgbHVuX2lkeCBbMHgl -eF0KAAAAAAAAAAAAAHNjc2lfbHVyOiB3ci0+aXFpZCBbMHgleF0sIGlzdGFza19mYy0+Zmxvd2Nf -c2dlX2lxaWQgWzB4JXhdLCBpc3Rhc2tfZmMgdGFzayBmbGFncyBbMHgleF0KAAAAAAAAAHNjc2lf -bHVyOiBjb25uIFsweCV4XSwgY21kc24gWzB4JXhdLCBzZW50X2NtZHNuIFsweCV4XSwgbWF4X2Nt -ZHNuIFsweCV4XSwgaXR0IFsweCV4XQoAAAAAAAAAAAAAAGRjYnhfYXBwbHlfYXBwX2NmZ1sldV1O -RVcgQVBQIFRMViAKAAAAAAAAAAAAAAAAAGRjYnhfY2VlX2ZlYV9zbVsldV0gRmVhdHVyZVsldV0g -RkVBVFVSRV9MSU5LVVAKAGRjYnhfY2VlX2ZlYV9zbVsldV0gRmVhdHVyZVsldV0gU0VUX0xPQ0FM -X1BBUkFNRVRFUlMKAAAAAAAAAAAAAABkY2J4X2NlZV9mZWFfc21bJXVdIEZlYXR1cmVbJXVdIEZF -QVRVUkVfTk9fQURWRVJUSVNFCgAAAAAAAAAAAAAAZGNieF9jZWVfZmVhX3NtWyV1XSBGZWF0dXJl -WyV1XSBGRUFUVVJFX1BFRVJfTk9UX0FEVkVSVElTRV9EQ0JYCgAAAAAAAAAAAAAAAAAAAABkY2J4 -X2NlZV9mZWFfc21bJXVdIEZlYXR1cmVbJXVdIEZFQVRVUkVfUEVFUl9OT1RfQURWRVJUSVNFX0ZF -QVRVUkUKAAAAAAAAAAAAAAAAAGRjYnhfY2VlX2ZlYV9zbVsldV0gRmVhdHVyZVsldV0gRkVBVFVS -RV9VUERBVEVfT1BFUl9WRVJTSU9OCgAAAABkY2J4X2NlZV9mZWFfc21bJXVdIEZlYXR1cmVbJXVd -IEZFQVRVUkVfUEVFUl9VUERBVEVfT1BFUl9WRVJTSU9OCgAAAAAAAAAAAAAAAAAAAGRjYnhfY2Vl -X2ZlYV9zbVsldV0gRmVhdHVyZVsldV0gRkVBVFVSRV9HRVRfUEVFUl9DRkcKAAAAAAAAAAAAAABk -Y2J4X2NlZV9mZWFfc21bJXVdIEZlYXR1cmVbJXVdIEZFQVRVUkVfQ0ZHX05PVF9DT01QQVRJQkxF -CgAAAAAAZGNieF9jZWVfZmVhX3NtWyV1XSBGZWF0dXJlWyV1XSBGRUFUVVJFX1VTRV9MT0NBTF9D -RkcKAAAAAAAAAAAAAGRjYnhfY2VlX2ZlYV9zbVsldV0gRmVhdHVyZVsldV0gRkVBVFVSRV9VU0Vf -UEVFUl9DRkcKAAAAAAAAAAAAAABkY2J4X2NlZV9mZWFfc21bJXVdIEZlYXR1cmVbJXVdIEZFQVRV -UkVfRkVBVFVSRV9ESVNBQkxFRAoAAAAAAAAAZGNieF9jZWVfZmVhX3NtWyV1XSBGZWF0dXJlWyV1 -XSBGRUFUVVJFX0VSUk9SX0NIQU5HRQoAAAAAAAAAAAAAAGRjYnhfaWVlZV9wcm9jZXNzWyV1XSBy -ZWNlaXZlZCBCV3MgZG8gbm90IGFkZCB1cCB0byAxMDAhCgAAAAAAAABXQVJOSU5HOiByZWNlaXZl -ZCBBcHAgVExWIGNvbnRhaW5zIG1vcmUgdGhhbkZXIGNhbiBoYW5kbGUgKG1heDogJXU7IHRsdiBj -b250YWluczogJXUKAAAAAAAAAAAAAABkY2J4X2llZWVfcHJvY2Vzc1sldV0gc3VidHlwZSAlI3gg -cmVtX2Z0X2NoYW5nZWQgJXUgc21fY2hhbmdlICV1CgAAAAAAAAAAAAAAAAAAAGRjYnhfaWVlZV9w -cm9jZXNzWyV1XSBzdWJ0eXBlIHVua25vd24KAAAAAAAAAAAAAGRjYnhfcGFyc2VfcGt0WyV1XSBl -cnJvciAlZAoAAAAAY2huZXRfbDJ0X3VwZGF0ZTogbDJkZXZfZmMgWzB4JXhdLCBsMmRldl9mYy0+ -Zmxvd2NfaWQgWyV1XSBsMmRldl9mYy0+Zmxvd2NfZmxhZ3MgWzB4JXhdLCBpbnRmIFsweCV4XQoA -AAAAAAAAAAAAAGNobmV0X2wydF91cGRhdGU6IGwyZGV2X2ZjLT5mbG93Y19pZCBbJXVdIGFscmVh -ZHkgc2NoZWR1bGVkCgAAAABjaG5ldF9sMnRfdXBkYXRlOiBpbiBkZWxheWVkX3Byb2Nlc3Npbmcs -IGwydGVudCBbJTA4eF0KAAAAAAAAAAAAY2huZXRfYXJwX3VwZGF0ZV9jYWNoZTogYXJwIGlwNCBl -bnRyeSBmb3VuZCAKAAAAY2huZXRfYXJwX3VwZGF0ZV9jYWNoZTogYXJwIGlwNiBlbnRyeSBmb3Vu -ZCAKAAAAY2huZXRfYXJwX3VwZGF0ZV9jYWNoZTogYm90aCBpcDQgYW5kIGlwNiBhZGRyIGNhbm5v -dCBiZSBudWxsCgAAAGNobmV0X2wydF91cGRhdGU6IGwydF91cGRhdGUgcmVxdWVzdCBzZW50IGwy -dGVudCBbJTA4eF0sIGwydGVudC0+aWR4IFslZF0sIGwydGVudC0+dmxhbiBbJWRdCgAAAG5ldGlm -X3Byb2Nlc3NfZGhjcDogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgcHJvY2Vzc2luZywgb3B0 -X2xlbiAldQoAAAAAAAAAAAAAY2huZXRfZGhjcF9yZWN2OiB2bGFuaWQgWyV1XSwgbDJkZXZfcGlk -X2ZjLT5mbG93Y19uZXRfbDJkZXZfdmxhbmRldiBbMHgleF0sIGwyZGV2X2ZjIFsweCV4XQoAAAAA -Y2huZXRfZGhjcF9yZWN2OiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBkaGN0eHQtPnN0YXRl -IFslZF0sIG1hbGFjaW91cyBkaGNwIHJlY3YgZm9yIG5vIHJlcXVlc3QKAAAAAAAAAAAAAAAAAGRo -Y3R4dC0+c3RhdGUgOiAlZAoAAAAAAAAAAAAAAAAAbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwg -QmFkIERIQ1AgY29va2llIHJlY2lldmVkLCBhYm9ydGluZwoAAENvdWxkIG5vIGFsbG9jYXRlIHBj -YiEhIEZyZWVpbmcgZmNmICEhIQoAAAAAAAAAAHZuX3BhcnNlIHVua25vd24gc3ViY29kZSAldQoA -AAAAdm5fcGFyc2UgdW5rbm93biBkdHlwZSAldQoAAAAAAABpZ25vcmluZyBmaXAgcmVjdiBmb3Ig -cGNiIGZsb3c6JXggaW4gb2ZmbGluZSBzdGF0ZQoAAAAAAAAAAAAAAAAAZmlwX3ZuMnZuX3JlY3Zf -ZXJyIAoAAAAAAAAAAAAAAABDb3VsZCBub3QgYWxsb2NhdGUgZmxvd2MhISEhCgAAAENvdWxkIG5v -dCBhbGxvY2F0ZSBTQ0IgZmxvd2MhISEhCgAAAAAAAAAAAAAAAAAAAENvdWxkIG5vdCBmaW5kIHJp -Z2h0IHNjYiBmb3IgbG9nbwoAAAAAAAAAAAAAAAAAAGlnbm9yaW5nIGZpcCByZWN2IGZvciBmY2Yg -ZmxvdzoleCBpbiBvZmZsaW5lIHN0YXRlCgAAAAAAAAAAAAAAAABDb3VsZCBub3QgZmluZCByaWdo -dCBzY2IgZm9yIGZsb2dpCgAAAAAAAAAAAAAAAABwb3J0IDB4JXgsIHN0YXRlIDB4JXgsIHJldHJ5 -IG5vdCBzdXBwb3J0ZWQKAAAAAABGbG9naSByZXNwIHJjdiB3aXRoIHVua25vd24geGNoZyBveF9p -ZCV4IHNpZCAlMnglMnglMnggZGlkICUyeCUyeCUyeAoAAAAAAAAAAAAAAE5fUE9SVCAweCV4JXgl -eCByZWplY3RlZCBQTE9HSSB3aXRoIHJlYXNvbiBjb2RlICV4CgAAAAAAAAAAAAAAAABBQlRTIHdo -aWxlIGF3YWl0aW5nIFBSTEkgUnNwOiBmbG93Y19pZCAweCV4IG94X2lkIDB4JXggcnhfaWQgMHgl -eCAKAAAAAAAAAAAAAAAAAEFCVFMgZmFrZSBSc3A6IGxvYyAweCV4IG94X2lkIDB4JXggcnhfaWQg -MHgleAoAAGxsZHBfcnhfcGt0X2hhbmRsZXJbJXVdIGRyb3AgcHJlLWluaXQgKGNvdW50ID0gJXUp -CgAAAAAAAAAAAAAAAAAleCV4JXggUmVjaWV2ZWQgTE9HTyBmcm9tICV4JXgleCAKAAAAAAAAAAAA -AAAAAABjYW5ub3QgYWxsb2NhdGUgUE9GQ09FIGZpbHRlciBjb25uZWN0aW9uIGZvciB4X2lkICV4 -IAoAAAAAAAAAAAAARmFpbGVkIHRvIHBvc3QgeGNoZyBlcnI6IHNzbmkgMHgleCBjb29raWUgMHgl -bHggcnZhbCAleCAKAAAAAAAAAHRjcF9yZWxlYXNlX3RpZDogdGlkIFsweCV4XSwgZmxvd2MgZmxh -Z3MgWzB4JXhdLCBidWZmZXJlZCBbMHgleF0KAAAAAAAAAAAAAAAAAAAAdGNwX3JlbGVhc2VfdGlk -OiBzaXplb2YodGNiX2ZjLT5mbG93Y19pY29ubikgWyV1XSwgYnl0ZXMKAAAAAAAAAGFjdF9vcGVu -X3JwbDogYXRpZCBbMHgleF0sIHRpZCBbMHgleF0sIHRjYl9mYy0+eyBpZCBbMHgleF0sIHN0YXRl -IFsweCV4XSwgdHlwZSBbMHgleF0gfSwgY3BsX29wIFsweCV4XSwgc3RhdHVzIFsweCV4XQoAAAAA -AAAAAAAAYWN0X29wZW5fcnBsOiBjc2tfZmMtPnsgaWQgWzB4JXhdLCBzdGF0ZSBbMHgleF0sIGNz -b2NrX2ZsYWdzIFsweCV4XSB9IAoAAAAAAAAAAABhY3Rfb3Blbl9ycGw6IHJlY3ZkIG5lZyBhZHZp -Y2UgWzB4JXhdCgAAAAAAAAAAAABzZW5kX2Fib3J0X3JwbDogY3NrX2ZjLT5mbG93Y190eXBlIFsw -eCV4XSwgY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIHRpZCBbMHgleF0sIHVscHR4Y2ggWyV1XSwg -YnVmZmVyZWQgWyV1XQoAAAAAd3JoX29mbGRfdGNwX2Nsb3NlX2Nvbl9yZXBseTogdGNiX2ZjLT5m -bG93Y19pZCBbMHgleF0sIHRjYl9mYy0+Zmxvd2NfdHlwZSBbMHgleF0sIGxlbjE2IFsldV0sIGxv -YyBbJXVdCgAAAAAAAAAAAHdyaF9vZmxkX3RjcF9jbG9zZV9jb25fcmVwbHk6IHJwbC0+b3BfVGlk -IFsweCV4XSwgcnBsPnN0YXR1cyBbMHgleF0sIHJwbC0+c25kX254dCBbMHgleF0sIHJwbC0+cmN2 -X254dCBbMHgleF0KAAB0Y3BfYWJvcnRfcnBsX3JzczogdGlkIFsweCV4XSwgc3RhdHVzIFsweCV4 -XQoAAAB0Y3BfYWJvcnRfcmVxX3JzczogdGlkIFsweCV4XSwgc3RhdHVzIFsweCV4XSwgZmxvd2Nf -Y3NvY2tfZm9pc2NzaV9zdGF0ZSBbMHgleF0KAG9mbGRfYWJvcnRfcmVxX25lZ2FkdlsldV06IHdy -IDB4JTA4eCBjcGxfYWJvcnRfcmVxIERFTElWRVJFRAoAAABob3N0X3dyWyV1XTogd3IgMHglMDh4 -IGNwbF9hYm9ydF9yZXEgc3RhdHVzIDB4JXgKAAAAAAAAAAAAAAAAAAAAcGt0c2NoZWRfY2xfcmxb -JXU6JXVdOiBtb2RlIHwgdW5pdCB8IHJhdGUgMHglMDZ4IG1pbiAldSBtYXggJXUgcGt0c2l6ZSAl -dQoAAAAAAABwYXJhbV9jaG5ldFsweCV4OjB4JXhdOiBjaG5ldCAweCV4IHJlYWQgJXUgcGYgJXUg -cmV0ICVkCgAAAAAAAAAAcGFyYW1fZG1hcVsweCV4OjB4JXhdOiBkbWFxIDB4JXggcmVhZCAldSBw -ZiAldSByZXQgJWQKAAAAAAAAAAAAAFJTU1NFQ1JFVEtFWTogcnNzc2VjcmV0IHRibCBiYXNlICVk -LCByc3Nuc2VjcmV0ICVkCgAAAAAAAAAAAAAAAABNQ1sldV0gaW5pdF9zdGF0ZV9tYWNoaW5lIDB4 -JTAyeAoAAAAAAAAAAAAAAAAAAABNQyBpbml0aWFsaXphdGlvbiBub3QgY29tcGxldGluZywgTUMg -Y3VycmVudCBpbml0IHN0YXRlIGlzIDB4JTAyeAoAAAAAAAAAAAAAAAAAAE1DWyV1XSBfaHdfbWNf -aW5pdF9tYwoAAAAAAAAAAAAAX2h3X21jX2luaXRfbWM6IGVycm9yLCByZXQgJWQKAABwaHk6IGZh -aWxlZCB0byBhbGxvY2F0ZWQgbWVtb3J5IGZvciBwaHkgZncgZmlsZSwgcmV0ICVkCgAAAAAAAAAA -aHdfbGVfZmlsdGVyX2N0dXBsZTogdHVwbGUgJXUgbm90IHNwZWNpZmllZCBidXQgcmVxdWlyZWQg -Zm9yIG1hc2sgMHgleAoAAAAAAAAAAABod190cF90Y3Bfc2V0dGluZ3NfdzogdGltZXJfcnMgJXV1 -cyB0aW1lc3RhbXBfcmVzICV1dXMgZGVsYXllZGFja19yZXMgJXV1cwoAAAAAAGh3X3RwX3RjcF9z -ZXR0aW5nc193OiBkYWNrX3RpbWVyICV1dXMgbXNsICV1dXMgcnh0X21pbixtYXggJXUsJXV1cyBw -ZXJzX21pbixtYXggJXUsJXV1cwoAAAAAAAAAAGh3X3RwX3RjcF9zZXR0aW5nc193OiBrZWVwX2lk -bGUsaW50dmwgJXUsJXVzIG1heHJ0dCAldXVzIGluaXRzcnR0ICV1dXMgZmlud2FpdDJfdGltZXIg -JXV1cwoAAAAAAGh3X3RwX3RjcF9zZXR0aW5nc193OiBjYXBwaW5nIGRhY2tfdGltZXIgZnJvbSAl -dSB0byAldQAAAAAAAAAAAABod190cF90Y3Bfc2V0dGluZ3NfdzogY2FwcGluZyBtc2wgZnJvbSAl -dSB0byAldQBod190cF90Y3Bfc2V0dGluZ3NfdzogY2FwcGluZyByeHRfbWluIGZyb20gJXUgdG8g -JXUAAAAAAAAAAAAAAAAAaHdfdHBfdGNwX3NldHRpbmdzX3c6IGNhcHBpbmcgcnh0X21heCBmcm9t -ICV1IHRvICV1AAAAAAAAAAAAAAAAAGh3X3RwX3RjcF9zZXR0aW5nc193OiBjYXBwaW5nIHBlcnNf -bWluIGZyb20gJXUgdG8gJXUAAAAAAAAAAAAAAABod190cF90Y3Bfc2V0dGluZ3NfdzogY2FwcGlu -ZyBwZXJzX21heCBmcm9tICV1IHRvICV1AAAAAAAAAAAAAAAAaHdfdHBfdGNwX3NldHRpbmdzX3c6 -IGNhcHBpbmcga2VlcF9pZGxlIGZyb20gJXUgdG8gJXUAAAAAAAAAAAAAAGh3X3RwX3RjcF9zZXR0 -aW5nc193OiBjYXBwaW5nIGtlZXBfaW50dmwgZnJvbSAldSB0byAldQAAAAAAAAAAAABod190cF90 -Y3Bfc2V0dGluZ3NfdzogY2FwcGluZyBpbml0X3NydHRfbWF4cnR0IGZyb20gJXUgdG8gJXUAAAAA -aHdfdHBfdGNwX3NldHRpbmdzX3c6IGNhcHBpbmcgaW5pdF9zcnR0X2luaXRzcnR0IGZyb20gJXUg -dG8gJXUAAGh3X3RwX3RjcF9zZXR0aW5nc193OiBjYXBwaW5nIGZpbndhaXQyX3RpbWVyIGZyb20g -JXUgdG8gJXUAAAAAAABmaWx0ZXJNb2RlPSUjeCBpbGxlZ2FsOiBzZWxlY3RzICVkIGJpdHMgKG1h -eCAlZCkKAAAAAAAAAAAAAAAAAAAAbGUgY29uZmlndXJhdGlvbjogbmVudHJpZXMgJXUgcm91dGUg -JXUgY2xpcCAldSBmaWx0ZXIgJXUgYWN0aXZlICV1IHNlcnZlciAldSBoYXNoICV1CgAAAAAAAAAA -AAAAbGUgY29uZmlndXJhdGlvbjogbmVudHJpZXMgJXUgcm91dGUgJXUgY2xpcCAldSBmaWx0ZXIg -JXUgc2VydmVyICV1IGFjdGl2ZSAldSBoYXNoICV1IG5zZXJ2ZXJzcmFtICV1CgAAAAAAAAAAAAAA -AGh3X3NnZV9xdWV1ZV9iYXNlX21hcFsldV06IGV4Y2VlZGVkIG51bWJlciBvZiBlZ3Jlc3MgcXVl -dWVzLCAldQoAAAAAAAAAAAAAAAAAAAAAaHdfc2dlX3F1ZXVlX2Jhc2VfbWFwWyV1XTogZXhjZWVk -ZWQgbnVtYmVyIG9mIGluZ3Jlc3MgcXVldWVzIHdpdGggZnJlZWxpc3QgYW5kIGludGVycnVwdCwg -JXUKAAAAaHdfc2dlX3F1ZXVlX2Jhc2VfbWFwWyV1XTogZXhjZWVkZWQgbnVtYmVyIG9mIGluZ3Jl -c3MgcXVldWVzLCAldQoAAAAAAAAAAAAAAAAAAABFcnJvciwgVG90YWwgUlNTIFNlY3JldCB0YWJs -ZSBhbGxvY2F0aW9uICVkID4gMTYKAAAAAAAAAAAAAAAAAAAAY2ZfcGFyc2U6IGZpbGUgbWVtdHlw -ZSAweCV4IG1lbWFkZHIgMHgleCBtYXBwZWQgQCAlcDoKAAAAAAAAAAAAAGNvbmZpZ3VyZWQgd2l0 -aCBjYXBzIG5ibXxsaW5rIDB4JTA4eCBzd2l0Y2h8bmljIDB4JTA4eCB0b2V8cmRtYSAweCUwOHgg -aXNjc2l8Y3J5cHRvIDB4JTA4eCBmY29lOjB4JXgKAAAAAAAAAAAAAABuZXQgVkkgYWxsb2NhdGlv -biBmYWlsZWQgZm9yIGZjX2lkICV1IHdpdGggZXJyb3IgJWQKAAAAAAAAAAAAAAAAbmV0IFZJIG1h -YyBhZGRyZXNzIHByb2dyYW1taW5nIGZhaWxlZCBmb3IgZmNfaWQgJXUgd2l0aCBlcnJvciAlZAoA -AAAAAAAAAAAAAAAAAABuZXQgVkkgcnhtb2RlIHByb2dyYW1taW5nIGZhaWxlZCBmb3IgZmNfaWQg -JXUgd2l0aCBlcnJvciAlZAoAAAAAbmV0IFZJIHJzcyBpbmRpcmVjdGlvbiB0YWJsZSBwcm9ncmFt -bWluZyBmb3IgZmNfaWQgJXUgZmFpbGVkIHdpdGggZXJyb3IgJWQKAAAAAABuZXQgVkkgcnNzIGNv -bmZpZyBjb21tYW5kIGZhaWxlZCBmb3IgZmNfaWQgJXUgd2l0aCBlcnJvciAlZAoAAAAAbmV0IFZJ -IGNvbW1hbmQgZmFpbGVkIGZvciBmY19pZCAldSB3aXRoIGVycm9yICVkCgAAAAAAAAAAAAAAAAAA -AHByb2dyYW1tZWQgSFcgdGFnbSBbMHglMDh4XSwgSFcgcGdzeiBmYWN0b3IgWzB4JTA4eF0sIEZP -aVNDU0kgdGFnbSBbMHglMDh4XSwgcnRhZ20gWzB4JTA4eF0sIG1heHN6X2JpdHMgWyV1XSwgc3pf -Yml0cyBbJXVdLgoAAAAAYmFzZSBbIDB4JTA4eF0sIGxsaW1pdCBbMHglMDh4XSwgdWxpbWl0IFsw -eCUwOHhdLCBzaXplIFsldV0sIG1heF90eHN6IFsldV0sIG1heF9yeHN6IFsldV0sIGlvc2l6ZSBb -JXVdCgAAAAAAAAAAAG5wcG9kcyBbJXVdLCBpZHhfbWFzayBbMHglMDh4XSwgaWR4X2ZpcnN0IFsl -dV0sIGlkeF9sYXN0IFsldV0sIHNjc2lfcGxkX3NpemUgWyV1XSwgQUxJR04oc2NzaV9wbGRfc2l6 -ZSwgMTYpIFsldV0sIHBwZF96b25lcyBbJXVdLgoAAAAAAAAAAAAAAAAAAGZvaXNjc2lfaW5pdDog -aW5pdF9kb25lOiV1LCBmb2lzY3NpX250YXNrczoldSwgZm9pc2NzaV9uc2VzczoldSwgbmNzb2Nr -OiV1LCBuc3BvcnRzOiV1LCBmb2lzY3NpX25pbml0OiV1LCByYzolZAoAAAAAAAAAAAAAAAAAAAAA -Y2hfY2xfcmF0ZVsldS8ldV06IGNhcHBlZCBjbGFzcyByYXRlIGZyb20gcmVxdWVzdGVkICV1IHRv -IGNvbmZpZ3VyZWQgKGVmZmVjdGl2ZSkgY2hhbm5lbCByYXRlICV1CgAAAAAAAAAAAAAAAAAAAGNo -X2NsX3JhdGVbJXUvJXVdOiBpbmNyZWFzZWQgZGVmaWNpdF9pbmNyIGZyb20gcmVxdWVzdGVkICV1 -IHRvIHJlcXVpcmVkIG1pbiBvZiAldTsgcmF0ZSAldSAoZWZmICV1KSBkZWZpY2l0X21heCAldQoA -AAAAAAAAAAAAAAAAcGt0c2NoZWQgY2hhbm5lbCAldSBzZXRzIHNwZWVkIChmcm9tICV1KSB0byAl -dSBrYnBzCgAAAAAAAAAAAAAAAG5ldF9sMmRldl9ub3RpZnk6IGwyZGV2X2ZjLT5mbG93Y19pZCBb -MHgleF0sIHBvcnQgWyVkXSwgZXZlbnQgWzB4JXhdLCB1bHB0eGNoIFsldV0sIGNsYXNzIFsweCV4 -XSwgdnByaW8gWzB4JXhdLCB2aWQgWzB4JXhdLCB2aV9yZWFkeSBbJXVdCgAAAAAAAG5ldF9sMmRl -dl9ub3RpZnk6IHBnaWQgWzB4JXhdLCBwcmlvIFsweCV4XSwgY2ggWzB4JXhdCgAAAAAAAAAAAABb -JXVdIHVuYWJsZSB0byBleGVjdXRlIGludGVybmFsIERDQl9JRUVFX0NNRAoAAABwb3J0WyV1XSBs -aW5rIGRvd24gKCV1KSAobHN0YXR1cyAlI3gpCgAAAAAAAAAAAABpMmMgZXJyb3IgY2F1c2VkIGJ5 -IG1vZHVsZSB1bnBsdWcKAAAAAAAAAAAAAAAAAABzZW5kdG8gcGVuZGluZzogd3JfcGVuZCAlcCBm -b3IgcG9ydCAldSwgd2FudCB0byBzZW5kIHRvIHBvcnQgJXUKAAAAAAAAAAAAAAAAAAAAAHBvcnRb -JXVdIHVwZGF0ZSAoZmxvd2NpZCAldSByYyAldSkKAAAAAAAAAAAAAAAAAHBvcnRfc2V0X2xvb3Bi -YWNrIHBvcnQgJSN4IGN1cnJlbnQgJSN4IG1vZGUgJSN4CgAAAAAAAAAAAAAAAAAAAABwb3J0WyV1 -XSBzcGVlZCB1cGRhdGU6ICUjeAoAAAAAAHBvcnRbJXVdIGJlZ2lubmluZyBkZWJvdW5jZQoAAAAA -cG9ydF9saW5rX3N0YXRlX2hhbmRsZXJbJXVdIHBvd2VyaW5nIGRvd24KAAAAAAAAcG9ydF9saW5r -X3N0YXRlX2hhbmRsZXJbJXVdIHBvd2VyaW5nIHVwCgAAAAAAAAAAcG9ydF9saW5rX3N0YXRlX2hh -bmRsZXJbJXVdIHVua25vd24gc3RhdGUgKHN0YXRlID0gJSN4KQoAAAAAAAAAAHBvcnRfbGlua19z -dGF0ZV9oYW5kbGVyOiBTb21ldGhpbmcgd2VudCB0ZXJyaWJseSB3cm9uZy4gcmV0ID0gJWQKAAAA -AAAAAAAAAAAAAAAAbGUgaW5pdGlhbGl6YXRpb246IG5lbnRyaWVzICV1IHJvdXRlICV1IGNsaXAg -JXUgZmlsdGVyICV1IGFjdGl2ZSAldSBzZXJ2ZXIgJXUgaGFzaCAldQoAAAAAAAAAAAAAbGUgaW5p -dGlhbGl6YXRpb246IG5lbnRyaWVzICV1IHJvdXRlICV1IGNsaXAgJXUgZmlsdGVyICV1IHNlcnZl -ciAldSBhY3RpdmUgJXUgaGFzaCAldSBuc2VydmVyc3JhbSAldQoAAAAAAAAAAAAAAGh3X3RwX2lu -aXQ6IHRjYiByZWdpb24gKHN0YXJ0IDB4JTA4cyBzaXplICV1KSBtdXN0IGJlIGluIGZpcnN0IDI1 -Nk1CIG9mIE1BIG1lbW9yeQoAAAAAAAAAAAAAAAAAAGh3X3RwX2luaXQ6IHBnbW5ndCByZWdpb24g -KHN0YXJ0IDB4JTA4cyBzaXplICV1KSBtdXN0IGJlIGluIGZpcnN0IDI1Nk1CIG9mIE1BIG1lbW9y -eQoAAAAAAAAAAAAAAGh3X3RwX2luaXQ6IFRQIHBnbW5ndCBpbml0aWFsaXphdGlvbiBkaWQgbm90 -IGNvbXBsZXRlCgAAAAAAAAAAAABidWZtX2luaXQ6IG4gJXUgYnVmbGw2NGludF9zaXplIDB4JXgK -AAAAAAAAAAAAAABidWZtX2luaXQ6IG5vdCBlbm91Z2ggbWVtb3J5IHRvIGFsbG9jYXRlIGludGVy -bmFsIGJ1ZmxsNjQgYnVmZmVycwoAAAAAAAAAAAAAAAAAAGJ1Zm1faW5pdDogbm90IGVub3VnaCBt -ZW1vcnkgdG8gYWxsb2NhdGUgYnVmbGw2NCBidWZmZXJzCgAAAAAAAABtZW1faW5pdF9idWY6IG5v -dCBlbm91Z2ggbWVtb3J5IHRvIGFsbG9jYXRlIGZsb3cgYnVmZmVycwoAAAAAAAAAbWVtX2luaXRf -YnVmOiBub3QgZW5vdWdoIG1lbW9yeSB0byBhbGxvY2F0ZSB0Y2JfY2FjaGUgKG9mZmVyZWQgJXUg -dHJ5aW5nIHRvIHVzZSAldSBhdmFpbGFibGUgJXUpCgAAAAAAAAAAAAAAAAAAAG1wYXJ0aXRpb25f -b3RoZXJzOiBzdGFydCAweCUwOHggc2l6ZSAldSAodW51c2VkICV1KQoAAAAAAAAAAAAAAABtcGFy -dGl0aW9uX290aGVyczogc3RhcnQgMHglMDh4IHNpemUgJXUgKHVudXNlZCAldSkKAAAAAAAAAAAA -AAAAbWVtX2luaXQ6IEVEQyBvdmVyY29tbWl0dGVkIGJ5ICVkIGJ5dGVzCgAAAAAAAAAAbWVtX2lu -aXQ6IG5vdCBlbm91Z2ggbWVtb3J5IHRvIGFsbG9jYXRlIGZsb3cgdGFibGUKAAAAAAAAAAAAAAAA -AGN4Y25pY19kZXZpY2VfaW5pdDogY3hjbmljIFsweCUweF0sIGN4Y25pYy0+ZmlsdGVyIFslMHhd -CgAAAAAAAABwb2Zjb2UgaW5pdCBkb25lCgAAAAAAAAAAAAAAAAAAAHBvcnRfaW5pdCBwb3J0JWQg -cHR5cGUgMHgleAoAAAAAUG9ydFsldV06IFVua25vd24gU0dNSUkgc3ViLXR5cGUgJSN4CgAAAAAA -AAAAAAAAUG9ydFsldV06IFVua25vd24gQlRfWEZJIHN1Yi10eXBlICUjeAoAAAAAAAAAAAAAUG9y -dFsldV06IFVua25vd24gQlRfWEFVSSBzdWItdHlwZSAlI3gKAAAAAAAAAAAAcG9ydF9pbml0WyV1 -XTogcG9ydCB0eXBlIDB4JXggaXMgbm90IHN1cHBvcnRlZAoAbXBhcnRpdGlvbl9pbml0OiBtb3Zl -ZCBwbXJ4X3N0YXJ0IGZyb20gMHglMDh4IHRvIDB4JTA4eCB0byBtYWtlIHJvb20gZm9yIExFIEhB -U0ggYW5kL29yIFRQIFRDQnMKAAAAAAAAAAAAAAAAAAAAAG1wYXJ0aXRpb25faW5pdDogbW92ZWQg -cG1yeF9zdGFydCBmcm9tIDB4JTA4eCB0byAweCUwOHggKEVEUkFNKQoAAAAAAAAAAAAAAAAAAAAA -RVEgcGZuICV1IHZmbiAldTogZGVzdHJveWluZyBlcWlkICV1IHdpdGggcGVuZGluZyBXUihzKSAo -bnVtX2J5dGVzICV1IGFuZCBmbGFncyAweCUwOHgKAAAAAAAAAAAAbDJkZXZfZmMtPmZsb3djX2lk -IFsldV0sIGwyZGMtPnBmbiBbJXVdLCBsMmRjLT52Zm4gWyV1XSwgbDJkYy0+bHBvcnQgWyV1XSwg -bDJkZXZfZmMtPmZsb3dpZCBbJXVdIGwyZGMtPnR4X2NoIFsldV0sIGRldi52cGQucG9ydHZlYyBb -JXhdCgAAAAAAAAAAcG9ydHZlYyBbJXVdCgAAAGwyZGV2X3ZpX2ZzbTogbWIgWzB4JXhdLCBkZWZl -cnJlZCwgc3RhdGUgWzB4JXhdLCBwb3J0IFsweCV4XQoAAABsMmRldl92aV9mc206IHZpaWQgWzB4 -JXhdIHBvcnQgWzB4JXhdLCBtYWMtaWQgWyUwMng6JTAyeDolMDJ4OiUwMng6JTAyeDolMDJ4XS4g -CgAAAAAAAAAAAAAAAAAAAABsMmRldl92aV9mc206IHNnZV9lcWlkIFsweCV4XSwgc2dlX2lxaWQg -WzB4JXhdLCBzZ2VfZXFjciBbMHgleF0sIHJzc19zeiBbMHgleF0KAGwyZGV2X3ZpX2ZzbTogbDJk -ZXZfZmMtPmZsb3djX25ldF9sMmRldl9tdHUgWyV1XSwgbWJfc2NyYXRjaCBbMHgleF0sIHBvcnQg -WzB4JXhdCgAAAAAAAAAAAAAAAAAAAGwyZGV2X3ZpX2ZzbTogdmlpZCBbJWRdLCB2aV9mYy0+Zmxv -d2NfdmlfZmxhZ3MgWzB4JXhdCgAAAAAAAAAAAABsMmRldl92aV9mc206IHBmbiBbMHgleF0sIHZm -biBbMHgleF0sIGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIGxwb3J0IFsweCV4XSwgdmlpZCBb -MHgleF0sIGZsYWdzIFsweCV4XQoAAAAAAAAAbDJkZXZfdmlfZnNtOiBFcnJvciBmcmVlaW5nIFZJ -LCByYyBbMHgleF0KAAAAAAAAbDJkZXZfdmlfZnNtOiBwaWQgWzB4JXhdLCB2aWlkIFsweCV4XSwg -bWJfbG9jIFsweCV4XSwgbWJfb3JpZ1sweCV4XSwgbDJkZXZfZmxhZ3MgWzB4JXhdLCByYyBbMHgl -eF0KAAAAAAAAAAAAAAAAAEFoIGhhLi4uZG91YmxlIGZyZWUgb3hfaWQgMHgleCwgcnhfaWQgMHgl -eAoAAAAAAEhvc3QgUFJMSSBSZXNwb25zZSB0aW1lZG91dDogb3hfaWQgMHgleCByeF9pZCAweCV4 -CgAAAAAAAAAAAAAAAABwZm4gJXUgdmZuICV1IHZpYSBjb21tYW5kCgAAAAAAAGNvbmZpZ3VyYXRp -b24gZmlsZSBwYXJzZXI6IGFuX2FlY190aW1lIHZhbHVlICVkIGlzIGJpZ2dlciB0aGFuIGFsbG93 -ZWQgbGltaXQuQ2hhbmdpbmcgaXQgdG8gMTAwMDAgbXMuCgAAAAAAAAAAAABEZXByZWNhdGVkIGNv -bmZpZyBvcHRpb24gZm91bmQgaW4gY29uZmlnIGZpbGUuIElnbm9yaW5nLi4KAAAAAAAAc2NoZWRf -aW9xdHhfYnBfcHJpb3JpdHk6IGhhcyAldSBlbnRyaWVzIG9ubHksIHJlcXVpcmVzICV1IGVudHJp -ZXMKAAAAAAAAAAAAAAAAAAB0cF9iYWNrb2ZmOiBwYXJzZWQgJWQgaW5zdGVhZCBvZiAldSBlbnRy -aWVzCgAAAAB0cF90aW1lcnZhbHM6IHBhcnNlZCAlZCBpbnN0ZWFkIG9mICV1IGVudHJpZXMKAAB0 -cF90aW1lcnJlczogcGFyc2VkICVkIGluc3RlYWQgb2YgJXUgZW50cmllcwoAAAB0cF9tdHVzIGhh -cyAldSBlbnRyaWVzIG9ubHksIHJlcXVpcmVzICV1IGVudHJpZXMKAAAAAAAAAAAAAAAAAAAAdHBf -bXR1c1sldV0gaXMgJXUgYnl0ZXMgd2hpY2ggaXMgbm90IHN1cHBvcnRlZAoAY29uZmlndXJhdGlv -biBmaWxlIHBhcnNlcjogc2dlIHRpbWVyIHZhbHVlWyVkXSBpcyB0b28gbGFyZ2UsIGNoYW5naW5n -IGZyb20gJXUgdG8gJXV1c2VjcwoAAAAAAAAAZmlsdGVybWFzayAweCV4IGlzIG5vdCBlcXVhbC9z -dWJzZXQgdG8vb2YgZmlsdGVybW9kZQoAAAAAAAAAAAAAAGh3X2xlX2NsaXBfaGFuZGxlcjogcmVt -b3ZlZCBwb3M9JXUgKD1pZHggJXUpCgAAAGh3X2xlX2NsaXBfaGFuZGxlcjogYWRkaW5nIHRvIHBv -cz0ldSAoPWlkeCAldSkKAG1vZHVsZVsldV06IHBvcnQgbW9kdWxlIGluc2VydGVkIGFuZCByZWFk -eQoAAAAAAG1vZHVsZVsldV06IHBvcnQgbW9kdWxlIHJlbW92ZWQKAAAAAAAAAAAAAAAAAAAAAG1v -ZHVsZVsldV06IHVua25vd24gbW9kdWxlIGlkZW50aWZpZXIgMHglMDJ4CgAAAG1vZHVsZVsldV06 -IGdwaW8gJXUgdHJhbnMgMTBHIDB4JTAyeCAxRyAweCUwMnggKGxlbmd0aCAldSkgY2FibGUgMHgl -MDJ4IChsZW5ndGggJXUpIG1vZHVsZV90eXBlIDB4JTAyeAoAAAAAAAAAAABtb2R1bGVbJXVdOiBn -cGlvICV1IHRyYW5zIDEwRyAweCUwMnggMUcgMHglMDJ4IChsZW5ndGggJXUpIGNhYmxlIDB4JTAy -eCAobGVuZ3RoICV1KSBtb2R1bGVfdHlwZSAweCUwMngKAAAAAAAAAAAAcGZuICV1IHZmbiAldSBG -U00gc3RhcnQKAAAAAAAAAABwZm4gJXUgdmZuICV1IEZTTSBjb21wbGV0ZQoAAAAAAGZscl9wZnZm -X2ZzbVsldToldV06IHVua25vd24gc3RhdGUgJXUKAAAAAAAAAAAAAGh3IHBmIGJpdG1hcCAweCUw -MnggdmZpZCBiaXRtYXAgMHglMDh4OjB4JTA4eDoweCUwOHg6MHglMDh4CgAAAABhZnRlciB2Zmlk -IGZpeHVwLCB2ZmlkIGJpdG1hcCAweCUwOHg6MHglMDh4OjB4JTA4eDoweCUwOHgKAAAAAAAAdGlt -ZXIgcXVldWUgJXUgbG9zdCBhIHRpY2shIG5leHQgJXAgbGFzdCAlcCBudW1lICV1CgAAAAAAAAAA -AAAAAGZscl90aW1lcl9zdGFydDogZmxvd2NfaWQgJXUgJXAgYnVmICVwCgAAAAAAAAAAAHBjaWU6 -IG5wZiAldSAocGZiaXRtYXAgMHglMDJ4KSBudmYgJXUgKHBmIDAuLjcgMHglMDh4JTA4eCkgdmZz -dHJpZGUgJXUKAAAAAAAAAAAAaHdfZ3Bpb19wcmVwOiBlcnJvciwgcmV0ICVkCgAAAABmYWlsZWQg -dG8gZmluZCB0aGUgJWMlYyBWUEQgcGFyYW1ldGVyCgAAAAAAAAAAAABmYWlsZWQgdG8gcGFyc2Ug -dGhlICVjJWMgVlBEIHBhcmFtZXRlcgoAAAAAAAAAAABtZW1fcHJlcDogZXJyb3IsIHJldCAlZAoA -AAAAAAAAAGZhaWxlZCB0byBzdWNjZXNzZnVsbHkgZmluZCBDaGVsc2lvIFZQRAoAAAAAAAAAAHZw -ZF9wcmVwOiBlcnJvciwgcmV0ICVkCgAAAAAAAAAAc2VyY2ZnX3ByZXA6IGVycm9yLCByZXQgJWQK -AAAAAABsb2cgaW5pdGlhbGl6ZWQgQCAweCUwOHggc2l6ZSAldSAoJXUgZW50cmllcykgZndyZXYg -MHglMDh4IHBjaWVfZncgMHglMDh4CgAAAAAAAGdhdGhlcl90YXNrc19mb3JfdG1mOiBpZHggWzB4 -JXhdLCB0YXNrLWlkIFsweCV4XSwgY21kLWlkIFsweCV4XSwgYWN0aXZlIHRhc2tzIFsweCV4XS4g -Y29ubi1pZCBbMHgleF0sIGNtZCBjb25uLWlkIFsweCV4XSwgdGFzayBjb25uLWlkIFsweCV4XQoA -AGdhdGhlcl90YXNrc19mb3JfdG1mOiBJbnZhbGlkIHR5cGUgWzB4JXhdLCBiYWlsaW5nIG91dC4K -AAAAAAAAAABnYXRoZXJfdGFza3NfZm9yX3RtZjogdGFzayBpZCBbMHgleF0sIHN0YXRlIFsweCV4 -XSwgbGlkeCBbMHgleF0sIGNvb2tpZSBoaSBbMHglMDh4XSA6IGxvIFsweCUwOHhdCgAAAAAAAAAA -AAAAAAAAZ2F0aGVyX3Rhc2tzX2Zvcl90bWY6IHJjIFsweCV4XSwgWzB4JXhdIHRhc2sgZ2F0aGVy -ZWQgZm9yIHRtZiB0eXBlIFsweCV4XSBwcm9jZXNzaW5nLgoAAAAAAAAAAAAAc2NzaV9kYXRhX291 -dDogY29ubl9mYyBbMHgleF0sIHN0YXRlIFsweCV4XSwgc2Vzc19mYyBbMHgleF0gaW4gcmVjb3Zl -cnkuIFNraXBwaW5nIGlzdGFza19mYyBbMHgleF0gZnJvbSBUWC4KAAAAAHNlbmRfbXNnX3BsZDog -ZmMgeyBpZCBbMHgleF0sIGZsYWdzIFsweCV4XSwgYnVmZmVyZWQgWyV1XS4gfQoAAABzZW5kX21z -Z19wbGQ6IHNlc3MgeyBpZCBbMHgleF0gfSwgdWxwdHhjaCBbJXVdIG5vIGNyZWRpdHMgYXZhaWxh -YmxlLCByZXNjaGVkdWxpbmcgcmVxdWVzdC4KAAAAAABzZW5kX2Fib3J0X3JlcTogY3NrX2ZjLT5m -bG93Y190eXBlIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIHRpZCBbMHgleF0sIHVs -cHR4Y2ggWyV1XSwgYnVmZmVyZWQgWyV1XQoAAAAAZmNfc2VuZF9hbGxvY19jcGw6IGZhaWxlZCB0 -byBzZXR1cCBmaWx0ZXIgY3R1cGxlCgAAAAAAAAAAAAAAAAAAAGZjb2VfY29tcHV0ZV9jdHVwbGUg -MHgleDoleAoAAAAAY29tcHV0ZV9jdHVwbGUoKTogZmFpbGVkIHRvIHNldHVwIGZpbHRlciBjdHVw -bGUKAAAAAAAAAAAAAAAAAAAAAEZDb0UgRkNCIGxpbmtkb3duOiBpb19yZXEgMHgleCV4IGlxaWQg -MHgleCBmbG93aWQgMHgleCBvcCAweCV4CgBmY29lIG5vdGlmeSA6IFVwZGF0ZSBuZXcgRENCWCB2 -YWx1ZXMgVkkgc3RhdGUgMHgleCBwcmkgMHgleCBzY2hlZGNsIDB4JXggZGNieF9kb25lIDB4JXgK -AAAAAAAAAABmY29lIG5vdGlmeSA6IEZDRiBmbG93aWQgMHgleCwgdWxwY2ggMHgleCAKAAAAAABm -Y29lIG5vdGlmeSA6IEZDb0UgTElOS1VQOiBwb3J0IDB4JXgsIGV2ZW50IDB4JXgKAAAAAAAAAAAA -AAAAAAAAZmNvZSBub3RpZnkgOiBGQ29FIExJTktET1dOOiBwb3J0IDB4JXgsIGV2ZW50IDB4JXgK -AAAAAAAAAAAAAAAAAGZjb2Ugbm90aWZ5IDogRENCWCA6IHBvcnQgMHgleCwgcHJpb3JpdHkgMHgl -eCB1bHB0eGNoIDB4JXggY2xhc3MgMHgleAoAAAAAAAAAAAAAUkRFViBtc2cgZmxvd2M6JXggc3Rh -dGUgMHgleCBldmVudCAweCV4CgAAAAAAAAAAY2FuY2VsIGZjYjoleCBzY2I6JXggc3RhdGU6JXgK -AABGQ29FIEZDRiB0aW1lcjogZmxvd2Mgc3RhdGUgMHgleCwgcG9ydCAweCV4ICxmY2YgMHgleCwg -Zmxvd2NfaWQgMHgleAoAAAAAAAAAAAAAAGh3IHJlZ2lzdGVyIG9wZXJhdGlvbiBub3QgY29tcGxl -dGluZywgcmVnIDB4JTA4eCBtYXNrIDB4JTA4eCB2YWx1ZSAweCUwOHggKHJlZyAweCUwOHgpCgAA -AAAAAAAAAE1ESU8gQ0w0NTogZmFpbGVkIHRvIHNldCB1cCBNTUQgYWRkcgoAAAAAAAAAAAAAAE1E -SU86IGZhaWxlZCB0byB3cml0ZQoAAAAAAAAAAAAATURJTyBDTDQ1OiBmYWlsZWQgdG8gc2V0IHVw -IE1NRCBhZGRyCgAAAAAAAAAAAAAATURJTzogZmFpbGVkIHRvIHJlYWQKAAAAAAAAAAAAAAAJQVFf -VGFrZUNvbnRyb2xPZkZMQVNIOiAxZS5jMDAxPSUjeCAxZS5jNDUwPSUjeCAxZS5jNDUxPSUjeCAx -ZS4xMDA9JSN4CgAAAAAAAAAAAEFRX0FQSV9Xcml0ZUFuZFZlcmlmeUZsYXNoSW1hZ2UgLSBJbWFn -ZSBpbnRlZ3JpdHkgY2hlY2sgZmFpbGVkIChjYWxjICUjeCB2YWwgJSN4KQoAAAAAAAAAAAAAAAAA -AEFRX0FQSV9Xcml0ZUFuZFZlcmlmeUZsYXNoSW1hZ2UgLSBJbWFnZSBpbnRlZ3JpdHkgY2hlY2sg -cGFzc2VkCgBBUV9BUElfV3JpdGVBbmRWZXJpZnlGbGFzaEltYWdlIC0gVGltZW91dCB3YWl0aW5n -IGZvciBmbGFzaCBpbnRlcmZhY2UgKCV1KQoAAAAAAEFRX0FQSV9Xcml0ZUFuZFZlcmlmeUZsYXNo -SW1hZ2UgLSBUaW1lb3V0IHdhaXRpbmcgZm9yIGZsYXNoIGludGVyZmFjZSAoJXUpCgAAAAAAQVFf -QVBJX1dyaXRlQW5kVmVyaWZ5Rmxhc2hJbWFnZSAtIFRpbWVvdXQgd2FpdGluZyBmb3IgZmxhc2gg -aW50ZXJmYWNlICgldSkKAAAAAABBUV9BUElfV3JpdGVBbmRWZXJpZnlGbGFzaEltYWdlIC0gVGlt -ZW91dCB3YWl0aW5nIGZvciBmbGFzaCBpbnRlcmZhY2UgKCV1KSAocHAgJSN4IGFwICUjeCkKAAAA -AABBUV9BUElfV3JpdGVBbmRWZXJpZnlGbGFzaEltYWdlIC0gVGltZW91dCB3YWl0aW5nIGZvciBm -bGFzaCBpbnRlcmZhY2UgKCV1KQoAAAAAAEFRX0FQSV9Xcml0ZUFuZFZlcmlmeUZsYXNoSW1hZ2Ug -LSBUaW1lb3V0IHdhaXRpbmcgZm9yIGZsYXNoIGludGVyZmFjZSAoJXUpCgAAAAAAQVFfQVBJX1dy -aXRlQW5kVmVyaWZ5Rmxhc2hJbWFnZSAtIEVycm9yIG9uIGJ1cm5pbmcgRkxBU0ggKGNyYzE2IG1p -c21hdGNoKQoAAAAAAABzZW5kX2Nsb3NlX3JlcTogY3NrX2ZjLT5mbG93Y190eXBlIFsweCV4XSwg -Y3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIGNza19mYy0+dGNiX3N0YXRlIFsweCV4XQoAAABzZW5k -X2Nsb3NlX3JlcTogY3NrX2ZjLT5mbG93Y190eXBlIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19pZCBb -MHgleF0sIHRpZCBbMHgleF0sIHVscHR4Y2ggWyV1XSxidWZmZXJlZCBbJXVdCgAAAAAAb2ZsZF90 -Y3BfZG9fYWN0aXZlX2Nsb3NlOiBjc2tfZmMgWzB4JXhdLCBjc2tfZmMtPmZsb3djX2lkIFsweCV4 -XSwgY3NrX2ZjLT50Y2Jfc3RhdGUgWzB4JXhdCgAAAAAAb2ZsZF90Y3BfZG9fYWN0aXZlX2Nsb3Nl -OiBjc2tfZmMgWzB4JXhdLCBjc2tfZmMtPmZsb3djX2lkIFsweCV4XSwgY3NrX2ZjLT50Y2Jfc3Rh -dGUgWzB4JXhdCgAAAAAAb2ZsZF90Y3BfZGlzY29ubmVjdDogdGNiX2ZjLT5mbG93Y19pZCBbMHgl -eF0sIGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2stPnRjYl9zdGF0ZSBbMHgleF0KAAAAZGVj -b2RlX2Jhc2U2NF9zdHJpbmc6IGRsZW4gWyVkXQoAAAAAAAAAAAAAAAAAAAAAZGVjb2RlX2hleF9z -dHJpbmc6IGRsZW4gWyVkXQoAAABmb2lzY3NpX3ZhbGlkYXRlX2xvZ2luX3N0YWdlOiAtIDEKAAAA -AAAAAAAAAAAAAABhc3luY19wZHU6IGxvZ291dCByZXF1ZXN0ZWQgYmxvY2tpbmcgc2Vzc2lvbgoA -AABhc3luY19wZHU6IHNlc3MvY29ubiBkcm9wIHJlcXVlc3RlZCBibG9ja2luZyBzZXNzaW9uCgAA -AAAAAAAAAAAAY3BsX3R4X3BrdDogdmxhbmlkIFsweCV4XQoAAAAAAABuZXRfbDJkZXZfZmluZF9i -eV9hZGRyOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBsMmRjLT5scG9ydCBbJXVdLCBsMmRf -ZmMtPmZsb3djX2lkIFsweCV4XSwgbDJkYy0+aW40X2Rldi5pbl9hZGRyLmFkZHIgWzB4JXhdLCBh -ZGRyIFsweCV4XQoAAABuZXRfbDJkZXZfbXR1X2NvbmZpZzogbDJkZXZfZmMtPmZsb3djX2lkIFsw -eCV4XSwgbXR1ICV1CgAAAAAAAAAAY3BsX3R4X3BrdDogdmxhbmlkIFsweCV4XQoAAAAAAABlbmNv -ZGUgaGV4IHN0cmluZzogZGxlbiBbJWRdCgAAAGNobmV0X2ZpbmRfbDJ0X2VudHJ5OiBkYWRkciBb -JTA4eF0sIFsweCUwOHhdLCBsb2NhbCBuZXR3b3JrIFslZF0KAAAAAAAAAAAAAAAAAAAAbDJ0ZW50 -IFslMHhdLCBsMnRlbnQtPmlkeCBbJWRdCgB0Y3Bfc2VuZF9hb3Blbl9yZXE6IGNza19mYy0+Zmxv -d2NfaWQgWzB4JXhdLCBjc2tfZmMtPmZsb3djX3N0YXRlIFsweCV4XSwgYnVmZmVyZWQgWyV1XSwg -cmVzX2NudCBbMHgleF0sIGlxX2lkeCBbMHgleF0KAAAAAAAAAAAAAHRjcF9zZW5kX2FvcGVuX3Jl -cTogY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIGNza19mYy0+Zmxvd2Nfc3RhdGUgWzB4JXhdLCBu -byB2YWxpZCBsMnRfZW50eS4gRGVsYXlpbmcgYW5vdGhlciByZXRyeSBmb3IgMSBzZWNvbmRzLgoA -AAAAAAAAAAAAAAAAAGFvcGVuX3JlcTogaHdfbGVfZmlsdGVyX2N0dXBsZSBmYWlsZWQKAAAAAAAA -AAAAAG9mbGRfdGNwX3NlbmRfYW9wZW5fcmVxOiBjcGxfcmVxLT5GaWx0ZXIgWzB4JTB4XSwgY3R1 -cGxlc1swXSBbMHgleF0sIGN0dXBsZXNbMV0gWzB4JXhdCgAAAAAAAAAAAGxhZGRyX3JldDogbDJk -Yy5hZGRyIDoweCV4LCBzcmNfYWRkcjoweCV4CgAAAAAAAGNzb2NrX2FsbG9jOiBzcmNfYWRkcjow -eCV4LCBkc3RfYWRkcjoweCV4CgAAAAAAAGNza19hbGs6IEludmFsaWQgbDJkZXY6MHgleAoAAAAA -Y3NrX2FsazogbmV4dDoldSwgaWR4OiV1LCB1c2VkOiV1LCBzcG9ydDoldQoAAAAAY3NvY2tfYWxs -b2M6IGNzb2NrX3NyY19hZGRyOjB4JXgsIGNzb2NrX2RzdF9hZGRyOjB4JXgKAAAAAAAAAAAAAGNz -b2NrX2FsbG9jOiB0eF9jaCBbMHgleF0sIGxwb3J0IFsweCV4XSwgY29va2llIFslMDh4XQoAAAAA -AAAAAABjc29ja19hbGxvYzogYXZhaWxhYmxlIFsldV0sIG5jc29jayBbJXVdLCBwb3M6YXRpZCBb -MHgleF0sIGNza19mYyBbMHgleF0sIGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBzcG9ydCBbJXVd -CgAAaXR0X3RvX3Rhc2tfaWR4OiB0YWcgWzB4JTA4eF0sIGhpIFsldV0sIGxvIFsldV0sIG5tYXNr -Yml0cyBbJXVdLCB0YXNrX2lkeCBbJXVdCgBXQVRDSERPRzogTm8gdGVtcGVyYXR1cmUgc2Vuc29y -IGF2YWlsYWJsZS4KAAAAAABXQVRDSERPRzogQWN0aXZhdGluZwoAAAAAAAAAAAAAAFdBVENIRE9H -IC0gRW5hYmxlIGFjdGlvbiAldSB0aW1lICV1CgAAAAAAAAAAAAAAAFdBVENIRE9HIC0gRGlzYWJs -ZSBhY3Rpb24gJXUKAAAAV0FUQ0hET0c6IERlLWFjdGl2YXRpbmcKAAAAAAAAAABwb3J0WyV1XSBz -ZXQgUEFVU0UgUEFSQU1TOiBwcHBlbiAldSB0eHBlICUjeCByeHBlICUjeAoAAAAAAAAAAAAAbXBz -X2xpbmtfdXBbJXVdIGFjYXBzICUjeCAoODAyLjMgJSN4KSArIGxwYWNhcHMgJSN4ID0+ICUjeAoA -AAAAAGZvaXNjc2kgY29ubl9mYyBbMHgleF0sIGZsb3djX3NjaGVkY2wgWzB4JXhdLCBpbmdfY2gg -WzB4JXhdLCBlZ3JfY2ggWzB4JXhdCgAAAAAAbDJkZXZfbm90aWZ5IHdpdGggdW5rbm93biBmbGFn -IFsweCV4XQoAAAAAAAAAAAAAY2hfY2xfcmF0ZVsldS8ldV06IGNhcHBlZCBkZWZpY2l0X2luY3Ig -ZnJvbSByZXF1aXJlZCAldSB0byAldTsgcmF0ZSAldSAoZWZmICV1KSBkZWZpY2l0X21heCAldQoA -RENCWDogc3VtIG9mIHJhdGVzIG9uIGFsbCBjbGFzc2VzIG11c3QgYmUgMTAwIChhY3R1YWw6ICV1 -KQoAAAAAAHdvcmthcm91bmQxMzcyMzogZGV0ZWN0ZWQgV1IgQCAweCUwOHggb2Ygc2l6ZSAldSBi -eXRlcywgZHJpYmJsaW5nIGl0IGluICV1IGJ5dGVzIGF0IGEgdGltZQoAAAAAAHJpX3dyX2luaXRb -JXVdOiBtc3MgJXUgaXMgbm90IDgtYnl0ZSBhbGlnbmVkCgAAAGNvcmVfcHJvZ3JhbV90Y2I6IHRp -ZCAlI3ggdF9zdGF0ZSAlI3ggcmN2X2FkdiAweCUwOHggcmN2X3NjYWxlICUjeCB0eF9tYXggJSN4 -IHJjdl9ueHQgJSN4IGF0aWQgJSN4CgAAAAAAAAAAAAAAAAAJb3B0MCAlI3gleCBvcHQyICUjeCBp -cHY2ICUjeCBmbGFnc190aW1lciAweCUwOHgKAAAAAAAAAAAAAAAAAAAAb2ZsZF9jb25uZWN0aW9u -X3dyOiBjb25uZWN0aW9uIHdpdGggNS10dXBsZSBscCAweCUwNHggZnAgMHglMDR4IGxpcCAweCUw -OHglMDh4IHBpcCAweCUwOHglMDh4IGZpbHRlciAweCUwOHggZXhpc3RzIEAgTEUgaW5kZXggJXUK -AAAAAAAAAAAAAAAAAAAAb2ZsZF9jb25uZWN0aW9uX3dyOiBjb25uZWN0aW9uIHdpdGggNS10dXBs -ZSBscCAweCUwNHggZnAgMHglMDR4IGxpcCAweCUwOHggcGlwIDB4JTA4eCBmaWx0ZXIgMHglMDh4 -IGV4aXN0cyBAIExFIGluZGV4ICV1CgAAAAAAAABvZmxkX2Nvbm5lY3Rpb25fd3I6IGNvbm5lY3Rp -b24gd2l0aCA1LXR1cGxlIGxwIDB4JTA0eCBmcCAweCUwNHggbGlwIDB4JTA4eCUwOHggcGlwIDB4 -JTA4eCUwOHggZmlsdGVyIDB4JTA4eAoAAAAAb2ZsZF9jb25uZWN0aW9uX3dyOiBjb25uZWN0aW9u -IHdpdGggNS10dXBsZSBscCAweCUwNHggZnAgMHglMDR4IGxpcCAweCUwOHggcGlwIDB4JTA4eCBm -aWx0ZXIgMHglMDh4CgAAAAAAAAAAAAAAAElRRkxJTlQgcGZuICV1IHZmbiAldTogaXFpZCAldSB0 -b28gbGFyZ2UgKG1heCAldSkKAAAAAAAAAAAAAAAAAABJUUZMSU5UIHBmbiAldSB2Zm4gJXU6IGlx -aWQgJXUgbm90IGFsbG9jYXRlZAoAAABJUUZMSU5UIHBmbiAldSB2Zm4gJXU6IGZsMGlkICV1IHRv -byBsYXJnZSAobWF4ICV1KQoAAAAAAAAAAAAAAAAASVFGTElOVCBwZm4gJXUgdmZuICV1OiBmbDBp -ZCAldSBub3QgYWxsb2NhdGVkCgAASVFGTElOVCBwZm4gJXUgdmZuICV1OiBmbDFpZCAldSB0b28g -bGFyZ2UgKG1heCAldSkKAAAAAAAAAAAAAAAAAElRRkxJTlQgcGZuICV1IHZmbiAldTogZmwxaWQg -JXUgbm90IGFsbG9jYXRlZAoAAElRRkxJTlQgcGZuICV1IHZmbiAldTogZmwxaWQgJXUgaXMgdmFs -aWQgYnV0IG5vdCBmbDBpZCAldQoAAAAAAABJUUZMSU5UIHBmbiAldSB2Zm4gJXU6IGZsMWlkICV1 -IGlzIHZhbGlkIGJ1dCBoZWFkZXIgc3BsaXQgZmVhdHVyZSBpcyBub3QgZW5hYmxlZAoAAAAAAAAA -AAAAAAAAAABod191bHB0eF93b3JrYXJvdW5kX3ByMTY5NDlfZW5hYmxlZF92ZmlkOiB2ZmlkICV1 -IGVuYWJsZWQgJXUKAAAARVEgcGZuICV1IHZmbiAldTogY3JlYXRpbmcgRVRIIGVxaWQgJXUgd2l0 -aCBwZW5kaW5nIFdSKHMpIChudW1fYnl0ZXMgJXUgYW5kIGZsYWdzIDB4JTA4eAoAAAAAAAAARVEg -cGZuICV1IHZmbiAldTogY3JlYXRpbmcgQ1RSTCBlcWlkICV1IHdpdGggcGVuZGluZyBXUihzKSAo -bnVtX2J5dGVzICV1IGFuZCBmbGFncyAweCUwOHgKAAAAAAAARVEgcGZuICV1IHZmbiAldTogZXFp -ZCAldSB0b28gbGFyZ2UgKG1heCAldSkKAAAARVEgcGZuICV1IHZmbiAldTogZXFpZCAldSBub3Qg -YWxsb2NhdGVkCgAAAAAAAAAAaHdfY2ltX3RwX3dvcmthcm91bmQxMzcyM19lbmFibGU6IHBvcnQg -JXUgcHJvdG9jb2wgMHgleCBlbiAldSBjdXJyZW50IDB4JXggd29ya2Fyb3VuZF9wcjEzNzIzIDB4 -JXggbmV4dCAweCV4CgAAAGRjYnhfcG9wdWxhdGVfY3RybCBjb2RlIGluY29tcGxldGUKAAAAAAAA -AAAAAAAAAHZpX3RjYW1fcmF3IGlkeCAldSBtYWMgMHglMDR4ICUwOHgKAAAAAAAAAAAAAAAAAHBv -cnRfYmxpbmtfbGVkX3Jlc3RvcmUKAAAAAAAAAAAAcG9ydF9ibGluazogYmxpbmtkdXI9MHgleCBi -bGlua19yZWZjbnQKAAAAAAAAAAAAcG9ydF9ibGluazogCWJsaW5rX3JlZmNudD0weCV4CgBwb3J0 -X2JsaW5rOiAJYmxpbmtfcmVmY250PTB4JXgKAG1paV9hZHZfZmNbJXVdOiByY2FwcyAweCV4CgAA -AAAAbWlpX2Fkdl9zcGVlZFsldV06IHJjYXBzIDB4JXgKAABtaWlfaW5pdFsldV06IGFjYXBzIDB4 -JXgKAAAAAAAAAHBvcnRbJXVdOiBnYXZlIHVwIGZpeGluZyBlcnJvcnMhISEKAAAAAAAAAAAAAAAA -AG1paV9hbnJlc3RhcnRbJXVdOiBhY2FwcyAweCV4CgAAaHdfeGdtX3BvcnRfbHBiayBwb3J0ICV1 -IHB0eXBlICUjeCBhY3Rpb24gJSN4CgAAcG9ydF9jbWRfaGFuZGxlcjogdW5rbm93biB1LmRjYi50 -eXBlIDB4JXgKAAAAAAAAcG9ydFsldToweCUwMng6MHglMDJ4XTogbDFjZmcsIGludmFsaWQgcmVx -dWVzdCwgcGNhcHMgMHgleCBhY2FwcyAweCV4IHJjYXBzIDB4JXgKAAAAAAAAAAAAAAAAAAAAcG9y -dFsldToweCUwMng6MHglMDJ4XTogbDFjZmcsIHBjYXBzICUjeCBhY2FwcyAlI3ggcmNhcHMgJSN4 -IG1jYXBzICUjeAoAAAAAAAAAAABwb3J0WyV1XTogbDFjZmcsIHVuc3VwcG9ydGVkIEZFQywgcmNh -cHMgJSN4CgAAAABwb3J0WyV1OjB4JTAyeDoweCUwMnhdOiBsMWNmZywgbWRpIGlzc3VlIHBjYXBz -IDB4JXggYWNhcHMgMHgleCByY2FwcyAweCV4CgAAAAAAAHBvcnRbJXU6MHglMDJ4OjB4JTAyeF06 -IGwxY2ZnLCBjYW5ub3QgZm9yY2Ugbm8vbXVsdGlwbGUgc3BlZWQocyksIHBjYXBzIDB4JXggYWNh -cHMgMHgleCByY2FwcyAweCV4CgAAAAAAAAAAAAAAAABiYWQgRmxvd0MgJWQgb24gZXN0YWJsaXNo -ZWQgY29ubmVjdGlvbgoAAAAAAAAAAABldGhfZmxvd2NfaGFuZGxlclsweCV4XTogZmxhZ3MgMHgl -MDh4IG51bV9ieXRlcyAldSBzY2hlZGNsIDB4JXggLT4gMHgleAoAAAAAAAAAAHRhc2tfaWR4X3Rv -X2l0dDogdGFza19pZHggWyV1XSwgaGkgWyV1XSwgbG8gWyV1XSwgbm1hc2tiaXRzIFsldV0sIHN3 -X3RhZyBbMHglMDh4XSwgcHBvZF9pZHggWyVkXQoAAAAAAAAAAAAAAAAAAABzY3NpX2NtZDogcmVj -ZWl2ZWQgVE1GIG9wIFsweCV4XSBmdW5jIFsweCV4XSBvbiBjb25uIFsweCV4XSB0aHJvdWdoIGNv -bW1hbmQgcGF0aC4KAAAAAAAAAAAAAAAAAABzY3NpX2NtZDogY29ubl9mYyBbMHgleF0sIHN0YXRl -IFsweCV4XSwgc2Vzc19mYyBbMHgleF0gaW4gcmVjb3ZlcnkuIFNraXBwaW5nIGlzdGFza19mYyBb -MHgleF0gZnJvbSBUWC4KAAAAAAAAAAAAc2NzaV9yZWFkOiBjb25uX2ZjIFsweCV4XSwgc3RhdGUg -WzB4JXhdLCBzZXNzX2ZjIFsweCV4XSBpbiByZWNvdmVyeS4gU2tpcHBpbmcgaXN0YXNrX2ZjIFsw -eCV4XSBmcm9tIFRYLgoAAAAAAAAAAHNjc2lfd3JpdGU6IGNvbm5fZmMgWzB4JXhdLCBzdGF0ZSBb -MHgleF0sIHNlc3NfZmMgWzB4JXhdIGluIHJlY292ZXJ5LiBTa2lwcGluZyBpc3Rhc2tfZmMgWzB4 -JXhdIGZyb20gVFguCgAAAAAAAABkY2J4X2NvbnRyb2xfc21bJXVdIENPTlRST0xfTElOS1VQCgAA -AAAAAAAAAAAAAABkY2J4X2NvbnRyb2xfc21bJXVdIENPTlRST0xfVVBEQVRFX0RDQlhfVExWCgAA -AABkY2J4X2NvbnRyb2xfc21bJXVdIENPTlRST0xfUEVFUl9OT1RfQURWRVJUSVNFX0RDQlgKAAAA -AAAAAAAAAAAAZGNieF9jb250cm9sX3NtWyV1XSBDT05UUk9MX1VQREFURV9PUEVSX1ZFUlNJT04K -AAAAAAAAAAAAAAAAAAAAAGRjYnhfY29udHJvbF9zbVsldV0gQ09OVFJPTF9QUk9DRVNTX1BFRVJf -VExWCgAAAGRjYnhfY29udHJvbF9zbVsldV0gQ09OVFJPTF9BQ0tfUEVFUgoAAAAAAAAAAAAAAGRj -YnhfaWVlZV92YWxpZGF0ZVsldV0gZXJyb3IgKG91aSAlI3ggc3VidHlwZSAlI3ggbGVuICUjeCkK -AAAAAABkY2J4X2NlZV92YWxpZGF0ZVsldV0gZXJyb3IKAAAAAHByb2Nlc3NfZGhjcF9vcHRzOiBy -b290IHBhdGggbGVuIFslZF0gYnl0ZXMKAAAAAG5ldGlmX3Byb2Nlc3NfZGhjcF9vcHRzOiBsMmRl -dl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBNU0dfVFlQRSBbJWRdLCBkaGN0eHQtPnN0YXRlIFslZF0K -AAAAAAAAAAAAAGljbXBfcmVjdjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgcGlkIFsweCV4 -XSwgaWNtcCB0eXBlIFsweCV4XQoAAAAAAAAAAAAAAAAAdm4ydm46IHBvcnQgMHgleCBkaWQ6MHgl -eCV4JXggVVAKAAAAAAAAAAAAAAAAAAAAdm4ydm46IHBvcnQgMHgleCBkaWQ6MHgleCV4JXggRE9X -TgoAAAAAAAAAAAAAAAAAZmNfc2VuZF9hbGxvY19jcGw6IGZhaWxlZCB0byBzZXR1cCBmaWx0ZXIg -Y3R1cGxlCgAAAAAAAAAAAAAAAAAAAGZjb2VfY29tcHV0ZV9jdHVwbGUgMHgleDoleAoAAAAAY29t -cHV0ZV9jdHVwbGUoKTogZmFpbGVkIHRvIHNldHVwIGZpbHRlciBjdHVwbGUKAAAAAAAAAAAAAAAA -AAAAAGZjb2VfY29tcHV0ZV9jdHVwbGUgdmxhbiAleCB2aWlkICV4IHBvcnQgJXggbXBzX2lkeCAl -eAoAAAAAAAAAAABBQlRTIEFDQyBhd2FpdGluZyBQUkxJIFJzcDogZmxvd2NfaWQgMHgleCBveF9p -ZCAweCV4IHJ4X2lkIDB4JXggaXFpZCAweCV4CgAAAAAAAHBvcnQgMHgleCwgc3RhdGUgMHgleCwg -Y29tbWFuZCBmYWlsZWQgcmV0cmllcyAweCV4CgAAAAAAAAAAAAAAAABhcnBfcmVjdjogaXBpZCBb -MHgleF0sIGluX2FkZHIuYWRkciBbMHgleF0sIHNpcCBbMHgleF0sIHJpcCBbMHgleF0sIGFycF9v -cCBbMHgleF0KAAAAAAAAAAAAAAAAAABjaG5ldF9hcnBfcmVjdjogaXAgY29uZmxpY3QgZGV0ZWN0 -ZWQKAAAAAAAAAAAAAABjaG5ldF9hcnBfcmVjdjogcGlkIFsldV0sIHZsYW4gWzB4JXhdLCBhcnAg -b3AgWzB4JXhdLCBzaXAgWzB4JXhdLCByaXAgWzB4JXhdCgAAAGNzb2NrX2ZyZWU6IHNpemVvZihj -c2tfZmMtPnUuY3NvY2spIFsldV0sIGJ5dGVzCgAAAAAAAAAAAAAAAAAAAABHb3QgQ09OTl9FWElT -VCBmb3IgeGlkOjB4JXgsIHRhZzoweCV4LCByZXRyeWluZy4KAAAAAAAAAAAAAAAAAAAAY3NvY2tf -cGVlcl9jbG9zZTogY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIHRjYl9mYy0+Zmxvd2NfaWQgWzB4 -JXhdLCBjc2tfZmMtPmZsb3djX3N0YXRlIFsweCV4XSwgdGNiX2ZjLT5mbG93Y19zdGF0ZSBbMHgl -eF0KAAAAAABjc29ja19wZWVyX2Nsb3NlOiBjc2tfZmMtPmZsb3djX2lkIFsweCV4XSwgY3NrX2Zj -LT5mbG93Y19zdGF0ZSAgWzB4JXhdCgAAAAAAAAAAAHRjcF9jbHNfYWJydF9ycGw6IHRjYiB0aWQg -WzB4JTA2eF0sIGZsb3djX3R5cGUgWzB4JXhdLCBjcGxvcCBbMHgleF0gZmxvd2Nfc3RhdGUgMHgl -eAoAAAAAAAAAAAAAAGNoX3JhdGVbJXVdOiBjYXBwZWQgdGljayBmcm9tIHJlcXVpcmVkICV1IHRv -IHN1cHBvcnRlZCAldTsgcmF0ZSAldSAoZWZmICV1KSBkZWZpY2l0X2luY3IgJXUgdGljayAldQoA -AAAAAAAAAAAAAABwa3RzY2hlZF9jaF9ybFsldV06IGNoYW5uZWwgcmwgbm90IGF2YWlsYWJsZSBp -biBjb25qdW5jdGlvbiB3aXRoIGZsb3cgc2hhcGluZwoAAHBrdHNjaGVkX2NoX3JsWyV1XTogcmF0 -ZSAldSBtYXggJXUKAAAAAAAAAAAAAAAAAHBrdHNjaGVkX2NsX3dyclsldToldV06IHdlaWdodCAl -dQoAAAAAAAAAAAAAAAAAAGVxX3BhcmFtc1sweCV4OjB4JXhdOiBkbWFxIDB4JXggcmVhZCAldSBw -ZiAldSBlcWlkX2FwaSAldSByZXQgJWQKAAAAAAAAAAAAAAAAAAAAaHdfbWFfYWRkcl90b19tZW1f -dHlwZV9vZmY6IE1BIGFkZHJlc3MgMHglMDh4IGlzIG5vdCBtYXBwZWQKAAAAAGh3X21hX2FkZHJf -dG9fbWVtX3R5cGVfb2ZmOiBNQSBhZGRyZXNzIDB4JTA4eCBtYXBzIHRvIHR5cGUgJXUgb2Zmc2V0 -IDB4JXgKAAAAAAAAbWVtX21hbGxvY190ZW1wOiBmYWlsZWQgdG8gYWxsb2NhdGUgJXUgYnl0ZXMs -IHJldHVybmluZyBOVUxMCgAAAG1lbV9tYWxsb2M6IGZhaWxlZCB0byBhbGxvY2F0ZSAldSBieXRl -cywgcmV0dXJuaW5nIE5VTEwKAAAAAAAAAABsZSBjb25maWd1cmF0aW9uOiBoYXNoIG1vZGUgcmVx -dWlyZXMgYXQgbGVhc3QgMTYgZW50cmllcywgbmhhc2ggJXUKAAAAAAAAAAAAAAAAAGxlIGNvbmZp -Z3VyYXRpb246IGhhc2ggbW9kZSByZXF1aXJlcyBhdCBlbnRyaWVzIHRvIGJlIGEgcG93ZXIgb2Yg -Miwgbmhhc2ggJXUKAAAAbGUgY29uZmlndXJhdGlvbjogcmVxdWVzdGVkICV1IHRjYW0gZW50cmll -cyBidXQgb25seSAldSBhdmFpbGFibGUgKG5yb3V0ZSAldSBuY2xpcCAldSBuZmlsdGVyICV1IG5z -ZXJ2ZXIgJXUKAAAAAGxlIGNvbmZpZ3VyYXRpb246IHRjYW0gcmVnaW9ucyBtdXN0IGhhdmUgbXVs -dGlwbGUgb2YgMzIgZW50cmllcywgbnJvdXRlICV1IG5jbGlwICV1IG5maWx0ZXIgJXUgbnNlcnZl -ciAldQoAAAAAAABod190cF90Y3BfdHVuaW5nczogdHVuaW5nIGZvciBjbHVzdGVyIGVudmlyb25t -ZW50CgAAAAAAAAAAAAAAAAAAaHdfdHBfdGNwX3R1bmluZ3M6IHR1bmluZyBmb3IgTEFOIGVudmly -b25tZW50CgAAaHdfdHBfdGNwX3R1bmluZ3M6IHR1bmluZyBmb3IgV0FOIGVudmlyb25tZW50CgAA -aHdfdHBfdGNwX3R1bmluZ3M6IG1hbnVhbCB0dW5pbmcKAAAAAAAAAAAAAAAAAAAAX2h3X2NpbV9m -bGFzaF9tZW1jcHk6IG1lbWNweVggc3RhcnQKAAAAAAAAAAAAAAAAX2h3X2NpbV9mbGFzaF9tZW1j -cHk6IGRzdCAweCUwOCBvZmZzZXQgMHglMDh4IHNpemUgJXUsIHdpZHRoIG9mICV1IGlzIG5vdCBz -dXBwb3J0ZWQKAAAAAAAAAAAAAAAAX2h3X2NpbV9mbGFzaF9tZW1jcHk6IG1lbWNweVggZW5kCgAA -AAAAAAAAAAAAAAAAY29uZmlndXJhdGlvbiBmaWxlIHBhcnNlciBlbmNvdW50ZXJlZCBlcnJvciBA -IGxpbmUgJXU6CgAAAAAAAAAAAGh3X2kyY190cmFuc2FjdGlvbjogbmRhdGEgJXUgYWRkcl9vcCAw -eCV4IGRhdGFbMF0gMHgleCBkaWZmICV1CgBod19pMmNfdHJhbnNhY3Rpb246IG5kYXRhICV1IGFk -ZHJfb3AgMHgleCBkYXRhWzBdIDB4JXggZGlmZiAldSBkcG9zICV1IGNvbnQgJXUgZmFpbGVkIHdp -dGggZXJyICVkCgAAAAAAAAAAAAAAAAAAaTJjIHRyYW5zYWN0aW9uIGZhaWxlZCB0byBjb21wbGV0 -ZQoAAAAAAAAAAAAAAAAASE9TVCBQQUdFX1NJWkUgWzB4JTBseF0gdG9vIHNtYWxsLCBtaW4gWzB4 -JTBseF0gcmVxdWlyZWQKAAAAAAAAAHBhZ2Ugc2l6ZSBbJWx1XSBtaXNtYXRjaAoAAAAAAAAAUEFH -RSBzaXplICVsdSB1bnN1cHBvcnRlZCwgZGRwIGRpc2FibGVkCgAAAAAAAAAASG9zdCBwYWdlX3Np -emUgJWx1LCBkZHBfaWR4ICV1CgBGQ29FIEREUCBpbml0OiBmY29lIGxsaW1pdCAweCV4LCBmY29l -IHVsaW1pdCAweCV4IGdibCBsbGltaXQgMHgleCBnYmwgdWxpbWl0IDB4JXggcGNic3ogJXgKAAAA -AABGQ29FIEREUCBpbml0OiBmY29lIHBwb2Qgb2ZmIDB4JXgsIGZjb2Ugc3QgcHBvZCBhZGRyIDB4 -JXggZmNvZSBudW0gcHBvZHMgMHgleAoAAGZjb2UgeGNoZyBtZ3IgaW5pdDogTnVtYmVyIG9mIGV4 -Y2hhbmdlcyBmb3IgRkNvRSBpcyAleAoAAAAAAAAAAABmY29lX2wydF9pbml0OiBObyB1bHB0eCBj -cmVkaXQgY2g6WyV1XQoAAAAAAAAAAABmY29lX2wydF9pbml0OiBjaDpbJXVdIGwydF9pZHggWyV1 -XQoAAAAAAAAAAAAAAABubyBsMnQgZW50cmllcyBjb25maWd1cmVkOyBmb3JjaW5nICV1IGVudHJp -ZXMsIHN0YXJ0aW5nIGF0ICV1CgAAZGNieF9pZWVlX2NvbnN0cnVjdFsldV0gZXRzICV1IHBmYyAl -dSBhcHAgJXUKAAAAZGNieF90aW1lb3V0WyV1XQoAAAAAAAAAAAAAAAAAAABkY2J4X3J1bl92ZXJz -aW9uX3NtWyV1XSBEQ0JYX1ZFUl9TVEFURV9SVU5fSUVFRQoAAAAAAAAAAAAAAAAAAAAAZGNieF9y -dW5fdmVyc2lvbl9zbVsldV0gRENCWF9WRVJfU1RBVEVfUlVOX0NFRQoAZGNieF9ydW5fdmVyc2lv -bl9zbVsldV0gRENCWF9WRVJfU1RBVEVfUlVOX05PTkUKAAAAAAAAAAAAAAAAAAAAAHBvcnRbJXVd -IGxpbmsgdXAgKCV1KSAoc3BlZWQgJSN4IGFjYXBzICUjeCBscGNhcHMgJSN4KQoAAAAAAAAAAABw -b3J0X2hzc19zaWdkZXRbJXVdOiBoc3Nfc2lnZGV0IGNoYW5nZWQgdG8gMHgleAoAAAAAAAAAAAAA -AAAAAAAAcG9ydFsldV0gcmVzZXR0aW5nIEtSCgAAAAAAAAAAAABRU0ZQIG1vZHVsZSB1bnBsdWcg -LSByZWluaXRpYWxpemluZyByeF9sb3MgIHRvIDB4ZmYKAAAAAAAAAAAAAAAAZ3Bpb19xc2ZwX21v -ZHVsZV91cGRhdGU6IGNoYW5nZWQgcnhfbG9zIGZyb20gMHgleCB0byAweCV4CgAAAAAAAGdwaW9f -cXNmcF9tb2R1bGVfdXBkYXRlOiBjaGFuZ2VkIHR4X2RpcyBmcm9tIDB4JXggdG8gMHgleAoAAAAA -AABDYWxjdWxhdGlvbiBvdXQgb2YgYm91bmRzIGZ1cmluZyBpbml0OiAlI3ggJSN4ICUjeAoAAAAA -AAAAAAAAAAAAaHdfc2dlX21hbWVtX2luaXQ6IGVuY291bnRlcmVkIGVycm9yICVkCgAAAAAAAAAA -X2h3X3RwX3BnbW5ndDogdHhfcGFnZV9tYXggJXUgcnhfcGFnZV9tYXggJXUgcHN0cnVjdHMgJXUg -c2l6ZSAldQoAAAAAAAAAAAAAAAAAAABtcGFydGl0aW9uX290aGVyc190b3RhbDogZGRwICV1IGRk -cF9pc2NzaSAldSBzdGFnICV1IHBibCAldSBycSAldSBycXVkcCAldSAtPiAldQoAAAAAAAAAAAAA -AAAAAABfbXBhcnRpdGlvbl9iYW5rc19tY1g6IG5iYW5rc19wbXR4ICV1ICgldU1CKSBuYmFua3Nf -cG1yeCAldSAoJXVNQikgbmJhbmtzX290aGVycyAldSAoJXVNQikgbmJhbmtzX2Z3ICV1ICgldU1C -KQoAX21wYXJ0aXRpb25fYmFua3NfbWMxOiBuYmFua3NfcG10eCAldSAoJXVNQikgbmJhbmtzX290 -aGVycyAldSAoJXVNQikgbmJhbmtzX2Z3ICV1ICgldU1CKQoAAAAAAAAAX21wYXJ0aXRpb25fYmFu -a3NfbWMwOiBuYmFua3NfcG1yeCAldSAoJXVNQikgbmJhbmtzX290aGVycyAldSAoJXVNQikKAAAA -AAAAAAAAAABtZW1fbWFsbG9jX2ludGVybmFsOiBmYWlsZWQgdG8gYWxsb2NhdGUgJXUgYnl0ZXMs -IHJldHVybmluZyBOVUxMCgAAAAAAAAAAAAAAAAAAAGh3X2VkY19iaXN0WyV1XTogYmlzdF9jbWRb -MHglMDh4XSBhZGRyIDB4JXggbGVuIDB4JXgKAAAAAAAAAAAAAABod19lZGNfYmlzdFsldV06IGRv -bmUsIGVuY291bnRlcmVkICV1IGVycm9ycyBvbiBmaXJzdCBhbmQgJXUgZXJyb3JzIG9uIHNlY29u -ZCBhdHRlbXB0ICgldWdicHMpCgBtZW1faW5pdF9jYWNoZXM6IGNhY2hlX3NpemUgJXUgZmxvd2Nf -YnVmX3RjYl9jYWNoZV9zaXplICV1IGJ1ZmxsNjRfY2FjaGVfc2l6ZSAldQoAAAAAAAAAAAAAAAAA -AABxdWV1ZXNfcGVyX3BhZ2U6IHBmICV1IGhhcyBhIGJhcnNpemUgb2YgJXUtYnl0ZXMsIG9jcV9z -aXplICV1CgAAc2dlIHJlcXVpcmUgbmVxICV1IG5pcSAldSByb3VuZGluZyB0byAldSAldQoAAAAA -bXBhcnRpdGlvbl9wbXR4OiBtIDB4JTA4eCBzaXplICV1CgAAAAAAAAAAAAAAAAAAbXBhcnRpdGlv -bl9wbXJ4OiBtIDB4JTA4eCBzaXplICV1CgAAAAAAAAAAAAAAAAAAbXBhcnRpdGlvbl9lZGMgKG5v -IGV4dG1lbSk6IG0gMHglMDh4IHNpemUgJXUKAAAAbXBhcnRpdGlvbl9lZGNfZXN0aW1hdGU6IGh3 -IG1vZHVsZXMgcmVxdWlyZSAlZCBieXRlcyBpbiBFREMKAAAAAGNobmV0X2J5ZTpsMmRldl9mYy0+ -Zmxvd2NfaWQgWzB4JXhdLCBsMmRldl9mYy0+Zmxvd2NfcGNpZV9wZm4gWzB4JXhdLCBsMmRldl9m -Yy0+Zmxvd2NfcGNpZV92Zm4gWzB4JXhdLCBwb3J0IFsweCV4XQoAAAAAAAAAAAAAAAAAY2huZXRf -YnllOnZsYW5kZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgdmxhbmRldl9mYy0+Zmxvd2NfcGNpZV9w -Zm4gWzB4JXhdLCB2bGFuZGV2X2ZjLT5mbG93Y19wY2llX3ZmbiBbMHgleF0sIHBvcnQgWzB4JXhd -CgAAAAAAAABmb2lzY3NpX2NvcmVfYnllOiBhY3RpdmUgc2Vzc19jbnQgJWQKAAAAAAAAAAAAAABj -eDRfY3JfbW9kdWxlX3J4X2xvc1sldV06IHJ4X2xvcyBjaGFuZ2VkIHRvICV1CgBwZm4gJXUgdmZu -ICV1IGhhcyBwbmR0eG5zICV1IGFmdGVyIDEwMG1zCgAAAAAAAABwZm4gJXUgdmZuICV1IGNvbXBs -ZXRlIGltbWVkaWF0ZQoAAAAAAAAAAAAAAAAAAABiYWQgbWFpbGJveCBjbWQ6IHBmbiAweCV4IHZm -biAweCV4OyBvcGNvZGUgMHgleCA+IExBU1RDMkUgMHgleAoAbWFpbGJveCBjbWQgbm90IHlldCBz -dXBwb3J0ZWQ6IHBmbiAweCV4IHZmbiAweCV4OyBvcGNvZGUgMHgleAoAAGJhZCBtYWlsYm94IGNt -ZDogcGZuIDB4JXggdmZuIDB4JXg7IG9wY29kZSAweCV4IGlzIHZhbGlkIHBvc3QgZGV2aWNlIGlu -aXQgb25seQoAYmFkIG1haWxib3ggY21kOiBwZm4gMHgleCB2Zm4gMHgleDsgb3Bjb2RlIDB4JTAy -eCByYW1hc2sgMHgleCBjbWQgcmFtYXNrIDB4JXgKAABiYWQgbWFpbGJveCBjbWQ6IHBmbiAweCV4 -IHZmbiAweCV4OyBvcGNvZGUgMHglMDJ4IGxlbjE2IDB4JXggdmVyc3VzIGV4cGVjdGVkIGxlbjE2 -IDB4JXgKAAAAAAAAAABpbnN1ZmZpY2llbnQgY2FwcyB0byBwcm9jZXNzIG1haWxib3ggY21kOiBw -Zm4gMHgleCB2Zm4gMHgleDsgcl9jYXBzIDB4JXggd3hfY2FwcyAweCV4IHJlcXVpcmVkIHJfY2Fw -cyAweCV4IHdfY2FwcyAweCV4CgAAAAAAAAAAAGluc3VmZmljaWVudCBjYXBzIHRvIHByb2Nlc3Mg -bWFpbGJveCBjbWQ6IHBmbiAweCV4IHZmbiAweCV4OyByX2NhcHMgMHgleCB3eF9jYXBzIDB4JXgg -cmVxdWlyZWQgcl9jYXBzIDB4JXggd19jYXBzIDB4JXgKAAAAAAAAAAAAZG93bmxvYWRfc3JhbTog -ZXJyb3IsIHJldCAlZAoAAABkb3dubG9hZF90Y2FtOiBlcnJvciwgcmV0ICVkCgAAAFZQRCByZWdp -b24gaXMgdG9vIHNtYWxsIChTRVJDRkdfU1JfUEZOVlBEU0laRSAweCV4KQoAAAAAAAAAAAAAAABj -Zl9wcmVwOiBlcnJvciwgcmV0ICVkCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIIAAAEgAAAA -AAAAAIIAAAEAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAgAAAAAAA -AAAAAAAAAIAAAAAAAAAAAAKAAAAAAAAAAAAAAgADAAAAAAFgCAAAAAADAAAAAAAAAAAAAAADAAAA -AAAAAAAAAAACAAAAAAAAAAAAIAAAAAAAAAAAAAAAAQADgAAAAAAAAAAAAAACAAAAAAAAAAAAIAOA -AAAAAAAAAAAAEAKAAIAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAACgAAAAAAAAAAA -AAACAAAAAAAAAAAAAAACgAAAAAAAAAAAAQADAAAAAAAAAAAAAAKDAAAAAAAAAAAAEAKAAAAAAAAA -AAAAMAADAAAAAAAACAAAMAADAAAAAAAAAAAAMAWDAAAAAAAACAAAMAWDAAAAAAAAAAAAMASDAAAA -AAAACAAAMASDAAAAAAAAAAAAMAMDAAAAAAAACAAAMAMDAAAAAAAAAAAAOAMDAAAAAAAAAAAAOAWD -AAAAAAAAAAAAOASDAAAAAAAAAAAAOAADAAAAAAAAAAAANAaCAAAAAAAAAAAAPAOCAAAAAAAAAAAA -PAADAAAAAAAACAAAPAADAAAAAAAAAAAAPASDAAAAAAAAAAAAPAUDAAAAAAAAAAAAPQQDAAAAAAAA -AAAAPAODAAAAAAAAAAAALAACAAAAAAAAAAAALAWCAAAAAAAAAAAALAUCAAAAAAAAAAAAEAaAAAAA -AAAAAAAAEAaCwAAAAAAAAAAAEAaCgAAAAAAAAAAAAA6CAAAAAAAAAAAAEAeCgAAAACAAAAAAAAeC -AAAAACAAAAAAEAcCgAAAAAAAAAAAEAcCgAAAAAAAAAAAEAcCgAAAAAAAAAAAAAcCAAAAACAAAAAA -EBeDAAAAAAAACAAAEBeDAAAAAAAACAAAEAAAAAAAAAAAAAAAEAYDgAAAAAAAAAAAAA4DAAAAAAAA -AAAAEAYDQAAAAAAAAAAAEAYDAAAAAAAAAAAAEAYAAAAAAAAAAAAAAAYDgAAAAAAAAAAAAAYDAAAA -AAAAAAAAAA4CAAAAAAAAAAAAAA4CAAAAAAAAAAAAEAYCAAAAAAAAAAAAEAYCAAAAAAAAAAAAEAYC -gAAAAAAAAAAAEAYCgAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAgAAAAAAAAAAABADAAAAAAAACAAAAAAAAAAAAAAAAAAA//////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////AAAAIAAAAADAAAAAAAAA -IAAAAADgAAAAAAAAAAIAAAAAAAAAQAAAAAAAAAAAAAAAAAABIQAAAAAAAAAAAAEBIAAAAAAAAAAA -AAACAAAABAAEAAAAAAUAAAAEAAAAAAAAAAAAoAAAAACAAAAAAIAAQAAAAAAAAgAAAIAAIAAAAAAA -AgAAAQBAAAAAAAAAAAAAAQBCAAAAAAAAAAAAAAAgAAAAAAAAAAAAAhAgAAAAAAAAAAAAAgwCAAAA -AAAAAAAAAIUCAAAABAAAAAAAAIBCAAAAAAAAAAAAAgAiAAAAAAAAAAAAAIBBAAAAAAAAAAAAAIBB -gAAAAAAAAAAAAgAhAAAAAAAAAAAAABAggAAAAAAAAAAAAiUAgAAAAAAAAAAAAAUAAAAAAAAAAAAA -CIgEgAAAAAAAAAAACIgEgAAAAAAAAAAACKIAgAAAAAAAAAAACKIAgAAAAAAAAAAACKMAgAAAAAAA -AAAACKMAgAAAAAAAAAAACKSAgAAAAAAAAAAACKSAgAAAAAAAAAAABKSAwAAAAAAAAAAABKIAwAAA -AAAAAAAABKMAwAAAAAAAAAAABIgEwAAAAAAAAAAAAAkBgAAAAAAAAAAAAgwAgAAAAAAAAAAAAIgE -wAAAAAAAAAAAAIgEgAAAAAAAAAAAAgsAgAAAAAAAAAAAAIqAgAAAAAAAAAAAAAuAgAAAAAAAAAAA -AIwAgAAAAAAAAAAAAiAQgAAAAAAAAAAAAgoAgAAAAAAAAAAAAgqAgAAAAAAAAAAAAAkCgAAAAAAA -AAAAAAEBAAAAAAAAAAAAAAEBQAAAAAAAAAAAAAEAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAA -AAAAAAAAAACBEAAAAAAAAAAAAACBCAAAAAAAAAAAAACBBAAAAAAAAAAAAACBgAAAAAAAAAAAAIAA -wAAAAAAAAAAAAIAAoAAAAAAAAAAAAAAIAAAAAAAAAAAAAIGAAAAAAAAAAAAAAIGAgAAAAAAAAAAA -AImAgAAAAAAAAAAAAImAwAAAAAAAAAAAAAGCAAAAAAAAAAAAAgGAAAAAAAAAAAAAAgGAgAAAAAAA -AAAAAEGBgAAAAAAAAAAAAgGBgAAAAAAAAAAAAEmBgAAAAAAAAAAAAgmBgAAAAAAAAAAAAgGBAAAA -AAAAAAAAAEGBAAAAAAAAAAAAIAAAAAAAAAAAAAAAEAAAAgEAAAAAAAAAEAAAAgAAAAAAAAAAEAAA -AAAAAAAAAAAAAIAAwAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////AAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAIAJIAAAAAAAAAA2YAIABAAAAAAAgAkgAAAAAAAAADcgElBEAAAAAAAAAAAAAAAAAAAAOW -ACAAQAAAAAAIAAAAAgCIA4cAAFYAIABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAAAAAAAAAAAAAA -AAOWACAAQAAAAAAAAAAAAAAAAAAAA5YAIABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAACAAAAAIA -iAOFAACWASAAQAAAAAAAAAAAAAAAAAAAA5YAIABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAACAAA -AAIAiAOFAACWASAAQAAAAAAAAAAAAAAAAAAAA5YAIABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAA -CAAAAAIAiAOFAACWASAAQAAAAAAAAAAAAAAAAAAAA5YAIABAAAAAAAAAAAAAAAAAAgADlgAmBEAA -AAAACEcgAQQAAAKyAALSBSAkQAAAAAAAAAAAAAAAAAAAA5YAIABAAAAAAABHIAEGDKGCsEABkgQg -JEAAAAAAAEcgAQQMoEKzgAISBSAkQAAAAAAIAAAAAgCIA4UAAJYBIABAAAAAAAgAAAACAIgDhQAA -lgEgAEAAAAAACAAAAAIAiAOFAACWASAAQAAAAAAAAAAAAAAAAAAAA5YAIABAAAAAAA3FEroCsIDT -FFSL4kpGJEAAAAAABcUSugK3gNMUVItiSaYkQAAAAAAFxRKiBrCA0xRUi+JKRiRAAAAAAA3FEqIG -t4DTFFSLYkmmJEAAAAAABcUSogawgNMUVIviSkYkQAAAAAANxRKiBreA0xRUi2JJpiRAAAAAAAXF -EqIGsIDTFFSL4kpGJEAAAAAADcUSoga3gNMUVItiSaYkQAAAAAAJxBCgAgCAkAAAi2JpxiRAAAAA -AAHEEKAGsICTBlSLYmnGJEAAAAAAAcQQoAawgJMGVItiacYkQAAAAAABxRC4BrCAkxZUi2JIxiRA -AAAAAAihEIgCAIFYEgALUgCmJEAAAAAACcAQkAKwgAMWVIqSAcYkQAAAAAAJwBC4BrCAAxCUi+IC -RiRAAAAAAAnAELgCtIADEJSLYgGmJEAAAAAACcAQuAK0gAMQlItiAaYkQAAAAAAJwBC4ArSAAxCU -i2IBpiRAAAAAAAnAELgCtIADEJSLYgGmJEAAAAAAAaAQkAa0gAMQlItiAaYkQAAAAAABwBCAArCA -AxRUilIAxiRAAAAAAAHAEIACsIADFFSKUgDGJEAAAAAAAcAQgAKwgAMUVIpSAMYkQAAAAAAIRyAB -BAAAArIAAtIFICRAAAAAAACBAAACAIVYB0ALUgCmJEAAAAAAAIEAAAIAhVgHQAtSAKYkQAAAAAAA -AAAABACgQAGAAdYAIABAAAAAAAAAAAAGAKGAAEABVgAgAEAAAAAAAAAAAAQAoEABgAHWACAAQAAA -AAAIgQAAAgCFWYAEC1IApiRAAAAAAAlhQAAAAAAYAAADQgEmpEAAAAAAAAAAAAAAAAAAAAOWACAA -QAAAAAAAAAAABACgQAGAAdYAIABAAAAAAAgAAAACAIgDhwAD1gAmBEAAAAAACAAAAAIAiAOHAAPW -ACYEQAAAAAAAAAAAAAAAAAAAA5YAIABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAAAAAAAAQAoEAB -gAHWACAAQAAAAAAJwBC4ArSAAxCUi2IBpiRAAAAAAAAAAAAAAAAAAgADlgAmBEAAAAAAAAAAAAAA -AAAAAAOWACAAQAAAAAAIAAAAAgCIA4UAAJYBIABAAAAAAAAAAAAEAKBAAYAB1gAgAEAAAAAAAAAA -AAQAoEABgAHWACAAQAAAAAAAAAAABACgQAGAAdYAIABAAAAAAAihEIgCAIFYEAAJEgGmJEAAAAAA -AAAAAAQAoEABgAHWACAAQAAAAAAAAAAABgChgABAAVYAIABAAAAAAAgAAAACAIgDhUAI0gJGJEAA -AAAACcUSogKUiNIQgIsiSKYkQAAAAAABwBCABqSIAQVUi1IAxiRAAAAAAAnAEIACpIgAhVSLUgDG -JEAAAAAACcAQgAa0iAMBFItSAaYkQAAAAAANwAAAArCAwxZUi+IDRiRAAAAAAAAAAAAAAAAAAAAD -lgAgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -CAAwAAQAAAACAAACACYkQAAAAAAARzAABgMgArcACAIBwCRAAAAAAAgDAAACBqAKtQAIAgDGJEAA -AAAAAAAAAAAAAAACAAACACYkQAAAAAAAIFAABAAAAAIAAAIAJiRAAAAAAAhgIACEAAAAAAAABgAg -AEAAAAAACGAgAIQAAAACATACACYlQAAAAAAIYAAABACEAYAEBAIBxiTAAAAAAAHAAAACQ4ADAgyI -AgGmJEAAAAAACABgAAQAAAACAAACACYkQAAAAAAIAGAABAAAAAAAAAQBIABAAAAAAAAAAAAAAAAA -AAAABAEgAEAAAAAABAgUgAYKAAAHAUwCIKYmQAAAAAAIgAAABgCEAYAECAIBpiZAAAAAAABAAAAC -AKAAAkAIAgGmJEAAAAAAAAAAAAAAAAACAAACACYkQAAAAAAEAAAAAoQAAwKKCAIEpiRAAAAAAAAA -AAAAAAAAAgAABgEgSEAAAAAAACBQAAQAAAACAAACACYkQAAAAAAIYCAAhAAAAAIAAAYAJgRAAAAA -AAhgIACEAAAAAgAAAgEmJUAAAAAACGAAAAQAhAGABAQCAcYkwAAAAAAIAGAABAAAAAAAAAQBIABA -AAAAAAAAAAAAAAAAAAAAAgAmTHAAAAAAAAAAAAAAAAAAAAAGASAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAHAAAAItJAECRYEAgTGJEAAAAAAAcAAAAi0kAQJFgQCBMYkQAAAAAAECHSA -TAkAAFAAXAJh5iRAAAAAAAwIdIBEAAAAUgBAAmEmJEAAAAAACAIQoAQAAAAAAQACACYkQAAAAAAI -AhCgBAAAAAABAAIAJiRAAAAAAAQIdABCAQAABwCIAmDGJEAAAAAADcgUAAIJAAAEQJwCYOYkQAAA -AAAJyBCABrSQBAKUiAJlxiRAAAAAAA3IdABItJADAJSIAmCmJMAAAAAADch0AEi0kAMAlIgCYKYk -wAAAAAAIRwAABAAAAAAAAAIBICRAAAAAAAhHAAAEAAAAAgAAAgUgJEAAAAAAAEcgAQwHIcK3AAgC -AcAkQAAAAAAARyABDAchwrcACAIBwCRAAAAAAABHIAEMByHCtwAIAgHAJEAAAAAAAAAgAQgAhAAF -QIgCAcYkwAAAAAAAACABCACEAAVAiAIBxiTAAAAAAAAAIAEIAIQABUCIAgHGJMAAAAAAAAAgAYaC -AAECwIgCA8YkwAAAAAAAACABgoIAAALAiAIDxiTAAAAAAAnAIAGCpIABBUCIAgHGJMAAAAAACAAA -AAwAhAAFQIgCAcYkwAAAAAAAACABhoIAAQLAiAIDxiTAAAAAAAAAIAGCggAAAMCIAgKmJMAAAAAA -CcAgAYKkgAEFQIgCAcYkwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEA -AQkEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW2dsb2JhbF0KcnNzX2dsYl9jb25maWdfbW9k -ZT1iYXNpY3ZpcnR1YWwKcnNzX2dsYl9jb25maWdfb3B0aW9ucz10bmxtYXBlbixoYXNodG9lcGxp -dHosdG5sYWxsbGtwCnJlZ1sweDEwMDhdPTB4NDA4MTAvMHgyMWM3MApyZWdbMHgxMDBjXT0weDIy -MjIyMjIyCnJlZ1sweDEwYTBdPTB4MDEwNDA4MTAKcmVnWzB4MTA0NF09NDA5NgpyZWdbMHgxMDQ4 -XT02NTUzNgpyZWdbMHgxMDRjXT0xNTM2CnJlZ1sweDEwNTBdPTkwMjQKcmVnWzB4MTA1NF09OTIx -NgpyZWdbMHgxMDU4XT0yMDQ4CnJlZ1sweDEwNWNdPTEyOApyZWdbMHgxMDYwXT04MTkyCnJlZ1sw -eDEwNjRdPTE2Mzg0CnJlZ1sweDEwYTRdPTB4YTAwMGEwMDAvMHhmMDAwZjAwMApyZWdbMHgxMGE4 -XT0weDIwMDAvMHgyMDAwCnNnZV90aW1lcl92YWx1ZT01LDEwLDIwLDUwLDEwMCwyMDAKcmVnWzB4 -N2QwNF09MHgwMDAxMDAwMC8weDAwMDEwMDAwCnJlZ1sweDdkNmNdPTB4MDAwMDAwMDAvMHgwMDAw -NzAwMApyZWdbMHg3ZGMwXT0weDBlMmY4ODQ5CmZpbHRlck1vZGU9ZnJhZ21lbnRhdGlvbixtcHNo -aXR0eXBlLHByb3RvY29sLHZsYW4scG9ydCxmY29lCmZpbHRlck1hc2s9cHJvdG9jb2wsZmNvZQp0 -cF9wbXJ4PTM0CnRwX3BtcnhfcGFnZXNpemU9NjRLCnRwX25yeGNoPTAKdHBfcG10eD0zMgp0cF9w -bXR4X3BhZ2VzaXplPTY0Swp0cF9udHhjaD0wCnRwX210dXM9ODgsMjU2LDUxMiw1NzYsODA4LDEw -MjQsMTI4MCwxNDg4LDE1MDAsMjAwMiwyMDQ4LDQwOTYsNDM1Miw4MTkyLDkwMDAsOTYwMApyZWdb -MHgxOTE2OF09MHgwNDAyMDEwMApbZnVuY3Rpb24iMCJdCm52Zj0xNgp3eF9jYXBzPWFsbApyX2Nh -cHM9YWxsCm52aT0xCm5pcWZsaW50PTgKbmV0aGN0cmw9OApuZXE9MTYKbmV4YWN0Zj04CmNtYXNr -PWFsbApwbWFzaz0weDEKW2Z1bmN0aW9uIjEiXQpudmY9MTYKd3hfY2Fwcz1hbGwKcl9jYXBzPWFs -bApudmk9MQpuaXFmbGludD04Cm5ldGhjdHJsPTgKbmVxPTE2Cm5leGFjdGY9OApjbWFzaz1hbGwK -cG1hc2s9MHgyCltmdW5jdGlvbiIyIl0KbnZmPTE2Cnd4X2NhcHM9YWxsCnJfY2Fwcz1hbGwKbnZp -PTEKbmlxZmxpbnQ9OApuZXRoY3RybD04Cm5lcT0xNgpuZXhhY3RmPTgKY21hc2s9YWxsCnBtYXNr -PTB4NApbZnVuY3Rpb24iMyJdCm52Zj0xNgp3eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT0xCm5p -cWZsaW50PTgKbmV0aGN0cmw9OApuZXE9MTYKbmV4YWN0Zj04CmNtYXNrPWFsbApwbWFzaz0weDgK -W2Z1bmN0aW9uIjQiXQp3eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT0yOApuaXFmbGludD0xNzAK -bmV0aGN0cmw9MTAwCm5lcT0yNTYKbmV4YWN0Zj00MApjbWFzaz1hbGwKcG1hc2s9YWxsCm5ldGhv -ZmxkPTEwMjQKbnJvdXRlPTMyCm5jbGlwPTMyCm5maWx0ZXI9NDk2Cm5zZXJ2ZXI9NDk2Cm5oYXNo -PTEyMjg4CnByb3RvY29sPW5pY192bSxvZmxkLHJkZHAscmRtYWMsaXNjc2lfaW5pdGlhdG9yX3Bk -dSxpc2NzaV90YXJnZXRfcGR1CnRwX2wydD0zMDcyCnRwX2RkcD0zCnRwX2RkcF9pc2NzaT0yCnRw -X3N0YWc9Mwp0cF9wYmw9MTAKdHBfcnE9MTMKW2Z1bmN0aW9uIjUiXQp3eF9jYXBzPWFsbApyX2Nh -cHM9YWxsCm52aT00Cm5pcWZsaW50PTM0Cm5ldGhjdHJsPTMyCm5lcT02NApuZXhhY3RmPTQKY21h -c2s9YWxsCnBtYXNrPWFsbApuc2VydmVyPTE2Cm5oYXNoPTIwNDgKdHBfbDJ0PTEwMjAKcHJvdG9j -b2w9aXNjc2lfaW5pdGlhdG9yX2ZvZmxkCnRwX2RkcF9pc2NzaT0yCmlzY3NpX250YXNrPTIwNDgK -aXNjc2lfbnNlc3M9MjA0OAppc2NzaV9uY29ubl9wZXJfc2Vzc2lvbj0xCmlzY3NpX25pbml0aWF0 -b3JfaW5zdGFuY2U9NjQKW2Z1bmN0aW9uIjYiXQp3eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT00 -Cm5pcWZsaW50PTM0Cm5ldGhjdHJsPTMyCm5lcT02NgpuZXhhY3RmPTMyCmNtYXNrPWFsbApwbWFz -az1hbGwKbmhhc2g9MjA0OAp0cF9sMnQ9NApwcm90b2NvbD1mY29lX2luaXRpYXRvcgp0cF9kZHA9 -MQpmY29lX25mY2Y9MTYKZmNvZV9udm5wPTMyCmZjb2VfbnNzbj0xMDI0CltmdW5jdGlvbiIxMDIz -Il0Kd3hfY2Fwcz1hbGwKcl9jYXBzPWFsbApudmk9NApjbWFzaz1hbGwKcG1hc2s9YWxsCm5leGFj -dGY9OApuZmlsdGVyPTE2CltmdW5jdGlvbiIwLyoiXQp3eF9jYXBzPTB4ODIKcl9jYXBzPTB4ODYK -bnZpPTEKbmlxZmxpbnQ9NApuZXRoY3RybD0yCm5lcT00Cm5leGFjdGY9NApjbWFzaz1hbGwKcG1h -c2s9MHgxCltmdW5jdGlvbiIxLyoiXQp3eF9jYXBzPTB4ODIKcl9jYXBzPTB4ODYKbnZpPTEKbmlx -ZmxpbnQ9NApuZXRoY3RybD0yCm5lcT00Cm5leGFjdGY9NApjbWFzaz1hbGwKcG1hc2s9MHgyCltm -dW5jdGlvbiIyLyoiXQp3eF9jYXBzPTB4ODIKcl9jYXBzPTB4ODYKbnZpPTEKbmlxZmxpbnQ9NApu -ZXRoY3RybD0yCm5lcT00Cm5leGFjdGY9NApjbWFzaz1hbGwKcG1hc2s9MHg0CltmdW5jdGlvbiIz -LyoiXQp3eF9jYXBzPTB4ODIKcl9jYXBzPTB4ODYKbnZpPTEKbmlxZmxpbnQ9NApuZXRoY3RybD0y -Cm5lcT00Cm5leGFjdGY9NApjbWFzaz1hbGwKcG1hc2s9MHg4Cltwb3J0IjAiXQpkY2I9cHBwLGRj -YngKYmdfbWVtPTI1CmxwYmtfbWVtPTI1Cmh3bT0zMApsd209MTUKZHdtPTMwCmRjYl9hcHBfdGx2 -WzBdPTB4ODkwNixldGhlcnR5cGUsMwpkY2JfYXBwX3RsdlsxXT0weDg5MTQsZXRoZXJ0eXBlLDMK -ZGNiX2FwcF90bHZbMl09MzI2MCxzb2NrZXRudW0sNQpbcG9ydCIxIl0KZGNiPXBwcCxkY2J4CmJn -X21lbT0yNQpscGJrX21lbT0yNQpod209MzAKbHdtPTE1CmR3bT0zMApkY2JfYXBwX3RsdlswXT0w -eDg5MDYsZXRoZXJ0eXBlLDMKZGNiX2FwcF90bHZbMV09MHg4OTE0LGV0aGVydHlwZSwzCmRjYl9h -cHBfdGx2WzJdPTMyNjAsc29ja2V0bnVtLDUKW3BvcnQiMiJdCmRjYj1wcHAsZGNieApiZ19tZW09 -MjUKbHBia19tZW09MjUKaHdtPTMwCmx3bT0xNQpkd209MzAKZGNiX2FwcF90bHZbMF09MHg4OTA2 -LGV0aGVydHlwZSwzCmRjYl9hcHBfdGx2WzFdPTB4ODkxNCxldGhlcnR5cGUsMwpkY2JfYXBwX3Rs -dlsyXT0zMjYwLHNvY2tldG51bSw1Cltwb3J0IjMiXQpkY2I9cHBwLGRjYngKYmdfbWVtPTI1Cmxw -YmtfbWVtPTI1Cmh3bT0zMApsd209MTUKZHdtPTMwCmRjYl9hcHBfdGx2WzBdPTB4ODkwNixldGhl -cnR5cGUsMwpkY2JfYXBwX3RsdlsxXT0weDg5MTQsZXRoZXJ0eXBlLDMKZGNiX2FwcF90bHZbMl09 -MzI2MCxzb2NrZXRudW0sNQpbZmluaV0KdmVyc2lvbj0weDE0MjUwMDFjCmNoZWNrc3VtPTB4NWNl -YWI0MWUKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFtnbG9iYWxdCnJzc19nbGJfY29uZmlnX21vZGU9YmFzaWN2 -aXJ0dWFsCnJzc19nbGJfY29uZmlnX29wdGlvbnM9dG5sbWFwZW4saGFzaHRvZXBsaXR6LHRubGFs -bGxrcApyZWdbMHgxMDA4XT0weDQwODEwLzB4MjFjNzAKcmVnWzB4MTAwY109MHgyMjIyMjIyMgpy -ZWdbMHgxMGEwXT0weDAxMDQwODEwCnJlZ1sweDEwNDRdPTQwOTYKcmVnWzB4MTA0OF09NjU1MzYK -cmVnWzB4MTA0Y109MTUzNgpyZWdbMHgxMDUwXT05MDI0CnJlZ1sweDEwNTRdPTkyMTYKcmVnWzB4 -MTA1OF09MjA0OApyZWdbMHgxMDVjXT0xMjgKcmVnWzB4MTA2MF09ODE5MgpyZWdbMHgxMDY0XT0x -NjM4NApyZWdbMHgxMGE0XT0weGEwMDBhMDAwLzB4ZjAwMGYwMDAKcmVnWzB4MTBhOF09MHgyMDAw -LzB4MjAwMApzZ2VfdGltZXJfdmFsdWU9NSwxMCwyMCw1MCwxMDAsMjAwCnJlZ1sweDdkMDRdPTB4 -MDAwMTAwMDAvMHgwMDAxMDAwMApyZWdbMHg3ZDZjXT0weDAwMDAwMDAwLzB4MDAwMDcwMDAKcmVn -WzB4N2RjMF09MHgwZTJmODg0OQpmaWx0ZXJNb2RlPWZyYWdtZW50YXRpb24sbXBzaGl0dHlwZSxw -cm90b2NvbCx2bGFuLHBvcnQsZmNvZQpmaWx0ZXJNYXNrPXByb3RvY29sLGZjb2UKdHBfcG1yeD0z -MAp0cF9wbXJ4X3BhZ2VzaXplPTY0Swp0cF9ucnhjaD0wCnRwX3BtdHg9NTAKdHBfcG10eF9wYWdl -c2l6ZT02NEsKdHBfbnR4Y2g9MAp0cF9tdHVzPTg4LDI1Niw1MTIsNTc2LDgwOCwxMDI0LDEyODAs -MTQ4OCwxNTAwLDIwMDIsMjA0OCw0MDk2LDQzNTIsODE5Miw5MDAwLDk2MDAKcmVnWzB4MTkxNjhd -PTB4MDQwMjAxMDAKW2Z1bmN0aW9uIjAiXQp3eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT0yOApu -aXFmbGludD0xNzAKbmV0aGN0cmw9OTYKbmVxPTI1MgpuZXhhY3RmPTQwCmNtYXNrPWFsbApwbWFz -az1hbGwKbmV0aG9mbGQ9MTAyNApucm91dGU9MzIKbmNsaXA9MzIKbmZpbHRlcj00OApuc2VydmVy -PTMyCm5oYXNoPTAKcHJvdG9jb2w9bmljX3ZtLG9mbGQscmRkcCxyZG1hYyxpc2NzaV9pbml0aWF0 -b3JfcGR1LGlzY3NpX3RhcmdldF9wZHUKdHBfbDJ0PTMwNzIKdHBfZGRwPTIKdHBfZGRwX2lzY3Np -PTIKdHBfc3RhZz0yCnRwX3BibD01CnRwX3JxPTcKW2Z1bmN0aW9uIjEiXQp3eF9jYXBzPWFsbApy -X2NhcHM9YWxsCm52aT00Cm5pcWZsaW50PTM0Cm5ldGhjdHJsPTMyCm5lcT02NgpuZXhhY3RmPTMy -CmNtYXNrPWFsbApwbWFzaz1hbGwKbmhhc2g9MApwcm90b2NvbD1mY29lX2luaXRpYXRvcgp0cF9k -ZHA9MgpmY29lX25mY2Y9MTYKZmNvZV9udm5wPTMyCmZjb2VfbnNzbj0xMDI0CltmdW5jdGlvbiIx -MDIzIl0Kd3hfY2Fwcz1hbGwKcl9jYXBzPWFsbApudmk9NApjbWFzaz1hbGwKcG1hc2s9YWxsCm5l -eGFjdGY9OApuZmlsdGVyPTE2CltmdW5jdGlvbiIwLyoiXQp3eF9jYXBzPTB4ODIKcl9jYXBzPTB4 -ODYKbnZpPTEKbmlxZmxpbnQ9NApuZXRoY3RybD0yCm5lcT00Cm5leGFjdGY9NApjbWFzaz1hbGwK -cG1hc2s9MHgxCltmdW5jdGlvbiIxLyoiXQp3eF9jYXBzPTB4ODIKcl9jYXBzPTB4ODYKbnZpPTEK -bmlxZmxpbnQ9NApuZXRoY3RybD0yCm5lcT00Cm5leGFjdGY9NApjbWFzaz1hbGwKcG1hc2s9MHgy -Cltwb3J0IjAiXQpkY2I9cHBwLGRjYngKYmdfbWVtPTI1CmxwYmtfbWVtPTI1Cmh3bT0zMApsd209 -MTUKZHdtPTMwCmRjYl9hcHBfdGx2WzBdPTB4ODkwNixldGhlcnR5cGUsMwpkY2JfYXBwX3Rsdlsx -XT0weDg5MTQsZXRoZXJ0eXBlLDMKZGNiX2FwcF90bHZbMl09MzI2MCxzb2NrZXRudW0sNQpbcG9y -dCIxIl0KZGNiPXBwcCxkY2J4CmJnX21lbT0yNQpscGJrX21lbT0yNQpod209MzAKbHdtPTE1CmR3 -bT0zMApkY2JfYXBwX3RsdlswXT0weDg5MDYsZXRoZXJ0eXBlLDMKZGNiX2FwcF90bHZbMV09MHg4 -OTE0LGV0aGVydHlwZSwzCmRjYl9hcHBfdGx2WzJdPTMyNjAsc29ja2V0bnVtLDUKW3BvcnQiMiJd -CmRjYj1wcHAsZGNieApiZ19tZW09MjUKbHBia19tZW09MjUKaHdtPTMwCmx3bT0xNQpkd209MzAK -ZGNiX2FwcF90bHZbMF09MHg4OTA2LGV0aGVydHlwZSwzCmRjYl9hcHBfdGx2WzFdPTB4ODkxNCxl -dGhlcnR5cGUsMwpkY2JfYXBwX3RsdlsyXT0zMjYwLHNvY2tldG51bSw1Cltwb3J0IjMiXQpkY2I9 -cHBwLGRjYngKYmdfbWVtPTI1CmxwYmtfbWVtPTI1Cmh3bT0zMApsd209MTUKZHdtPTMwCmRjYl9h -cHBfdGx2WzBdPTB4ODkwNixldGhlcnR5cGUsMwpkY2JfYXBwX3RsdlsxXT0weDg5MTQsZXRoZXJ0 -eXBlLDMKZGNiX2FwcF90bHZbMl09MzI2MCxzb2NrZXRudW0sNQpbZmluaV0KdmVyc2lvbj0weDE0 -MjUwMDFjCmNoZWNrc3VtPTB4YWQ0YzE3NGYKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAA= -==== diff --git a/sys/dev/cxgbe/firmware/t4fw-1.16.26.0.bin.uu b/sys/dev/cxgbe/firmware/t4fw-1.16.26.0.bin.uu new file mode 100644 index 0000000..c4d129e --- /dev/null +++ b/sys/dev/cxgbe/firmware/t4fw-1.16.26.0.bin.uu @@ -0,0 +1,9603 @@ +/*- + * Copyright (c) 2016 Chelsio Communications, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +begin-base64 644 t4fw +AAAEKgEQGgAAAQkEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAABA0EHAQkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAENoZWxzaW8gRlcgUlVOTUVNIERFQlVHPTAgKEJ1aWx0IFdlZCBEZWMgMjEgMDg6 +MjI6NDggUFNUIDIwMTYgb24gdm5jNC5hc2ljZGVzaWduZXJzLmNvbTovaG9tZS9maXJtd2FyZS9j +dnMvZnctcmVsZWFzZSksIFZlcnNpb24gVDR4eCAwMS4xMC4xYS4wMAAAAAAAAAAAAAAAAEqXR79g +AMgA4QB78AAQAADhADC4eP///x/84UCAAAAB4QB7cAAAEAAf//2M4QGUcCAAAADhAZwE4QB5AAAC +AEDhAHmAAAYAQAACAAoABgAK4QB5BAAMAACAAAEC4QB7POEAe0ThAHvk4gAAAAABAADhAHuQIAAA +AAAAgADhAHsAAABAAeEAe5wAAEAAREREQuAAAADjAARzREREQOMACAAgAAJcAAAAAB//kuAAAAAA +H/+S5AAAAAAf/5LoAAAAAB//kuwf/8AAAAAAAAAAAADAABL/zRP/zZMgEv/NE//NhCAEMwGTIBH/ +zBL/zJIQEf/MEv/MkhAR/8wB9DER/8siCv+SEADkMQAFMQECABL/yALnMQIWABH/x4EQAQFfwCEC +EQHJERH/xBL/xJIQEf/EEv/EkhBgAA8R/78S/8OSEBH/vxL/wpIQgRAR/8HAIJIREv/AkhLAIJIT +Ev+/khCCEALyUGUv9xH/vccvkhAR/7ySEBL/vBP/vJMgwDKTIRP/u5MigiIS/7oT/7qTICMiIRT/ +uQQzAck4E/+4gzADgxQIMxEU/7akM5MhE/+qkyJgAAjCMJMhE/+nkyIS/7GQIJAhkCKQI5AkkCWQ +JpAnkCiQKZAqkCuQLJAtkC6QLyAmECAmEYIiEv+kwDAtNzAtNzQtNzgtNzwjPQFyM+0AAgAS/6HA +MC83AC83EC83IC83MCM9AXIz7QACABL/l8AwKDcwKDc0KDc4KDc8Iz0BcjPtEv+VwDAnNwAnNxAn +NyAnNzAjPQFyM+0S/5AV/5AW/5HAMNcgBWYBYAAZAAAAAAAAAAQ2BQACANMP0w8FMwxuOxQHRxQH +BEN2MeYENgUFMwxvO+0AAgAS/4MV/4EjCgACJwIHBEMEPgUFMwwHRxRvO/ADAgAS/33JLoMghCGF +IrwidDsOhlC0VZYwtDN0M/Rj/+YAZT/iZV/fEv9xwDIDLgUDAgAS/2jAMCg3QCg3RCg3SCg3TCM9 +AXIz7QACABL/ay0nAMARAUkxAEgxAQIAwAAU/2gE0jEV/2eUUBT/ZwTTMRX/ZpRQFP9mBNQxFf9m +lFAU/2UE1TEV/2WUUBD/ZQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/AAA +H/wAAOMACfgf/AAAH/wAAOMACfgf/AAAH/wAAOMACfgf/4AAH/+KUOMACfgf/4pQH/+KUOMAFEgf +/4pQH/+KUOMAFEgf/4pQH/+L8OMAFEgf/4vwH/+S3OMAFegf/5LgH/+0AOMAHNgf/7QAH/+0AOMA +Pfgf/8AAH//+eeMAPfggAAAAIAABauMAfHQgAAF4IAABfOMAfeAgAAF8IAABheMAfeQgAAGYIAAB +nOMAffAgAAGcIAABpeMAffQgAAG4IAABvOMAfgAgAAG8IAABxeMAfgQgAAHYIAAB2OMAfhAgAAHc +IAAB4uMAfhAgAAH4IAAB+OMAfhggAAH8IAAB/OMAfhggAAIYIAACGOMAfhggAAIcIAACHOMAfhgg +AAI4IAACOOMAfhggAAI8IAACPOMAfhggAAJYIAACWOMAfhggAAJcIAACYuMAfhggAAJ4IAACeOMA +fiAgAAJ8IAACguMAfiAgAAKYIAHz/uMAfiggAwAAIAMVlOMCb5AgAxWUIAMVlOMChSQgAxWYIAbc +BOMChSggBtwQIAbfgOMGS6AgCAAAIAgOYOMGTxAgCA5gIAkpBuMGXXAgCSkQIAkp3OMHeCAgCwAA +IAsAAOMHeOwgCwAAIAsAAOMHeOwgCwAAIAuf+OMHeOwAAAAAAAAAAAAAAAAgABOGIAATeCAAF2Ig +ABN4IAAW3SAAE3ggABQqIAAWdSAAFfogABN4IAAVqSAAFWIgABT1IAATZSAAFJ8gABN4IAATeCAA +E3ggABRKAAAAAP///////w/8///w////APwgAKvLIACtQiAArXIgAK04IACs+SAArO8gAKy5IACs +ryAArJ4gAKxKIACtcCAArEAgAKwVIACtciAArAsgAKv5ARAYAQAEAAAAAAAAAAAAAAAAAAoAAAAK +AAAAFAAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEA +AQACAAMABAAFAAYABwAIAAkACgAOABEAFQAZAB4AIwAtADwAUABkAMgBLAGQAfQAAAAAAAAAAAAA +AAAAAAAAAAAAAQABAAIAAgADAAMAAwADAAQABAAEAAQABAAFAAUABQAFAAUABQAGAAYABwAHAAAA +AgAAAAYAAAAKAAAADgAAABQAAAAcAAAAKAAAADgAAABQAAAAcAAAAKAAAADgAAABQAAAAcAAAAKA +AAADgAAABQEAAAcAAAAKAAAADgAAABQAAAAcAAAAKAAAADgAAABQAAAAcAAAAKAAAADgAAABQAAA +AcAAAAKAAAADgAD/AAECAgAAABAgQAAAAAAABAACAAEAAIAAQAAgABAACCBAgAAAAAAAAAAAAAAA +AAAgCKlLIAipSyAIqQMgCKjKIAiokCAIqEsgCKhLIAiqQCAIqkAgCKhLIAiqQCAIqkAgCKhLIAio +SyAIp/cgCKpAIAiqQCAIqkAgCKpAIAiqQCAIqkAgCKpAIAiqQCAIqkAgCKpAIAiqQCAIqkAgCKpA +IAiqQCAIqkAgCKpAIAioJyADCtAAAAABIAMK2AAAAAIgAw8IAAAA/yADCDAAAAD/IAMKvAAAAAIg +AwrAAAAAAyADCsgAAAAHAAAAAAAAAAAgAwqgAAAAASADCqQAAAACIAMKrAAAAAQgAw8IAAAA/yAD +CDAAAAD/AAAAAAAAAAAgAwgwAAAAACADDwgAAAAAIAMJbAAAAAEgAwl0AAAABCADCXwAAAAIIAMJ +iAAAACAgAwmYAAAAQCADCaAAAACAIAMJqAAAAQAgAwmwAAACACADCcQAAAQAIAMJ2AAACAAgAwnw +AAAQACADCgQAACAAIAMKFAAAQAAgAwogAACAACADCjQAAQAAIAMKRAACAAAgAwpUABAAACADCmwA +IAAAIAMKhABAAAAgAwqMAIAAACADCVgAAAAQIAMJYAAAABEgAwlAAAAAACADCUQAAAABIAMJSAAA +AAIgAwlQAAAAAwAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAIAMIwAAAAQAgAwjMAAAA +gCADCNwAAABAIAMI7AAAACAgAwj8AAAAECADCQwAAAAIIAMJGAAAAAQgAwkkAAAAAiADCTAAAAAB +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 +MAAAAB//rpAAAB1AAAD/gCAG3BAgC2Aw4QAuAB//roQf/6pMH/+vQB//qrAAABeA4AAAoOEAMLgA +AIAA4QBgEAAAQADhAhAA4QIwAOECUADhAnAA4QAQCB/84UDhAHtwH/+zwB//s7gf/OAIH/+zvB// +s9gf/7PQH/+z1B//s/Af/7PoH/+z7CAG38Af/7GQH/+sJB/83gAf/600H/+tMB//rdAf/52UH/+w +3B//qjggCwBgH/+vXAAA/4AAAB4gH/+TMB//r2gf/69kH/+vyCALBnAEAAAIBQAAAIP/AACBAAAA +ABAAACoAAAAgAAmsIAMMGB//iZAf/4VAH/+HRB//sKBnRSMB782riZi63P4QMlR2H/+AAAAAPygg +Aw7cz////yALB2AQAAAAP////wIAAABAAAAA//9//yALCIAf/7CQIAAjuCALCLAgCwkgCAAAAAD/ +//8gCwmQ9////yALC4AgACBg//7//yALFmCAAAAAIAMM8AwAAAAAAEAAAAD//wAAgAD/+///D/aA +ACALGdAgCxoAAAEAAAAEAAAgC3RAH/+t4CAAMnggADRYIAAwECALGpAgAC1AIAsbICALG3AgCxwA +BAEACOAAAAAgCxyAIAscQFMAAAAgCxygUgAAACALHOBRAAAAIAHpLB//qqQgCx9wIAsf0CALH6Ag +CyJQH/+uDCALIqAf/52MH/+tsCALJJAUAAAAgAAAAngAAACAAAAGgACwAAAACgAA4zCS///wAIAA +sQDhAZoAAAIAACALJFAf/5sEAAB+QB//reQA/8AAH/+t8B//k7QBAAAAKAAAACYAAAAgCyTAH/+T +8AYAAAAFgAAAH/+p/CsAAAAgAE04IAt28B//q5gDgAAAB////zUAAAADAAAAAD///4BAAAAID/// +H////yAAAAAAAMAAH/+tyD0AAAAf/5l8BwAAAIEEAQCBBAAAH/+sFAAAOpjDAAAAAAAP/wBDAAAA +AAgABAAAAB//q8wgC3dQH/+zNB//sbAf/5jcAAYAAOEAegAf/5lMH/+t1CCgAAAf/6wsH/+dnB// +nYggC3eAAAMHgCALd/Af/5toACAAAABAAAAAAAkAAAAwAv/8+H/AAAAAo/+7AKP/ugANAAAA4AMA +AIP/tgAP////D//4AP8AAAAgC3gwIAsmICALJlAgC3jAAA8AAAAKAAD//wAPA//AAIP/wAAgC3lA +IAt5sB//rrAf/7Ig/2DwAB//sgAf/5LwBIAACB//gFAARAAA/x///wDAAAABgMIAAACBAPAAAACB +gAAA/3///x/84HQf/6jU/7//////AAAAgAAAAACG3R//ntwf/OIAH/+T4O4AAAAAAAm8H/ziDA8A +AAAgCyaQH/+uUAAACLwf/69UH/+fWB//mXgf/4BgIAbdsAAAMAAAACcQH//cgCALgbAgC4GAH/+u +tB//mXAAAP/+H/+dfN6tvu8gAwfgNAAAAD8AAAAf/69wAACJBgCZAAAf/7D4EAAHAgHAgACZAAAA +H/+v4ACIAAiCgAABH/+xSAMVAAADEQAAAA8D/yALKwAf/620IAuCACALK2AgCyuwIAssQCALKzAg +AOT8IAssECALLeAgCy4QIAsuYCALLsAgAOqgKQAAAAAAiRQgAPEEIAuCcCALgtAgAPr4H/+vAPDw +8PD/AP8AqqqqqszMzMwf/7JAAAAfEB//sEgAA///AAAn/yABA3ggC4NAAA9CQCADW7Af/66IAAkA +AAAASACCAAAAIAEneCALg7Af/640OwAACA4AAADQAAAAH/+AoAAAH8oAAAhQAAAfQCALOBAgCzgw +IAs4UAAJAAgf/7FEMAAAAP//9/8gCzqgIANh9AAAg/8gBuL4FaAAACAG4/Af/7EIH/+t3AAACAYA +AIjMfwAAAAAAD/4gC4hwIAuJAAAA4AAgC4ZQIAuI0B//mxwABAP/CgAAACAG4Dgf/62gIAbggB// +njCD/7cAg/+2ICALOtDhAAAAMwAAAB//sRAf/7IEA//gAH///wAAP/aQAAAf2AP/8AAgC2WwIAtl +cCALZdAf/7MQIAs7UBoAAAAgCzugIAF1mB//sQwAD///H/+vMB//rewgC4mQH/+dvB//qlAf/6xE +IABqiCAG3TggAAWIH/+pMB//mpgf/5kYH/+qqCALPrDABAAAH/+sOB//rFAf/7HwH/+xZCALiqAg +Cz7wIAMNoCAAa2jgAQAAH/+e4CALi/AgCz8wIACoGB//ntggAKUYIAuLcCALi8Af/5s8IAtBQOD/ +/gAgC2hQH/+e5CALTOAf/63oH/+VbCALVwAgC1eQH/+xtCALWkAgC1pwSAAAACABvTAf/6uoIAG/ +NB//mcwf/6pMH/+pRB//rDQf/6lsAAAYMAAAFjwf/6x0IAbftB//qfQf/5lQ4QAuAB//rIDhAF4A +4QIOAP//v//hAA4A4QGOAP//vv8f/52EH/+qgCABwqAgAc7I4AUAAAP/AAAf/6m0IAMM+B/8v/88 +AAAAAAX//4MAAAAf/6lMIAHkwCALY/Af/67EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIGAAAAAAAAA//// +/////////////////x///IAf//yAH//8SB///Egf//xIH//8SB//9dAf//j4H//3VB//91Qf//dU +IAawwAAAAAAAAAAAAAAAAAAAAAAgBrQIIAa0CAAAAAAAAAAAAAAAAAAAAAAgBrDAIAawwB//+ewf +//nsH//57B//+ewf//nsH//57AAAAAAgAcO4AAAAAAAAAAAAAAAAAAAAAAIBAAAAAAAAAAAAAAAA +AAAEAAAAAAAAAIGAAAAAAAAQBQAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAgQAAAAAAABgFAAAAgAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +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 +DW8DD+4BDmYCloD4QAgVr/6GACwlBf/+nA2gCQUAAAABEBgBAAEAAAAAAAAAAAAAIANUuyADVR0g +A1SoIANVHSADVKggA1UdIANUvyADVL8gA1UFIANU7SADVNYAAAAAIANd3yADXd8gA1v1IANd3yAD +W/UgA128IANdlSADW/UgA1zJIANb9SADW/UgA1zAIANb9SADXd8gA1v1IANb9SADXd8gA1v+AAAA +AAAAAAADAQACAAAAAAAAAAAAAAAAIAS00CAEtnQgBLgBIAS00CAEt/kgBLfiIAS00CAEtNAgBLTQ +IAS00CAEtNAgBLTQIAS00CAEtNAgBLTQIAS00CAEt9IgBLfCIAS00CAEtNAgBLTQIAS00CAEtNAg +BLTQIAS00CAEtNAgBLTQIAS00CAEtNAgBLTQIAS00CAEtNAgBLZeIAS00CAEtlggBLZYIAS00CAE +tlggBLZYIAS3pSAEtlgAAAAAAAAAAAAAAAAgBNuuIATbriAE2mIgBNuuIATXHSAE26QgBNuAIATX +HSAE1x0gBNcdIATXHSAE1x0gBNpGIATbriAE1x0gBNpGIATbrgAAAAAAAAAAAAAAACAE7DMgBOq8 +IATuoyAE7mMgBO4rIATt7SAE7csgBOsQIATtpyAE7WsgBO0TIATsvSAE7HMgBOxLARAYAQACAAAB +EBgBAAIAAAAAAAAAAAAAIAWZVyAFlOwgBZkrIAWY/yAFmNIgBZi9IAWVEyAFlSogBZikIAWVXyAF +lUsgBZUTIAWVXyAFlRMgBZUTIAWVEyAFmVcAAAAAAAAAAAAAAAAAAAAAIAXo4CAF4wAgBeKsIAXg +YCAF3MAAAAAAAAAAACAF4ukgBeLlIAXi5SAF4uUgBeLpIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLl +IAXi5SAF4ukgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUg +BeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF +4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi +5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4ukgBeLlIAXi5SAF4uUgBeLpIAXi5SAF4uUgBeLl +IAXi6SAF4uUgBeLlIAXi5SAF4ukgBeLlIAXi5SAF4uUgBeLpIAXi5SAF4uUgBeLlIAXi6SAF4uUg +BeLlIAXi5SAF4ukgBeLlIAXi5SAF4uUgBeLpIAXi5SAF4uUgBeLlIAXi6SAF4uUgBeLlIAXi5SAF +4ukgBeLlIAXi5SAF4uUgBeLpIAXi5SAF4uUgBeLlIAXi6SAF4uUgBeLlIAXi5SAF4ukgBeLlIAXi +5SAF4uUgBeLpIAXi5SAF4uUgBeLlIAXi6SAF4uUgBeLlIAXi5SAF4ukgBeLlIAXi5SAF4uUgBeLl +IAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUg +BeLlIAXi6SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi6SAF +4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi +5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi6SAF4uUgBeLlIAXi5SAF4ukgBeLl +IAXi5SAF4uUgBeLpIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUg +BeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF +4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi +5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLlIAXi5SAF4uUgBeLl +IAXi5SAF4ukAAAAAAAAAAAAAAAAgBeMzIAXkvSAF5n8gBeZxIAXmXCAF5k4gBeYzIAXmJSAF5gog +BeX9IAXl6iAF5d0gBeXKIAXlvSAF5aogBeMuIAXlliAF5YkgBeV2IAXlaCAF5VMgBeVKIAXlOyAF +5UogBeU7IAXlLSAF5RggBeMuIAXjLiAF4y4gBeMuIAXlCyAF40wgBeMuIAXjLiAF4y4gBeTuIAXk +1SAF5MsgBeSsIAXjLiAF5JkgBeR/IAXkbCAF5FIgBeQ/IAXkJyAF5BQgBeQBIAXjoCAF4y4gBeMu +IAXjLiAF4y4gBeMuIAXjLiAF42kAAAAAAAAAAAAAAAAgBeksIAXpNiAF6sogBeqfIAXqmCAF6pEg +BeqKIAXqgyAF6nwgBep1IAXqbiAF6mQgBepaIAXqRCAF6h0gBen1IAXp7CAF6dEgBenHIAXpuSAF +6akgBemiIAXpjCAF6YUgBekeIAXpXiAF6VQgBelKIAXpQwAAAAAAAAAAAAAAACAGfaAgBnr0IAZ5 +iCAGdyQgBnTAIAZv4CAGcoAgBnMwIAZufCAGdYwAAAAAAAAAACUoAw8IEqWog46TkgAAAABSVgAA +EAAAAGNvbmZpZ3VyYXRpb24gZmlsZSBwYXJzZXIgZm91bmQgYWRkaXRpb25hbCBjb25maWd1cmF0 +aW9uIGFmdGVyIFtmaW5pXQoAADAAAABmY29lAAAAAHZuaWNfaWQAdmxhbgAAAAB0b3MAZXRoZXJ0 +eXBlAAAAbWFjbWF0Y2gAAAAAbXBzaGl0dHlwZQAAZnJhZ21lbnRhdGlvbgAAAGJhc2ljdmlydHVh +bAAAAABnbGJfa2V5AGdsYnZmX2tleQAAAHBmdmZfa2V5AAAAAGlkeHZmX2tleQAAAHN5bm1hcGVu +AAAAAHN5bjR0dXBlbmlwdjYAAABzeW4ydHVwZW5pcHY2AAAAc3luNHR1cGVuaXB2NAAAAHN5bjJ0 +dXBlbmlwdjQAAABvZmRtYXBlbgAAAAB0bmxtYXBlbgAAAAB0bmxhbGxsa3AAAABoYXNodG9lcGxp +dHoAAAAAbGFuAHdhbgBjbHVzdGVyAG1hbnVhbAAAdHBfcGlvAAB0cF90bV9waW8AAABuaWNfdm0A +AG5pY191bQAAbmljX3VtX2lzZ2wAbmljX2hhc2hmaWx0ZXIAAG9mbGQAAAAAcmRkcAAAAAByZG1h +YwAAAGlzY3NpX2luaXRpYXRvcl9wZHUAaXNjc2lfdGFyZ2V0X3BkdQAAAABpc2NzaV9pbml0aWF0 +b3JfZm9mbGQAAABpc2NzaV90YXJnZXRfZm9mbGQAAGZjb2VfaW5pdGlhdG9yAABmY29lX3Rhcmdl +dABwb2Zjb2VfaW5pdGlhdG9yAAAAAHBvZmNvZV90YXJnZXQAAABpc2NzaV90MTBkaWYAAAAAaXNj +c2lfaW5pdGlhdG9yX2NtZG9mbGQAaXNjc2lfdGFyZ2V0X2NtZG9mbGQAAAAAdGxza2V5cwBjcnlw +dG9fbG9va2FzaWRlAAAAAHBwcABkY2J4AAAAAGIyYgBzb2NrZXRudW0AAABjZWUAaWVlZQAAAABh +dXRvAAAAAGFuX2RpcwAAcGRsaXRlX2RpcwAAIAMVNAAEAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAA +AAAgBm5AAAAAACAGbZggBmsoIAZqACAGSeggBe+YIAXcGCAF2wAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAgBE7cIARbkCAEW5AgBFuQIARriCAEgeggBJCMIASaJCAES9ggBElIIAQ/pCAEs6AgBD1U +IAQ6GCAF2tQgBdmsIAXS8CAEW5AgBdIYIAXQvCAFz/AgBrc4IAO20CAEDVwgBof8AAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgA1LUIAM8MCADTJQgA0oAIANIhAAAAAAgA0YsIANSDAAA +AAAgBDFwAAAAAAAAAAAAAAAAAAAAAAAAAAAgBqRsIAajfCAGvuwgBqNsIAajqCAGooQgBqRUIAai +GCAGvtwgBqNY/xgwYGAAAAAAAQIDAAAAAAAAAAAAAAAAIAZ+SCAETTggAGXkAAAAAAAAAIEAAAAA +AAAAAAAAAAAgBCg8IAQpyCAEKWQgBCncIAQoWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg +BCjsAAAAAAAAAAAAAAAAMDEyMzQ1Njc4OWFiY2RlZkFCQ0RFRgAAAAAAAAAAAABBQkNERUZHSElK +S0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvAAAA +AAAAAAAAAAAAAAAAACAAIowAAQAAIAAibAAFAAEgACJQAAMABSAAIjAABwAAY4JTYwAAAAD///// +//8AAAAAAAgAAAAFAAAABwAAAAAAAACIAAAAhQAAAIcAAAAAAAAAQAAAAQAAAAKAAAAAAAAEBAgA +BAQIAAQECAAAAAAAAAAAAAAAgAAAAgAAAAKAAAdDAAAAAAAAAAAAAAAAAP////////////////// +//8AIQAJAIEAQQAhAAkAIQAJAIEAQQCBAEEAgQBBAIEAQQAhAAkAgQBBACEACQAhABEAgQBBAIEA +QQAhAAkAgQBBACEACQAhAAkBAQBBAIEAIQCBACEAEBBhAQEAgQEBAIEDAgEABAAAAAAAAAAAAAAA +AAAAgAAAAQAAAAIAAAAEAAAACAAAABAAAAAAAAAAAAAgAwgwAAAAACADDwgAAAAAIAMINAAAAAEg +Aw90AAAAAiADCDwAAAAEIAMIRAAAAAggAwhMAAAAECADD3wAAAAgIAMIUAAAAEAgAwhcAAAAgCAD +CGgAAAEAIAMIdAAAAgAAAAAFAAAAAwAAAAEAAAACIAaBtCAGgWwgBoBcIAZ/FCAGftQgBn6oIAZ+ +/AAAAAAAAAIAAAAEAAAACABZZXMAMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6 +AAAAAG5vbmUAAAAAYWxsACoAAABkaXNhYmxlZAAAAABlbmFibGVkADB4AABOQQAAVjAAAFYxAABW +MgAAVjMAAFY0AABWNQAAVjYAAFY3AABWOAAAVjkAAFZBAABWQgAAVkMAAFZEAABWRQAAVkYAAHBv +cnQAAAAAcHJvdG9jb2wAAAAAZ2xvYmFsAABmdW5jdGlvbgAAAABmaW5pAAAAAHJlZwBmaWx0ZXJN +b2RlAABmaWx0ZXJNYXNrAAByc3NfZ2xiX2NvbmZpZ19tb2RlAHJzc19rZXltb2RlAHJzc19nbGJf +Y29uZmlnX29wdGlvbnMAAHNnZV90aW1lcl92YWx1ZQB0cF9wbXJ4AHRwX3BtcnhfcGFnZXNpemUA +AAAAdHBfcG1yeF9mbGFncwAAAHRwX25yeGNoAAAAAHRwX3BtdHgAdHBfcG10eF9wYWdlc2l6ZQAA +AAB0cF9udHhjaAAAAAB0cF9tdHVzAHRwX3RjcHR1bmluZwAAAAB0cF90aW1lcnJlcwB0cF90aW1l +cnZhbHMAAAAAdHBfYmFja29mZnZhbHMAAHNjaGVkX2lvcXR4X2JwX3ByaW9yaXR5AG52ZgB3eF9j +YXBzAHJfY2FwcwAAbmlxZmxpbnQAAAAAbmVxAG5ldGhjdHJsAAAAAG52aQByc3NudmkAAHJzc25z +ZWNyZXQAAG5leGFjdGYAbnJhd2YAAABjbWFzawAAAHBtYXNrAAAAbmV0aG9mbGQAAAAAbnJvdXRl +AABuY2xpcAAAAG5maWx0ZXIAbnNlcnZlcgBuaGFzaAAAAHRwX2wydAAAdHBfZGRwAAB0cF9kZHBf +aXNjc2kAAAAAdHBfc3RhZwB0cF9wYmwAAHRwX3JxAAAAaXNjc2lfbnRhc2sAaXNjc2lfbnNlc3MA +aXNjc2lfbmNvbm5fcGVyX3Nlc3Npb24AaXNjc2lfbmluaXRpYXRvcl9pbnN0YW5jZQAAAGlzY3Np +X21heF9zZ2UAAABwcG1fbWF4X3pvbmVzAAAAcHBtX3pvbmVfcmFuZ2UwAHBwbV96b25lX3Jhbmdl +MQBwcG1fem9uZV9yYW5nZTIAcHBtX3pvbmVfcmFuZ2UzAGZjb2VfbmZjZgAAAGZjb2VfbnZucAAA +AGZjb2VfbnNzbgAAAGZjb2VfbmZjYgAAAGRjYgBkY2JfYXBwX3RsdgBkY2JfZGNieF9wcm90b2Nv +bAAAAGJnX21lbQAAbHBia19tZW0AAAAAaHdtAGx3bQBkd20AZGVib3VuY2V0aW1lAAAAAGFuX2Fl +Y190aW1lAHZlcnNpb24AY2hlY2tzdW0AAAAAU2Vzc2lvblR5cGUAT0ZNYXJrZXIAAAAASUZNYXJr +ZXIAAAAARGF0YURpZ2VzdAAASGVhZGVyRGlnZXN0AAAAAEVycm9yUmVjb3ZlcnlMZXZlbAAASW1t +ZWRpYXRlRGF0YQAAAERhdGFQRFVJbk9yZGVyAABEYXRhU2VxdWVuY2VJbk9yZGVyAEluaXRpYWxS +MlQAAE1heENvbm5lY3Rpb25zAABNYXhSZWN2RGF0YVNlZ21lbnRMZW5ndGgAAAAASW5pdGlhdG9y +TmFtZQAAAEluaXRpYXRvckFsaWFzAABEZWZhdWx0VGltZTJXYWl0AAAAAERlZmF1bHRUaW1lMlJl +dGFpbgAATWF4QnVyc3RMZW5ndGgAAEZpcnN0QnVyc3RMZW5ndGgAAAAATWF4T3V0c3RhbmRpbmdS +MlQAAABUYXJnZXROYW1lAABUYXJnZXRBbGlhcwBUYXJnZXRBZGRyZXNzAAAAVGFyZ2V0UG9ydGFs +R3JvdXBUYWcAAAAAQXV0aE1ldGhvZAAAU2VuZFRhcmdldHM9QWxsAENIQVBfQQAAQ0hBUF9JAABD +SEFQX0MAAENIQVBfTgAAQ0hBUF9SAABEaXNjb3ZlcnkAAABOb3JtYWwAAE5vbmUAAAAAQ1JDMzJD +AABDUkMzMkMsTm9uZQBOb25lLENSQzMyQwBDSEFQAAAAAENIQVAsTm9uZQAAAE5vbmUsQ0hBUAAA +AE5vdFVuZGVyc3Rvb2QAAABJcnJlbGV2YW50AABSZWplY3QAAE5vAAA1AAAAQ0hOZXQgMS4wMAAA +AAAADAAAAAABAAF8AAwBAAAAABAAAAAUIAbXYAAAAxUOQAAAH/wAAB/8AAAf/7QAH/+0ACAG34Ag +BuQwIAkp4CAJKeAgCgAAIAqAACAKgAAgCuaAAAAAAB//rgwgCwAAIAsAMB//sRQf/5MwAA///x// +rCQf/N4AH/+wkAQAAAiBAAAAGgAAAB//sNwgCwCAIAbfwIP/twCAAAAAAAD//4P/tiAgC2YQH/+u +iB//sPgf/60wH/+t8B//sKAwAAAQIAtmUCALZrAf/7J0H/+seB//lYThAZYAIAbj8CAG4fQgAwfg +F5AAABSwAAAAAGAAgAAABCAG4/oAAB/KAACD/xWgAAAgAwAAFqAAAAhQAQAgoAAAP/AAACOgAAAD +/wAfAMAABB//snggBrJQKgAAACADQeQgC2bgIAtnICAGshTerb7/GsAAACAG4vgAAP/qIAbkAAAA +CBQAAIgAAACAAB//rdwf/65gAAAnEAAehIAAAEAAIANbsB//r1QAEAAAH/+sUB//r1ggAwAQIAtn +4CALZ7ABAAAAKAAAAOEAAAA4AAAA/z///zAAAHQf/4VAIAMAQCALANAwAAAIMAAADDQAAAjQAAAA +DgAAAAAAiRQ7AAAIIAbiCDSQAAAgBuHABV1KgCADYfQAGAAA/wf//wA4AAAAMAAAIAtoAAAACADh +AY4AAAGRDCALaQAgC2iwIAtpMP//8/8gC2jgIAsCcAAAQA4AAEAaIAsCoAAAEAAAAP/pAAD/4AAA +UAAAAP/4AABADQAA//cAAA//AAAPQgAA//UAACBAAAAgAAAAxBAAAMABAADIICALAwAgCwMgAADE +AAAAyAAAAMQwAADEMQACEAjg//4AIAsDQP//9/8AAOgAIAsDYAAAyBAAAMRFAAAQAQAAIHwAADIA +AADMAAACSe8AAknw4QBeAOEALgAgC2yAIAts4AgAAAAf/OB0IAOQGB//rewgCwQwIAsFYCALBGAP +PAAAIAsE8CAD+pggA/x4IAsFwA8AAAAgCwYgH/+HEB//iAAgCwaQIAsG0CALBxAgAwzAIAMMQCAL +bnAgAwwgIAtuoCALbVAgC22wIAtuEB//rkQf/5O04AAAAAAPQkAgACKsAAIAAAD///8gC27AIAsH +oCALCAAgCwhQIAsH0CAD2FQACAAAIAPdOB//reAgCwngIAbdsCAAHtQAD/wAH/+ZeB//msAAADAA +IAsKICALCrAgCwtQVQAAABAAAAAgC29gIAMNOAAACAYgCwvgAAAP/iADuMgCAAAAIAO9nB//rrQg +CwwwH/+uMB//qpwgCwzwIAtvgCALDJAgA6mwIAOzhCALDVAgCw3AIAsOECALcBBAAAAAAADwACAL +DlAgCw7AIAsPICALD5AgBuLAIAsQECALEFDv////9////yALELAgCxEA/f///yALE9AgCxFgIAsR +0CALEjAgA8AUIAsSkCALEvAgCxNAIAsTgCALcFAgAw0wIAMM8AwAAAAf/4dwH/+IcCADDuAf/4dQ +P////8////8gCxQwH/+ILB//reQgCxRwIAsUsCALcHAgCxUwf///q///LlwAANGk///QTQAAnE4g +CxWwIAsVcCALFPAf/4dsAABIACADDPQf/4doH/+H0CALFfAgA+DkIAsWoB//rfwgC3EAIAtwkCAL +cOAgA+PEA//QAABAAAAAUAf/AAEAACALchAf/5pAIAtxgCADqYggC3JAIAsXMP/9//8gCxdwH/+u +OCALGIAgCxfAAExLQCAD4KAgCxgQIAsYwAQBAAgAIAAAIAPClCALGPAgCxlAIAsZoCALbyAgA/NU +IAtu8CALHSAAAI4CIAsdkCALHeAgCx4wIAsdUCALHoADgAAAIAse0CALHyD/9///IAsgECAD7mAg +CyDQIAshkCALctAf/6xgIAtyoCALcwAgA/GYIAtzICAD8mQgA+x4IAPhACALc1AgC3OQIAtz0CAL +IdAgCyIQAAAXcCADCoQgC3UwIAt04CALdMAgBA9UIAt0kCALdRAgAwoEIAMKZCALIvDhAhYA4QIa +AP//yP///xf///8f/wACGRwAAhl8AAIZnAACGfwf/634///x/wACGQDAAAAAAAIaJAACGqQAAhoo +AAIaqAACGjQAAhq0AAIaMAACGrDhAg4AAAAThyADC1QgAwtEBAAAAeECEgAAACHBIAsjQAACEOD/ +/7//AAIcIOEAegAgCyNwH/+sgCALI5AgCyPAIAsj4B//q0wgCyQQH/+qaOEAfgAf/6yQAADz/wQA +AAAUAAAAIAQvIB//lTjgAAkkAJwAACALJRAgCyXwIAslwCALdrAgCyWQH/+eTCALJVAAAgTA4QIC +AOEAjgAf/5VsAACWgAAAlkAgBt+AAACWoAAAlmDhAgAs//8AAAAB4ADhAZIAAAHjAAYAAAAgBEF8 ++AAAAAH//+cAAcAAIAAAgAQAEAAf/6p44QGaAOEBmkDhAZo84QGaOOEBmjThAZowH/+u4CADCgwg +AwocIAMKFCADCiSAAAADgAAAAv/8///hAQ4AH/+t9H////8f/5UcH/+VnCAETtwgC3ogIAt6YCAL +epAgC3rQIAt7ACALe0AgC3twIAt7sA////D/8AAAIAt8EB//mpQf/7GQH/+pdCAEW5AgC30QIAt9 +QCALfLAgC3xQH/+aPB//nFQAAP+AH/+TsCALJtAgCycAAAQAAP/7///hAeLAH/+q+OEB/gCQAADw +/P+AwAIAACD+/4DAIAsnUCALJ5AAAPgAAAIBCAACAQyP////H/+shOEBmAAgCyfgIAsoMCALKGAg +Cyig4QDeAAACAwgAAgIA///wAOEA7gD//3//AAD8AB//rhQAAOAAAAAMAAACAwQAAREcAAERGCAL +fhAAEAgAgAAIAAACAQT//8AAAAD//gAAJYAAAgMAH/+sfOD/4sAgC31wH/+rWCALfmAgC36QIAt+ +sAAA//0gC35AIAMAkAAA//MgC37QIAt+8AAAKjAgC38QAAD/jwAAUrUAAEgKAACPggAAj4YAADgA +AACPigAA4z8AAIOuAAD/8SALKPD//8+/AAAQQCALfzAgC39gAAASACALKSAAAhkEIAMNgB//rgAg +CylAIAMAoCALKaAgCylwAIAAAB//nkggC3+w///2JCALgEAAAhYIfz///wAA//sAAP7/AAD/wAAA +/z8AAPn/IAt/4CALgJAgC4EQIAuAwCALKlAgCyoQIAsp4CALKnAgCyrA7gAAAAHAgAAQAAUNCQAA +AB//r+AgAwFQAACDACALLYAAAIIAIAssoCALLPAgCy0wEAAHAgAAwAAgC3WQIAt1UAAADLwAAIkG +IAsvICALZ2AiIiIiH/+ZvCADAaAgCy+AIAsvUCALMnAgCzIwIAsx8CALMbAgCzFwIAsxMCALMOAg +CzCgIAswUCALMAAgCy/AIAuEICALhFAgC4SAIAuEwCALhQAgC4UwIAszoCALM1AgCzKwIAsy8AAA +gMIAABshIAsz0CALhWAgC4WgIAsz8CAG37AA/8AAEgAAACAFCYAgCzSgIAs0YB//riQgCzVAIAs1 +gCALNOAgCzXgIAuFwCALNwAgAwywIAs2MCALNyAgCzaQIAUR/CALhqAAAB9AAAAQNv//7/8f/7J8 +H/+xCAAACFAgCzdgIAs3sCALN5AA///8MgAAAB//svogAwHYM5AAACAG4fggC4cAIAuHYCALh0Ag +C4egIAs30CADbLwgAwHgIAs4gAAAgAUAAIAHIAs4sIGAAADerb7vIAs48AAAg/0wAAAcMAAABDAA +ABQAAP/v//7//x//sbQA//AAACgAACALOSAAAAhAIAs5UAD///ogCzmgMAAAADAAADQAAIABIAMB +8AAAgAIgBWkIIAuIMBAABRCZAAAANAAAACALh+AgCzngABkAACALOjAgAw2QAAASDyALOmAf/6no +H/+xRAMVAAAFAAAAg/8AGyALOxAgBb/I//9AACALiVAgCzvgIAs8YCALPLDhAZGsAAGRrL/////f +////IAs84AsAAAAgBcZUIAs9UCALPcAgCz4wIAs+YCALidAgC4pQH/+VfCAEnAggAwpEH/+cwAAB +OIDgAAYAAAInECALiwB///8PH/+tUPwA///hAJYA4QCaAAAACf8AALAAH/+ufCADAkAgCz+A4QAO +AAMAAADhABIAEwAAABEAAAAf/AAAH/+tzCALP8AgC4wgAAGUjwABlM8gAwJgH/+r8B//naQgAwYw +IAtAACALQEAgBtwQIAtAcB//k+Qf/6wcIAMHIB//nKwf/5s8H/+VdCALRmAgC0awIAtHECALR+Af +/6uYAD///x//m1Qf/6xMAAD/lwAA/tX//6uTH/+t2MIAAA4F3AEAA/8AAMAAAAEgC0hQIAtIkCAL +SOAgC0kgIAtJcCALSbAf///wH/+uxAIAABAf/5NQH/+dMB//lagAAv//AACcQCALdlAgC0vwIAtM +YB//rGQgC00gIAt10CALTbAAAP4AIAuT8AAFAAIbAAAAOsAAACALTfAgBgZoIAuUsCALlEAgC5SA +IAYM8CALlCAAAMAQAAJiWgAAwzAgAAAA8ADDcBAQAAAgEAAAABAHYP/v+J8e/gAA4QIYDCALTiAf +/5VwAAD/3x//rrAgC5DQAAGQ+CALkRD//Ph/IAuRgCAG3Tgf/5PMAAATiCALTlAAAwACIAtO0CAL +ToAgC08AIAt/gCAGMZgf/6tUAAAYICALlPABMPjAAAGGoACYloACYloABfXhACALT2AgC09A/gAA +AABf9qcAsjfHYgAAAB3///8gC5UwIAtP4CALUCAgC0+AIAtPsCALlZAgC5YQIAuV0CADC2QAABkA +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 +CQkICAsLCgoAAAAAAAAAAAAKABQAjACCAGQAWgCgAJYAeABuAFAARgA8ADIAKAAeAAoEzgSSCc4J +kgKyBFYE4gSmA7YEGgeyCVYGXgJ2CeIJpgdOAjoItgkaCBYGIgLGBGoAlgN6AXIHdgC+A94E9gS6 +BEIDogJiBzoGDgCCA8oELgBuAFoDKgE2AeoDPgfGCWoBSgcSBZYIegbCAf4GcgKKA1IF5gW+CN4B +mgfaCfYJugl+B54JQgiiCQYBXgdiAk4HJgMWASIFgghmBaoIygkuCI4BDgVuBVoFRgbWCCoGNgIS +AcIG6gg+AOYGhgLaBH4CngQGBkoCJggCA2YAqgOOBfoARgHWBv4GrgXSAYYHigjyAwIIUgD6BTIB +rgDSA/IH7gAyBpoC7gUeAB4FCgAACcQJiATYBJwHqAlMCdgJnAisCRACvARgAWgHbATsBLACWAcw +A8AEJAMgASwHvAlgBYwIcAZoAoAFtAjUCewJsAk4CJgHWAJEARgFeAjACSQFZAVQCCAGLAbgCDQC +0AR0BkACHACgA4QBzAb0AXwHgAhIAPAAyAPoBpAC5AUABMQEiAKoBEwDrAQQBlQCbAdEAjAIDAYY +AIwDcAC0A9QEOAOYBgQAeABkAFAB4AM0AUAHCAa4AfQDSAXcAZAH0Al0B5QI/AFUBxwDDAhcBaAI +hAEEBTwGzAIIAbgA3AZ8ApQD/Af4A1wF8AA8BqQFyAjoAvgFKAGkB+QAKAUUABQAAATJBI0JyQmN +Aq0EUQTdBKEDsQQVB60JUQZZAnEJ3QmhB0kCNQixCRUIEQYdAsEEZQCRA3UBbQdxALkD2QTxBLUE +PQOdAl0HNQYJAH0DxQQpAGkAVQMlATEB5QM5B8EJZQFFBw0FkQh1Br0B+QZtAoUDTQXhBbkI2QGV +B9UJ8Qm1CXkHmQk9CJ0JAQFZB10CSQchAxEBHQV9CGEFpQjFCSkIiQEJBWkFVQVBBtEIJQYxAg0B +vQblCDkA4QaBAtUEeQKZBAEGRQIhB/0DYQClA4kF9QBBAdEG+QapBc0BgQeFCO0C/QhNAPUFLQGp +AM0D7QfpAC0GlQLpBRkAGQUFAAAJvwmDBNMElwejCUcJ0wmXCKcJCwK3BFsBYwdnBOcEqwJTBysD +uwQfAxsBJwe3CVsFhwhrBmMCewWvCM8J5wmrCTMIkwdTAj8BEwVzCLsJHwVfBUsIGwYnBtsILwLL +BG8GOwIXAJsDfwHHBu8Bdwd7CEMA6wDDA+MGiwLfBPsEvwSDAqMERwOnBAsGTwJnBz8CKwgHBhMA +hwNrAK8DzwQzA5MF/wBzAF8ASwHbAy8BOwcDBrMB7wNDBdcBiwfLCW8Hjwj3AU8HFwMHCFcFmwh/ +AP8FNwbHAgMBswDXBncCjwP3B/MDVwXrADcGnwXDCOMC8wUjAZ8H3wAjBQ8AAAAKAIwAbgCWAHgA +PABQAKAAggBkADIARgBaACgAHgAUAAAAhwBpAJEAcwA3AEsAmwB9AF8ALQBBAFUAIwAZAAAAADAE +AAAwEAAAWQgAAFmkAAGUMAAAECQAABAwAAAQPAAAENwAAHssAAB7NAAB4owAAeaMAAHqjAAB7owA +AfKMAAH2jAAB+owAAf6MAACNzAAAfnQAAI/cAAGRWAAAj/wAAHUcAAB1GAAAdRAAAHfgAAB35AAA +d/QAAZw8AAEQdAABEIQAAJQIAACYXAAAlgwAAJYUAACWIAAAliwAANAoAACQCAACENwAAjDcAAJQ +3AACcNwAAZBUAABgHAABoNgAAZCQAAB34AAAd+QAAHf0AAB5eAAAefgAAZQEAAHjwAAB58AAAevA +AAHvwAAB88AAAffAAAH7wAAB/8AAAZQMAAAwAD///8AAADAIP///wAAAWRCsgAAAAABZrH4lAAAA +AZQQH////wABlDQAAAARAAGUCB////8AAZQ4AAAAEQAAECh/////AAAQLH////8AABA0f////wAA +EDh/////AAAQQA9EAAAAAHsoAB//4gAAezA//+7/AAB7OAAAAAEAAHtAP//u/wAAfCQAH//iAAHi +iAAIAAAAAeaIAAgAAAAB6ogACAAAAAHuiAAIAAAAAfKIAAgAAAAB9ogACAAAAAH6iAAIAAAAAf6I +AAgAAAAAjcj/////AACN0P////8AAH5wf7///wAAfnh/v///AAB+AALAAAAAAZFUAf///wABkZwB +////AACP2AB///0AAI/4/////QAAdRQAAAAHAAB1DAAAAAsAAHfcAAAAAwAAd/D/////AAGcOAAB +gEAAAZz4AAAAAwAAkAQAAAA+AAEQeAD///8AARB8AP///wABEIgAAAAAAACUBAAA//8AAJQQAAD/ +/wAAmFQAAAH/AACYWAAAAf8AAJYIAAAAAAAAlhAAH///AACWGAAf//8AAJYcAA///wAAliQAD/// +AACWKAD///8AAJYwAP///wAA0CAAAAAHAADQJAAAAAcAAhDYAAAAAwACMNgAAAADAAJQ2AAAAAMA +AnDYAAAAAwABkFAAAAAvAAGg1AAAAYMAAZCMADgAAAABkJgAOAAAAAB5dAAAAC8AAHlwAAAABQAA +efQAAAAvAAB58AAAAAUgAw+kIAjWLCADD6ggCOZwIAMPtCAI5ZwgAw/AIAjlTCADD9QgCORoIAMP +4CAI47ggAw/4IAjiUCADEAggCOE4IAMQECAI4RAgAxAkIAjg6CADEDQgCOC4IAMQQCAI35wgAxBI +IAjfdCADEFwgCN9AIAMQaCAI3dQgAxBwIAjdLCADEIAgCNwoIAMQjCAI2xggAxCcIAjaECADEKwg +CNjkIAMQxCAI1fQgAxDIIAjVeCADENAgCNVAIAMQ2CAI1QggAxDkIAjU0CADEOggCNSYIAMQ9CAI +1GAgAxD4IAjVsCADEQAgCNQoIAMRDCAI0/AgAxEUIAjTuCADERwgCNOAIAMRJCAI0LAgAxEsIAjT +MCADETggCNMoIAMRQCAI0vAgAxFIIAjSuCADEVAgCNKAIAMRWCAI0kggAw98IAjO1CADEWAgCM6c +IAMRaCAIzmQgAxFwIAjOLCADEYAgCM30IAMRiCAIzbwgAxGQIAjNhCADEZggCM1cIAMRpCAIzTQg +AxGwIAjNBCADEcggCMzcIAMR5CAIzLQgAxH0IAjMjCADEgQgCMxkIAMSFCAIzDwgAxIkIAjMFCAD +EjQgCMvsIAMSRCAIy8QgAxJQIAjLnCADElwgCMt0IAMSaCAIyzggAxJ0IAjKHCADEnggCMhMIAMS +hCAIx2ggAxKYIAjHOCADEqAgCMcIIAMSrCAIxtggAxKwIAjGqCADErQgCMZ4IAMSuCAIxkwgAxLI +IAjF9CADECwgCMUAAAAAAAAAAAAgAxLUIAjE2CADEtwgCMSwIAMPiCAI6WAgAw+QIAjokCADD3Qg +COfgIAMPnCAI5zgAABAhIEIwY0CEUKVgxnDngQiRKaFKsWvBjNGt4c7x7xIxAhAycyJSUrVClHL3 +YtaTOYMYs3ujWtO9w5zz/+PeJGI0QwQgFAFk5nTHRKRUhaVqtUuFKJUJ5e71z8Ws1Y02UyZyFhEG +MHbXZvZWlUa0t1unepcZhzj33+f+153HvEjEWOVohninCEAYYSgCOCPJzNnt6Y75r4lImWmpCrkr +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 ++//iHaMLBQBbcJbVoPv/4h2hiwUAW3CTmhf7/+IdoIsFAFtwkJoV+gACHe/69QBbcI0U5SouEhuN +RS8SGYxEDt0ojkcMKyibFA/uKK27LxIajUYP3SgvEhau3Y5JrbuNSA/uKC8SGA/dKC8SFK7djkut +u41KD+4oLxIVD90oLxITrt2OT627jU4P7igvEhIP3SgvEhCu3S5CG627jU0P7igvEhEP3SiPH67d +LkIcrbstQhgP7iiPHg/dKI8crt0uQhqtuy1CGQ/uKI8dD90ojxqu3S5CHq27LUIdD+4ojxsP3SiP +GK7dLkIgrbstQh8P7iiPGQ/dKK7drbsuQiMtQiIH7igG3SiPF67drbsuQictQiYP7igF3SiPFa7d +rbsuQigtQiQP7igK3Siu3a27HeTslhEt0X+XEpUTfcsJhRT6IAYVoAAyAPogBhWgBQUA9WAARXCL +BQBYAkrZoOekAAgECoAA+0BIUBIAnQBkUEWPRA8CAA8CAPHjUA3gBgUA6hYeLSgEgAD6oGgdr/v1 +APxgaB3v/PUAW/4NWk2niETlJQgDMAUAAA8CAHhj2SkSHgJnKKeXiBbTDw8CAGSAZiUSBiiKAA8C +AAhVAQJVLCUWHAUlKPqgaB2giwUAWAIp+0BC8BIAnQApEhwPAgDjFhckgamAAMBQ5jQADRgEgAD6 +YGgdr/v1APzAaB3v/PUAW/3vWk2JKhIc4yMIAqgFAAB6WdsjEhcrEh3jFhcltFmAAPIAAh3gBQUA +JkLnpWaTYCxCyYhEfDMJrIj4YAcLogCdACxCyolFfDMJrJn4YAj74gCdACxCy4pGfDMKDKoI+mAJ +o6IAnQAsQsyLR3wzCay7+mAKU+IAnQAsQs2NSHwzCazd/GALA+IAnQAsQs4uQgl8MwoM7gj+YAuj +ogCdACxCz49KfDMJrP/+YAxT4gCdACxC0IhLfDMJrIj4YA0DogCdACxC0SlCD3wzCgyZCPhgDePi +AJ0ALELTik58MwmsqvpgDtOiAJ0ALELUi018Mwmsu/pgD8PiAJ0ALELSjUz8YBDrogCdAKzd/GAQ +muAeVQD+wIYdoADmAAAAAAAA6nQACdgEgAD8IugV4A8FAP7Ahh3v/PUAW/2h9kAAQ//59QD5QAYV +4AgFAJhnWk02KhIdJV0B5VyAIZgFAAD6f/ZFIgCdAGAFPwAAAAAAAADqdAAJ2ASAAPwAAh3gDCUA +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 +4jZEIX0RgADaIFv9A+evhG0QBIAAY/8swKL9eT4FoAsFAFtrpWP/cWwQBBO6W/JoaBWgCgUAW2Y0 +/UBoHaCJBQDqJAAOQASAANMP0w9tmg/pggAkQBEAAOmmACVQEQAA+4BoHaILBQBbbTHiNkMhAEmA +AMAg0Q8A/XkSBaAKBQD6AAId7/21AFtri8cr0Q8AbBAGGLpvGbyCHrnqHbyCLZYW/yLmFaALBQD7 +JgQd4ApFACqUYhy8fMfwD8wBLIa2HLx7KIKuKZLomRD4ICYVoI8FAFtrecAg0Q8AAGwQBBm8dBe8 +dCqSgSp22PkwSBXgCkUAKnYzKnYyKnY2KnZAKnZBKnY8+PsmFeAIBQD46mYVoAOFAPLkphXgCBUA +KHY+KHY5F7pNEro0G7npI3B9IiKB/XYeBaQEBQDyAAAHdA0FAO7bOQE8KoAAK8V+0Q8AErsIH7nf +CDUC9O+mHeBVAQAFTzkvJX7RDwAAAGwQBBu8Uhq8Uhi8UsDA6rZ/JVEDAAD7D+YVoIuFAFtkhx26 +Ahy8TezWQyZgCwAALNZE0Q9sEAQauo7ruqYRDVkAAGgibuSQhGSQBQAA/EJgEVAEFQBgADhpZAUF +qAgnhgBySyzqNAAKWASAAFtof+hhFGIgBQAA5akICxd0AAD3IAQd7/96AKWr92AGHe//UgDRDwAs +oqkpsoajzAnMEeyZCAMN3QAAaGJ2aWTjpZ2X0NEPABm6m6k5KZB9aEA25JBlYhAFAAByQ5lj/8Ms +oqkpsoajzOnMEQIgBQAA7JkIAwxtAABoYh1oZCTyn/urogCdAGP/mmWfS2P/lKWY9wAGHe//pgCl +mvdABB3v/34ApZv3YAYV7/9WAKWcJ8QA0Q+lnSfVANEP0Q8AAAAAAAAAAAAAIAMPMAzAAAYgBrhM +IAMPNAjAAAwgBrhMIAMPOCDAABAgBrfUIAMPPAbAADggBrmwIAMPQAjAADwgBrhMIAMPRALAAEAg +BrmwIAMPSAjAAEQgBrhMIAMPTAiAAEggBrjcIAMPUBiAAFwgBrjcIAMPVBiAAHAgBrjcIAMPWBiA +AIQgBrjcIAMPXBiAAJggBrjcIAMPYBiAAPwgBrjcIAMPZBiAAQwgBrjcIAMPaBiAARwgBrjcIAMP +bBiAASwgBrjcIAMPcAiAAXwgBrjcRkNvRSBERFAgZmFpbGVkIDogb3hfaWQgMHgleCByeF9pZCAw +eCV4CgAAAAAAAAAARkNvRSBERFAgZmFpbGVkIDogRGRwUmVwb3J0IDB4JXggRGRwVmFsaWQgMHgl +eAoARkMgeGNoZyBhbGxvYyBmYWlsZWQ6IGF2YWlsICVkCgBGQ09FIEZyZWU6IHN0aWxsIHlpZWxk +ZWQgd2hlbiBmcmVlaW5nLi4uZmxvd2NfaWQgJXggZmxvd2NfZmxhZ3MgJXggCgAAAAAAAAAAAAAA +AFBSTEkgUnNwIHRpbWVkb3V0IDogZmxvd2NfaWQgMHgleCBveF9pZCAweCV4IHJ4X2lkIDB4JXgg +CgAAAAAAAABod19iY204NDM0X2NoZWNrcmFtOiBTdGFydAoAAAAAAFBIWSBwcm9jZXNzb3Igbm90 +IHJ1bm5pbmcsIHN0aWxsIGluIHJlc2V0IGZvciA1bXMsIHBvcnRfYml0X21hcD0ldSAKAAAAAAAA +AAAAAAAAUEhZIEZXIGhhcyBiYWQgQ1JDLCBva19jcmM9JXUKAABQSFkgZmlybXdhcmUgbG9hZCBz +dWNjZXNzZnVsIQoAAGh3X2JjbTg0ODM0X2xvYWRzZXF1ZW5jZTogU3RhcnRlZAoAAAAAAAAAAAAA +AAAAAGh3X2JjbTg0ODM0X2xvYWRzZXF1ZW5jZTogVXBsb2FkIGltYWdlIHRvIFBIWSBvbi1jaGlw +IG1lbW9yCgAAAABod19iY204NDgzNF9sb2Fkc2VxdWVuY2U6IGRvbmUgbG9hZGluZyBpbWFnZSAo +aSA9ICV1KQoAAAAAAAAAAAAAaHdfYmNtODQzNF9sb3dwb3dlclsldV06IGVuYWJsZT0lZAoAAAAA +AAAAAAAAAAAAaHdfYmNtODQzNF9sb3dwb3dlclsldV0sIGZhaWxlZCB0byBzZXQgMzAuMHg0MDFB +Yml0IDcgc2luY2UgMzAuMHg0MDBFIGJpdD0xIGFmdGVyIDVtcywJcmVnPSV4CgAAaHdfY2w0NV9p +bml0WyV1XSBhY2FwcyAlI3gKAAAAAABod19jbDQ1X3VwZF9zcGRfYWR2ICUjeAoAAAAAAAAAAGh3 +X2FxMTIwMl9saW5rX3VwWyV1XSB1cAoAAAAAAAAAcFsldV0gUEhZIE9WRVJIRUFURUQgLSBmb3Jj +ZWQgcG93ZXIgZG93biAodGVtcD0lZCkKAAAAAAAAAAAAAAAAAEZMQVNIIG5vdCByZWFkeTogaSAl +dSBudnJSZWcgJSN4CgAAAAAAAAAAAAAAAAAAAEFRX0ZMQVNIX1JlYWR5IC0gVGltZW91dCAoMSkK +AAAAQVFfRkxBU0hfUmVhZHkgLSBUaW1lb3V0ICgyKQoAAAAJQVFfUmV0dXJuQ29udHJvbE9mRkxB +U0gKAAAAAAAAAGdhdGhlcl90YXNrc190b190eF9saXN0OiB0YXNrIGluIHVzZSBbJXVdCgAAAAAA +AGdhdGhlcl90YXNrc190b190eF9saXN0OiBpZHggWyV1XSwgdGFzayBmaWQgWzB4JXhdLCB0YXNr +IHN0YXRlIFsweCV4XSwgdGFzayBjb25uIFsweCV4XSwgdGFzayBmZmxhZ3MgWzB4JXhdLCBjb25u +IGZpZCBbMHgleF0sIGRkcCBbJWRdCgAAAAAAAAAAAGdhdGhlcl90YXNrc190b190eF9saXN0OiB0 +YXNrIFsweCV4XSwgc3RhdGUgWzB4JXhdIG9uIGNvbm4gWzB4JXhdIG5vdCB2YWxpZCB0byBnYXRo +ZXIsIHNraXBwaW5nCgAAAAAAAAAAAAAAAAAAAABnYXRoZXJfdGFza3NfdG9fdHhfbGlzdDogdGFz +ayBbMHgleF0sIHN0aWxsIHF1ZXVlZCBvbiB0eCBwZW5kaW5nIGxpc3QuIFJlbW92aW5nIGl0LgoA +AAAAAAAAAAAAAABnYXRoZXJfdGFza3NfdG9fdHhfbGlzdDogY29ubl9mYy0+Zmxvd2NfZmxhZ3Mg +WzB4JXhdLCBsaXN0X2VtcHR5IFsweCV4XSwgYWRkX3Rhc2tfY291bnQgWzB4JXhdCgB0b190eF9s +aXN0OiBubyB0YXNrIHRvIGNsb3NlIGZvciBjb25uIFsweCV4XSwgYmFpbGluZyB0byByZWNvdmVy +eSBzdGF0ZSBbMHgleF0KAHNldF9kaWdlc3Q6IHVwbHN1Ym1vZGU6JXgKAAAAAAAAYXV0aGVudGlj +YXRlX3RhcmdldDogS0VZX0NIQVBfUkVTUCAtIFsweCV4JXgleCV4JXgleCV4JXhdCgAAAAAAAGF1 +dGhlbnRpY2F0ZV90YXJnZXQ6IEtFWV9DSEFQX1JFU1AgLSBbMHgleCV4JXgleCV4JXgleCV4XQoA +AAAAAABhdXRoZW50aWNhdGVfdGFyZ2V0OiBJbmNvcnJlY3QgcGFzc3dvcmQKAAAAAAAAAABDSEFQ +X0M6IGRpZ2VzdCBleHBhbnNpb24gZXJyb3IKAENIQVBfTjogVGFyZ2V0IHVzZXJpZCBtaXNtYXRj +aAoAQ0hBUF9SOiBkaWdlc3QgZXhwYW5zaW9uIGVycm9yCgBpU0NTSSBTZWMtcGFyYW1zIHJlY2Vp +dmVkIGhhdmUgZXJyb3JzISEKAAAAAAAAAABUYXJnZXQgbW92ZWQgdGVtcC4gY29ubiAleCwgc2Vz +cyAleAoAAAAAAAAAAAAAAABMb2dpbiBGYWlsZWQhIS4gY29ubl9mYyBbMHgleF0sIHNlc3NfZmMg +WzB4JXhdLCBzdGF0dXNfY2xhc3MgWzB4JXhdCgAAAAAAAAAAAAAAAFByb3RvY29sIEVycm9yIGNi +aXQgJWQgdGJpdCAlZCBjc2cgJWQgbnNnICVkCgAAAHJlY3Zfbm9waW46IGN0cmwgdGFzayBhbHJl +YWR5IHBlbmRpbmcKAAAAAAAAAAAAAG9mbGRfcnhfZGF0YTogYWllZSwgaXNjc2kgY29ubiBbMHgl +eF0gZm9yIHNlc3MgWzB4JXhdLCB0eXBlIFsweCV4XSB0cmFuc2l0ZWQgaW4gdG9lIG1vZGUuIEtp +Y2tpbmcgcmVjb3ZlcnkgCgAAAABvZmxkX3J4X2RhdGE6IGNvbm4gdGlkIFsweCV4XSwgcnhfZGF0 +YS0+c2VxIFsweCV4XSwgcnhfZGF0YS0+bGVuIFsweCV4XSwgcnhfZGF0YS0+c3RhdHVzIFsweCV4 +XQoAAAAAAAAAAAAAAAAAAAAAb2ZsZF9yeF9kYXRhOiBjc2sgeyBpZCBbMHgleF0sIGNzb2NrX29m +ZnNldCBbMHgleF0sIGRsZW4gWzB4JXhdIH0KAAAAAAAAAAAAAAAAAABhY3RfZXN0OiB0Y2JfZmMg +WzB4JXhdLCBmbG93Y19pY29ubl9mbGFncyBbMHgleF0KAAAAAAAAAAAAAAAAAAAAYWN0X2VzdGFi +OiB0Y2JfZmMtPmZsb3djX2J1ZiBbMHgleF0sIHRjYl9mYy0+Zmxvd2NfdHlwZSBbMHgleF0gdGNi +X2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0sIG5wYWdlcyBbMHgleF0sIGZsb3djX3RwX3NuZF9tYXgg +WzB4JXhdCgAAAAAAAAAAAAAAAAAAYWN0X2VzdGFiOiBhdGlkIFsweCV4XSwgdGlkIFsweCV4XSwg +b3AgWzB4JXhdLCByY3ZfaXNuIFsweCV4XSwgc25kX2lzbiBbMHgleF0sIGNzb2NrLT5mbG93Y19z +dGF0ZSBbMHgleF0sIHRjcF9vcHQgWzB4JXhdLCB0Y2JfZmMtPmZsb3djX2lkIFsweCV4XSAKAAAA +AAAAAAAAAAAAAGNza19mYy0+Zmxvd2NfY3NvY2tfY29va2llIFsweCV4XSAKAAAAAAAAAAAAAAAA +AGNobmV0X3F1ZXVlX3htaXQ6IGZjLT5mbG93Y19pZCBbMHgleF0sIGJ1Zl9sZW4gWzB4JXhdLCBi +dWZmZXJlZCBbMHgleF0sIGZpZm8ubnVtX2J5dGVzIFslMHhdCgAAAG5ldGlmX2RvX2RoY3A6IHdy +LT5wYXJhbS52bGFuaWQgWyV1XSwgbDJkZXZfZmMtPmZsb3djX25ldF9sMmRldl92bGFuZGV2IFsw +eCV4XQoAbDNpbjRfZGV2X2NvbmZpZzogd3ItPnBhcmFtLnZsYW5pZCBbJXVdLCBsMmRldl9mYy0+ +Zmxvd2NfbmV0X2wyZGV2X3ZsYW5kZXYgWzB4JXhdCgAAAAAAAAAAAAAAAAAAbmV0X2wzaW40X2Rl +dl9jb25maWc6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIGFkZHJlc3MgYWxyZWFkeSB1c2Vk +IGJ5IHBvcnQgJWQKAAAAAAAAAAAAAAAAAAAAbmV0X2wzaW40X2Rldl9jb25maWc6ICBhZGRyIFsw +eCV4XSwgbWFzayBbMHgleF0sIGd3IFsweCV4XSwgcmVmX2NudCBbMHgleF0gaW4gdXNlCgAAAAAA +AAAAAAAAAAAAd3JoX2NobmV0X2lmY29uZjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgbDJk +ZXZfZmMtPmZsb3djX3R5cGUgWyUweF0sIGlmY29uZl93ci0+c3Vib3AgWzB4JXhdCgAAAAAAAAAA +AAAAAAAAAHdyaF9jaG5ldF9pZmNvbmY6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIHVua25v +d24gc3Vib3AgWzB4JXhdCgAAAAAAAAAAAAAAAAAAd3JoX2NobmV0X2lmY29uZjogbDJkZXZfZmMt +PmZsb3djX2lkIFsweCV4XSwgcmMgJWQKAAAAAAAAAAAAAAAAAG5ldGlmX2lwX2NvbmZsaWN0X3Rp +bWVyX2NiOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBpbmRldmN0eHQtPnN0YXRlIFslZF0s +IGluZGV2Y3R4dC0+cmV0cnlfY250IFslZF0KAAAAAAAAAABuZXRpZl9pcF9jb25mbGljdF90aW1l +cl9jYjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgaW5kZXZjdHh0IFsweCV4XSwgaW4gZnJl +ZSBzdGF0ZQoAAAAAAAAAAABjbWRoX2NobmV0X2lmYWNlOiBmYyBbMHgleF0sIGZjLT5mbG93Y19p +ZCBbMHgleF0sIGZjLT5mbG93Y190eXBlIFsweCV4XSwgcCBbMHgleF0sIGxlbjE2IFsldV0sIGxv +YyBbMHgleF0KAAAAAAAAY21kaF9jaG5ldF9pZmFjZTpsMmRldl9mYyBbMHgleF0sIGwyZGV2X2Zj +LT5mbG93Y19pZCBbMHgleF0sIGwyZGV2LT5mbG93Y190eXBlIFsldV0sIGwyZGV2X2ZjLT5mbG93 +Y19uZXRfbDJkZXZfZmxhZ3MgWyUweF0KAAAAAABjbWRoX2NobmV0X2lmYWNlOiByMlswXToldSBy +MlsxXToldSwgc3Vib3A6MHgleAoAAAAAAAAAAAAAAAAAAAAAY21kaF9jaG5ldF9pZmFjZTogbDJk +ZXZfZmMtPmZsb3djX25ldF9sMmRldl9mbGFncyBjaGFuZ2VkIGZyb20gWyUweF0gdG8gWyUweF0s +IHJjIFslZF0KAAAAAAAAAAAAY2huZXRfbDJkZXZfdXBfbWJfY2I6IHJjIFslZF0sIHBvcnQgWyV1 +XSwgc3RhdGUgWyV1XSwgY29va2llIFsweCV4XQoAAAAAAAAAAAAAAABkaGNwX3Byb2Nlc3NfY2I6 +IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIGRoY3R4dC0+c3RhdGUgWyUweF0sIGRoY3R4dC0+ +cnRyeV9jbnQgWyV1XQoAAAAAAAAAAABkaGNwX3RpbWVyX2NiOiBESENQRElTQ09WRVIgc2VudCwg +YnV0IG5vIHJlcGx5IGZyb20gYW55IHBvc3NpYmxlIHNlcnZlciBvbiB0aGUgbmV0d29yay4gUmV0 +cnlpbmcgYWdhaW4KAAAAAAAAAAAAZGhjcF90aW1lcl9jYjogbDJkZXZfZmMtPmZsb3djX2lkIFsw +eCV4XSwgc2VuZGluZyBESENQRElTQ09WRVIgZm9yIGRoY3R4dCBbMHgleF0gb24gcGlkIFslZF0K +AAAAZGhjcF90aW1lcl9jYjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgREhDUE9GRkVSIHJl +Y2VpdmVkIGZvciBkaGN0eHQgWyV4XSBwaWQgWyVkXQoAAAAAAAAAAAAAZGhjcF90aW1lcl9jYjog +bDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgIERIQ1BBQ0sgcmVjZWl2ZWQgZm9yIGRoY3R4dCBb +JXhdLCBwaWQgWyVkXQoAAAAAAAAAAAAAZGhjcF90aW1lcl9jYjogbDJkZXZfZmMtPmZsb3djX2lk +IFsweCV4XSwgZGhjdHh0LT5pcGFkZHIgWzB4JXhdCgAAAAAAAAAAAAAAAAAAAABkaGNwX3RpbWVy +X2NiOiBzdGFydGluZyB0aW1lciBmb3IgbGVhc2UgWyV1XSBzZWNvbmRzCgAAAAAAAAAAAAAAZGhj +cF90aW1lcl9jYjogbGVhc2UgdGltZSBvZiBbJXVdIHNlY29uZHMgZXhwaXJlZCwgc2VuZGluZyBy +ZW5ldyByZXF1ZXN0CgAAAAAAAABkaGNwX3RpbWVyX2NiOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4 +JXhdLCBubyByZXBseSBmcm9tIGRoY3Agc2VydmVyLCB0aW1pbmcgb3V0CgAAAAAAAAAAAAAAAAAA +AABhdXRoX25lZ29fc2VjdXJpdHk6IHNlbmRfZmxhZyBbMHgleF0sIGF1dGhfcG9saWN5IFsweCV4 +XQoAAAAAAAAAYXV0aF9uZWdvX3NlY3VyaXR5OiBLRVlfQ0hBUF9SRVNQIC0gaGFzaFsweCV4JXgl +eCV4JXgleCV4JXhdCgAAAGF1dGhfbmVnb19zZWN1cml0eTogS0VZX0NIQVBfUkVTUCAtIGhhc2hb +MHgleCV4JXgleCV4JXgleCV4XQoAAABhdXRoX25lZ29fc2VjdXJpdHk6IEtFWV9DSEFQX1JFU1Ag +LSBlcnJvciBlbmNvZGluZyB0byBoZXgKAAAAAAAAYXV0aF9uZWdvX3NlY3VyaXR5OiBLRVlfQ0hB +UF9SRVNQIC0gZWxlbiBbMHgleF0KAAAAAAAAAAAAAAAAAAAAAGF1dGhfbmVnb19zZWN1cml0eTog +S0VZX0NIQVBfQ0hBTCAtIGVycm9yIGVuY29kaW5nIHRvIGhleAoAAAAAAABhdXRoX25lZ29fc2Vj +dXJpdHk6IEtFWV9DSEFQX0NIQUwgLSBlbGVuIFsweCV4XQoAAAAAAAAAAAAAAAAAAAAAbG9nb3V0 +X3RpbWVkb3V0OiBsb2dvdXQgcmVxdWVzdCB0aW1lZG91dCwgcG9zc2libGUgbmV0d29yayBpc3N1 +ZXMuIEZvcmNlZnVsbHkgYnJlYWtpbmcgcGF0aCBmb3Igc2VzcyBbMHgleF0KAAAAAHBpbmdfdGFy +Z2V0OiBwaW5nIHRpbWVvdXQsIGtpY2tpbmcgcmVjb3ZlcnkgZm9yIHNlc3MgWzB4JXhdCgAAAABj +c29ja19mYWlsZWQ6IGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2tfZmMtPmZsb3djX3N0YXRl +IFsweCV4XSwgc2Vzc19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBzZXNzX2ZjLT5mbG93Y19zdGF0ZSBb +MHgleF0sIGV2dCBbMHgleF0KAAAAAAAAAAAAAAByYyBbJWRdLCBjc2tfZmMgWzB4JXhdLCBjc2tf +ZmMtPmZsb3djX2lkIFsweCV4XQoAAAAAAAAAAAAAAAAAAAAAcmVjb3ZlcnlfdGltZW91dDogc2Vz +cyBpZCBbMHgleF0gc3RhdGUgWzB4JXhdLCByY291bnQgWyVkXSwgZmxhZ3MgWzB4JXhdCgAAAAAA +AAByZWNvdmVyeV90aW1lb3V0OiBzZXNzIGlkIFsweCV4XSBpbiBsb2dvdXQsIGFib3J0IHRoZSBj +b25uZWN0aW9uCgAAAAAAAAAAAAAAAAAAAHJlY292ZXJ5X3RpbWVvdXQ6IHNlc3NfZmMtPmZsb3dj +X2ZvaXNjc2lfc2Vzc19mbGFncyBbMHgleF0sIGNvbm5lY3Rpb24gcmVxdWVzdCBwZW5kaW5nLCBi +YWlsaW5nIG91dAoAAAAAAAAAAAAAAABmb2lzY3NpOiBSZWNvdmVyeSB0aW1lZCBvdXQgYWZ0ZXIg +WyV1XSByZXRyeSwgYmFpbGluZyBvdXQKAAAAAAAAVENQIGNvbm4gZXN0YWJsaXNobWVudCBmYWls +ZWQgJWQKAAAAAAAAAAAAAAAAAAAAZGlzY292ZXJ5X2RhdGE6IHNlc3MgeyBpZCBbMHgleF0sIGZs +YWdzIFsweCV4XSwgYnVmZmVyZWQgWyV1XS4gfQoAAAAAAAAAAAAAAAAAAABkaXNjb3ZlcnlfZGF0 +YTogc2VzcyB7IGlkIFsweCV4XSB9LCB1bHB0eGNoIFsldV0gbm8gY3JlZGl0cyBhdmFpbGFibGUs +IHJlc2NoZWR1bGluZyByZXF1ZXN0LgoAAABJbnZhbGlkIG9wY29kZSAweCV4IGluIGN0cmwgcGF0 +aAoAAAAAAAAAAAAAAAAAAABERFAgZXJyb3IgWzB4JXhdLCBhYm9ydGluZyBjb25ubiBbMHgleF0K +AAAAAAAAAAByeF9kYXRhX2RkcDogUmVzcG9uY2UgcmVjaWV2ZWQgZm9yIHRhc2sgWzB4JXhdIHdo +aWxlIGludmFsaWQgdGFzayBvciBjb25uZWN0aW9uIHN0YXRlLiB0YXNrIHN0YXRlIFsweCV4XSwg +Y29ubiBzdGF0ZSBbMHgleF0sIGNvbm4gZmxhZ3MgWzB4JXhdCgBpaGRyOiBSZXNwb25jZSByZWNp +ZXZlZCBmb3IgdGFzayBbMHgleF0gd2hpbGUgaW52YWxpZCB0YXNrIG9yIGNvbm5lY3Rpb24gc3Rh +dGUuIHRhc2sgc3RhdGUgWzB4JXhdLCBjb25uIHN0YXRlIFsweCV4XSwgY29ubiBmbGFncyBbMHgl +eF0KAAAAAAAAAABpaGRyOiBJbnZhbGlkIHRhc2sgc3RhdGUgMHgleCBmb3IgdGFzayAweCV4LCBp +dHQgWzB4JXhdLCBvcGMgWzB4JXhdCgAAAAAAAAAAAAAAAHByb2Nlc3NfdG1mX3Jlc3BvbnNlOiBi +dWZmZXJlZCBbMHgleF0sIGlzdGFza19mYy0+Zmxvd2NfYnVmLT5zY2hlZF9ub2RlLm5leHQgWzB4 +JXhdLCBpc3Rhc2tfZmMgWzB4JXhdLCBpc3Rhc2tfZmMtPmZsb3djX2lkIFsweCV4XQoAAAAAAAAA +AAAAAAAAAHByb2Nlc3NfdG1mX3Jlc3BvbnNlOiB3ciBvcCBbMHgleF0sIHRtZiBvcCBbMHgleF0K +AAAAAAAAAAAAAAAAAAB0bWZfcmVzcDogZmxvd2M6MHgleCwgaWQ6MHgleCwgc3RhdGU6MHgleCwg +eWllbGQ6MHgleAoAAAAAAAAAAAAAdG1mX3Jlc3A6IHRfdGFzazoweCV4IGZyZWVkLgoAAABzY3Np +X2NtZF9yZXNwOiBmbG93YzoweCV4LCBpZDoweCV4LCBzdGF0ZToweCV4LCB5aWVsZDoweCV4CgAA +AAAAZGF0YV9pbl9yZXNwOiBmbG93YzoweCV4LCBpZDoweCV4LCBzdGF0ZToweCV4LCB5aWVsZDow +eCV4CgAAAAAAAHJldHVybl9wZW5kaW5nX3Rhc2s6IGNvb2tpZSBbMHglMDh4XSwgWzB4JTA4eF0K +AHJldHVybl9wZW5kaW5nX3Rhc2s6IGRlbGF5IHByb2Nlc3NpbmcsIGNvbm4gZmxhZ3MgWzB4JXhd +CgAAAAAAAAByZXR1cm5fcGVuZGluZ190YXNrOiBEb25lIHNlbmRpbmcgdGFzayBlcnJvciB0byBo +b3N0LCB1bHB0eGxlbjE2IFsldV0KAAAAAAAAAAAAAHJldHVybl9wZW5kaW5nX3Rhc2s6IGRlcXVl +dWUgdGFzayBbMHgleF0sIHN0YXRlIFsweCV4XSBmcm9tIHR4X2xpc3QKAAAAAAAAAAAAAAAAcmV0 +dXJuX3BlbmRpbmdfdGFzazogYWxsIHRhc2tzIHJldHVybmVkLCByZWNvdmVyeSBzdGF0ZSB0cmFu +cyB0byBbMHgleF0KAAAAAAAAAABjbGVhcl9kZHBfbWFwOiBpc3Rhc2tfZmMgWzB4JXhdLCBpc3Rh +c2tfZmMtPmZsb3djX2lkIFsweCV4XSBidWZmZXJlZCAldQoAAAAAAAAAAGNsZWFyX2RkcF9tYXA6 +IGlzdGFza19mYy0+Zmxvd2NfaXRhc2tfbnBwb2QgJXUsIG5wcG9kICV1LCBwcGRhZGRyIFsweCV4 +XQoAAAAAAAAAY2xlYXJfZGRwX21hcDogYWxsIHJldHVybmVkIHRhc2tzIGRkcCBjbGVhcmVkLCBy +ZWNvdmVyeSBzdGF0ZSB0cmFucyB0byBbMHgleF0KAAB3cmhfZm9pc2NzaV9ub2RlOiBub2RlX3dy +LT5mbG93aWRfbGVuMTYgMiBbJXhdCgB3cmhfZm9pc2NzaV9jaGFwOiBpZF9sZW4gWyV4XSwgc2Vj +X2xlbiBbJXhdCgAAAAB3cmhfZm9pc2NzaV9jaGFwOiB0Z3RfaWRfbGVuIFsleF0sIHRndF9zZWNf +bGVuIFsleF0KAAAAAAAAAAAAAAAAc2Vzc2lvbl9ibG9jazogc2Vzc19mYy0+Zmxvd2NfaWQgWzB4 +JXhdLCBzZXNzX2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0sIGNvbm5fZmMtPmZsb3djX2lkIFsweCV4 +XSwgY29ubl9mYy0+Zmxvd2Nfc3RhdGUgWzB4JXhdLCBjc2tfZmMtPmZsb3djX2lkIFsweCV4XSwg +Y3NrX2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0KAAAAAAAAAAAAAAAAAAAAc2Vzc2lvbl91bmJsb2Nr +OiBzZXNzX2ZjLT5mbG93Y19pZCBbMHgleF0sIHNlc3NfZmMtPmZsb3djX3N0YXRlIFsweCV4XSwg +Y29ubl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjb25uX2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0sIGNz +a19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2tfZmMtPmZsb3djX3N0YXRlIFsweCV4XQoAAAAAAAAA +AAAAAAAAc3RhcnRfbG9nb3V0OiBTZXNzLWlkIFsweCV4XSBhbHJlYWR5IGxvZ2dpbiBvdXQuCgAA +AAAAAAAAAAAAAAAAAHBlZXJfY29uOiBjc2tfZmMgPT4gZmxvd2lkIFsweCV4XSwgZmxvd2NfYnVm +IFsweCV4XQoAAAAAAAAAAAAAAABhbGxvY19zZXNzOiBsb2dpbl9yZXRyeSBbJWRdLCByZWNvdl90 +aW1lb3V0IFslZF0KAAAAAAAAAAAAAAAAAAAAZm9pc2NzaV9jdHJsOiBzdWJvcCBbMHgleF0sIHNl +c3NfdHlwZV90b19lcmwgWzB4JXhdLCBzZXNzX3R5cGUgWzB4JXhdCgAAAAAAAAAAAABmb2lzY3Np +X2N0cmw6IHJlY2VpdmVkIGJsb2NrZWQgZnJvbSBkcml2ZXIsIHRyaWdnZXJpbmcgcmV0dXJuIHRh +c2tzIG5vdy4KAAAAAAAAAFdBVENIRE9HX2Rpc3BhdGNoIGNhc2UgdG8gYXZvaWQ6IENvdW50ZXJf +d2F0Y2hkb2cgJXUgQ291bnRlcl9zY2hlZCAldSAKAAAAAAAAAAAAeGdtYWNbJXVdIHNldHRpbmcv +dW5zZXR0aW5nIGhzcyByZXN5bmMgYml0CgAAAAAAV0FUQ0hET0c6IGRldmljZSBzaHV0ZG93bgoA +AAAAAABXQVRDSERPRzogcG9ydFsldV0gcGF1c2Ugd2F0Y2hkb2cgdGltZW91dAoAAAAAAABXQVRD +SERPRzogYnlwYXNzIHRpbWVvdXQKAAAAAAAAAFdBVENIRE9HOiBGTFIgLSBub3QgaW1wbGVtZW50 +ZWQgeWV0CgAAAAAAAAAAAAAAAFdBVENIRE9HOiB0ZW1wZXJhdHVyZSBvZiAlZEMgZXhjZWVkcyB0 +aHJlc2hvbGQgb2YgJWRDCgAAAAAAAAAAAABmaWx0ZXI6IHBvcmdyYW1taW5nIHRpZCAldSAobGUg +dGNhbSBpbmRleCAldSkuLi4KAAAAAAAAAAAAAAAAAAAAZmlsdGVyOiByZXF1ZXN0aW5nIGNvbXBs +ZXRpb24uLi4KAAAAAAAAAAAAAAAAAAAAbDJkZXZfc2VuZF9wb3J0X2V2ZW50OiB3ciBbMHgleF0g +cGVuZGluZyBvbiBwb3J0IFslZF0sIGN1cnJlbnQgdHJ5IFslZF0KAAAAAAAAAABkY2J4X2llZWVf +Y21kaFsldV0gd3JpdGUgb25seSBwZXJtaXR0ZWQgb24gbG9jYWwgY29uZgoAAAAAAAAAAAAAZGNi +eF9pZWVlX2NtZGhbJXVdIGNhbm5vdCB3cml0ZSAldSBhcHBzIChNQVg6ICV1KQoAAAAAAAAAAAAA +AAAAAGRjYnhfaWVlZV9jbWRoWyV1XSByZXF1ZXN0aW5nIERDQl9JRUVFX0NNRAoAAAAAAGRjYnhf +aWVlZV9jbWRoWyV1XSB1bmtub3duIGZlYXR1cmUgd3JpdGU6ICV1CgAAAGRjYnhfaWVlZV9jbWRo +WyV1XSB1bmtub3duIGZlYXR1cmUgcmVhZDogJXUKAAAAAGNhbm5vdCBhbGxvY2F0ZSBvZmZsb2Fk +ZWQgZmlsdGVyIGNvbm5lY3Rpb24KAAAAAGNhbm5vdCBhbGxvY2F0ZSBvZmZsb2FkZWQgZmlsdGVy +IElQdjYgY29ubmVjdGlvbgoAAAAAAAAAAAAAAAAAAABkaXNwYXRjaF9kZWZlcnJlZF9jbGFzc19j +bGFzc19zaGFwaW5nWyV1OiV1XTogbGlzdF9lbXB0eQoAAAAAAAAAbG9vcGJhY2sgYnVmZmVyIGdy +b3VwWyV1XSBpcyBkaXNhYmxlZAoAAAAAAAAAAAAAaW52YWxpZCBidWZmZXIgZ3JvdXBbJXVdIGNv +bmZpZ3VyYXRpb246IG10dSAldSBsd20gJXUgaHdtICV1IGR3bSAldQoAAAAAAAAAAAAAAABmYyAl +dSB2ZiAldSBnb3QgaXZmPTB4JXgscmFuZ2U6ICUjeC0lI3ggKCV1LyV1IHVzZWQpCgAAAAAAAAAA +AAAAVkkgJXUgY2Fubm90IGdldCBSU1Mgc2xpY2U6IE5vIG1vcmUgc2xpY2VzIGF2YWlsYWJsZSAo +dXNlZCAldS8ldSkKAAAAAAAAAAAAAAAAAABwZm4gJXUgdmZuICV1IHdpdGggcG9ydCBtYXNrIDB4 +JXggY2Fubm90IGFjY2VzcyBwb3J0ICV1LCByZXQgJWQKAAAAAAAAAAAAAAAAAAAAAHBmbiAldSB2 +Zm4gJXUgY291bGQgbm90IGFsbG9jYXRlIHZpaWQsIHJldCAlZAoAAHBmbiAldSB2Zm4gJXUgY291 +bGQgbWFwIHZpaWQgIDB4JXggdG8gZmxvd2MsIHJldCAlZAoAAAAAAAAAAAAAAABwZm4gJXUgdmZu +ICV1IGNvdWxkIG5vdCBhbGxvY2F0ZSB1d2lyZSBmdW5jICVkIG1hYyBhZGRyLCByZXQgJWQKAAAA +AAAAAAAAAAAAAAAAAG1paV9mb3JjZV9zcGVlZFsldV06IHJjYXBzIDB4JXgKAAAAAAAAAAAAAAAA +AAAAAG1paV9wZG93blsldV06IHBvd2VyZG93biBlbiAldQoAcG9ydF9jbWRfaGFuZGxlcjogdW5r +bm93biB1LmRjYi50eXBlIDB4JXgKAAAAAAAAcG9ydFsldToweCUwMng6MHglMDJ4XTogdW5rbm93 +biBhY3Rpb24gMHgleAoAAAAAcG9ydFsldToweCUwMng6MHglMDJ4XTogdW5rbm93biByZWFkIGFj +dGlvbiAweCV4CgAAAAAAAAAAAAAAAAAAAGNwbF9lcnJfbm90aWZ5OiB0aWQgJXUgY3BsIDB4JTA4 +eCUwOHgKAAAAAAAAAAAAAGNwbF9lcnJfbm90aWZ5OiB0aWQgJXUgY3BsIDB4JTA4eCUwOHggMHgl +MDh4JTA4eAoAAAAAAAAAAAAAAAAAAABjcGxfZXJyX25vdGlmeTogdGlkICV1IGxlbiAldQoAAEZD +T0UgRnJlZTogc3RpbGwgeWllbGRlZCB3aGVuIGZyZWVpbmcuLi5mbG93Y19pZCAleCBmbG93Y19m +bGFncyAleCAKAAAAAAAAAAAAAAAARkNPRSBCUCBXUiBFUlI6IFdSIHdpdGggY29va2llICV4JXgg +ZXJyb3JlZCBiYWNrIAoAAAAAAAAAAAAAAAAAAHNjc2lfYWJvcnQ6IEVudGVyaW5nIEFib3J0X3Rh +c2ssIGJ1ZmZlcmVkIFsldV0KAHNjc2lfYWJvcnQ6IHJjIFsweCV4XSByZWYgdGFzayBub3Qgb3V0 +c3RhbmRpbmcKAHNjc2lfYWJvcnQ6IGlkYXRhLT5vcCBbMHgleF0sIGZsYWdzIFsweCV4XSwgZnVu +YyBbMHgleF0sIGx1bl9pZHggWzB4JXhdCgAAAAAAAAAAc2NzaV9hYm9ydDogd3ItPmlxaWQgWzB4 +JXhdLCBpc3Rhc2tfZmMtPmZsb3djX3NnZV9pcWlkIFsweCV4XSwgaXN0YXNrX2ZjIHRhc2sgZmxh +Z3MgWzB4JXhdCgAAAAAAc2NzaV9hYnJ0OnRhc2sgZmxvd2NbMHgleF0sIHRtZl9saXN0X2VtcHR5 +OgoAAAAAc2NzaV9hYm9ydDogY29ubiBbMHgleF0sIGNtZHNuIFsweCV4XSwgc2VudF9jbWRzbiBb +MHgleF0sIG1heF9jbWRzbiBbMHgleF0sIGl0dCBbMHgleF0KAAAAAAAAAAAAYWJvcnQvY2xvc2Ug +V1Igd2l0aCBjb29raWUgMHglbHggd2FzIGlzc3VlZCBvbiBzc24gMHgleCBpbiB3cm9uZyBzdGF0 +ZSAweCV4CgAAAABhYm9ydCBXUiBvbiBzc24gMHgleCBkaWQgbm90IGZpbmQgV1Igd2l0aCBjb29r +aWUgMHgleCV4CgAAAAAAAAAAY2xvc2UgV1Igd2l0aCBjb29raWUgMHglbHggb24gc3NuIDB4JXg7 +ZGlkIG5vdCBmaW5kIFdSIHdpdGggY29va2llIDB4JWx4CgAAAAAAAABhYm9ydCBXUiBvbiBzc24g +MHgleCB3YXMgaXNzdWVkIG9uIHhjaGcgMHgleCB3aXRoIHJ4X2lkIDB4JXggaW4gd3Jvbmcgc3Rh +dGUgMHgleAoAAAAAAAAAAAAAAAAAAABzY3NpX2x1cjogRW50ZXJpbmcgTFVSIGhhbmRsZXIsIGJ1 +ZmZlcmVkIFsldV0KAABzY3NpX2x1cjogaWRhdGEtPm9wIFsweCV4XSwgZmxhZ3MgWzB4JXhdLCBm +dW5jIFsweCV4XSwgbHVuX2lkeCBbMHgleF0KAAAAAAAAAAAAAHNjc2lfbHVyOiB3ci0+aXFpZCBb +MHgleF0sIGlzdGFza19mYy0+Zmxvd2Nfc2dlX2lxaWQgWzB4JXhdLCBpc3Rhc2tfZmMgdGFzayBm +bGFncyBbMHgleF0KAAAAAAAAAHNjc2lfbHVyOiBjb25uIFsweCV4XSwgY21kc24gWzB4JXhdLCBz +ZW50X2NtZHNuIFsweCV4XSwgbWF4X2NtZHNuIFsweCV4XSwgaXR0IFsweCV4XQoAAAAAAAAAAAAA +AGRjYnhfYXBwbHlfYXBwX2NmZ1sldV1ORVcgQVBQIFRMViAKAAAAAAAAAAAAAAAAAGRjYnhfY2Vl +X2ZlYV9zbVsldV0gRmVhdHVyZVsldV0gRkVBVFVSRV9MSU5LVVAKAGRjYnhfY2VlX2ZlYV9zbVsl +dV0gRmVhdHVyZVsldV0gU0VUX0xPQ0FMX1BBUkFNRVRFUlMKAAAAAAAAAAAAAABkY2J4X2NlZV9m +ZWFfc21bJXVdIEZlYXR1cmVbJXVdIEZFQVRVUkVfTk9fQURWRVJUSVNFCgAAAAAAAAAAAAAAZGNi +eF9jZWVfZmVhX3NtWyV1XSBGZWF0dXJlWyV1XSBGRUFUVVJFX1BFRVJfTk9UX0FEVkVSVElTRV9E +Q0JYCgAAAAAAAAAAAAAAAAAAAABkY2J4X2NlZV9mZWFfc21bJXVdIEZlYXR1cmVbJXVdIEZFQVRV +UkVfUEVFUl9OT1RfQURWRVJUSVNFX0ZFQVRVUkUKAAAAAAAAAAAAAAAAAGRjYnhfY2VlX2ZlYV9z +bVsldV0gRmVhdHVyZVsldV0gRkVBVFVSRV9VUERBVEVfT1BFUl9WRVJTSU9OCgAAAABkY2J4X2Nl +ZV9mZWFfc21bJXVdIEZlYXR1cmVbJXVdIEZFQVRVUkVfUEVFUl9VUERBVEVfT1BFUl9WRVJTSU9O +CgAAAAAAAAAAAAAAAAAAAGRjYnhfY2VlX2ZlYV9zbVsldV0gRmVhdHVyZVsldV0gRkVBVFVSRV9H +RVRfUEVFUl9DRkcKAAAAAAAAAAAAAABkY2J4X2NlZV9mZWFfc21bJXVdIEZlYXR1cmVbJXVdIEZF +QVRVUkVfQ0ZHX05PVF9DT01QQVRJQkxFCgAAAAAAZGNieF9jZWVfZmVhX3NtWyV1XSBGZWF0dXJl +WyV1XSBGRUFUVVJFX1VTRV9MT0NBTF9DRkcKAAAAAAAAAAAAAGRjYnhfY2VlX2ZlYV9zbVsldV0g +RmVhdHVyZVsldV0gRkVBVFVSRV9VU0VfUEVFUl9DRkcKAAAAAAAAAAAAAABkY2J4X2NlZV9mZWFf +c21bJXVdIEZlYXR1cmVbJXVdIEZFQVRVUkVfRkVBVFVSRV9ESVNBQkxFRAoAAAAAAAAAZGNieF9j +ZWVfZmVhX3NtWyV1XSBGZWF0dXJlWyV1XSBGRUFUVVJFX0VSUk9SX0NIQU5HRQoAAAAAAAAAAAAA +AGRjYnhfaWVlZV9wcm9jZXNzWyV1XSByZWNlaXZlZCBCV3MgZG8gbm90IGFkZCB1cCB0byAxMDAh +CgAAAAAAAABXQVJOSU5HOiByZWNlaXZlZCBBcHAgVExWIGNvbnRhaW5zIG1vcmUgdGhhbkZXIGNh +biBoYW5kbGUgKG1heDogJXU7IHRsdiBjb250YWluczogJXUKAAAAAAAAAAAAAABkY2J4X2llZWVf +cHJvY2Vzc1sldV0gc3VidHlwZSAlI3ggcmVtX2Z0X2NoYW5nZWQgJXUgc21fY2hhbmdlICV1CgAA +AAAAAAAAAAAAAAAAAGRjYnhfaWVlZV9wcm9jZXNzWyV1XSBzdWJ0eXBlIHVua25vd24KAAAAAAAA +AAAAAGRjYnhfcGFyc2VfcGt0WyV1XSBlcnJvciAlZAoAAAAAY2huZXRfbDJ0X3VwZGF0ZTogbDJk +ZXZfZmMgWzB4JXhdLCBsMmRldl9mYy0+Zmxvd2NfaWQgWyV1XSBsMmRldl9mYy0+Zmxvd2NfZmxh +Z3MgWzB4JXhdLCBpbnRmIFsweCV4XQoAAAAAAAAAAAAAAGNobmV0X2wydF91cGRhdGU6IGwyZGV2 +X2ZjLT5mbG93Y19pZCBbJXVdIGFscmVhZHkgc2NoZWR1bGVkCgAAAABjaG5ldF9sMnRfdXBkYXRl +OiBpbiBkZWxheWVkX3Byb2Nlc3NpbmcsIGwydGVudCBbJTA4eF0KAAAAAAAAAAAAY2huZXRfYXJw +X3VwZGF0ZV9jYWNoZTogYXJwIGlwNCBlbnRyeSBmb3VuZCAKAAAAY2huZXRfYXJwX3VwZGF0ZV9j +YWNoZTogYXJwIGlwNiBlbnRyeSBmb3VuZCAKAAAAY2huZXRfYXJwX3VwZGF0ZV9jYWNoZTogYm90 +aCBpcDQgYW5kIGlwNiBhZGRyIGNhbm5vdCBiZSBudWxsCgAAAGNobmV0X2wydF91cGRhdGU6IGwy +dF91cGRhdGUgcmVxdWVzdCBzZW50IGwydGVudCBbJTA4eF0sIGwydGVudC0+aWR4IFslZF0sIGwy +dGVudC0+dmxhbiBbJWRdCgAAAG5ldGlmX3Byb2Nlc3NfZGhjcDogbDJkZXZfZmMtPmZsb3djX2lk +IFsweCV4XSwgcHJvY2Vzc2luZywgb3B0X2xlbiAldQoAAAAAAAAAAAAAY2huZXRfZGhjcF9yZWN2 +OiB2bGFuaWQgWyV1XSwgbDJkZXZfcGlkX2ZjLT5mbG93Y19uZXRfbDJkZXZfdmxhbmRldiBbMHgl +eF0sIGwyZGV2X2ZjIFsweCV4XQoAAAAAY2huZXRfZGhjcF9yZWN2OiBsMmRldl9mYy0+Zmxvd2Nf +aWQgWzB4JXhdLCBkaGN0eHQtPnN0YXRlIFslZF0sIG1hbGFjaW91cyBkaGNwIHJlY3YgZm9yIG5v +IHJlcXVlc3QKAAAAAAAAAAAAAAAAAGRoY3R4dC0+c3RhdGUgOiAlZAoAAAAAAAAAAAAAAAAAbDJk +ZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgQmFkIERIQ1AgY29va2llIHJlY2lldmVkLCBhYm9ydGlu +ZwoAAENvdWxkIG5vIGFsbG9jYXRlIHBjYiEhIEZyZWVpbmcgZmNmICEhIQoAAAAAAAAAAHZuX3Bh +cnNlIHVua25vd24gc3ViY29kZSAldQoAAAAAdm5fcGFyc2UgdW5rbm93biBkdHlwZSAldQoAAAAA +AABpZ25vcmluZyBmaXAgcmVjdiBmb3IgcGNiIGZsb3c6JXggaW4gb2ZmbGluZSBzdGF0ZQoAAAAA +AAAAAAAAAAAAZmlwX3ZuMnZuX3JlY3ZfZXJyIAoAAAAAAAAAAAAAAABDb3VsZCBub3QgYWxsb2Nh +dGUgZmxvd2MhISEhCgAAAENvdWxkIG5vdCBhbGxvY2F0ZSBTQ0IgZmxvd2MhISEhCgAAAAAAAAAA +AAAAAAAAAENvdWxkIG5vdCBmaW5kIHJpZ2h0IHNjYiBmb3IgbG9nbwoAAAAAAAAAAAAAAAAAAGln +bm9yaW5nIGZpcCByZWN2IGZvciBmY2YgZmxvdzoleCBpbiBvZmZsaW5lIHN0YXRlCgAAAAAAAAAA +AAAAAABDb3VsZCBub3QgZmluZCByaWdodCBzY2IgZm9yIGZsb2dpCgAAAAAAAAAAAAAAAABwb3J0 +IDB4JXgsIHN0YXRlIDB4JXgsIHJldHJ5IG5vdCBzdXBwb3J0ZWQKAAAAAABGbG9naSByZXNwIHJj +diB3aXRoIHVua25vd24geGNoZyBveF9pZCV4IHNpZCAlMnglMnglMnggZGlkICUyeCUyeCUyeAoA +AAAAAAAAAAAAAE5fUE9SVCAweCV4JXgleCByZWplY3RlZCBQTE9HSSB3aXRoIHJlYXNvbiBjb2Rl +ICV4CgAAAAAAAAAAAAAAAABBQlRTIHdoaWxlIGF3YWl0aW5nIFBSTEkgUnNwOiBmbG93Y19pZCAw +eCV4IG94X2lkIDB4JXggcnhfaWQgMHgleCAKAAAAAAAAAAAAAAAAAEFCVFMgZmFrZSBSc3A6IGxv +YyAweCV4IG94X2lkIDB4JXggcnhfaWQgMHgleAoAAGxsZHBfcnhfcGt0X2hhbmRsZXJbJXVdIGRy +b3AgcHJlLWluaXQgKGNvdW50ID0gJXUpCgAAAAAAAAAAAAAAAAAleCV4JXggUmVjaWV2ZWQgTE9H +TyBmcm9tICV4JXgleCAKAAAAAAAAAAAAAAAAAABjYW5ub3QgYWxsb2NhdGUgUE9GQ09FIGZpbHRl +ciBjb25uZWN0aW9uIGZvciB4X2lkICV4IAoAAAAAAAAAAAAARmFpbGVkIHRvIHBvc3QgeGNoZyBl +cnI6IHNzbmkgMHgleCBjb29raWUgMHglbHggcnZhbCAleCAKAAAAAAAAAHRjcF9yZWxlYXNlX3Rp +ZDogdGlkIFsweCV4XSwgZmxvd2MgZmxhZ3MgWzB4JXhdLCBidWZmZXJlZCBbMHgleF0KAAAAAAAA +AAAAAAAAAAAAdGNwX3JlbGVhc2VfdGlkOiBzaXplb2YodGNiX2ZjLT5mbG93Y19pY29ubikgWyV1 +XSwgYnl0ZXMKAAAAAAAAAGFjdF9vcGVuX3JwbDogYXRpZCBbMHgleF0sIHRpZCBbMHgleF0sIHRj +Yl9mYy0+eyBpZCBbMHgleF0sIHN0YXRlIFsweCV4XSwgdHlwZSBbMHgleF0gfSwgY3BsX29wIFsw +eCV4XSwgc3RhdHVzIFsweCV4XQoAAAAAAAAAAAAAYWN0X29wZW5fcnBsOiBjc2tfZmMtPnsgaWQg +WzB4JXhdLCBzdGF0ZSBbMHgleF0sIGNzb2NrX2ZsYWdzIFsweCV4XSB9IAoAAAAAAAAAAABhY3Rf +b3Blbl9ycGw6IHJlY3ZkIG5lZyBhZHZpY2UgWzB4JXhdCgAAAAAAAAAAAABzZW5kX2Fib3J0X3Jw +bDogY3NrX2ZjLT5mbG93Y190eXBlIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIHRp +ZCBbMHgleF0sIHVscHR4Y2ggWyV1XSwgYnVmZmVyZWQgWyV1XQoAAAAAd3JoX29mbGRfdGNwX2Ns +b3NlX2Nvbl9yZXBseTogdGNiX2ZjLT5mbG93Y19pZCBbMHgleF0sIHRjYl9mYy0+Zmxvd2NfdHlw +ZSBbMHgleF0sIGxlbjE2IFsldV0sIGxvYyBbJXVdCgAAAAAAAAAAAHdyaF9vZmxkX3RjcF9jbG9z +ZV9jb25fcmVwbHk6IHJwbC0+b3BfVGlkIFsweCV4XSwgcnBsPnN0YXR1cyBbMHgleF0sIHJwbC0+ +c25kX254dCBbMHgleF0sIHJwbC0+cmN2X254dCBbMHgleF0KAAB0Y3BfYWJvcnRfcnBsX3Jzczog +dGlkIFsweCV4XSwgc3RhdHVzIFsweCV4XQoAAAB0Y3BfYWJvcnRfcmVxX3JzczogdGlkIFsweCV4 +XSwgc3RhdHVzIFsweCV4XSwgZmxvd2NfY3NvY2tfZm9pc2NzaV9zdGF0ZSBbMHgleF0KAG9mbGRf +YWJvcnRfcmVxX25lZ2FkdlsldV06IHdyIDB4JTA4eCBjcGxfYWJvcnRfcmVxIERFTElWRVJFRAoA +AABob3N0X3dyWyV1XTogd3IgMHglMDh4IGNwbF9hYm9ydF9yZXEgc3RhdHVzIDB4JXgKAAAAAAAA +AAAAAAAAAAAAcGt0c2NoZWRfY2xfcmxbJXU6JXVdOiBtb2RlIHwgdW5pdCB8IHJhdGUgMHglMDZ4 +IG1pbiAldSBtYXggJXUgcGt0c2l6ZSAldQoAAAAAAABwYXJhbV9jaG5ldFsweCV4OjB4JXhdOiBj +aG5ldCAweCV4IHJlYWQgJXUgcGYgJXUgcmV0ICVkCgAAAAAAAAAAcGFyYW1fZG1hcVsweCV4OjB4 +JXhdOiBkbWFxIDB4JXggcmVhZCAldSBwZiAldSByZXQgJWQKAAAAAAAAAAAAAFJTU1NFQ1JFVEtF +WTogcnNzc2VjcmV0IHRibCBiYXNlICVkLCByc3Nuc2VjcmV0ICVkCgAAAAAAAAAAAAAAAABNQ1sl +dV0gaW5pdF9zdGF0ZV9tYWNoaW5lIDB4JTAyeAoAAAAAAAAAAAAAAAAAAABNQyBpbml0aWFsaXph +dGlvbiBub3QgY29tcGxldGluZywgTUMgY3VycmVudCBpbml0IHN0YXRlIGlzIDB4JTAyeAoAAAAA +AAAAAAAAAAAAAE1DWyV1XSBfaHdfbWNfaW5pdF9tYwoAAAAAAAAAAAAAX2h3X21jX2luaXRfbWM6 +IGVycm9yLCByZXQgJWQKAABwaHk6IGZhaWxlZCB0byBhbGxvY2F0ZWQgbWVtb3J5IGZvciBwaHkg +ZncgZmlsZSwgcmV0ICVkCgAAAAAAAAAAaHdfbGVfZmlsdGVyX2N0dXBsZTogdHVwbGUgJXUgbm90 +IHNwZWNpZmllZCBidXQgcmVxdWlyZWQgZm9yIG1hc2sgMHgleAoAAAAAAAAAAABod190cF90Y3Bf +c2V0dGluZ3NfdzogdGltZXJfcnMgJXV1cyB0aW1lc3RhbXBfcmVzICV1dXMgZGVsYXllZGFja19y +ZXMgJXV1cwoAAAAAAGh3X3RwX3RjcF9zZXR0aW5nc193OiBkYWNrX3RpbWVyICV1dXMgbXNsICV1 +dXMgcnh0X21pbixtYXggJXUsJXV1cyBwZXJzX21pbixtYXggJXUsJXV1cwoAAAAAAAAAAGh3X3Rw +X3RjcF9zZXR0aW5nc193OiBrZWVwX2lkbGUsaW50dmwgJXUsJXVzIG1heHJ0dCAldXVzIGluaXRz +cnR0ICV1dXMgZmlud2FpdDJfdGltZXIgJXV1cwoAAAAAAGh3X3RwX3RjcF9zZXR0aW5nc193OiBj +YXBwaW5nIGRhY2tfdGltZXIgZnJvbSAldSB0byAldQAAAAAAAAAAAABod190cF90Y3Bfc2V0dGlu +Z3NfdzogY2FwcGluZyBtc2wgZnJvbSAldSB0byAldQBod190cF90Y3Bfc2V0dGluZ3NfdzogY2Fw +cGluZyByeHRfbWluIGZyb20gJXUgdG8gJXUAAAAAAAAAAAAAAAAAaHdfdHBfdGNwX3NldHRpbmdz +X3c6IGNhcHBpbmcgcnh0X21heCBmcm9tICV1IHRvICV1AAAAAAAAAAAAAAAAAGh3X3RwX3RjcF9z +ZXR0aW5nc193OiBjYXBwaW5nIHBlcnNfbWluIGZyb20gJXUgdG8gJXUAAAAAAAAAAAAAAABod190 +cF90Y3Bfc2V0dGluZ3NfdzogY2FwcGluZyBwZXJzX21heCBmcm9tICV1IHRvICV1AAAAAAAAAAAA +AAAAaHdfdHBfdGNwX3NldHRpbmdzX3c6IGNhcHBpbmcga2VlcF9pZGxlIGZyb20gJXUgdG8gJXUA +AAAAAAAAAAAAAGh3X3RwX3RjcF9zZXR0aW5nc193OiBjYXBwaW5nIGtlZXBfaW50dmwgZnJvbSAl +dSB0byAldQAAAAAAAAAAAABod190cF90Y3Bfc2V0dGluZ3NfdzogY2FwcGluZyBpbml0X3NydHRf +bWF4cnR0IGZyb20gJXUgdG8gJXUAAAAAaHdfdHBfdGNwX3NldHRpbmdzX3c6IGNhcHBpbmcgaW5p +dF9zcnR0X2luaXRzcnR0IGZyb20gJXUgdG8gJXUAAGh3X3RwX3RjcF9zZXR0aW5nc193OiBjYXBw +aW5nIGZpbndhaXQyX3RpbWVyIGZyb20gJXUgdG8gJXUAAAAAAABmaWx0ZXJNb2RlPSUjeCBpbGxl +Z2FsOiBzZWxlY3RzICVkIGJpdHMgKG1heCAlZCkKAAAAAAAAAAAAAAAAAAAAbGUgY29uZmlndXJh +dGlvbjogbmVudHJpZXMgJXUgcm91dGUgJXUgY2xpcCAldSBmaWx0ZXIgJXUgYWN0aXZlICV1IHNl +cnZlciAldSBoYXNoICV1CgAAAAAAAAAAAAAAbGUgY29uZmlndXJhdGlvbjogbmVudHJpZXMgJXUg +cm91dGUgJXUgY2xpcCAldSBmaWx0ZXIgJXUgc2VydmVyICV1IGFjdGl2ZSAldSBoYXNoICV1IG5z +ZXJ2ZXJzcmFtICV1CgAAAAAAAAAAAAAAAGh3X3NnZV9xdWV1ZV9iYXNlX21hcFsldV06IGV4Y2Vl +ZGVkIG51bWJlciBvZiBlZ3Jlc3MgcXVldWVzLCAldQoAAAAAAAAAAAAAAAAAAAAAaHdfc2dlX3F1 +ZXVlX2Jhc2VfbWFwWyV1XTogZXhjZWVkZWQgbnVtYmVyIG9mIGluZ3Jlc3MgcXVldWVzIHdpdGgg +ZnJlZWxpc3QgYW5kIGludGVycnVwdCwgJXUKAAAAaHdfc2dlX3F1ZXVlX2Jhc2VfbWFwWyV1XTog +ZXhjZWVkZWQgbnVtYmVyIG9mIGluZ3Jlc3MgcXVldWVzLCAldQoAAAAAAAAAAAAAAAAAAABFcnJv +ciwgVG90YWwgUlNTIFNlY3JldCB0YWJsZSBhbGxvY2F0aW9uICVkID4gMTYKAAAAAAAAAAAAAAAA +AAAAY2ZfcGFyc2U6IGZpbGUgbWVtdHlwZSAweCV4IG1lbWFkZHIgMHgleCBtYXBwZWQgQCAlcDoK +AAAAAAAAAAAAAGNvbmZpZ3VyZWQgd2l0aCBjYXBzIG5ibXxsaW5rIDB4JTA4eCBzd2l0Y2h8bmlj +IDB4JTA4eCB0b2V8cmRtYSAweCUwOHggaXNjc2l8Y3J5cHRvIDB4JTA4eCBmY29lOjB4JXgKAAAA +AAAAAAAAAABuZXQgVkkgYWxsb2NhdGlvbiBmYWlsZWQgZm9yIGZjX2lkICV1IHdpdGggZXJyb3Ig +JWQKAAAAAAAAAAAAAAAAbmV0IFZJIG1hYyBhZGRyZXNzIHByb2dyYW1taW5nIGZhaWxlZCBmb3Ig +ZmNfaWQgJXUgd2l0aCBlcnJvciAlZAoAAAAAAAAAAAAAAAAAAABuZXQgVkkgcnhtb2RlIHByb2dy +YW1taW5nIGZhaWxlZCBmb3IgZmNfaWQgJXUgd2l0aCBlcnJvciAlZAoAAAAAbmV0IFZJIHJzcyBp +bmRpcmVjdGlvbiB0YWJsZSBwcm9ncmFtbWluZyBmb3IgZmNfaWQgJXUgZmFpbGVkIHdpdGggZXJy +b3IgJWQKAAAAAABuZXQgVkkgcnNzIGNvbmZpZyBjb21tYW5kIGZhaWxlZCBmb3IgZmNfaWQgJXUg +d2l0aCBlcnJvciAlZAoAAAAAbmV0IFZJIGNvbW1hbmQgZmFpbGVkIGZvciBmY19pZCAldSB3aXRo +IGVycm9yICVkCgAAAAAAAAAAAAAAAAAAAHByb2dyYW1tZWQgSFcgdGFnbSBbMHglMDh4XSwgSFcg +cGdzeiBmYWN0b3IgWzB4JTA4eF0sIEZPaVNDU0kgdGFnbSBbMHglMDh4XSwgcnRhZ20gWzB4JTA4 +eF0sIG1heHN6X2JpdHMgWyV1XSwgc3pfYml0cyBbJXVdLgoAAAAAYmFzZSBbIDB4JTA4eF0sIGxs +aW1pdCBbMHglMDh4XSwgdWxpbWl0IFsweCUwOHhdLCBzaXplIFsldV0sIG1heF90eHN6IFsldV0s +IG1heF9yeHN6IFsldV0sIGlvc2l6ZSBbJXVdCgAAAAAAAAAAAG5wcG9kcyBbJXVdLCBpZHhfbWFz +ayBbMHglMDh4XSwgaWR4X2ZpcnN0IFsldV0sIGlkeF9sYXN0IFsldV0sIHNjc2lfcGxkX3NpemUg +WyV1XSwgQUxJR04oc2NzaV9wbGRfc2l6ZSwgMTYpIFsldV0sIHBwZF96b25lcyBbJXVdLgoAAAAA +AAAAAAAAAAAAAGZvaXNjc2lfaW5pdDogaW5pdF9kb25lOiV1LCBmb2lzY3NpX250YXNrczoldSwg +Zm9pc2NzaV9uc2VzczoldSwgbmNzb2NrOiV1LCBuc3BvcnRzOiV1LCBmb2lzY3NpX25pbml0OiV1 +LCByYzolZAoAAAAAAAAAAAAAAAAAAAAAY2hfY2xfcmF0ZVsldS8ldV06IGNhcHBlZCBjbGFzcyBy +YXRlIGZyb20gcmVxdWVzdGVkICV1IHRvIGNvbmZpZ3VyZWQgKGVmZmVjdGl2ZSkgY2hhbm5lbCBy +YXRlICV1CgAAAAAAAAAAAAAAAAAAAGNoX2NsX3JhdGVbJXUvJXVdOiBpbmNyZWFzZWQgZGVmaWNp +dF9pbmNyIGZyb20gcmVxdWVzdGVkICV1IHRvIHJlcXVpcmVkIG1pbiBvZiAldTsgcmF0ZSAldSAo +ZWZmICV1KSBkZWZpY2l0X21heCAldQoAAAAAAAAAAAAAAAAAcGt0c2NoZWQgY2hhbm5lbCAldSBz +ZXRzIHNwZWVkIChmcm9tICV1KSB0byAldSBrYnBzCgAAAAAAAAAAAAAAAG5ldF9sMmRldl9ub3Rp +Znk6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIHBvcnQgWyVkXSwgZXZlbnQgWzB4JXhdLCB1 +bHB0eGNoIFsldV0sIGNsYXNzIFsweCV4XSwgdnByaW8gWzB4JXhdLCB2aWQgWzB4JXhdLCB2aV9y +ZWFkeSBbJXVdCgAAAAAAAG5ldF9sMmRldl9ub3RpZnk6IHBnaWQgWzB4JXhdLCBwcmlvIFsweCV4 +XSwgY2ggWzB4JXhdCgAAAAAAAAAAAABbJXVdIHVuYWJsZSB0byBleGVjdXRlIGludGVybmFsIERD +Ql9JRUVFX0NNRAoAAABwb3J0WyV1XSBsaW5rIGRvd24gKCV1KSAobHN0YXR1cyAlI3gpCgAAAAAA +AAAAAABpMmMgZXJyb3IgY2F1c2VkIGJ5IG1vZHVsZSB1bnBsdWcKAAAAAAAAAAAAAAAAAABzZW5k +dG8gcGVuZGluZzogd3JfcGVuZCAlcCBmb3IgcG9ydCAldSwgd2FudCB0byBzZW5kIHRvIHBvcnQg +JXUKAAAAAAAAAAAAAAAAAAAAAHBvcnRbJXVdIHVwZGF0ZSAoZmxvd2NpZCAldSByYyAldSkKAAAA +AAAAAAAAAAAAAHBvcnRfc2V0X2xvb3BiYWNrIHBvcnQgJSN4IGN1cnJlbnQgJSN4IG1vZGUgJSN4 +CgAAAAAAAAAAAAAAAAAAAABwb3J0WyV1XSBzcGVlZCB1cGRhdGU6ICUjeAoAAAAAAHBvcnRbJXVd +IGJlZ2lubmluZyBkZWJvdW5jZQoAAAAAcG9ydF9saW5rX3N0YXRlX2hhbmRsZXJbJXVdIHBvd2Vy +aW5nIGRvd24KAAAAAAAAcG9ydF9saW5rX3N0YXRlX2hhbmRsZXJbJXVdIHBvd2VyaW5nIHVwCgAA +AAAAAAAAcG9ydF9saW5rX3N0YXRlX2hhbmRsZXJbJXVdIHVua25vd24gc3RhdGUgKHN0YXRlID0g +JSN4KQoAAAAAAAAAAHBvcnRfbGlua19zdGF0ZV9oYW5kbGVyOiBTb21ldGhpbmcgd2VudCB0ZXJy +aWJseSB3cm9uZy4gcmV0ID0gJWQKAAAAAAAAAAAAAAAAAAAAbGUgaW5pdGlhbGl6YXRpb246IG5l +bnRyaWVzICV1IHJvdXRlICV1IGNsaXAgJXUgZmlsdGVyICV1IGFjdGl2ZSAldSBzZXJ2ZXIgJXUg +aGFzaCAldQoAAAAAAAAAAAAAbGUgaW5pdGlhbGl6YXRpb246IG5lbnRyaWVzICV1IHJvdXRlICV1 +IGNsaXAgJXUgZmlsdGVyICV1IHNlcnZlciAldSBhY3RpdmUgJXUgaGFzaCAldSBuc2VydmVyc3Jh +bSAldQoAAAAAAAAAAAAAAGh3X3RwX2luaXQ6IHRjYiByZWdpb24gKHN0YXJ0IDB4JTA4cyBzaXpl +ICV1KSBtdXN0IGJlIGluIGZpcnN0IDI1Nk1CIG9mIE1BIG1lbW9yeQoAAAAAAAAAAAAAAAAAAGh3 +X3RwX2luaXQ6IHBnbW5ndCByZWdpb24gKHN0YXJ0IDB4JTA4cyBzaXplICV1KSBtdXN0IGJlIGlu +IGZpcnN0IDI1Nk1CIG9mIE1BIG1lbW9yeQoAAAAAAAAAAAAAAGh3X3RwX2luaXQ6IFRQIHBnbW5n +dCBpbml0aWFsaXphdGlvbiBkaWQgbm90IGNvbXBsZXRlCgAAAAAAAAAAAABidWZtX2luaXQ6IG4g +JXUgYnVmbGw2NGludF9zaXplIDB4JXgKAAAAAAAAAAAAAABidWZtX2luaXQ6IG5vdCBlbm91Z2gg +bWVtb3J5IHRvIGFsbG9jYXRlIGludGVybmFsIGJ1ZmxsNjQgYnVmZmVycwoAAAAAAAAAAAAAAAAA +AGJ1Zm1faW5pdDogbm90IGVub3VnaCBtZW1vcnkgdG8gYWxsb2NhdGUgYnVmbGw2NCBidWZmZXJz +CgAAAAAAAABtZW1faW5pdF9idWY6IG5vdCBlbm91Z2ggbWVtb3J5IHRvIGFsbG9jYXRlIGZsb3cg +YnVmZmVycwoAAAAAAAAAbWVtX2luaXRfYnVmOiBub3QgZW5vdWdoIG1lbW9yeSB0byBhbGxvY2F0 +ZSB0Y2JfY2FjaGUgKG9mZmVyZWQgJXUgdHJ5aW5nIHRvIHVzZSAldSBhdmFpbGFibGUgJXUpCgAA +AAAAAAAAAAAAAAAAAG1wYXJ0aXRpb25fb3RoZXJzOiBzdGFydCAweCUwOHggc2l6ZSAldSAodW51 +c2VkICV1KQoAAAAAAAAAAAAAAABtcGFydGl0aW9uX290aGVyczogc3RhcnQgMHglMDh4IHNpemUg +JXUgKHVudXNlZCAldSkKAAAAAAAAAAAAAAAAbWVtX2luaXQ6IEVEQyBvdmVyY29tbWl0dGVkIGJ5 +ICVkIGJ5dGVzCgAAAAAAAAAAbWVtX2luaXQ6IG5vdCBlbm91Z2ggbWVtb3J5IHRvIGFsbG9jYXRl +IGZsb3cgdGFibGUKAAAAAAAAAAAAAAAAAGN4Y25pY19kZXZpY2VfaW5pdDogY3hjbmljIFsweCUw +eF0sIGN4Y25pYy0+ZmlsdGVyIFslMHhdCgAAAAAAAABwb2Zjb2UgaW5pdCBkb25lCgAAAAAAAAAA +AAAAAAAAAHBvcnRfaW5pdFsldV0gcHR5cGUgMHgleAoAAAAAAAAAUG9ydFsldV06IFVua25vd24g +U0dNSUkgc3ViLXR5cGUgJSN4CgAAAAAAAAAAAAAAUG9ydFsldV06IFVua25vd24gQlRfWEZJIHN1 +Yi10eXBlICUjeAoAAAAAAAAAAAAAUG9ydFsldV06IFVua25vd24gQlRfWEFVSSBzdWItdHlwZSAl +I3gKAAAAAAAAAAAAcG9ydF9pbml0WyV1XTogcG9ydCB0eXBlIDB4JXggaXMgbm90IHN1cHBvcnRl +ZAoAbXBhcnRpdGlvbl9pbml0OiBtb3ZlZCBwbXJ4X3N0YXJ0IGZyb20gMHglMDh4IHRvIDB4JTA4 +eCB0byBtYWtlIHJvb20gZm9yIExFIEhBU0ggYW5kL29yIFRQIFRDQnMKAAAAAAAAAAAAAAAAAAAA +AG1wYXJ0aXRpb25faW5pdDogbW92ZWQgcG1yeF9zdGFydCBmcm9tIDB4JTA4eCB0byAweCUwOHgg +KEVEUkFNKQoAAAAAAAAAAAAAAAAAAAAARVEgcGZuICV1IHZmbiAldTogZGVzdHJveWluZyBlcWlk +ICV1IHdpdGggcGVuZGluZyBXUihzKSAobnVtX2J5dGVzICV1IGFuZCBmbGFncyAweCUwOHgKAAAA +AAAAAAAAbDJkZXZfZmMtPmZsb3djX2lkIFsldV0sIGwyZGMtPnBmbiBbJXVdLCBsMmRjLT52Zm4g +WyV1XSwgbDJkYy0+bHBvcnQgWyV1XSwgbDJkZXZfZmMtPmZsb3dpZCBbJXVdIGwyZGMtPnR4X2No +IFsldV0sIGRldi52cGQucG9ydHZlYyBbJXhdCgAAAAAAAAAAcG9ydHZlYyBbJXVdCgAAAGwyZGV2 +X3ZpX2ZzbTogbWIgWzB4JXhdLCBkZWZlcnJlZCwgc3RhdGUgWzB4JXhdLCBwb3J0IFsweCV4XQoA +AABsMmRldl92aV9mc206IHZpaWQgWzB4JXhdIHBvcnQgWzB4JXhdLCBtYWMtaWQgWyUwMng6JTAy +eDolMDJ4OiUwMng6JTAyeDolMDJ4XS4gCgAAAAAAAAAAAAAAAAAAAABsMmRldl92aV9mc206IHNn +ZV9lcWlkIFsweCV4XSwgc2dlX2lxaWQgWzB4JXhdLCBzZ2VfZXFjciBbMHgleF0sIHJzc19zeiBb +MHgleF0KAGwyZGV2X3ZpX2ZzbTogbDJkZXZfZmMtPmZsb3djX25ldF9sMmRldl9tdHUgWyV1XSwg +bWJfc2NyYXRjaCBbMHgleF0sIHBvcnQgWzB4JXhdCgAAAAAAAAAAAAAAAAAAAGwyZGV2X3ZpX2Zz +bTogdmlpZCBbJWRdLCB2aV9mYy0+Zmxvd2NfdmlfZmxhZ3MgWzB4JXhdCgAAAAAAAAAAAABsMmRl +dl92aV9mc206IHBmbiBbMHgleF0sIHZmbiBbMHgleF0sIGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgl +eF0sIGxwb3J0IFsweCV4XSwgdmlpZCBbMHgleF0sIGZsYWdzIFsweCV4XQoAAAAAAAAAbDJkZXZf +dmlfZnNtOiBFcnJvciBmcmVlaW5nIFZJLCByYyBbMHgleF0KAAAAAAAAbDJkZXZfdmlfZnNtOiBw +aWQgWzB4JXhdLCB2aWlkIFsweCV4XSwgbWJfbG9jIFsweCV4XSwgbWJfb3JpZ1sweCV4XSwgbDJk +ZXZfZmxhZ3MgWzB4JXhdLCByYyBbMHgleF0KAAAAAAAAAAAAAAAAAEFoIGhhLi4uZG91YmxlIGZy +ZWUgb3hfaWQgMHgleCwgcnhfaWQgMHgleAoAAAAAAEhvc3QgUFJMSSBSZXNwb25zZSB0aW1lZG91 +dDogb3hfaWQgMHgleCByeF9pZCAweCV4CgAAAAAAAAAAAAAAAABwZm4gJXUgdmZuICV1IHZpYSBj +b21tYW5kCgAAAAAAAGNvbmZpZ3VyYXRpb24gZmlsZSBwYXJzZXI6IGFuX2FlY190aW1lIHZhbHVl +ICVkIGlzIGJpZ2dlciB0aGFuIGFsbG93ZWQgbGltaXQuQ2hhbmdpbmcgaXQgdG8gMTAwMDAgbXMu +CgAAAAAAAAAAAABEZXByZWNhdGVkIGNvbmZpZyBvcHRpb24gZm91bmQgaW4gY29uZmlnIGZpbGUu +IElnbm9yaW5nLi4KAAAAAAAAc2NoZWRfaW9xdHhfYnBfcHJpb3JpdHk6IGhhcyAldSBlbnRyaWVz +IG9ubHksIHJlcXVpcmVzICV1IGVudHJpZXMKAAAAAAAAAAAAAAAAAAB0cF9iYWNrb2ZmOiBwYXJz +ZWQgJWQgaW5zdGVhZCBvZiAldSBlbnRyaWVzCgAAAAB0cF90aW1lcnZhbHM6IHBhcnNlZCAlZCBp +bnN0ZWFkIG9mICV1IGVudHJpZXMKAAB0cF90aW1lcnJlczogcGFyc2VkICVkIGluc3RlYWQgb2Yg +JXUgZW50cmllcwoAAAB0cF9tdHVzIGhhcyAldSBlbnRyaWVzIG9ubHksIHJlcXVpcmVzICV1IGVu +dHJpZXMKAAAAAAAAAAAAAAAAAAAAdHBfbXR1c1sldV0gaXMgJXUgYnl0ZXMgd2hpY2ggaXMgbm90 +IHN1cHBvcnRlZAoAY29uZmlndXJhdGlvbiBmaWxlIHBhcnNlcjogc2dlIHRpbWVyIHZhbHVlWyVk +XSBpcyB0b28gbGFyZ2UsIGNoYW5naW5nIGZyb20gJXUgdG8gJXV1c2VjcwoAAAAAAAAAZmlsdGVy +bWFzayAweCV4IGlzIG5vdCBlcXVhbC9zdWJzZXQgdG8vb2YgZmlsdGVybW9kZQoAAAAAAAAAAAAA +AGh3X2xlX2NsaXBfaGFuZGxlcjogcmVtb3ZlZCBwb3M9JXUgKD1pZHggJXUpCgAAAGh3X2xlX2Ns +aXBfaGFuZGxlcjogYWRkaW5nIHRvIHBvcz0ldSAoPWlkeCAldSkKAG1vZHVsZVsldV06IHBvcnQg +bW9kdWxlIGluc2VydGVkIGFuZCByZWFkeQoAAAAAAG1vZHVsZVsldV06IHBvcnQgbW9kdWxlIHJl +bW92ZWQKAAAAAAAAAAAAAAAAAAAAAG1vZHVsZVsldV06IHVua25vd24gbW9kdWxlIGlkZW50aWZp +ZXIgMHglMDJ4CgAAAG1vZHVsZVsldV06IGdwaW8gJXUgdHJhbnMgMTBHIDB4JTAyeCAxRyAweCUw +MnggKGxlbmd0aCAldSkgY2FibGUgMHglMDJ4IChsZW5ndGggJXUpIG1vZHVsZV90eXBlIDB4JTAy +eAoAAAAAAAAAAABtb2R1bGVbJXVdOiBncGlvICV1IHRyYW5zIDEwRyAweCUwMnggMUcgMHglMDJ4 +IChsZW5ndGggJXUpIGNhYmxlIDB4JTAyeCAobGVuZ3RoICV1KSBtb2R1bGVfdHlwZSAweCUwMngK +AAAAAAAAAAAAcGZuICV1IHZmbiAldSBGU00gc3RhcnQKAAAAAAAAAABwZm4gJXUgdmZuICV1IEZT +TSBjb21wbGV0ZQoAAAAAAGZscl9wZnZmX2ZzbVsldToldV06IHVua25vd24gc3RhdGUgJXUKAAAA +AAAAAAAAAGh3IHBmIGJpdG1hcCAweCUwMnggdmZpZCBiaXRtYXAgMHglMDh4OjB4JTA4eDoweCUw +OHg6MHglMDh4CgAAAABhZnRlciB2ZmlkIGZpeHVwLCB2ZmlkIGJpdG1hcCAweCUwOHg6MHglMDh4 +OjB4JTA4eDoweCUwOHgKAAAAAAAAdGltZXIgcXVldWUgJXUgbG9zdCBhIHRpY2shIG5leHQgJXAg +bGFzdCAlcCBudW1lICV1CgAAAAAAAAAAAAAAAGZscl90aW1lcl9zdGFydDogZmxvd2NfaWQgJXUg +JXAgYnVmICVwCgAAAAAAAAAAAHBjaWU6IG5wZiAldSAocGZiaXRtYXAgMHglMDJ4KSBudmYgJXUg +KHBmIDAuLjcgMHglMDh4JTA4eCkgdmZzdHJpZGUgJXUKAAAAAAAAAAAAaHdfZ3Bpb19wcmVwOiBl +cnJvciwgcmV0ICVkCgAAAABmYWlsZWQgdG8gZmluZCB0aGUgJWMlYyBWUEQgcGFyYW1ldGVyCgAA +AAAAAAAAAABmYWlsZWQgdG8gcGFyc2UgdGhlICVjJWMgVlBEIHBhcmFtZXRlcgoAAAAAAAAAAABt +ZW1fcHJlcDogZXJyb3IsIHJldCAlZAoAAAAAAAAAAGZhaWxlZCB0byBzdWNjZXNzZnVsbHkgZmlu +ZCBDaGVsc2lvIFZQRAoAAAAAAAAAAHZwZF9wcmVwOiBlcnJvciwgcmV0ICVkCgAAAAAAAAAAc2Vy +Y2ZnX3ByZXA6IGVycm9yLCByZXQgJWQKAAAAAABsb2cgaW5pdGlhbGl6ZWQgQCAweCUwOHggc2l6 +ZSAldSAoJXUgZW50cmllcykgZndyZXYgMHglMDh4IHBjaWVfZncgMHglMDh4CgAAAAAAAGdhdGhl +cl90YXNrc19mb3JfdG1mOiBpZHggWzB4JXhdLCB0YXNrLWlkIFsweCV4XSwgY21kLWlkIFsweCV4 +XSwgYWN0aXZlIHRhc2tzIFsweCV4XS4gY29ubi1pZCBbMHgleF0sIGNtZCBjb25uLWlkIFsweCV4 +XSwgdGFzayBjb25uLWlkIFsweCV4XQoAAGdhdGhlcl90YXNrc19mb3JfdG1mOiBJbnZhbGlkIHR5 +cGUgWzB4JXhdLCBiYWlsaW5nIG91dC4KAAAAAAAAAABnYXRoZXJfdGFza3NfZm9yX3RtZjogdGFz +ayBpZCBbMHgleF0sIHN0YXRlIFsweCV4XSwgbGlkeCBbMHgleF0sIGNvb2tpZSBoaSBbMHglMDh4 +XSA6IGxvIFsweCUwOHhdCgAAAAAAAAAAAAAAAAAAZ2F0aGVyX3Rhc2tzX2Zvcl90bWY6IHJjIFsw +eCV4XSwgWzB4JXhdIHRhc2sgZ2F0aGVyZWQgZm9yIHRtZiB0eXBlIFsweCV4XSBwcm9jZXNzaW5n +LgoAAAAAAAAAAAAAc2NzaV9kYXRhX291dDogY29ubl9mYyBbMHgleF0sIHN0YXRlIFsweCV4XSwg +c2Vzc19mYyBbMHgleF0gaW4gcmVjb3ZlcnkuIFNraXBwaW5nIGlzdGFza19mYyBbMHgleF0gZnJv +bSBUWC4KAAAAAHNlbmRfbXNnX3BsZDogZmMgeyBpZCBbMHgleF0sIGZsYWdzIFsweCV4XSwgYnVm +ZmVyZWQgWyV1XS4gfQoAAABzZW5kX21zZ19wbGQ6IHNlc3MgeyBpZCBbMHgleF0gfSwgdWxwdHhj +aCBbJXVdIG5vIGNyZWRpdHMgYXZhaWxhYmxlLCByZXNjaGVkdWxpbmcgcmVxdWVzdC4KAAAAAABz +ZW5kX2Fib3J0X3JlcTogY3NrX2ZjLT5mbG93Y190eXBlIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19p +ZCBbMHgleF0sIHRpZCBbMHgleF0sIHVscHR4Y2ggWyV1XSwgYnVmZmVyZWQgWyV1XQoAAAAAZmNf +c2VuZF9hbGxvY19jcGw6IGZhaWxlZCB0byBzZXR1cCBmaWx0ZXIgY3R1cGxlCgAAAAAAAAAAAAAA +AAAAAGZjb2VfY29tcHV0ZV9jdHVwbGUgMHgleDoleAoAAAAAY29tcHV0ZV9jdHVwbGUoKTogZmFp +bGVkIHRvIHNldHVwIGZpbHRlciBjdHVwbGUKAAAAAAAAAAAAAAAAAAAAAEZDb0UgRkNCIGxpbmtk +b3duOiBpb19yZXEgMHgleCV4IGlxaWQgMHgleCBmbG93aWQgMHgleCBvcCAweCV4CgBmY29lIG5v +dGlmeSA6IFVwZGF0ZSBuZXcgRENCWCB2YWx1ZXMgVkkgc3RhdGUgMHgleCBwcmkgMHgleCBzY2hl +ZGNsIDB4JXggZGNieF9kb25lIDB4JXgKAAAAAAAAAABmY29lIG5vdGlmeSA6IEZDRiBmbG93aWQg +MHgleCwgdWxwY2ggMHgleCAKAAAAAABmY29lIG5vdGlmeSA6IEZDb0UgTElOS1VQOiBwb3J0IDB4 +JXgsIGV2ZW50IDB4JXgKAAAAAAAAAAAAAAAAAAAAZmNvZSBub3RpZnkgOiBGQ29FIExJTktET1dO +OiBwb3J0IDB4JXgsIGV2ZW50IDB4JXgKAAAAAAAAAAAAAAAAAGZjb2Ugbm90aWZ5IDogRENCWCA6 +IHBvcnQgMHgleCwgcHJpb3JpdHkgMHgleCB1bHB0eGNoIDB4JXggY2xhc3MgMHgleAoAAAAAAAAA +AAAAUkRFViBtc2cgZmxvd2M6JXggc3RhdGUgMHgleCBldmVudCAweCV4CgAAAAAAAAAAY2FuY2Vs +IGZjYjoleCBzY2I6JXggc3RhdGU6JXgKAABGQ29FIEZDRiB0aW1lcjogZmxvd2Mgc3RhdGUgMHgl +eCwgcG9ydCAweCV4ICxmY2YgMHgleCwgZmxvd2NfaWQgMHgleAoAAAAAAAAAAAAAAGh3IHJlZ2lz +dGVyIG9wZXJhdGlvbiBub3QgY29tcGxldGluZywgcmVnIDB4JTA4eCBtYXNrIDB4JTA4eCB2YWx1 +ZSAweCUwOHggKHJlZyAweCUwOHgpCgAAAAAAAAAAAE1ESU8gQ0w0NTogZmFpbGVkIHRvIHNldCB1 +cCBNTUQgYWRkcgoAAAAAAAAAAAAAAE1ESU86IGZhaWxlZCB0byB3cml0ZQoAAAAAAAAAAAAATURJ +TyBDTDQ1OiBmYWlsZWQgdG8gc2V0IHVwIE1NRCBhZGRyCgAAAAAAAAAAAAAATURJTzogZmFpbGVk +IHRvIHJlYWQKAAAAAAAAAAAAAAAJQVFfVGFrZUNvbnRyb2xPZkZMQVNIOiAxZS5jMDAxPSUjeCAx +ZS5jNDUwPSUjeCAxZS5jNDUxPSUjeCAxZS4xMDA9JSN4CgAAAAAAAAAAAEFRX0FQSV9Xcml0ZUFu +ZFZlcmlmeUZsYXNoSW1hZ2UgLSBJbWFnZSBpbnRlZ3JpdHkgY2hlY2sgZmFpbGVkIChjYWxjICUj +eCB2YWwgJSN4KQoAAAAAAAAAAAAAAAAAAEFRX0FQSV9Xcml0ZUFuZFZlcmlmeUZsYXNoSW1hZ2Ug +LSBJbWFnZSBpbnRlZ3JpdHkgY2hlY2sgcGFzc2VkCgBBUV9BUElfV3JpdGVBbmRWZXJpZnlGbGFz +aEltYWdlIC0gVGltZW91dCB3YWl0aW5nIGZvciBmbGFzaCBpbnRlcmZhY2UgKCV1KQoAAAAAAEFR +X0FQSV9Xcml0ZUFuZFZlcmlmeUZsYXNoSW1hZ2UgLSBUaW1lb3V0IHdhaXRpbmcgZm9yIGZsYXNo +IGludGVyZmFjZSAoJXUpCgAAAAAAQVFfQVBJX1dyaXRlQW5kVmVyaWZ5Rmxhc2hJbWFnZSAtIFRp +bWVvdXQgd2FpdGluZyBmb3IgZmxhc2ggaW50ZXJmYWNlICgldSkKAAAAAABBUV9BUElfV3JpdGVB +bmRWZXJpZnlGbGFzaEltYWdlIC0gVGltZW91dCB3YWl0aW5nIGZvciBmbGFzaCBpbnRlcmZhY2Ug +KCV1KSAocHAgJSN4IGFwICUjeCkKAAAAAABBUV9BUElfV3JpdGVBbmRWZXJpZnlGbGFzaEltYWdl +IC0gVGltZW91dCB3YWl0aW5nIGZvciBmbGFzaCBpbnRlcmZhY2UgKCV1KQoAAAAAAEFRX0FQSV9X +cml0ZUFuZFZlcmlmeUZsYXNoSW1hZ2UgLSBUaW1lb3V0IHdhaXRpbmcgZm9yIGZsYXNoIGludGVy +ZmFjZSAoJXUpCgAAAAAAQVFfQVBJX1dyaXRlQW5kVmVyaWZ5Rmxhc2hJbWFnZSAtIEVycm9yIG9u +IGJ1cm5pbmcgRkxBU0ggKGNyYzE2IG1pc21hdGNoKQoAAAAAAABzZW5kX2Nsb3NlX3JlcTogY3Nr +X2ZjLT5mbG93Y190eXBlIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIGNza19mYy0+ +dGNiX3N0YXRlIFsweCV4XQoAAABzZW5kX2Nsb3NlX3JlcTogY3NrX2ZjLT5mbG93Y190eXBlIFsw +eCV4XSwgY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIHRpZCBbMHgleF0sIHVscHR4Y2ggWyV1XSxi +dWZmZXJlZCBbJXVdCgAAAAAAb2ZsZF90Y3BfZG9fYWN0aXZlX2Nsb3NlOiBjc2tfZmMgWzB4JXhd +LCBjc2tfZmMtPmZsb3djX2lkIFsweCV4XSwgY3NrX2ZjLT50Y2Jfc3RhdGUgWzB4JXhdCgAAAAAA +b2ZsZF90Y3BfZG9fYWN0aXZlX2Nsb3NlOiBjc2tfZmMgWzB4JXhdLCBjc2tfZmMtPmZsb3djX2lk +IFsweCV4XSwgY3NrX2ZjLT50Y2Jfc3RhdGUgWzB4JXhdCgAAAAAAb2ZsZF90Y3BfZGlzY29ubmVj +dDogdGNiX2ZjLT5mbG93Y19pZCBbMHgleF0sIGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2st +PnRjYl9zdGF0ZSBbMHgleF0KAAAAZGVjb2RlX2Jhc2U2NF9zdHJpbmc6IGRsZW4gWyVkXQoAAAAA +AAAAAAAAAAAAAAAAZGVjb2RlX2hleF9zdHJpbmc6IGRsZW4gWyVkXQoAAABmb2lzY3NpX3ZhbGlk +YXRlX2xvZ2luX3N0YWdlOiAtIDEKAAAAAAAAAAAAAAAAAABhc3luY19wZHU6IGxvZ291dCByZXF1 +ZXN0ZWQgYmxvY2tpbmcgc2Vzc2lvbgoAAABhc3luY19wZHU6IHNlc3MvY29ubiBkcm9wIHJlcXVl +c3RlZCBibG9ja2luZyBzZXNzaW9uCgAAAAAAAAAAAAAAY3BsX3R4X3BrdDogdmxhbmlkIFsweCV4 +XQoAAAAAAABuZXRfbDJkZXZfZmluZF9ieV9hZGRyOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhd +LCBsMmRjLT5scG9ydCBbJXVdLCBsMmRfZmMtPmZsb3djX2lkIFsweCV4XSwgbDJkYy0+aW40X2Rl +di5pbl9hZGRyLmFkZHIgWzB4JXhdLCBhZGRyIFsweCV4XQoAAABuZXRfbDJkZXZfbXR1X2NvbmZp +ZzogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgbXR1ICV1CgAAAAAAAAAAY3BsX3R4X3BrdDog +dmxhbmlkIFsweCV4XQoAAAAAAABlbmNvZGUgaGV4IHN0cmluZzogZGxlbiBbJWRdCgAAAGNobmV0 +X2ZpbmRfbDJ0X2VudHJ5OiBkYWRkciBbJTA4eF0sIFsweCUwOHhdLCBsb2NhbCBuZXR3b3JrIFsl +ZF0KAAAAAAAAAAAAAAAAAAAAbDJ0ZW50IFslMHhdLCBsMnRlbnQtPmlkeCBbJWRdCgB0Y3Bfc2Vu +ZF9hb3Blbl9yZXE6IGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2tfZmMtPmZsb3djX3N0YXRl +IFsweCV4XSwgYnVmZmVyZWQgWyV1XSwgcmVzX2NudCBbMHgleF0sIGlxX2lkeCBbMHgleF0KAAAA +AAAAAAAAAHRjcF9zZW5kX2FvcGVuX3JlcTogY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIGNza19m +Yy0+Zmxvd2Nfc3RhdGUgWzB4JXhdLCBubyB2YWxpZCBsMnRfZW50eS4gRGVsYXlpbmcgYW5vdGhl +ciByZXRyeSBmb3IgMSBzZWNvbmRzLgoAAAAAAAAAAAAAAAAAAGFvcGVuX3JlcTogaHdfbGVfZmls +dGVyX2N0dXBsZSBmYWlsZWQKAAAAAAAAAAAAAG9mbGRfdGNwX3NlbmRfYW9wZW5fcmVxOiBjcGxf +cmVxLT5GaWx0ZXIgWzB4JTB4XSwgY3R1cGxlc1swXSBbMHgleF0sIGN0dXBsZXNbMV0gWzB4JXhd +CgAAAAAAAAAAAGxhZGRyX3JldDogbDJkYy5hZGRyIDoweCV4LCBzcmNfYWRkcjoweCV4CgAAAAAA +AGNzb2NrX2FsbG9jOiBzcmNfYWRkcjoweCV4LCBkc3RfYWRkcjoweCV4CgAAAAAAAGNza19hbGs6 +IEludmFsaWQgbDJkZXY6MHgleAoAAAAAY3NrX2FsazogbmV4dDoldSwgaWR4OiV1LCB1c2VkOiV1 +LCBzcG9ydDoldQoAAAAAY3NvY2tfYWxsb2M6IGNzb2NrX3NyY19hZGRyOjB4JXgsIGNzb2NrX2Rz +dF9hZGRyOjB4JXgKAAAAAAAAAAAAAGNzb2NrX2FsbG9jOiB0eF9jaCBbMHgleF0sIGxwb3J0IFsw +eCV4XSwgY29va2llIFslMDh4XQoAAAAAAAAAAABjc29ja19hbGxvYzogYXZhaWxhYmxlIFsldV0s +IG5jc29jayBbJXVdLCBwb3M6YXRpZCBbMHgleF0sIGNza19mYyBbMHgleF0sIGNza19mYy0+Zmxv +d2NfaWQgWzB4JXhdLCBzcG9ydCBbJXVdCgAAaXR0X3RvX3Rhc2tfaWR4OiB0YWcgWzB4JTA4eF0s +IGhpIFsldV0sIGxvIFsldV0sIG5tYXNrYml0cyBbJXVdLCB0YXNrX2lkeCBbJXVdCgBXQVRDSERP +RzogTm8gdGVtcGVyYXR1cmUgc2Vuc29yIGF2YWlsYWJsZS4KAAAAAABXQVRDSERPRzogQWN0aXZh +dGluZwoAAAAAAAAAAAAAAFdBVENIRE9HIC0gRW5hYmxlIGFjdGlvbiAldSB0aW1lICV1CgAAAAAA +AAAAAAAAAFdBVENIRE9HIC0gRGlzYWJsZSBhY3Rpb24gJXUKAAAAV0FUQ0hET0c6IERlLWFjdGl2 +YXRpbmcKAAAAAAAAAABwb3J0WyV1XSBzZXQgUEFVU0UgUEFSQU1TOiBwcHBlbiAldSB0eHBlICUj +eCByeHBlICUjeAoAAAAAAAAAAAAAbXBzX2xpbmtfdXBbJXVdIGFjYXBzICUjeCAoODAyLjMgJSN4 +KSArIGxwYWNhcHMgJSN4ID0+ICUjeAoAAAAAAGZvaXNjc2kgY29ubl9mYyBbMHgleF0sIGZsb3dj +X3NjaGVkY2wgWzB4JXhdLCBpbmdfY2ggWzB4JXhdLCBlZ3JfY2ggWzB4JXhdCgAAAAAAbDJkZXZf +bm90aWZ5IHdpdGggdW5rbm93biBmbGFnIFsweCV4XQoAAAAAAAAAAAAAY2hfY2xfcmF0ZVsldS8l +dV06IGNhcHBlZCBkZWZpY2l0X2luY3IgZnJvbSByZXF1aXJlZCAldSB0byAldTsgcmF0ZSAldSAo +ZWZmICV1KSBkZWZpY2l0X21heCAldQoARENCWDogc3VtIG9mIHJhdGVzIG9uIGFsbCBjbGFzc2Vz +IG11c3QgYmUgMTAwIChhY3R1YWw6ICV1KQoAAAAAAHdvcmthcm91bmQxMzcyMzogZGV0ZWN0ZWQg +V1IgQCAweCUwOHggb2Ygc2l6ZSAldSBieXRlcywgZHJpYmJsaW5nIGl0IGluICV1IGJ5dGVzIGF0 +IGEgdGltZQoAAAAAAHJpX3dyX2luaXRbJXVdOiBtc3MgJXUgaXMgbm90IDgtYnl0ZSBhbGlnbmVk +CgAAAGNvcmVfcHJvZ3JhbV90Y2I6IHRpZCAlI3ggdF9zdGF0ZSAlI3ggcmN2X2FkdiAweCUwOHgg +cmN2X3NjYWxlICUjeCB0eF9tYXggJSN4IHJjdl9ueHQgJSN4IGF0aWQgJSN4CgAAAAAAAAAAAAAA +AAAJb3B0MCAlI3gleCBvcHQyICUjeCBpcHY2ICUjeCBmbGFnc190aW1lciAweCUwOHgKAAAAAAAA +AAAAAAAAAAAAb2ZsZF9jb25uZWN0aW9uX3dyOiBjb25uZWN0aW9uIHdpdGggNS10dXBsZSBscCAw +eCUwNHggZnAgMHglMDR4IGxpcCAweCUwOHglMDh4IHBpcCAweCUwOHglMDh4IGZpbHRlciAweCUw +OHggZXhpc3RzIEAgTEUgaW5kZXggJXUKAAAAAAAAAAAAAAAAAAAAb2ZsZF9jb25uZWN0aW9uX3dy +OiBjb25uZWN0aW9uIHdpdGggNS10dXBsZSBscCAweCUwNHggZnAgMHglMDR4IGxpcCAweCUwOHgg +cGlwIDB4JTA4eCBmaWx0ZXIgMHglMDh4IGV4aXN0cyBAIExFIGluZGV4ICV1CgAAAAAAAABvZmxk +X2Nvbm5lY3Rpb25fd3I6IGNvbm5lY3Rpb24gd2l0aCA1LXR1cGxlIGxwIDB4JTA0eCBmcCAweCUw +NHggbGlwIDB4JTA4eCUwOHggcGlwIDB4JTA4eCUwOHggZmlsdGVyIDB4JTA4eAoAAAAAb2ZsZF9j +b25uZWN0aW9uX3dyOiBjb25uZWN0aW9uIHdpdGggNS10dXBsZSBscCAweCUwNHggZnAgMHglMDR4 +IGxpcCAweCUwOHggcGlwIDB4JTA4eCBmaWx0ZXIgMHglMDh4CgAAAAAAAAAAAAAAAElRRkxJTlQg +cGZuICV1IHZmbiAldTogaXFpZCAldSB0b28gbGFyZ2UgKG1heCAldSkKAAAAAAAAAAAAAAAAAABJ +UUZMSU5UIHBmbiAldSB2Zm4gJXU6IGlxaWQgJXUgbm90IGFsbG9jYXRlZAoAAABJUUZMSU5UIHBm +biAldSB2Zm4gJXU6IGZsMGlkICV1IHRvbyBsYXJnZSAobWF4ICV1KQoAAAAAAAAAAAAAAAAASVFG +TElOVCBwZm4gJXUgdmZuICV1OiBmbDBpZCAldSBub3QgYWxsb2NhdGVkCgAASVFGTElOVCBwZm4g +JXUgdmZuICV1OiBmbDFpZCAldSB0b28gbGFyZ2UgKG1heCAldSkKAAAAAAAAAAAAAAAAAElRRkxJ +TlQgcGZuICV1IHZmbiAldTogZmwxaWQgJXUgbm90IGFsbG9jYXRlZAoAAElRRkxJTlQgcGZuICV1 +IHZmbiAldTogZmwxaWQgJXUgaXMgdmFsaWQgYnV0IG5vdCBmbDBpZCAldQoAAAAAAABJUUZMSU5U +IHBmbiAldSB2Zm4gJXU6IGZsMWlkICV1IGlzIHZhbGlkIGJ1dCBoZWFkZXIgc3BsaXQgZmVhdHVy +ZSBpcyBub3QgZW5hYmxlZAoAAAAAAAAAAAAAAAAAAABod191bHB0eF93b3JrYXJvdW5kX3ByMTY5 +NDlfZW5hYmxlZF92ZmlkOiB2ZmlkICV1IGVuYWJsZWQgJXUKAAAARVEgcGZuICV1IHZmbiAldTog +Y3JlYXRpbmcgRVRIIGVxaWQgJXUgd2l0aCBwZW5kaW5nIFdSKHMpIChudW1fYnl0ZXMgJXUgYW5k +IGZsYWdzIDB4JTA4eAoAAAAAAAAARVEgcGZuICV1IHZmbiAldTogY3JlYXRpbmcgQ1RSTCBlcWlk +ICV1IHdpdGggcGVuZGluZyBXUihzKSAobnVtX2J5dGVzICV1IGFuZCBmbGFncyAweCUwOHgKAAAA +AAAARVEgcGZuICV1IHZmbiAldTogZXFpZCAldSB0b28gbGFyZ2UgKG1heCAldSkKAAAARVEgcGZu +ICV1IHZmbiAldTogZXFpZCAldSBub3QgYWxsb2NhdGVkCgAAAAAAAAAAaHdfY2ltX3RwX3dvcmth +cm91bmQxMzcyM19lbmFibGU6IHBvcnQgJXUgcHJvdG9jb2wgMHgleCBlbiAldSBjdXJyZW50IDB4 +JXggd29ya2Fyb3VuZF9wcjEzNzIzIDB4JXggbmV4dCAweCV4CgAAAGRjYnhfcG9wdWxhdGVfY3Ry +bCBjb2RlIGluY29tcGxldGUKAAAAAAAAAAAAAAAAAHZpX3RjYW1fcmF3IGlkeCAldSBtYWMgMHgl +MDR4ICUwOHgKAAAAAAAAAAAAAAAAAHBvcnRfYmxpbmtfbGVkX3Jlc3RvcmUKAAAAAAAAAAAAcG9y +dF9ibGluazogYmxpbmtkdXI9MHgleCBibGlua19yZWZjbnQKAAAAAAAAAAAAcG9ydF9ibGluazog +CWJsaW5rX3JlZmNudD0weCV4CgBwb3J0X2JsaW5rOiAJYmxpbmtfcmVmY250PTB4JXgKAG1paV9h +ZHZfZmNbJXVdOiByY2FwcyAweCV4CgAAAAAAbWlpX2Fkdl9zcGVlZFsldV06IHJjYXBzIDB4JXgK +AABtaWlfaW5pdFsldV06IGFjYXBzIDB4JXgKAAAAAAAAAHBvcnRbJXVdOiBnYXZlIHVwIGZpeGlu +ZyBlcnJvcnMhISEKAAAAAAAAAAAAAAAAAG1paV9hbnJlc3RhcnRbJXVdOiBhY2FwcyAweCV4CgAA +aHdfeGdtX3BvcnRfbHBiayBwb3J0ICV1IHB0eXBlICUjeCBhY3Rpb24gJSN4CgAAcG9ydF9jbWRf +aGFuZGxlcjogdW5rbm93biB1LmRjYi50eXBlIDB4JXgKAAAAAAAAcG9ydFsldToweCUwMng6MHgl +MDJ4XTogbDFjZmcsIGludmFsaWQgcmVxdWVzdCwgcGNhcHMgMHgleCBhY2FwcyAweCV4IHJjYXBz +IDB4JXgKAAAAAAAAAAAAAAAAAAAAcG9ydFsldToweCUwMng6MHglMDJ4XTogbDFjZmcsIHBjYXBz +ICUjeCBhY2FwcyAlI3ggcmNhcHMgJSN4IG1jYXBzICUjeAoAAAAAAAAAAABwb3J0WyV1XTogbDFj +ZmcsIHVuc3VwcG9ydGVkIEZFQywgcmNhcHMgJSN4CgAAAABwb3J0WyV1OjB4JTAyeDoweCUwMnhd +OiBsMWNmZywgbWRpIGlzc3VlIHBjYXBzIDB4JXggYWNhcHMgMHgleCByY2FwcyAweCV4CgAAAAAA +AHBvcnRbJXU6MHglMDJ4OjB4JTAyeF06IGwxY2ZnLCBjYW5ub3QgZm9yY2Ugbm8vbXVsdGlwbGUg +c3BlZWQocyksIHBjYXBzIDB4JXggYWNhcHMgMHgleCByY2FwcyAweCV4CgAAAAAAAAAAAAAAAABi +YWQgRmxvd0MgJWQgb24gZXN0YWJsaXNoZWQgY29ubmVjdGlvbgoAAAAAAAAAAABldGhfZmxvd2Nf +aGFuZGxlclsweCV4XTogZmxhZ3MgMHglMDh4IG51bV9ieXRlcyAldSBzY2hlZGNsIDB4JXggLT4g +MHgleAoAAAAAAAAAAHRhc2tfaWR4X3RvX2l0dDogdGFza19pZHggWyV1XSwgaGkgWyV1XSwgbG8g +WyV1XSwgbm1hc2tiaXRzIFsldV0sIHN3X3RhZyBbMHglMDh4XSwgcHBvZF9pZHggWyVkXQoAAAAA +AAAAAAAAAAAAAABzY3NpX2NtZDogcmVjZWl2ZWQgVE1GIG9wIFsweCV4XSBmdW5jIFsweCV4XSBv +biBjb25uIFsweCV4XSB0aHJvdWdoIGNvbW1hbmQgcGF0aC4KAAAAAAAAAAAAAAAAAABzY3NpX2Nt +ZDogY29ubl9mYyBbMHgleF0sIHN0YXRlIFsweCV4XSwgc2Vzc19mYyBbMHgleF0gaW4gcmVjb3Zl +cnkuIFNraXBwaW5nIGlzdGFza19mYyBbMHgleF0gZnJvbSBUWC4KAAAAAAAAAAAAc2NzaV9yZWFk +OiBjb25uX2ZjIFsweCV4XSwgc3RhdGUgWzB4JXhdLCBzZXNzX2ZjIFsweCV4XSBpbiByZWNvdmVy +eS4gU2tpcHBpbmcgaXN0YXNrX2ZjIFsweCV4XSBmcm9tIFRYLgoAAAAAAAAAAHNjc2lfd3JpdGU6 +IGNvbm5fZmMgWzB4JXhdLCBzdGF0ZSBbMHgleF0sIHNlc3NfZmMgWzB4JXhdIGluIHJlY292ZXJ5 +LiBTa2lwcGluZyBpc3Rhc2tfZmMgWzB4JXhdIGZyb20gVFguCgAAAAAAAABkY2J4X2NvbnRyb2xf +c21bJXVdIENPTlRST0xfTElOS1VQCgAAAAAAAAAAAAAAAABkY2J4X2NvbnRyb2xfc21bJXVdIENP +TlRST0xfVVBEQVRFX0RDQlhfVExWCgAAAABkY2J4X2NvbnRyb2xfc21bJXVdIENPTlRST0xfUEVF +Ul9OT1RfQURWRVJUSVNFX0RDQlgKAAAAAAAAAAAAAAAAZGNieF9jb250cm9sX3NtWyV1XSBDT05U +Uk9MX1VQREFURV9PUEVSX1ZFUlNJT04KAAAAAAAAAAAAAAAAAAAAAGRjYnhfY29udHJvbF9zbVsl +dV0gQ09OVFJPTF9QUk9DRVNTX1BFRVJfVExWCgAAAGRjYnhfY29udHJvbF9zbVsldV0gQ09OVFJP +TF9BQ0tfUEVFUgoAAAAAAAAAAAAAAGRjYnhfaWVlZV92YWxpZGF0ZVsldV0gZXJyb3IgKG91aSAl +I3ggc3VidHlwZSAlI3ggbGVuICUjeCkKAAAAAABkY2J4X2NlZV92YWxpZGF0ZVsldV0gZXJyb3IK +AAAAAHByb2Nlc3NfZGhjcF9vcHRzOiByb290IHBhdGggbGVuIFslZF0gYnl0ZXMKAAAAAG5ldGlm +X3Byb2Nlc3NfZGhjcF9vcHRzOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBNU0dfVFlQRSBb +JWRdLCBkaGN0eHQtPnN0YXRlIFslZF0KAAAAAAAAAAAAAGljbXBfcmVjdjogbDJkZXZfZmMtPmZs +b3djX2lkIFsweCV4XSwgcGlkIFsweCV4XSwgaWNtcCB0eXBlIFsweCV4XQoAAAAAAAAAAAAAAAAA +dm4ydm46IHBvcnQgMHgleCBkaWQ6MHgleCV4JXggVVAKAAAAAAAAAAAAAAAAAAAAdm4ydm46IHBv +cnQgMHgleCBkaWQ6MHgleCV4JXggRE9XTgoAAAAAAAAAAAAAAAAAZmNfc2VuZF9hbGxvY19jcGw6 +IGZhaWxlZCB0byBzZXR1cCBmaWx0ZXIgY3R1cGxlCgAAAAAAAAAAAAAAAAAAAGZjb2VfY29tcHV0 +ZV9jdHVwbGUgMHgleDoleAoAAAAAY29tcHV0ZV9jdHVwbGUoKTogZmFpbGVkIHRvIHNldHVwIGZp +bHRlciBjdHVwbGUKAAAAAAAAAAAAAAAAAAAAAGZjb2VfY29tcHV0ZV9jdHVwbGUgdmxhbiAleCB2 +aWlkICV4IHBvcnQgJXggbXBzX2lkeCAleAoAAAAAAAAAAABBQlRTIEFDQyBhd2FpdGluZyBQUkxJ +IFJzcDogZmxvd2NfaWQgMHgleCBveF9pZCAweCV4IHJ4X2lkIDB4JXggaXFpZCAweCV4CgAAAAAA +AHBvcnQgMHgleCwgc3RhdGUgMHgleCwgY29tbWFuZCBmYWlsZWQgcmV0cmllcyAweCV4CgAAAAAA +AAAAAAAAAABhcnBfcmVjdjogaXBpZCBbMHgleF0sIGluX2FkZHIuYWRkciBbMHgleF0sIHNpcCBb +MHgleF0sIHJpcCBbMHgleF0sIGFycF9vcCBbMHgleF0KAAAAAAAAAAAAAAAAAABjaG5ldF9hcnBf +cmVjdjogaXAgY29uZmxpY3QgZGV0ZWN0ZWQKAAAAAAAAAAAAAABjaG5ldF9hcnBfcmVjdjogcGlk +IFsldV0sIHZsYW4gWzB4JXhdLCBhcnAgb3AgWzB4JXhdLCBzaXAgWzB4JXhdLCByaXAgWzB4JXhd +CgAAAGNzb2NrX2ZyZWU6IHNpemVvZihjc2tfZmMtPnUuY3NvY2spIFsldV0sIGJ5dGVzCgAAAAAA +AAAAAAAAAAAAAABHb3QgQ09OTl9FWElTVCBmb3IgeGlkOjB4JXgsIHRhZzoweCV4LCByZXRyeWlu +Zy4KAAAAAAAAAAAAAAAAAAAAY3NvY2tfcGVlcl9jbG9zZTogY3NrX2ZjLT5mbG93Y19pZCBbMHgl +eF0sIHRjYl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2tfZmMtPmZsb3djX3N0YXRlIFsweCV4XSwg +dGNiX2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0KAAAAAABjc29ja19wZWVyX2Nsb3NlOiBjc2tfZmMt +PmZsb3djX2lkIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19zdGF0ZSAgWzB4JXhdCgAAAAAAAAAAAHRj +cF9jbHNfYWJydF9ycGw6IHRjYiB0aWQgWzB4JTA2eF0sIGZsb3djX3R5cGUgWzB4JXhdLCBjcGxv +cCBbMHgleF0gZmxvd2Nfc3RhdGUgMHgleAoAAAAAAAAAAAAAAGNoX3JhdGVbJXVdOiBjYXBwZWQg +dGljayBmcm9tIHJlcXVpcmVkICV1IHRvIHN1cHBvcnRlZCAldTsgcmF0ZSAldSAoZWZmICV1KSBk +ZWZpY2l0X2luY3IgJXUgdGljayAldQoAAAAAAAAAAAAAAABwa3RzY2hlZF9jaF9ybFsldV06IGNo +YW5uZWwgcmwgbm90IGF2YWlsYWJsZSBpbiBjb25qdW5jdGlvbiB3aXRoIGZsb3cgc2hhcGluZwoA +AHBrdHNjaGVkX2NoX3JsWyV1XTogcmF0ZSAldSBtYXggJXUKAAAAAAAAAAAAAAAAAHBrdHNjaGVk +X2NsX3dyclsldToldV06IHdlaWdodCAldQoAAAAAAAAAAAAAAAAAAGVxX3BhcmFtc1sweCV4OjB4 +JXhdOiBkbWFxIDB4JXggcmVhZCAldSBwZiAldSBlcWlkX2FwaSAldSByZXQgJWQKAAAAAAAAAAAA +AAAAAAAAaHdfbWFfYWRkcl90b19tZW1fdHlwZV9vZmY6IE1BIGFkZHJlc3MgMHglMDh4IGlzIG5v +dCBtYXBwZWQKAAAAAGh3X21hX2FkZHJfdG9fbWVtX3R5cGVfb2ZmOiBNQSBhZGRyZXNzIDB4JTA4 +eCBtYXBzIHRvIHR5cGUgJXUgb2Zmc2V0IDB4JXgKAAAAAAAAbWVtX21hbGxvY190ZW1wOiBmYWls +ZWQgdG8gYWxsb2NhdGUgJXUgYnl0ZXMsIHJldHVybmluZyBOVUxMCgAAAG1lbV9tYWxsb2M6IGZh +aWxlZCB0byBhbGxvY2F0ZSAldSBieXRlcywgcmV0dXJuaW5nIE5VTEwKAAAAAAAAAABsZSBjb25m +aWd1cmF0aW9uOiBoYXNoIG1vZGUgcmVxdWlyZXMgYXQgbGVhc3QgMTYgZW50cmllcywgbmhhc2gg +JXUKAAAAAAAAAAAAAAAAAGxlIGNvbmZpZ3VyYXRpb246IGhhc2ggbW9kZSByZXF1aXJlcyBhdCBl +bnRyaWVzIHRvIGJlIGEgcG93ZXIgb2YgMiwgbmhhc2ggJXUKAAAAbGUgY29uZmlndXJhdGlvbjog +cmVxdWVzdGVkICV1IHRjYW0gZW50cmllcyBidXQgb25seSAldSBhdmFpbGFibGUgKG5yb3V0ZSAl +dSBuY2xpcCAldSBuZmlsdGVyICV1IG5zZXJ2ZXIgJXUKAAAAAGxlIGNvbmZpZ3VyYXRpb246IHRj +YW0gcmVnaW9ucyBtdXN0IGhhdmUgbXVsdGlwbGUgb2YgMzIgZW50cmllcywgbnJvdXRlICV1IG5j +bGlwICV1IG5maWx0ZXIgJXUgbnNlcnZlciAldQoAAAAAAABod190cF90Y3BfdHVuaW5nczogdHVu +aW5nIGZvciBjbHVzdGVyIGVudmlyb25tZW50CgAAAAAAAAAAAAAAAAAAaHdfdHBfdGNwX3R1bmlu +Z3M6IHR1bmluZyBmb3IgTEFOIGVudmlyb25tZW50CgAAaHdfdHBfdGNwX3R1bmluZ3M6IHR1bmlu +ZyBmb3IgV0FOIGVudmlyb25tZW50CgAAaHdfdHBfdGNwX3R1bmluZ3M6IG1hbnVhbCB0dW5pbmcK +AAAAAAAAAAAAAAAAAAAAX2h3X2NpbV9mbGFzaF9tZW1jcHk6IG1lbWNweVggc3RhcnQKAAAAAAAA +AAAAAAAAX2h3X2NpbV9mbGFzaF9tZW1jcHk6IGRzdCAweCUwOCBvZmZzZXQgMHglMDh4IHNpemUg +JXUsIHdpZHRoIG9mICV1IGlzIG5vdCBzdXBwb3J0ZWQKAAAAAAAAAAAAAAAAX2h3X2NpbV9mbGFz +aF9tZW1jcHk6IG1lbWNweVggZW5kCgAAAAAAAAAAAAAAAAAAY29uZmlndXJhdGlvbiBmaWxlIHBh +cnNlciBlbmNvdW50ZXJlZCBlcnJvciBAIGxpbmUgJXU6CgAAAAAAAAAAAGh3X2kyY190cmFuc2Fj +dGlvbjogbmRhdGEgJXUgYWRkcl9vcCAweCV4IGRhdGFbMF0gMHgleCBkaWZmICV1CgBod19pMmNf +dHJhbnNhY3Rpb246IG5kYXRhICV1IGFkZHJfb3AgMHgleCBkYXRhWzBdIDB4JXggZGlmZiAldSBk +cG9zICV1IGNvbnQgJXUgZmFpbGVkIHdpdGggZXJyICVkCgAAAAAAAAAAAAAAAAAAaTJjIHRyYW5z +YWN0aW9uIGZhaWxlZCB0byBjb21wbGV0ZQoAAAAAAAAAAAAAAAAASE9TVCBQQUdFX1NJWkUgWzB4 +JTBseF0gdG9vIHNtYWxsLCBtaW4gWzB4JTBseF0gcmVxdWlyZWQKAAAAAAAAAHBhZ2Ugc2l6ZSBb +JWx1XSBtaXNtYXRjaAoAAAAAAAAAUEFHRSBzaXplICVsdSB1bnN1cHBvcnRlZCwgZGRwIGRpc2Fi +bGVkCgAAAAAAAAAASG9zdCBwYWdlX3NpemUgJWx1LCBkZHBfaWR4ICV1CgBGQ29FIEREUCBpbml0 +OiBmY29lIGxsaW1pdCAweCV4LCBmY29lIHVsaW1pdCAweCV4IGdibCBsbGltaXQgMHgleCBnYmwg +dWxpbWl0IDB4JXggcGNic3ogJXgKAAAAAABGQ29FIEREUCBpbml0OiBmY29lIHBwb2Qgb2ZmIDB4 +JXgsIGZjb2Ugc3QgcHBvZCBhZGRyIDB4JXggZmNvZSBudW0gcHBvZHMgMHgleAoAAGZjb2UgeGNo +ZyBtZ3IgaW5pdDogTnVtYmVyIG9mIGV4Y2hhbmdlcyBmb3IgRkNvRSBpcyAleAoAAAAAAAAAAABm +Y29lX2wydF9pbml0OiBObyB1bHB0eCBjcmVkaXQgY2g6WyV1XQoAAAAAAAAAAABmY29lX2wydF9p +bml0OiBjaDpbJXVdIGwydF9pZHggWyV1XQoAAAAAAAAAAAAAAABubyBsMnQgZW50cmllcyBjb25m +aWd1cmVkOyBmb3JjaW5nICV1IGVudHJpZXMsIHN0YXJ0aW5nIGF0ICV1CgAAZGNieF9pZWVlX2Nv +bnN0cnVjdFsldV0gZXRzICV1IHBmYyAldSBhcHAgJXUKAAAAZGNieF90aW1lb3V0WyV1XQoAAAAA +AAAAAAAAAAAAAABkY2J4X3J1bl92ZXJzaW9uX3NtWyV1XSBEQ0JYX1ZFUl9TVEFURV9SVU5fSUVF +RQoAAAAAAAAAAAAAAAAAAAAAZGNieF9ydW5fdmVyc2lvbl9zbVsldV0gRENCWF9WRVJfU1RBVEVf +UlVOX0NFRQoAZGNieF9ydW5fdmVyc2lvbl9zbVsldV0gRENCWF9WRVJfU1RBVEVfUlVOX05PTkUK +AAAAAAAAAAAAAAAAAAAAAHBvcnRbJXVdIGxpbmsgdXAgKCV1KSAoc3BlZWQgJSN4IGFjYXBzICUj +eCBscGNhcHMgJSN4KQoAAAAAAAAAAABwb3J0X2hzc19zaWdkZXRbJXVdOiBoc3Nfc2lnZGV0IGNo +YW5nZWQgdG8gMHgleAoAAAAAAAAAAAAAAAAAAAAAcG9ydFsldV0gcmVzZXR0aW5nIEtSCgAAAAAA +AAAAAABRU0ZQIG1vZHVsZSB1bnBsdWcgLSByZWluaXRpYWxpemluZyByeF9sb3MgIHRvIDB4ZmYK +AAAAAAAAAAAAAAAAZ3Bpb19xc2ZwX21vZHVsZV91cGRhdGU6IGNoYW5nZWQgcnhfbG9zIGZyb20g +MHgleCB0byAweCV4CgAAAAAAAGdwaW9fcXNmcF9tb2R1bGVfdXBkYXRlOiBjaGFuZ2VkIHR4X2Rp +cyBmcm9tIDB4JXggdG8gMHgleAoAAAAAAABDYWxjdWxhdGlvbiBvdXQgb2YgYm91bmRzIGZ1cmlu +ZyBpbml0OiAlI3ggJSN4ICUjeAoAAAAAAAAAAAAAAAAAaHdfc2dlX21hbWVtX2luaXQ6IGVuY291 +bnRlcmVkIGVycm9yICVkCgAAAAAAAAAAX2h3X3RwX3BnbW5ndDogdHhfcGFnZV9tYXggJXUgcnhf +cGFnZV9tYXggJXUgcHN0cnVjdHMgJXUgc2l6ZSAldQoAAAAAAAAAAAAAAAAAAABtcGFydGl0aW9u +X290aGVyc190b3RhbDogZGRwICV1IGRkcF9pc2NzaSAldSBzdGFnICV1IHBibCAldSBycSAldSBy +cXVkcCAldSAtPiAldQoAAAAAAAAAAAAAAAAAAABfbXBhcnRpdGlvbl9iYW5rc19tY1g6IG5iYW5r +c19wbXR4ICV1ICgldU1CKSBuYmFua3NfcG1yeCAldSAoJXVNQikgbmJhbmtzX290aGVycyAldSAo +JXVNQikgbmJhbmtzX2Z3ICV1ICgldU1CKQoAX21wYXJ0aXRpb25fYmFua3NfbWMxOiBuYmFua3Nf +cG10eCAldSAoJXVNQikgbmJhbmtzX290aGVycyAldSAoJXVNQikgbmJhbmtzX2Z3ICV1ICgldU1C +KQoAAAAAAAAAX21wYXJ0aXRpb25fYmFua3NfbWMwOiBuYmFua3NfcG1yeCAldSAoJXVNQikgbmJh +bmtzX290aGVycyAldSAoJXVNQikKAAAAAAAAAAAAAABtZW1fbWFsbG9jX2ludGVybmFsOiBmYWls +ZWQgdG8gYWxsb2NhdGUgJXUgYnl0ZXMsIHJldHVybmluZyBOVUxMCgAAAAAAAAAAAAAAAAAAAGh3 +X2VkY19iaXN0WyV1XTogYmlzdF9jbWRbMHglMDh4XSBhZGRyIDB4JXggbGVuIDB4JXgKAAAAAAAA +AAAAAABod19lZGNfYmlzdFsldV06IGRvbmUsIGVuY291bnRlcmVkICV1IGVycm9ycyBvbiBmaXJz +dCBhbmQgJXUgZXJyb3JzIG9uIHNlY29uZCBhdHRlbXB0ICgldWdicHMpCgBtZW1faW5pdF9jYWNo +ZXM6IGNhY2hlX3NpemUgJXUgZmxvd2NfYnVmX3RjYl9jYWNoZV9zaXplICV1IGJ1ZmxsNjRfY2Fj +aGVfc2l6ZSAldQoAAAAAAAAAAAAAAAAAAABxdWV1ZXNfcGVyX3BhZ2U6IHBmICV1IGhhcyBhIGJh +cnNpemUgb2YgJXUtYnl0ZXMsIG9jcV9zaXplICV1CgAAc2dlIHJlcXVpcmUgbmVxICV1IG5pcSAl +dSByb3VuZGluZyB0byAldSAldQoAAAAAbXBhcnRpdGlvbl9wbXR4OiBtIDB4JTA4eCBzaXplICV1 +CgAAAAAAAAAAAAAAAAAAbXBhcnRpdGlvbl9wbXJ4OiBtIDB4JTA4eCBzaXplICV1CgAAAAAAAAAA +AAAAAAAAbXBhcnRpdGlvbl9lZGMgKG5vIGV4dG1lbSk6IG0gMHglMDh4IHNpemUgJXUKAAAAbXBh +cnRpdGlvbl9lZGNfZXN0aW1hdGU6IGh3IG1vZHVsZXMgcmVxdWlyZSAlZCBieXRlcyBpbiBFREMK +AAAAAGNobmV0X2J5ZTpsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBsMmRldl9mYy0+Zmxvd2Nf +cGNpZV9wZm4gWzB4JXhdLCBsMmRldl9mYy0+Zmxvd2NfcGNpZV92Zm4gWzB4JXhdLCBwb3J0IFsw +eCV4XQoAAAAAAAAAAAAAAAAAY2huZXRfYnllOnZsYW5kZXZfZmMtPmZsb3djX2lkIFsweCV4XSwg +dmxhbmRldl9mYy0+Zmxvd2NfcGNpZV9wZm4gWzB4JXhdLCB2bGFuZGV2X2ZjLT5mbG93Y19wY2ll +X3ZmbiBbMHgleF0sIHBvcnQgWzB4JXhdCgAAAAAAAABmb2lzY3NpX2NvcmVfYnllOiBhY3RpdmUg +c2Vzc19jbnQgJWQKAAAAAAAAAAAAAABjeDRfY3JfbW9kdWxlX3J4X2xvc1sldV06IHJ4X2xvcyBj +aGFuZ2VkIHRvICV1CgBwZm4gJXUgdmZuICV1IGhhcyBwbmR0eG5zICV1IGFmdGVyIDEwMG1zCgAA +AAAAAABwZm4gJXUgdmZuICV1IGNvbXBsZXRlIGltbWVkaWF0ZQoAAAAAAAAAAAAAAAAAAABiYWQg +bWFpbGJveCBjbWQ6IHBmbiAweCV4IHZmbiAweCV4OyBvcGNvZGUgMHgleCA+IExBU1RDMkUgMHgl +eAoAbWFpbGJveCBjbWQgbm90IHlldCBzdXBwb3J0ZWQ6IHBmbiAweCV4IHZmbiAweCV4OyBvcGNv +ZGUgMHgleAoAAGJhZCBtYWlsYm94IGNtZDogcGZuIDB4JXggdmZuIDB4JXg7IG9wY29kZSAweCV4 +IGlzIHZhbGlkIHBvc3QgZGV2aWNlIGluaXQgb25seQoAYmFkIG1haWxib3ggY21kOiBwZm4gMHgl +eCB2Zm4gMHgleDsgb3Bjb2RlIDB4JTAyeCByYW1hc2sgMHgleCBjbWQgcmFtYXNrIDB4JXgKAABi +YWQgbWFpbGJveCBjbWQ6IHBmbiAweCV4IHZmbiAweCV4OyBvcGNvZGUgMHglMDJ4IGxlbjE2IDB4 +JXggdmVyc3VzIGV4cGVjdGVkIGxlbjE2IDB4JXgKAAAAAAAAAABpbnN1ZmZpY2llbnQgY2FwcyB0 +byBwcm9jZXNzIG1haWxib3ggY21kOiBwZm4gMHgleCB2Zm4gMHgleDsgcl9jYXBzIDB4JXggd3hf +Y2FwcyAweCV4IHJlcXVpcmVkIHJfY2FwcyAweCV4IHdfY2FwcyAweCV4CgAAAAAAAAAAAGluc3Vm +ZmljaWVudCBjYXBzIHRvIHByb2Nlc3MgbWFpbGJveCBjbWQ6IHBmbiAweCV4IHZmbiAweCV4OyBy +X2NhcHMgMHgleCB3eF9jYXBzIDB4JXggcmVxdWlyZWQgcl9jYXBzIDB4JXggd19jYXBzIDB4JXgK +AAAAAAAAAAAAZG93bmxvYWRfc3JhbTogZXJyb3IsIHJldCAlZAoAAABkb3dubG9hZF90Y2FtOiBl +cnJvciwgcmV0ICVkCgAAAFZQRCByZWdpb24gaXMgdG9vIHNtYWxsIChTRVJDRkdfU1JfUEZOVlBE +U0laRSAweCV4KQoAAAAAAAAAAAAAAABjZl9wcmVwOiBlcnJvciwgcmV0ICVkCgAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIIAAAEgAAAA +AAAAAIIAAAEAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAgAAAAAAA +AAAAAAAAAIAAAAAAAAAAAAKAAAAAAAAAAAAAAgADAAAAAAFgCAAAAAADAAAAAAAAAAAAAAADAAAA +AAAAAAAAAAACAAAAAAAAAAAAIAAAAAAAAAAAAAAAAQADgAAAAAAAAAAAAAACAAAAAAAAAAAAIAOA +AAAAAAAAAAAAEAKAAIAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAACgAAAAAAAAAAA +AAACAAAAAAAAAAAAAAACgAAAAAAAAAAAAQADAAAAAAAAAAAAAAKDAAAAAAAAAAAAEAKAAAAAAAAA +AAAAMAADAAAAAAAACAAAMAADAAAAAAAAAAAAMAWDAAAAAAAACAAAMAWDAAAAAAAAAAAAMASDAAAA +AAAACAAAMASDAAAAAAAAAAAAMAMDAAAAAAAACAAAMAMDAAAAAAAAAAAAOAMDAAAAAAAAAAAAOAWD +AAAAAAAAAAAAOASDAAAAAAAAAAAAOAADAAAAAAAAAAAANAaCAAAAAAAAAAAAPAOCAAAAAAAAAAAA +PAADAAAAAAAACAAAPAADAAAAAAAAAAAAPASDAAAAAAAAAAAAPAUDAAAAAAAAAAAAPQQDAAAAAAAA +AAAAPAODAAAAAAAAAAAALAACAAAAAAAAAAAALAWCAAAAAAAAAAAALAUCAAAAAAAAAAAAEAaAAAAA +AAAAAAAAEAaCwAAAAAAAAAAAEAaCgAAAAAAAAAAAAA6CAAAAAAAAAAAAEAeCgAAAACAAAAAAAAeC +AAAAACAAAAAAEAcCgAAAAAAAAAAAEAcCgAAAAAAAAAAAEAcCgAAAAAAAAAAAAAcCAAAAACAAAAAA +EBeDAAAAAAAACAAAEBeDAAAAAAAACAAAEAAAAAAAAAAAAAAAEAYDgAAAAAAAAAAAAA4DAAAAAAAA +AAAAEAYDQAAAAAAAAAAAEAYDAAAAAAAAAAAAEAYAAAAAAAAAAAAAAAYDgAAAAAAAAAAAAAYDAAAA +AAAAAAAAAA4CAAAAAAAAAAAAAA4CAAAAAAAAAAAAEAYCAAAAAAAAAAAAEAYCAAAAAAAAAAAAEAYC +gAAAAAAAAAAAEAYCgAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAgAAAAAAAAAAABADAAAAAAAACAAAAAAAAAAAAAAAAAAA//////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////AAAAIAAAAADAAAAAAAAA +IAAAAADgAAAAAAAAAAIAAAAAAAAAQAAAAAAAAAAAAAAAAAABIQAAAAAAAAAAAAEBIAAAAAAAAAAA +AAACAAAABAAEAAAAAAUAAAAEAAAAAAAAAAAAoAAAAACAAAAAAIAAQAAAAAAAAgAAAIAAIAAAAAAA +AgAAAQBAAAAAAAAAAAAAAQBCAAAAAAAAAAAAAAAgAAAAAAAAAAAAAhAgAAAAAAAAAAAAAgwCAAAA +AAAAAAAAAIUCAAAABAAAAAAAAIBCAAAAAAAAAAAAAgAiAAAAAAAAAAAAAIBBAAAAAAAAAAAAAIBB +gAAAAAAAAAAAAgAhAAAAAAAAAAAAABAggAAAAAAAAAAAAiUAgAAAAAAAAAAAAAUAAAAAAAAAAAAA +CIgEgAAAAAAAAAAACIgEgAAAAAAAAAAACKIAgAAAAAAAAAAACKIAgAAAAAAAAAAACKMAgAAAAAAA +AAAACKMAgAAAAAAAAAAACKSAgAAAAAAAAAAACKSAgAAAAAAAAAAABKSAwAAAAAAAAAAABKIAwAAA +AAAAAAAABKMAwAAAAAAAAAAABIgEwAAAAAAAAAAAAAkBgAAAAAAAAAAAAgwAgAAAAAAAAAAAAIgE +wAAAAAAAAAAAAIgEgAAAAAAAAAAAAgsAgAAAAAAAAAAAAIqAgAAAAAAAAAAAAAuAgAAAAAAAAAAA +AIwAgAAAAAAAAAAAAiAQgAAAAAAAAAAAAgoAgAAAAAAAAAAAAgqAgAAAAAAAAAAAAAkCgAAAAAAA +AAAAAAEBAAAAAAAAAAAAAAEBQAAAAAAAAAAAAAEAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAA +AAAAAAAAAACBEAAAAAAAAAAAAACBCAAAAAAAAAAAAACBBAAAAAAAAAAAAACBgAAAAAAAAAAAAIAA +wAAAAAAAAAAAAIAAoAAAAAAAAAAAAAAIAAAAAAAAAAAAAIGAAAAAAAAAAAAAAIGAgAAAAAAAAAAA +AImAgAAAAAAAAAAAAImAwAAAAAAAAAAAAAGCAAAAAAAAAAAAAgGAAAAAAAAAAAAAAgGAgAAAAAAA +AAAAAEGBgAAAAAAAAAAAAgGBgAAAAAAAAAAAAEmBgAAAAAAAAAAAAgmBgAAAAAAAAAAAAgGBAAAA +AAAAAAAAAEGBAAAAAAAAAAAAIAAAAAAAAAAAAAAAEAAAAgEAAAAAAAAAEAAAAgAAAAAAAAAAEAAA +AAAAAAAAAAAAAIAAwAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////AAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAIAJIAAAAAAAAAA2YAIABAAAAAAAgAkgAAAAAAAAADcgElBEAAAAAAAAAAAAAAAAAAAAOW +ACAAQAAAAAAIAAAAAgCIA4cAAFYAIABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAAAAAAAAAAAAAA +AAOWACAAQAAAAAAAAAAAAAAAAAAAA5YAIABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAACAAAAAIA +iAOFAACWASAAQAAAAAAAAAAAAAAAAAAAA5YAIABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAACAAA +AAIAiAOFAACWASAAQAAAAAAAAAAAAAAAAAAAA5YAIABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAA +CAAAAAIAiAOFAACWASAAQAAAAAAAAAAAAAAAAAAAA5YAIABAAAAAAAAAAAAAAAAAAgADlgAmBEAA +AAAACEcgAQQAAAKyAALSBSAkQAAAAAAAAAAAAAAAAAAAA5YAIABAAAAAAABHIAEGDKGCsEABkgQg +JEAAAAAAAEcgAQQMoEKzgAISBSAkQAAAAAAIAAAAAgCIA4UAAJYBIABAAAAAAAgAAAACAIgDhQAA +lgEgAEAAAAAACAAAAAIAiAOFAACWASAAQAAAAAAAAAAAAAAAAAAAA5YAIABAAAAAAA3FEroCsIDT +FFSL4kpGJEAAAAAABcUSugK3gNMUVItiSaYkQAAAAAAFxRKiBrCA0xRUi+JKRiRAAAAAAA3FEqIG +t4DTFFSLYkmmJEAAAAAABcUSogawgNMUVIviSkYkQAAAAAANxRKiBreA0xRUi2JJpiRAAAAAAAXF +EqIGsIDTFFSL4kpGJEAAAAAADcUSoga3gNMUVItiSaYkQAAAAAAJxBCgAgCAkAAAi2JpxiRAAAAA +AAHEEKAGsICTBlSLYmnGJEAAAAAAAcQQoAawgJMGVItiacYkQAAAAAABxRC4BrCAkxZUi2JIxiRA +AAAAAAihEIgCAIFYEgALUgCmJEAAAAAACcAQkAKwgAMWVIqSAcYkQAAAAAAJwBC4BrCAAxCUi+IC +RiRAAAAAAAnAELgCtIADEJSLYgGmJEAAAAAACcAQuAK0gAMQlItiAaYkQAAAAAAJwBC4ArSAAxCU +i2IBpiRAAAAAAAnAELgCtIADEJSLYgGmJEAAAAAAAaAQkAa0gAMQlItiAaYkQAAAAAABwBCAArCA +AxRUilIAxiRAAAAAAAHAEIACsIADFFSKUgDGJEAAAAAAAcAQgAKwgAMUVIpSAMYkQAAAAAAIRyAB +BAAAArIAAtIFICRAAAAAAACBAAACAIVYB0ALUgCmJEAAAAAAAIEAAAIAhVgHQAtSAKYkQAAAAAAA +AAAABACgQAGAAdYAIABAAAAAAAAAAAAGAKGAAEABVgAgAEAAAAAAAAAAAAQAoEABgAHWACAAQAAA +AAAIgQAAAgCFWYAEC1IApiRAAAAAAAlhQAAAAAAYAAADQgEmpEAAAAAAAAAAAAAAAAAAAAOWACAA +QAAAAAAAAAAABACgQAGAAdYAIABAAAAAAAgAAAACAIgDhwAD1gAmBEAAAAAACAAAAAIAiAOHAAPW +ACYEQAAAAAAAAAAAAAAAAAAAA5YAIABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAAAAAAAAQAoEAB +gAHWACAAQAAAAAAJwBC4ArSAAxCUi2IBpiRAAAAAAAAAAAAAAAAAAgADlgAmBEAAAAAAAAAAAAAA +AAAAAAOWACAAQAAAAAAIAAAAAgCIA4UAAJYBIABAAAAAAAAAAAAEAKBAAYAB1gAgAEAAAAAAAAAA +AAQAoEABgAHWACAAQAAAAAAAAAAABACgQAGAAdYAIABAAAAAAAihEIgCAIFYEAAJEgGmJEAAAAAA +AAAAAAQAoEABgAHWACAAQAAAAAAAAAAABgChgABAAVYAIABAAAAAAAgAAAACAIgDhUAI0gJGJEAA +AAAACcUSogKUiNIQgIsiSKYkQAAAAAABwBCABqSIAQVUi1IAxiRAAAAAAAnAEIACpIgAhVSLUgDG +JEAAAAAACcAQgAa0iAMBFItSAaYkQAAAAAANwAAAArCAwxZUi+IDRiRAAAAAAAAAAAAAAAAAAAAD +lgAgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +CAAwAAQAAAACAAACACYkQAAAAAAARzAABgMgArcACAIBwCRAAAAAAAgDAAACBqAKtQAIAgDGJEAA +AAAAAAAAAAAAAAACAAACACYkQAAAAAAAIFAABAAAAAIAAAIAJiRAAAAAAAhgIACEAAAAAAAABgAg +AEAAAAAACGAgAIQAAAACATACACYlQAAAAAAIYAAABACEAYAEBAIBxiTAAAAAAAHAAAACQ4ADAgyI +AgGmJEAAAAAACABgAAQAAAACAAACACYkQAAAAAAIAGAABAAAAAAAAAQBIABAAAAAAAAAAAAAAAAA +AAAABAEgAEAAAAAABAgUgAYKAAAHAUwCIKYmQAAAAAAIgAAABgCEAYAECAIBpiZAAAAAAABAAAAC +AKAAAkAIAgGmJEAAAAAAAAAAAAAAAAACAAACACYkQAAAAAAEAAAAAoQAAwKKCAIEpiRAAAAAAAAA +AAAAAAAAAgAABgEgSEAAAAAAACBQAAQAAAACAAACACYkQAAAAAAIYCAAhAAAAAIAAAYAJgRAAAAA +AAhgIACEAAAAAgAAAgEmJUAAAAAACGAAAAQAhAGABAQCAcYkwAAAAAAIAGAABAAAAAAAAAQBIABA +AAAAAAAAAAAAAAAAAAAAAgAmTHAAAAAAAAAAAAAAAAAAAAAGASAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAHAAAAItJAECRYEAgTGJEAAAAAAAcAAAAi0kAQJFgQCBMYkQAAAAAAECHSA +TAkAAFAAXAJh5iRAAAAAAAwIdIBEAAAAUgBAAmEmJEAAAAAACAIQoAQAAAAAAQACACYkQAAAAAAI +AhCgBAAAAAABAAIAJiRAAAAAAAQIdABCAQAABwCIAmDGJEAAAAAADcgUAAIJAAAEQJwCYOYkQAAA +AAAJyBCABrSQBAKUiAJlxiRAAAAAAA3IdABItJADAJSIAmCmJMAAAAAADch0AEi0kAMAlIgCYKYk +wAAAAAAIRwAABAAAAAAAAAIBICRAAAAAAAhHAAAEAAAAAgAAAgUgJEAAAAAAAEcgAQwHIcK3AAgC +AcAkQAAAAAAARyABDAchwrcACAIBwCRAAAAAAABHIAEMByHCtwAIAgHAJEAAAAAAAAAgAQgAhAAF +QIgCAcYkwAAAAAAAACABCACEAAVAiAIBxiTAAAAAAAAAIAEIAIQABUCIAgHGJMAAAAAAAAAgAYaC +AAECwIgCA8YkwAAAAAAAACABgoIAAALAiAIDxiTAAAAAAAnAIAGCpIABBUCIAgHGJMAAAAAACAAA +AAwAhAAFQIgCAcYkwAAAAAAAACABhoIAAQLAiAIDxiTAAAAAAAAAIAGCggAAAMCIAgKmJMAAAAAA +CcAgAYKkgAEFQIgCAcYkwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEA +AQkEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW2dsb2JhbF0KcnNzX2dsYl9jb25maWdfbW9k +ZT1iYXNpY3ZpcnR1YWwKcnNzX2dsYl9jb25maWdfb3B0aW9ucz10bmxtYXBlbixoYXNodG9lcGxp +dHosdG5sYWxsbGtwCnJlZ1sweDEwMDhdPTB4NDA4MTAvMHgyMWM3MApyZWdbMHgxMDBjXT0weDIy +MjIyMjIyCnJlZ1sweDEwYTBdPTB4MDEwNDA4MTAKcmVnWzB4MTA0NF09NDA5NgpyZWdbMHgxMDQ4 +XT02NTUzNgpyZWdbMHgxMDRjXT0xNTM2CnJlZ1sweDEwNTBdPTkwMjQKcmVnWzB4MTA1NF09OTIx +NgpyZWdbMHgxMDU4XT0yMDQ4CnJlZ1sweDEwNWNdPTEyOApyZWdbMHgxMDYwXT04MTkyCnJlZ1sw +eDEwNjRdPTE2Mzg0CnJlZ1sweDEwYTRdPTB4YTAwMGEwMDAvMHhmMDAwZjAwMApyZWdbMHgxMGE4 +XT0weDIwMDAvMHgyMDAwCnNnZV90aW1lcl92YWx1ZT01LDEwLDIwLDUwLDEwMCwyMDAKcmVnWzB4 +N2QwNF09MHgwMDAxMDAwMC8weDAwMDEwMDAwCnJlZ1sweDdkNmNdPTB4MDAwMDAwMDAvMHgwMDAw +NzAwMApyZWdbMHg3ZGMwXT0weDBlMmY4ODQ5CmZpbHRlck1vZGU9ZnJhZ21lbnRhdGlvbixtcHNo +aXR0eXBlLHByb3RvY29sLHZsYW4scG9ydCxmY29lCmZpbHRlck1hc2s9cHJvdG9jb2wsZmNvZQp0 +cF9wbXJ4PTM0CnRwX3BtcnhfcGFnZXNpemU9NjRLCnRwX25yeGNoPTAKdHBfcG10eD0zMgp0cF9w +bXR4X3BhZ2VzaXplPTY0Swp0cF9udHhjaD0wCnRwX210dXM9ODgsMjU2LDUxMiw1NzYsODA4LDEw +MjQsMTI4MCwxNDg4LDE1MDAsMjAwMiwyMDQ4LDQwOTYsNDM1Miw4MTkyLDkwMDAsOTYwMApyZWdb +MHgxOTE2OF09MHgwNDAyMDEwMApbZnVuY3Rpb24iMCJdCm52Zj0xNgp3eF9jYXBzPWFsbApyX2Nh +cHM9YWxsCm52aT0xCm5pcWZsaW50PTgKbmV0aGN0cmw9OApuZXE9MTYKbmV4YWN0Zj04CmNtYXNr +PWFsbApwbWFzaz0weDEKW2Z1bmN0aW9uIjEiXQpudmY9MTYKd3hfY2Fwcz1hbGwKcl9jYXBzPWFs +bApudmk9MQpuaXFmbGludD04Cm5ldGhjdHJsPTgKbmVxPTE2Cm5leGFjdGY9OApjbWFzaz1hbGwK +cG1hc2s9MHgyCltmdW5jdGlvbiIyIl0KbnZmPTE2Cnd4X2NhcHM9YWxsCnJfY2Fwcz1hbGwKbnZp +PTEKbmlxZmxpbnQ9OApuZXRoY3RybD04Cm5lcT0xNgpuZXhhY3RmPTgKY21hc2s9YWxsCnBtYXNr +PTB4NApbZnVuY3Rpb24iMyJdCm52Zj0xNgp3eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT0xCm5p +cWZsaW50PTgKbmV0aGN0cmw9OApuZXE9MTYKbmV4YWN0Zj04CmNtYXNrPWFsbApwbWFzaz0weDgK +W2Z1bmN0aW9uIjQiXQp3eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT0yOApuaXFmbGludD0xNzAK +bmV0aGN0cmw9MTAwCm5lcT0yNTYKbmV4YWN0Zj00MApjbWFzaz1hbGwKcG1hc2s9YWxsCm5ldGhv +ZmxkPTEwMjQKbnJvdXRlPTMyCm5jbGlwPTMyCm5maWx0ZXI9NDk2Cm5zZXJ2ZXI9NDk2Cm5oYXNo +PTEyMjg4CnByb3RvY29sPW5pY192bSxvZmxkLHJkZHAscmRtYWMsaXNjc2lfaW5pdGlhdG9yX3Bk +dSxpc2NzaV90YXJnZXRfcGR1CnRwX2wydD0zMDcyCnRwX2RkcD0zCnRwX2RkcF9pc2NzaT0yCnRw +X3N0YWc9Mwp0cF9wYmw9MTAKdHBfcnE9MTMKW2Z1bmN0aW9uIjUiXQp3eF9jYXBzPWFsbApyX2Nh +cHM9YWxsCm52aT00Cm5pcWZsaW50PTM0Cm5ldGhjdHJsPTMyCm5lcT02NApuZXhhY3RmPTQKY21h +c2s9YWxsCnBtYXNrPWFsbApuc2VydmVyPTE2Cm5oYXNoPTIwNDgKdHBfbDJ0PTEwMjAKcHJvdG9j +b2w9aXNjc2lfaW5pdGlhdG9yX2ZvZmxkCnRwX2RkcF9pc2NzaT0yCmlzY3NpX250YXNrPTIwNDgK +aXNjc2lfbnNlc3M9MjA0OAppc2NzaV9uY29ubl9wZXJfc2Vzc2lvbj0xCmlzY3NpX25pbml0aWF0 +b3JfaW5zdGFuY2U9NjQKW2Z1bmN0aW9uIjYiXQp3eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT00 +Cm5pcWZsaW50PTM0Cm5ldGhjdHJsPTMyCm5lcT02NgpuZXhhY3RmPTMyCmNtYXNrPWFsbApwbWFz +az1hbGwKbmhhc2g9MjA0OAp0cF9sMnQ9NApwcm90b2NvbD1mY29lX2luaXRpYXRvcgp0cF9kZHA9 +MQpmY29lX25mY2Y9MTYKZmNvZV9udm5wPTMyCmZjb2VfbnNzbj0xMDI0CltmdW5jdGlvbiIxMDIz +Il0Kd3hfY2Fwcz1hbGwKcl9jYXBzPWFsbApudmk9NApjbWFzaz1hbGwKcG1hc2s9YWxsCm5leGFj +dGY9OApuZmlsdGVyPTE2CltmdW5jdGlvbiIwLyoiXQp3eF9jYXBzPTB4ODIKcl9jYXBzPTB4ODYK +bnZpPTEKbmlxZmxpbnQ9NApuZXRoY3RybD0yCm5lcT00Cm5leGFjdGY9NApjbWFzaz1hbGwKcG1h +c2s9MHgxCltmdW5jdGlvbiIxLyoiXQp3eF9jYXBzPTB4ODIKcl9jYXBzPTB4ODYKbnZpPTEKbmlx +ZmxpbnQ9NApuZXRoY3RybD0yCm5lcT00Cm5leGFjdGY9NApjbWFzaz1hbGwKcG1hc2s9MHgyCltm +dW5jdGlvbiIyLyoiXQp3eF9jYXBzPTB4ODIKcl9jYXBzPTB4ODYKbnZpPTEKbmlxZmxpbnQ9NApu +ZXRoY3RybD0yCm5lcT00Cm5leGFjdGY9NApjbWFzaz1hbGwKcG1hc2s9MHg0CltmdW5jdGlvbiIz +LyoiXQp3eF9jYXBzPTB4ODIKcl9jYXBzPTB4ODYKbnZpPTEKbmlxZmxpbnQ9NApuZXRoY3RybD0y +Cm5lcT00Cm5leGFjdGY9NApjbWFzaz1hbGwKcG1hc2s9MHg4Cltwb3J0IjAiXQpkY2I9cHBwLGRj +YngKYmdfbWVtPTI1CmxwYmtfbWVtPTI1Cmh3bT0zMApsd209MTUKZHdtPTMwCmRjYl9hcHBfdGx2 +WzBdPTB4ODkwNixldGhlcnR5cGUsMwpkY2JfYXBwX3RsdlsxXT0weDg5MTQsZXRoZXJ0eXBlLDMK +ZGNiX2FwcF90bHZbMl09MzI2MCxzb2NrZXRudW0sNQpbcG9ydCIxIl0KZGNiPXBwcCxkY2J4CmJn +X21lbT0yNQpscGJrX21lbT0yNQpod209MzAKbHdtPTE1CmR3bT0zMApkY2JfYXBwX3RsdlswXT0w +eDg5MDYsZXRoZXJ0eXBlLDMKZGNiX2FwcF90bHZbMV09MHg4OTE0LGV0aGVydHlwZSwzCmRjYl9h +cHBfdGx2WzJdPTMyNjAsc29ja2V0bnVtLDUKW3BvcnQiMiJdCmRjYj1wcHAsZGNieApiZ19tZW09 +MjUKbHBia19tZW09MjUKaHdtPTMwCmx3bT0xNQpkd209MzAKZGNiX2FwcF90bHZbMF09MHg4OTA2 +LGV0aGVydHlwZSwzCmRjYl9hcHBfdGx2WzFdPTB4ODkxNCxldGhlcnR5cGUsMwpkY2JfYXBwX3Rs +dlsyXT0zMjYwLHNvY2tldG51bSw1Cltwb3J0IjMiXQpkY2I9cHBwLGRjYngKYmdfbWVtPTI1Cmxw +YmtfbWVtPTI1Cmh3bT0zMApsd209MTUKZHdtPTMwCmRjYl9hcHBfdGx2WzBdPTB4ODkwNixldGhl +cnR5cGUsMwpkY2JfYXBwX3RsdlsxXT0weDg5MTQsZXRoZXJ0eXBlLDMKZGNiX2FwcF90bHZbMl09 +MzI2MCxzb2NrZXRudW0sNQpbZmluaV0KdmVyc2lvbj0weDE0MjUwMDFjCmNoZWNrc3VtPTB4NWNl +YWI0MWUKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFtnbG9iYWxdCnJzc19nbGJfY29uZmlnX21vZGU9YmFzaWN2 +aXJ0dWFsCnJzc19nbGJfY29uZmlnX29wdGlvbnM9dG5sbWFwZW4saGFzaHRvZXBsaXR6LHRubGFs +bGxrcApyZWdbMHgxMDA4XT0weDQwODEwLzB4MjFjNzAKcmVnWzB4MTAwY109MHgyMjIyMjIyMgpy +ZWdbMHgxMGEwXT0weDAxMDQwODEwCnJlZ1sweDEwNDRdPTQwOTYKcmVnWzB4MTA0OF09NjU1MzYK +cmVnWzB4MTA0Y109MTUzNgpyZWdbMHgxMDUwXT05MDI0CnJlZ1sweDEwNTRdPTkyMTYKcmVnWzB4 +MTA1OF09MjA0OApyZWdbMHgxMDVjXT0xMjgKcmVnWzB4MTA2MF09ODE5MgpyZWdbMHgxMDY0XT0x +NjM4NApyZWdbMHgxMGE0XT0weGEwMDBhMDAwLzB4ZjAwMGYwMDAKcmVnWzB4MTBhOF09MHgyMDAw +LzB4MjAwMApzZ2VfdGltZXJfdmFsdWU9NSwxMCwyMCw1MCwxMDAsMjAwCnJlZ1sweDdkMDRdPTB4 +MDAwMTAwMDAvMHgwMDAxMDAwMApyZWdbMHg3ZDZjXT0weDAwMDAwMDAwLzB4MDAwMDcwMDAKcmVn +WzB4N2RjMF09MHgwZTJmODg0OQpmaWx0ZXJNb2RlPWZyYWdtZW50YXRpb24sbXBzaGl0dHlwZSxw +cm90b2NvbCx2bGFuLHBvcnQsZmNvZQpmaWx0ZXJNYXNrPXByb3RvY29sLGZjb2UKdHBfcG1yeD0z +MAp0cF9wbXJ4X3BhZ2VzaXplPTY0Swp0cF9ucnhjaD0wCnRwX3BtdHg9NTAKdHBfcG10eF9wYWdl +c2l6ZT02NEsKdHBfbnR4Y2g9MAp0cF9tdHVzPTg4LDI1Niw1MTIsNTc2LDgwOCwxMDI0LDEyODAs +MTQ4OCwxNTAwLDIwMDIsMjA0OCw0MDk2LDQzNTIsODE5Miw5MDAwLDk2MDAKcmVnWzB4MTkxNjhd +PTB4MDQwMjAxMDAKW2Z1bmN0aW9uIjAiXQp3eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT0yOApu +aXFmbGludD0xNzAKbmV0aGN0cmw9OTYKbmVxPTI1MgpuZXhhY3RmPTQwCmNtYXNrPWFsbApwbWFz +az1hbGwKbmV0aG9mbGQ9MTAyNApucm91dGU9MzIKbmNsaXA9MzIKbmZpbHRlcj00OApuc2VydmVy +PTMyCm5oYXNoPTAKcHJvdG9jb2w9bmljX3ZtLG9mbGQscmRkcCxyZG1hYyxpc2NzaV9pbml0aWF0 +b3JfcGR1LGlzY3NpX3RhcmdldF9wZHUKdHBfbDJ0PTMwNzIKdHBfZGRwPTIKdHBfZGRwX2lzY3Np +PTIKdHBfc3RhZz0yCnRwX3BibD01CnRwX3JxPTcKW2Z1bmN0aW9uIjEiXQp3eF9jYXBzPWFsbApy +X2NhcHM9YWxsCm52aT00Cm5pcWZsaW50PTM0Cm5ldGhjdHJsPTMyCm5lcT02NgpuZXhhY3RmPTMy +CmNtYXNrPWFsbApwbWFzaz1hbGwKbmhhc2g9MApwcm90b2NvbD1mY29lX2luaXRpYXRvcgp0cF9k +ZHA9MgpmY29lX25mY2Y9MTYKZmNvZV9udm5wPTMyCmZjb2VfbnNzbj0xMDI0CltmdW5jdGlvbiIx +MDIzIl0Kd3hfY2Fwcz1hbGwKcl9jYXBzPWFsbApudmk9NApjbWFzaz1hbGwKcG1hc2s9YWxsCm5l +eGFjdGY9OApuZmlsdGVyPTE2CltmdW5jdGlvbiIwLyoiXQp3eF9jYXBzPTB4ODIKcl9jYXBzPTB4 +ODYKbnZpPTEKbmlxZmxpbnQ9NApuZXRoY3RybD0yCm5lcT00Cm5leGFjdGY9NApjbWFzaz1hbGwK +cG1hc2s9MHgxCltmdW5jdGlvbiIxLyoiXQp3eF9jYXBzPTB4ODIKcl9jYXBzPTB4ODYKbnZpPTEK +bmlxZmxpbnQ9NApuZXRoY3RybD0yCm5lcT00Cm5leGFjdGY9NApjbWFzaz1hbGwKcG1hc2s9MHgy +Cltwb3J0IjAiXQpkY2I9cHBwLGRjYngKYmdfbWVtPTI1CmxwYmtfbWVtPTI1Cmh3bT0zMApsd209 +MTUKZHdtPTMwCmRjYl9hcHBfdGx2WzBdPTB4ODkwNixldGhlcnR5cGUsMwpkY2JfYXBwX3Rsdlsx +XT0weDg5MTQsZXRoZXJ0eXBlLDMKZGNiX2FwcF90bHZbMl09MzI2MCxzb2NrZXRudW0sNQpbcG9y +dCIxIl0KZGNiPXBwcCxkY2J4CmJnX21lbT0yNQpscGJrX21lbT0yNQpod209MzAKbHdtPTE1CmR3 +bT0zMApkY2JfYXBwX3RsdlswXT0weDg5MDYsZXRoZXJ0eXBlLDMKZGNiX2FwcF90bHZbMV09MHg4 +OTE0LGV0aGVydHlwZSwzCmRjYl9hcHBfdGx2WzJdPTMyNjAsc29ja2V0bnVtLDUKW3BvcnQiMiJd +CmRjYj1wcHAsZGNieApiZ19tZW09MjUKbHBia19tZW09MjUKaHdtPTMwCmx3bT0xNQpkd209MzAK +ZGNiX2FwcF90bHZbMF09MHg4OTA2LGV0aGVydHlwZSwzCmRjYl9hcHBfdGx2WzFdPTB4ODkxNCxl +dGhlcnR5cGUsMwpkY2JfYXBwX3RsdlsyXT0zMjYwLHNvY2tldG51bSw1Cltwb3J0IjMiXQpkY2I9 +cHBwLGRjYngKYmdfbWVtPTI1CmxwYmtfbWVtPTI1Cmh3bT0zMApsd209MTUKZHdtPTMwCmRjYl9h +cHBfdGx2WzBdPTB4ODkwNixldGhlcnR5cGUsMwpkY2JfYXBwX3RsdlsxXT0weDg5MTQsZXRoZXJ0 +eXBlLDMKZGNiX2FwcF90bHZbMl09MzI2MCxzb2NrZXRudW0sNQpbZmluaV0KdmVyc2lvbj0weDE0 +MjUwMDFjCmNoZWNrc3VtPTB4YWQ0YzE3NGYKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAA= +==== diff --git a/sys/dev/cxgbe/firmware/t4fw_interface.h b/sys/dev/cxgbe/firmware/t4fw_interface.h index 7603b8c..d9fd4fe 100644 --- a/sys/dev/cxgbe/firmware/t4fw_interface.h +++ b/sys/dev/cxgbe/firmware/t4fw_interface.h @@ -3405,15 +3405,21 @@ struct fw_tlstx_data_wr { __be32 flowid_len16; __be32 plen; __be32 lsodisable_to_flags; - __be32 ddraddr; + __be32 r5; __be32 ctxloc_to_exp; __be16 mfs; __be16 adjustedplen_pkd; __be16 expinplenmax_pkd; __u8 pdusinplenmax_pkd; - __u8 r9; + __u8 r10; }; +#define S_FW_TLSTX_DATA_WR_OPCODE 24 +#define M_FW_TLSTX_DATA_WR_OPCODE 0xff +#define V_FW_TLSTX_DATA_WR_OPCODE(x) ((x) << S_FW_TLSTX_DATA_WR_OPCODE) +#define G_FW_TLSTX_DATA_WR_OPCODE(x) \ + (((x) >> S_FW_TLSTX_DATA_WR_OPCODE) & M_FW_TLSTX_DATA_WR_OPCODE) + #define S_FW_TLSTX_DATA_WR_COMPL 21 #define M_FW_TLSTX_DATA_WR_COMPL 0x1 #define V_FW_TLSTX_DATA_WR_COMPL(x) ((x) << S_FW_TLSTX_DATA_WR_COMPL) @@ -3503,26 +3509,26 @@ struct fw_tlstx_data_wr { #define S_FW_TLSTX_DATA_WR_ADJUSTEDPLEN 1 #define M_FW_TLSTX_DATA_WR_ADJUSTEDPLEN 0x7fff #define V_FW_TLSTX_DATA_WR_ADJUSTEDPLEN(x) \ - ((x) << S_FW_TLSTX_DATA_WR_ADJUSTEDPLEN) + ((x) << S_FW_TLSTX_DATA_WR_ADJUSTEDPLEN) #define G_FW_TLSTX_DATA_WR_ADJUSTEDPLEN(x) \ - (((x) >> S_FW_TLSTX_DATA_WR_ADJUSTEDPLEN) & \ - M_FW_TLSTX_DATA_WR_ADJUSTEDPLEN) + (((x) >> S_FW_TLSTX_DATA_WR_ADJUSTEDPLEN) & \ + M_FW_TLSTX_DATA_WR_ADJUSTEDPLEN) #define S_FW_TLSTX_DATA_WR_EXPINPLENMAX 4 #define M_FW_TLSTX_DATA_WR_EXPINPLENMAX 0xfff #define V_FW_TLSTX_DATA_WR_EXPINPLENMAX(x) \ - ((x) << S_FW_TLSTX_DATA_WR_EXPINPLENMAX) + ((x) << S_FW_TLSTX_DATA_WR_EXPINPLENMAX) #define G_FW_TLSTX_DATA_WR_EXPINPLENMAX(x) \ - (((x) >> S_FW_TLSTX_DATA_WR_EXPINPLENMAX) & \ - M_FW_TLSTX_DATA_WR_EXPINPLENMAX) + (((x) >> S_FW_TLSTX_DATA_WR_EXPINPLENMAX) & \ + M_FW_TLSTX_DATA_WR_EXPINPLENMAX) #define S_FW_TLSTX_DATA_WR_PDUSINPLENMAX 2 #define M_FW_TLSTX_DATA_WR_PDUSINPLENMAX 0x3f #define V_FW_TLSTX_DATA_WR_PDUSINPLENMAX(x) \ - ((x) << S_FW_TLSTX_DATA_WR_PDUSINPLENMAX) + ((x) << S_FW_TLSTX_DATA_WR_PDUSINPLENMAX) #define G_FW_TLSTX_DATA_WR_PDUSINPLENMAX(x) \ - (((x) >> S_FW_TLSTX_DATA_WR_PDUSINPLENMAX) & \ - M_FW_TLSTX_DATA_WR_PDUSINPLENMAX) + (((x) >> S_FW_TLSTX_DATA_WR_PDUSINPLENMAX) & \ + M_FW_TLSTX_DATA_WR_PDUSINPLENMAX) struct fw_tls_keyctx_tx_wr { __be32 op_to_compl; @@ -3555,7 +3561,7 @@ struct fw_tls_keyctx_tx_wr { } keys; __u8 reneg_to_write_rx; __u8 protocol; - __u8 r7[2]; + __be16 mfs; __be32 ftid; }; @@ -9308,17 +9314,17 @@ enum fw_hdr_chip { enum { T4FW_VERSION_MAJOR = 0x01, T4FW_VERSION_MINOR = 0x10, - T4FW_VERSION_MICRO = 0x16, + T4FW_VERSION_MICRO = 0x1a, T4FW_VERSION_BUILD = 0x00, T5FW_VERSION_MAJOR = 0x01, T5FW_VERSION_MINOR = 0x10, - T5FW_VERSION_MICRO = 0x16, + T5FW_VERSION_MICRO = 0x1a, T5FW_VERSION_BUILD = 0x00, T6FW_VERSION_MAJOR = 0x01, T6FW_VERSION_MINOR = 0x10, - T6FW_VERSION_MICRO = 0x16, + T6FW_VERSION_MICRO = 0x1a, T6FW_VERSION_BUILD = 0x00, }; diff --git a/sys/dev/cxgbe/firmware/t5fw-1.16.22.0.bin.uu b/sys/dev/cxgbe/firmware/t5fw-1.16.22.0.bin.uu deleted file mode 100644 index c4eccbb..0000000 --- a/sys/dev/cxgbe/firmware/t5fw-1.16.22.0.bin.uu +++ /dev/null @@ -1,10672 +0,0 @@ -/*- - * Copyright (c) 2016 Chelsio Communications, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -begin-base64 644 t5fw -AAEEoQEQFgAAAQQJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAABIIEkQSaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAENoZWxzaW8gRlcgUlVOTUVNIERFQlVHPTAgKEJ1aWx0IFRodSBEZWMgIDEgMDM6 -MTE6MTMgUFNUIDIwMTYgb24gdm5jNC5hc2ljZGVzaWduZXJzLmNvbTovaG9tZS9maXJtd2FyZS9j -dnMvZnctcmVsZWFzZSksIFZlcnNpb24gVDV4eCAwMS4xMC4xNi4wMAAAAAAAAAAAAAAAAFzjrgZg -AMgAH/zhSOEAe/AAEAAA4QAwuHj///8f/OFAgAAAAeEAe3AAABAAH//85CAAAADhAZwE4QUAAAAC -AEDhBQgAAAYAQAACAAwABgAM4QUABAAMAACAAAEC4QB7POEAe0ThAHvk4gAAAAABAADhAHuQIAAA -AAAAgADhAHsAAABAAeEAe5wAAEAAREREQuAAAADjAARzREREQOMACAAgAAJcAAAAAB//lEAAAAAA -H/+URAAAAAAf/5RIAAAAAB//lEwf/8AAAAAAAAAAAADAABH/zSIKh5IQghAS/8wT/8yTIBL/zBP/ -zIQgBDMBkyAR/8oS/8uSEBH/yhL/y5IQEf/KAfQxAOQxAAUxAQIAEv/IAucxAhYAEf/GgRABAV/A -IQIRAckTEf/EEv/EkhAR/8QS/8SSEGAAEQAAEf++Ev/CkhAR/74S/8GSEIEQEf/AwCCSERL/v5IS -wCCSExL/vpIQghAC8lBlL/cR/7zHL5IQEf+7khAS/7sT/7uTIMAykyET/7qTIoIiEv+5E/+5kyAj -IiEU/7gEMwHJOBP/t4MwA4MUCDMRFP+1pDOTIRP/qZMiYAAIwjCTIRP/ppMiEv+wkCCQIZAikCOQ -JJAlkCaQJ5AokCmQKpArkCyQLZAukC8gJhAgJhGCIhL/o8AwLTcwLTc0LTc4LTc8Iz0BcjPtAAIA -Ev+gIwoALzcALzcQLzcgLzcwIz0BcjPtAAIAEv+VwDAoNzAoNzQoNzgoNzwjPQFyM+0S/5TAMCc3 -ACc3ECc3ICc3MCM9AXIz7RL/jxX/jxb/j8Aw1yAFZgFgABQAAAQ2BQACANMP0w8FMwxuOxQHRxQH -BEN2MeYENgUFMwxvO+0AAgAS/4MV/4EjCgACJwIHBEMEPgUFMwwHRxRvO/ADAgAS/33JLoMghCGF -IrwidDsOhlC0VZYwtDN0M/Rj/+YAZT/iZV/fEv9xwDIDLgUDAgAS/2jAMCg3QCg3RCg3SCg3TCM9 -AXIz7QACABL/ay0nAMARAUkxAEgxAQIAwAAU/2gE0jEV/2eUUBT/ZwTTMRX/ZpRQFP9mBNQxFf9m -lFAU/2UE1TEV/2WUUBD/ZQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -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 -IAkzqCAJM6ggCTNiIAkzqCAJM2IgCTOoIAkzniAJM2IgCTNiIAkzYiAJM2IgCTNiIAkzqCAJM2Ig -CTNiIAkzYiAJM2IgCTNiIAkzqCAJM6ggCTOoIAkzqCAJM6ggCTOoIAkzqCAJM6ggCTNiIAkzYiAJ -M2IgCTNiIAkzYiAJM2IgCTNiIAkzYiAJM2IgCTNiIAkzYiAJM2IgCTNiIAkzYiAJM2IgCTNiIAlB -5SAJQeUgCUHPIAlBwSAJQeggCUG7IAlBuyAJQbsgCUHoIAlBuyAJQbUgCUHoIAlBuyAJQbsgCUG7 -IAlBtSAJQeggCUHoIAlB6CAJQeggCUHoIAlB6CAJQeggCUHoIAlB6CAJQeggCUHoIAlB6CAJQegg -CUHoIAlB6CAJQegAAgIFBQgICwsODhERFBQXFxoaHR0gICMjJiYpKSwsLy8yMjU1ODg7OwAAAAAA -AAABAxERCAgQCQMBAAAAAAAAIATZICABvOQgAFwQIAGa1CABuXQgAbUYIAGACCAESBQf/8AwH//o -7CAAxnAf/9vMIACE3CAAd1gAAAAAAAAAACABnHAgAKNYAAAAAAAAAAAf/9WEH//HaB//xPwf/8MQ -IABzXCAAaOggAGdoIAC7+B//47QgBzRAAAAAAAAAAAAgAGt4AAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAACABw7QgAa1oIADPPCAAzmQf/+9wH//QaB//zRAgAKEoIAVuSCABPPggAR8UIAEG6CAA -+8AgAO3AIADj8CAA0VggBNuAIAMq9CABMsggA1dgIAHsbCAAhJgAAAAAIADPoCAF4lAgAMOoIAGj -7CAAEhwgALdUIAANWCADo9wf//KgIADPWCADLYwAAAAAAAAAACADxGwgAE3oIAAu8CAATOAAAAAA -IABXyCAAVeQgAFOYAAAAACAAW9AgATZ4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAIABZaCAE2LggAE3oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAWxAgA9rkIABaIAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAACAE2RgAAAAAAAAABAAAAAQAAAAICwAAACADFXQIAAAAIAMVgAgAAAAgAxWM -CgAAACADFZgMAAAAIAMVpBIAAAAgAxW0DQAAACADFcgOAAAAIAMV2BMAAAAgAxXoCgAAACADFfwO -AAAAIAMWCBgAAAAgAxYYDQAAACADFjQOAAAAIAMWRBAAAAAgAxZUEgAAACADFmgOAAAAIAMWfBAA -AAAgAxaMEQAAACADFqAKAAAAIAMWtAsAAAAgAxbADQAAACADFswUAAAAIAMW3AoAAAAgAxb0DwAA -ACADFwAGAAAAIAMXEAYAAAAgAxcYBgAAACADFyAGAAAAIAMXKAYAAAAgAxcwCQAAACADFzgGAAAA -IAMXRAQAAAAgAxdMBgAAACADF1QLAAAAIAMXXAsAAAAgAxdoBAAAACADF0wEAAAAIAMXdAkAAAAg -Axd8CQAAACADF4gAAAAAAAAAAA0AAAAgAxeUCgAAACADF6QGAAAAIAMXsAIAAAAgAxe4AwAAACAD -EJwBAAAAIAMXvAAAAAAAAAAA12qkeOjHt1YkIHDbwb3O7vV8D69Hh8YqqDBGE/1GlQFpgJjYi0T3 -r///W7GJXNe+a5ARIv2YcZOmeUOOSbQIIfYeJWLAQLNAJl5aUem2x6rWLxBdAkQUU9ih5oHn0/vI -IeHN5sM3B9b01Q2HRVoU7anj6QX876P4Z28C2Y0qTIr/+jlCh3H2gW2dYSL95TgMpL7qREvez6n2 -u0tgvr+8cCibfsbqoSf61O8whQSIHQXZ1NA55tuZ5R+ifPjErFZl9CkiREMq/5erlCOn/JOgOWVb -WcOPDMyS/+/0fYWEXdFvqH5P/izm4KMBQxROCBGh91N+gr068jUq19K764bTkQcMERYHDBEWBwwR -FgcMERYFCQ4UBQkOFAUJDhQFCQ4UBAsQFwQLEBcECxAXBAsQFwYKDxUGCg8VBgoPFQYKDxUf/8AA -AAQAICAHcbAgB3ZgH/ziAB//rlQf/7KwH/+t5IGAAACBAAAABAAACA////8f/7HAA4AAAB//sbAA -//gAAQAAAAAQAACBBAEAgQQAAAEEAAABBAEAAAf//4AAAAAqAAAAH/+FcAYAAAAf/8/wIARcGAIA -AACAEAAAgAAABUFAAABBQAEAgwAAAR//mhwgAw58DAAAAP//v/+/////H/+UkP//AAD//wD/8AAA -AP9///8f/OLkAEAAAB//qhQAAQAAAAD//x//lUD//9Bk///TIB//Z/wf/ODoIAdvjP//wSAf/2ew -H/9oVB/83gAf/68MH/+gRAAACLjg//4A4QGSAB//mrAA////H/+vLB//nqQEQQAIBAEACMAAAADA -BAAApQAAADAAAAAf/50o4QP+AOEEbgAAAIWEAACFgCALevAgC3uwIAt7MCALe3Af/6+wAAD/gCAH -cgAgB29wIAt78OEALgAf/6+kH/+qpB//sGAf/6vQAAAXQB//r1DgAACg4QAwuAAAgADhAGAQAABA -AOEDCADhA0gA4QOIAOEDyADhABAIH/zhQOEAe3Af/7TgH/+02B/84Agf/7TcH/+0+B//tPAf/7T0 -H/+1EB//tQgf/7UMH/ziAB//reQf/6ugH/+epCAB1DQf/7B8AAD/gAAAHeAf/5SQH/+xwIGAAAAE -AAAIgoAAAIEAAAAgAw5wDAAAAB//mqwf/5qcH/+gPP//v/+/////BAEACMMAAAAf/7KwH/+uVB// -sfwf/6tYIAsAYB//sIgf/7CEH/+w6B//sbAgCwXgAA9CQCADDFggC4jgIAMMOCAAIhggCwVQIAAX -cCALBhAgCwUgIAsFgCALBbAgA5XoIAMMaBAAAAACgAAA7gAAACALiRAAAAsAAABgAABgAABgAAAA -AACG3SALBkAgAClMKgAAACAARdggCwawIAOgECALBuAgCwcgIAsHUCAAHCQgAwx4IAsH0ANgAAAg -C4kwIAsIUCALCvAFAAAAg/8AAAAQAAAgAC80IAMNyB//icAf/4VwH/+HdGdFIwHvzauJmLrc/hAy -VHYf/4AAAAA/KCADEJzP////IAsL4D////8CAAAAQAAAAP//f/8gCw0AIABIUCALDTAgCw2gCAAA -AAD///8gCw4Q9////yALEID//v//IAsdsIAAAAAAAEAAIAMOdAAA//8AAIAAIAsegCALHwAgCx9A -IAsfkCALHtD/+///D/aAACALI/AgCyQgAAEAAAAEAAAgC5CwH/+ukCAAV8ggAFkkIABV5CALJLAg -AFOYIAslQCALJZAgCyYg4AAAACALJqAgCyZgUwAAACALJsBSAAAAIAsnAFEAAAAgAfWMH/+rxCAL -KZAgCynwIAspwCALLHAf/68sIAsswB//nqwf/67QIAsugBQAAACAAAACeAAAAIAAAAaAAAAFAAAK -AIAAsAAA4zCS///wAIAAsQDhAZoAAAIAACALLkAf/5wkAAB+QB//rwQA/8AAH/+vEAEAAAAoAAAA -JgAAACALLvAFgAAABgAAAB//qxwrAAAAIABuTB/83gAf/6y4A4AAAAf///81AAAAA0AAAAA///+A -QAAACA///x////8gAAAAAADAAB//rug9AAAAH/+thAcAAACBBAEAgQQAAB//rTQAADqYAAAP/wBD -AAAAAAgABAAAAB//rOwgC5PAH/+y0B//tFQf/5oc4QB6ACBgAAAf/61MH/+etB//nqggC5PwAAMH -gCALlGAf/5yIACAAAABAAAAAAAkAAAAwAP/8+H/AAAAAo/+7AKP/ugANAAAA4AMAAIP/tgAP//// -D//4AP8AAAAP//4BIAuUoCALMFAgCzCAIAuVMAAPAAAACgAA//8ADx//nrwf/67wA//AAIP/wAAg -C5WwIAuWIB//r9Af/7NAH/+zIP9g8AAf/4BQH/+UUASAAAgARAAA/x///wDAAAABgMIAAACBAP+/ -/////wAAAIAAAAAACbwf/OIMDwAAACALMMAf/69wAAAIvB//sHQf/6CYH/+amB//gGAgB2/QAAAn -EB//2wAgC5zAIAuckB//r9Qf/5qQH/+enN6tvu8gAwkANAAAAD8AAAAf/7CQH/+yGACZAAAAAIkG -EAAHAgHAgACZAAAAH/+xAACIAAiCgAABH/+yaB//sJgADwP/AxEAAAMVAAAgCzVQH/+u1CALnRAg -CzWwIAs2ACALNpAgCzWAIAD2mCALNmAgCzgwIAs4YCALOLAgCzkQIAD8CCkAAAAAAIkUIAECOCAL -nYAgC53gIAELyB//sCDw8PDw/wD/AKqqqqrMzMzMH/+zYAAAHtAf/7FoAAP//wAAJ/8gARPkIAue -UCADXoAf/6+oAAkAAAAAIAAAAEgAggAAACABNoAgC57AH/+vVCAAK+wgC6OAIAujsCALP9AgCz+g -IAs/4CALQEAgC0DAIAtAECALQGAgC0CQIAtCYCALQrAgC6HAIAuh4CALQuAgC0MwIAuigCALoqAg -C0KQIAui0CALohAgC6JAIAtDYCALpVAgC6XgIAukgCALpJAgC6QQIAuk8CALpFAgC6QgIAuk0CAL -pWAgC6UgIAuloDsAAAgOAAAA0AAAAB//gKAAAB+KH/zi5AAACFAAAB9AIAtF4CALRgAgC0YgAAkA -CB//smQwAAAA///3/yALSHAgA2Q8AACD/yAHdSggB3YgFaAAAB//sigf/678AAAIBgAAD/4AAIjM -fwAAAPAAAAAgC6pgIAupwCALqiAgC6jgIAupcAAA4AAgC6YQIAumwCALqUAf/5w8AAQD/woAAAAg -B3IAMwAAAOEAAAAf/7MkA//gAH///wAAAP/+AD/2kB//sjAAAB+YA//wACALhEAgC4QAIAuEYB// -tDAgC0jgH/+sCBoAAAAgC0kwIAGS1B//siwAD///H/+wUB//rwwgC6rAH/+uwB//q3Af/61kIAdv -bB//qZAgC0xAwAQAAB//rVgf/61wH/+zEB//snggC6vQIAtMgB//rJDgAQAAH/+gQCALrSAgC0zA -IADAeB//oDggAL1oIAusoCALrPAf/5xcIAtPQB//oEQgC1yA4P/+ACALhuAf/68IH/+WjCALaMAg -C2lQH/+vAB//stQgC2wAIAtsMEgAAAAgAczoH/+syCABzugf/6qkH/+bDB//rZQf/6rMAAAX8AAA -FjwgB3HsH/+rNOEAXgAf/6xsAE01oAAASLkf/5qw4QAuAB//raDhAwYA4QAOAOAFAAAD/wAAH/+q -1CADDnwf/L//PAAAAAAH//+DAAAAH/+qrCAB8TggC4KAH/+v5OAGAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACB -gAAAAAAAAP////////////////////8f//wEH//8BB//+8gf//vIH//7yB//+8gf//QQH//4gB// -9qgf//aoH//2qCAHNigAAAAAAAAAAAAAAAAAAAAAIAc4mCAHOJgAAAAAAAAAAAAAAAAAAAAAIAc2 -KCAHNigf//l8H//5fB//+Xwf//l8H//5fB//+XwAAAAAIAHVVAAAAAAAAAAAAAAAAAAAAAACAQAA -AAAAAAAAAAAAAAAABAAAAAAAAACBgAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAIAoAEfKfE/Kf0w8D5jEBAgAW8p0X8p53awaQYLRmd2P4VA8H -VetCDxQAY//5AAAAbBAIiiIoIAeJMPsK/yggAUAw9aFiaQABTDAqIBaZE/gWBCAyBFqw9LUaAgAA -ULBYPXGIFPSiaGD/EFgwGvKJGfKJLKJK+ZJ/IVcANyAmokkJZgH5bAABUQA1oB3ygy3QgAyHEf/y -ghYAIFXw/HI6IG4Ca3ANTRSk3f+PCgAGAmtw//KXKgCF7xAucjn/5gEOAIB/kCggFpkS+grtIC4E -WjApMBD7MQsmAM5WULy7AioCWD1wKCAULCAEpIj4CUcCAIADIPkkFCwAmBJgHvJpKCEHjRMZ8mn8 -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 -Y5uYoIIgnVAfY5vzpgMjgAQ4oP+mAiIJABNw8qYBICACErDRD8Ag0Q/aIPwKACAwAlkwW/9XwCDR -DwAAbBAEKiAHG2OUCipACqoQ/WP+GgkAWrCaMIYg9WOZEAQQODD5Y4UQMBBAMPg2AyeABDmg+TYC -JgkAObCWMfAFBwAgAjDwAEZhAEZhAEZhLiAHLCEIDg5B8O4RAAAQeDD7ZWIcCQBzMPs2BiwJAGsw -/DYEIEACEPACBIYAQmMABIYAQmH/NCAggAIQ8NEPAAAAAAAAAGwQBMBRAyQsAyIuAlI5pCLRDwAA -//8BA/8C////AAAAAAAAAAAEBAgAAAAAARAYAQABAAAgA1eKIANX7SADV3cgA1ftIANXdyADV+0g -A1eOIANXjiADV9UgA1e9IANXpQAAAAAgA2C6IANguiADXsYgA2C6IANexiADYJcgA2BvIANexiAD -X6EgA17GIANexiADX5ggA17GIANguiADXsYgA17GIANguiADXtMAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAgA6XeIAOltiADpc0gA6XNIAOlzSADpc0gA6XNIAOlzSADqBQgA6fSIAOlzSADpc0gA6XN -IAOlzSADpc0gA6XNIAOnPiADpssgA6YxIAOmGiADpgsgA6X7AwEAAgAAAAAgBM4oIATP1iAE0QIg -BM4oIATQ+iAE0OUgBM4oIATOKCAEziggBM4oIATOKCAEziggBM4oIATOKCAEziggBM4oIATQ2CAE -0MsgBM4oIATOKCAEziggBM4oIATOKCAEziggBM4oIATOKCAEziggBM4oIATOKCAEziggBM4oIATO -KCAEz8EgBM4oIATPuyAEz7sgBM4oIATPuyAEz7sgBNCuIATPuwAAAAAAAAAAAAAAACAE8LggBPC4 -IATwGiAE8LggBO0dIATwsCAE8JAgBO0dIATtHSAE7R0gBO0dIATtHSAE7/4gBPC4IATtHSAE7/4g -BPC4AAAAAAAAAAAAAAAAIAUAOCAE/rQgBQKTIAUCUyAFAhsgBQHgIAUBwCAE/wggBQGfIAUBYyAF -AQsgBQC7IAUAcyAFAFABEBgBAAIAAAEQGAEAAgAAAAAAAAAAAAAgBcQHIAW/iSAFw9sgBcOvIAXD -giAFw20gBb+rIAW/wiAFw1QgBb/3IAW/4yAFv6sgBb/3IAW/qyAFv6sgBb+rIAXEBwAAAAAAAAAA -AAAAAAAAAAAgBhIYIAYLMCAGCtggBggEIAYD6AAAAAAAAAAAIAYLGCAGCxIgBgsSIAYLEiAGCxgg -BgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLGCAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAG -CxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYL -EiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsS -IAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLGCAGCxIg -BgsSIAYLEiAGCxggBgsSIAYLEiAGCxIgBgsYIAYLEiAGCxIgBgsSIAYLGCAGCxIgBgsSIAYLEiAG -CxggBgsSIAYLEiAGCxIgBgsYIAYLEiAGCxIgBgsSIAYLGCAGCxIgBgsSIAYLEiAGCxggBgsSIAYL -EiAGCxIgBgsYIAYLEiAGCxIgBgsSIAYLGCAGCxIgBgsSIAYLEiAGCxggBgsSIAYLEiAGCxIgBgsY -IAYLEiAGCxIgBgsSIAYLGCAGCxIgBgsSIAYLEiAGCxggBgsSIAYLEiAGCxIgBgsYIAYLEiAGCxIg -BgsSIAYLGCAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAG -CxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsYIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYL -EiAGCxIgBgsSIAYLEiAGCxIgBgsYIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsS -IAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIg -BgsYIAYLEiAGCxIgBgsSIAYLGCAGCxIgBgsSIAYLEiAGCxggBgsSIAYLEiAGCxIgBgsSIAYLEiAG -CxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYL -EiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsS -IAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIg -BgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLGCAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAG -CxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYL -EiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsS -IAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsSIAYLEiAGCxIgBgsYAAAAAAAAAAAAAAAAIAYLbCAGD6kg -Bg+OIAYPeiAGD18gBg9LIAYPKiAGDxYgBg71IAYO4iAGDskgBg62IAYOnSAGDoogBg5xIAYLZiAG -DlcgBg5EIAYOKyAGDhcgBg38IAYNuyAGDXsgBg27IAYNeyAGDWcgBg1MIAYLZiAGC2YgBgtmIAYL -ZiAGDTkgBguFIAYLZiAGC2YgBgtmIAYNHCAGDQMgBgzzIAYM3CAGC2YgBgzJIAYMryAGDJwgBgyC -IAYMbyAGDFcgBgxEIAYMMSAGC9cgBgtmIAYLZiAGC2YgBgtmIAYLZiAGC2YgBguiAAAAAAAAAAAA -AAAAIAYSZCAGEm4gBhQCIAYT3CAGE9UgBhPOIAYTxyAGE8AgBhO5IAYTsiAGE6sgBhOhIAYTlyAG -E4EgBhNWIAYTLSAGEyQgBhMJIAYS/yAGEvEgBhLhIAYS2iAGEsQgBhK9IAYSViAGEpYgBhKMIAYS -giAGEnsAAAAAAAAAAAAAAAAgBq5YIAartCAGqkggBqf4IAaloCAGokAgBqM4IAaj6CAGobQgBqZk -AAAAAAAAAAAlKAMPCBKlqIOOk5IAAAAAUlYAABAAAABjb25maWd1cmF0aW9uIGZpbGUgcGFyc2Vy -IGZvdW5kIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBhZnRlciBbZmluaV0KAAAwAAAAZmNvZQAA -AAB2bmljX2lkAHZsYW4AAAAAdG9zAGV0aGVydHlwZQAAAG1hY21hdGNoAAAAAG1wc2hpdHR5cGUA -AGZyYWdtZW50YXRpb24AAABzcnZyc3JhbQAAAABmY29lbWFzawAAAABjb21wYWN0AGJhc2ljdmly -dHVhbAAAAABnbGJfa2V5AGdsYnZmX2tleQAAAHBmdmZfa2V5AAAAAGlkeHZmX2tleQAAAHN5bm1h -cGVuAAAAAHN5bjR0dXBlbmlwdjYAAABzeW4ydHVwZW5pcHY2AAAAc3luNHR1cGVuaXB2NAAAAHN5 -bjJ0dXBlbmlwdjQAAABvZmRtYXBlbgAAAAB0bmxtYXBlbgAAAAB0bmxhbGxsa3AAAABoYXNodG9l -cGxpdHoAAAAAbGFuAHdhbgBjbHVzdGVyAG1hbnVhbAAAdHBfcGlvAAB0cF90bV9waW8AAABuaWNf -dm0AAG5pY191bQAAbmljX3VtX2lzZ2wAbmljX2hhc2hmaWx0ZXIAAG9mbGQAAAAAcmRkcAAAAABy -ZG1hYwAAAGlzY3NpX2luaXRpYXRvcl9wZHUAaXNjc2lfdGFyZ2V0X3BkdQAAAABpc2NzaV9pbml0 -aWF0b3JfZm9mbGQAAABpc2NzaV90YXJnZXRfZm9mbGQAAGZjb2VfaW5pdGlhdG9yAABmY29lX3Rh -cmdldABwb2Zjb2VfaW5pdGlhdG9yAAAAAHBvZmNvZV90YXJnZXQAAABpc2NzaV90MTBkaWYAAAAA -aXNjc2lfaW5pdGlhdG9yX2NtZG9mbGQAaXNjc2lfdGFyZ2V0X2NtZG9mbGQAAAAAdGxza2V5cwBj -cnlwdG9fbG9va2FzaWRlAAAAAHBwcABkY2J4AAAAAGIyYgBzb2NrZXRudW0AAABjZWUAaWVlZQAA -AABhdXRvAAAAAGFuX2RpcwAAcGRsaXRlX2RpcwAAIAMXwAAEAAAAAAQAAAQAAAAAAAD/AgAAAAAA -AAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AgAAAAAAAAAAAAAAAQAC -/wIAAAAAAAAAAAAAAAAAAv8CAAAAAAAAAAAAAAAAABYAAAAAAAAAAAAAAAAgBqF4AAAAACAGoMgg -Bp5YIAadMCAGfHAgBhqIIAYDQCAGAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgBGlEIAR1uCAE -dbggBHW4IASFkCAEn4AgBKxEIAS1nCAEZkQgBGOwIARaHCAEzRggBFfIIARUuCAGAfQgBgDEIAX6 -ECAEdbggBfk4IAX3dCAF9qggBzuwIAPjZCAEPiQgBrksAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAgA1YAIAM/SCADT/QgA01sIANL9AAAAAAgA0mQIANVPAAAAAAgBEv8AAAAAAAAAAAA -AAAAIAOldAAAAAAAA///AAAD/wAAAD8AAAAPIAbzhCAG8rwgB0y0IAbyrCAG8uggBvIAIAbzbCAG -8dAgB0ygIAbymP8YMGBgAAAAAAECAwAAAAAAAAAAAAAAACAGrwQgBGegIACEYAAAAAAAAACBAAAA -AAAAAAAAAAAAIARBRCAEQtAgBEJsIARC5CAEQWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -IARB9AAAAAAAAAAAAAAAADAxMjM0NTY3ODlhYmNkZWZBQkNERUYAAAAAAAAAAAAAQUJDREVGR0hJ -SktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLwAA -AAAAAAAAAAAAAAAAAAAgAEccAAEAACAARvwABQABIABG4AADAAUgAEbAAAcAAGOCU2MAAAAA//// -////AAAABAQIAAQECAAEBAgABAQIAAdDAAAAAAAAAAAAAAAAAAAhAAkAgQBBACEACQAhAAkAgQBB -AIEAQQCBAEEAgQBBACEACQCBAEEAIQAJACEAEQCBAEEAgQBBACEACQCBAEEAIQAJACEACQEBAEEA -gQAhAIEAIQAQEGEBAQCBAQEAgQMCAQAEAAAAECBAAAAAAAAEAAIAAQAAgABAACAAEAAIIECAAAAA -AAAAAAAAAAAAACADCVAAAAAAIAMQyAAAAAAgAwlUAAAAASADEXAAAAACIAMJXAAAAAQgAwlkAAAA -CCADCWwAAAAQIAMReAAAACAgAwlwAAAAQCADCXwAAACAIAMJiAAAAQAgAwmUAAACACADCaQAACAA -IAMJsAAAQAAgAwm8AACAAAAAAAAAAAAAAAAqHAAAKjwAACpcAAAqfAgHBAMKCQIAAAAAAAAAAAAA -EQAQAA4ADwAUABQACgAHAB8AAAAAAAAAAAAAAAAAAAAAAgQAAABEAAAABAAAAEAgBrKgIAayWCAG -sSwgBq/UIAavkCAGr2QgBq+8AAAAAAAAAgAAAAQAAAAIAFllcwAwMTIzNDU2Nzg5YWJjZGVmZ2hp -amtsbW5vcHFyc3R1dnd4eXoAAAAAbm9uZQAAAABhbGwAKgAAAGRpc2FibGVkAAAAAGVuYWJsZWQA -MHgAAE5BAABWMAAAVjEAAFYyAABWMwAAVjQAAFY1AABWNgAAVjcAAFY4AABWOQAAVkEAAFZCAABW -QwAAVkQAAFZFAABWRgAAVkcAAFZIAABWSQAAVkoAAFZLAABWTAAAVk0AAFZOAABWTwAAVlAAAFZR -AABWUgAAVlMAAFZUAABWVQAAcG9ydAAAAABwcm90b2NvbAAAAABnbG9iYWwAAGZ1bmN0aW9uAAAA -AGZpbmkAAAAAcmVnAGZpbHRlck1vZGUAAGZpbHRlck1hc2sAAHJzc19nbGJfY29uZmlnX21vZGUA -cnNzX2tleW1vZGUAcnNzX2dsYl9jb25maWdfb3B0aW9ucwAAc2dlX3RpbWVyX3ZhbHVlAHRwX3Bt -cngAdHBfcG1yeF9wYWdlc2l6ZQAAAAB0cF9wbXJ4X2ZsYWdzAAAAdHBfbnJ4Y2gAAAAAdHBfcG10 -eAB0cF9wbXR4X3BhZ2VzaXplAAAAAHRwX250eGNoAAAAAHRwX210dXMAdHBfdGNwdHVuaW5nAAAA -AHRwX3RpbWVycmVzAHRwX3RpbWVydmFscwAAAAB0cF9iYWNrb2ZmdmFscwAAc2NoZWRfaW9xdHhf -YnBfcHJpb3JpdHkAcGNpZV9tYV9yc3BfdGltZXJ2YWx1ZQAAcGxfdGltZW91dF92YWx1ZQAAAABt -ZW1mcmVlX2NvbmZpZwAAYmFyMnRocm90dGxlY291bnQAAABjcGx0eGRhdGFfbWVtYWxpZ24AAG1j -X21vZGVfYnJjAG1jX3BkAAAAb2ZsZF9mbGFncwAAbWMAAG52ZgB3eF9jYXBzAHJfY2FwcwAAbmlx -ZmxpbnQAAAAAbmVxAG5xcGNxAAAAbmV0aGN0cmwAAAAAbnZpAHJzc252aQAAcnNzbnNlY3JldAAA -bmV4YWN0ZgBucmF3ZgAAAGNtYXNrAAAAcG1hc2sAAABuZXRob2ZsZAAAAABucm91dGUAAG5jbGlw -AAAAbmZpbHRlcgBuc2VydmVyAG5oYXNoAAAAdHBfbDJ0AAB0cF9kZHAAAHRwX2RkcF9pc2NzaQAA -AAB0cF9zdGFnAHRwX3BibAAAdHBfcnEAAABpc2NzaV9udGFzawBpc2NzaV9uc2VzcwBpc2NzaV9u -Y29ubl9wZXJfc2Vzc2lvbgBpc2NzaV9uaW5pdGlhdG9yX2luc3RhbmNlAAAAaXNjc2lfbWF4X3Nn -ZQAAAHBwbV9tYXhfem9uZXMAAABwcG1fem9uZV9yYW5nZTAAcHBtX3pvbmVfcmFuZ2UxAHBwbV96 -b25lX3JhbmdlMgBwcG1fem9uZV9yYW5nZTMAZmNvZV9uZmNmAAAAZmNvZV9udm5wAAAAZmNvZV9u -c3NuAAAAZmNvZV9uZmNiAAAAZGNiAGRjYl9hcHBfdGx2AGRjYl9kY2J4X3Byb3RvY29sAAAAYmdf -bWVtAABscGJrX21lbQAAAABod20AbHdtAGR3bQBkZWJvdW5jZXRpbWUAAAAAYW5fYWVjX3RpbWUA -dmVyc2lvbgBjaGVja3N1bQAAAABTZXNzaW9uVHlwZQBPRk1hcmtlcgAAAABJRk1hcmtlcgAAAABE -YXRhRGlnZXN0AABIZWFkZXJEaWdlc3QAAAAARXJyb3JSZWNvdmVyeUxldmVsAABJbW1lZGlhdGVE -YXRhAAAARGF0YVBEVUluT3JkZXIAAERhdGFTZXF1ZW5jZUluT3JkZXIASW5pdGlhbFIyVAAATWF4 -Q29ubmVjdGlvbnMAAE1heFJlY3ZEYXRhU2VnbWVudExlbmd0aAAAAABJbml0aWF0b3JOYW1lAAAA -SW5pdGlhdG9yQWxpYXMAAERlZmF1bHRUaW1lMldhaXQAAAAARGVmYXVsdFRpbWUyUmV0YWluAABN -YXhCdXJzdExlbmd0aAAARmlyc3RCdXJzdExlbmd0aAAAAABNYXhPdXRzdGFuZGluZ1IyVAAAAFRh -cmdldE5hbWUAAFRhcmdldEFsaWFzAFRhcmdldEFkZHJlc3MAAABUYXJnZXRQb3J0YWxHcm91cFRh -ZwAAAABBdXRoTWV0aG9kAABTZW5kVGFyZ2V0cz1BbGwAQ0hBUF9BAABDSEFQX0kAAENIQVBfQwAA -Q0hBUF9OAABDSEFQX1IAAERpc2NvdmVyeQAAAE5vcm1hbAAATm9uZQAAAABDUkMzMkMAAENSQzMy -QyxOb25lAE5vbmUsQ1JDMzJDAENIQVAAAAAAQ0hBUCxOb25lAAAATm9uZSxDSEFQAAAATm90VW5k -ZXJzdG9vZAAAAElycmVsZXZhbnQAAFJlamVjdAAATm8AADUAAABDSE5ldCAxLjAwAAAAAAAMAAAA -AAEAAXwADAEAAAAAEAAAABQgB2ZIAAADBQ5AAAAAAAAQAAAAKCAHaVAAAAMYDlAAAB/8AAAf/AAA -H/+1IB//tSAgB3GwIAd2YCAJTuAgCU7gIAoAACAKgAAgCoAAIArmgAAAAAAgAwAAH/+vLCALAAAg -CwAwH/+UkB//sjQAD///H/ziAB//reQf/7GwGgAAAIEAAAAEAAAIIAsAgCALhKAf/6+oH/+yGB// -rxAf/7HAMAAAECALhOAgC4VAH/+zlB//rpAf/5Y8IAd2IBeQAAAgB3QkIAMJABSwAAAgAwsQAABg -AIAAAAQgB3YqAAAfigAAg/8VoAAAIAMAGBagAAAIUAEAIKAAAD/wAAAjoAAAA/8AHwDAAAQf/7OY -AAD//yAHNuAqAAAAIANFMCALhXAgC4WwIAc2pN6tvv8awAAAIAd1KCADCwwAAP/qIAd2MAAACBQA -AIgAAACAAB//rvwgB3IAH/+vgAAAJxAAHoSAAABAACADXoAf/7B0ABAAAB//rXAf/7B4IAMAICAL -hnAgC4ZAAQAAACgAAADhAAAAOAAAAP8///8wAAB0H/+FcCADAFAgCwDQMAAACDAAAAw0AAAI0AAA -AA4AAAAAAIkUOwAACCAHdDggAwt0NJAAACAHdAAFXUqAIANkPAAYAAD/B///ADgAAAAwAAAgC4aQ -4QAuAAAAYajhAY4AAABADwABkQyAAAAAIAuHQCALh3AAAAgAIAuHwP//8/8gC4fwAACoLAAAqC8A -AKgrAACoKgAAqOwAAIEAAACoNQAAqDcgCwOw4QBeACALA/AAAEAOAABAGiALBCAAABAAAAD/6QAA -/+AAAFAAAAD/+AAAqDv//8kkAABADQAA/8AAAP/3AAAP/wAAD0IAAP/1IAsEgAAAgAcAAIAEIAuI -ECALiDAAALjuAAA0AAAAtO4AALT/AAC0AAAAuAAf/69EIAsEsCADDDggC4hQIAuIkAAAg/0gA6G4 -AAFBSgABAW4AwAABIAuIoCALBPAgAwxIIAsGYCALBpAowAAAQAAAAiADC0QooAAAgAAAAiALB4Br -AAAAIAMKwCALB7AQAAAAA2AAAO4AAAAgC4kwIAObmCALiVAgA6NIIAuJoCALCABAAAAAIAMMiCAL -CIAD4AAAH/+uwCADAKAf/7Kw4QMGAP/f///f////AAEACgLmAukgAAAA4QL+ACADALDhAAYAAAIA -AP/9//8AmJaAAA9CQK1lNF07msn/O5rKAAAETAAf/68gAACvAOEBDgAAAIj3ACAAAAE/AUD/+F7g -AAehIAAsY0gf/610IAuJ0CALijAIAAAAH/zi5CADrcwf/68MIAsIsCALCeAgCwjgDzwAACALCXAg -BC0wIAQvCCALCkAPAAAAIAsKoB//h0Af/4gwIAsLECALC1AgCwuQIAMOcCADDfAgC4vAIAMN0CAL -i/AgC4qgIAuLACALi2Af/69k4AAAACAARzwA////IAuMECALDCAgCwyAIAsM0CALDFAgBAXsAAgA -ACAECqwgCw5gIAdv0CAARFAAD/wAH/+amB//nAAAADAAIAsOoCALDzAgCw/QVQAAACALjLAgAw7o -AAAIBiALEAAgCxDgAAAP/h//rxwgCxFwIAsRQAAA8AAgC4zQIAsRkCALEfAgCxIgIAsSgCALEtAg -CxOQIAuM8CALEzAgA8doIAPfGCALE/AgCxQwIAsUoCALFPAgC43AIAPlXCAD6qwgC42AIAsVoCAL -FTAgCxYQIAsWcCALFuAgB3TwIAsXYCALF6Dv////9////yALGAAgCxhQIAsbIP3///8gCxiwIAsZ -ICAD7RwgCxmAIAsZ4CALGkAgCxqQIAsa0CALjhAgAw7gIAMOdAwAAAAf/4egH/+IoCADEKAf/4eA -P////8////8gCxuAH/+IXCALG8AgCxwAIAuOMCALHIB///+r//8uXAAA0aT//9BNAACcTiALHQAg -CxzAIAscQB//h5wgAw54AABoAB//h5gAACAAH/+IACALHUAgBA5AIAsd8B//rwQgA5ywIAuOwCAL -jlAgC46gIAQSCAP/0AAAAQAAIAuP0B//m6AAQAAAAFAMAIP/0AAgC49AIAPHQCALkAAf/6/UIAsf -sCALH/Af/62AIAuQgCALICAgCyBQIAsgcCALIKAgCyDgIAshICALIZAf/69YIAsioCALIeAATEtA -IAQN/CALIjAgCyLgBAEACCAD75QgCyNgIAsjECALI8AgC4xwIAQmdCALjEAgCydAAACOAiALJ7Ag -CygAIAsoUCALJ3AgCyigA4AAACALKPAgCylA//f//yALKjAgBCGAIAsq8CALK7AgBCV8IAQfjCAE -DlwgBCS0IAsr8AIAAAAgCywwAAAXcCADDDQgC5GgIAuRUCALkTAgBEAUIAuRACALkYAgAwu0IAMM -FCALLRAgCy1gH/+toCALLYAgCy2wIAst0B//rGwgB23wIAsuAB//q4jhAH4AH/+tsB//rxgAAPP/ -BAAAABQAAAAgBEjMIAsusB//r9AgC5JwIAuSQCAAIhgf/5Z4AJwAAOAACSQgCy9AIAswICALL/Ag -C5OAIAsvwB//nwwgCy+AAAMEwOEDAgDg//4A4QCOAB//lowAAJaAAACWQCAHcbAAAJagAACWYOED -ACwAAwAAH/zeAOEAegAAAeAA4QGSAAAB4wAGAAAAIARcGPgAAAAB///nAAHAACAAAIAEABAAH/+r -mOEBmgDhAZpA4QGaPOEBmjjhAZo04QGaMB//sAAgAwu8IAMLzCADC8QgAwvUgAAAAx//rxT//P// -f////x//lrwgBGlEIAuWkCALltAgC5cAIAuXQCALl3AgC5ewIAuX4CALmCD//wAAD///8P/wAAAg -C5iAH/+btB//qtQgBHW4IAuZgCALmbAgC5kgIAuYwB//m3wf/5y4H/+fCAAA/4AgCzEAIAsxMP/7 -//8ABAAA4QHiwJAAAPD8/4DAAgAAIP7/gMAgCzGAIAsxwAAA+AAAAwEIAAMBDI////8gCzIQIAsy -YCALMpAgCzLQ4QDeAAADAwgAAwIAH/+tpP//8ADhAO4A//9//wAA/AAAAOAAAAAMAAADAwQAAREc -AAERGCALmhAAEAgAgAAIAAADAQT//8AAAAD//gAAJYAAAwMAH/+tnOD/4sAf/6wYH/+erCALmmAg -C5qQIAuasAAA//0gC5pAIAMBCAAA//MgCzMgAAAqMAAA/48AAFK1AABICgAAj4IAAI+GAAA4AAAA -j4oAAOM/AACDrgAA//EgCzNAAAAQQP//z78gC5rQAAASACALM3DhAy4A4QMyAP7///8gCzOQIAMB -ECALM/AgCzPAAIAAACALmvD///YkIAubgAAA//sAAP7/AAD/PwAA+f8f/6u4IAubICALnCAgC5vQ -IAs0oCALNGAgCzQwIAs0wCALNRAQAAUNAcCAAAkAAAAf/7H8H/+xACADAcAf/62EAACDACALN9AA -AIIAIAs28CALN0AgCzeAEAAHAgAAwAAgC5IAIAuRwAAADLwAAIkGIAs5cCALhfCIiIiIH/+bHCAD -AhAgCznQIAs5oCALPMAgCzyAIAs8QCALPAAgCzvAIAs7gCALOzAgCzrwIAs6oCALOlAgCzoQIAuf -MCALn2AgC5+QIAuf0CALoBAgC6BAIAs98CALPaAgCz0AIAs9QAAAgMIAABshH/+rvCALPiAgC6Bw -IAugsCALoNAA/8AAEgAAACAFHWAgC6GAIAuhQAAAoABgAAAAH/+viCALowAgCz5AIAs+cAAAHCAg -Cz6gIAs/AB//rgggCz9AIAs+0CALQPAAAH+mIAtBgCALQRAgC0GwIAOTZCALQUAgC0IQIAtB4CAD -lHwgC0JAIAOZQCALo+AgC0OwIAumMCALRNAgAw5gIAtEACALRPAgC0RgIAU/PCALpxAAAB9AAAAQ -Nv//7/8f/7OcH/+yKAAACFAgC0UwIAtFgCALRWAA///8MgAAAB//tBrAAAAAIAMCSDOQAAAgB3Qo -IAMLcCALp3AgC6fQIAunsCALqBAgC0WgIANufCADAlAgC0ZQAACABSALRoCBgAAA3q2+7yALRsAf -/68AMAAAHDAAAAQwAAAUAAD/7//+//8f/7LUAP/wAAAoAAAgC0bwAAAIQCADCzQgC0cgAP//+iAL -R3AwAAAAMAAANAAAgAEgAwJgAACAAiAFk+AgC6igEAAFEJkAAAA0AAAAIAuoUCALR7AAGQAAIAtI -ACADDwAAABIPIAtIMB//smQDFQAABQAAAIP/ABsgC0igIAXnOP//QAAgC6qAIAtJcCALSfAgC0pA -AAGRrOEBkay/////IAtKcAsAAAAgBe1oIAtK4CALS1AgC0vAIAtL8CALqwAgC6uABAIACH8AAAAg -BLd4IAML9B//neAAATiA4AAGAAACJxAgC6wwf///DyALTRAf/65wH/+t0PwA///hAJYA4QCaAAAA -Cf/hAJ4AAACwAB//r5wgAwKwIAtNUOEADgDhABIA/+A4AAP/gA4Ac/+AAwAAAAA4//8TAAAAEQAA -AB/8AAAf/67sIAtNkCALrVAAAZSPAAGUzyADAtAf/57EIAMHUCALTdAgC04QIAtOQB//lQQf/608 -IAMIQB//ndQf/5xcH/+dzOEBngD/v///AAGfNCALT5AgC0/QH/+WNCALVPAgC1VAIAtVoB//r5Ag -C1eAH/+suAA///8f/5x0H/+tbAAA/5cAAP7V//+rkx//rvjCAAAOBdwBAAP/AADAAAABIAtX8CAL -WDAgC1iAIAtYwCALWRAgC1lQH///8B//r+QCAAAQH/+UuB//npAf/5bIAAL//wAAnEAgC5MgIAtb -kCALXAAgC1zAIAuSoCALXVAAAP4AIAu0cBsAAAAABQACOsAAACALXZAgBjIQIAu1MCALtMAgC7UA -IAY36CALtKAgC13A///I////8f///9/PIAtd8P//n/8AACAE///fOCALXiAAAFANAADw/x//lTwf -/5aQAAD/3+EDHgD//+3/H/+sHCAHceAgB3HoIAteUAABkPj//Ph/IAtekCALXwAgB29sAAATiCAL -XzAAAwACH/+eqCALX7AgC19gIAtf4CAGZTgf/6wU4QMKACALtZABMBjAIAtgQCALYCAgC7XQIAtg -YCALYOAgC2CgIAthICALYaAgC2HgIAthQCALthAAAYag4QMABAX14QACYloAIAMItOEDADAABAXu -AACQIAAAkBDhAwEE4QHiAB//loAAYAAAH/+WpB//rAQABQAEAAQUAB//ryQf/560H/+euCAIAAAg -CC6wIAgGYCAIbwAgCAVQIAgEQCAIAzAgCAIgIAgBEB//r6Af/5ysH/+rSCAHb9Qf/6nIH/+sgCAB -1rThAHYAIAMMQCALumAf/66sIAtoYCAHdLogC2rwFJAAAEAAAAQgC2tgIAtrkCALaWAgB3SwIAPk -+CALaaAgC2oAAACP/iALalAjKBUAIAtqsB//rZAgC7vAIAu6wCALu0Af/7DgIAd1qB//tLgf/7Qo -/+gP/7//DwD//w8AABCAACALbHAgBp9w4QBWACADCMDhAFoAAchABuEBmeAAAH5QAAB+QAAAfhgg -Bqu0IAMQ0CADENQgAxDIIAMQ2CADEOQgAxDsAFAgBuEBmgwAcCAG/+AAAAACIAYgC2/QH/+fkOEB -mgThAZoIAAQgBiALcAAgC3AwAAMNBAADDRQgC3BwAAMwAAAOAAAA4AAA/wD///8P///hAyoAAACA -A///f/wAAGN8IAu1cP//v/8A/wAA4QMiPCALwCAgC7/wIAu/0CALwEAAAw0QIAtwkPv//84EAAAB -/j4ADwAAIAz//98w4QMOAAAAP+AAGAADAAC5k+EDEgDz/+f/AAST4CADCPAgC3EQIAtw4CALcUAA -AP7lIAtxcCALceAf/64Y//tsIP/he4AAAwg0IAu8QCALvHAgAxAgIAu78CALvKAgC71gIAu80AAD -KhwAAyo8AAMqXAADKnwgC72AIAu9ECALvxAAAwgAH/+qTAADIjwAAyIYAAMiHCADEDAgC76gIAu+ -8CALveDhAyIA//9D////P/8AAyIAIAu+ECALvzAgC79QH/+ukCALvkAAAyIEIAu+cCALv3Af/5SQ -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 -AWww/P8RAYoII3B16b3AINEPAAANqwxj/86KJ8Cw+qwgIAEQYDBbApMcTEicoIsg+LsRAAEQYDD1 -pgIqCQBm8PumASAAEBAw0Q8AAAAAGE8dKrJyhiAnITX6ZgwAABAoMPh3CAIApRpgiSqNJwkKR/Sg -OmBAAnNw+Pr/IDIANKD7so0gABB4MJ8n+NYALgBAG7D/1RQggAJzsJ7Z/tYIIABqBqD/AgACAHSC -oJkqd5cS+yxYIAAQUDBbcRZgAA8AAAAAAPoiEyAAEFgwW3ER/E7+EAUQUDD9CmAgMBBYMFhe5fkK -cCIAAFmw+SQFIAAQYDD6QhUgARBoMFr6fCoiCnqmGPpCDSIAAFnw/AoAIAEQaDBa+naLTrC7m07A -wJwonCmcKpwrnCycLZwunC8sJhAsJhEsJhIsJhMsJhQsJhUsJhYsJhcsJhgsJhksJhosJhssJhws -Jh0sJh78Jh8iAAARcNEPAAAAAAAAAPP+RmAAEFgwL7IT+SIKIBACc3Ce8f/WAiCYAkLwmNMuthNj -/xosshH5IgogEAJTcJrB/NYCIIgCcvCe0yq2EWP+/QCKJ/sKASAAEGAw+qwgIAEQaDBa+sAbTJPz -/p5iAAAqsABsEAQtIg9k0A0CKgL7IhAgARBgMAvQAIgq/wIAAgDTohCMLsjJ+yIQIAAQUDALwACJ -IhpMgyP6wPSijSCcADZgiScrmRT0sXNgQAJScIuZwspa+Gr1TqcQVgA2oPAALmAqECAwjCctwRUs -zCADzgGu3v7sQCoAIHqw/qsrcgAAWrD6zAAAKhBgMFr4XMmujaAvoAf+ogIs+AFsMPz/EQGKCCNw -dem90Q8Nqwxj/9KKJ8Cw+qwgIAEQYDBbAfocS6+coIsg+LsRAAEQYDD1pgIqCQBm8Juh0Q8YToeF -ICmicooqJiE1wHD5VQwK4AFUMPSwNmYAIEGwyi6JJ8ff9yYHIEACYnD9lgAsAEAbMPeVFCCAAmMw -nJn8lgggAG6G4P8CAAIAeQLgmip3pw/7LFggABBQMFtwg2AADAAA+iITIAAQWDBbcH/8TmwQBRBQ -MP0KYCAwEFgwWF5T/gpwIgAAWXD+JAUgABBgMPpCFSABEGgwWvnqjyp6/mGXKJcplyqXK5csly2X -LpcvJyYQJyYRJyYSJyYTJyYUJyYVJyYWJyYXJyYYJyYZJyYaJyYbJyYcJyYdJyYeJyYf0Q/z/o9g -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 -AAAAAAAAADIAAAPoAAAAKAAATiAAAAAAAAPQkACYloAAD0JAAJiWgAAAHCAAAABLAD0JAAAD0JAA -mJaAAQEAAAMDAgIFBQQEBwcGBgAAADIAAAPoAAAAZAAAw1AAAAAAAAPQkAPQkAAATEtAA9CQAAAA -HCAAAABLAD0JAAAPQkAjw0YAAwIBAAcGBQQLCgkIDw4NDAAAADIAAAPoAAAACgAAAfQAAAAAAAAD -6ACYloAAD0JAAJiWgAAAHCAAAABLAD0JAAAD0JAAmJaAAwIBAAcGBQQJCQgICwsKCgAAAAAAAAAA -AAEAEAARAB4ADQASAAcAHwAOAAsAEwAVABsACAAXACAADwAdAAwABgAKABQAGgAWABwABQAJABkA -BAAYAAMAAgABAHsAdQD7APUARQBvAH0AdwBfAGkAxQDvAKMAPwD9APcAuwA5AN8A6QDPAJ0ARwBx -AA8AWQAlAL8AEwBjAH8AeQBtAF0APQC5AJsADQBhAGsACwAJAFEAHwAxAFMAxwDxACEAtQCPANkA -rQAzAKUAQQBVAJcAkwDjACkAyQD/APkA8wDDAO0A3QDnACMAvQA7ALcATwAdAI0A1wCRAOEA6wDb -ABsAiwCJAIcArwDRAJ8ANQAtALEA0wAXAKcASQBzAEMAZwChADcAzQBXABEAWwCZAAcALwCzAKsA -lQAnAMEA5QBNANUAGQCFACsAFQBlAMsABQCpAEsAgwADAIEAAAD6APQAfAB2AMQA7gD8APYA3gDo -AEYAcAAkAL4AfgB4ADwAuABgAGoAUAAeAMYA8ACOANgApABAAJIA4gD+APgA7ADcALwAOgAcAIwA -4ADqAIoAiADQAJ4AsADSAEgAcgCgADYAEABaAC4AsgAmAMAA1AAYABQAZACoAEoAgAB6AHQARABu -AF4AaACiAD4AugA4AM4AnAAOAFgAEgBiAGwAXACaAAwACgAIADAAUgAgALQArAAyAFQAlgAoAMgA -8gDCAOYAIgC2AE4A1gCQANoAGgCGAK4ANAAsABYApgBCAGYAzABWAJgABgCqAJQA5ABMAIQAKgDK -AAQAggACAAEAAwACAAQAAAAAAAAAAAABAAIAHAAbABYAFQAeAB0AGAAXAAwACwAQAA8AIAAfABoA -GQAUABMACgAJAA4ADQASABEACAAHAAYABQAEAAMAAQAAAAIABAAAAAAAAAAAAAAwBAAAMBAAAFnc -AABagAAAWoQAAFqIAABajAAAWpAAAZQwAAAQJAAAEDAAABA8AAAQ3AAAEQwAAHssAAB7NAAB4owA -AeaMAAHqjAAB7owAAfKMAAH2jAAB+owAAf6MAACNzAAAjoAAAH50AACP3AABkVgAAZJwAACP/AAE -ExwABBMYAAQTEAAEkxwABJMYAASTEAAAd+AAAHfkAAB39AAAeAQAAZw8AAEQdAABEIQAAJQIAACY -XAAAlgwAAJYUAACWIAAAliwAAJbEAADQKAAAkAgAAwjcAANI3AADiNwAA8jcAAMI5AADSOQAA4jk -AAPI5AABkFQAAGAcAAGg2AABkJAAAHfgAAB35AAAd/QAAHgEAAB42AAAeOAAAHj0AAUAeAAFCHgA -BRMIAAGUBAAB48AAAefAAAHrwAAB78AAAfPAAAH3wAAB+8AAAf/AAAGUDAAAAAAAAAAAAAAAAAAA -MAC///9AAAAwCL///0AAAZQQn////wABlDQAAAAQAAGUCJ//4/8AAZQ4AAAAEAAAECjh////AAAQ -LOH///8AABA0Af///wAAEDgB////AAAQQAAEAAAAABEQAP///wAAERQA////AAB7KAB9/+IAAHsw -P//u/wAAezgAAAABAAB7QD//7v8AAHwkAH3/4gAB4ogACAAAAAHmiAAIAAAAAeqIAAgAAAAB7ogA -CAAAAAHyiAAIAAAAAfaIAAgAAAAB+ogACAAAAAH+iAAIAAAAAI3I////8AAAjdD////wAACOfAAA -APAAAI6EAAAA8AAAfnB/v/9/AAB+eH+//38AAH4AAsAAAAABkVQB////AAGRnAH///8AAI/YA3// -/wAAj/j/////AAQTFAAAAAcABBMMAAAACwAEkxQAAAAHAASTDAAAAAsAAHfcAAAAAwAAd/T///// -AAB4BAAAAAMAAZw4AAHAQAABnPgAAcBAAACQBAAAAD4AARB4AP///wABEHwA////AAEQiAAAAAAA -AJQEAAD//wAAlBAAAP//AACYVAAAAf8AAJhYAAAB/wAAlggAAAAAAACWHAD///8AAJYkAP///wAA -ligA////AACWMAD///8AANAgAAAABwAA0CQAAAAHAAMI2AAAAAMAA0jYAAAAAwADiNgAAAADAAPI -2AAAAAMAAwjkAAAAAwADSOQAAAADAAOI5AAAAAMAA8jkAAAAAwABkFAAAADvAAGg1AAAAYMAAZCM -ADgAAAABkJgAOAAAAAUAdAAAAAcABQBwAAAABQAFCHQAAAAHAAUIcAAAAAUABRMEAAAAASADEaAg -COK0IAMRpCAI8wAgAxGwIAjyFCADEbwgCPHEIAMR0CAI8OAgAxHcIAjwNCADEfQgCO7IIAMSBCAI -7bAgAxIMIAjtiCADEiAgCO1gIAMSMCAI7TAgAxI8IAjsFCADEkQgCOvsIAMSWCAI67ggAxJkIAjq -VCADEmwgCOmsIAMSfCAI6KggAxKIIAjnmCADEpggCOaQIAMSqCAI5WQgAxLAIAjiNCADEtggCOHo -IAMS7CAI4cAgAxL8IAjhLCADExAgCOEEIAMTJCAI4BQgAxMwIAjfFCADEzggCN7sIAMTRCAI3ewA -AAAAAAAAACADE0ggCN2sIAMTTCAI3TAgAxNUIAjc+CADE1wgCNzAIAMTaCAI3IggAxNsIAjcUCAD -E3QgCNwYIAMTgCAI2+AgAxOEIAjdaCADE4wgCNuoIAMTmCAI23AgAxOgIAjbOCADE6ggCNsAIAMT -sCAI2CAgAxO4IAjasCADE8QgCNqoIAMTzCAI2nAgAxPUIAjaOCADE9wgCNoAIAMT5CAI2cggAxF4 -IAjV3CADE+wgCNWkIAMT9CAI1WwgAxP8IAjVNCADFAwgCNT8IAMUFCAI1MQgAxQcIAjUjCADFCQg -CNRkIAMUMCAI1DwgAxQ8IAjUDCADFFQgCNPkIAMUcCAI07wgAxSAIAjTlCADFJAgCNNsIAMUoCAI -00QgAxSwIAjTHCADFMAgCNL0IAMU0CAI0swgAxTcIAjSpCADFOggCNJ8IAMU9CAI0kAAAAAAAAAA -ACADFQAgCNEMIAMVBCAIz0AgAxUQIAjOWCADFSQgCM4kIAMVLCAIzfAgAxU4IAjNvCADFTwgCM2I -IAMVQCAIzVQgAxVEIAjNJCADFVQgCMzEIAMSKCAIy8AAAAAAAAAAACADFWAgCMuYIAMVaCAIy3Ag -AxGEIAj1+CADEYwgCPUsIAMRcCAI9HwgAxGYIAjz2B//rBgf/5aMIAuHkCALARAAACBAAAGGoCAL -AWAgCwHgAABADSALATAgCwGwIAsCICALAkAAAEEXAADwAwAAQQcAAEGMAABBiAAAQYYAAIAAAABB -gQAAqBkAAKgaAADDAAAAqBsAAKgcAACoFwAA//8AABAEAADlnwAAHxEAAO4JAAD//gAA6v8gCwJg -AAD/AAAAqBggCwKgAABgDQAPQkAgCwLgAADerSALAwAgCwNQ4QBeAP7//v8BAAAAAQABACAwAAAA -ADDUIAsD0AAAYagAAP/pIAtOkB//ngAgC06w4QByAB//nYThBBIAAIsUQOED/gAABABI4QQCAAAE -ACEf/5SQhhAAAAAEAECAAAAAgBQAA4AWAAOAEgAjgBGyA4AQAAUAKvEvAAGGnwAK8S8gC62gAAQA -CCALTtAf/5zIIAdyAB//r3AgC65g4AAAAOEAdgAgC63QIAuuECALTwAf/5/IH/+fUOEBmgACAAAA -AAGeDOEBngAAAZ50AAGerAABntgAAZ7wAAGfHB//n9Af/5xcAAH//wABn0wAAZ+cAAGfsOEAegAg -C1AgIAtQcCALUNAAAA//P////yALUTAgC1GgIAtR4CALUiAgC1JgIAtSoCALUuAgC1MgIAtTYCAL -U6Af/53sIAMPcOEEkgAgAw8Q/wD//wAMAACAAAAfgAAAPx//hXAf/530/8D//wAQAAAf/6+AAAAI -AACmDAAgC1QgIAtUgCALr/AgC1PgIAuvgCALrqAgC67gIAuvMOEALgAEAAAAH/+WtOEAVgACgFAA -gAAAgAAAQAD/8QCAAfAAAI4B4IAAAB8AIAgAACAIFCQAABUgIAgBAOEBkgDhAA4AAAEAAAACAAAA -fwBAAAMAAACCAIAAwQDA//8j/wAAyAAQIAEgH/+dOB//r6DhAH4A4QCOADwAAAD//7//UGjoR5IA -AADwAPAA37//+yAAAAR/9///gABCAP/3/38ABgAA/wAAAABJJJIAAH4YEAEQAQAAfkAgASABFRUV -FYQhhCEQEBAQ4QGOAAAA/n8EBAGA4QDOAERERESIiIiIzMzMzOEAjgThAI4I4QCODOD//gAgCA2k -AAAIwIABxBHEEcQRAP8A/wBAAED//z//IAuwoCALsNAf/52A/w///8yIRAAgC7BgIAuxAP//4AH/ -8P8AAAIAMyoqFRX+////H/+sdB//nKgf/5p4H/+ukB//nqggC1XwH/+fCB//nHQAAP/9AAD//B// -lcQf/5aQIAtWsB//rMggC1cAIAtWMCALVnAf/6xk4wACAOL//wAgC1dAIAjz2CALsfAgAAAAADAA -AABgAAAgYAAA0AAAACALsTAgC7HAAAAQACADCQgf/7GwH/+tmB//gLAf/68Q///wACALssAgC1mQ -IAtaECALWoAgC7JwIAuyMCALspAf/62wIAtbEAAAKAAAAD//AADAAAAEAADhADIAH/+A4B//gSAf -/4FgH/+cAP+AD////gAfAAB7YB/84gAIAAAAH/+d4B//lsgf/6wEH/+WNOEC/gDhA74A4QM+AOED -fgDhAeIA4QEOAOEAkgD///D/H/+qkAAACQAf/5ys4QEOBOEBDgjhAQ4MH/+ekP/wAAAAAoAGH/+v -pP/7//8gC2JgIAtiwB//geAf/51cH/+cWB//r5wQAAAA//D//yADDVgf/5qQAAB+TOEAigAAAPAA -IAtjMCALY5AgC2PwH/+vhB//q3Af/61kIAtkMCALZLAgC7hAIAtkYB//rZAf/56cIAtlMCALZPAf -/5yQIAu2wCALZaAgC2XgH/+vkB//rTwgC7kwIAu4kN/QAAAgC7jQH/+tTP+AAAD//+AAIAtmICAL -ZlAgAw1kIAdv1CALtnAf/690IAtmkB//ragf/7PcH/+0EB//reQSAAAAIAu0AAQAAAiBAAAAAAAw -AB//sJAgC7QwIAMNYB//siwf/7QoSQAAACALs5AgC7LgIAuzQC4ANgAADwP/AxEAAAMVAAAf/6+o -IAdt8CALZtAf/6yoH/+bcB//qzwf/568H/+f8CAAwHgf/+0kH//scB//rxwf/+4sAAATiAIAghAC -AAIQAAAgAAIAABAAGgAAAPrGiAAgAADwAAAAH/+tnOEDAgDhAwYAIAdumCAHb0AAAP/fAAD/9yAL -ZvAf/4Hwf////yALZ0AgC2cQIAtncB//nIgf/56sIAu2MAAA+AAAPDw8H/+ysB//lzgf/5sAH/+v -DAoUKFAgCA8EIAdvkB//lUggAw94H/+WvP//x/8AAv/AH/+cLCALt/AgC7eQIAu6ICALaBAgC7nA -IAu5kCALZ6AgC7nwIAu3IB//nMAf/6roH/+q5B//gnAf/6vAAAAnECALbJAf/6qsH/+sFB//nRgf -/50UH/+dDB//nQgf/4KQH/+vGCADCXAgAwvwH/+CsB//r5ggC20AH/+rsB//q7Qf/6u4H/+r7B// -q+gf/6vkH/+r4B//q9wf/6vUH/+rxB//q8gf/6vMH/+C4B//qzgAAEADH/+V1B//nMQf/6rUh/// -/x//nUAf/52gH/+e3AAP//AgC21AH/+DkCALbaAf/4OgH/+vtCALbeAf/524IAtuMB//nYwgC25g -IAtukB//g7Af/5z8AAAlgCALbsAgC28AH/+cpB//g9Af/5ygH/+bOB//mowf/4PY//8AAAPn/Bgg -C28wH/+D4B//rHggAwnU8////yADCdwgAwnoIAMJ9CADCcQP////IAMPoCALb5AgCBQU///q8CAI -E7T//+tQIAgSZCAIE6z//+ygIAgRdCAIElz//+2QH/+dJAP//+AABHIMAARyFAAEchwABHAUAARw -KAAEcCAABHAsAACFgD///+AABEAkAARATAAESiQABADgAAQABCALcuAgC3MQH/+c4AAEAsQABALA -IAvA8CALwSAABHBkIAvBUAAEQcAABEHEAARByAAEQHgABEDcAARBQAAEQUQgC3PgIAt0ICALdFAg -C3NAIAtzgCALc7AABHBYAAAQKAAEQWAgC3SgAAB3dwAAMzMgC3XgIAt04CALdWAgC3WgIAt1ICAL -dHAAACAoAAR0GAAESsAABEDAAARAxAAEQfAABEH0AAR0FCALwLAgC3cAIAt2wCALdoAgC3ZAIAt2 -AAAEAnAAAAjwAAQCdAAEAnwABAKQAAC/KAAEcFwABHQAAADwBgAES/AABHIoAAGbLwABYx0ABAEw -AAQA7AAEAQgABHYAAAQBBAAEdgQAAP/4AAQBAAAEAOQABHYIAAD/wQAEcgAAAFVVAARyBAAEAPgA -BADcAAQA2AAEckgABAE4AAQBGAAEckwABAD0AARyUAAEdAgABHIIAARASAAEStwgC3dAIAt3gCAL -d8AABEEsAARBPAAEQOAgC3gAAARBACALeDAABHBIAARwYAAEciAABHYMAAR4BIAQAAAgC8GQIAMQ -YIASAAMABADogBAAAwAEAMAAAE4gAAQAzAAEAMQABADIAAQBNCAIBtQgCAsUAAIAIQAEAIAAD/8p -AAQARCALeGAABAJEAAQCTAAEAkgGBgAAAAQBgAAAHngAATCwAAQA0AAEANQABADwAAQA/AACCNUA -AQRqAAQBDAAEARAAAKLCAAQBFAAEARwABAEkAAQBKAAEASwABAFAAAQBRAAEAlAABAEgAAQCYAAE -AmQABAJUAAEAIXc1lAAABEH8AARL/AAAgCAAAAgIAARwMCAIA8AABGDAAARgxAAAiAAABEHUAARL -1AAEQdgABEvYAARB3AAES9wABHA4AARwACALeJAABHAEIAt40AAEYMgAAIAkAARAHAAEShwAABcs -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 -YCMKaAwIaBT4RtkiAABQ8FtgHitC2QKpDAlpFPlG3CIAAFDwW2Ac+kbYIAwAtqDHJNEPAAAAANow -W2AU9qwAAgAAUPBbYAzdYPUWACIAAHiw+woyIgAAcrD83nwQYBBQMPoWASAFEFAwW7B+LULcLkLb -/0LZIAUQUDD83nUQMhBYMFuweMAg+t28EUEQWDBbgffcoB7dqfrduBFBEFgw/d5tEQAQeDD95ggs -CQB7MFuB8/0KPywAEFgw+AoGIAAQeDAa3UAvps8vps4vptAvptUvptQvptovptwvpuEvpuAvpuIv -puYvpugvpvMvpvIvpvgvpvorpu0rpu8rpvUopuP4pvkv/xBIMCmm0Smm1y2m7P2m7iADEHAw/qbY -IBAQYDD8pvAgARBwMP6m3iAaEGAwLKbS/qYRIBEQYDD8puogHhBoMP2mzCAAEEgwKab2GN5CKKbd -G9zmGd3bHd5BHt4/LqbnLabpKabbK6bW+N0uE/8QWDD7pvQgDxBIMCmm+/iCwiAbEHgwL6bk0Q8A -ixr7vP8gARBgMPsWCiACAirw9cU5Af3tGuD6CgUgMhBYMPwSCSAAEGgwW7Aq8/u/YBAQUDBsEAQS -3P8oIhXIg8Ag0Q8A+t1pEUEQWDBbgaMZ3iEpkX70ChAgABAYMPuXE3IAAFqwHd1QGt4cHN4WLNYI -I6Z++t1dEQAQYDD8vAIBQRBYMFuBmSQm8BzeFB3dqh/ctBveDSMm9hjeDRneDCkm5/gm6SwAEFAw -KibtKibvKib1+ybdL/8QGDAjJtHzJtcgPxBwMC4m7C4m7i8m1v0m2yAREHgw/ybqIA8QaDD9Jvsg -ABBwMC4mzy4mzi4m0C4m1S4m1C4m2i4m3C4m4S4m4C4m4i4m5i4m6C4m8y4m8i4m+P4m+iAGEBgw -8ybjIC4QWDDzJvkgHhBQMPomzCAbEFAw+ibkIBoQGDDzJtIgARAYMPMm3iADEHAw/ibYI/8QcDD+ -JvQgBBBQMFuv3fMmFSAAEBAw0Q8AAABsEAT03SMR/BBQMAoMPxPd2SlC3wlZFCk2HChC4QhoFCg2 -HSRC4wRUFCQ2HhLcwCIi3gICQPI0kCAAEBAw0Q8AbBAE9N3NEAAQEDAiRkUiRkQiRkMiRkIjQksj -RXwjRX0jRX4jRX8DMxQjRYAjRYEjRYIjRYPRDwBsEAYb3cMZ3b8U3cD13b8QABAwMPkWACAQEGgw -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 -lQBj/9ulqye0AGP/09EPK6J5KaKGo7sJuxH4YW9oACBecGhibmlk5KWcl8DRDxmzdKk5KZDdaEA2 -9JBfYAICETByQ59j/8UsspkpooajzPnMEQACAiEw+GEbaAAgZnBoYhtoZCD/AgAL/72VEGP/nGWf -UWP/lqWYJ4QAY//mpZonpQBj/96lm5ewY//XpZwnxADRD6WdJ9UA0Q8A0Q8AAAAAAAAgAxDwDMAA -BiAHPewgAxD0CMAADCAHPewgAxD4PMAAECAHPTwgAxD8BsAAOCAHP1AgAxEACMAAPCAHPewgAxEE -AsAAQCAHP1AgAxEICMAARCAHPewgAxEMCEAATCAHPnwgAxEQCEAAUCAHPnwgAxEUCEAAVCAHPnwg -AxEYCEAAWCAHPnwgAxEcIEAAXCAHPnwgAxEgIEAAcCAHPnwgAxEkIEAAhCAHPnwgAxEoIEAAmCAH -PnwgAxEsIEAArCAHPnwgAxEwIEAAwCAHPnwgAxE0IEAA1CAHPnwgAxE4IEAA6CAHPnwgAxE8DEAA -/CAHPEwgAxFADEABDCAHPEwgAxFEDEABHCAHPEwgAxFIDEABLCAHPEwgAxFMDEABPCAHPEwgAxFQ -DEABTCAHPEwgAxFUDEABXCAHPEwgAxFYDEABbCAHPEwgAxFcCEABfCAHPnwgAxFgCEABgCAHPnwg -AxFkCEABhCAHPnwgAxFoEEABiCAHPnwgAxFsEEABkCAHPnxGQ29FIEREUCBmYWlsZWQgOiBveF9p -ZCAweCV4IHJ4X2lkIDB4JXgKAAAAAAAAAABGQ29FIEREUCBmYWlsZWQgOiBEZHBSZXBvcnQgMHgl -eCBEZHBWYWxpZCAweCV4CgBGQyB4Y2hnIGFsbG9jIGZhaWxlZDogYXZhaWwgJWQKAEZDT0UgRnJl -ZTogc3RpbGwgeWllbGRlZCB3aGVuIGZyZWVpbmcuLi5mbG93Y19pZCAleCBmbG93Y19mbGFncyAl -eCAKAAAAAAAAAAAAAAAAUFJMSSBSc3AgdGltZWRvdXQgOiBmbG93Y19pZCAweCV4IG94X2lkIDB4 -JXggcnhfaWQgMHgleCAKAAAAAAAAAGh3X2JjbTg0ODU2X2NoZWNrIGVudHJ5CgAAAAAAAAAAaHdf -YmNtODQ4NTZfY2hlY2sgbG9vcCAldSAoY2hlY2sgJSN4KQoAAAAAAAAAAAAAWyV1IFBvcnQgY2Fy -ZF1od19iY204NDg1Nl9jaGVjayB1cF9ydW5uaW5nIChwb3J0PSV1IDpsb29wX2NudD0ldSApCgAA -AAAAAAAAAAAAAABod19iY204NDg1Nl9jaGVjayBmYWlsZWQgKGJhZCBDUkMpCgAAAAAAAAAAAAAA -AABQSFkgZmlybXdhcmUgbG9hZCBzdWNjZXNzZnVsIChwb3J0JXUpIHdvdy4uLiEhISEgCgAAAAAA -AAAAAAAAAAAAYmNtODQ4NTZfbG9hZHNlcXVlbmNlOiBTdGFydGVkCgBCcm9hZGNhc3QgbW9kZSB0 -dXJuZWQgT04gCgAAAAAAAGJjbTg0ODU2X2xvYWRzZXF1ZW5jZTogVXBsb2FkIGltYWdlIHRvIFBI -WSBvbi1jaGlwIG1lbW9yeQoAAAAAAABiY204NDg1Nl9sb2Fkc2VxdWVuY2U6IGRvbmUgbG9hZGlu -ZyBpbWFnZSAoMHgleCkKAAAAAAAAAAAAAAAAAAAAV2FpdF9TUElfTE9PUDogcGlkID0gJXUgCgAA -AAAAAABiY204NDg1Nl9sb2Fkc2VxdWVuY2U6RE9XTkxPQUQgRkFJTEVEIChsbyA9ICUjeCwgaGk9 -JSN4LCBjbnQ9JXUpCgAAAAAAAAAAAAAAAAAAAFsldSBQb3J0IGNhcmRdIGJjbTg0ODU2X2xvYWRz -ZXF1ZW5jZSA6RG93bmxvYWQgY29tcGxldGVkIGFmdGVyICV1IGxvb3BzIGZvciBwb3J0ICV1CgAA -AAAAAAAAAAAAAGh3X2NsNDVfaW5pdFsldV0gYWNhcHMgJSN4CgAAAAAAYmNtODQ4NTZfaW5pdFsl -dV0KAAAAAAAAAAAAAAAAAABod19iY204NDg1Nl9sb3dwb3dlclsldV06IGVuYWJsZT0lZAoAAAAA -AAAAAAAAAABod19iY204NDg1Nl9sb3dwb3dlclsldV0sIGZhaWxlZCB0byBzZXQgMzAuMHg0MDBB -IGJpdCA3OyAzMC4weDQwMEUgYml0PTEgYWZ0ZXIgNW1zLCByZWc9JXgKAAAAAABod19iY201NDgy -X2NmZ21kaVsldV0gc2V0dGluZyB0eXBlICV1CgAAAAAAAAAAAAByZW1vdmUgbXVsdGljYXN0IG1h -YyBbJXg6JXg6JXg6JXg6JXg6JXhdIGZyb20gVENBTQoAAAAAAAAAAAAAAAAAaXB2Nl9qb2luX2dy -cDogaWQgJXUsIHJlZl9jbnQgJXUKAAAAAAAAAAAAAAAAAAAAZGhjcDZfdGltZXJfY2I6IHJlc2Vu -ZGluZyBESENQNlNPTElDSVQgYWdhaW4KAAAAZGhjcDZfdGltZXJfY2I6IHNlbmRpbmcgREhDUDZS -RVFVRVNUCgAAAAAAAAAAAAAAZGhjcDZfdGltZXJfY2I6IHNlbmRpbmcgREhDUDZSRU5FVyByZXF1 -ZXN0CgAAAAAAZGhjcDZfdGltZXJfY2I6IHNlbmRpbmcgREhDUDZSRUJJTkQgcmVxdWVzdAoAAAAA -ZGhjcDZfdGltZXJfY2I6IERIQ1A2UkVQTFkgcmN2ZCwgc3RhdGUgJXUKAAAAAAAAZmFpbGVkIHRv -IHJlbmV3L3JlYmluZCBkaGNwdjYgYWRkcmVzcwoAAAAAAAAAAAAAdHlwZSAleCwgeGlkICV4LCB0 -eXBlX3hpZCAleAoAAABpcHY2X211bHRpY2FzdF9xdWVyeV90aW1lcl9jYiBub2RlX2lkICVkCgAA -AAAAAABpcHY2X2dlbmVyYWxfcXVlcnlfdGltZXJfY2IKAAAAAGFkZCBtdWx0aWNhc3QgbWFjIFsl -eDoleDoleDoleDoleDoleF0gaW4gVENBTQoAAGNobmV0X2lwdjZfZGFkX2NiOiBoYW5kbGUgJXUs -IGFkZHJfaWQgJXUsIGFkZHIgc3RhdGUgJXUKAAAAAAAAAABpcHY2IHByZWZlcnJlZCBhZGRyIFsl -MDR4ICUwNHggJTA0eCAlMDR4XQoAAAAAAABTdGFydGluZyBhZGRyIHZhbGlkaXR5IHRpbWVyIGZv -ciAldSBzZWNvbmRzCgAAAABWYWxpZGl0eSBleHBpcmVkIGZvciBhZGRyX2lkICV1CgAAAAAAAAAA -AAAAAAAAAABzZW5kaW5nIGlwdjYgZWNobyByZXBseQoAAAAAAAAAAGNobmV0X2lwdjZfcnNfb3V0 -cHV0OiBsMmRldl9mYyAweCV4CgAAAAAAAAAAAAAAAGNobmV0X2lwdjZfbnNfb3V0cHV0OiBsMmRl -dl9mYyAweCV4LCBmbG93Y19pZCAweCV4LCB2bGFuIGZsYWcgMHgleAoAAAAAAAAAAAAAAAAAY2hu -ZXRfaXB2Nl9uYV9vdXRwdXQ6IGwyZGV2X2ZjIDB4JXgKAAAAAAAAAAAAAAAAY2huZXRfaXB2Nl9t -bGR2Ml9yZXBvcnRfb3V0cHV0OiBsMmRldl9mYyAweCV4CgAAZ2F0aGVyX3Rhc2tzX3RvX3R4X2xp -c3Q6IHRhc2sgaW4gdXNlIFsldV0KAAAAAAAAZ2F0aGVyX3Rhc2tzX3RvX3R4X2xpc3Q6IGlkeCBb -JXVdLCB0YXNrIGZpZCBbMHgleF0sIHRhc2sgc3RhdGUgWzB4JXhdLCB0YXNrIGNvbm4gWzB4JXhd -LCB0YXNrIGZmbGFncyBbMHgleF0sIGNvbm4gZmlkIFsweCV4XSwgZGRwIFslZF0KAAAAAAAAAAAA -Z2F0aGVyX3Rhc2tzX3RvX3R4X2xpc3Q6IHRhc2sgWzB4JXhdLCBzdGF0ZSBbMHgleF0gb24gY29u -biBbMHgleF0gbm90IHZhbGlkIHRvIGdhdGhlciwgc2tpcHBpbmcKAAAAAAAAAAAAAAAAAAAAAGdh -dGhlcl90YXNrc190b190eF9saXN0OiB0YXNrIFsweCV4XSwgc3RpbGwgcXVldWVkIG9uIHR4IHBl -bmRpbmcgbGlzdC4gUmVtb3ZpbmcgaXQuCgAAAAAAAAAAAAAAAGdhdGhlcl90YXNrc190b190eF9s -aXN0OiBjb25uX2ZjLT5mbG93Y19mbGFncyBbMHgleF0sIGxpc3RfZW1wdHkgWzB4JXhdLCBhZGRf -dGFza19jb3VudCBbMHgleF0KAHRvX3R4X2xpc3Q6IG5vIHRhc2sgdG8gY2xvc2UgZm9yIGNvbm4g -WzB4JXhdLCBiYWlsaW5nIHRvIHJlY292ZXJ5IHN0YXRlIFsweCV4XQoAc2V0X2RpZ2VzdDogdXBs -c3VibW9kZToleAoAAAAAAABhdXRoZW50aWNhdGVfdGFyZ2V0OiBLRVlfQ0hBUF9SRVNQIC0gWzB4 -JXgleCV4JXgleCV4JXgleF0KAAAAAAAAYXV0aGVudGljYXRlX3RhcmdldDogS0VZX0NIQVBfUkVT -UCAtIFsweCV4JXgleCV4JXgleCV4JXhdCgAAAAAAAGF1dGhlbnRpY2F0ZV90YXJnZXQ6IEluY29y -cmVjdCBwYXNzd29yZAoAAAAAAAAAAENIQVBfQzogZGlnZXN0IGV4cGFuc2lvbiBlcnJvcgoAQ0hB -UF9OOiBUYXJnZXQgdXNlcmlkIG1pc21hdGNoCgBDSEFQX1I6IGRpZ2VzdCBleHBhbnNpb24gZXJy -b3IKAGlTQ1NJIFNlYy1wYXJhbXMgcmVjZWl2ZWQgaGF2ZSBlcnJvcnMhIQoAAAAAAAAAAFRhcmdl -dCBtb3ZlZCB0ZW1wLiBjb25uICV4LCBzZXNzICV4CgAAAAAAAAAAAAAAAExvZ2luIEZhaWxlZCEh -LiBjb25uX2ZjIFsweCV4XSwgc2Vzc19mYyBbMHgleF0sIHN0YXR1c19jbGFzcyBbMHgleF0KAAAA -AAAAAAAAAAAAUHJvdG9jb2wgRXJyb3IgY2JpdCAlZCB0Yml0ICVkIGNzZyAlZCBuc2cgJWQKAAAA -cmVjdl9ub3BpbjogY3RybCB0YXNrIGFscmVhZHkgcGVuZGluZwoAAAAAAAAAAAAAb2ZsZF9yeF9k -YXRhOiBhaWVlLCBpc2NzaSBjb25uIFsweCV4XSBmb3Igc2VzcyBbMHgleF0sIHR5cGUgWzB4JXhd -IHRyYW5zaXRlZCBpbiB0b2UgbW9kZS4gS2lja2luZyByZWNvdmVyeSAKAAAAAG9mbGRfcnhfZGF0 -YTogY29ubiB0aWQgWzB4JXhdLCByeF9kYXRhLT5zZXEgWzB4JXhdLCByeF9kYXRhLT5sZW4gWzB4 -JXhdLCByeF9kYXRhLT5zdGF0dXMgWzB4JXhdCgAAAAAAAAAAAAAAAAAAAABvZmxkX3J4X2RhdGE6 -IGNzayB7IGlkIFsweCV4XSwgY3NvY2tfb2Zmc2V0IFsweCV4XSwgZGxlbiBbMHgleF0gfQoAAAAA -AAAAAAAAAAAAAGFjdF9lc3Q6IHRjYl9mYyBbMHgleF0sIGZsb3djX2ljb25uX2ZsYWdzIFsweCV4 -XQoAAAAAAAAAAAAAAAAAAABhY3RfZXN0YWI6IHRjYl9mYy0+Zmxvd2NfYnVmIFsweCV4XSwgdGNi -X2ZjLT5mbG93Y190eXBlIFsweCV4XSB0Y2JfZmMtPmZsb3djX3N0YXRlIFsweCV4XSwgbnBhZ2Vz -IFsweCV4XSwgZmxvd2NfdHBfc25kX21heCBbMHgleF0KAAAAAAAAAAAAAAAAAABhY3RfZXN0YWI6 -IGF0aWQgWzB4JXhdLCB0aWQgWzB4JXhdLCBvcCBbMHgleF0sIHJjdl9pc24gWzB4JXhdLCBzbmRf -aXNuIFsweCV4XSwgY3NvY2stPmZsb3djX3N0YXRlIFsweCV4XSwgdGNwX29wdCBbMHgleF0sIHRj -Yl9mYy0+Zmxvd2NfaWQgWzB4JXhdIAoAAAAAAAAAAAAAAAAAY3NrX2ZjLT5mbG93Y19jc29ja19j -b29raWUgWzB4JXhdIAoAAAAAAAAAAAAAAAAAbmV0X2wyZGV2X2ZpbmRfYnlfYWRkcjY6IGwyZGV2 -X2ZjLT5mbG93Y19pZCBbMHgleF0sIGwyZGMtPmxwb3J0IFsldV0sIGwyZF9mYy0+Zmxvd2NfaWQg -WzB4JXhdLCBhZGRyIFslMDR4OiUwNHg6JTA0eDolMDR4XQoAAAAAAABjaG5ldF9xdWV1ZV94bWl0 -OiBmYy0+Zmxvd2NfaWQgWzB4JXhdLCBidWZfbGVuIFsweCV4XSwgYnVmZmVyZWQgWzB4JXhdLCBm -aWZvLm51bV9ieXRlcyBbJTB4XQoAAABuZXRpZl9kb19kaGNwdjY6IHdyLT5wYXJhbS52bGFuaWQg -WyV1XSwgbDJkZXZfZmMtPmZsb3djX25ldF9sMmRldl92bGFuZGV2IFsweCV4XQoAAAAAAAAAAAAA -AAAAAABuZXRpZl9kb19kaGNwdjY6IGlwdjYgbm90IGVuYWJsZWQKAAAAAAAAAAAAAAAAAABkaGNw -IHJlc3AgdG8gZHJpdmVyCgAAAAAAAAAAAAAAAGwzaW42X2Rldl9jb25maWc6IHdyLT5wYXJhbS52 -bGFuaWQgWyV1XSwgbDJkZXZfZmMtPmZsb3djX25ldF9sMmRldl92bGFuZGV2IFsweCV4XQoAAAAA -AAAAAAAAAAAAAGwzaW42X2Rldl9jb25maWc6IGlwdjYgbm90IGVuYWJsZWQKAAAAAAAAAAAAAAAA -AG5ldF9sM2luNl9kZXZfY29uZmlnOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBhZGRyZXNz -IGFscmVhZHkgdXNlZCBieSBwb3J0ICVkLCBhZGRyX2lkICVkCgAAAG5ldF9sM2luNl9kZXZfY29u -ZmlnOiAgYWRkciBbMHglMDR4JTA0eCUwNHglMDR4XSwgcmVmX2NudCBbMHgleF0gaW4gdXNlCgAA -AAAAAAAAbDNpbjRfZGV2X2NvbmZpZzogd3ItPnBhcmFtLnZsYW5pZCBbJXVdLCBsMmRldl9mYy0+ -Zmxvd2NfbmV0X2wyZGV2X3ZsYW5kZXYgWzB4JXhdCgAAAAAAAAAAAAAAAAAAbmV0X2wzaW40X2Rl -dl9jb25maWc6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIGFkZHJlc3MgYWxyZWFkeSB1c2Vk -IGJ5IHBvcnQgJWQKAAAAAAAAAAAAAAAAAAAAbmV0X2wzaW40X2Rldl9jb25maWc6ICBhZGRyIFsw -eCV4XSwgbWFzayBbMHgleF0sIGd3IFsweCV4XSwgcmVmX2NudCBbMHgleF0gaW4gdXNlCgAAAAAA -AAAAAAAAAAAAbDJkZXZfZmMgWzB4JXggXSBGYWlsZWQgdG8gc3RhcnQgdGltZXIgZm9yIGlwdjQg -ZGFkCgAAAAAAAAAAAAAAAHdyaF9jaG5ldF9pZmNvbmY6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgl -eF0sIGwyZGV2X2ZjLT5mbG93Y190eXBlIFslMHhdLCBpZmNvbmZfd3ItPnN1Ym9wIFsweCV4XQoA -AAAAAAAAAAAAAAAAAAB3cmhfY2huZXRfaWZjb25mOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhd -LCB1bmtub3duIHN1Ym9wIFsweCV4XQoAAAAAAAAAAAAAAAAAAHdyaF9jaG5ldF9pZmNvbmY6IGwy -ZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIHJjICVkCgAAAAAAAAAAAAAAAABuZXRpZl9pcF9jb25m -bGljdF90aW1lcl9jYjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgZXhwZWN0aW5nIHRpbWVy -IGhhbmRsZSBbJWRdLCBidXQgZ290IGhhbmRsZSBbJWRdIGV4cGlyeQoAbmV0aWZfaXBfY29uZmxp -Y3RfdGltZXJfY2I6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIGluZGV2Y3R4dC0+c3RhdGUg -WyVkXSwgaW5kZXZjdHh0LT5yZXRyeV9jbnQgWyVkXQoAAAAAAAAAAG5ldGlmX2lwX2NvbmZsaWN0 -X3RpbWVyX2NiOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBpbmRldmN0eHQgWzB4JXhdLCBp -biBmcmVlIHN0YXRlCgAAAAAAAAAAAGNtZGhfY2huZXRfaWZhY2U6IGZjIFsweCV4XSwgZmMtPmZs -b3djX2lkIFsweCV4XSwgZmMtPmZsb3djX3R5cGUgWzB4JXhdLCBwIFsweCV4XSwgbGVuMTYgWyV1 -XSwgbG9jIFsweCV4XQoAAAAAAABjbWRoX2NobmV0X2lmYWNlOmwyZGV2X2ZjIFsweCV4XSwgbDJk -ZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgbDJkZXYtPmZsb3djX3R5cGUgWyV1XSwgbDJkZXZfZmMt -PmZsb3djX25ldF9sMmRldl9mbGFncyBbJTB4XQoAAAAAAGNtZGhfY2huZXRfaWZhY2U6IHIyWzBd -OiV1IHIyWzFdOiV1LCBzdWJvcDoweCV4CgAAAAAAAAAAAAAAAAAAAABjbWRoX2NobmV0X2lmYWNl -OiBsMmRldl9mYy0+Zmxvd2NfbmV0X2wyZGV2X2ZsYWdzIGNoYW5nZWQgZnJvbSBbJTB4XSB0byBb -JTB4XSwgcmMgWyVkXQoAAAAAAAAAAABjaG5ldF9sMmRldl91cF9tYl9jYjogcmMgWyVkXSwgcG9y -dCBbJXVdLCBzdGF0ZSBbJXVdLCBjb29raWUgWzB4JXhdCgAAAAAAAAAAAAAAAGRoY3BfcHJvY2Vz -c19jYjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgZGhjdHh0LT5zdGF0ZSBbJTB4XSwgZGhj -dHh0LT5ydHJ5X2NudCBbJXVdCgAAAAAAAAAAAGRoY3BfdGltZXJfY2I6IERIQ1BESVNDT1ZFUiBz -ZW50LCBidXQgbm8gcmVwbHkgZnJvbSBhbnkgcG9zc2libGUgc2VydmVyIG9uIHRoZSBuZXR3b3Jr -LiBSZXRyeWluZyBhZ2FpbgoAAAAAAAAAAABkaGNwX3RpbWVyX2NiOiBsMmRldl9mYy0+Zmxvd2Nf -aWQgWzB4JXhdLCBzZW5kaW5nIERIQ1BESVNDT1ZFUiBmb3IgZGhjdHh0IFsweCV4XSBvbiBwaWQg -WyVkXQoAAABkaGNwX3RpbWVyX2NiOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBESENQT0ZG -RVIgcmVjZWl2ZWQgZm9yIGRoY3R4dCBbJXhdIHBpZCBbJWRdCgAAAAAAAAAAAABkaGNwX3RpbWVy -X2NiOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCAgREhDUEFDSyByZWNlaXZlZCBmb3IgZGhj -dHh0IFsleF0sIHBpZCBbJWRdCgAAAAAAAAAAAABkaGNwX3RpbWVyX2NiOiBsMmRldl9mYy0+Zmxv -d2NfaWQgWzB4JXhdLCBkaGN0eHQtPmlwYWRkciBbMHgleF0KAAAAAAAAAAAAAAAAAAAAAGRoY3Bf -dGltZXJfY2I6IHN0YXJ0aW5nIHRpbWVyIGZvciBsZWFzZSBbJXVdIHNlY29uZHMKAAAAAAAAAAAA -AABkaGNwX3RpbWVyX2NiOiBsZWFzZSB0aW1lIG9mIFsldV0gc2Vjb25kcyBleHBpcmVkLCBzZW5k -aW5nIHJlbmV3IHJlcXVlc3QKAAAAAAAAAGRoY3BfdGltZXJfY2I6IGwyZGV2X2ZjLT5mbG93Y19p -ZCBbMHgleF0sIG5vIHJlcGx5IGZyb20gZGhjcCBzZXJ2ZXIsIHRpbWluZyBvdXQKAAAAAAAAAAAA -AAAAAAAAAGF1dGhfbmVnb19zZWN1cml0eTogc2VuZF9mbGFnIFsweCV4XSwgYXV0aF9wb2xpY3kg -WzB4JXhdCgAAAAAAAABhdXRoX25lZ29fc2VjdXJpdHk6IEtFWV9DSEFQX1JFU1AgLSBoYXNoWzB4 -JXgleCV4JXgleCV4JXgleF0KAAAAYXV0aF9uZWdvX3NlY3VyaXR5OiBLRVlfQ0hBUF9SRVNQIC0g -aGFzaFsweCV4JXgleCV4JXgleCV4JXhdCgAAAGF1dGhfbmVnb19zZWN1cml0eTogS0VZX0NIQVBf -UkVTUCAtIGVycm9yIGVuY29kaW5nIHRvIGhleAoAAAAAAABhdXRoX25lZ29fc2VjdXJpdHk6IEtF -WV9DSEFQX1JFU1AgLSBlbGVuIFsweCV4XQoAAAAAAAAAAAAAAAAAAAAAYXV0aF9uZWdvX3NlY3Vy -aXR5OiBLRVlfQ0hBUF9DSEFMIC0gZXJyb3IgZW5jb2RpbmcgdG8gaGV4CgAAAAAAAGF1dGhfbmVn -b19zZWN1cml0eTogS0VZX0NIQVBfQ0hBTCAtIGVsZW4gWzB4JXhdCgAAAAAAAAAAAAAAAAAAAABs -b2dvdXRfdGltZWRvdXQ6IGxvZ291dCByZXF1ZXN0IHRpbWVkb3V0LCBwb3NzaWJsZSBuZXR3b3Jr -IGlzc3Vlcy4gRm9yY2VmdWxseSBicmVha2luZyBwYXRoIGZvciBzZXNzIFsweCV4XQoAAAAAcGlu -Z190YXJnZXQ6IHBpbmcgdGltZW91dCwga2lja2luZyByZWNvdmVyeSBmb3Igc2VzcyBbMHgleF0K -AAAAAGNzb2NrX2ZhaWxlZDogY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIGNza19mYy0+Zmxvd2Nf -c3RhdGUgWzB4JXhdLCBzZXNzX2ZjLT5mbG93Y19pZCBbMHgleF0sIHNlc3NfZmMtPmZsb3djX3N0 -YXRlIFsweCV4XSwgZXZ0IFsweCV4XQoAAAAAAAAAAAAAAGNobmV0X2ZpbmRfaXA2X2wydF9lbnRy -eTogZmluZCBwcmVmaXggbWF0Y2ggWyUwNHggJTA0eCAlMDR4ICUwNHhdCgAAAAAAAAAAAAAAAAAA -Tm8gcm91dGVyIGNvbmZpZ3VyZWQsIGwyZGV2X2ZjLT5mbG93Y19pZCAweCV4CgAAClJvdXRlciBs -aWZlICV1IGV4cGlyZWQuIGRlbGV0aW5nIHJvdXRlciBbJTA0eCAlMDR4ICUwNHggJTA0eF0KAFVz -aW5nIHJvdXRlciBbJTA0eCAlMDR4ICUwNHggJTA0eF0gdG8gcmVhY2ggWyUwNHggJTA0eCAlMDR4 -ICUwNHhdCgAAAAAAAAAAAAAAAAAAbDJ0ZW50IFslMHhdLCBsMnRlbnQtPmlkeCBbJWRdCgByYyBb -JWRdLCBjc2tfZmMgWzB4JXhdLCBjc2tfZmMtPmZsb3djX2lkIFsweCV4XQoAAAAAAAAAAAAAAAAA -AAAAY3NvY2tfYWxsb2M6IHNyY19hZGRyOjB4JXgsIGRzdF9hZGRyOjB4JXgKAAAAAAAAY29ubmVj -dGlvbiBvdmVyIGlwdjYsIGwyZGV2IGZsb3djX2lkIDB4JXgKAAAAAAAAY3NrX2FsazogSW52YWxp -ZCBsMmRldjoweCV4CgAAAABjc2tfYWxrOiBuZXh0OiV1LCBpZHg6JXUsIHVzZWQ6JXUsIHNwb3J0 -OiV1CgAAAABjc29ja19hbGxvYzogY3NvY2tfc3JjX2FkZHI6MHgleCwgY3NvY2tfZHN0X2FkZHI6 -MHgleAoAAAAAAAAAAAAAY3NvY2tfYWxsb2M6IHR4X2NoIFsweCV4XSwgbHBvcnQgWzB4JXhdLCBj -b29raWUgWyUwOHhdCgAAAAAAAAAAAGNzb2NrX2FsbG9jOiBhdmFpbGFibGUgWyV1XSwgbmNzb2Nr -IFsldV0sIHBvczphdGlkIFsweCV4XSwgY3NrX2ZjIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19pZCBb -MHgleF0sIHNwb3J0IFsldV0KAAByZWNvdmVyeV90aW1lb3V0OiBzZXNzIGlkIFsweCV4XSBzdGF0 -ZSBbMHgleF0sIHJjb3VudCBbJWRdLCBmbGFncyBbMHgleF0KAAAAAAAAAHJlY292ZXJ5X3RpbWVv -dXQ6IHNlc3MgaWQgWzB4JXhdIGluIGxvZ291dCwgYWJvcnQgdGhlIGNvbm5lY3Rpb24KAAAAAAAA -AAAAAAAAAAAAcmVjb3ZlcnlfdGltZW91dDogc2Vzc19mYy0+Zmxvd2NfZm9pc2NzaV9zZXNzX2Zs -YWdzIFsweCV4XSwgY29ubmVjdGlvbiByZXF1ZXN0IHBlbmRpbmcsIGJhaWxpbmcgb3V0CgAAAAAA -AAAAAAAAAGZvaXNjc2k6IFJlY292ZXJ5IHRpbWVkIG91dCBhZnRlciBbJXVdIHJldHJ5LCBiYWls -aW5nIG91dAoAAAAAAABUQ1AgY29ubiBlc3RhYmxpc2htZW50IGZhaWxlZCAlZAoAAAAAAAAAAAAA -AAAAAABkaXNjb3ZlcnlfZGF0YTogc2VzcyB7IGlkIFsweCV4XSwgZmxhZ3MgWzB4JXhdLCBidWZm -ZXJlZCBbJXVdLiB9CgAAAAAAAAAAAAAAAAAAAGRpc2NvdmVyeV9kYXRhOiBzZXNzIHsgaWQgWzB4 -JXhdIH0sIHVscHR4Y2ggWyV1XSBubyBjcmVkaXRzIGF2YWlsYWJsZSwgcmVzY2hlZHVsaW5nIHJl -cXVlc3QuCgAAAEludmFsaWQgb3Bjb2RlIDB4JXggaW4gY3RybCBwYXRoCgAAAAAAAAAAAAAAAAAA -AEREUCBlcnJvciBbMHgleF0sIGFib3J0aW5nIGNvbm5uIFsweCV4XQoAAAAAAAAAAHJ4X2RhdGFf -ZGRwOiBSZXNwb25jZSByZWNpZXZlZCBmb3IgdGFzayBbMHgleF0gd2hpbGUgaW52YWxpZCB0YXNr -IG9yIGNvbm5lY3Rpb24gc3RhdGUuIHRhc2sgc3RhdGUgWzB4JXhdLCBjb25uIHN0YXRlIFsweCV4 -XSwgY29ubiBmbGFncyBbMHgleF0KAGloZHI6IFJlc3BvbmNlIHJlY2lldmVkIGZvciB0YXNrIFsw -eCV4XSB3aGlsZSBpbnZhbGlkIHRhc2sgb3IgY29ubmVjdGlvbiBzdGF0ZS4gdGFzayBzdGF0ZSBb -MHgleF0sIGNvbm4gc3RhdGUgWzB4JXhdLCBjb25uIGZsYWdzIFsweCV4XQoAAAAAAAAAAGloZHI6 -IEludmFsaWQgdGFzayBzdGF0ZSAweCV4IGZvciB0YXNrIDB4JXgsIGl0dCBbMHgleF0sIG9wYyBb -MHgleF0KAAAAAAAAAAAAAAAAcHJvY2Vzc190bWZfcmVzcG9uc2U6IGJ1ZmZlcmVkIFsweCV4XSwg -aXN0YXNrX2ZjLT5mbG93Y19idWYtPnNjaGVkX25vZGUubmV4dCBbMHgleF0sIGlzdGFza19mYyBb -MHgleF0sIGlzdGFza19mYy0+Zmxvd2NfaWQgWzB4JXhdCgAAAAAAAAAAAAAAAAAAcHJvY2Vzc190 -bWZfcmVzcG9uc2U6IHdyIG9wIFsweCV4XSwgdG1mIG9wIFsweCV4XQoAAAAAAAAAAAAAAAAAAHRt -Zl9yZXNwOiBmbG93YzoweCV4LCBpZDoweCV4LCBzdGF0ZToweCV4LCB5aWVsZDoweCV4CgAAAAAA -AAAAAAB0bWZfcmVzcDogdF90YXNrOjB4JXggZnJlZWQuCgAAAHNjc2lfY21kX3Jlc3A6IGZsb3dj -OjB4JXgsIGlkOjB4JXgsIHN0YXRlOjB4JXgsIHlpZWxkOjB4JXgKAAAAAABkYXRhX2luX3Jlc3A6 -IGZsb3djOjB4JXgsIGlkOjB4JXgsIHN0YXRlOjB4JXgsIHlpZWxkOjB4JXgKAAAAAAAAcmV0dXJu -X3BlbmRpbmdfdGFzazogY29va2llIFsweCUwOHhdLCBbMHglMDh4XQoAcmV0dXJuX3BlbmRpbmdf -dGFzazogZGVsYXkgcHJvY2Vzc2luZywgY29ubiBmbGFncyBbMHgleF0KAAAAAAAAAHJldHVybl9w -ZW5kaW5nX3Rhc2s6IERvbmUgc2VuZGluZyB0YXNrIGVycm9yIHRvIGhvc3QsIHVscHR4bGVuMTYg -WyV1XQoAAAAAAAAAAAAAcmV0dXJuX3BlbmRpbmdfdGFzazogZGVxdWV1ZSB0YXNrIFsweCV4XSwg -c3RhdGUgWzB4JXhdIGZyb20gdHhfbGlzdAoAAAAAAAAAAAAAAAByZXR1cm5fcGVuZGluZ190YXNr -OiBhbGwgdGFza3MgcmV0dXJuZWQsIHJlY292ZXJ5IHN0YXRlIHRyYW5zIHRvIFsweCV4XQoAAAAA -AAAAAGNsZWFyX2RkcF9tYXA6IGlzdGFza19mYyBbMHgleF0sIGlzdGFza19mYy0+Zmxvd2NfaWQg -WzB4JXhdIGJ1ZmZlcmVkICV1CgAAAAAAAAAAY2xlYXJfZGRwX21hcDogaXN0YXNrX2ZjLT5mbG93 -Y19pdGFza19ucHBvZCAldSwgbnBwb2QgJXUsIHBwZGFkZHIgWzB4JXhdCgAAAAAAAABjbGVhcl9k -ZHBfbWFwOiBhbGwgcmV0dXJuZWQgdGFza3MgZGRwIGNsZWFyZWQsIHJlY292ZXJ5IHN0YXRlIHRy -YW5zIHRvIFsweCV4XQoAAHdyaF9mb2lzY3NpX25vZGU6IG5vZGVfd3ItPmZsb3dpZF9sZW4xNiAy -IFsleF0KAHdyaF9mb2lzY3NpX2NoYXA6IGlkX2xlbiBbJXhdLCBzZWNfbGVuIFsleF0KAAAAAHdy -aF9mb2lzY3NpX2NoYXA6IHRndF9pZF9sZW4gWyV4XSwgdGd0X3NlY19sZW4gWyV4XQoAAAAAAAAA -AAAAAABzZXNzaW9uX2Jsb2NrOiBzZXNzX2ZjLT5mbG93Y19pZCBbMHgleF0sIHNlc3NfZmMtPmZs -b3djX3N0YXRlIFsweCV4XSwgY29ubl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjb25uX2ZjLT5mbG93 -Y19zdGF0ZSBbMHgleF0sIGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2tfZmMtPmZsb3djX3N0 -YXRlIFsweCV4XQoAAAAAAAAAAAAAAAAAAABzZXNzaW9uX3VuYmxvY2s6IHNlc3NfZmMtPmZsb3dj -X2lkIFsweCV4XSwgc2Vzc19mYy0+Zmxvd2Nfc3RhdGUgWzB4JXhdLCBjb25uX2ZjLT5mbG93Y19p -ZCBbMHgleF0sIGNvbm5fZmMtPmZsb3djX3N0YXRlIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19pZCBb -MHgleF0sIGNza19mYy0+Zmxvd2Nfc3RhdGUgWzB4JXhdCgAAAAAAAAAAAAAAAABzdGFydF9sb2dv -dXQ6IFNlc3MtaWQgWzB4JXhdIGFscmVhZHkgbG9nZ2luIG91dC4KAAAAAAAAAAAAAAAAAAAAcGVl -cl9jb246IGNza19mYyA9PiBmbG93aWQgWzB4JXhdLCBmbG93Y19idWYgWzB4JXhdCgAAAAAAAAAA -AAAAAGFsbG9jX3Nlc3M6IGxvZ2luX3JldHJ5IFslZF0sIHJlY292X3RpbWVvdXQgWyVkXQoAAAAA -AAAAAAAAAAAAAABmb2lzY3NpX2N0cmw6IHN1Ym9wIFsweCV4XSwgc2Vzc190eXBlX3RvX2VybCBb -MHgleF0sIHNlc3NfdHlwZSBbMHgleF0KAAAAAAAAAAAAAGZvaXNjc2lfY3RybDogcmVjZWl2ZWQg -YmxvY2tlZCBmcm9tIGRyaXZlciwgdHJpZ2dlcmluZyByZXR1cm4gdGFza3Mgbm93LgoAAAAAAAAA -V0FUQ0hET0dfZGlzcGF0Y2ggY2FzZSB0byBhdm9pZDogQ291bnRlcl93YXRjaGRvZyAldSBDb3Vu -dGVyX3NjaGVkICV1IAoAAAAAAAAAAABXQVRDSERPRzogZGV2aWNlIHNodXRkb3duCgAAAAAAAFdB -VENIRE9HOiBwb3J0WyV1XSBwYXVzZSB3YXRjaGRvZyB0aW1lb3V0CgAAAAAAAFdBVENIRE9HOiBi -eXBhc3MgdGltZW91dAoAAAAAAAAAV0FUQ0hET0c6IEZMUiAtIG5vdCBpbXBsZW1lbnRlZCB5ZXQK -AAAAAAAAAAAAAAAAV0FUQ0hET0c6IHRlbXBlcmF0dXJlIG9mICVkQyBleGNlZWRzIHRocmVzaG9s -ZCBvZiAlZEMKAAAAAAAAAAAAAGZpbHRlcjogcG9yZ3JhbW1pbmcgdGlkICV1IChsZSB0Y2FtIGlu -ZGV4ICV1KS4uLgoAAAAAAAAAAAAAAAAAAABmaWx0ZXI6IHJlcXVlc3RpbmcgY29tcGxldGlvbi4u -LgoAAAAAAAAAAAAAAAAAAABjaG5ldF9pcHY2X2xpbmtfY2hhbmdlX25vdGlmeTogbDJkZXZfZmMg -WzB4JXhdLCBzdGF0dXMgJXUKAAAAAAAAbDJkZXZfc2VuZF9wb3J0X2V2ZW50OiB3ciBbMHgleF0g -cGVuZGluZyBvbiBwb3J0IFslZF0sIGN1cnJlbnQgdHJ5IFslZF0KAAAAAAAAAABkY2J4X2llZWVf -Y21kaFsldV0gd3JpdGUgb25seSBwZXJtaXR0ZWQgb24gbG9jYWwgY29uZgoAAAAAAAAAAAAAZGNi -eF9pZWVlX2NtZGhbJXVdIGNhbm5vdCB3cml0ZSAldSBhcHBzIChNQVg6ICV1KQoAAAAAAAAAAAAA -AAAAAGRjYnhfaWVlZV9jbWRoWyV1XSByZXF1ZXN0aW5nIERDQl9JRUVFX0NNRAoAAAAAAGRjYnhf -aWVlZV9jbWRoWyV1XSB1bmtub3duIGZlYXR1cmUgd3JpdGU6ICV1CgAAAGRjYnhfaWVlZV9jbWRo -WyV1XSB1bmtub3duIGZlYXR1cmUgcmVhZDogJXUKAAAAAGNhbm5vdCBhbGxvY2F0ZSBvZmZsb2Fk -ZWQgZmlsdGVyIGNvbm5lY3Rpb24KAAAAAGNhbm5vdCBhbGxvY2F0ZSBvZmZsb2FkZWQgZmlsdGVy -IElQdjYgY29ubmVjdGlvbgoAAAAAAAAAAAAAAAAAAABkaXNwYXRjaF9kZWZlcnJlZF9jbGFzc19j -bGFzc19zaGFwaW5nWyV1OiV1XTogbGlzdF9lbXB0eQoAAAAAAAAAbG9vcGJhY2sgYnVmZmVyIGdy -b3VwWyV1XSBpcyBkaXNhYmxlZAoAAAAAAAAAAAAAaW52YWxpZCBidWZmZXIgZ3JvdXBbJXVdIGNv -bmZpZ3VyYXRpb246IG10dSAldSBsd20gJXUgaHdtICV1IGR3bSAldQoAAAAAAAAAAAAAAABmYyAl -dSB2ZiAldSBnb3QgaXZmPTB4JXgscmFuZ2U6ICUjeC0lI3ggKCV1LyV1IHVzZWQpCgAAAAAAAAAA -AAAAVkkgJXUgY2Fubm90IGdldCBSU1Mgc2xpY2U6IE5vIG1vcmUgc2xpY2VzIGF2YWlsYWJsZSAo -dXNlZCAldS8ldSkKAAAAAAAAAAAAAAAAAABwZm4gJXUgdmZuICV1IHdpdGggcG9ydCBtYXNrIDB4 -JXggY2Fubm90IGFjY2VzcyBwb3J0ICV1LCByZXQgJWQKAAAAAAAAAAAAAAAAAAAAAHBmbiAldSB2 -Zm4gJXUgY291bGQgbm90IGFsbG9jYXRlIHZpaWQsIHJldCAlZAoAAHBmbiAldSB2Zm4gJXUgY291 -bGQgbWFwIHZpaWQgIDB4JXggdG8gZmxvd2MsIHJldCAlZAoAAAAAAAAAAAAAAABwZm4gJXUgdmZu -ICV1IGNvdWxkIG5vdCBhbGxvY2F0ZSB1d2lyZSBmdW5jICVkIG1hYyBhZGRyLCByZXQgJWQKAAAA -AAAAAAAAAAAAAAAAAG1paV9pbml0WyV1XTogYWNhcHMgMHgleAoAAAAAAAAAbWlpX2ZvcmNlX3Nw -ZWVkWyV1XTogcmNhcHMgMHgleAoAAAAAAAAAAAAAAAAAAAAAbWlpX3Bkb3duWyV1XTogcG93ZXJk -b3duIGVuICV1CgBwb3J0X2NtZF9oYW5kbGVyOiB1bmtub3duIHUuZGNiLnR5cGUgMHgleAoAAAAA -AABwb3J0WyV1OjB4JTAyeDoweCUwMnhdOiB1bmtub3duIGFjdGlvbiAweCV4CgAAAABwb3J0WyV1 -OjB4JTAyeDoweCUwMnhdOiB1bmtub3duIHJlYWQgYWN0aW9uIDB4JXgKAAAAAAAAAAAAAAAAAAAA -Y3BsX2Vycl9ub3RpZnk6IHRpZCAldSBjcGwgMHglMDh4JTA4eAoAAAAAAAAAAAAAY3BsX2Vycl9u -b3RpZnk6IHRpZCAldSBjcGwgMHglMDh4JTA4eCAweCUwOHglMDh4CgAAAAAAAAAAAAAAAAAAAGNw -bF9lcnJfbm90aWZ5OiB0aWQgJXUgbGVuICV1CgAARkNPRSBGcmVlOiBzdGlsbCB5aWVsZGVkIHdo -ZW4gZnJlZWluZy4uLmZsb3djX2lkICV4IGZsb3djX2ZsYWdzICV4IAoAAAAAAAAAAAAAAABGQ09F -IEJQIFdSIEVSUjogV1Igd2l0aCBjb29raWUgJXgleCBlcnJvcmVkIGJhY2sgCgAAAAAAAAAAAAAA -AAAAc2NzaV9hYm9ydDogRW50ZXJpbmcgQWJvcnRfdGFzaywgYnVmZmVyZWQgWyV1XQoAc2NzaV9h -Ym9ydDogcmMgWzB4JXhdIHJlZiB0YXNrIG5vdCBvdXRzdGFuZGluZwoAc2NzaV9hYm9ydDogaWRh -dGEtPm9wIFsweCV4XSwgZmxhZ3MgWzB4JXhdLCBmdW5jIFsweCV4XSwgbHVuX2lkeCBbMHgleF0K -AAAAAAAAAABzY3NpX2Fib3J0OiB3ci0+aXFpZCBbMHgleF0sIGlzdGFza19mYy0+Zmxvd2Nfc2dl -X2lxaWQgWzB4JXhdLCBpc3Rhc2tfZmMgdGFzayBmbGFncyBbMHgleF0KAAAAAABzY3NpX2FicnQ6 -dGFzayBmbG93Y1sweCV4XSwgdG1mX2xpc3RfZW1wdHk6CgAAAABzY3NpX2Fib3J0OiBjb25uIFsw -eCV4XSwgY21kc24gWzB4JXhdLCBzZW50X2NtZHNuIFsweCV4XSwgbWF4X2NtZHNuIFsweCV4XSwg -aXR0IFsweCV4XQoAAAAAAAAAAABhYm9ydC9jbG9zZSBXUiB3aXRoIGNvb2tpZSAweCVseCB3YXMg -aXNzdWVkIG9uIHNzbiAweCV4IGluIHdyb25nIHN0YXRlIDB4JXgKAAAAAGFib3J0IFdSIG9uIHNz -biAweCV4IGRpZCBub3QgZmluZCBXUiB3aXRoIGNvb2tpZSAweCV4JXgKAAAAAAAAAABjbG9zZSBX -UiB3aXRoIGNvb2tpZSAweCVseCBvbiBzc24gMHgleDtkaWQgbm90IGZpbmQgV1Igd2l0aCBjb29r -aWUgMHglbHgKAAAAAAAAAGFib3J0IFdSIG9uIHNzbiAweCV4IHdhcyBpc3N1ZWQgb24geGNoZyAw -eCV4IHdpdGggcnhfaWQgMHgleCBpbiB3cm9uZyBzdGF0ZSAweCV4CgAAAAAAAAAAAAAAAAAAAHNj -c2lfbHVyOiBFbnRlcmluZyBMVVIgaGFuZGxlciwgYnVmZmVyZWQgWyV1XQoAAHNjc2lfbHVyOiBp -ZGF0YS0+b3AgWzB4JXhdLCBmbGFncyBbMHgleF0sIGZ1bmMgWzB4JXhdLCBsdW5faWR4IFsweCV4 -XQoAAAAAAAAAAAAAc2NzaV9sdXI6IHdyLT5pcWlkIFsweCV4XSwgaXN0YXNrX2ZjLT5mbG93Y19z -Z2VfaXFpZCBbMHgleF0sIGlzdGFza19mYyB0YXNrIGZsYWdzIFsweCV4XQoAAAAAAAAAc2NzaV9s -dXI6IGNvbm4gWzB4JXhdLCBjbWRzbiBbMHgleF0sIHNlbnRfY21kc24gWzB4JXhdLCBtYXhfY21k -c24gWzB4JXhdLCBpdHQgWzB4JXhdCgAAAAAAAAAAAAAAZGNieF9hcHBseV9hcHBfY2ZnWyV1XU5F -VyBBUFAgVExWIAoAAAAAAAAAAAAAAAAAZGNieF9jZWVfZmVhX3NtWyV1XSBGZWF0dXJlWyV1XSBG -RUFUVVJFX0xJTktVUAoAZGNieF9jZWVfZmVhX3NtWyV1XSBGZWF0dXJlWyV1XSBTRVRfTE9DQUxf -UEFSQU1FVEVSUwoAAAAAAAAAAAAAAGRjYnhfY2VlX2ZlYV9zbVsldV0gRmVhdHVyZVsldV0gRkVB -VFVSRV9OT19BRFZFUlRJU0UKAAAAAAAAAAAAAABkY2J4X2NlZV9mZWFfc21bJXVdIEZlYXR1cmVb -JXVdIEZFQVRVUkVfUEVFUl9OT1RfQURWRVJUSVNFX0RDQlgKAAAAAAAAAAAAAAAAAAAAAGRjYnhf -Y2VlX2ZlYV9zbVsldV0gRmVhdHVyZVsldV0gRkVBVFVSRV9QRUVSX05PVF9BRFZFUlRJU0VfRkVB -VFVSRQoAAAAAAAAAAAAAAAAAZGNieF9jZWVfZmVhX3NtWyV1XSBGZWF0dXJlWyV1XSBGRUFUVVJF -X1VQREFURV9PUEVSX1ZFUlNJT04KAAAAAGRjYnhfY2VlX2ZlYV9zbVsldV0gRmVhdHVyZVsldV0g -RkVBVFVSRV9QRUVSX1VQREFURV9PUEVSX1ZFUlNJT04KAAAAAAAAAAAAAAAAAAAAZGNieF9jZWVf -ZmVhX3NtWyV1XSBGZWF0dXJlWyV1XSBGRUFUVVJFX0dFVF9QRUVSX0NGRwoAAAAAAAAAAAAAAGRj -YnhfY2VlX2ZlYV9zbVsldV0gRmVhdHVyZVsldV0gRkVBVFVSRV9DRkdfTk9UX0NPTVBBVElCTEUK -AAAAAABkY2J4X2NlZV9mZWFfc21bJXVdIEZlYXR1cmVbJXVdIEZFQVRVUkVfVVNFX0xPQ0FMX0NG -RwoAAAAAAAAAAAAAZGNieF9jZWVfZmVhX3NtWyV1XSBGZWF0dXJlWyV1XSBGRUFUVVJFX1VTRV9Q -RUVSX0NGRwoAAAAAAAAAAAAAAGRjYnhfY2VlX2ZlYV9zbVsldV0gRmVhdHVyZVsldV0gRkVBVFVS -RV9GRUFUVVJFX0RJU0FCTEVECgAAAAAAAABkY2J4X2NlZV9mZWFfc21bJXVdIEZlYXR1cmVbJXVd -IEZFQVRVUkVfRVJST1JfQ0hBTkdFCgAAAAAAAAAAAAAAZGNieF9pZWVlX3Byb2Nlc3NbJXVdIHJl -Y2VpdmVkIEJXcyBkbyBub3QgYWRkIHVwIHRvIDEwMCEKAAAAAAAAAFdBUk5JTkc6IHJlY2VpdmVk -IEFwcCBUTFYgY29udGFpbnMgbW9yZSB0aGFuRlcgY2FuIGhhbmRsZSAobWF4OiAldTsgdGx2IGNv -bnRhaW5zOiAldQoAAAAAAAAAAAAAAGRjYnhfaWVlZV9wcm9jZXNzWyV1XSBzdWJ0eXBlICUjeCBy -ZW1fZnRfY2hhbmdlZCAldSBzbV9jaGFuZ2UgJXUKAAAAAAAAAAAAAAAAAAAAZGNieF9pZWVlX3By -b2Nlc3NbJXVdIHN1YnR5cGUgdW5rbm93bgoAAAAAAAAAAAAAZGNieF9wYXJzZV9wa3RbJXVdIGVy -cm9yICVkCgAAAABpcHY2X2FkZF9wcmVmaXhfaW5fbGlzdDogbm9kZSBmb3VuZCAweCV4CgAAAAAA -AABpcHY2X2FkZF9wcmVmaXhfaW5fbGlzdCwgbm9kZSBub3QgZm91bmQKAAAAAAAAAABjaG5ldF9h -cnBfdXBkYXRlX2NhY2hlOiBhcnAgaXA0IGVudHJ5IGZvdW5kIAoAAABjaG5ldF9hcnBfdXBkYXRl -X2NhY2hlOiBhcnAgaXA2IGVudHJ5IGZvdW5kIAoAAABjaG5ldF9hcnBfdXBkYXRlX2NhY2hlOiBi -b3RoIGlwNCBhbmQgaXA2IGFkZHIgY2Fubm90IGJlIG51bGwKAAAAY2huZXRfbDJ0X3VwZGF0ZTog -bDJ0X3VwZGF0ZSByZXF1ZXN0IHNlbnQgbDJ0ZW50IFslMDh4XSwgbDJ0ZW50LT5pZHggWyVkXSwg -bDJ0ZW50LT52bGFuIFslZF0KAAAAY2huZXRfaXB2Nl9yYV9pbnB1dDogSW52YWxpZCBSQQoAAAAA -AAAAAAAAAAAAAAAAaXB2NiBSQSByY3ZkCgAAAHJvdXRlciBub3QgcHJlc2VudCBpbiBvdXIgbGlz -dC4gYWRkaW5nIGl0CgAAAAAAAEludmFsaWQgb3B0aW9uIGxlbmd0aCAldSBpbiBTTExBIG9wdGlv -bgoAAAAAAAAAAEdPVCBTTExBIG9wdGlvbiBpbiBSQSwgbGVuICV1CgAASW52YWxpZCBvcHRpb24g -bGVuZ3RoICV1IGluIHByZWZpeCBvcHRpb24KAAAAAAAASW52YWxpZCBvcHRpb24gbGVuZ3RoICV1 -IGluIG10dSBvcHRpb24KAAAAAAAAAAAASW52YWxpZCBwYWNrZXQgd2l0aCAldSBleHRyYSBieXRl -cwoAAAAAAAAAAAAAAAAAbWxkNiBxdWVyeSByY3ZkCgAAAAAAAAAAAAAAAAAAAABjaG5ldF9pcHY2 -X21sZDZfcXVlcnlfaW5wdXQ6IEludmFsaWQgTUxEIHF1ZXJ5CgBVbnN1cHBvcnRlZCBxdWVyeSB2 -ZXJzaW9uLiBvbmx5IG1sZHYyIHF1ZXJ5IHN1cHBvcnRlZAoAAAAAAAAAAAAAcXVlcnkgcmVzcG9u -c2UgZGVsYXkgJXUgKGluIDEwbXMgdW5pdCkgCgAAAAAAAAAAYWxyZWFkeSBhIGdlbmVyYWwgcXVl -cnkgcGVuZGluZyBpbiAldSAoMTBtcykKAAAARGVidWcgdGhlIGNvZGUuIGdycF9ub2RlIG11c3Qg -YmUgcHJlc2VudAoAAAAAAAAAYWxyZWFkeSBhIG11bHRpY2FzdCBxdWVyeSBwZW5kaW5nIGluICV1 -ICgxMG1zKQoAaXB2NiBlY2hvIHJlcSByY3ZkCgAAAAAAAAAAAAAAAABESENQdjYgcGFja2V0IHR5 -cGUgJXUsIG9wdHNsZW4gJXUgcmVjZWl2ZWQKAAAAAABJbnZhbGlkIGRoY3Agc3RhdGUgJWQKAAAA -AAAAAAAAAElnbm9yZSBESENQdjYgbXNnIHhpZCAleCwgIGRoNmN0eHQtPnhpZCAleAoAAAAAAEVy -cm9yIGluIERIQ1B2NiBvcHRpb25zIHBhcnNpbmcuIElnbm9yaW5nIG1zZywgaSAlZCwgb3B0c2xl -biAlZAoAAAAAAAAAAAAAAAAAAAAAREhDUCBmYWlsZWQsIHN0YXR1c2NvZGUgJWQuIElnbm9yaW5n -IGFkdmVydGlzZQoAaWNtcDYgY2hlY2tzdW0gdmFsaWRhdGlvbiBmYWlsZWQsIG9yIGVyciByY3Zk -aWdub3JpbmcgaWNtcDYgbXNnICV1LCBkbGVuICV1CgAAAABuZXRpZl9wcm9jZXNzX2RoY3A6IGwy -ZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIHByb2Nlc3NpbmcsIG9wdF9sZW4gJXUKAAAAAAAAAAAA -AGNobmV0X2RoY3BfcmVjdjogdmxhbmlkIFsldV0sIGwyZGV2X3BpZF9mYy0+Zmxvd2NfbmV0X2wy -ZGV2X3ZsYW5kZXYgWzB4JXhdLCBsMmRldl9mYyBbMHgleF0KAAAAAGNobmV0X2RoY3BfcmVjdjog -bDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgZGhjdHh0LT5zdGF0ZSBbJWRdLCBtYWxhY2lvdXMg -ZGhjcCByZWN2IGZvciBubyByZXF1ZXN0CgAAAAAAAAAAAAAAAABkaGN0eHQtPnN0YXRlIDogJWQK -AAAAAAAAAAAAAAAAAGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIEJhZCBESENQIGNvb2tpZSBy -ZWNpZXZlZCwgYWJvcnRpbmcKAABDb3VsZCBubyBhbGxvY2F0ZSBwY2IhISBGcmVlaW5nIGZjZiAh -ISEKAAAAAAAAAAB2bl9wYXJzZSB1bmtub3duIHN1YmNvZGUgJXUKAAAAAHZuX3BhcnNlIHVua25v -d24gZHR5cGUgJXUKAAAAAAAAaWdub3JpbmcgZmlwIHJlY3YgZm9yIHBjYiBmbG93OiV4IGluIG9m -ZmxpbmUgc3RhdGUKAAAAAAAAAAAAAAAAAGZpcF92bjJ2bl9yZWN2X2VyciAKAAAAAAAAAAAAAAAA -Q291bGQgbm90IGFsbG9jYXRlIGZsb3djISEhIQoAAABDb3VsZCBub3QgYWxsb2NhdGUgU0NCIGZs -b3djISEhIQoAAAAAAAAAAAAAAAAAAABDb3VsZCBub3QgZmluZCByaWdodCBzY2IgZm9yIGxvZ28K -AAAAAAAAAAAAAAAAAABpZ25vcmluZyBmaXAgcmVjdiBmb3IgZmNmIGZsb3c6JXggaW4gb2ZmbGlu -ZSBzdGF0ZQoAAAAAAAAAAAAAAAAAQ291bGQgbm90IGZpbmQgcmlnaHQgc2NiIGZvciBmbG9naQoA -AAAAAAAAAAAAAAAAcG9ydCAweCV4LCBzdGF0ZSAweCV4LCByZXRyeSBub3Qgc3VwcG9ydGVkCgAA -AAAARmxvZ2kgcmVzcCByY3Ygd2l0aCB1bmtub3duIHhjaGcgb3hfaWQleCBzaWQgJTJ4JTJ4JTJ4 -IGRpZCAlMnglMnglMngKAAAAAAAAAAAAAABOX1BPUlQgMHgleCV4JXggcmVqZWN0ZWQgUExPR0kg -d2l0aCByZWFzb24gY29kZSAleAoAAAAAAAAAAAAAAAAAQUJUUyB3aGlsZSBhd2FpdGluZyBQUkxJ -IFJzcDogZmxvd2NfaWQgMHgleCBveF9pZCAweCV4IHJ4X2lkIDB4JXggCgAAAAAAAAAAAAAAAABB -QlRTIGZha2UgUnNwOiBsb2MgMHgleCBveF9pZCAweCV4IHJ4X2lkIDB4JXgKAABsbGRwX3J4X3Br -dF9oYW5kbGVyWyV1XSBkcm9wIHByZS1pbml0IChjb3VudCA9ICV1KQoAAAAAAAAAAAAAAAAAJXgl -eCV4IFJlY2lldmVkIExPR08gZnJvbSAleCV4JXggCgAAAAAAAAAAAAAAAAAARmFpbGVkIHRvIHBv -c3QgeGNoZyBlcnI6IHNzbmkgMHgleCBjb29raWUgMHglbHggcnZhbCAleCAKAAAAAAAAAHRjcF9y -ZWxlYXNlX3RpZDogdGlkIFsweCV4XSwgZmxvd2MgZmxhZ3MgWzB4JXhdLCBidWZmZXJlZCBbMHgl -eF0KAAAAAAAAAAAAAAAAAAAAdGNwX3JlbGVhc2VfdGlkOiBzaXplb2YodGNiX2ZjLT5mbG93Y19p -Y29ubikgWyV1XSwgYnl0ZXMKAAAAAAAAAGFjdF9vcGVuX3JwbDogYXRpZCBbMHgleF0sIHRpZCBb -MHgleF0sIHRjYl9mYy0+eyBpZCBbMHgleF0sIHN0YXRlIFsweCV4XSwgdHlwZSBbMHgleF0gfSwg -Y3BsX29wIFsweCV4XSwgc3RhdHVzIFsweCV4XQoAAAAAAAAAAAAAYWN0X29wZW5fcnBsOiBjc2tf -ZmMtPnsgaWQgWzB4JXhdLCBzdGF0ZSBbMHgleF0sIGNzb2NrX2ZsYWdzIFsweCV4XSB9IAoAAAAA -AAAAAABhY3Rfb3Blbl9ycGw6IHJlY3ZkIG5lZyBhZHZpY2UgWzB4JXhdCgAAAAAAAAAAAABzZW5k -X2Fib3J0X3JwbDogY3NrX2ZjLT5mbG93Y190eXBlIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19pZCBb -MHgleF0sIHRpZCBbMHgleF0sIHVscHR4Y2ggWyV1XSwgYnVmZmVyZWQgWyV1XQoAAAAAd3JoX29m -bGRfdGNwX2Nsb3NlX2Nvbl9yZXBseTogdGNiX2ZjLT5mbG93Y19pZCBbMHgleF0sIHRjYl9mYy0+ -Zmxvd2NfdHlwZSBbMHgleF0sIGxlbjE2IFsldV0sIGxvYyBbJXVdCgAAAAAAAAAAAHdyaF9vZmxk -X3RjcF9jbG9zZV9jb25fcmVwbHk6IHJwbC0+b3BfVGlkIFsweCV4XSwgcnBsPnN0YXR1cyBbMHgl -eF0sIHJwbC0+c25kX254dCBbMHgleF0sIHJwbC0+cmN2X254dCBbMHgleF0KAAB0Y3BfYWJvcnRf -cnBsX3JzczogdGlkIFsweCV4XSwgc3RhdHVzIFsweCV4XQoAAAB0Y3BfYWJvcnRfcmVxX3Jzczog -dGlkIFsweCV4XSwgc3RhdHVzIFsweCV4XSwgZmxvd2NfY3NvY2tfZm9pc2NzaV9zdGF0ZSBbMHgl -eF0KAG9mbGRfYWJvcnRfcmVxX25lZ2FkdlsldV06IHdyIDB4JTA4eCBjcGxfYWJvcnRfcmVxIERF -TElWRVJFRAoAAABob3N0X3dyWyV1XTogd3IgMHglMDh4IGNwbF9hYm9ydF9yZXEgc3RhdHVzIDB4 -JXgKAAAAAAAAAAAAAAAAAAAAcGt0c2NoZWRfY2xfcmxbJXU6JXVdOiBtb2RlIHwgdW5pdCB8IHJh -dGUgMHglMDZ4IG1pbiAldSBtYXggJXUgcGt0c2l6ZSAldQoAAAAAAABwZiAlZCwgdmYgJWQgc2Vj -cmV0IGtleV9pbmRleCAlZCwgVkYgc2VjcmV0IDB4JXgKAAAAAAAAAAAAAAAAAAAAcGFyYW1fY2hu -ZXRbMHgleDoweCV4XTogY2huZXQgMHgleCByZWFkICV1IHBmICV1IHJldCAlZAoAAAAAAAAAAHBh -cmFtX2RtYXFbMHgleDoweCV4XTogZG1hcSAweCV4IHJlYWQgJXUgcGYgJXUgcmV0ICVkCgAAAAAA -AAAAAABSU1NTRUNSRVRLRVk6IHJzc3NlY3JldCB0YmwgYmFzZSAlZCwgcnNzbnNlY3JldCAlZAoA -AAAAAAAAAAAAAAAATUNbJXVdIGluaXRfc3RhdGVfbWFjaGluZSAweCUwMngKAAAAAAAAAAAAAAAA -AAAATUMgaW5pdGlhbGl6YXRpb24gbm90IGNvbXBsZXRpbmcsIE1DIGN1cnJlbnQgaW5pdCBzdGF0 -ZSBpcyAweCUwMngKAAAAAAAAAAAAAAAAAABNQ1sldV0gX2h3X21jX2luaXRfbWMKAAAAAAAAAAAA -AF9od19tY19pbml0X21jOiBlcnJvciwgcmV0ICVkCgAAX2h3X21jX2luaXRfbWNfZnBnYVsldV06 -IGVycm9yICVkCgAAAAAAAAAAAAAAAAAAcGh5OiBmYWlsZWQgdG8gYWxsb2NhdGVkIG1lbW9yeSBm -b3IgcGh5IGZ3IGZpbGUsIHJldCAlZAoAAAAAAAAAAGh3X2xlX2ZpbHRlcl9jdHVwbGU6IHR1cGxl -ICV1IG5vdCBzcGVjaWZpZWQgYnV0IHJlcXVpcmVkIGZvciBtYXNrIDB4JXgKAAAAAAAAAAAAbGUg -Y29uZmlndXJhdGlvbjogaGFzaCByZWdpb24gdG9vIGxhcmdlIHRvIGVuYWJsZSBzZXJ2ZXIgc3Jh -bQoAAGxlIGNvbmZpZ3VyYXRpb246IGNhbm5vdCBlbmFibGUgc2VydmVyIHNyYW0gd2hlbiBoYXNo -IHJlZ2lvbiBpcyBkaXNhYmxlZAoAAAAAAAAAaHdfdHBfdGNwX3NldHRpbmdzX3c6IHRpbWVyX3Jz -ICV1dXMgdGltZXN0YW1wX3JlcyAldXVzIGRlbGF5ZWRhY2tfcmVzICV1dXMKAAAAAABod190cF90 -Y3Bfc2V0dGluZ3NfdzogZGFja190aW1lciAldXVzIG1zbCAldXVzIHJ4dF9taW4sbWF4ICV1LCV1 -dXMgcGVyc19taW4sbWF4ICV1LCV1dXMKAAAAAAAAAABod190cF90Y3Bfc2V0dGluZ3Nfdzoga2Vl -cF9pZGxlLGludHZsICV1LCV1cyBtYXhydHQgJXV1cyBpbml0c3J0dCAldXVzIGZpbndhaXQyX3Rp -bWVyICV1dXMKAAAAAABod190cF90Y3Bfc2V0dGluZ3NfdzogY2FwcGluZyBkYWNrX3RpbWVyIGZy -b20gJXUgdG8gJXUAAAAAAAAAAAAAaHdfdHBfdGNwX3NldHRpbmdzX3c6IGNhcHBpbmcgbXNsIGZy -b20gJXUgdG8gJXUAaHdfdHBfdGNwX3NldHRpbmdzX3c6IGNhcHBpbmcgcnh0X21pbiBmcm9tICV1 -IHRvICV1AAAAAAAAAAAAAAAAAGh3X3RwX3RjcF9zZXR0aW5nc193OiBjYXBwaW5nIHJ4dF9tYXgg -ZnJvbSAldSB0byAldQAAAAAAAAAAAAAAAABod190cF90Y3Bfc2V0dGluZ3NfdzogY2FwcGluZyBw -ZXJzX21pbiBmcm9tICV1IHRvICV1AAAAAAAAAAAAAAAAaHdfdHBfdGNwX3NldHRpbmdzX3c6IGNh -cHBpbmcgcGVyc19tYXggZnJvbSAldSB0byAldQAAAAAAAAAAAAAAAGh3X3RwX3RjcF9zZXR0aW5n -c193OiBjYXBwaW5nIGtlZXBfaWRsZSBmcm9tICV1IHRvICV1AAAAAAAAAAAAAABod190cF90Y3Bf -c2V0dGluZ3NfdzogY2FwcGluZyBrZWVwX2ludHZsIGZyb20gJXUgdG8gJXUAAAAAAAAAAAAAaHdf -dHBfdGNwX3NldHRpbmdzX3c6IGNhcHBpbmcgaW5pdF9zcnR0X21heHJ0dCBmcm9tICV1IHRvICV1 -AAAAAGh3X3RwX3RjcF9zZXR0aW5nc193OiBjYXBwaW5nIGluaXRfc3J0dF9pbml0c3J0dCBmcm9t -ICV1IHRvICV1AABod190cF90Y3Bfc2V0dGluZ3NfdzogY2FwcGluZyBmaW53YWl0Ml90aW1lciBm -cm9tICV1IHRvICV1AAAAAAAAZmlsdGVyTW9kZT0lI3ggaWxsZWdhbDogc2VsZWN0cyAlZCBiaXRz -IChtYXggJWQpCgAAAAAAAAAAAAAAAAAAAGxlIGNvbmZpZ3VyYXRpb246IG5lbnRyaWVzICV1IHJv -dXRlICV1IGNsaXAgJXUgZmlsdGVyICV1IGFjdGl2ZSAldSBzZXJ2ZXIgJXUgaGFzaCAldQoAAAAA -AAAAAAAAAGxlIGNvbmZpZ3VyYXRpb246IG5lbnRyaWVzICV1IHJvdXRlICV1IGNsaXAgJXUgZmls -dGVyICV1IHNlcnZlciAldSBhY3RpdmUgJXUgaGFzaCAldSBuc2VydmVyc3JhbSAldQoAAAAAAAAA -AAAAAABod19zZ2VfcXVldWVfYmFzZV9tYXBbJXVdOiBleGNlZWRlZCBudW1iZXIgb2YgZWdyZXNz -IHF1ZXVlcywgJXUKAAAAAAAAAAAAAAAAAAAAAGh3X3NnZV9xdWV1ZV9iYXNlX21hcFsldV06IGV4 -Y2VlZGVkIG51bWJlciBvZiBpbmdyZXNzIHF1ZXVlcyB3aXRoIGZyZWVsaXN0IGFuZCBpbnRlcnJ1 -cHQsICV1CgAAAGh3X3NnZV9xdWV1ZV9iYXNlX21hcFsldV06IGV4Y2VlZGVkIG51bWJlciBvZiBp -bmdyZXNzIHF1ZXVlcywgJXUKAAAAAAAAAAAAAAAAAAAARXJyb3IsIFRvdGFsIFJTUyBTZWNyZXQg -dGFibGUgYWxsb2NhdGlvbiAlZCA+IDE2CgAAAAAAAAAAAAAAAAAAAHNrdSgweCV4KTogY3VzdG9t -IHNrdSA0MEdfU08gZG9lcyBub3Qgc3VwcG9ydCBleHRtZW0KAAAAAAAAAAAAAABza3UoMHgleCk6 -IGN1c3RvbSBza3UgMTBHIGRvZXMgbm90IHN1cHBvcnQgNDBHIHBvcnRzCgAAAAAAAAAAAAAAc2t1 -KDB4JXgpOiBjdXN0b20gc2t1IDEwR19TTyBkb2VzIG5vdCBzdXBwb3J0IDQwRyBwb3J0cygldSkg -b3IgZXh0bWVtKCV1KQoAAAAAAABza3U6IGN1c3RvbSBza3UoMHgleCkgNDBHIHBvcnRzKCV1KSBl -eHRtZW0oJXUpIHN1cHBvcnRlZAoAAAAAAAAAY2ZfcGFyc2U6IGZpbGUgbWVtdHlwZSAweCV4IG1l -bWFkZHIgMHgleCBtYXBwZWQgQCAlcDoKAAAAAAAAAAAAAGNvbmZpZ3VyZWQgd2l0aCBjYXBzIG5i -bXxsaW5rIDB4JTA4eCBzd2l0Y2h8bmljIDB4JTA4eCB0b2V8cmRtYSAweCUwOHggaXNjc2l8Y3J5 -cHRvIDB4JTA4eCBmY29lOjB4JXgKAAAAAAAAAAAAAABuZXQgVkkgYWxsb2NhdGlvbiBmYWlsZWQg -Zm9yIGZjX2lkICV1IHdpdGggZXJyb3IgJWQKAAAAAAAAAAAAAAAAbmV0IFZJIG1hYyBhZGRyZXNz -IHByb2dyYW1taW5nIGZhaWxlZCBmb3IgZmNfaWQgJXUgd2l0aCBlcnJvciAlZAoAAAAAAAAAAAAA -AAAAAABuZXQgVkkgcnhtb2RlIHByb2dyYW1taW5nIGZhaWxlZCBmb3IgZmNfaWQgJXUgd2l0aCBl -cnJvciAlZAoAAAAAbmV0IFZJIHJzcyBpbmRpcmVjdGlvbiB0YWJsZSBwcm9ncmFtbWluZyBmb3Ig -ZmNfaWQgJXUgZmFpbGVkIHdpdGggZXJyb3IgJWQKAAAAAABuZXQgVkkgcnNzIGNvbmZpZyBjb21t -YW5kIGZhaWxlZCBmb3IgZmNfaWQgJXUgd2l0aCBlcnJvciAlZAoAAAAAbmV0IFZJIGNvbW1hbmQg -ZmFpbGVkIGZvciBmY19pZCAldSB3aXRoIGVycm9yICVkCgAAAAAAAAAAAAAAAAAAAHByb2dyYW1t -ZWQgSFcgdGFnbSBbMHglMDh4XSwgSFcgcGdzeiBmYWN0b3IgWzB4JTA4eF0sIEZPaVNDU0kgdGFn -bSBbMHglMDh4XSwgcnRhZ20gWzB4JTA4eF0sIG1heHN6X2JpdHMgWyV1XSwgc3pfYml0cyBbJXVd -LgoAAAAAYmFzZSBbIDB4JTA4eF0sIGxsaW1pdCBbMHglMDh4XSwgdWxpbWl0IFsweCUwOHhdLCBz -aXplIFsldV0sIG1heF90eHN6IFsldV0sIG1heF9yeHN6IFsldV0sIGlvc2l6ZSBbJXVdCgAAAAAA -AAAAAG5wcG9kcyBbJXVdLCBpZHhfbWFzayBbMHglMDh4XSwgaWR4X2ZpcnN0IFsldV0sIGlkeF9s -YXN0IFsldV0sIHNjc2lfcGxkX3NpemUgWyV1XSwgQUxJR04oc2NzaV9wbGRfc2l6ZSwgMTYpIFsl -dV0sIHBwZF96b25lcyBbJXVdLgoAAAAAAAAAAAAAAAAAAGZvaXNjc2lfaW5pdDogaW5pdF9kb25l -OiV1LCBmb2lzY3NpX250YXNrczoldSwgZm9pc2NzaV9uc2VzczoldSwgbmNzb2NrOiV1LCBuc3Bv -cnRzOiV1LCBmb2lzY3NpX25pbml0OiV1LCByYzolZAoAAAAAAAAAAAAAAAAAAAAAY2hfY2xfcmF0 -ZVsldS8ldV06IGNhcHBlZCBjbGFzcyByYXRlIGZyb20gcmVxdWVzdGVkICV1IHRvIGNvbmZpZ3Vy -ZWQgKGVmZmVjdGl2ZSkgY2hhbm5lbCByYXRlICV1CgAAAAAAAAAAAAAAAAAAAGNoX2NsX3JhdGVb -JXUvJXVdOiBpbmNyZWFzZWQgZGVmaWNpdF9pbmNyIGZyb20gcmVxdWVzdGVkICV1IHRvIHJlcXVp -cmVkIG1pbiBvZiAldTsgcmF0ZSAldSAoZWZmICV1KSBkZWZpY2l0X21heCAldQoAAAAAAAAAAAAA -AAAAcGt0c2NoZWQgY2hhbm5lbCAldSBzZXRzIHNwZWVkIChmcm9tICV1KSB0byAldSBrYnBzCgAA -AAAAAAAAAAAAAG5ldF9sMmRldl9ub3RpZnk6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIHBv -cnQgWyVkXSwgZXZlbnQgWzB4JXhdLCB1bHB0eGNoIFsldV0sIGNsYXNzIFsweCV4XSwgdnByaW8g -WzB4JXhdLCB2aWQgWzB4JXhdLCB2aV9yZWFkeSBbJXVdCgAAAAAAAG5ldF9sMmRldl9ub3RpZnk6 -IHBnaWQgWzB4JXhdLCBwcmlvIFsweCV4XSwgY2ggWzB4JXhdCgAAAAAAAAAAAABbJXVdIHVuYWJs -ZSB0byBleGVjdXRlIGludGVybmFsIERDQl9JRUVFX0NNRAoAAABwb3J0WyV1XSBwdHlwZSAldSBs -YW5lICV1OiByeGNmZyA9ICUjeAoAAAAAAAAAAABwb3J0WyV1XSBwdHlwZSAldSBsYW5lICV1OiB0 -eGNmZyA9ICUjeAoAAAAAAAAAAABwb3J0WyV1XSBsaW5rIGRvd24gKCV1KSAobHN0YXR1cyAlI3gp -CgAAAAAAAAAAAABod19pMmNfdHJhbnNhY3Rpb246IG5kYXRhICV1IGFkZHJfb3AgMHgleCBkYXRh -WzBdIDB4JXggZGlmZiAldQoAaHdfaTJjX3RyYW5zYWN0aW9uOiBuZGF0YSAldSBhZGRyX29wIDB4 -JXggZGF0YVswXSAweCV4IGRpZmYgJXUgZHBvcyAldSBjb250ICV1IGZhaWxlZCB3aXRoIGVyciAl -ZAoAAAAAAAAAAAAAAAAAAGkyYyB0cmFuc2FjdGlvbiBmYWlsZWQgdG8gY29tcGxldGUKAAAAAAAA -AAAAAAAAAGkyYyBlcnJvciBjYXVzZWQgYnkgbW9kdWxlIHVucGx1ZwoAAAAAAAAAAAAAAAAAAHNl -bmR0byBwZW5kaW5nOiB3cl9wZW5kICVwIGZvciBwb3J0ICV1LCB3YW50IHRvIHNlbmQgdG8gcG9y -dCAldQoAAAAAAAAAAAAAAAAAAAAAcG9ydFsldV0gdXBkYXRlIChmbG93Y2lkICV1IHJjICV1KQoA -AAAAAAAAAAAAAAAAcG9ydF9zZXRfbG9vcGJhY2sgcG9ydCAlI3ggY3VycmVudCAlI3ggbW9kZSAl -I3gKAAAAAAAAAAAAAAAAAAAAAHBvcnRbJXVdIHNwZWVkIHVwZGF0ZTogJSN4CgAAAAAAcG9ydFsl -dV0gYmVnaW5uaW5nIGRlYm91bmNlCgAAAABRU0ZQIG1vZHVsZSB1bnBsdWcgLSByZWluaXRpYWxp -emluZyByeF9sb3MgIHRvIDB4ZmYKAAAAAAAAAAAAAAAAZ3Bpb19xc2ZwX21vZHVsZV91cGRhdGU6 -IGNoYW5nZWQgcnhfbG9zIGZyb20gMHgleCB0byAweCV4CgAAAAAAAGdwaW9fcXNmcF9tb2R1bGVf -dXBkYXRlOiBjaGFuZ2VkIHR4X2RpcyBmcm9tIDB4JXggdG8gMHgleAoAAAAAAABkaXNhYmxpbmcg -dHggJSN4IHJ4ICUjeAoAAAAAAAAAAHBvcnRfbGlua19zdGF0ZV9oYW5kbGVyWyV1XSBwb3dlcmlu -ZyBkb3duCgAAAAAAAHBvcnRfbGlua19zdGF0ZV9oYW5kbGVyWyV1XSBwb3dlcmluZyB1cAoAAAAA -AAAAAHBvcnRfbGlua19zdGF0ZV9oYW5kbGVyWyV1XSB1bmtub3duIHN0YXRlIChzdGF0ZSA9ICUj -eCkKAAAAAAAAAABwb3J0X2xpbmtfc3RhdGVfaGFuZGxlcjogU29tZXRoaW5nIHdlbnQgdGVycmli -bHkgd3JvbmcuIHJldCA9ICVkCgAAAAAAAAAAAAAAAAAAAGh3X3NnZV9tYW1lbV9pbml0OiBlbmNv -dW50ZXJlZCBlcnJvciAlZAoAAAAAAAAAAGxlIGluaXRpYWxpemF0aW9uOiBuZW50cmllcyAldSBy -b3V0ZSAldSBjbGlwICV1IGZpbHRlciAldSBhY3RpdmUgJXUgc2VydmVyICV1IGhhc2ggJXUKAAAA -AAAAAAAAAGxlIGluaXRpYWxpemF0aW9uOiBuZW50cmllcyAldSByb3V0ZSAldSBjbGlwICV1IGZp -bHRlciAldSBzZXJ2ZXIgJXUgYWN0aXZlICV1IGhhc2ggJXUgbnNlcnZlcnNyYW0gJXUKAAAAAAAA -AAAAAABod190cF9pbml0OiB0Y2IgcmVnaW9uIChzdGFydCAweCUwOHMgc2l6ZSAldSkgbXVzdCBi -ZSBpbiBmaXJzdCAyNTZNQiBvZiBNQSBtZW1vcnkKAAAAAAAAAAAAAAAAAABod190cF9pbml0OiBw -Z21uZ3QgcmVnaW9uIChzdGFydCAweCUwOHMgc2l6ZSAldSkgbXVzdCBiZSBpbiBmaXJzdCAyNTZN -QiBvZiBNQSBtZW1vcnkKAAAAAAAAAAAAAABod190cF9pbml0OiBUUCBwZ21uZ3QgaW5pdGlhbGl6 -YXRpb24gZGlkIG5vdCBjb21wbGV0ZQoAAAAAAAAAAAAAYnVmbV9pbml0OiBuICV1IGJ1ZmxsNjRp -bnRfc2l6ZSAweCV4CgAAAAAAAAAAAAAAYnVmbV9pbml0OiBub3QgZW5vdWdoIG1lbW9yeSB0byBh -bGxvY2F0ZSBpbnRlcm5hbCBidWZsbDY0IGJ1ZmZlcnMKAAAAAAAAAAAAAAAAAABidWZtX2luaXQ6 -IG5vdCBlbm91Z2ggbWVtb3J5IHRvIGFsbG9jYXRlIGJ1ZmxsNjQgYnVmZmVycwoAAAAAAAAAbWVt -X2luaXRfYnVmOiBub3QgZW5vdWdoIG1lbW9yeSB0byBhbGxvY2F0ZSBmbG93IGJ1ZmZlcnMKAAAA -AAAAAG1lbV9pbml0X2J1Zjogbm90IGVub3VnaCBtZW1vcnkgdG8gYWxsb2NhdGUgdGNiX2NhY2hl -IChvZmZlcmVkICV1IHRyeWluZyB0byB1c2UgJXUgYXZhaWxhYmxlICV1KQoAAAAAAAAAAAAAAAAA -AABtcGFydGl0aW9uX290aGVyczogc3RhcnQgMHglMDh4IHNpemUgJXUgKHVudXNlZCAldSkKAAAA -AAAAAAAAAAAAbXBhcnRpdGlvbl9vdGhlcnM6IHN0YXJ0IDB4JTA4eCBzaXplICV1ICh1bnVzZWQg -JXUpCgAAAAAAAAAAAAAAAG1lbV9pbml0OiBFREMgb3ZlcmNvbW1pdHRlZCBieSAlZCBieXRlcwoA -AAAAAAAAAG1lbV9pbml0OiBub3QgZW5vdWdoIG1lbW9yeSB0byBhbGxvY2F0ZSBmbG93IHRhYmxl -CgAAAAAAAAAAAAAAAABjeGNuaWNfZGV2aWNlX2luaXQ6IGN4Y25pYyBbMHglMHhdLCBjeGNuaWMt -PmZpbHRlciBbJTB4XQoAAAAAAAAAcG9mY29lIGluaXQgZG9uZQoAAAAAAAAAAAAAAAAAAABwb3J0 -X2luaXQgcG9ydCVkIHB0eXBlIDB4JXgKAAAAAFBvcnRbJXVdOiBVbmtub3duIFNHTUlJIHN1Yi10 -eXBlICUjeAoAAAAAAAAAAAAAAFBvcnRbJXVdOiBVbmtub3duIEJUX1hGSSBzdWItdHlwZSAlI3gK -AAAAAAAAAAAAAHBvcnRfaW5pdFsldV06IHBvcnQgdHlwZSAweCV4IGlzIG5vdCBzdXBwb3J0ZWQK -AG1wYXJ0aXRpb25faW5pdDogbW92ZWQgcG1yeF9zdGFydCBmcm9tIDB4JTA4eCB0byAweCUwOHgg -dG8gbWFrZSByb29tIGZvciBMRSBIQVNIIGFuZC9vciBUUCBUQ0JzCgAAAAAAAAAAAAAAAAAAAABt -cGFydGl0aW9uX2luaXQ6IG1vdmVkIHBtcnhfc3RhcnQgZnJvbSAweCUwOHggdG8gMHglMDh4IChF -RFJBTSkKAAAAAAAAAAAAAAAAAAAAAEVRIHBmbiAldSB2Zm4gJXU6IGRlc3Ryb3lpbmcgZXFpZCAl -dSB3aXRoIHBlbmRpbmcgV1IocykgKG51bV9ieXRlcyAldSBhbmQgZmxhZ3MgMHglMDh4CgAAAAAA -AAAAAGwyZGV2X2ZjLT5mbG93Y19pZCBbJXVdLCBsMmRjLT5wZm4gWyV1XSwgbDJkYy0+dmZuIFsl -dV0sIGwyZGMtPmxwb3J0IFsldV0sIGwyZGV2X2ZjLT5mbG93aWQgWyV1XSBsMmRjLT50eF9jaCBb -JXVdLCBkZXYudnBkLnBvcnR2ZWMgWyV4XQoAAAAAAAAAAHBvcnR2ZWMgWyV1XQoAAABsMmRldl92 -aV9mc206IG1iIFsweCV4XSwgZGVmZXJyZWQsIHN0YXRlIFsweCV4XSwgcG9ydCBbMHgleF0KAAAA -bDJkZXZfdmlfZnNtOiB2aWlkIFsweCV4XSBwb3J0IFsweCV4XSwgbWFjLWlkIFslMDJ4OiUwMng6 -JTAyeDolMDJ4OiUwMng6JTAyeF0uIAoAAAAAAAAAAAAAAAAAAAAAbDJkZXZfdmlfZnNtOiBzZ2Vf -ZXFpZCBbMHgleF0sIHNnZV9pcWlkIFsweCV4XSwgc2dlX2VxY3IgWzB4JXhdLCByc3Nfc3ogWzB4 -JXhdCgBsMmRldl92aV9mc206IGwyZGV2X2ZjLT5mbG93Y19uZXRfbDJkZXZfbXR1IFsldV0sIG1i -X3NjcmF0Y2ggWzB4JXhdLCBwb3J0IFsweCV4XQoAAAAAAAAAAAAAAAAAAABsMmRldl92aV9mc206 -IHZpaWQgWyVkXSwgdmlfZmMtPmZsb3djX3ZpX2ZsYWdzIFsweCV4XQoAAAAAAAAAAAAAbDJkZXZf -dmlfZnNtOiBwZm4gWzB4JXhdLCB2Zm4gWzB4JXhdLCBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhd -LCBscG9ydCBbMHgleF0sIHZpaWQgWzB4JXhdLCBmbGFncyBbMHgleF0KAAAAAAAAAGwyZGV2X3Zp -X2ZzbTogRXJyb3IgZnJlZWluZyBWSSwgcmMgWzB4JXhdCgAAAAAAAGwyZGV2X3ZpX2ZzbTogcGlk -IFsweCV4XSwgdmlpZCBbMHgleF0sIG1iX2xvYyBbMHgleF0sIG1iX29yaWdbMHgleF0sIGwyZGV2 -X2ZsYWdzIFsweCV4XSwgcmMgWzB4JXhdCgAAAAAAAAAAAAAAAABBaCBoYS4uLmRvdWJsZSBmcmVl -IG94X2lkIDB4JXgsIHJ4X2lkIDB4JXgKAAAAAABIb3N0IFBSTEkgUmVzcG9uc2UgdGltZWRvdXQ6 -IG94X2lkIDB4JXggcnhfaWQgMHgleAoAAAAAAAAAAAAAAAAAcGZuICV1IHZmbiAldSB2aWEgY29t -bWFuZAoAAAAAAABjb25maWd1cmF0aW9uIGZpbGUgcGFyc2VyOiBhbl9hZWNfdGltZSB2YWx1ZSAl -ZCBpcyBiaWdnZXIgdGhhbiBhbGxvd2VkIGxpbWl0LkNoYW5naW5nIGl0IHRvIDEwMDAwIG1zLgoA -AAAAAAAAAAAARGVwcmVjYXRlZCBjb25maWcgb3B0aW9uIGZvdW5kIGluIGNvbmZpZyBmaWxlLiBJ -Z25vcmluZy4uCgAAAAAAAGNvbmZpZ3VyYXRpb24gZmlsZSBwYXJzZXI6IHBsIHRpbWVvdXQgdmFs -dWUgaXMgdG9vIGxhcmdlLCBjaGFuZ2luZyBmcm9tICV1IHRvICV1dXNlY3MKAAAAAAAAAAAAAFBM -X1BDSUVfTElOSy5zcGVlZCBvZiAldSBpcyBub3Qgc3VwcG9ydGVkCmZpbGUsIHJldCBGV19FSU8K -AAAAAABzY2hlZF9pb3F0eF9icF9wcmlvcml0eTogaGFzICV1IGVudHJpZXMgb25seSwgcmVxdWly -ZXMgJXUgZW50cmllcwoAAAAAAAAAAAAAAAAAAHRwX2JhY2tvZmY6IHBhcnNlZCAlZCBpbnN0ZWFk -IG9mICV1IGVudHJpZXMKAAAAAHRwX3RpbWVydmFsczogcGFyc2VkICVkIGluc3RlYWQgb2YgJXUg -ZW50cmllcwoAAHRwX3RpbWVycmVzOiBwYXJzZWQgJWQgaW5zdGVhZCBvZiAldSBlbnRyaWVzCgAA -AHRwX210dXMgaGFzICV1IGVudHJpZXMgb25seSwgcmVxdWlyZXMgJXUgZW50cmllcwoAAAAAAAAA -AAAAAAAAAAB0cF9tdHVzWyV1XSBpcyAldSBieXRlcyB3aGljaCBpcyBub3Qgc3VwcG9ydGVkCgBj -b25maWd1cmF0aW9uIGZpbGUgcGFyc2VyOiBzZ2UgdGltZXIgdmFsdWVbJWRdIGlzIHRvbyBsYXJn -ZSwgY2hhbmdpbmcgZnJvbSAldSB0byAldXVzZWNzCgAAAAAAAABmaWx0ZXJtYXNrIDB4JXggaXMg -bm90IGVxdWFsL3N1YnNldCB0by9vZiBmaWx0ZXJtb2RlCgAAAAAAAAAAAAAAaHdfbGVfY2xpcF9o -YW5kbGVyOiByZW1vdmVkIHBvcz0ldSAoPWlkeCAldSkKAAAAaHdfbGVfY2xpcF9oYW5kbGVyOiBh -ZGRpbmcgdG8gcG9zPSV1ICg9aWR4ICV1KQoAcGh5X2luaXQ6IHBvcnQgJXUgd2l0aCB0aGUgdHlw -ZSAldSAgaGF2ZSByZXQgJWQKAAAAAAAAAAAAAAAAAAAAAGJlYW4vYWVjIGNvbXBsZXRlICV1CgAA -AAAAAAAAAAAAaHdfbWFjX2luaXRfcG9ydCBwb3J0JWQsIHB0eXBlIDB4JXgsIHNwZWVkIDB4JXgs -IGxhbmVzIDB4JXgsIGZlYyAweCV4CgAAAAAAAAAAAABtb2R1bGVbJXVdOiBwb3J0IG1vZHVsZSBp -bnNlcnRlZCBhbmQgcmVhZHkKAAAAAABtb2R1bGVbJXVdOiBwb3J0IG1vZHVsZSByZW1vdmVkCgAA -AAAAAAAAAAAAAAAAAABtb2R1bGVbJXVdOiB1bmtub3duIG1vZHVsZSBpZGVudGlmaWVyIDB4JTAy -eAoAAABtb2R1bGVbJXVdOiBncGlvICV1IHRyYW5zIDEwRyAweCUwMnggMUcgMHglMDJ4IChsZW5n -dGggJXUpIGNhYmxlIDB4JTAyeCAobGVuZ3RoICV1KSBtb2R1bGVfdHlwZSAweCUwMngKAAAAAAAA -AAAAbW9kdWxlWyV1XTogZ3BpbyAldSB0cmFucyAxMEcgMHglMDJ4IDFHIDB4JTAyeCAobGVuZ3Ro -ICV1KSBjYWJsZSAweCUwMnggKGxlbmd0aCAldSkgbW9kdWxlX3R5cGUgMHglMDJ4CgAAAAAAAAAA -AGN4NF9jcl9tb2R1bGVfcnhfbG9zWyV1XTogcnhfbG9zIGNoYW5nZWQgdG8gJXUKAE1DOiBleHBl -Y3RlZCBzdGF0ZSB0byBzd2l0Y2ggdG8gQ0ZHLgAAAAAAAAAAAAAAAE1DOiBleHBlY3RlZCBzdGF0 -ZSB0byBzd2l0Y2ggdG8gQWNjZXNzLgAAAAAAAAAAAE1DOiBleHBlY3RlZCBzdGF0ZSB0byBzd2l0 -Y2ggdG8gQ0ZHLgAAAAAAAAAAAAAAAE1DOiBleHBlY3RlZCBzdGF0ZSB0byBzd2l0Y2ggdG8gQWNj -ZXNzLgAAAAAAAAAAAElJLjEuYnggZHAxOFsldV0gcVsldV0gJSN4ICUjeCAlI3ggJSN4IG1pbiAl -I3ggbWF4ICUjeAoAAAAAAAAAAABJSS4xLmMtZC4gJSN4ICUjeCAlI3ggJSN4IGFsbCAgJSN4CgAA -AAAAAAAAAAAAAABJSS4yLmIgKCUjeCAtICUjeCArICUjeCkgJSAxMjggPSAlI3gKAAAAAAAAAAAA -AABJSS4zIGluZXdfMWUgYWZ0ZXIgbGltaXQgY29tcHV0ZSBpdGVtcF8xZSAleCwgaW5ld18xZSAl -eAoAAAAAAAAASUkuMy4gaXRlbXBfMWUgJSN4IGluZXdfMWUgJSN4IGluZXdfMWUgJWQKAAAAAAAA -SUkuNC4gc2V0XzFlICUjeAoAAAAAAAAAAAAAAAAAAABNQzogY2FsaWJyYXRpb24gZmFpbGVkIGZv -ciBlcnJhdGEyOSBkcDE4ICV1CgAAAABJVi4xLiBkcDE4WyV1XSBwaGFzZV9zZWwgYmVmb3JlICUj -eCBhZnRlciAlI3gsIGdhdGVfZGVsYXkgJSN4CgAATUMgZXJyYXRhMjkgaXNzdWU6IGRwMTggJXUg -cXVhZCAldSBjYW5ub3QgYmUgZGVjcmVhc2VkCgAAAAAAAAAAAE1DIGVycmF0YTI5IGlzc3VlOiBk -cDE4ICV1IHF1YWQgJXUgY2Fubm90IGJlIGRlY3JlYXNlZAoAAAAAAAAAAABNQyBlcnJhdGEyOSBp -c3N1ZTogZHAxOCAldSBxdWFkICV1IGNhbm5vdCBiZSBkZWNyZWFzZWQKAAAAAAAAAAAATUMgZXJy -YXRhMjkgaXNzdWU6IGRwMTggJXUgcXVhZCAldSBjYW5ub3QgYmUgZGVjcmVhc2VkCgAAAAAAAAAA -AHRlbXAyXzFlKzB4MTAgPSAlI3gKAAAAAAAAAAAAAAAATUM6IGNhbGlicmF0aW9uIGZhaWxlZCBm -b3IgZXJyYXRhMjEgaXRlcmF0aW9uICV1CgAAAAAAAAAAAAAAAAAAAE1DIGVycmF0YSAyMTogZHAx -OFsldV0gcHIwIG4wMiBmYWlsZWQgdG8gZ2V0IGF2ZXJhZ2UKAAAAAAAAAAAAAABNQyBlcnJhdGEg -MjE6IGRwMThbJXVdIHByMCBuMTMgZmFpbGVkIHRvIGdldCBhdmVyYWdlCgAAAAAAAAAAAAAATUMg -ZXJyYXRhIDIxOiBkcDE4WyV1XSBwcjEgbjAyIGZhaWxlZCB0byBnZXQgYXZlcmFnZQoAAAAAAAAA -AAAAAE1DIGVycmF0YSAyMTogZHAxOFsldV0gcHIxIG4xMyBmYWlsZWQgdG8gZ2V0IGF2ZXJhZ2UK -AAAAAAAAAAAAAABNQyBpbml0aWFsaXphdGlvbiBmYWlsZWQ6IERGSSBpbml0IG5vdCBnb2luZyB0 -byAwCgAAAAAAAAAAAAAAAAAATUMgaW5pdGlhbGl6YXRpb24gZmFpbGVkOiBERkkgaW5pdCBub3Qg -Y29tcGxldGluZwoAAAAAAAAAAAAAAAAAAE1DIGluaXRpYWxpemF0aW9uIGZhaWxlZDogQ2FsaWJy -YXRpb24gZGlkbid0IGNvbXBsZXRlLgoAAAAAAAAAAABEUDE4ICV1LCBieXRlX2xhbmUgJXUsIGJp -dF9zZWxlY3QgJXUKAAAAAAAAAAAAAABEUDE4ICV1LCBieXRlX2xhbmUgJXUsIGJpdF9zZWxlY3Qg -JXUKAAAAAAAAAAAAAABNQyBmYWlsZWQgdG8gZ2V0IFVQQ1RMIHBvd2VyIHVwIGRvbmUKAAAAAAAA -AAAAAABNQyBpbml0aWFsaXphdGlvbiBmYWlsZWQ6IERpZG4ndCBnZXQgYWxsIERQMThzIGxvY2tl -ZAoAAAAAAAAAAAAATUMgaW5pdGlhbGl6YXRpb24gZmFpbGVkOiBEaWRuJ3QgZ2V0IGJvdGggQURS -cyBsb2NrZWQKAAAAAAAAAAAAAEN1cnJlbnQgU2xldyB0eF9yb3cgJWQ6IHR4X2NvbCAlZCwgdmFs -ICVkCgAAAAAAAEN1cnJlbnQgU2xldyBhZGRyX3JvdyAlZDogYWRkcl9jb2wgJWQsIHZhbCAlZAoA -AE1DIGluaXRpYWxpemF0aW9uIGZhaWxlZDogU0xFV19ET05FX1NUQVRVUyBuZXZlciB0b2dnbGVk -AAAAAAAAAABwZm4gJXUgdmZuICV1IEZTTSBzdGFydAoAAAAAAAAAAHBmbiAldSB2Zm4gJXUgRlNN -IGNvbXBsZXRlCgAAAAAAZmxyX3BmdmZfZnNtWyV1OiV1XTogdW5rbm93biBzdGF0ZSAldQoAAAAA -AAAAAAAAcGZuICV1IHZmbiAldSBpbiBkM2hvdCwgaWdub3JpbmcsIGQzaG90IDB4JTA4eCBQQ0lF -X1NUQVQgMHglMDh4CgAAAAAAAAAAAAAAAAAAAABodyBwZiBiaXRtYXAgMHglMDJ4IHZmaWQgYml0 -bWFwIDB4JTA4eDoweCUwOHg6MHglMDh4OjB4JTA4eAoAAAAAYWZ0ZXIgdmZpZCBmaXh1cCwgdmZp -ZCBiaXRtYXAgMHglMDh4OjB4JTA4eDoweCUwOHg6MHglMDh4CgAAAAAAAE1DWyV1XTogZmFpbGVk -IHRvIHN3aXRjaCBjb250cm9sbGVyIHRvIENGRyBzdGF0ZQoAAAAAAAAAAAAAAAAAAABNQ1sldV06 -IGZhaWxlZCB0byBzd2l0Y2ggY29udHJvbGxlciB0byBJTklUX01FTSBzdGF0ZQoAAAAAAAAAAAAA -TUNbJXVdOiBmYWlsZWQgdG8gc3dpdGNoIGNvbnRyb2xsZXIgdG8gQ0ZHIHN0YXRlCgAAAAAAAAAA -AAAAAAAAAE1DWyV1XTogcGVyaW9kaWMgY2FsaWJyYXRpb24gZmFpbGVkIHdpdGggZXJyb3IgJXUK -AAAAAAAAAAAAAAAAAAB0aW1lciBxdWV1ZSAldSBsb3N0IGEgdGljayEgbmV4dCAlcCBsYXN0ICVw -IG51bWUgJXUKAAAAAAAAAAAAAAAAZmxyX3RpbWVyX3N0YXJ0OiBmbG93Y19pZCAldSAlcCBidWYg -JXAKAAAAAAAAAAAATUFDOiBQTExzIGRpZG4ndCBsb2NrCgAAAAAAAAAAAABwY2llOiByZWFkIGZy -b20gc2VyY2ZnIHBjaWVfaXBfdXJfbWF4ZnVuYyAweCV4IHBmYml0bWFwIDB4JXgKAAAAcGNpZTog -U2VyaWFsIENvbmZpZ3VyYXRpb24gU1BBUkUzIGhhcyBDb29raWUgR2VuZXJhdGlvbiBlbmFibGVk -LgoAAAAAAAAAAAAAAAAAAABwY2llOiBucGYgJXUgKHBmYml0bWFwIDB4JTAyeCkgbnZmICV1IChw -ZiAwLi43IDB4JTA4eCUwOHgpIHZmc3RyaWRlICV1CgAAAAAAAAAAAGh3X21hY19wcmVwOiBlcnJv -ciwgcmV0ICVkCgAAAAAAaHdfZ3Bpb19wcmVwOiBlcnJvciwgcmV0ICVkCgAAAABNQyBDTEsgc2V0 -dGluZyBmYWlsZWQ6IFBMTF9NX0xPQ0sgbmV2ZXIgdG9nZ2xlZAoAAAAAAAAAAAAAAAAAAAAAZmFp -bGVkIHRvIGZpbmQgdGhlICVjJWMgVlBEIHBhcmFtZXRlcgoAAAAAAAAAAAAAZmFpbGVkIHRvIHBh -cnNlIHRoZSAlYyVjIFZQRCBwYXJhbWV0ZXIKAAAAAAAAAAAAbWVtX3ByZXA6IGVycm9yLCByZXQg -JWQKAAAAAAAAAABmYWlsZWQgdG8gc3VjY2Vzc2Z1bGx5IGZpbmQgQ2hlbHNpbyBWUEQKAAAAAAAA -AAB2cGRfcHJlcDogZXJyb3IsIHJldCAlZAoAAAAAAAAAAHNlcmNmZ19wcmVwOiBlcnJvciwgcmV0 -ICVkCgAAAAAAbG9nIGluaXRpYWxpemVkIEAgMHglMDh4IHNpemUgJXUgKCV1IGVudHJpZXMpIGZ3 -cmV2IDB4JTA4eCBwY2llX2Z3IDB4JTA4eAoAAAAAAABib290c3RyYXAgZmlybXdhcmUgdG9vayAl -dSBtc2VjcyB0byBydW4KAAAAAAAAAABQSSBlcnJvciBmbG93aWRfbGVuMTYgMHgleCwgYXBwX3Rh -ZyAweCV4LCByZWZfdGFnIDB4JXgsIHBpc2MgJTA0eCAlMDR4ICUwNHggJTA0eAoAAAAAAAAAAAAA -AAAAAABmbG93YyAldSAoU0dFIGVxaWQgJXUpIChFVEhDVFJMIHF1ZXVlKSBleHBlcmllbmNlZCBh -IFBDSSBETUEgUkVBRCB3b3JrIHJlcXVlc3QgZXJyb3IgKGluYm91bmQgcXVldWUgJXUpCgAAAAAA -AAAAZmxvd2MgJXUgKFNHRSBlcWlkICV1KSBleHBlcmllbmNlZCBhbiB1bmV4cGVjdGVkIFBDSSBE -TUEgUkVBRCB3b3JrIHJlcXVlc3QgZXJyb3IgKGluYm91bmQgcXVldWUgJXUpCgAAAAAAAAAAAAAA -AGZsb3djICV1IGV4cGVyaWVuY2VkIGFuIHVuZXhwZWN0ZWQgUENJIERNQSBSRUFEIGVycm9yIChp -bmJvdW5kIHF1ZXVlICV1KQoAAAAAAAAAZ2F0aGVyX3Rhc2tzX2Zvcl90bWY6IGlkeCBbMHgleF0s -IHRhc2staWQgWzB4JXhdLCBjbWQtaWQgWzB4JXhdLCBhY3RpdmUgdGFza3MgWzB4JXhdLiBjb25u -LWlkIFsweCV4XSwgY21kIGNvbm4taWQgWzB4JXhdLCB0YXNrIGNvbm4taWQgWzB4JXhdCgAAZ2F0 -aGVyX3Rhc2tzX2Zvcl90bWY6IEludmFsaWQgdHlwZSBbMHgleF0sIGJhaWxpbmcgb3V0LgoAAAAA -AAAAAGdhdGhlcl90YXNrc19mb3JfdG1mOiB0YXNrIGlkIFsweCV4XSwgc3RhdGUgWzB4JXhdLCBs -aWR4IFsweCV4XSwgY29va2llIGhpIFsweCUwOHhdIDogbG8gWzB4JTA4eF0KAAAAAAAAAAAAAAAA -AABnYXRoZXJfdGFza3NfZm9yX3RtZjogcmMgWzB4JXhdLCBbMHgleF0gdGFzayBnYXRoZXJlZCBm -b3IgdG1mIHR5cGUgWzB4JXhdIHByb2Nlc3NpbmcuCgAAAAAAAAAAAABzY3NpX2RhdGFfb3V0OiBj -b25uX2ZjIFsweCV4XSwgc3RhdGUgWzB4JXhdLCBzZXNzX2ZjIFsweCV4XSBpbiByZWNvdmVyeS4g -U2tpcHBpbmcgaXN0YXNrX2ZjIFsweCV4XSBmcm9tIFRYLgoAAAAAc2VuZF9tc2dfcGxkOiBmYyB7 -IGlkIFsweCV4XSwgZmxhZ3MgWzB4JXhdLCBidWZmZXJlZCBbJXVdLiB9CgAAAHNlbmRfbXNnX3Bs -ZDogc2VzcyB7IGlkIFsweCV4XSB9LCB1bHB0eGNoIFsldV0gbm8gY3JlZGl0cyBhdmFpbGFibGUs -IHJlc2NoZWR1bGluZyByZXF1ZXN0LgoAAAAAAHNlbmRfYWJvcnRfcmVxOiBjc2tfZmMtPmZsb3dj -X3R5cGUgWzB4JXhdLCBjc2tfZmMtPmZsb3djX2lkIFsweCV4XSwgdGlkIFsweCV4XSwgdWxwdHhj -aCBbJXVdLCBidWZmZXJlZCBbJXVdCgAAAABmY19zZW5kX2FsbG9jX2NwbDogZmFpbGVkIHRvIHNl -dHVwIGZpbHRlciBjdHVwbGUKAAAAAAAAAAAAAAAAAAAAZmNvZV9jb21wdXRlX2N0dXBsZSAweCV4 -OiV4CgAAAABjb21wdXRlX2N0dXBsZSgpOiBmYWlsZWQgdG8gc2V0dXAgZmlsdGVyIGN0dXBsZQoA -AAAAAAAAAAAAAAAAAAAARkNvRSBGQ0IgbGlua2Rvd246IGlvX3JlcSAweCV4JXggaXFpZCAweCV4 -IGZsb3dpZCAweCV4IG9wIDB4JXgKAGZjb2Ugbm90aWZ5IDogVXBkYXRlIG5ldyBEQ0JYIHZhbHVl -cyBWSSBzdGF0ZSAweCV4IHByaSAweCV4IHNjaGVkY2wgMHgleCBkY2J4X2RvbmUgMHgleAoAAAAA -AAAAAGZjb2Ugbm90aWZ5IDogRkNGIGZsb3dpZCAweCV4LCB1bHBjaCAweCV4IAoAAAAAAGZjb2Ug -bm90aWZ5IDogRkNvRSBMSU5LVVA6IHBvcnQgMHgleCwgZXZlbnQgMHgleAoAAAAAAAAAAAAAAAAA -AABmY29lIG5vdGlmeSA6IEZDb0UgTElOS0RPV046IHBvcnQgMHgleCwgZXZlbnQgMHgleAoAAAAA -AAAAAAAAAAAAZmNvZSBub3RpZnkgOiBEQ0JYIDogcG9ydCAweCV4LCBwcmlvcml0eSAweCV4IHVs -cHR4Y2ggMHgleCBjbGFzcyAweCV4CgAAAAAAAAAAAABSREVWIG1zZyBmbG93YzoleCBzdGF0ZSAw -eCV4IGV2ZW50IDB4JXgKAAAAAAAAAABjYW5jZWwgZmNiOiV4IHNjYjoleCBzdGF0ZToleAoAAEZD -b0UgRkNGIHRpbWVyOiBmbG93YyBzdGF0ZSAweCV4LCBwb3J0IDB4JXggLGZjZiAweCV4LCBmbG93 -Y19pZCAweCV4CgAAAAAAAAAAAAAAaHcgcmVnaXN0ZXIgb3BlcmF0aW9uIG5vdCBjb21wbGV0aW5n -LCByZWcgMHglMDh4IG1hc2sgMHglMDh4IHZhbHVlIDB4JTA4eCAocmVnIDB4JTA4eCkKAAAAAAAA -AAAATURJTyBDTDQ1OiBmYWlsZWQgdG8gc2V0IHVwIE1NRCBhZGRyCgAAAAAAAAAAAAAATURJTzog -ZmFpbGVkIHRvIHJlYWQKAAAAAAAAAAAAAABXcml0ZV9hbGxfcG9ydHM6IHBpZCA9ICV1IHJlZyA9 -IDB4JXggCgAAAAAAAAAAAABNRElPIENMNDU6IGZhaWxlZCB0byBzZXQgdXAgTU1EIGFkZHIKAAAA -AAAAAAAAAABNRElPOiBmYWlsZWQgdG8gd3JpdGUKAAAAAAAAAAAAAG1paV9hZHZfZmNbJXVdOiBy -Y2FwcyAweCV4CgAAAAAAbWlpX2Fkdl9zcGVlZFsldV06IHJjYXBzIDB4JXgKAABuZXRpZl9zZXRf -bWFjOiBsMmRldl9mYy0+Zmxvd2NfbmV0X2wyZGV2X21icyBbMHgleF0KAAAAAAAAAAAAAAAAcmVt -b3ZpbmcgbWFjCgAAAG5vZGUtPmdycCBbJTA0eCAlMDR4ICUwNHggJTA0eF0sIG5vZGVfaWQgJXUs -IHJlZl9jbnQgJXUKAAAAAAAAAABEQUQgZm9yIGFkZHIgWyUwNHggJTA0eCAlMDR4ICUwNHhdCgAA -AAAAAAAAAAAAAABjcGxfdHhfcGt0OiB2bGFuaWQgWzB4JXhdCgAAAAAAAGNwbF90eF9wa3Q6IHZs -YW5pZCBbMHgleF0KAAAAAAAAZmxvd2NfaWQgWyV1XSBsMmRldl9mYyBbMHgleF0gYWxyZWFkeSBy -ZWNlaXZlZCBSQSwgbm90IHNlbmRpbmcgUlMKAAAAAAAAAAAAAAAAAABmbG93Y2lkIFsldV0gbDJk -ZXZfZmMgWzB4JXhdIE5vIElQdjYgcm91dGVyCgAAAABzZW5kX2Nsb3NlX3JlcTogY3NrX2ZjLT5m -bG93Y190eXBlIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIGNza19mYy0+dGNiX3N0 -YXRlIFsweCV4XQoAAABzZW5kX2Nsb3NlX3JlcTogY3NrX2ZjLT5mbG93Y190eXBlIFsweCV4XSwg -Y3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIHRpZCBbMHgleF0sIHVscHR4Y2ggWyV1XSxidWZmZXJl -ZCBbJXVdCgAAAAAAb2ZsZF90Y3BfZG9fYWN0aXZlX2Nsb3NlOiBjc2tfZmMgWzB4JXhdLCBjc2tf -ZmMtPmZsb3djX2lkIFsweCV4XSwgY3NrX2ZjLT50Y2Jfc3RhdGUgWzB4JXhdCgAAAAAAb2ZsZF90 -Y3BfZG9fYWN0aXZlX2Nsb3NlOiBjc2tfZmMgWzB4JXhdLCBjc2tfZmMtPmZsb3djX2lkIFsweCV4 -XSwgY3NrX2ZjLT50Y2Jfc3RhdGUgWzB4JXhdCgAAAAAAb2ZsZF90Y3BfZGlzY29ubmVjdDogdGNi -X2ZjLT5mbG93Y19pZCBbMHgleF0sIGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2stPnRjYl9z -dGF0ZSBbMHgleF0KAAAAZGVjb2RlX2Jhc2U2NF9zdHJpbmc6IGRsZW4gWyVkXQoAAAAAAAAAAAAA -AAAAAAAAZGVjb2RlX2hleF9zdHJpbmc6IGRsZW4gWyVkXQoAAABmb2lzY3NpX3ZhbGlkYXRlX2xv -Z2luX3N0YWdlOiAtIDEKAAAAAAAAAAAAAAAAAABhc3luY19wZHU6IGxvZ291dCByZXF1ZXN0ZWQg -YmxvY2tpbmcgc2Vzc2lvbgoAAABhc3luY19wZHU6IHNlc3MvY29ubiBkcm9wIHJlcXVlc3RlZCBi -bG9ja2luZyBzZXNzaW9uCgAAAAAAAAAAAAAAY3BsX3R4X3BrdDogdmxhbmlkIFsweCV4XQoAAAAA -AAByZWluaXQgbGluay1sb2NhbCBhZGRyZXNzCgAAAAAAAG5ldF9sMmRldl9maW5kX2J5X2FkZHI6 -IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIGwyZGMtPmxwb3J0IFsldV0sIGwyZF9mYy0+Zmxv -d2NfaWQgWzB4JXhdLCBsMmRjLT5pbjRfZGV2LmluX2FkZHIuYWRkciBbMHgleF0sIGFkZHIgWzB4 -JXhdCgAAAG5ldF9sMmRldl9tdHVfY29uZmlnOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBt -dHUgJXUKAAAAAAAAAABuZXRpZl9kb19kaGNwOiB3ci0+cGFyYW0udmxhbmlkIFsldV0sIGwyZGV2 -X2ZjLT5mbG93Y19uZXRfbDJkZXZfdmxhbmRldiBbMHgleF0KAGNwbF90eF9wa3Q6IHZsYW5pZCBb -MHgleF0KAAAAAAAAZW5jb2RlIGhleCBzdHJpbmc6IGRsZW4gWyVkXQoAAABjaG5ldF9maW5kX2wy -dF9lbnRyeTogZGFkZHIgWyUwOHhdLCBbMHglMDh4XSwgbG9jYWwgbmV0d29yayBbJWRdCgAAAAAA -AAAAAAAAAAAAAGwydGVudCBbJTB4XSwgbDJ0ZW50LT5pZHggWyVkXQoAdGNwX3NlbmRfYW9wZW5f -cmVxOiBjc2tfZmMtPmZsb3djX2lkIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0s -IGJ1ZmZlcmVkIFsldV0sIHJlc19jbnQgWzB4JXhdLCBpcV9pZHggWzB4JXhdCgAAAAAAAAAAAAB0 -Y3Bfc2VuZF9hb3Blbl9yZXE6IGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2tfZmMtPmZsb3dj -X3N0YXRlIFsweCV4XSwgbm8gdmFsaWQgbDJ0X2VudHkuIERlbGF5aW5nIGFub3RoZXIgcmV0cnkg -Zm9yIDEgc2Vjb25kcy4KAAAAAAAAAAAAAAAAAABhb3Blbl9yZXE6IGh3X2xlX2ZpbHRlcl9jdHVw -bGUgZmFpbGVkCgAAAAAAAAAAAABvZmxkX3RjcF9zZW5kX2FvcGVuX3JlcTogY3BsX3JlcS0+Rmls -dGVyX2hpIFsweCUweF0sIGNwbF9yZXEtPkZpbHRlcl9sb19GQ29FTWFzayBbMHglMHhdLCBjdHVw -bGVzWzBdIFsweCV4XSwgY3R1cGxlc1sxXSBbMHgleF0KAGxhZGRyX3JldDogbDJkYy5hZGRyIDow -eCV4LCBzcmNfYWRkcjoweCV4CgAAAAAAAGl0dF90b190YXNrX2lkeDogdGFnIFsweCUwOHhdLCBo -aSBbJXVdLCBsbyBbJXVdLCBubWFza2JpdHMgWyV1XSwgdGFza19pZHggWyV1XQoAV0FUQ0hET0c6 -IE5vIHRlbXBlcmF0dXJlIHNlbnNvciBhdmFpbGFibGUuCgAAAAAAV0FUQ0hET0c6IEFjdGl2YXRp -bmcKAAAAAAAAAAAAAABXQVRDSERPRyAtIEVuYWJsZSBhY3Rpb24gJXUgdGltZSAldQoAAAAAAAAA -AAAAAABXQVRDSERPRyAtIERpc2FibGUgYWN0aW9uICV1CgAAAFdBVENIRE9HOiBEZS1hY3RpdmF0 -aW5nCgAAAAAAAAAAcG9ydFsldV0gc2V0IFBBVVNFIFBBUkFNUzogcHBwZW4gJXUgdHhwZSAlI3gg -cnhwZSAlI3gKAAAAAAAAAAAAAG1wc19saW5rX3VwWyV1XSBhY2FwcyAlI3ggKDgwMi4zICUjeCkg -KyBscGFjYXBzICUjeCA9PiAlI3gKAAAAAABpcHY2X2hhbmRsZV9saW5rX2Rvd24gZmxvd2NfaWQg -MHgleAoAAAAAAAAAAAAAAABpcHY2X2hhbmRsZV9saW5rX3VwIGZsb3djX2lkIDB4JXgKAAAAAAAA -AAAAAAAAAABmb2lzY3NpIGNvbm5fZmMgWzB4JXhdLCBmbG93Y19zY2hlZGNsIFsweCV4XSwgaW5n -X2NoIFsweCV4XSwgZWdyX2NoIFsweCV4XQoAAAAAAGwyZGV2X25vdGlmeSB3aXRoIHVua25vd24g -ZmxhZyBbMHgleF0KAAAAAAAAAAAAAGNoX2NsX3JhdGVbJXUvJXVdOiBjYXBwZWQgZGVmaWNpdF9p -bmNyIGZyb20gcmVxdWlyZWQgJXUgdG8gJXU7IHJhdGUgJXUgKGVmZiAldSkgZGVmaWNpdF9tYXgg -JXUKAERDQlg6IHN1bSBvZiByYXRlcyBvbiBhbGwgY2xhc3NlcyBtdXN0IGJlIDEwMCAoYWN0dWFs -OiAldSkKAAAAAAByaV93cl9pbml0WyV1XTogbXNzICV1IGlzIG5vdCA4LWJ5dGUgYWxpZ25lZAoA -AABjb3JlX3Byb2dyYW1fdGNiOiB0aWQgJSN4IHRfc3RhdGUgJSN4IHJjdl9hZHYgMHglMDh4IHJj -dl9zY2FsZSAlI3ggdHhfbWF4ICUjeCByY3Zfbnh0ICUjeCBhdGlkICUjeAoAAAAAAAAAAAAAAAAA -CW9wdDAgJSN4JXggb3B0MiAlI3ggaXB2NiAlI3ggZmxhZ3NfdGltZXIgMHglMDh4CgAAAAAAAAAA -AAAAAAAAAG9mbGRfY29ubmVjdGlvbl93cjogY29ubmVjdGlvbiB3aXRoIDUtdHVwbGUgbHAgMHgl -MDR4IGZwIDB4JTA0eCBsaXAgMHglMDh4JTA4eCBwaXAgMHglMDh4JTA4eCBmaWx0ZXIgMHglMDh4 -IGV4aXN0cyBAIExFIGluZGV4ICV1CgAAAAAAAAAAAAAAAAAAAG9mbGRfY29ubmVjdGlvbl93cjog -Y29ubmVjdGlvbiB3aXRoIDUtdHVwbGUgbHAgMHglMDR4IGZwIDB4JTA0eCBsaXAgMHglMDh4IHBp -cCAweCUwOHggZmlsdGVyIDB4JTA4eCBleGlzdHMgQCBMRSBpbmRleCAldQoAAAAAAAAAb2ZsZF9j -b25uZWN0aW9uX3dyOiBjb25uZWN0aW9uIHdpdGggNS10dXBsZSBscCAweCUwNHggZnAgMHglMDR4 -IGxpcCAweCUwOHglMDh4IHBpcCAweCUwOHglMDh4IGZpbHRlciAweCUwOHgKAAAAAG9mbGRfY29u -bmVjdGlvbl93cjogY29ubmVjdGlvbiB3aXRoIDUtdHVwbGUgbHAgMHglMDR4IGZwIDB4JTA0eCBs -aXAgMHglMDh4IHBpcCAweCUwOHggZmlsdGVyIDB4JTA4eAoAAAAAAAAAAAAAAABJUUZMSU5UIHBm -biAldSB2Zm4gJXU6IGlxaWQgJXUgdG9vIGxhcmdlIChtYXggJXUpCgAAAAAAAAAAAAAAAAAASVFG -TElOVCBwZm4gJXUgdmZuICV1OiBpcWlkICV1IG5vdCBhbGxvY2F0ZWQKAAAASVFGTElOVCBwZm4g -JXUgdmZuICV1OiBmbDBpZCAldSB0b28gbGFyZ2UgKG1heCAldSkKAAAAAAAAAAAAAAAAAElRRkxJ -TlQgcGZuICV1IHZmbiAldTogZmwwaWQgJXUgbm90IGFsbG9jYXRlZAoAAElRRkxJTlQgcGZuICV1 -IHZmbiAldTogZmwxaWQgJXUgdG9vIGxhcmdlIChtYXggJXUpCgAAAAAAAAAAAAAAAABJUUZMSU5U -IHBmbiAldSB2Zm4gJXU6IGZsMWlkICV1IG5vdCBhbGxvY2F0ZWQKAABJUUZMSU5UIHBmbiAldSB2 -Zm4gJXU6IGZsMWlkICV1IGlzIHZhbGlkIGJ1dCBub3QgZmwwaWQgJXUKAAAAAAAASVFGTElOVCBw -Zm4gJXUgdmZuICV1OiBmbDFpZCAldSBpcyB2YWxpZCBidXQgaGVhZGVyIHNwbGl0IGZlYXR1cmUg -aXMgbm90IGVuYWJsZWQKAAAAAAAAAAAAAAAAAAAAaHdfdWxwdHhfd29ya2Fyb3VuZF9wcjE2OTQ5 -X2VuYWJsZWRfdmZpZDogdmZpZCAldSBlbmFibGVkICV1CgAAAEVRIHBmbiAldSB2Zm4gJXU6IGNy -ZWF0aW5nIEVUSCBlcWlkICV1IHdpdGggcGVuZGluZyBXUihzKSAobnVtX2J5dGVzICV1IGFuZCBm -bGFncyAweCUwOHgKAAAAAAAAAEVRIHBmbiAldSB2Zm4gJXU6IGNyZWF0aW5nIENUUkwgZXFpZCAl -dSB3aXRoIHBlbmRpbmcgV1IocykgKG51bV9ieXRlcyAldSBhbmQgZmxhZ3MgMHglMDh4CgAAAAAA -AEVRIHBmbiAldSB2Zm4gJXU6IGVxaWQgJXUgdG9vIGxhcmdlIChtYXggJXUpCgAAAEVRIHBmbiAl -dSB2Zm4gJXU6IGVxaWQgJXUgbm90IGFsbG9jYXRlZAoAAAAAAAAAAGRjYnhfcG9wdWxhdGVfY3Ry -bCBjb2RlIGluY29tcGxldGUKAAAAAAAAAAAAAAAAAHZpX3RjYW1fcmF3IGlkeCAldSBtYWMgMHgl -MDR4ICUwOHgKAAAAAAAAAAAAAAAAAHBvcnRfYmxpbmtfbGVkX3Jlc3RvcmUKAAAAAAAAAAAAcG9y -dF9ibGluazogYmxpbmtkdXI9MHgleCBibGlua19yZWZjbnQKAAAAAAAAAAAAcG9ydF9ibGluazog -CWJsaW5rX3JlZmNudD0weCV4CgBwb3J0X2JsaW5rOiAJYmxpbmtfcmVmY250PTB4JXgKAG1paV9h -bnJlc3RhcnRbJXVdOiBhY2FwcyAweCV4CgAAcG9ydF9jbWRfaGFuZGxlcjogdW5rbm93biB1LmRj -Yi50eXBlIDB4JXgKAAAAAAAAcG9ydFsldToweCUwMng6MHglMDJ4XTogbDFjZmcsIGludmFsaWQg -cmVxdWVzdCwgcGNhcHMgMHgleCBhY2FwcyAweCV4IHJjYXBzIDB4JXgKAAAAAAAAAAAAAAAAAAAA -cG9ydFsldToweCUwMng6MHglMDJ4XTogbDFjZmcsIHBjYXBzICUjeCBhY2FwcyAlI3ggcmNhcHMg -JSN4IG1jYXBzICUjeAoAAAAAAAAAAABwb3J0WyV1OjB4JTAyeDoweCUwMnhdOiBsMWNmZywgbWRp -IGlzc3VlIHBjYXBzIDB4JXggYWNhcHMgMHgleCByY2FwcyAweCV4CgAAAAAAAHBvcnRbJXU6MHgl -MDJ4OjB4JTAyeF06IGwxY2ZnLCBjYW5ub3QgZm9yY2Ugbm8vbXVsdGlwbGUgc3BlZWQocyksIHBj -YXBzIDB4JXggYWNhcHMgMHgleCByY2FwcyAweCV4CgAAAAAAAAAAAAAAAABiYWQgRmxvd0MgJWQg -b24gZXN0YWJsaXNoZWQgY29ubmVjdGlvbgoAAAAAAAAAAABldGhfZmxvd2NfaGFuZGxlclsweCV4 -XTogZmxhZ3MgMHglMDh4IG51bV9ieXRlcyAldSBzY2hlZGNsIDB4JXggLT4gMHgleAoAAAAAAAAA -AHRhc2tfaWR4X3RvX2l0dDogdGFza19pZHggWyV1XSwgaGkgWyV1XSwgbG8gWyV1XSwgbm1hc2ti -aXRzIFsldV0sIHN3X3RhZyBbMHglMDh4XSwgcHBvZF9pZHggWyVkXQoAAAAAAAAAAAAAAAAAAABz -Y3NpX2NtZDogcmVjZWl2ZWQgVE1GIG9wIFsweCV4XSBmdW5jIFsweCV4XSBvbiBjb25uIFsweCV4 -XSB0aHJvdWdoIGNvbW1hbmQgcGF0aC4KAAAAAAAAAAAAAAAAAABzY3NpX2NtZDogY29ubl9mYyBb -MHgleF0sIHN0YXRlIFsweCV4XSwgc2Vzc19mYyBbMHgleF0gaW4gcmVjb3ZlcnkuIFNraXBwaW5n -IGlzdGFza19mYyBbMHgleF0gZnJvbSBUWC4KAAAAAAAAAAAAc2NzaV9yZWFkOiBjb25uX2ZjIFsw -eCV4XSwgc3RhdGUgWzB4JXhdLCBzZXNzX2ZjIFsweCV4XSBpbiByZWNvdmVyeS4gU2tpcHBpbmcg -aXN0YXNrX2ZjIFsweCV4XSBmcm9tIFRYLgoAAAAAAAAAAHNjc2lfd3JpdGU6IGNvbm5fZmMgWzB4 -JXhdLCBzdGF0ZSBbMHgleF0sIHNlc3NfZmMgWzB4JXhdIGluIHJlY292ZXJ5LiBTa2lwcGluZyBp -c3Rhc2tfZmMgWzB4JXhdIGZyb20gVFguCgAAAAAAAABkY2J4X2NvbnRyb2xfc21bJXVdIENPTlRS -T0xfTElOS1VQCgAAAAAAAAAAAAAAAABkY2J4X2NvbnRyb2xfc21bJXVdIENPTlRST0xfVVBEQVRF -X0RDQlhfVExWCgAAAABkY2J4X2NvbnRyb2xfc21bJXVdIENPTlRST0xfUEVFUl9OT1RfQURWRVJU -SVNFX0RDQlgKAAAAAAAAAAAAAAAAZGNieF9jb250cm9sX3NtWyV1XSBDT05UUk9MX1VQREFURV9P -UEVSX1ZFUlNJT04KAAAAAAAAAAAAAAAAAAAAAGRjYnhfY29udHJvbF9zbVsldV0gQ09OVFJPTF9Q -Uk9DRVNTX1BFRVJfVExWCgAAAGRjYnhfY29udHJvbF9zbVsldV0gQ09OVFJPTF9BQ0tfUEVFUgoA -AAAAAAAAAAAAAGRjYnhfaWVlZV92YWxpZGF0ZVsldV0gZXJyb3IgKG91aSAlI3ggc3VidHlwZSAl -I3ggbGVuICUjeCkKAAAAAABkY2J4X2NlZV92YWxpZGF0ZVsldV0gZXJyb3IKAAAAAGNobmV0X2wy -dF91cGRhdGU6IGwyZGV2X2ZjIFsweCV4XSwgbDJkZXZfZmMtPmZsb3djX2lkIFsldV0gbDJkZXZf -ZmMtPmZsb3djX2ZsYWdzIFsweCV4XSwgaW50ZiBbMHgleF0KAAAAAAAAAAAAAABjaG5ldF9sMnRf -dXBkYXRlOiBsMmRldl9mYy0+Zmxvd2NfaWQgWyV1XSBhbHJlYWR5IHNjaGVkdWxlZAoAAAAAY2hu -ZXRfbDJ0X3VwZGF0ZTogaW4gZGVsYXllZF9wcm9jZXNzaW5nLCBsMnRlbnQgWyUwOHhdCgAAAAAA -AAAAAERIQ1B2NiBSRVBMWSByZWNlaXZlZCBzdGF0ZSAldQoAZGhjcCByZXBseSByZWNlaXZlZCBp -biB3cm9uZyBzdGF0ZSAlZAoAAAAAAAAAAAAAdW5rbm93biBzZXJ2ZXJpZC4gSWdub3JpbmcgZGhj -cCByZXBseQoAAAAAAAAAAAAAcmVjZWl2ZWQgcmVwbHkgd2l0aCBkaWZmZXJlbnQgYWRkcmVzcy4g -aWdub3JpbmcgZGhjcCByZXBseQoAAAAAAERIQ1B2NiBBRFZFUlRJU0UgcmVjZWl2ZWQKAAAAAAAA -ZGhjcCBhZHZlcnRpc2UgcmVjZWl2ZWQgaW4gd3Jvbmcgc3RhdGUgJWQKAAAAAAAAaWdub3Jpbmcg -cmN2ZCBhZHZlcnRpc2UgcHJlZmVyZW5jZSAldQoAAAAAAAAAAAAAcHJlZml4IG5vZGUgMHgleCwg -dmFsaWRfbGlmZXRpbWUgJXUsIGN1cnJlbnRfdGltZSAldSBleHBpcmVkLCBkZWxldGluZyBpdAoA -AAAAAABEZWxldGVkIHByZWZpeDogMHhbJTA0eCAlMDR4ICUwNHggJTA0eF0KAAAAAAAAAABTdGFy -dCBESENQdjYgdG8gZ2V0IHRoZSBpcCBhZGRyZXNzCgAAAAAAAAAAAAAAAABObyBkaGNwLCBkaGNw -IHN0YXRlICVkLCBhZGRyIHN0YXRlICVkCgAAAAAAAAAAAABwaW5nIHJlcSBwYXlsb2FkIHRvbyBs -YXJnZSAldS4gSWdub3JpbmcgcmVxLgoAAABSUiByY3ZkCgAAAAAAAAAAY2huZXRfaXB2Nl9yZF9p -bnB1dDogSW52YWxpZCBSZWRpcmVjdAoAAAAAAAAAAAAAY2huZXRfaXB2Nl9uYV9pbnB1dDogSW52 -YWxpZCBOQQoAAAAAAAAAAAAAAAAAAAAAaXB2NiBOQSByY3ZkCgAAAGNobmV0X2lwdjZfbmFfaW5w -dXQ6IER1cGxpY2F0ZSBhZGRyZXNzIGRldGVjdGVkIQoAAAAAAAAAAAAAAAAAAABOQSBpbiByZXBv -bnNlIG9mIE5TCgAAAAAAAAAAAAAAAGNobmV0X2lwdjZfbnNfaW5wdXQ6IEludmFsaWQgTlMKAAAA -AAAAAAAAAAAAAAAAAGNobmV0X2lwdjZfbnNfaW5wdXQ6IEludmFsaWQgTlMgaXB2NmgtPnBsZW4g -JXUKAGlwdjYgTlMgcmN2ZAoAAABjaG5ldF9pcHY2X25zX2lucHV0OiBEdXBsaWNhdGUgYWRkcmVz -cyBkZXRlY3RlZAoAAAAAAAAAAAAAAAAAAAAAY2huZXRfaXB2Nl9uc19pbnB1dDogc29tZWJvZHkg -dHJ5aW5nIHRvIHVzZSBvdXIgYWRkcmVzcwoAAAAAAAAAAGNobmV0X2lwdjZfbnNfaW5wdXQ6IHJl -cSBmb3IgYWRkciByZXNvbHV0aW9uCgAAAEhvcCBieSBIb3Agb3B0aW9uCgAAAAAAAAAAAAAAAAAA -cHJvY2Vzc19kaGNwX29wdHM6IHJvb3QgcGF0aCBsZW4gWyVkXSBieXRlcwoAAAAAbmV0aWZfcHJv -Y2Vzc19kaGNwX29wdHM6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIE1TR19UWVBFIFslZF0s -IGRoY3R4dC0+c3RhdGUgWyVkXQoAAAAAAAAAAAAAaWNtcF9yZWN2OiBsMmRldl9mYy0+Zmxvd2Nf -aWQgWzB4JXhdLCBwaWQgWzB4JXhdLCBpY21wIHR5cGUgWzB4JXhdCgAAAAAAAAAAAAAAAAB2bjJ2 -bjogcG9ydCAweCV4IGRpZDoweCV4JXgleCBVUAoAAAAAAAAAAAAAAAAAAAB2bjJ2bjogcG9ydCAw -eCV4IGRpZDoweCV4JXgleCBET1dOCgAAAAAAAAAAAAAAAABmY19zZW5kX2FsbG9jX2NwbDogZmFp -bGVkIHRvIHNldHVwIGZpbHRlciBjdHVwbGUKAAAAAAAAAAAAAAAAAAAAZmNvZV9jb21wdXRlX2N0 -dXBsZSAweCV4OiV4CgAAAABjb21wdXRlX2N0dXBsZSgpOiBmYWlsZWQgdG8gc2V0dXAgZmlsdGVy -IGN0dXBsZQoAAAAAAAAAAAAAAAAAAAAAZmNvZV9jb21wdXRlX2N0dXBsZSB2bGFuICV4IHZpaWQg -JXggcG9ydCAleCBtcHNfaWR4ICV4CgAAAAAAAAAAAEFCVFMgQUNDIGF3YWl0aW5nIFBSTEkgUnNw -OiBmbG93Y19pZCAweCV4IG94X2lkIDB4JXggcnhfaWQgMHgleCBpcWlkIDB4JXgKAAAAAAAAcG9y -dCAweCV4LCBzdGF0ZSAweCV4LCBjb21tYW5kIGZhaWxlZCByZXRyaWVzIDB4JXgKAAAAAAAAAAAA -AAAAAGFycF9yZWN2OiBpcGlkIFsweCV4XSwgaW5fYWRkci5hZGRyIFsweCV4XSwgc2lwIFsweCV4 -XSwgcmlwIFsweCV4XSwgYXJwX29wIFsweCV4XQoAAAAAAAAAAAAAAAAAAGNobmV0X2FycF9yZWN2 -OiBpcCBjb25mbGljdCBkZXRlY3RlZAoAAAAAAAAAAAAAAGNobmV0X2FycF9yZWN2OiBwaWQgWyV1 -XSwgdmxhbiBbMHgleF0sIGFycCBvcCBbMHgleF0sIHNpcCBbMHgleF0sIHJpcCBbMHgleF0KAAAA -Y2huZXRfaXB2Nl9yZWN2OiB2bGFuIGV4dHJhY3RlZCwgdmxhbmlkIFsldV0sIGwyZGV2X2ZjLT5m -bG93Y19uZXRfbDJkZXZfdmxhbmRldiBbMHgleF0KAAAAAAAAAAAASW52YWxpZCBkYXRhIGxlbmd0 -aCBkbGVuICV1LCBwYWNrZXQgaW5kaWNhdGVzICV1IGJ5dGVzCgAAAAAAAAAAAFVua25vd24gSVB2 -NiBueHQgcHJvdG9jb2wgJXUKAAAAY3NvY2tfZnJlZTogc2l6ZW9mKGNza19mYy0+dS5jc29jaykg -WyV1XSwgYnl0ZXMKAAAAAAAAAAAAAAAAAAAAAEdvdCBDT05OX0VYSVNUIGZvciB4aWQ6MHgleCwg -dGFnOjB4JXgsIHJldHJ5aW5nLgoAAAAAAAAAAAAAAAAAAABjc29ja19wZWVyX2Nsb3NlOiBjc2tf -ZmMtPmZsb3djX2lkIFsweCV4XSwgdGNiX2ZjLT5mbG93Y19pZCBbMHgleF0sIGNza19mYy0+Zmxv -d2Nfc3RhdGUgWzB4JXhdLCB0Y2JfZmMtPmZsb3djX3N0YXRlIFsweCV4XQoAAAAAAGNzb2NrX3Bl -ZXJfY2xvc2U6IGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2tfZmMtPmZsb3djX3N0YXRlICBb -MHgleF0KAAAAAAAAAAAAdGNwX2Nsc19hYnJ0X3JwbDogdGNiIHRpZCBbMHglMDZ4XSwgZmxvd2Nf -dHlwZSBbMHgleF0sIGNwbG9wIFsweCV4XSBmbG93Y19zdGF0ZSAweCV4CgAAAAAAAAAAAAAAY2hf -cmF0ZVsldV06IGNhcHBlZCB0aWNrIGZyb20gcmVxdWlyZWQgJXUgdG8gc3VwcG9ydGVkICV1OyBy -YXRlICV1IChlZmYgJXUpIGRlZmljaXRfaW5jciAldSB0aWNrICV1CgAAAAAAAAAAAAAAAHBrdHNj -aGVkX2NoX3JsWyV1XTogY2hhbm5lbCBybCBub3QgYXZhaWxhYmxlIGluIGNvbmp1bmN0aW9uIHdp -dGggZmxvdyBzaGFwaW5nCgAAcGt0c2NoZWRfY2hfcmxbJXVdOiByYXRlICV1IG1heCAldQoAAAAA -AAAAAAAAAAAAcGt0c2NoZWRfY2xfd3JyWyV1OiV1XTogd2VpZ2h0ICV1CgAAAAAAAAAAAAAAAAAA -ZXFfcGFyYW1zWzB4JXg6MHgleF06IGRtYXEgMHgleCByZWFkICV1IHBmICV1IGVxaWRfYXBpICV1 -IHJldCAlZAoAAAAAAAAAAAAAAAAAAAB3YWl0X2Zvcl9jYWxpYl9kb25lOiByZXQgJWQgaW4gJXUg -YXR0ZW1wdHMKAAAAAABod19tYV9hZGRyX3RvX21lbV90eXBlX29mZjogTUEgYWRkcmVzcyAweCUw -OHggaXMgbm90IG1hcHBlZAoAAAAAaHdfbWFfYWRkcl90b19tZW1fdHlwZV9vZmY6IE1BIGFkZHJl -c3MgMHglMDh4IG1hcHMgdG8gdHlwZSAldSBvZmZzZXQgMHgleAoAAAAAAABtZW1fbWFsbG9jX3Rl -bXA6IGZhaWxlZCB0byBhbGxvY2F0ZSAldSBieXRlcywgcmV0dXJuaW5nIE5VTEwKAAAAbWVtX21h -bGxvYzogZmFpbGVkIHRvIGFsbG9jYXRlICV1IGJ5dGVzLCByZXR1cm5pbmcgTlVMTAoAAAAAAAAA -AGxlIGNvbmZpZ3VyYXRpb246IGhhc2ggbW9kZSByZXF1aXJlcyBhdCBsZWFzdCAxNiBlbnRyaWVz -LCBuaGFzaCAldQoAAAAAAAAAAAAAAAAAbGUgY29uZmlndXJhdGlvbjogaGFzaCBtb2RlIHJlcXVp -cmVzIGF0IGVudHJpZXMgdG8gYmUgYSBwb3dlciBvZiAyLCBuaGFzaCAldQoAAABsZSBjb25maWd1 -cmF0aW9uOiByZXF1ZXN0ZWQgJXUgdGNhbSBlbnRyaWVzIGJ1dCBvbmx5ICV1IGF2YWlsYWJsZSAo -bnJvdXRlICV1IG5jbGlwICV1IG5maWx0ZXIgJXUgbnNlcnZlciAldQoAAAAAbGUgY29uZmlndXJh -dGlvbjogdGNhbSByZWdpb25zIG11c3QgaGF2ZSBtdWx0aXBsZSBvZiAzMiBlbnRyaWVzLCBucm91 -dGUgJXUgbmNsaXAgJXUgbmZpbHRlciAldSBuc2VydmVyICV1CgAAAAAAAGh3X3RwX3RjcF90dW5p -bmdzOiB0dW5pbmcgZm9yIGNsdXN0ZXIgZW52aXJvbm1lbnQKAAAAAAAAAAAAAAAAAABod190cF90 -Y3BfdHVuaW5nczogdHVuaW5nIGZvciBMQU4gZW52aXJvbm1lbnQKAABod190cF90Y3BfdHVuaW5n -czogdHVuaW5nIGZvciBXQU4gZW52aXJvbm1lbnQKAABod190cF90Y3BfdHVuaW5nczogbWFudWFs -IHR1bmluZwoAAAAAAAAAAAAAAAAAAABfaHdfY2ltX2ZsYXNoX21lbWNweTogbWVtY3B5WCBzdGFy -dAoAAAAAAAAAAAAAAABfaHdfY2ltX2ZsYXNoX21lbWNweTogZHN0IDB4JTA4IG9mZnNldCAweCUw -OHggc2l6ZSAldSwgd2lkdGggb2YgJXUgaXMgbm90IHN1cHBvcnRlZAoAAAAAAAAAAAAAAABfaHdf -Y2ltX2ZsYXNoX21lbWNweTogbWVtY3B5WCBlbmQKAAAAAAAAAAAAAAAAAABjb25maWd1cmF0aW9u -IGZpbGUgcGFyc2VyIGVuY291bnRlcmVkIGVycm9yIEAgbGluZSAldToKAAAAAAAAAAAASE9TVCBQ -QUdFX1NJWkUgWzB4JTBseF0gdG9vIHNtYWxsLCBtaW4gWzB4JTBseF0gcmVxdWlyZWQKAAAAAAAA -AHBhZ2Ugc2l6ZSBbJWx1XSBtaXNtYXRjaAoAAAAAAAAAUEFHRSBzaXplICVsdSB1bnN1cHBvcnRl -ZCwgZGRwIGRpc2FibGVkCgAAAAAAAAAASG9zdCBwYWdlX3NpemUgJWx1LCBkZHBfaWR4ICV1CgBG -Q29FIEREUCBpbml0OiBmY29lIGxsaW1pdCAweCV4LCBmY29lIHVsaW1pdCAweCV4IGdibCBsbGlt -aXQgMHgleCBnYmwgdWxpbWl0IDB4JXggcGNic3ogJXgKAAAAAABGQ29FIEREUCBpbml0OiBmY29l -IHBwb2Qgb2ZmIDB4JXgsIGZjb2Ugc3QgcHBvZCBhZGRyIDB4JXggZmNvZSBudW0gcHBvZHMgMHgl -eAoAAGZjb2UgeGNoZyBtZ3IgaW5pdDogTnVtYmVyIG9mIGV4Y2hhbmdlcyBmb3IgRkNvRSBpcyAl -eAoAAAAAAAAAAABmY29lX2wydF9pbml0OiBObyB1bHB0eCBjcmVkaXQgY2g6WyV1XQoAAAAAAAAA -AABmY29lX2wydF9pbml0OiBjaDpbJXVdIGwydF9pZHggWyV1XQoAAAAAAAAAAAAAAABubyBsMnQg -ZW50cmllcyBjb25maWd1cmVkOyBmb3JjaW5nICV1IGVudHJpZXMsIHN0YXJ0aW5nIGF0ICV1CgAA -ZGNieF9pZWVlX2NvbnN0cnVjdFsldV0gZXRzICV1IHBmYyAldSBhcHAgJXUKAAAAZGNieF90aW1l -b3V0WyV1XQoAAAAAAAAAAAAAAAAAAABkY2J4X3J1bl92ZXJzaW9uX3NtWyV1XSBEQ0JYX1ZFUl9T -VEFURV9SVU5fSUVFRQoAAAAAAAAAAAAAAAAAAAAAZGNieF9ydW5fdmVyc2lvbl9zbVsldV0gRENC -WF9WRVJfU1RBVEVfUlVOX0NFRQoAZGNieF9ydW5fdmVyc2lvbl9zbVsldV0gRENCWF9WRVJfU1RB -VEVfUlVOX05PTkUKAAAAAAAAAAAAAAAAAAAAAE1BQyBmYWlsZWQgdG8gcmVzeW5jIHR4CgAAAAAA -AAAAcG9ydFsldV0gbGluayB1cCAoJXUpIChzcGVlZCAlI3ggYWNhcHMgJSN4IGxwY2FwcyAlI3gp -CgAAAAAAAAAAAHBvcnRfaHNzX3NpZ2RldFsldV06IGhzc19zaWdkZXQgY2hhbmdlZCB0byAweCV4 -CgAAAAAAAAAAAAAAAAAAAABwb3J0WyV1XSBpbml0aWFsaXppbmcgS1IKAAAAAAAAAENhbGN1bGF0 -aW9uIG91dCBvZiBib3VuZHMgZnVyaW5nIGluaXQ6ICUjeCAlI3ggJSN4CgAAAAAAAAAAAAAAAABf -aHdfdHBfcGdtbmd0OiB0eF9wYWdlX21heCAldSByeF9wYWdlX21heCAldSBwc3RydWN0cyAldSBz -aXplICV1CgAAAAAAAAAAAAAAAAAAAG1wYXJ0aXRpb25fb3RoZXJzX3RvdGFsOiBkZHAgJXUgZGRw -X2lzY3NpICV1IHN0YWcgJXUgcGJsICV1IHJxICV1IHJxdWRwICV1IC0+ICV1CgAAAAAAAAAAAAAA -AAAAAF9tcGFydGl0aW9uX2JhbmtzX21jWDogbmJhbmtzX3BtdHggJXUgKCV1TUIpIG5iYW5rc19w -bXJ4ICV1ICgldU1CKSBuYmFua3Nfb3RoZXJzICV1ICgldU1CKSBuYmFua3NfZncgJXUgKCV1TUIp -CgBfbXBhcnRpdGlvbl9iYW5rc19tYzE6IG5iYW5rc19wbXR4ICV1ICgldU1CKSBuYmFua3Nfb3Ro -ZXJzICV1ICgldU1CKSBuYmFua3NfZncgJXUgKCV1TUIpCgAAAAAAAABfbXBhcnRpdGlvbl9iYW5r -c19tYzA6IG5iYW5rc19wbXJ4ICV1ICgldU1CKSBuYmFua3Nfb3RoZXJzICV1ICgldU1CKQoAAAAA -AAAAAAAAAG1lbV9tYWxsb2NfaW50ZXJuYWw6IGZhaWxlZCB0byBhbGxvY2F0ZSAldSBieXRlcywg -cmV0dXJuaW5nIE5VTEwKAAAAAAAAAAAAAAAAAAAAaHdfZWRjX2Jpc3RbJXVdOiBiaXN0X2NtZFsw -eCUwOHhdIGFkZHIgMHgleCBsZW4gMHgleAoAAAAAAAAAAAAAAGh3X2VkY19iaXN0WyV1XTogZG9u -ZSwgZW5jb3VudGVyZWQgJXUgZXJyb3JzIG9uIGZpcnN0IGFuZCAldSBlcnJvcnMgb24gc2Vjb25k -IGF0dGVtcHQgKCV1Z2JwcykKAG1lbV9pbml0X2NhY2hlczogY2FjaGVfc2l6ZSAldSBmbG93Y19i -dWZfdGNiX2NhY2hlX3NpemUgJXUgYnVmbGw2NF9jYWNoZV9zaXplICV1CgAAAAAAAAAAAAAAAAAA -AG1wYXJ0aXRpb25fcG10eDogbSAweCUwOHggc2l6ZSAldQoAAAAAAAAAAAAAAAAAAG1wYXJ0aXRp -b25fcG1yeDogbSAweCUwOHggc2l6ZSAldQoAAAAAAAAAAAAAAAAAAG1wYXJ0aXRpb25fZWRjIChu -byBleHRtZW0pOiBtIDB4JTA4eCBzaXplICV1CgAAAG1wYXJ0aXRpb25fZWRjX2VzdGltYXRlOiBo -dyBtb2R1bGVzIHJlcXVpcmUgJWQgYnl0ZXMgaW4gRURDCgAAAABUZW1wZXJhdHVyZS9Wb2x0YWdl -IFNlbnNvcjogQ29yZSBjbG9jayAldSA+ICV1OyBjYXBwaW5nIHRvIHN0YXkgaW4gY29tcGxpYW5j -ZSB3aXRoIGhhcmR3YXJlLgoAAABjaG5ldF9ieWU6bDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwg -bDJkZXZfZmMtPmZsb3djX3BjaWVfcGZuIFsweCV4XSwgbDJkZXZfZmMtPmZsb3djX3BjaWVfdmZu -IFsweCV4XSwgcG9ydCBbMHgleF0KAAAAAAAAAAAAAAAAAGNobmV0X2J5ZTp2bGFuZGV2X2ZjLT5m -bG93Y19pZCBbMHgleF0sIHZsYW5kZXZfZmMtPmZsb3djX3BjaWVfcGZuIFsweCV4XSwgdmxhbmRl -dl9mYy0+Zmxvd2NfcGNpZV92Zm4gWzB4JXhdLCBwb3J0IFsweCV4XQoAAAAAAAAAZm9pc2NzaV9j -b3JlX2J5ZTogYWN0aXZlIHNlc3NfY250ICVkCgAAAAAAAAAAAAAAaHdfbWFjX2FlY19jb21wbGV0 -ZVsldV0gb24gbGFuZXMgJSN4IChzaWdkZXQgJSN4KSwgdHhfbGFuZXMgJSN4CgAAAAAAAAAAAAAA -AAAAAABhZWNfZnNtWyV1XSA6IHN0YXRlIFNUQVJUIChzaWdkZXQgJSN4KQoAAAAAAAAAAABhZWNf -ZnNtWyV1XSA6IHRyYW5zaXRpb25pbmcgdG8gVFJBSU5JTkcKAAAAAAAAAABhZWNfZnNtWyV1XSA6 -IFRSQUlOSU5HX0NPTVBMRVRFCgAAAAAAAAAAAAAAAAAAAABhZWNfZnNtWyV1XSA6IFJlbW90ZSBm -YXVsdCB3aGlsZSB3YWl0aW5nIGZvciBsaW5rIHN0YXR1cyAweCV4CgAAYWVjX2ZzbVsldV0gOiBS -ZW1vdGUgZmF1bHQgY2xlYXJlZCB3aGlsZSB3YWl0aW5nIGZvciBsaW5rIHN0YXR1cyAweCV4CgAA -AAAAAAAAAABhZWNfZnNtWyV1XSA6IERPTkUKAAAAAAAAAAAAAAAAAGFlY19mc21bJXVdIHRpbWVk -IG91dCB0cmFpbmluZyBGU01fU1RBVEVfMCAweCV4LCBfMSAweCV4IF8yIDB4JXggXzMgMHgleCwg -TGluayBTdGF0dXMgMHgleAoAAAAAAGJlYW5fZnNtWyV1XSA6IHN0YXRlIFNUQVJUIChjb3VudCA9 -ICV1KQoAAAAAAAAAAGJlYW5fZnNtWyV1XSA6IGVudGVyaW5nIHN0YXRlIFdBSVRfU0lHREVUCgAA -AAAAAGJlYW5fZnNtWyV1XSA6IGVudGVyaW5nIHN0YXRlIE5YUF9IQU5ETEUKAAAAAAAAAGJlYW5f -ZnNtWyV1XSA6IGVudGVyaW5nIHN0YXRlIFdBSVRfQ09NUExFVEUKAAAAAGJlYW5fZnNtWyV1XSA6 -IERMIDQwRyBOZWdvdGlhdGlvbiBFcnJvciAtIEF0dGVtcHRpbmcgdG8gY29udGludWUKAAAAAAAA -AAAAAAAAAAAAYmVhbl9mc21bJXVdIDogc3RhdGUgRE9ORQoAAAAAAABiZWFuX2ZzbVsldV0gOiBz -dGF0ZSBSRVNUQVJUMQoAAGJlYW5fZnNtWyV1XSA6IHN0YXRlIFJFU1RBUlQyCgAAYmVhbl9mc21b -JXVdIDogc3RhdGUgUkVTVEFSVDMKAABiZWFuX2ZzbVsldV0gVElNRU9VVDsgc3RhdGUgJXUgZXRo -X3N0YXR1cyAlI3ggYmVhbl9zdGF0dXMgJSN4IGhzcyBzaWdkZXQgJSN4IHJldHJ5X2NudCAldQoA -AAAAAABwb3J0ICV1IGNoYW5naW5nIHNwZWVkIHRvIDFHCgAAAHBvcnQgJXUgbmVnb3RpYXRlZCB1 -bnN1cHBvcnRlZCBzcGVlZCAlI3gKAAAAAAAAAGJlYW4vYWVjIGNvbXBsZXRlIChyZXRyeTogJXUp -CgAAcG9ydFsldV0gcmVzZXR0aW5nIEtSCgAAAAAAAAAAAABwb3J0ICV1IG5lZ290aWF0ZWQgdW5z -dXBwb3J0ZWQgc3BlZWQgJSN4CgAAAAAAAABiZWFuL2FlYyBjb21wbGV0ZSAocmV0cnk6ICV1KQoA -AFJhbmdlIGNhbGM6IEF2ZXJhZ2VkICUjeCBidXQgaWdub3JlZCB2YWx1ZSAlI3ggKGl0ZXJhdGlv -biAldSkKAABNQyBjYWxpYnJhdGlvbiBmYWlsZWQ6IERGSSBpbml0IG5vdCBnb2luZyB0byAwCgBN -QyBjYWxpYnJhdGlvbiBmYWlsZWQ6IERGSSBpbml0IG5vdCBjb21wbGV0aW5nCgBNQyBjYWxpYnJh -dGlvbiBmYWlsZWQ6IENhbGlicmF0aW9uIGRpZG4ndCBjb21wbGV0ZS4KAAAAAAAAAAAAAAAATUMg -Y29tbWFuZCBmYWlsZWQgdG8gY29tcGxldGUob3Bjb2RlICUjeCBjYWRkciAlI3ggYmFkZHIgJSN4 -IGRlbGF5ICVkKQoAAAAAAAAAAABwZm4gJXUgdmZuICV1IGNvbXBsZXRlIGltbWVkaWF0ZQoAAAAA -AAAAAAAAAAAAAABwZm5fYml0bWFwIDB4JXgKAAAAAAAAAAAAAAAAAAAAAGJhZCBtYWlsYm94IGNt -ZDogcGZuIDB4JXggdmZuIDB4JXg7IG9wY29kZSAweCV4ID4gTEFTVEMyRSAweCV4CgBtYWlsYm94 -IGNtZCBub3QgeWV0IHN1cHBvcnRlZDogcGZuIDB4JXggdmZuIDB4JXg7IG9wY29kZSAweCV4CgAA -YmFkIG1haWxib3ggY21kOiBwZm4gMHgleCB2Zm4gMHgleDsgb3Bjb2RlIDB4JXggaXMgdmFsaWQg -cG9zdCBkZXZpY2UgaW5pdCBvbmx5CgBiYWQgbWFpbGJveCBjbWQ6IHBmbiAweCV4IHZmbiAweCV4 -OyBvcGNvZGUgMHglMDJ4IHJhbWFzayAweCV4IGNtZCByYW1hc2sgMHgleAoAAGJhZCBtYWlsYm94 -IGNtZDogcGZuIDB4JXggdmZuIDB4JXg7IG9wY29kZSAweCUwMnggbGVuMTYgMHgleCB2ZXJzdXMg -ZXhwZWN0ZWQgbGVuMTYgMHgleAoAAAAAAAAAAGluc3VmZmljaWVudCBjYXBzIHRvIHByb2Nlc3Mg -bWFpbGJveCBjbWQ6IHBmbiAweCV4IHZmbiAweCV4OyByX2NhcHMgMHgleCB3eF9jYXBzIDB4JXgg -cmVxdWlyZWQgcl9jYXBzIDB4JXggd19jYXBzIDB4JXgKAAAAAAAAAAAAaW5zdWZmaWNpZW50IGNh -cHMgdG8gcHJvY2VzcyBtYWlsYm94IGNtZDogcGZuIDB4JXggdmZuIDB4JXg7IHJfY2FwcyAweCV4 -IHd4X2NhcHMgMHgleCByZXF1aXJlZCByX2NhcHMgMHgleCB3X2NhcHMgMHgleAoAAAAAAAAAAABk -b3dubG9hZF9zcmFtOiBlcnJvciwgcmV0ICVkCgAAAGRvd25sb2FkX3RjYW06IGVycm9yLCByZXQg -JWQKAAAAaHdfcG93ZXJfcHJlcDogVkREPU5PTkUgYnV0IFZDUz0lZAoAAAAAAAAAAAAAAAAAaHdf -cG93ZXJfcHJlcDogdW5zdXBwb3J0ZWQgZXh0ZXJuYWwgYWRqdXN0YWJsZSBwb3dlciByZWd1bGF0 -b3JzIFZERD0lZCwgVkNTPSVkCgBod19wb3dlcl9wcmVwOiB1bnN1cHBvcnRlZCBWREQ9JWQKAAAA -AAAAAAAAAAAAAABod19wb3dlcl9wcmVwOiB1bnN1cHBvcnRlZCBWQ1M9JWQKAAAAAAAAAAAAAAAA -AABod19wb3dlcl9wcmVwOiBpMmMgd3JpdGUgZXJyb3IsIFZERD0lZCxyZXQ9JWQKAABod19wb3dl -cl9wcmVwOiB1bnN1cHBvcnRlZCBWREQ9JWQKAAAAAAAAAAAAAAAAAABod19wb3dlcl9wcmVwOiBp -MmMgd3JpdGUgZXJyb3IsIFZDUz0lZCxyZXQ9JWQKAABod19wb3dlcl9wcmVwOiB1bnN1cHBvcnRl -ZCBWQ1M9JWQKAAAAAAAAAAAAAAAAAABWUEQgcmVnaW9uIGlzIHRvbyBzbWFsbCAoU0VSQ0ZHX1NS -X1BGTlZQRFNJWkUgMHgleCkKAAAAAAAAAAAAAAAAY2ZfcHJlcDogZXJyb3IsIHJldCAlZAoAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIIAAAEgAAAAAAAA -AIIAAAEAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAgAAAAAAAAAAA -AAAAAIAAAAAAAAAAAAcAAAAAAAAAAAAAAAEAAAAAEAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAA -AAAAgBADAAAAAAAACAAAAAACAAAAAAAAAAAAIAAAAAAAAAAAAAAAAQADgAAAAAAAAAAAAAACAAAA -AAAAAAAAIAOAAAAAAAAAAAAAEAKAAIAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AEAAAAAAAAAAIAAAAAAAAAAAAAAAgAACgAAAAAAAAAAAAAACgAAAAAAAAAAAgAACAAAAAAAAAAAA -AAACAAAAAAAAAAAAAAACgAAAAAAAAAAAAQADAAAAAAAAAAAAAAKDAAAAAAAAAAAAEAKAAAAAAAAA -AAAAMAADAAAAAAAACAAAMAADAAAAAAAAAAAAMAWDAAAAAAAACAAAMAWDAAAAAAAAAAAAMASDAAAA -AAAACAAAMASDAAAAAAAAAAAAMAMDAAAAAAAACAAAMAMDAAAAAAAAAAAAOAMDAAAAAAAAAAAAOAWD -AAAAAAAAAAAAOASDAAAAAAAAAAAAOAADAAAAAAAAAAAANAaCAAAAAAAAAAAAPAOCAAAAAAAAAAAA -PAADAAAAAAAACAAAPAADAAAAAAAAAAAAPASDAAAAAAAAAAAAPAUDAAAAAAAAAAAAPQQDAAAAAAAA -AAAAPAODAAAAAAAAAAAALAACAAAAAAAAAAAALAWCAAAAAAAAAAAALAUCAAAAAAAAAAAAEAaAAAAA -AAAAAAAAEAaCgAAAAAAAAAAAAA6CAAAAAAAAAAAAEAeCgAAAACAAAAAAAAeCAAAAACAAAAAAEAcC -gAAAAAAAAAAAEAcCgAAAAAAAAAAAEAcCgAAAAAAAAAAAAAcCAAAAACAAAAAAEBeDAAAAAAAACAAA -EBeDAAAAAAAACAAAEAAAAAAAAAAAAAAAEAYDgAAAAAAAAAAAAA4DAAAAAAAAAAAAEAYDQAAAAAAA -AAAAEAYDAAAAAAAAAAAAEAYAAAAAAAAAAAAAAAYDgAAAAAAAAAAAAAYDAAAAAAAAAAAAAA4CAAAA -AAAAAAAAAA4CAAAAAAAAAAAAEAYCAAAAAAAAAAAAEAYCAAAAAAAAAAAAEAYCgAAAAAAAAAAAEAYC -gAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAA -ABADAAAAAAAACAAAAAAAAAAAAAAAAAAA//////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////AAAAIAAAAADAAAAAAAAAIAAA -AADgAAAAAAAAAAIAAAAAAAAAQAAAAAAAAAAAAAAAAAABIQAAAAAAAAAAAAEBIAAAAAAAAAAAAAAC -AAAABAAEAAAAAACBQAAAAAAAAAAAAAaAAAAEAAAAAAAAAIAAQAAAAAAAAgAAAIAAIAAAAAAAAgAA -CIAAAAAAAEAAAAACAQBAAAAAAAAAAAAAAQBCAAAAAAAAAAAAAAAgAAAAAAAAAAAAAhAgAAAAAAAA -AAAAAgwCAAAAAAAAAAAAAIUCAAAABAAAAAAAAIBCAAAAAAAAAAAAgIBCAEAAAAAAAAAAgIBCAAAA -AAAAAAAAAgAiAAAAAAAAAAAAAIBBAAAAAAAAAAAAgIBBAAAAAAAAAAAAAIBBgAAAAAAAAAAAgIBB -gAAAAAAAAAAAAgAhAAAAAAAAAAAAABAggAAAAAAAAAAAAiUAgAAAAAAAAAAAAAUAAAAAAAAAAAAA -CIgEgAAAAAAAAAAACIgEgAAAAAAAAAAACKIAgAAAAAAAAAAACKIAgAAAAAAAAAAACKMAgAAAAAAA -AAAACKMAgAAAAAAAAAAACKSAgAAAAAAAAAAACKSAgAAAAAAAAAAABKSAwAAAAAAAAAAABKIAwAAA -AAAAAAAABKMAwAAAAAAAAAAABIgEwAAAAAAAAAAAAAkBgAAAAAAAAAAAAgwAgAAAAAAAAAAAAIgE -wAAAAAAAAAAAAIgEgAAAAAAAAAAAAgsAgAAAAAAAAAAAAIqAgAAAAAAAAAAAAAuAgAAAAAAAAAAA -AIwAgAAAAAAAAAAAAiAQgAAAAAAAAAAAAgoAgAAAAAAAAAAAAgqAgAAAAAAAAAAAAAkCgAAAAAAA -AAAAAAEBAAAAAAAAAAAAAAEAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAACBEAAA -AAAAAAAAAACBCAAAAAAAAAAAAACBBAAAAAAAAAAAAACBgAAAAAAAAAAAAIAAwAAAAAAAAAAAAIAA -oAAAAAAAAAAAAAAIAAAAAAAAAAAAAIGAAAAAAAAAAAAAAIGAgAAAAAAAAAAAAImAgAAAAAAAAAAA -AImAwAAAAAAAAAAAAAGCAAAAAAAAAAAAAgGAAAAAAAAAAAAAAgGAgAAAAAAAAAAAAEGBgAAAAAAA -AAAAAgGBgAAAAAAAAAAAAEmBgAAAAAAAAAAAAgmBgAAAAAAAAAAAAgGBAAAAAAAAAAAAAEGBAAAA -AAAAAAAAIAAAAAAAAAAAAAAAEAAAAgEAAAAAAAAAEAAAAgAAAAAAAAAAEAAAAAAAAAAAAAAAAIAA -wAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAIAJIAAAAAAAAAA2YAIABAAAAAAAgAkgAAAAAAAAADcgElBEAAAAAAAAAAAAAAAAAAAAOWACAA -QAAAAAAIAAAAAgCIA4cAAFYAIABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAAAAAAAAAAAAAAAAOW -ACAAQAAAAAAAAAAAAAAAAAAAA5YAIABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAAAAAAAAAAAAAA -AAOWACAAQAAAAAAAAAAAAAAAAAAAA5YAIABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAACAAAAAIA -iAOFAACWASAAQAAAAAAIAAAAAgCIA4UAAJYBIABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAAAAAA -AAAAAAAAAAOWACAAQAAAAAAIAAAAAgCIA4UAAJYBIABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAA -AAAAAAAAAAACAAOWACYEQAAAAAAIRyABBAAAArAAAtIFQCREAAAAAAhHIAEEAAACsgAC0gVGJEAA -AAAACAAAAAIAiAOHAACWASYEQAAAAAAAAAAAAAAAAAAAA5YAIABAAAAAAABHIAEGDKGCskABkgRA -JEQAAAAACAAAAAIAiAOHAACWASYEQAAAAAAARyABBAygQrGAAhIFQCREAAAAAAgAAAACAIgDhwAA -lgEmBEAAAAAACAAAAAIAiAOFAACWASAAQAAAAAAIAAAAAgCIA4UAAJYBIABAAAAAAAgAAAACAIgD -hQAAlgEgAEAAAAAAAAAAAAAAAAAAAAOWACAAQAAAAAANxRK6ArCA0xRUi+JKRiRAAAAAAAXFEroC -t4DTFFSLYkmmJEAAAAAABcUSogawgNMUVIviSkYkQAAAAAANxRKiBreA0xRUi2JJpiRAAAAAAAXF -EqIGsIDTFFSL4kpGJEAAAAAADcUSoga3gNMUVItiSaYkQAAAAAAFxRKiBrCA0xRUi+JKRiRAAAAA -AA3FEqIGt4DTFFSLYkmmJEAAAAAACcQQoAIAgJAAAItiacYkQAAAAAABxBCgBrCAkwZUi2JpxiRA -AAAAAAHEEKAGsICTBlSLYmnGJEAAAAAAAcUQuAawgJMWVItiSMYkQAAAAAAIoRCIAgCBWBIAC1IA -piRAAAAAAAnAEJACsIADFlSKkgHGJEAAAAAACcAQuAawgAMQlIviAkYkQAAAAAAJwBC4ArSAAxCU -i2IBpiRAAAAAAAnAELgCtIADEJSLYgGmJEAAAAAACcAQuAK0gAMQlItiAaYkQAAAAAAJwBC4ArSA -AxCUi2IBpiRAAAAAAAGgEJAGtIADEJSLYgGmJEAAAAAAAcAQgAKwgAMUVIpSAMYkQAAAAAABwBCA -ArCAAxRUilIAxiRAAAAAAAHAEIACsIADFFSKUgDGJEAAAAAACEcgAQQAAAKwAALSBEAkQAAAAAAA -gQAAAgCFWAdAC1IApiRAAAAAAAAAAAAEAKBAAYAB1gAgAEAAAAAAAAAAAAYAoYAAQAFWACAAQAAA -AAAAAAAABACgQAGAAdYAIABAAAAAAAiBAAACAIVZgAQLUgCmJEAAAAAACgFAAAAAABgCAANCASak -QgAAAAAAAAAAAAAAAAAAA5YAIABAAAAAAAAAAAAEAKBAAYAB1gAgAEAAAAAACAAAAAIAiAOFAAPW -ACAAQAAAAAAIAAAAAgCIA4UAA9YAIABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAAAAAAAAAAAAAA -AAOWACAAQAAAAAAAAAAABACgQAGAAdYAIABAAAAAAAnAELgCtIADEJSLYgGmJEAAAAAAAAAAAAAA -AAACAAOWACYEQAAAAAAAAAAAAAAAAAAAA5YAIABAAAAAAAgAAAACAIgDhQAAlgEgAEAAAAAAAAAA -AAQAoEABgAHWACAAQAAAAAAAAAAABACgQAGAAdYAIABAAAAAAAAAAAAEAKBAAYAB1gAgAEAAAAAA -CKEQiAIAgVgQAAkSAaYkQAAAAAAAAAAABACgQAGAAdYAIABAAAAAAAAAAAAGAKGAAEABVgAgAEAA -AAAACAAAAAIAiAOHQAjSAkYkQgAAAAAJxRKiApSI0hKAiyJJxiRAAAAAAAHAEIAGpIgBBVSLUgDG -JEAAAAAACcAQgAKkiACFVItSAMYkQAAAAAAJwBCABrSIAwEUi1IBpiRAAAAAAA3AAAACsIDDFlSL -4gNGJEAAAAAAAAAAAAAAAAAAAAOWACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAw -AAQAAAACAAACACYkQAAAAAAARzAABgMgArcACAIBwCRAAAAAAAgDAAACBqAKtwAIAgHGJEYAAAAA -AAAAAAAAAAACAAACACYkQAAAAAAAIFAABAAAAAAAAAIBJiRGAAAAAAhgIACEAAAAAAAABgAgAEAA -AAAACGAgAIQAAAACATACACYlQAAAAAAIYAAABACEAYIEBAIBxiTCAAAAAAHAAAACQ4ADAgyIAgGm -JEAAAAAACABgAAQAAAACAAACACYkQAAAAAAIAGAABAAAAAAAAAQBIABAAAAAAAAAAAAAAAAAAAAA -BAEgAEAAAAAABAgUgAYKAAAHAUwCIKYmQAAAAAAIgAAABgCEAYAECAIBpiTAAAAAAABAAAACAKAA -AEAIAgCmJEYAAAAAAAAAAAAAAAACAAACACYkQAAAAAAEAAAAAoQAAwKKCAIEwCRAAAAAAAAAAAAA -AAAAAgAABgEgSEAAAAAAACBQAAQAAAACAAACACYkQAAAAAAIYCAAhAAAAAIAAAYAJgRAAAAAAAhg -IACEAAAAAgAAAgEmJUAAAAAACGAAAAQAhAGABAQCAcYkwAAAAAAIAGAABAAAAAAAAAQBIABAAAAA -AAAAgAAgAAAAAAAAAgAmTHAAAAAAAACAACAAAAAAAAAGASAAAAAAAAAAAIAAIAAAAAAAAAIAJkxw -AAAAAAAAgAAgAAAAAAAABgEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAnAAAAItIwECRYEAgTGJEAAAAAACcAAAAw0gAQJFgQCBMYkQAAAAAAECHSATAkA -AFAAXAJh5iRAAAAAAAwIdIBEAAAAUgBAAmEmJEAAAAAACAIQoAQAAAAAAQACACYkQAAAAAAIAhCg -BAAAAAABAAIAJiRAAAAAAAQIdABCAQAABwCIAmDGJEAAAAAADcgUAAIJAAAEQJwCYOYkQAAAAAAJ -yBCAArSABAKUiAJlxiRAAAAAAA3IdABMtIADAJSIAmCmJMAAAAAABch0AEg0kAMAlIgCYKYkwAAA -AAAIRwAABAAAAAAAAAIBICRAAAAAAAhHAAAEAAAAAAAAAgRAJEAAAAAAAEcgAQwHIcK3AAgCAMAk -RAAAAAAARyABDAchwrcACAIAwCREAAAAAABHIAEMByHCtwAIAgDAJEQAAAAAAAAgAQgAhAAFQIgC -AcYkwAAAAAAAACABCACEAAVAiAIBxiTAAAAAAAAAIAEIAIQABUCIAgHGJMAAAAAAAAAgAYaCAAEC -wIgCA8YkwAAAAAAAACABgoIAAALAiAIDxiTAAAAAAAnAIAGCpIABBUCIAgHGJMAAAAAACAAAAAwA -hAAFQIgCAcYkwAAAAAAAACABhoIAAQLAiAIDxiTAAAAAAAAAIAGCggAAAMCIAgKmJMAAAAAACcAg -AYKkgAEFQIgCAcYkwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAQQJ -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW2dsb2JhbF0KcnNzX2dsYl9jb25maWdfbW9kZT1i -YXNpY3ZpcnR1YWwKcnNzX2dsYl9jb25maWdfb3B0aW9ucz10bmxtYXBlbixoYXNodG9lcGxpdHos -dG5sYWxsbGtwCnBsX3RpbWVvdXRfdmFsdWU9MTAwMDAKcmVnWzB4MTAwOF09MHg0MDgxMC8weDIx -YzcwCnJlZ1sweDEwMGNdPTB4MjIyMjIyMjIKcmVnWzB4MTBhMF09MHgwMTA0MDgxMApyZWdbMHgx -MDQ0XT00MDk2CnJlZ1sweDEwNDhdPTY1NTM2CnJlZ1sweDEwNGNdPTE1MzYKcmVnWzB4MTA1MF09 -OTAyNApyZWdbMHgxMDU0XT05MjE2CnJlZ1sweDEwNThdPTIwNDgKcmVnWzB4MTA1Y109MTI4CnJl -Z1sweDEwNjBdPTgxOTIKcmVnWzB4MTA2NF09MTYzODQKcmVnWzB4MTBhNF09MHhhMDAwYTAwMC8w -eGYwMDBmMDAwCnJlZ1sweDEwYThdPTB4NDAyMDAwLzB4NDAyMDAwCmJhcjJ0aHJvdHRsZWNvdW50 -PTUwMApzZ2VfdGltZXJfdmFsdWU9NSwxMCwyMCw1MCwxMDAsMjAwCnJlZ1sweDExMjRdPTB4MDAw -MDA0MDAvMHgwMDAwMDQwMApyZWdbMHgxMTMwXT0weDAwZDVmZmViCnJlZ1sweDExM2NdPTB4MDAw -MmZmYzAKcmVnWzB4N2QwNF09MHgwMDAxMDAwMC8weDAwMDEwMDAwCnJlZ1sweDdkNmNdPTB4MDAw -MDAwMDAvMHgwMDAwNzAwMApyZWdbMHg3ZDc4XT0weDAwMDAwNDAwLzB4MDAwMDAwMDAKcmVnWzB4 -N2RjMF09MHgwZTJmODg0OQpmaWx0ZXJNb2RlPWZjb2VtYXNrLHNydnJzcmFtLGZyYWdtZW50YXRp -b24sbXBzaGl0dHlwZSxwcm90b2NvbCx2bGFuLHBvcnQsZmNvZQpmaWx0ZXJNYXNrPXByb3RvY29s -LGZjb2UKdHBfcG1yeD0zMAp0cF9wbXJ4X3BhZ2VzaXplPTY0Swp0cF9ucnhjaD0wCnRwX3BtdHg9 -NTAKdHBfcG10eF9wYWdlc2l6ZT02NEsKdHBfbnR4Y2g9MAp0cF9tdHVzPTg4LDI1Niw1MTIsNTc2 -LDgwOCwxMDI0LDEyODAsMTQ4OCwxNTAwLDIwMDIsMjA0OCw0MDk2LDQzNTIsODE5Miw5MDAwLDk2 -MDAKcmVnWzB4N2QwOF09MHgwMDAwMDgwMC8weDAwMDAwODAwCnJlZ1sweDdkNDhdPTB4MDAwMDAw -MDAvMHgwMDAwMDQwMApyZWdbMHg3ZDYwXT0weDA2MDAwMDAwLzB4MDcwMDAwMDAKcmVnWzB4MTkx -NjhdPTB4MDQwMjAxMDAKcmVnWzB4MTljMDRdPTB4MDA0MDAwMDAvMHgwMDQwMDAwMAptY19tb2Rl -X2JyY1swXT0xCm1jX21vZGVfYnJjWzFdPTEKcmVnWzB4OGRjMF09MHgwMDAwMDAwNC8weDAwMDAw -MDA0CltmdW5jdGlvbiIwIl0KbnZmPTE2Cnd4X2NhcHM9YWxsCnJfY2Fwcz1hbGwKbnZpPTEKbmlx -ZmxpbnQ9OApuZXRoY3RybD04Cm5lcT0xNgpuZXhhY3RmPTgKY21hc2s9YWxsCnBtYXNrPTB4MQpb -ZnVuY3Rpb24iMSJdCm52Zj0xNgp3eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT0xCm5pcWZsaW50 -PTgKbmV0aGN0cmw9OApuZXE9MTYKbmV4YWN0Zj04CmNtYXNrPWFsbApwbWFzaz0weDIKW2Z1bmN0 -aW9uIjIiXQpudmY9MTYKd3hfY2Fwcz1hbGwKcl9jYXBzPWFsbApudmk9MQpuaXFmbGludD04Cm5l -dGhjdHJsPTgKbmVxPTE2Cm5leGFjdGY9OApjbWFzaz1hbGwKcG1hc2s9MHg0CltmdW5jdGlvbiIz -Il0KbnZmPTE2Cnd4X2NhcHM9YWxsCnJfY2Fwcz1hbGwKbnZpPTEKbmlxZmxpbnQ9OApuZXRoY3Ry -bD04Cm5lcT0xNgpuZXhhY3RmPTgKY21hc2s9YWxsCnBtYXNrPTB4OApbZnVuY3Rpb24iNCJdCnd4 -X2NhcHM9YWxsCnJfY2Fwcz1hbGwKbnZpPTI4Cm5pcWZsaW50PTE3MApuZXRoY3RybD0xMDAKbmVx -PTI1NgpucXBjcT0xMjI4OApuZXhhY3RmPTQwCmNtYXNrPWFsbApwbWFzaz1hbGwKbmV0aG9mbGQ9 -MTAyNApucm91dGU9MzIKbmNsaXA9MzIKbmZpbHRlcj00OTYKbnNlcnZlcj00OTYKbmhhc2g9MTIy -ODgKcHJvdG9jb2w9bmljX3ZtLG9mbGQscmRkcCxyZG1hYyxpc2NzaV9pbml0aWF0b3JfcGR1LGlz -Y3NpX3RhcmdldF9wZHUsaXNjc2lfdDEwZGlmCnRwX2wydD0zMDcyCnRwX2RkcD0yCnRwX2RkcF9p -c2NzaT0yCnRwX3N0YWc9Mgp0cF9wYmw9NQp0cF9ycT03CltmdW5jdGlvbiI1Il0Kd3hfY2Fwcz1h -bGwKcl9jYXBzPWFsbApudmk9NApuaXFmbGludD0zNApuZXRoY3RybD0zMgpuZXE9NjQKbmV4YWN0 -Zj0xNgpjbWFzaz1hbGwKcG1hc2s9YWxsCm5zZXJ2ZXI9MTYKbmhhc2g9MjA0OAp0cF9sMnQ9MTAy -MApwcm90b2NvbD1pc2NzaV9pbml0aWF0b3JfZm9mbGQKdHBfZGRwX2lzY3NpPTIKaXNjc2lfbnRh -c2s9MjA0OAppc2NzaV9uc2Vzcz0yMDQ4CmlzY3NpX25jb25uX3Blcl9zZXNzaW9uPTEKaXNjc2lf -bmluaXRpYXRvcl9pbnN0YW5jZT02NApbZnVuY3Rpb24iNiJdCnd4X2NhcHM9YWxsCnJfY2Fwcz1h -bGwKbnZpPTQKbmlxZmxpbnQ9MzQKbmV0aGN0cmw9MzIKbmVxPTY2Cm5leGFjdGY9MzIKY21hc2s9 -YWxsCnBtYXNrPWFsbApuaGFzaD0yMDQ4CnRwX2wydD00CnByb3RvY29sPWZjb2VfaW5pdGlhdG9y -CnRwX2RkcD0yCmZjb2VfbmZjZj0xNgpmY29lX252bnA9MzIKZmNvZV9uc3NuPTEwMjQKW2Z1bmN0 -aW9uIjEwMjMiXQp3eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT00CmNtYXNrPWFsbApwbWFzaz1h -bGwKbmV4YWN0Zj04Cm5maWx0ZXI9MTYKW2Z1bmN0aW9uIjAvKiJdCnd4X2NhcHM9MHg4MgpyX2Nh -cHM9MHg4Ngpudmk9MQpuaXFmbGludD00Cm5ldGhjdHJsPTIKbmVxPTQKbmV4YWN0Zj00CmNtYXNr -PWFsbApwbWFzaz0weDEKW2Z1bmN0aW9uIjEvKiJdCnd4X2NhcHM9MHg4MgpyX2NhcHM9MHg4Ngpu -dmk9MQpuaXFmbGludD00Cm5ldGhjdHJsPTIKbmVxPTQKbmV4YWN0Zj00CmNtYXNrPWFsbApwbWFz -az0weDIKW2Z1bmN0aW9uIjIvKiJdCnd4X2NhcHM9MHg4MgpyX2NhcHM9MHg4Ngpudmk9MQpuaXFm -bGludD00Cm5ldGhjdHJsPTIKbmVxPTQKbmV4YWN0Zj00CmNtYXNrPWFsbApwbWFzaz0weDQKW2Z1 -bmN0aW9uIjMvKiJdCnd4X2NhcHM9MHg4MgpyX2NhcHM9MHg4Ngpudmk9MQpuaXFmbGludD00Cm5l -dGhjdHJsPTIKbmVxPTQKbmV4YWN0Zj00CmNtYXNrPWFsbApwbWFzaz0weDgKW3BvcnQiMCJdCmRj -Yj1wcHAsZGNieApiZ19tZW09MjUKbHBia19tZW09MjUKaHdtPTMwCmx3bT0xNQpkd209MzAKZGNi -X2FwcF90bHZbMF09MHg4OTA2LGV0aGVydHlwZSwzCmRjYl9hcHBfdGx2WzFdPTB4ODkxNCxldGhl -cnR5cGUsMwpkY2JfYXBwX3RsdlsyXT0zMjYwLHNvY2tldG51bSw1Cltwb3J0IjEiXQpkY2I9cHBw -LGRjYngKYmdfbWVtPTI1CmxwYmtfbWVtPTI1Cmh3bT0zMApsd209MTUKZHdtPTMwCmRjYl9hcHBf -dGx2WzBdPTB4ODkwNixldGhlcnR5cGUsMwpkY2JfYXBwX3RsdlsxXT0weDg5MTQsZXRoZXJ0eXBl -LDMKZGNiX2FwcF90bHZbMl09MzI2MCxzb2NrZXRudW0sNQpbcG9ydCIyIl0KZGNiPXBwcCxkY2J4 -CmJnX21lbT0yNQpscGJrX21lbT0yNQpod209MzAKbHdtPTE1CmR3bT0zMApkY2JfYXBwX3Rsdlsw -XT0weDg5MDYsZXRoZXJ0eXBlLDMKZGNiX2FwcF90bHZbMV09MHg4OTE0LGV0aGVydHlwZSwzCmRj -Yl9hcHBfdGx2WzJdPTMyNjAsc29ja2V0bnVtLDUKW3BvcnQiMyJdCmRjYj1wcHAsZGNieApiZ19t -ZW09MjUKbHBia19tZW09MjUKaHdtPTMwCmx3bT0xNQpkd209MzAKZGNiX2FwcF90bHZbMF09MHg4 -OTA2LGV0aGVydHlwZSwzCmRjYl9hcHBfdGx2WzFdPTB4ODkxNCxldGhlcnR5cGUsMwpkY2JfYXBw -X3RsdlsyXT0zMjYwLHNvY2tldG51bSw1CltmaW5pXQp2ZXJzaW9uPTB4MTQyNTAwMWMKY2hlY2tz -dW09MHhmOTExNWQ3NgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAW2dsb2JhbF0KcnNzX2dsYl9jb25maWdfbW9kZT1iYXNpY3ZpcnR1 -YWwKcnNzX2dsYl9jb25maWdfb3B0aW9ucz10bmxtYXBlbixoYXNodG9lcGxpdHosdG5sYWxsbGtw -CnBsX3RpbWVvdXRfdmFsdWU9MTAwMDAKcmVnWzB4MTAwOF09MHg0MDgxMC8weDIxYzcwCnJlZ1sw -eDEwMGNdPTB4MjIyMjIyMjIKcmVnWzB4MTBhMF09MHgwMTA0MDgxMApyZWdbMHgxMDQ0XT00MDk2 -CnJlZ1sweDEwNDhdPTY1NTM2CnJlZ1sweDEwNGNdPTE1MzYKcmVnWzB4MTA1MF09OTAyNApyZWdb -MHgxMDU0XT05MjE2CnJlZ1sweDEwNThdPTIwNDgKcmVnWzB4MTA1Y109MTI4CnJlZ1sweDEwNjBd -PTgxOTIKcmVnWzB4MTA2NF09MTYzODQKcmVnWzB4MTBhNF09MHhhMDAwYTAwMC8weGYwMDBmMDAw -CnJlZ1sweDEwYThdPTB4NDAyMDAwLzB4NDAyMDAwCmJhcjJ0aHJvdHRsZWNvdW50PTUwMApzZ2Vf -dGltZXJfdmFsdWU9NSwxMCwyMCw1MCwxMDAsMjAwCnJlZ1sweDExMjRdPTB4MDAwMDA0MDAvMHgw -MDAwMDQwMApyZWdbMHgxMTMwXT0weDAwZDVmZmViCnJlZ1sweDExM2NdPTB4MDAwMmZmYzAKcmVn -WzB4N2QwNF09MHgwMDAxMDAwMC8weDAwMDEwMDAwCnJlZ1sweDdkNmNdPTB4MDAwMDAwMDAvMHgw -MDAwNzAwMApyZWdbMHg3ZGMwXT0weDBlMmY4ODQ5CmZpbHRlck1vZGU9ZmNvZW1hc2ssc3J2cnNy -YW0sZnJhZ21lbnRhdGlvbixtcHNoaXR0eXBlLHByb3RvY29sLHZsYW4scG9ydCxmY29lCmZpbHRl -ck1hc2s9cHJvdG9jb2wsZmNvZQp0cF9wbXJ4PTMwCnRwX3BtcnhfcGFnZXNpemU9NjRLCnRwX25y -eGNoPTAKdHBfcG10eD01MAp0cF9wbXR4X3BhZ2VzaXplPTY0Swp0cF9udHhjaD0wCnRwX210dXM9 -ODgsMjU2LDUxMiw1NzYsODA4LDEwMjQsMTI4MCwxNDg4LDE1MDAsMjAwMiwyMDQ4LDQwOTYsNDM1 -Miw4MTkyLDkwMDAsOTYwMApyZWdbMHg3ZDA4XT0weDAwMDAwODAwLzB4MDAwMDA4MDAKcmVnWzB4 -N2Q0OF09MHgwMDAwMDAwMC8weDAwMDAwNDAwCnJlZ1sweDdkNjBdPTB4MDYwMDAwMDAvMHgwNzAw -MDAwMApyZWdbMHgxOTE2OF09MHgwNDAyMDEwMApyZWdbMHgxOWMwNF09MHgwMDQwMDAwMC8weDAw -NDAwMDAwCm1jX21vZGVfYnJjWzBdPTEKbWNfbW9kZV9icmNbMV09MQpbZnVuY3Rpb24iMCJdCnd4 -X2NhcHM9YWxsCnJfY2Fwcz1hbGwKbnZpPTI4Cm5pcWZsaW50PTE3MApuZXRoY3RybD05NgpuZXE9 -MjUyCm5xcGNxPTIwNDgKbmV4YWN0Zj00MApjbWFzaz1hbGwKcG1hc2s9YWxsCm5ldGhvZmxkPTEw -MjQKbnJvdXRlPTMyCm5jbGlwPTMyCm5maWx0ZXI9NDgKbnNlcnZlcj0zMgpuaGFzaD0yMDQ4CnBy -b3RvY29sPW5pY192bSxvZmxkLHJkZHAscmRtYWMsaXNjc2lfaW5pdGlhdG9yX3BkdSxpc2NzaV90 -YXJnZXRfcGR1LGlzY3NpX3QxMGRpZgp0cF9sMnQ9NDA5Mgp0cF9kZHA9Mgp0cF9kZHBfaXNjc2k9 -Mgp0cF9zdGFnPTIKdHBfcGJsPTUKdHBfcnE9NwpbZnVuY3Rpb24iMSJdCnd4X2NhcHM9YWxsCnJf -Y2Fwcz1hbGwKbnZpPTQKbmlxZmxpbnQ9MzQKbmV0aGN0cmw9MzIKbmVxPTY2Cm5leGFjdGY9MzIK -Y21hc2s9YWxsCnBtYXNrPWFsbApuaGFzaD0yMDQ4CnByb3RvY29sPWZjb2VfaW5pdGlhdG9yCnRw -X2wydD00CnRwX2RkcD0yCmZjb2VfbmZjZj0xNgpmY29lX252bnA9MzIKZmNvZV9uc3NuPTEwMjQK -W2Z1bmN0aW9uIjEwMjMiXQp3eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT00CmNtYXNrPWFsbApw -bWFzaz1hbGwKbmV4YWN0Zj04Cm5maWx0ZXI9MTYKW2Z1bmN0aW9uIjAvKiJdCnd4X2NhcHM9MHg4 -MgpyX2NhcHM9MHg4Ngpudmk9MQpuaXFmbGludD00Cm5ldGhjdHJsPTIKbmVxPTQKbmV4YWN0Zj00 -CmNtYXNrPWFsbApwbWFzaz0weDEKW2Z1bmN0aW9uIjEvKiJdCnd4X2NhcHM9MHg4MgpyX2NhcHM9 -MHg4Ngpudmk9MQpuaXFmbGludD00Cm5ldGhjdHJsPTIKbmVxPTQKbmV4YWN0Zj00CmNtYXNrPWFs -bApwbWFzaz0weDIKW3BvcnQiMCJdCmRjYj1wcHAsZGNieApiZ19tZW09MjUKbHBia19tZW09MjUK -aHdtPTMwCmx3bT0xNQpkd209MzAKZGNiX2FwcF90bHZbMF09MHg4OTA2LGV0aGVydHlwZSwzCmRj -Yl9hcHBfdGx2WzFdPTB4ODkxNCxldGhlcnR5cGUsMwpkY2JfYXBwX3RsdlsyXT0zMjYwLHNvY2tl -dG51bSw1Cltwb3J0IjEiXQpkY2I9cHBwLGRjYngKYmdfbWVtPTI1CmxwYmtfbWVtPTI1Cmh3bT0z -MApsd209MTUKZHdtPTMwCmRjYl9hcHBfdGx2WzBdPTB4ODkwNixldGhlcnR5cGUsMwpkY2JfYXBw -X3RsdlsxXT0weDg5MTQsZXRoZXJ0eXBlLDMKZGNiX2FwcF90bHZbMl09MzI2MCxzb2NrZXRudW0s -NQpbcG9ydCIyIl0KZGNiPXBwcCxkY2J4CmJnX21lbT0yNQpscGJrX21lbT0yNQpod209MzAKbHdt -PTE1CmR3bT0zMApkY2JfYXBwX3RsdlswXT0weDg5MDYsZXRoZXJ0eXBlLDMKZGNiX2FwcF90bHZb -MV09MHg4OTE0LGV0aGVydHlwZSwzCmRjYl9hcHBfdGx2WzJdPTMyNjAsc29ja2V0bnVtLDUKW3Bv -cnQiMyJdCmRjYj1wcHAsZGNieApiZ19tZW09MjUKbHBia19tZW09MjUKaHdtPTMwCmx3bT0xNQpk -d209MzAKZGNiX2FwcF90bHZbMF09MHg4OTA2LGV0aGVydHlwZSwzCmRjYl9hcHBfdGx2WzFdPTB4 -ODkxNCxldGhlcnR5cGUsMwpkY2JfYXBwX3RsdlsyXT0zMjYwLHNvY2tldG51bSw1CltmaW5pXQp2 -ZXJzaW9uPTB4MTQyNTAwMWQKY2hlY2tzdW09MHg3ZGM0ZGNkCgAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAA -==== diff --git a/sys/dev/cxgbe/firmware/t5fw-1.16.26.0.bin.uu b/sys/dev/cxgbe/firmware/t5fw-1.16.26.0.bin.uu new file mode 100644 index 0000000..240e55b --- /dev/null +++ b/sys/dev/cxgbe/firmware/t5fw-1.16.26.0.bin.uu @@ -0,0 +1,10681 @@ +/*- + * Copyright (c) 2016 Chelsio Communications, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +begin-base64 644 t5fw +AAEEogEQGgAAAQQJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAABIMEkgSbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAENoZWxzaW8gRlcgUlVOTUVNIERFQlVHPTAgKEJ1aWx0IFdlZCBEZWMgMjEgMDg6 +NDI6MzggUFNUIDIwMTYgb24gdm5jNC5hc2ljZGVzaWduZXJzLmNvbTovaG9tZS9maXJtd2FyZS9j +dnMvZnctcmVsZWFzZSksIFZlcnNpb24gVDV4eCAwMS4xMC4xYS4wMAAAAAAAAAAAAAAAAJfkkZ9g +AMgAH/zhSOEAe/AAEAAA4QAwuHj///8f/OFAgAAAAeEAe3AAABAAH//89CAAAADhAZwE4QUAAAAC +AEDhBQgAAAYAQAACAAwABgAM4QUABAAMAACAAAEC4QB7POEAe0ThAHvk4gAAAAABAADhAHuQIAAA +AAAAgADhAHsAAABAAeEAe5wAAEAAREREQuAAAADjAARzREREQOMACAAgAAJcAAAAAB//lEAAAAAA +H/+URAAAAAAf/5RIAAAAAB//lEwf/8AAAAAAAAAAAADAABH/zSIKh5IQghAS/8wT/8yTIBL/zBP/ +zIQgBDMBkyAR/8oS/8uSEBH/yhL/y5IQEf/KAfQxAOQxAAUxAQIAEv/IAucxAhYAEf/GgRABAV/A +IQIRAckTEf/EEv/EkhAR/8QS/8SSEGAAEQAAEf++Ev/CkhAR/74S/8GSEIEQEf/AwCCSERL/v5IS +wCCSExL/vpIQghAC8lBlL/cR/7zHL5IQEf+7khAS/7sT/7uTIMAykyET/7qTIoIiEv+5E/+5kyAj +IiEU/7gEMwHJOBP/t4MwA4MUCDMRFP+1pDOTIRP/qZMiYAAIwjCTIRP/ppMiEv+wkCCQIZAikCOQ +JJAlkCaQJ5AokCmQKpArkCyQLZAukC8gJhAgJhGCIhL/o8AwLTcwLTc0LTc4LTc8Iz0BcjPtAAIA +Ev+gIwoALzcALzcQLzcgLzcwIz0BcjPtAAIAEv+VwDAoNzAoNzQoNzgoNzwjPQFyM+0S/5TAMCc3 +ACc3ECc3ICc3MCM9AXIz7RL/jxX/jxb/j8Aw1yAFZgFgABQAAAQ2BQACANMP0w8FMwxuOxQHRxQH +BEN2MeYENgUFMwxvO+0AAgAS/4MV/4EjCgACJwIHBEMEPgUFMwwHRxRvO/ADAgAS/33JLoMghCGF +IrwidDsOhlC0VZYwtDN0M/Rj/+YAZT/iZV/fEv9xwDIDLgUDAgAS/2jAMCg3QCg3RCg3SCg3TCM9 +AXIz7QACABL/ay0nAMARAUkxAEgxAQIAwAAU/2gE0jEV/2eUUBT/ZwTTMRX/ZpRQFP9mBNQxFf9m +lFAU/2UE1TEV/2WUUBD/ZQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +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 +IAkzqCAJM6ggCTNiIAkzqCAJM2IgCTOoIAkzniAJM2IgCTNiIAkzYiAJM2IgCTNiIAkzqCAJM2Ig +CTNiIAkzYiAJM2IgCTNiIAkzqCAJM6ggCTOoIAkzqCAJM6ggCTOoIAkzqCAJM6ggCTNiIAkzYiAJ +M2IgCTNiIAkzYiAJM2IgCTNiIAkzYiAJM2IgCTNiIAkzYiAJM2IgCTNiIAkzYiAJM2IgCTNiIAlB +5SAJQeUgCUHPIAlBwSAJQeggCUG7IAlBuyAJQbsgCUHoIAlBuyAJQbUgCUHoIAlBuyAJQbsgCUG7 +IAlBtSAJQeggCUHoIAlB6CAJQeggCUHoIAlB6CAJQeggCUHoIAlB6CAJQeggCUHoIAlB6CAJQegg +CUHoIAlB6CAJQegAAgIFBQgICwsODhERFBQXFxoaHR0gICMjJiYpKSwsLy8yMjU1ODg7OwAAAAAA +AAABAxERCAgQCQMBAAAAAAAAIATYyCABvQQgAFwQIAGa9CABuZQgAbU4IAGAKCAER7wf/8AwH//o +/CAAxogf/9vcIACE3CAAd1gAAAAAAAAAACABnJAgAKNYAAAAAAAAAAAf/9WUH//HaB//xPwf/8MQ +IABzXCAAaOggAGdoIAC8FB//48QgBzW4AAAAAAAAAAAgAGt4AAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAACABw8wgAa2IIADPVCAAznwf/++AH//QaB//zRAgAKEoIAVuCCABPRggAR8sIAEHACAA ++9ggAO3YIADkCCAA0XAgBNsoIAMqnCABMuAgA1cIIAHsfCAAhJgAAAAAIADPuCAF4gggAMPAIAGk +DCAAEhwgALdsIAANWCADo4Qf//KwIADPcCADLTQAAAAAAAAAACADxBQgAE3oIAAu8CAATOAAAAAA +IABXyCAAVeQgAFOYAAAAACAAW9AgATaQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAIABZaCAE2GAgAE3oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAWxAgA9qMIABaIAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAACAE2MAAAAAAAAAABAAAAAQAAAAICwAAACADFXQIAAAAIAMVgAgAAAAgAxWM +CgAAACADFZgMAAAAIAMVpBIAAAAgAxW0DQAAACADFcgOAAAAIAMV2BMAAAAgAxXoCgAAACADFfwO +AAAAIAMWCBgAAAAgAxYYDQAAACADFjQOAAAAIAMWRBAAAAAgAxZUEgAAACADFmgOAAAAIAMWfBAA +AAAgAxaMEQAAACADFqAKAAAAIAMWtAsAAAAgAxbADQAAACADFswUAAAAIAMW3AoAAAAgAxb0DwAA +ACADFwAGAAAAIAMXEAYAAAAgAxcYBgAAACADFyAGAAAAIAMXKAYAAAAgAxcwCQAAACADFzgGAAAA +IAMXRAQAAAAgAxdMBgAAACADF1QLAAAAIAMXXAsAAAAgAxdoBAAAACADF0wEAAAAIAMXdAkAAAAg +Axd8CQAAACADF4gAAAAAAAAAAA0AAAAgAxeUCgAAACADF6QGAAAAIAMXsAIAAAAgAxe4AwAAACAD +EJwBAAAAIAMXvAAAAAAAAAAA12qkeOjHt1YkIHDbwb3O7vV8D69Hh8YqqDBGE/1GlQFpgJjYi0T3 +r///W7GJXNe+a5ARIv2YcZOmeUOOSbQIIfYeJWLAQLNAJl5aUem2x6rWLxBdAkQUU9ih5oHn0/vI +IeHN5sM3B9b01Q2HRVoU7anj6QX876P4Z28C2Y0qTIr/+jlCh3H2gW2dYSL95TgMpL7qREvez6n2 +u0tgvr+8cCibfsbqoSf61O8whQSIHQXZ1NA55tuZ5R+ifPjErFZl9CkiREMq/5erlCOn/JOgOWVb +WcOPDMyS/+/0fYWEXdFvqH5P/izm4KMBQxROCBGh91N+gr068jUq19K764bTkQcMERYHDBEWBwwR +FgcMERYFCQ4UBQkOFAUJDhQFCQ4UBAsQFwQLEBcECxAXBAsQFwYKDxUGCg8VBgoPFQYKDxUf/8AA +AAQAICAHcyAgB3fQH/ziAB//rlQf/7KwH/+t5IGAAACBAAAABAAACA////8f/7HAA4AAAB//sbAA +//gAAQAAAAAQAACBBAEAgQQAAAEEAAABBAEAAAf//4AAAAAqAAAAH/+FcAYAAAAf/8/wIARbwAIA +AACAEAAAgAAABUFAAABBQAEAgwAAAR//mhwgAw58DAAAAP//v/+/////H/+UkP//AAD//wD/8AAA +AP9///8f/OLkAEAAAB//qhQAAQAAAAD//x//lUD//9Bk///TIB//Z/wf/ODoIAdw/P//wSAf/2ew +H/9oVB/83gAf/68MH/+gRAAACLjg//4A4QGSAB//mrAA////H/+vLB//nqQEQQAIBAEACMAAAADA +BAAApQAAADAAAAAf/50o4QP+AOEEbgAAAIWEAACFgCALevAgC3uwIAt7MCALe3Af/6+wAAD/gCAH +c3AgB3DgIAt78OEALgAf/6+kH/+qpB//sGAf/6vQAAAXQB//r1DgAACg4QAwuAAAgADhAGAQAABA +AOEDCADhA0gA4QOIAOEDyADhABAIH/zhQOEAe3Af/7TgH/+02B/84Agf/7TcH/+0+B//tPAf/7T0 +H/+1EB//tQgf/7UMH/ziAB//reQf/6ugH/+epCAB1Ewf/7B8AAD/gAAAHeAf/5SQH/+xwIGAAAAE +AAAIgoAAAIEAAAAgAw5wDAAAAB//mqwf/5qcH/+gPP//v/+/////BAEACMMAAAAf/7KwH/+uVB// +sfwf/6tYIAsAYB//sIgf/7CEH/+w6B//sbAgCwXgAA9CQCADDFggC4jgIAMMOCAAIhggCwVQIAAX +cCALBhAgCwUgIAsFgCALBbAgA5WQIAMMaBAAAAACgAAA7gAAACALiRAAAAsAAABgAABgAABgAAAA +AACG3SALBkAgAClMKgAAACAARdggCwawIAOfuCALBuAgCwcgIAsHUCAAHCQgAwx4IAsH0ANgAAAg +C4kwIAsIUCALCvAFAAAAg/8AAAAQAAAgAC80IAMNyB//icAf/4VwH/+HdGdFIwHvzauJmLrc/hAy +VHYf/4AAAAA/KCADEJzP////IAsL4D////8CAAAAQAAAAP//f/8gCw0AIABIUCALDTAgCw2gCAAA +AAD///8gCw4Q9////yALEID//v//IAsdsIAAAAAAAEAAIAMOdAAA//8AAIAAIAsegCALHwAgCx9A +IAsfkCALHtD/+///D/aAACALI/AgCyQgAAEAAAAEAAAgC5CwH/+ukCAAV8ggAFkkIABV5CALJLAg +AFOYIAslQCALJZAgCyYg4AAAACALJqAgCyZgUwAAACALJsBSAAAAIAsnAFEAAAAgAfWcH/+rxCAL +KZAgCynwIAspwCALLHAf/68sIAsswB//nqwf/67QIAsugBQAAACAAAACeAAAAIAAAAaAAAAFAAAK +AIAAsAAA4zCS///wAIAAsQDhAZoAAAIAACALLkAf/5wkAAB+QB//rwQA/8AAH/+vEAEAAAAoAAAA +JgAAACALLvAFgAAABgAAAB//qxwrAAAAIABuTB/83gAf/6y4A4AAAAf///81AAAAA0AAAAA///+A +QAAACA///x////8gAAAAAADAAB//rug9AAAAH/+thAcAAACBBAEAgQQAAB//rTQAADqYAAAP/wBD +AAAAAAgABAAAAB//rOwgC5PAH/+y0B//tFQf/5oc4QB6ACBgAAAf/61MH/+etB//nqggC5PwAAMH +gCALlGAf/5yIACAAAABAAAAAAAkAAAAwAP/8+H/AAAAAo/+7AKP/ugANAAAA4AMAAIP/tgAP//// +D//4AP8AAAAP//4BIAuUoCALMFAgCzCAIAuVMAAPAAAACgAA//8ADx//nrwf/67wA//AAIP/wAAg +C5WwIAuWIB//r9Af/7NAH/+zIP9g8AAf/4BQH/+UUASAAAgARAAA/x///wDAAAABgMIAAACBAP+/ +/////wAAAIAAAAAACbwf/OIMDwAAACALMMAf/69wAAAIvB//sHQf/6CYH/+amB//gGAgB3FAAAAn +EB//2xAgC5zAIAuckB//r9Qf/5qQH/+enN6tvu8gAwkANAAAAD8AAAAf/7CQH/+yGACZAAAAAIkG +EAAHAgHAgACZAAAAH/+xAACIAAiCgAABH/+yaB//sJgADwP/AxEAAAMVAAAgCzVQH/+u1CALnRAg +CzWwIAs2ACALNpAgCzWAIAD2sCALNmAgCzgwIAs4YCALOLAgCzkQIAD8ICkAAAAAAIkUIAECUCAL +nYAgC53gIAEL4B//sCDw8PDw/wD/AKqqqqrMzMzMH/+zYAAAHtAf/7FoAAP//wAAJ/8gARP8IAue +UCADXigf/6+oAAkAAAAAIAAAAEgAggAAACABNpggC57AH/+vVCAAK+wgC6OAIAujsCALP9AgCz+g +IAs/4CALQEAgC0DAIAtAECALQGAgC0CQIAtCYCALQrAgC6HAIAuh4CALQuAgC0MwIAuigCALoqAg +C0KQIAui0CALohAgC6JAIAtDYCALpVAgC6XgIAukgCALpJAgC6QQIAuk8CALpFAgC6QgIAuk0CAL +pWAgC6UgIAuloDsAAAgOAAAA0AAAAB//gKAAAB+KH/zi5AAACFAAAB9AIAtF4CALRgAgC0YgAAkA +CB//smQwAAAA///3/yALSHAgA2PkAACD/yAHdpggB3eQFaAAAB//sigf/678AAAIBgAAD/4AAIjM +fwAAAPAAAAAgC6pgIAupwCALqiAgC6jgIAupcAAA4AAgC6YQIAumwCALqUAf/5w8AAQD/woAAAAg +B3NwMwAAAOEAAAAf/7MkA//gAH///wAAAP/+AD/2kB//sjAAAB+YA//wACALhEAgC4QAIAuEYB// +tDAgC0jgH/+sCBoAAAAgC0kwIAGS9B//siwAD///H/+wUB//rwwgC6rAH/+uwB//q3Af/61kIAdw +3B//qZAgC0xAwAQAAB//rVgf/61wH/+zEB//snggC6vQIAtMgB//rJDgAQAAH/+gQCALrSAgC0zA +IADAkB//oDggAL2AIAusoCALrPAf/5xcIAtPQB//oEQgC1yA4P/+ACALhuAf/68IH/+WjCALaMAg +C2lQH/+vAB//stQgC2wAIAtsMEgAAAAgAc0AH/+syCABzwAf/6qkH/+bDB//rZQf/6rMAAAX8AAA +FjwgB3NcH/+rNOEAXgAf/6xsAE01oAAASLkf/5qw4QAuAB//raDhAwYA4QAOAOAFAAAD/wAAH/+q +1CADDnwf/L//PAAAAAAH//+DAAAAH/+qrCAB8UggC4KAH/+v5OAGAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACB +gAAAAAAAAP////////////////////8f//wUH//8FB//+9gf//vYH//72B//+9gf//QgH//4kB// +9rgf//a4H//2uCAHN6AAAAAAAAAAAAAAAAAAAAAAIAc6ECAHOhAAAAAAAAAAAAAAAAAAAAAAIAc3 +oCAHN6Af//mMH//5jB//+Ywf//mMH//5jB//+YwAAAAAIAHVbAAAAAAAAAAAAAAAAAAAAAACAQAA +AAAAAAAAAAAAAAAABAAAAAAAAACBgAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAIAoAEfKfE/Kf0w8D5jEBAgAW8p0X8p53awaQYLRmd2P4VA8L +VeugDxQAY//5AAAAbBAIiiIoIAeJMPsK/yggAUAw9aFiaQABTDAqIBaZE/gWBCAyBFqw9LUaAgAA +ULBYPXeIFPSiaGD/EFgwGvKJGfKJLKJK+ZJ/IVcANyAmokkJZgH5bAABUQA1oB3ygy3QgAyHEf/y +ghYAIFXw/HI6IG4Ca3ANTRSk3f+PCgAGAmtw//KXKgCF7xAucjn/5gEOAIB/kCggFpkS+grtIC4E +WjApMBD7MQsmAM5WULy7AioCWD12KCAULCAEpIj4CUcCAIADIPkkFCwAmBJgHvJpKCEHjRMZ8mn8 +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 +JW6QK4I5HmOx/LoBDgAeZtDwDgcCAABCsG3ZAgBIYRhjl5iggiCdUB9jl/OmAyOABDig/6YCIgkA +E3DypgEgIAISsNEPwCDRD9og/AoAIDACWTBb/1fAINEPAABsEAQqIAcbY5AKKkAKqhD9Y/oaCQBa +sJowhiD1Y5UQBBA4MPljgRAwEEAw+DYDJ4AEOaD5NgImCQA5sJYx8AUHACACMPAARmEARmEARmEu +IAcsIQgODkHw7hEAABB4MPtlXhwJAHMw+zYGLAkAazD8NgQgQAIQ8AIEhgBCYwAEhgBCYf80ICCA +AhDw0Q8AAAAAAAAAbBAEwFEDJCwDIi4CUjmkItEPAAD//wED/wL///8AAAAAAAAAAAQECAAAAAAB +EBgBAAEAACADVzIgA1eVIANXHyADV5UgA1cfIANXlSADVzYgA1c2IANXfSADV2UgA1dNAAAAACAD +YGIgA2BiIANebiADYGIgA15uIANgPyADYBcgA15uIANfSSADXm4gA15uIANfQCADXm4gA2BiIANe +biADXm4gA2BiIANeewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACADpYYgA6VeIAOldSADpXUgA6V1 +IAOldSADpXUgA6V1IAOnvCADp3ogA6V1IAOldSADpXUgA6V1IAOldSADpXUgA6bmIAOmcyADpdkg +A6XCIAOlsyADpaMDAQACAAAAACAEzdAgBM9+IATQqiAEzdAgBNCiIATQjSAEzdAgBM3QIATN0CAE +zdAgBM3QIATN0CAEzdAgBM3QIATN0CAEzdAgBNCAIATQcyAEzdAgBM3QIATN0CAEzdAgBM3QIATN +0CAEzdAgBM3QIATN0CAEzdAgBM3QIATN0CAEzdAgBM3QIATPaSAEzdAgBM9jIATPYyAEzdAgBM9j +IATPYyAE0FYgBM9jAAAAAAAAAAAAAAAAIATwYCAE8GAgBO/CIATwYCAE7MUgBPBYIATwOCAE7MUg +BOzFIATsxSAE7MUgBOzFIATvpiAE8GAgBOzFIATvpiAE8GAAAAAAAAAAAAAAAAAgBP/gIAT+XCAF +AjsgBQH7IAUBwyAFAYggBQFoIAT+sCAFAUcgBQELIAUAsyAFAGMgBQAbIAT/+AEQGAEAAgAAARAY +AQACAAAAAAAAAAAAACAFw78gBb9BIAXDkyAFw2cgBcM6IAXDJSAFv2MgBb96IAXDDCAFv68gBb+b +IAW/YyAFv68gBb9jIAW/YyAFv2MgBcO/AAAAAAAAAAAAAAAAAAAAACAGEdAgBgroIAYKkCAGB7wg +BgOgAAAAAAAAAAAgBgrQIAYKyiAGCsogBgrKIAYK0CAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAG +CsogBgrQIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYK +yiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrK +IAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsog +BgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrQIAYKyiAGCsogBgrKIAYK0CAGCsogBgrKIAYKyiAG +CtAgBgrKIAYKyiAGCsogBgrQIAYKyiAGCsogBgrKIAYK0CAGCsogBgrKIAYKyiAGCtAgBgrKIAYK +yiAGCsogBgrQIAYKyiAGCsogBgrKIAYK0CAGCsogBgrKIAYKyiAGCtAgBgrKIAYKyiAGCsogBgrQ +IAYKyiAGCsogBgrKIAYK0CAGCsogBgrKIAYKyiAGCtAgBgrKIAYKyiAGCsogBgrQIAYKyiAGCsog +BgrKIAYK0CAGCsogBgrKIAYKyiAGCtAgBgrKIAYKyiAGCsogBgrQIAYKyiAGCsogBgrKIAYKyiAG +CsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYK +yiAGCtAgBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCtAgBgrK +IAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsog +BgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCtAgBgrKIAYKyiAGCsogBgrQIAYKyiAG +CsogBgrKIAYK0CAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYK +yiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrK +IAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsog +BgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAG +CsogBgrQIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYK +yiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrK +IAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsogBgrKIAYKyiAGCsog +BgrKIAYKyiAGCtAAAAAAAAAAAAAAAAAgBgskIAYPYSAGD0YgBg8yIAYPFyAGDwMgBg7iIAYOziAG +Dq0gBg6aIAYOgSAGDm4gBg5VIAYOQiAGDikgBgseIAYODyAGDfwgBg3jIAYNzyAGDbQgBg1zIAYN +MyAGDXMgBg0zIAYNHyAGDQQgBgseIAYLHiAGCx4gBgseIAYM8SAGCz0gBgseIAYLHiAGCx4gBgzU +IAYMuyAGDKsgBgyUIAYLHiAGDIEgBgxnIAYMVCAGDDogBgwnIAYMDyAGC/wgBgvpIAYLjyAGCx4g +BgseIAYLHiAGCx4gBgseIAYLHiAGC1oAAAAAAAAAAAAAAAAgBhIcIAYSJiAGE7ogBhORIAYTiiAG +E4MgBhN8IAYTdSAGE24gBhNnIAYTYCAGE1YgBhNMIAYTNiAGEwwgBhLlIAYS3CAGEsEgBhK3IAYS +qSAGEpkgBhKSIAYSfCAGEnUgBhIOIAYSTiAGEkQgBhI6IAYSMwAAAAAAAAAAAAAAACAGrjggBquU +IAaqKCAGp9ggBqWAIAaiICAGoxggBqPIIAahlCAGpkQAAAAAAAAAACUoAw8IEqWog46TkgAAAABS +VgAAEAAAAGNvbmZpZ3VyYXRpb24gZmlsZSBwYXJzZXIgZm91bmQgYWRkaXRpb25hbCBjb25maWd1 +cmF0aW9uIGFmdGVyIFtmaW5pXQoAADAAAABmY29lAAAAAHZuaWNfaWQAdmxhbgAAAAB0b3MAZXRo +ZXJ0eXBlAAAAbWFjbWF0Y2gAAAAAbXBzaGl0dHlwZQAAZnJhZ21lbnRhdGlvbgAAAHNydnJzcmFt +AAAAAGZjb2VtYXNrAAAAAGNvbXBhY3QAYmFzaWN2aXJ0dWFsAAAAAGdsYl9rZXkAZ2xidmZfa2V5 +AAAAcGZ2Zl9rZXkAAAAAaWR4dmZfa2V5AAAAc3lubWFwZW4AAAAAc3luNHR1cGVuaXB2NgAAAHN5 +bjJ0dXBlbmlwdjYAAABzeW40dHVwZW5pcHY0AAAAc3luMnR1cGVuaXB2NAAAAG9mZG1hcGVuAAAA +AHRubG1hcGVuAAAAAHRubGFsbGxrcAAAAGhhc2h0b2VwbGl0egAAAABsYW4Ad2FuAGNsdXN0ZXIA +bWFudWFsAAB0cF9waW8AAHRwX3RtX3BpbwAAAG5pY192bQAAbmljX3VtAABuaWNfdW1faXNnbABu +aWNfaGFzaGZpbHRlcgAAb2ZsZAAAAAByZGRwAAAAAHJkbWFjAAAAaXNjc2lfaW5pdGlhdG9yX3Bk +dQBpc2NzaV90YXJnZXRfcGR1AAAAAGlzY3NpX2luaXRpYXRvcl9mb2ZsZAAAAGlzY3NpX3Rhcmdl +dF9mb2ZsZAAAZmNvZV9pbml0aWF0b3IAAGZjb2VfdGFyZ2V0AHBvZmNvZV9pbml0aWF0b3IAAAAA +cG9mY29lX3RhcmdldAAAAGlzY3NpX3QxMGRpZgAAAABpc2NzaV9pbml0aWF0b3JfY21kb2ZsZABp +c2NzaV90YXJnZXRfY21kb2ZsZAAAAAB0bHNrZXlzAGNyeXB0b19sb29rYXNpZGUAAAAAcHBwAGRj +YngAAAAAYjJiAHNvY2tldG51bQAAAGNlZQBpZWVlAAAAAGF1dG8AAAAAYW5fZGlzAABwZGxpdGVf +ZGlzAAAgAxfAAAQAAAAABAAABAAAAAAAAP8CAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAP8CAAAAAAAAAAAAAAABAAL/AgAAAAAAAAAAAAAAAAAC/wIAAAAAAAAA +AAAAAAAAFgAAAAAAAAAAAAAAACAGoVgAAAAAIAagqCAGnjggBp0QIAZ8SCAGGkAgBgL4IAYB2AAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAACAEaOwgBHVgIAR1YCAEdWAgBIU4IASfKCAEq+wgBLVEIARl +7CAEY1ggBFnEIATMwCAEV3AgBFRgIAYBrCAGAHwgBfnIIAR1YCAF+PAgBfcsIAX2YCAHPSggA+MM +IAQ9zCAGuQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACADVaggAz7wIANPnCADTRQg +A0ucAAAAACADSTggA1TkAAAAACAES6QAAAAAAAAAAAAAAAAgA6UcAAAAAAAD//8AAAP/AAAAPwAA +AA8gBveIIAb2wCAHTiwgBvawIAb27CAG9gQgBvdwIAb11CAHThggBvac/xgwYGAAAAAAAQIDAAAA +AAAAAAAAAAAAIAau5CAEZ0ggAIRgAAAAAAAAAIEAAAAAAAAAAAAAAAAgBEDsIARCeCAEQhQgBEKM +IARBCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgBEGcAAAAAAAAAAAAAAAAMDEyMzQ1Njc4 +OWFiY2RlZkFCQ0RFRgAAAAAAAAAAAABBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdo +aWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvAAAAAAAAAAAAAAAAAAAAACAARxwAAQAAIABG +/AAFAAEgAEbgAAMABSAARsAABwAAY4JTYwAAAAD///////8AAAAEBAgABAQIAAQECAAEBAgAB0MA +AAAAAAAAAAAAAAAAACEACQCBAEEAIQAJACEACQCBAEEAgQBBAIEAQQCBAEEAIQAJAIEAQQAhAAkA +IQARAIEAQQCBAEEAIQAJAIEAQQAhAAkAIQAJAQEAQQCBACEAgQAhABAQYQEBAIEBAQCBAwIBAAQA +AAAQIEAAAAAAAAQAAgABAACAAEAAIAAQAAggQIAAAAAAAAAAAAAAAAAAIAMJUAAAAAAgAxDIAAAA +ACADCVQAAAABIAMRcAAAAAIgAwlcAAAABCADCWQAAAAIIAMJbAAAABAgAxF4AAAAICADCXAAAABA +IAMJfAAAAIAgAwmIAAABACADCZQAAAIAIAMJpAAAIAAgAwmwAABAACADCbwAAIAAAAAAAAAAAAAA +ACocAAAqPAAAKlwAACp8CAcEAwoJAgAAAAAAAAAAAAARABAADgAPABQAFAAKAAcAHwAAAAAAAAAA +AAAAAAAAAAACBAAAAEQAAAAEAAAAQCAGsoAgBrI4IAaxDCAGr7QgBq9wIAavRCAGr5wAAAAAAAAC +AAAABAAAAAgAWWVzADAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5egAAAABub25l +AAAAAGFsbAAqAAAAZGlzYWJsZWQAAAAAZW5hYmxlZAAweAAATkEAAFYwAABWMQAAVjIAAFYzAABW +NAAAVjUAAFY2AABWNwAAVjgAAFY5AABWQQAAVkIAAFZDAABWRAAAVkUAAFZGAABWRwAAVkgAAFZJ +AABWSgAAVksAAFZMAABWTQAAVk4AAFZPAABWUAAAVlEAAFZSAABWUwAAVlQAAFZVAABwb3J0AAAA +AHByb3RvY29sAAAAAGdsb2JhbAAAZnVuY3Rpb24AAAAAZmluaQAAAAByZWcAZmlsdGVyTW9kZQAA +ZmlsdGVyTWFzawAAcnNzX2dsYl9jb25maWdfbW9kZQByc3Nfa2V5bW9kZQByc3NfZ2xiX2NvbmZp +Z19vcHRpb25zAABzZ2VfdGltZXJfdmFsdWUAdHBfcG1yeAB0cF9wbXJ4X3BhZ2VzaXplAAAAAHRw +X3BtcnhfZmxhZ3MAAAB0cF9ucnhjaAAAAAB0cF9wbXR4AHRwX3BtdHhfcGFnZXNpemUAAAAAdHBf +bnR4Y2gAAAAAdHBfbXR1cwB0cF90Y3B0dW5pbmcAAAAAdHBfdGltZXJyZXMAdHBfdGltZXJ2YWxz +AAAAAHRwX2JhY2tvZmZ2YWxzAABzY2hlZF9pb3F0eF9icF9wcmlvcml0eQBwY2llX21hX3JzcF90 +aW1lcnZhbHVlAABwbF90aW1lb3V0X3ZhbHVlAAAAAG1lbWZyZWVfY29uZmlnAABiYXIydGhyb3R0 +bGVjb3VudAAAAGNwbHR4ZGF0YV9tZW1hbGlnbgAAbWNfbW9kZV9icmMAbWNfcGQAAABvZmxkX2Zs +YWdzAABtYwAAbnZmAHd4X2NhcHMAcl9jYXBzAABuaXFmbGludAAAAABuZXEAbnFwY3EAAABuZXRo +Y3RybAAAAABudmkAcnNzbnZpAAByc3Nuc2VjcmV0AABuZXhhY3RmAG5yYXdmAAAAY21hc2sAAABw +bWFzawAAAG5ldGhvZmxkAAAAAG5yb3V0ZQAAbmNsaXAAAABuZmlsdGVyAG5zZXJ2ZXIAbmhhc2gA +AAB0cF9sMnQAAHRwX2RkcAAAdHBfZGRwX2lzY3NpAAAAAHRwX3N0YWcAdHBfcGJsAAB0cF9ycQAA +AGlzY3NpX250YXNrAGlzY3NpX25zZXNzAGlzY3NpX25jb25uX3Blcl9zZXNzaW9uAGlzY3NpX25p +bml0aWF0b3JfaW5zdGFuY2UAAABpc2NzaV9tYXhfc2dlAAAAcHBtX21heF96b25lcwAAAHBwbV96 +b25lX3JhbmdlMABwcG1fem9uZV9yYW5nZTEAcHBtX3pvbmVfcmFuZ2UyAHBwbV96b25lX3Jhbmdl +MwBmY29lX25mY2YAAABmY29lX252bnAAAABmY29lX25zc24AAABmY29lX25mY2IAAABkY2IAZGNi +X2FwcF90bHYAZGNiX2RjYnhfcHJvdG9jb2wAAABiZ19tZW0AAGxwYmtfbWVtAAAAAGh3bQBsd20A +ZHdtAGRlYm91bmNldGltZQAAAABhbl9hZWNfdGltZQB2ZXJzaW9uAGNoZWNrc3VtAAAAAFNlc3Np +b25UeXBlAE9GTWFya2VyAAAAAElGTWFya2VyAAAAAERhdGFEaWdlc3QAAEhlYWRlckRpZ2VzdAAA +AABFcnJvclJlY292ZXJ5TGV2ZWwAAEltbWVkaWF0ZURhdGEAAABEYXRhUERVSW5PcmRlcgAARGF0 +YVNlcXVlbmNlSW5PcmRlcgBJbml0aWFsUjJUAABNYXhDb25uZWN0aW9ucwAATWF4UmVjdkRhdGFT +ZWdtZW50TGVuZ3RoAAAAAEluaXRpYXRvck5hbWUAAABJbml0aWF0b3JBbGlhcwAARGVmYXVsdFRp +bWUyV2FpdAAAAABEZWZhdWx0VGltZTJSZXRhaW4AAE1heEJ1cnN0TGVuZ3RoAABGaXJzdEJ1cnN0 +TGVuZ3RoAAAAAE1heE91dHN0YW5kaW5nUjJUAAAAVGFyZ2V0TmFtZQAAVGFyZ2V0QWxpYXMAVGFy +Z2V0QWRkcmVzcwAAAFRhcmdldFBvcnRhbEdyb3VwVGFnAAAAAEF1dGhNZXRob2QAAFNlbmRUYXJn +ZXRzPUFsbABDSEFQX0EAAENIQVBfSQAAQ0hBUF9DAABDSEFQX04AAENIQVBfUgAARGlzY292ZXJ5 +AAAATm9ybWFsAABOb25lAAAAAENSQzMyQwAAQ1JDMzJDLE5vbmUATm9uZSxDUkMzMkMAQ0hBUAAA +AABDSEFQLE5vbmUAAABOb25lLENIQVAAAABOb3RVbmRlcnN0b29kAAAASXJyZWxldmFudAAAUmVq +ZWN0AABObwAANQAAAENITmV0IDEuMDAAAAAAAAwAAAAAAQABfAAMAQAAAAAQAAAAFCAHZ8AAAAMF +DkAAAAAAABAAAAAoIAdqyAAAAxgOUAAAH/wAAB/8AAAf/7UgH/+1ICAHcyAgB3fQIAlO4CAJTuAg +CgAAIAqAACAKgAAgCuaAAAAAACADAAAf/68sIAsAACALADAf/5SQH/+yNAAP//8f/OIAH/+t5B// +sbAaAAAAgQAAAAQAAAggCwCAIAuEoB//r6gf/7IYH/+vEB//scAwAAAQIAuE4CALhUAf/7OUH/+u +kB//ljwgB3eQF5AAACAHdZQgAwkAFLAAACADCxAAAGAAgAAABCAHd5oAAB+KAACD/xWgAAAgAwAY +FqAAAAhQAQAgoAAAP/AAACOgAAAD/wAfAMAABB//s5gAAP//IAc4WCoAAAAgA0TYIAuFcCALhbAg +Bzgc3q2+/xrAAAAgB3aYIAMLDAAA/+ogB3egAAAIFAAAiAAAAIAAH/+u/CAHc3Af/6+AAAAnEAAe +hIAAAEAAIANeKB//sHQAEAAAH/+tcB//sHggAwAgIAuGcCALhkABAAAAKAAAAOEAAAA4AAAA/z// +/zAAAHQf/4VwIAMAUCALANAwAAAIMAAADDQAAAjQAAAADgAAAAAAiRQ7AAAIIAd1qCADC3Q0kAAA +IAd1cAVdSoAgA2PkABgAAP8H//8AOAAAADAAACALhpDhAC4AAABhqOEBjgAAAEAPAAGRDIAAAAAg +C4dAIAuHcAAACAAgC4fA///z/yALh/AAAKgsAACoLwAAqCsAAKgqAACo7AAAgQAAAKg1AACoNyAL +A7DhAF4AIAsD8AAAQA4AAEAaIAsEIAAAEAAAAP/pAAD/4AAAUAAAAP/4AACoO///ySQAAEANAAD/ +wAAA//cAAA//AAAPQgAA//UgCwSAAACABwAAgAQgC4gQIAuIMAAAuO4AADQAAAC07gAAtP8AALQA +AAC4AB//r0QgCwSwIAMMOCALiFAgC4iQAACD/SADoWAAAUFKAAEBbgDAAAEgC4igIAsE8CADDEgg +CwZgIAsGkCjAAABAAAACIAMLRCigAACAAAACIAsHgGsAAAAgAwrAIAsHsBAAAAADYAAA7gAAACAL +iTAgA5tAIAuJUCADovAgC4mgIAsIAEAAAAAgAwyIIAsIgAPgAAAf/67AIAMAoB//srDhAwYA/9// +/9////8AAQAKAuYC6SAAAADhAv4AIAMAsOEABgAAAgAA//3//wCYloAAD0JArWU0XTuayf87msoA +AARMAB//ryAAAK8A4QEOAAAAiPcAIAAAAT8BQP/4XuAAB6EgACxjSB//rXQgC4nQIAuKMAgAAAAf +/OLkIAOtdB//rwwgCwiwIAsJ4CALCOAPPAAAIAsJcCAELNggBC6wIAsKQA8AAAAgCwqgH/+HQB// +iDAgCwsQIAsLUCALC5AgAw5wIAMN8CALi8AgAw3QIAuL8CALiqAgC4sAIAuLYB//r2TgAAAAIABH +PAD///8gC4wQIAsMICALDIAgCwzQIAsMUCAEBZQACAAAIAQKVCALDmAgB3FAIABEUAAP/AAf/5qY +H/+cAAAAMAAgCw6gIAsPMCALD9BVAAAAIAuMsCADDugAAAgGIAsQACALEOAAAA/+H/+vHCALEXAg +CxFAAADwACALjNAgCxGQIAsR8CALEiAgCxKAIAsS0CALE5AgC4zwIAsTMCADxxAgA97AIAsT8CAL +FDAgCxSgIAsU8CALjcAgA+UEIAPqVCALjYAgCxWgIAsVMCALFhAgCxZwIAsW4CAHdmAgCxdgIAsX +oO/////3////IAsYACALGFAgCxsg/f///yALGLAgCxkgIAPsxCALGYAgCxngIAsaQCALGpAgCxrQ +IAuOECADDuAgAw50DAAAAB//h6Af/4igIAMQoB//h4A/////z////yALG4Af/4hcIAsbwCALHAAg +C44wIAscgH///6v//y5cAADRpP//0E0AAJxOIAsdACALHMAgCxxAH/+HnCADDngAAGgAH/+HmAAA +IAAf/4gAIAsdQCAEDeggCx3wH/+vBCADnFggC47AIAuOUCALjqAgBBGwA//QAAABAAAgC4/QH/+b +oABAAAAAUAwAg//QACALj0AgA8boIAuQAB//r9QgCx+wIAsf8B//rYAgC5CAIAsgICALIFAgCyBw +IAsgoCALIOAgCyEgIAshkB//r1ggCyKgIAsh4ABMS0AgBA2kIAsiMCALIuAEAQAIIAPvPCALI2Ag +CyMQIAsjwCALjHAgBCYcIAuMQCALJ0AAAI4CIAsnsCALKAAgCyhQIAsncCALKKADgAAAIAso8CAL +KUD/9///IAsqMCAEISggCyrwIAsrsCAEJSQgBB80IAQOBCAEJFwgCyvwAgAAACALLDAAABdwIAMM +NCALkaAgC5FQIAuRMCAEP7wgC5EAIAuRgCADC7QgAwwUIAstECALLWAf/62gIAstgCALLbAgCy3Q +H/+sbCAHb2AgCy4AH/+riOEAfgAf/62wH/+vGAAA8/8EAAAAFAAAACAESHQgCy6wH/+v0CALknAg +C5JAIAAiGB//lngAnAAA4AAJJCALL0AgCzAgIAsv8CALk4AgCy/AH/+fDCALL4AAAwTA4QMCAOD/ +/gDhAI4AH/+WjAAAloAAAJZAIAdzIAAAlqAAAJZg4QMALAADAAAf/N4A4QB6AAAB4ADhAZIAAAHj +AAYAAAAgBFvA+AAAAAH//+cAAcAAIAAAgAQAEAAf/6uY4QGaAOEBmkDhAZo84QGaOOEBmjThAZow +H/+wACADC7wgAwvMIAMLxCADC9SAAAADH/+vFP/8//9/////H/+WvCAEaOwgC5aQIAuW0CALlwAg +C5dAIAuXcCALl7AgC5fgIAuYIP//AAAP///w//AAACALmIAf/5u0H/+q1CAEdWAgC5mAIAuZsCAL +mSAgC5jAH/+bfB//nLgf/58IAAD/gCALMQAgCzEw//v//wAEAADhAeLAkAAA8Pz/gMACAAAg/v+A +wCALMYAgCzHAAAD4AAADAQgAAwEMj////yALMhAgCzJgIAsykCALMtDhAN4AAAMDCAADAgAf/62k +///wAOEA7gD//3//AAD8AAAA4AAAAAwAAAMDBAABERwAAREYIAuaEAAQCACAAAgAAAMBBP//wAAA +AP/+AAAlgAADAwAf/62c4P/iwB//rBgf/56sIAuaYCALmpAgC5qwAAD//SALmkAgAwEIAAD/8yAL +MyAAACowAAD/jwAAUrUAAEgKAACPggAAj4YAADgAAACPigAA4z8AAIOuAAD/8SALM0AAABBA///P +vyALmtAAABIAIAszcOEDLgDhAzIA/v///yALM5AgAwEQIAsz8CALM8AAgAAAIAua8P//9iQgC5uA +AAD/+wAA/v8AAP8/AAD5/x//q7ggC5sgIAucICALm9AgCzSgIAs0YCALNDAgCzTAIAs1EBAABQ0B +wIAACQAAAB//sfwf/7EAIAMBwB//rYQAAIMAIAs30AAAggAgCzbwIAs3QCALN4AQAAcCAADAACAL +kgAgC5HAAAAMvAAAiQYgCzlwIAuF8IiIiIgf/5scIAMCECALOdAgCzmgIAs8wCALPIAgCzxAIAs8 +ACALO8AgCzuAIAs7MCALOvAgCzqgIAs6UCALOhAgC58wIAufYCALn5AgC5/QIAugECALoEAgCz3w +IAs9oCALPQAgCz1AAACAwgAAGyEf/6u8IAs+ICALoHAgC6CwIAug0AD/wAASAAAAIAUdICALoYAg +C6FAAACgAGAAAAAf/6+IIAujACALPkAgCz5wAAAcICALPqAgCz8AH/+uCCALP0AgCz7QIAtA8AAA +f6YgC0GAIAtBECALQbAgA5MMIAtBQCALQhAgC0HgIAOUJCALQkAgA5joIAuj4CALQ7AgC6YwIAtE +0CADDmAgC0QAIAtE8CALRGAgBT78IAunEAAAH0AAABA2///v/x//s5wf/7IoAAAIUCALRTAgC0WA +IAtFYAD///wyAAAAH/+0GsAAAAAgAwJIM5AAACAHdZggAwtwIAuncCALp9AgC6ewIAuoECALRaAg +A24kIAMCUCALRlAAAIAFIAtGgIGAAADerb7vIAtGwB//rwAwAAAcMAAABDAAABQAAP/v//7//x// +stQA//AAACgAACALRvAAAAhAIAMLNCALRyAA///6IAtHcDAAAAAwAAA0AACAASADAmAAAIACIAWT +mCALqKAQAAUQmQAAADQAAAAgC6hQIAtHsAAZAAAgC0gAIAMPAAAAEg8gC0gwH/+yZAMVAAAFAAAA +g/8AGyALSKAgBebw//9AACALqoAgC0lwIAtJ8CALSkAAAZGs4QGRrL////8gC0pwCwAAACAF7SAg +C0rgIAtLUCALS8AgC0vwIAurACALq4AEAgAIfwAAACAEtyAgAwv0H/+d4AABOIDgAAYAAAInECAL +rDB///8PIAtNEB//rnAf/63Q/AD//+EAlgDhAJoAAAAJ/+EAngAAALAAH/+vnCADArAgC01Q4QAO +AOEAEgD/4DgAA/+ADgBz/4ADAAAAADj//xMAAAARAAAAH/wAAB//ruwgC02QIAutUAABlI8AAZTP +IAMC0B//nsQgAwdQIAtN0CALThAgC05AH/+VBB//rTwgAwhAH/+d1B//nFwf/53M4QGeAP+///8A +AZ80IAtPkCALT9Af/5Y0IAtU8CALVUAgC1WgH/+vkCALV4Af/6y4AD///x//nHQf/61sAAD/lwAA +/tX//6uTH/+u+MIAAA4F3AEAA/8AAMAAAAEgC1fwIAtYMCALWIAgC1jAIAtZECALWVAf///wH/+v +5AIAABAf/5S4H/+ekB//lsgAAv//AACcQCALkyAgC1uQIAtcACALXMAgC5KgIAtdUAAA/gAgC7Rw +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 +AAAAcgAO1b4AAAAKAAAACQAAAAQAAABqAAAAAgAAABwAAAAcAAAAEAAAAAIAAAAAAAAAZgAAAHcA +D0JAAAAACgAAAAkAAAAEAAAA/QAAAAIAAAAdAAAAHQAAAFAAAAACAAAAAgAAAGYAAAB3AA+8UgAA +AAoAAAAJAAAABAAAACkAAAABAAAAHQAAAB0AAABQAAAAAQAAAAIAAABrAAAAeAAQRgQAAAAKAAAA +CQAAAAQAAABnAAAAGQAAAB4AAAAeAAAAUAAAAAIAAAACAAAAawAAAHkHADsAAgA4AAQDOwEAAAAA +ATYBbAGWAPABIAFTAOEBMQFhALwA5AELAPUBIgFJAMYA6wEPAMIA6gETAJ0AvwDeAMsA7QENAKoA +yQDkAKMAxADgAIEAogC9AK8AzADjAJQAsADGAIsAqAC/AAAAgQCdAJoAswDHAIEAmwCvAG4AjwCl +AAAAAAAAAIkAnwCxAG0AiACbAAAAYQByAAAAAAAAAHoAjwCfAAAAcgCHAAAAAAAAAAAAAAAAAAAA +AAAAAAAA+wEmAWoA2QD/ATYA7gEuAYwAqwDTARMA1gD5ASoAuQDaAQoAtwDiATAAjACtAOEAugDZ +AQYAogC+AOcAlgC3AOoAZQCMALoApAC/AOYAjgCoAM0AegCYAMMAAAAAAJQAkQCqAM0AewCVALcA +AAB6AKMAAAAAAAAAgACYALgAZACBAKMAAAAAAH0AAAAAAAAAbQCGAKUAAABmAI4AAAAAAAAAAAAA +AAAAAAAAAAAAAAEAASkBVQDOAPMBFQDHAO4BFgChAMMA4ADNAO0BDACrAMoA4wCiAMEA3QB9AJ4A +twCtAMkA3wCTAK0AwQCGAKIAuQAAAAAAiwCXAK4AwAB9AJYAqQBMAIEAmQAAAAAAAACFAJoAqwBi +AH8AkwAAAAAAAAAAAAAAAAB2AIkAmQAAAFYAeQAAAAAAAAAAAAAAAABmAHoAiQAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAN8BAwExAL8A3wEQALwA5AEsAI8ArwDiAL0A3AEHAKQAvwDnAJYAtgDm +AFcAhgC0AKQAvwDkAI4ApgDKAHYAkwC8AAAAAAAAAI8ApwDIAHgAkQCyAAAAbQCZAAAAAAAAAHwA +lACyAFoAegCYAAAAAAAAAAAAAAAAAGcAgACeAAAAAACBAAAAAAAAAAAAAAAAAAAAagCKAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAA2wEAARsAtwDXAPAAsADPAOgAkACuAMYAswDOAOQAmQCyAMYA +jQCnALwAAAAAAI0AmQCvAMAAgACXAKkAAAB8AJQAAAAAAAAAhQCZAKgAWgB7AI8AAAAAAAAAAAAA +AAAAdACHAJUAAAAAAAAAAAAAAAAAAAAAAAAAYQB1AIMAAAAAAAAAAAAAAAAAAAAAAAAAAABgAHEA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMAOsBGACyAM8A9gCpAMwBAACCAKEAygCtAMgA7QCY +ALEA1QCDAKAAxwAAAAAAlgCVAK0AzgCAAJgAuQAAAHUAnQAAAAAAAAB/AJYAtABVAH0AnwAAAAAA +AAAAAAAAAABmAIAAnQAAAAAAfQAAAAAAAAAAAAAAAAAAAGIAhgAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8P/w/8AP8P+AnbD/APpQ/gCZkPwACZD4AA +AA8AAAAP/A/8D/gF/A/wD7QP4AW0D8AAtA+AAAAPAAAADAAAAA/AAAAOwAAAD4AAAA6AAAAPAAAA +DgAAAAwAAAABAAAAAAE4gAAAaCoAAE4gAAGGoAABhqAAAgjVAAII1QAAACgAAAAyAAEEagAAaCoA +AEpnAAGGoAABhqAAAgjVAAII1QAAACgAAAAyAAFbAQAAaCoAAFAgAAII1QABhqAAAgjVAAK2cQAA +ACYAAAAyAAEpbgAAaCoAAE0pAAII1QABhqAAAgjVAAK2cQAAACYAAAAyAAEEQQAAaCoAAEpnAAII +1QABhqAAAgjVAAK2cQAAACYAAAAyAAF0BgAAbIEAAFQBAAKLCgACCNUAAosKAAK2cQAAAB4AAAAt +AAFFhQAAbIEAAFFhAAKLCgACCNUAAosKAAK2cQAAAB4AAAAtAAEhWgAAbIEAAE7qAAKLCgACCNUA +AosKAAK2cQAAAB4AAAAtAAEEagAAbIEAAEyXAAKLCgACCNUAAosKAAK2cQAAAB4AAAAtAAGGoAAA +b5sAAFbOAAKLCgACCNUAAosKAAMNQAAAAB4AAAAoAAFbOAAAb5sAAFR1AAKLCgACCNUAAosKAAMN +QAAAAB4AAAAoAAE4gAAAb5sAAFI8AAKLCgACCNUAAosKAAMNQAAAAB4AAAAoAAEcGAAAb5wAAFAh +AAKLCgACCNYAAosKAAMNQAAAAB4AAAAoAAFsdAAAcuMAAFdjAAMNQAACiwoAAosKAAMNQAAAABsA +AAAjAAFLUgAAcuMAAFVYAAMNQAACiwoAAosKAAMNQAAAABsAAAAjAAEvtgAAcuMAAFNlAAMNQAAC +iwoAAosKAAMNQAAAABsAAAAjAAEYWQAAcuMAAFGIAAMNQAACiwoAAosKAAMNQAAAABsAAAAjAAF6 +ugAAdl8AAFo+AAMNQAACiwoAAosKAAMNQAAAABkAAAAjAAFbKwAAdl8AAFhWAAMNQAACiwoAAosK +AAMNQAAAABkAAAAjAAFBXgAAdl8AAFaBAAMNQAACiwoAAosKAAMNQAAAABkAAAAjAAEpkwAAdmAA +AFTBAAMNQQACiwsAAosLAAMNQQAAABkAAAAjAAERKgAAb5sAAE/dAAII1QACCNUAAosKAAMNQAAA +AB4AAAAoAAEXBAAAbIEAAE4gAAKLCgACiwoAAosKAAMNQAAAABsAAAAjAAAAACtoI4MYag0GCyoA +AAAAAAAAAAAyAAAD6AAAACgAAE4gAAAAAAAD0JAAmJaAAA9CQACYloAAABwgAAAASwA9CQAAA9CQ +AJiWgAEBAAADAwICBQUEBAcHBgYAAAAyAAAD6AAAAGQAAMNQAAAAAAAD0JAD0JAAAExLQAPQkAAA +ABwgAAAASwA9CQAAD0JAI8NGAAMCAQAHBgUECwoJCA8ODQwAAAAyAAAD6AAAAAoAAAH0AAAAAAAA +A+gAmJaAAA9CQACYloAAABwgAAAASwA9CQAAA9CQAJiWgAMCAQAHBgUECQkICAsLCgoAAAAAAAAA +AAABABAAEQAeAA0AEgAHAB8ADgALABMAFQAbAAgAFwAgAA8AHQAMAAYACgAUABoAFgAcAAUACQAZ +AAQAGAADAAIAAQB7AHUA+wD1AEUAbwB9AHcAXwBpAMUA7wCjAD8A/QD3ALsAOQDfAOkAzwCdAEcA +cQAPAFkAJQC/ABMAYwB/AHkAbQBdAD0AuQCbAA0AYQBrAAsACQBRAB8AMQBTAMcA8QAhALUAjwDZ +AK0AMwClAEEAVQCXAJMA4wApAMkA/wD5APMAwwDtAN0A5wAjAL0AOwC3AE8AHQCNANcAkQDhAOsA +2wAbAIsAiQCHAK8A0QCfADUALQCxANMAFwCnAEkAcwBDAGcAoQA3AM0AVwARAFsAmQAHAC8AswCr +AJUAJwDBAOUATQDVABkAhQArABUAZQDLAAUAqQBLAIMAAwCBAAAA+gD0AHwAdgDEAO4A/AD2AN4A +6ABGAHAAJAC+AH4AeAA8ALgAYABqAFAAHgDGAPAAjgDYAKQAQACSAOIA/gD4AOwA3AC8ADoAHACM +AOAA6gCKAIgA0ACeALAA0gBIAHIAoAA2ABAAWgAuALIAJgDAANQAGAAUAGQAqABKAIAAegB0AEQA +bgBeAGgAogA+ALoAOADOAJwADgBYABIAYgBsAFwAmgAMAAoACAAwAFIAIAC0AKwAMgBUAJYAKADI +APIAwgDmACIAtgBOANYAkADaABoAhgCuADQALAAWAKYAQgBmAMwAVgCYAAYAqgCUAOQATACEACoA +ygAEAIIAAgABAAMAAgAEAAAAAAAAAAAAAQACABwAGwAWABUAHgAdABgAFwAMAAsAEAAPACAAHwAa +ABkAFAATAAoACQAOAA0AEgARAAgABwAGAAUABAADAAEAAAACAAQAAAAAAAAAAAAAMAQAADAQAABZ +3AAAWoAAAFqEAABaiAAAWowAAFqQAAGUMAAAECQAABAwAAAQPAAAENwAABEMAAB7LAAAezQAAeKM +AAHmjAAB6owAAe6MAAHyjAAB9owAAfqMAAH+jAAAjcwAAI6AAAB+dAAAj9wAAZFYAAGScAAAj/wA +BBMcAAQTGAAEExAABJMcAASTGAAEkxAAAHfgAAB35AAAd/QAAHgEAAGcPAABEHQAARCEAACUCAAA +mFwAAJYMAACWFAAAliAAAJYsAACWxAAA0CgAAJAIAAMI3AADSNwAA4jcAAPI3AADCOQAA0jkAAOI +5AADyOQAAZBUAABgHAABoNgAAZCQAAB34AAAd+QAAHf0AAB4BAAAeNgAAHjgAAB49AAFAHgABQh4 +AAUTCAABlAQAAePAAAHnwAAB68AAAe/AAAHzwAAB98AAAfvAAAH/wAABlAwAAAAAAAAAAAAAAAAA +ADAAv///QAAAMAi///9AAAGUEJ////8AAZQ0AAAAEAABlAif/+P/AAGUOAAAABAAABAo4f///wAA +ECzh////AAAQNAH///8AABA4Af///wAAEEAABAAAAAAREAD///8AABEUAP///wAAeygAff/iAAB7 +MD//7v8AAHs4AAAAAQAAe0A//+7/AAB8JAB9/+IAAeKIAAgAAAAB5ogACAAAAAHqiAAIAAAAAe6I +AAgAAAAB8ogACAAAAAH2iAAIAAAAAfqIAAgAAAAB/ogACAAAAACNyP////AAAI3Q////8AAAjnwA +AADwAACOhAAAAPAAAH5wf7//fwAAfnh/v/9/AAB+AALAAAAAAZFUAf///wABkZwB////AACP2AN/ +//8AAI/4/////wAEExQAAAAHAAQTDAAAAAsABJMUAAAABwAEkwwAAAALAAB33AAAAAMAAHf0//// +/wAAeAQAAAADAAGcOAABwEAAAZz4AAHAQAAAkAQAAAA+AAEQeAD///8AARB8AP///wABEIgAAAAA +AACUBAAA//8AAJQQAAD//wAAmFQAAAH/AACYWAAAAf8AAJYIAAAAAAAAlhwA////AACWJAD///8A +AJYoAP///wAAljAA////AADQIAAAAAcAANAkAAAABwADCNgAAAADAANI2AAAAAMAA4jYAAAAAwAD +yNgAAAADAAMI5AAAAAMAA0jkAAAAAwADiOQAAAADAAPI5AAAAAMAAZBQAAAA7wABoNQAAAGDAAGQ +jAA4AAAAAZCYADgAAAAFAHQAAAAHAAUAcAAAAAUABQh0AAAABwAFCHAAAAAFAAUTBAAAAAEgAxGg +IAjitCADEaQgCPMAIAMRsCAI8hQgAxG8IAjxxCADEdAgCPDgIAMR3CAI8DQgAxH0IAjuyCADEgQg +CO2wIAMSDCAI7YggAxIgIAjtYCADEjAgCO0wIAMSPCAI7BQgAxJEIAjr7CADElggCOu4IAMSZCAI +6lQgAxJsIAjprCADEnwgCOioIAMSiCAI55ggAxKYIAjmkCADEqggCOVkIAMSwCAI4jQgAxLYIAjh +6CADEuwgCOGoIAMS/CAI4RQgAxMQIAjg7CADEyQgCN/8IAMTMCAI3vwgAxM4IAje1CADE0QgCN3U +AAAAAAAAAAAgAxNIIAjdlCADE0wgCN0YIAMTVCAI3OAgAxNcIAjcqCADE2ggCNxwIAMTbCAI3Dgg +AxN0IAjcACADE4AgCNvIIAMThCAI3VAgAxOMIAjbkCADE5ggCNtYIAMToCAI2yAgAxOoIAja6CAD +E7AgCNgIIAMTuCAI2pggAxPEIAjakCADE8wgCNpYIAMT1CAI2iAgAxPcIAjZ6CADE+QgCNmwIAMR +eCAI1cQgAxPsIAjVjCADE/QgCNVUIAMT/CAI1RwgAxQMIAjU5CADFBQgCNSsIAMUHCAI1HQgAxQk +IAjUTCADFDAgCNQkIAMUPCAI0/QgAxRUIAjTzCADFHAgCNOkIAMUgCAI03wgAxSQIAjTVCADFKAg +CNMsIAMUsCAI0wQgAxTAIAjS3CADFNAgCNK0IAMU3CAI0owgAxToIAjSZCADFPQgCNIoAAAAAAAA +AAAgAxUAIAjQ9CADFQQgCM8oIAMVECAIzkAgAxUkIAjODCADFSwgCM3YIAMVOCAIzaQgAxU8IAjN +cCADFUAgCM08IAMVRCAIzQwgAxVUIAjMrCADEiggCMuoAAAAAAAAAAAgAxVgIAjLgCADFWggCMtY +IAMRhCAI9fggAxGMIAj1LCADEXAgCPR8IAMRmCAI89gf/6wYH/+WjCALh5AgCwEQAAAgQAABhqAg +CwFgIAsB4AAAQA0gCwEwIAsBsCALAiAgCwJAAABBFwAA8AMAAEEHAABBjAAAQYgAAEGGAACAAAAA +QYEAAKgZAACoGgAAwwAAAKgbAACoHAAAqBcAAP//AAAQBAAA5Z8AAB8RAADuCQAA//4AAOr/IAsC +YAAA/wAAAKgYIAsCoAAAYA0AD0JAIAsC4AAA3q0gCwMAIAsDUOEAXgD+//7/AQAAAAEAAQAgMAAA +AAAw1CALA9AAAGGoAAD/6SALTpAf/54AIAtOsOEAcgAf/52E4QQSAACLFEDhA/4AAAQASOEEAgAA +BAAhH/+UkIYQAAAABABAgAAAAIAUAAOAFgADgBIAI4ARsgOAEAAFACrxLwABhp8ACvEvIAutoAAE +AAggC07QH/+cyCAHc3Af/69wIAuuYOAAAADhAHYAIAut0CALrhAgC08AH/+fyB//n1DhAZoAAgAA +AAABngzhAZ4AAAGedAABnqwAAZ7YAAGe8AABnxwf/5/QH/+cXAAB//8AAZ9MAAGfnAABn7DhAHoA +IAtQICALUHAgC1DQAAAP/z////8gC1EwIAtRoCALUeAgC1IgIAtSYCALUqAgC1LgIAtTICALU2Ag +C1OgH/+d7CADD3DhBJIAIAMPEP8A//8ADAAAgAAAH4AAAD8f/4VwH/+d9P/A//8AEAAAH/+vgAAA +CAAApgwAIAtUICALVIAgC6/wIAtT4CALr4AgC66gIAuu4CALrzDhAC4ABAAAAB//lrThAFYAAoBQ +AIAAAIAAAEAA//EAgAHwAACOAeCAAAAfACAIAAAgCBQkAAAVICAIAQDhAZIA4QAOAAABAAAAAgAA +AH8AQAADAAAAggCAAMEAwP//I/8AAMgAECABIB//nTgf/6+g4QB+AOEAjgA8AAAA//+//1Bo6EeS +AAAA8ADwAN+///sgAAAEf/f//4AAQgD/9/9/AAYAAP8AAAAASSSSAAB+GBABEAEAAH5AIAEgARUV +FRWEIYQhEBAQEOEBjgAAAP5/BAQBgOEAzgBEREREiIiIiMzMzMzhAI4E4QCOCOEAjgzg//4AIAgN +pAAACMCAAcQRxBHEEQD/AP8AQABA//8//yALsKAgC7DQH/+dgP8P///MiEQAIAuwYCALsQD//+AB +//D/AAACADMqKhUV/v///x//rHQf/5yoH/+aeB//rpAf/56oIAtV8B//nwgf/5x0AAD//QAA//wf +/5XEH/+WkCALVrAf/6zIIAtXACALVjAgC1ZwH/+sZOMAAgDi//8AIAtXQCAI89ggC7HwIAAAAAAw +AAAAYAAAIGAAANAAAAAgC7EwIAuxwAAAEAAgAwkIH/+xsB//rZgf/4CwH/+vEP//8AAgC7LAIAtZ +kCALWhAgC1qAIAuycCALsjAgC7KQH/+tsCALWxAAACgAAAA//wAAwAAABAAA4QAyAB//gOAf/4Eg +H/+BYB//nAD/gA////4AHwAAe2Af/OIACAAAAB//neAf/5bIH/+sBB//ljThAv4A4QO+AOEDPgDh +A34A4QHiAOEBDgDhAJIA///w/x//qpAAAAkAH/+crOEBDgThAQ4I4QEODB//npD/8AAAAAKABh// +r6T/+///IAtiYCALYsAf/4HgH/+dXB//nFgf/6+cEAAAAP/w//8gAw1YH/+akAAAfkzhAIoAAADw +ACALYzAgC2OQIAtj8B//r4Qf/6twH/+tZCALZDAgC2SwIAu4QCALZGAf/62QH/+enCALZTAgC2Tw +H/+ckCALtsAgC2WgIAtl4B//rTwgC7kwIAu4kN/QAAAgC7jQH/+tTP+AAAD//+AAIAtmICALZlAg +B3FEIAu2cCADDWQf/690IAtmkB//ragf/7PcH/+0EB//reQSAAAAIAu0AAQAAAiBAAAAAAAwAB// +sJAgC7QwIAMNYB//siwf/7QoSQAAACALs5AgC7LgIAuzQC4ANgAADwP/AxEAAAMVAAAf/6+oIAdv +YCALZtAf/6yoH/+bcB//qzwf/568H/+f8CAAwJAf/+00H//sgB//rxwAABOIH//uPAIAghACAAIQ +AAAgAAIAABAAGgAAAPrGiAAgAADwAAAAH/+tnOEDAgDhAwYAIAdwCCAHcLAAAP/fAAD/9yALZvAf +/4Hwf////yALZ0AgC2cQIAtncB//nIgf/56sIAu2MAAA+AAAPDw8H/+ysB//lzgf/5sAH/+vDAoU +KFAgCA8EIAdxAB//lrwgAw94H/+VSP//x/8AAv/AH/+cLCALt/AgC7eQIAu6ICALaBAgC7nAIAu5 +kCALZ6AgC7nwIAu3IB//nMAf/6roH/+q5B//gnAf/6vAAAAnECALbJAf/6qsH/+sFB//nRgf/50U +H/+dDB//nQgf/4KQH/+vGCADCXAgAwvwH/+CsB//r5ggC20AH/+rsB//q7Qf/6u4H/+r7B//q+gf +/6vkH/+r4B//q9wf/6vUH/+rxB//q8gf/6vMH/+C4B//r5Af/6s4AABAAx//ldQf/5zEH/+q1If/ +//8f/51AH/+doB//nfAAD//wIAttQB//g5AgC22gH/+DoB//r7QgC23gH/+duCALbjAf/52MIAtu +YCALbpAf/4OwH/+c/AAAJYAgC27AIAtvAB//nKQf/4PQH/+coB//mzgf/5qMH/+D2P//AAAD5/wY +IAtvMB//g+Af/6x4IAMJ1PP///8gAwncIAMJ6CADCfQgAwnED////yADD6AgC2+QIAgUFP//6vAg +CBO0///rUCAIEmQgCBOs///soCAIEXQgCBJc///tkB//nSQD///gAARyDAAEchQABHIcAARwFAAE +cCgABHAgAARwLAAAhYA////gAARAJAAEQEwABEokAAQA4AAEAAQgC3LgIAtzEB//nOAABALEAAQC +wCALwTAgC8FgAARwZCALwZAABEHAAARBxAAEQcgABEB4AARA3AAEQUAABEFEIAtz4CALdCAgC3RQ +IAtzQCALc4AgC3OwAARwWAAAECgABEFgIAt0oAAAd3cAADMzIAt14CALdOAgC3VgIAt1oCALdSAg +C3RwAAAgKAAEdBgABErAAARAwAAEQMQABEHwAARB9AAEdBQgC8DwIAt3ACALdsAgC3aAIAt2QCAL +dgAABAJwAAAI8AAEAnQABAJ8AAQCkAAAvygABHBcAAR0AAAA8AYABEvwAARyKAABmy8AAWMdAAQB +MAAEAOwABAEIAAR2AAAEAQQABHYEAAD/+AAEAQAABADkAAR2CAAA/8EABHIAAABVVQAEcgQABAD4 +AAQA3AAEANgABHJIAAQBOAAEARgABHJMAAQA9AAEclAABHQIAARyCAAEQEgABErcIAt3QCALd4Ag +C3fAAARBLAAEQTwABEDgIAt4AAAEQQAgC3gwAARwSAAEcGAABHIgAAR2DAAEeASAEAAAIAvB0CAD +EGCAEgADAAQA6IAQAAMABADAAABOIAAEAMwABADEAAQAyAAEATQgCAbUIAgLFAACACEABACAAA// +KQAEAEQgC3hgAAQCRAAEAkwABAJIBgYAAAAEAYAAAB54AAEwsAAEANAABADUAAQA8AAEAPwAAgjV +AAEEagAEAQwABAEQAACiwgAEARQABAEcAAQBJAAEASgABAEsAAQBQAAEAUQABAJQAAQBIAAEAmAA +BAJkAAQCVAABACF3NZQAAARB/AAES/wAAIAgAAAICAAEcDAgCAPAAARgwAAEYMQAAIgAAARB1AAE +S9QABEHYAARL2AAEQdwABEvcAARwOAAEcAAgC3iQAARwBCALeNAABGDIAACAJAAEQBwABEocAAAX +LCALeRAgC3lAO5rKAAAEYOQABGDQIAt5cAAEQAAABEAEAARADAAEQAggAwukAARKBAAEcDQABHAI +AARQAAAEVAAABGDMAAB/AAAEQdAABEvQAARwUAAEUGgABFBAAARUaCAIB/AABFBQAARUUAAEUiQA +AEBAAARSKAAEUiwABEAQAARIEAAEQBQABEgUIAgIEAAEQeAABEvgIAgINAAEQegABEvoAARB5AAE +S+QABEHsAARL7AAEQBgABEoYAADu8AAEUGAABFRgAAARAAAAETAAABAwIAgD6CAIAzwgCAVIIAgE +nCAIBqggCAX8AAQTBAAEEyQA////AIECIB//lgAAAPD/AABQDQCAAADhAeJA4QASAP/ADAAf/5VE +H/+tSCALfRAgC3zAAf///wPf0kACFg7A4QNGACALfWAf/5uwAARUsAAA4+8ABFCwAARg4AAAwfMf +/63gH/+EMP48f/8gC32AgAAFAAAAfuiAAAcAIAvFEIAABACAAAYAIAvE8IAAAQCAAAIA/58AAEAI +AAD4wAAAAABgLP9///8gC32gIAlNYCALfeAf/5VgIAlO4CADCQAgC34QH/+vJAAP//8gB3D4H/+t +YB//sEAf/7BgH/+V0wBUAAAgDAAAIAt+QB//hPDhBP4A4QUGAAAkAADhAd4A4QBaAPgAA//f//4A +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 +AABTMFuI8fI2MyAJADSgwCDRDwD8tiMQABBQMPsKAC/7EGgwW4aRxyvRDwBsEAYYs0kZthwessod +thwtlhb+lhcgABBYMPuVMCAEEFAwKpRiHLYWx/APzAEshrYcthUogq4pkuiZEPgWASCAEHgwW4Z/ +wCDRDwAAbBAEGrYOGLYOK6KBK4bY+qKCIAQQWDArhjMrhjIrhjYrhkIrhkArhkErhjz6htkgABBI +MPmGUyAIEBgw84YlIAEQSDAphj4phjkYstQSsu0ctBojgMEiIoH9s9sUABBwMPk3Ag4AARww/+w5 +ABIAvLAs1X7RDxK0EBSz0/cGQAQAECgw94TBIgUAMXAiRX7RDwAAAGwQBBy17Bq17Bi16SrGf/qt +QCCIEFgw+oZ/IAAQYDBbfTYesrkdteUt5jMt3QIt5jTRDwAAAAAAbBAEGrN2+6yAIKIAPKBoImj0 +kH5gAgIScP8iE2ABECAwYAA0aWQFBagIJ4YAckso+jwAAgAAWTBbg1n4YRJgAgIhMPli3WgAIC6w +J5UAY//bpasntABj/9PRDyuieSmihqO7CbsR+GFvaAAgXnBoYm5pZOSlnJfA0Q8Zs3SpOSmQ3WhA +NvSQX2ACAhEwckOfY//FLLKZKaKGo8z5zBEAAgIhMPhhG2gAIGZwaGIbaGQg/wIAC/+9lRBj/5xl +n1Fj/5almCeEAGP/5qWaJ6UAY//epZuXsGP/16WcJ8QA0Q+lnSfVANEPANEPAAAAAAAAIAMQ8AzA +AAYgBz9kIAMQ9AjAAAwgBz9kIAMQ+DzAABAgBz60IAMQ/AbAADggB0DIIAMRAAjAADwgBz9kIAMR +BALAAEAgB0DIIAMRCAjAAEQgBz9kIAMRDAhAAEwgBz/0IAMREAhAAFAgBz/0IAMRFAhAAFQgBz/0 +IAMRGAhAAFggBz/0IAMRHCBAAFwgBz/0IAMRICBAAHAgBz/0IAMRJCBAAIQgBz/0IAMRKCBAAJgg +Bz/0IAMRLCBAAKwgBz/0IAMRMCBAAMAgBz/0IAMRNCBAANQgBz/0IAMROCBAAOggBz/0IAMRPAxA +APwgBz3EIAMRQAxAAQwgBz3EIAMRRAxAARwgBz3EIAMRSAxAASwgBz3EIAMRTAxAATwgBz3EIAMR +UAxAAUwgBz3EIAMRVAxAAVwgBz3EIAMRWAxAAWwgBz3EIAMRXAhAAXwgBz/0IAMRYAhAAYAgBz/0 +IAMRZAhAAYQgBz/0IAMRaBBAAYggBz/0IAMRbBBAAZAgBz/0RkNvRSBERFAgZmFpbGVkIDogb3hf +aWQgMHgleCByeF9pZCAweCV4CgAAAAAAAAAARkNvRSBERFAgZmFpbGVkIDogRGRwUmVwb3J0IDB4 +JXggRGRwVmFsaWQgMHgleAoARkMgeGNoZyBhbGxvYyBmYWlsZWQ6IGF2YWlsICVkCgBGQ09FIEZy +ZWU6IHN0aWxsIHlpZWxkZWQgd2hlbiBmcmVlaW5nLi4uZmxvd2NfaWQgJXggZmxvd2NfZmxhZ3Mg +JXggCgAAAAAAAAAAAAAAAFBSTEkgUnNwIHRpbWVkb3V0IDogZmxvd2NfaWQgMHgleCBveF9pZCAw +eCV4IHJ4X2lkIDB4JXggCgAAAAAAAABod19iY204NDg1Nl9jaGVjayBlbnRyeQoAAAAAAAAAAGh3 +X2JjbTg0ODU2X2NoZWNrIGxvb3AgJXUgKGNoZWNrICUjeCkKAAAAAAAAAAAAAFsldSBQb3J0IGNh +cmRdaHdfYmNtODQ4NTZfY2hlY2sgdXBfcnVubmluZyAocG9ydD0ldSA6bG9vcF9jbnQ9JXUgKQoA +AAAAAAAAAAAAAAAAaHdfYmNtODQ4NTZfY2hlY2sgZmFpbGVkIChiYWQgQ1JDKQoAAAAAAAAAAAAA +AAAAUEhZIGZpcm13YXJlIGxvYWQgc3VjY2Vzc2Z1bCAocG9ydCV1KSB3b3cuLi4hISEhIAoAAAAA +AAAAAAAAAAAAAGJjbTg0ODU2X2xvYWRzZXF1ZW5jZTogU3RhcnRlZAoAQnJvYWRjYXN0IG1vZGUg +dHVybmVkIE9OIAoAAAAAAABiY204NDg1Nl9sb2Fkc2VxdWVuY2U6IFVwbG9hZCBpbWFnZSB0byBQ +SFkgb24tY2hpcCBtZW1vcnkKAAAAAAAAYmNtODQ4NTZfbG9hZHNlcXVlbmNlOiBkb25lIGxvYWRp +bmcgaW1hZ2UgKDB4JXgpCgAAAAAAAAAAAAAAAAAAAFdhaXRfU1BJX0xPT1A6IHBpZCA9ICV1IAoA +AAAAAAAAYmNtODQ4NTZfbG9hZHNlcXVlbmNlOkRPV05MT0FEIEZBSUxFRCAobG8gPSAlI3gsIGhp +PSUjeCwgY250PSV1KQoAAAAAAAAAAAAAAAAAAABbJXUgUG9ydCBjYXJkXSBiY204NDg1Nl9sb2Fk +c2VxdWVuY2UgOkRvd25sb2FkIGNvbXBsZXRlZCBhZnRlciAldSBsb29wcyBmb3IgcG9ydCAldQoA +AAAAAAAAAAAAAABod19jbDQ1X2luaXRbJXVdIGFjYXBzICUjeAoAAAAAAGJjbTg0ODU2X2luaXRb +JXVdCgAAAAAAAAAAAAAAAAAAaHdfYmNtODQ4NTZfbG93cG93ZXJbJXVdOiBlbmFibGU9JWQKAAAA +AAAAAAAAAAAAaHdfYmNtODQ4NTZfbG93cG93ZXJbJXVdLCBmYWlsZWQgdG8gc2V0IDMwLjB4NDAw +QSBiaXQgNzsgMzAuMHg0MDBFIGJpdD0xIGFmdGVyIDVtcywgcmVnPSV4CgAAAAAAaHdfYmNtNTQ4 +Ml9jZmdtZGlbJXVdIHNldHRpbmcgdHlwZSAldQoAAAAAAAAAAAAAcmVtb3ZlIG11bHRpY2FzdCBt +YWMgWyV4OiV4OiV4OiV4OiV4OiV4XSBmcm9tIFRDQU0KAAAAAAAAAAAAAAAAAGlwdjZfam9pbl9n +cnA6IGlkICV1LCByZWZfY250ICV1CgAAAAAAAAAAAAAAAAAAAGRoY3A2X3RpbWVyX2NiOiByZXNl +bmRpbmcgREhDUDZTT0xJQ0lUIGFnYWluCgAAAGRoY3A2X3RpbWVyX2NiOiBzZW5kaW5nIERIQ1A2 +UkVRVUVTVAoAAAAAAAAAAAAAAGRoY3A2X3RpbWVyX2NiOiBzZW5kaW5nIERIQ1A2UkVORVcgcmVx +dWVzdAoAAAAAAGRoY3A2X3RpbWVyX2NiOiBzZW5kaW5nIERIQ1A2UkVCSU5EIHJlcXVlc3QKAAAA +AGRoY3A2X3RpbWVyX2NiOiBESENQNlJFUExZIHJjdmQsIHN0YXRlICV1CgAAAAAAAGZhaWxlZCB0 +byByZW5ldy9yZWJpbmQgZGhjcHY2IGFkZHJlc3MKAAAAAAAAAAAAAHR5cGUgJXgsIHhpZCAleCwg +dHlwZV94aWQgJXgKAAAAaXB2Nl9tdWx0aWNhc3RfcXVlcnlfdGltZXJfY2Igbm9kZV9pZCAlZAoA +AAAAAAAAaXB2Nl9nZW5lcmFsX3F1ZXJ5X3RpbWVyX2NiCgAAAABhZGQgbXVsdGljYXN0IG1hYyBb +JXg6JXg6JXg6JXg6JXg6JXhdIGluIFRDQU0KAABjaG5ldF9pcHY2X2RhZF9jYjogaGFuZGxlICV1 +LCBhZGRyX2lkICV1LCBhZGRyIHN0YXRlICV1CgAAAAAAAAAAaXB2NiBwcmVmZXJyZWQgYWRkciBb +JTA0eCAlMDR4ICUwNHggJTA0eF0KAAAAAAAAU3RhcnRpbmcgYWRkciB2YWxpZGl0eSB0aW1lciBm +b3IgJXUgc2Vjb25kcwoAAAAAVmFsaWRpdHkgZXhwaXJlZCBmb3IgYWRkcl9pZCAldQoAAAAAAAAA +AAAAAAAAAAAAc2VuZGluZyBpcHY2IGVjaG8gcmVwbHkKAAAAAAAAAABjaG5ldF9pcHY2X3JzX291 +dHB1dDogbDJkZXZfZmMgMHgleAoAAAAAAAAAAAAAAABjaG5ldF9pcHY2X25zX291dHB1dDogbDJk +ZXZfZmMgMHgleCwgZmxvd2NfaWQgMHgleCwgdmxhbiBmbGFnIDB4JXgKAAAAAAAAAAAAAAAAAGNo +bmV0X2lwdjZfbmFfb3V0cHV0OiBsMmRldl9mYyAweCV4CgAAAAAAAAAAAAAAAGNobmV0X2lwdjZf +bWxkdjJfcmVwb3J0X291dHB1dDogbDJkZXZfZmMgMHgleAoAAGdhdGhlcl90YXNrc190b190eF9s +aXN0OiB0YXNrIGluIHVzZSBbJXVdCgAAAAAAAGdhdGhlcl90YXNrc190b190eF9saXN0OiBpZHgg +WyV1XSwgdGFzayBmaWQgWzB4JXhdLCB0YXNrIHN0YXRlIFsweCV4XSwgdGFzayBjb25uIFsweCV4 +XSwgdGFzayBmZmxhZ3MgWzB4JXhdLCBjb25uIGZpZCBbMHgleF0sIGRkcCBbJWRdCgAAAAAAAAAA +AGdhdGhlcl90YXNrc190b190eF9saXN0OiB0YXNrIFsweCV4XSwgc3RhdGUgWzB4JXhdIG9uIGNv +bm4gWzB4JXhdIG5vdCB2YWxpZCB0byBnYXRoZXIsIHNraXBwaW5nCgAAAAAAAAAAAAAAAAAAAABn +YXRoZXJfdGFza3NfdG9fdHhfbGlzdDogdGFzayBbMHgleF0sIHN0aWxsIHF1ZXVlZCBvbiB0eCBw +ZW5kaW5nIGxpc3QuIFJlbW92aW5nIGl0LgoAAAAAAAAAAAAAAABnYXRoZXJfdGFza3NfdG9fdHhf +bGlzdDogY29ubl9mYy0+Zmxvd2NfZmxhZ3MgWzB4JXhdLCBsaXN0X2VtcHR5IFsweCV4XSwgYWRk +X3Rhc2tfY291bnQgWzB4JXhdCgB0b190eF9saXN0OiBubyB0YXNrIHRvIGNsb3NlIGZvciBjb25u +IFsweCV4XSwgYmFpbGluZyB0byByZWNvdmVyeSBzdGF0ZSBbMHgleF0KAHNldF9kaWdlc3Q6IHVw +bHN1Ym1vZGU6JXgKAAAAAAAAYXV0aGVudGljYXRlX3RhcmdldDogS0VZX0NIQVBfUkVTUCAtIFsw +eCV4JXgleCV4JXgleCV4JXhdCgAAAAAAAGF1dGhlbnRpY2F0ZV90YXJnZXQ6IEtFWV9DSEFQX1JF +U1AgLSBbMHgleCV4JXgleCV4JXgleCV4XQoAAAAAAABhdXRoZW50aWNhdGVfdGFyZ2V0OiBJbmNv +cnJlY3QgcGFzc3dvcmQKAAAAAAAAAABDSEFQX0M6IGRpZ2VzdCBleHBhbnNpb24gZXJyb3IKAENI +QVBfTjogVGFyZ2V0IHVzZXJpZCBtaXNtYXRjaAoAQ0hBUF9SOiBkaWdlc3QgZXhwYW5zaW9uIGVy +cm9yCgBpU0NTSSBTZWMtcGFyYW1zIHJlY2VpdmVkIGhhdmUgZXJyb3JzISEKAAAAAAAAAABUYXJn +ZXQgbW92ZWQgdGVtcC4gY29ubiAleCwgc2VzcyAleAoAAAAAAAAAAAAAAABMb2dpbiBGYWlsZWQh +IS4gY29ubl9mYyBbMHgleF0sIHNlc3NfZmMgWzB4JXhdLCBzdGF0dXNfY2xhc3MgWzB4JXhdCgAA +AAAAAAAAAAAAAFByb3RvY29sIEVycm9yIGNiaXQgJWQgdGJpdCAlZCBjc2cgJWQgbnNnICVkCgAA +AHJlY3Zfbm9waW46IGN0cmwgdGFzayBhbHJlYWR5IHBlbmRpbmcKAAAAAAAAAAAAAG9mbGRfcnhf +ZGF0YTogYWllZSwgaXNjc2kgY29ubiBbMHgleF0gZm9yIHNlc3MgWzB4JXhdLCB0eXBlIFsweCV4 +XSB0cmFuc2l0ZWQgaW4gdG9lIG1vZGUuIEtpY2tpbmcgcmVjb3ZlcnkgCgAAAABvZmxkX3J4X2Rh +dGE6IGNvbm4gdGlkIFsweCV4XSwgcnhfZGF0YS0+c2VxIFsweCV4XSwgcnhfZGF0YS0+bGVuIFsw +eCV4XSwgcnhfZGF0YS0+c3RhdHVzIFsweCV4XQoAAAAAAAAAAAAAAAAAAAAAb2ZsZF9yeF9kYXRh +OiBjc2sgeyBpZCBbMHgleF0sIGNzb2NrX29mZnNldCBbMHgleF0sIGRsZW4gWzB4JXhdIH0KAAAA +AAAAAAAAAAAAAABhY3RfZXN0OiB0Y2JfZmMgWzB4JXhdLCBmbG93Y19pY29ubl9mbGFncyBbMHgl +eF0KAAAAAAAAAAAAAAAAAAAAYWN0X2VzdGFiOiB0Y2JfZmMtPmZsb3djX2J1ZiBbMHgleF0sIHRj +Yl9mYy0+Zmxvd2NfdHlwZSBbMHgleF0gdGNiX2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0sIG5wYWdl +cyBbMHgleF0sIGZsb3djX3RwX3NuZF9tYXggWzB4JXhdCgAAAAAAAAAAAAAAAAAAYWN0X2VzdGFi +OiBhdGlkIFsweCV4XSwgdGlkIFsweCV4XSwgb3AgWzB4JXhdLCByY3ZfaXNuIFsweCV4XSwgc25k +X2lzbiBbMHgleF0sIGNzb2NrLT5mbG93Y19zdGF0ZSBbMHgleF0sIHRjcF9vcHQgWzB4JXhdLCB0 +Y2JfZmMtPmZsb3djX2lkIFsweCV4XSAKAAAAAAAAAAAAAAAAAGNza19mYy0+Zmxvd2NfY3NvY2tf +Y29va2llIFsweCV4XSAKAAAAAAAAAAAAAAAAAG5ldF9sMmRldl9maW5kX2J5X2FkZHI2OiBsMmRl +dl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBsMmRjLT5scG9ydCBbJXVdLCBsMmRfZmMtPmZsb3djX2lk +IFsweCV4XSwgYWRkciBbJTA0eDolMDR4OiUwNHg6JTA0eF0KAAAAAAAAY2huZXRfcXVldWVfeG1p +dDogZmMtPmZsb3djX2lkIFsweCV4XSwgYnVmX2xlbiBbMHgleF0sIGJ1ZmZlcmVkIFsweCV4XSwg +Zmlmby5udW1fYnl0ZXMgWyUweF0KAAAAbmV0aWZfZG9fZGhjcHY2OiB3ci0+cGFyYW0udmxhbmlk +IFsldV0sIGwyZGV2X2ZjLT5mbG93Y19uZXRfbDJkZXZfdmxhbmRldiBbMHgleF0KAAAAAAAAAAAA +AAAAAAAAbmV0aWZfZG9fZGhjcHY2OiBpcHY2IG5vdCBlbmFibGVkCgAAAAAAAAAAAAAAAAAAZGhj +cCByZXNwIHRvIGRyaXZlcgoAAAAAAAAAAAAAAABsM2luNl9kZXZfY29uZmlnOiB3ci0+cGFyYW0u +dmxhbmlkIFsldV0sIGwyZGV2X2ZjLT5mbG93Y19uZXRfbDJkZXZfdmxhbmRldiBbMHgleF0KAAAA +AAAAAAAAAAAAAABsM2luNl9kZXZfY29uZmlnOiBpcHY2IG5vdCBlbmFibGVkCgAAAAAAAAAAAAAA +AABuZXRfbDNpbjZfZGV2X2NvbmZpZzogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgYWRkcmVz +cyBhbHJlYWR5IHVzZWQgYnkgcG9ydCAlZCwgYWRkcl9pZCAlZAoAAABuZXRfbDNpbjZfZGV2X2Nv +bmZpZzogIGFkZHIgWzB4JTA0eCUwNHglMDR4JTA0eF0sIHJlZl9jbnQgWzB4JXhdIGluIHVzZQoA +AAAAAAAAAGwzaW40X2Rldl9jb25maWc6IHdyLT5wYXJhbS52bGFuaWQgWyV1XSwgbDJkZXZfZmMt +PmZsb3djX25ldF9sMmRldl92bGFuZGV2IFsweCV4XQoAAAAAAAAAAAAAAAAAAG5ldF9sM2luNF9k +ZXZfY29uZmlnOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBhZGRyZXNzIGFscmVhZHkgdXNl +ZCBieSBwb3J0ICVkCgAAAAAAAAAAAAAAAAAAAG5ldF9sM2luNF9kZXZfY29uZmlnOiAgYWRkciBb +MHgleF0sIG1hc2sgWzB4JXhdLCBndyBbMHgleF0sIHJlZl9jbnQgWzB4JXhdIGluIHVzZQoAAAAA +AAAAAAAAAAAAAGwyZGV2X2ZjIFsweCV4IF0gRmFpbGVkIHRvIHN0YXJ0IHRpbWVyIGZvciBpcHY0 +IGRhZAoAAAAAAAAAAAAAAAB3cmhfY2huZXRfaWZjb25mOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4 +JXhdLCBsMmRldl9mYy0+Zmxvd2NfdHlwZSBbJTB4XSwgaWZjb25mX3dyLT5zdWJvcCBbMHgleF0K +AAAAAAAAAAAAAAAAAAAAd3JoX2NobmV0X2lmY29uZjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4 +XSwgdW5rbm93biBzdWJvcCBbMHgleF0KAAAAAAAAAAAAAAAAAAB3cmhfY2huZXRfaWZjb25mOiBs +MmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCByYyAlZAoAAAAAAAAAAAAAAAAAbmV0aWZfaXBfY29u +ZmxpY3RfdGltZXJfY2I6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIGV4cGVjdGluZyB0aW1l +ciBoYW5kbGUgWyVkXSwgYnV0IGdvdCBoYW5kbGUgWyVkXSBleHBpcnkKAG5ldGlmX2lwX2NvbmZs +aWN0X3RpbWVyX2NiOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBpbmRldmN0eHQtPnN0YXRl +IFslZF0sIGluZGV2Y3R4dC0+cmV0cnlfY250IFslZF0KAAAAAAAAAABuZXRpZl9pcF9jb25mbGlj +dF90aW1lcl9jYjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgaW5kZXZjdHh0IFsweCV4XSwg +aW4gZnJlZSBzdGF0ZQoAAAAAAAAAAABjbWRoX2NobmV0X2lmYWNlOiBmYyBbMHgleF0sIGZjLT5m +bG93Y19pZCBbMHgleF0sIGZjLT5mbG93Y190eXBlIFsweCV4XSwgcCBbMHgleF0sIGxlbjE2IFsl +dV0sIGxvYyBbMHgleF0KAAAAAAAAY21kaF9jaG5ldF9pZmFjZTpsMmRldl9mYyBbMHgleF0sIGwy +ZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIGwyZGV2LT5mbG93Y190eXBlIFsldV0sIGwyZGV2X2Zj +LT5mbG93Y19uZXRfbDJkZXZfZmxhZ3MgWyUweF0KAAAAAABjbWRoX2NobmV0X2lmYWNlOiByMlsw +XToldSByMlsxXToldSwgc3Vib3A6MHgleAoAAAAAAAAAAAAAAAAAAAAAY21kaF9jaG5ldF9pZmFj +ZTogbDJkZXZfZmMtPmZsb3djX25ldF9sMmRldl9mbGFncyBjaGFuZ2VkIGZyb20gWyUweF0gdG8g +WyUweF0sIHJjIFslZF0KAAAAAAAAAAAAY2huZXRfbDJkZXZfdXBfbWJfY2I6IHJjIFslZF0sIHBv +cnQgWyV1XSwgc3RhdGUgWyV1XSwgY29va2llIFsweCV4XQoAAAAAAAAAAAAAAABkaGNwX3Byb2Nl +c3NfY2I6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIGRoY3R4dC0+c3RhdGUgWyUweF0sIGRo +Y3R4dC0+cnRyeV9jbnQgWyV1XQoAAAAAAAAAAABkaGNwX3RpbWVyX2NiOiBESENQRElTQ09WRVIg +c2VudCwgYnV0IG5vIHJlcGx5IGZyb20gYW55IHBvc3NpYmxlIHNlcnZlciBvbiB0aGUgbmV0d29y +ay4gUmV0cnlpbmcgYWdhaW4KAAAAAAAAAAAAZGhjcF90aW1lcl9jYjogbDJkZXZfZmMtPmZsb3dj +X2lkIFsweCV4XSwgc2VuZGluZyBESENQRElTQ09WRVIgZm9yIGRoY3R4dCBbMHgleF0gb24gcGlk +IFslZF0KAAAAZGhjcF90aW1lcl9jYjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgREhDUE9G +RkVSIHJlY2VpdmVkIGZvciBkaGN0eHQgWyV4XSBwaWQgWyVkXQoAAAAAAAAAAAAAZGhjcF90aW1l +cl9jYjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgIERIQ1BBQ0sgcmVjZWl2ZWQgZm9yIGRo +Y3R4dCBbJXhdLCBwaWQgWyVkXQoAAAAAAAAAAAAAZGhjcF90aW1lcl9jYjogbDJkZXZfZmMtPmZs +b3djX2lkIFsweCV4XSwgZGhjdHh0LT5pcGFkZHIgWzB4JXhdCgAAAAAAAAAAAAAAAAAAAABkaGNw +X3RpbWVyX2NiOiBzdGFydGluZyB0aW1lciBmb3IgbGVhc2UgWyV1XSBzZWNvbmRzCgAAAAAAAAAA +AAAAZGhjcF90aW1lcl9jYjogbGVhc2UgdGltZSBvZiBbJXVdIHNlY29uZHMgZXhwaXJlZCwgc2Vu +ZGluZyByZW5ldyByZXF1ZXN0CgAAAAAAAABkaGNwX3RpbWVyX2NiOiBsMmRldl9mYy0+Zmxvd2Nf +aWQgWzB4JXhdLCBubyByZXBseSBmcm9tIGRoY3Agc2VydmVyLCB0aW1pbmcgb3V0CgAAAAAAAAAA +AAAAAAAAAABhdXRoX25lZ29fc2VjdXJpdHk6IHNlbmRfZmxhZyBbMHgleF0sIGF1dGhfcG9saWN5 +IFsweCV4XQoAAAAAAAAAYXV0aF9uZWdvX3NlY3VyaXR5OiBLRVlfQ0hBUF9SRVNQIC0gaGFzaFsw +eCV4JXgleCV4JXgleCV4JXhdCgAAAGF1dGhfbmVnb19zZWN1cml0eTogS0VZX0NIQVBfUkVTUCAt +IGhhc2hbMHgleCV4JXgleCV4JXgleCV4XQoAAABhdXRoX25lZ29fc2VjdXJpdHk6IEtFWV9DSEFQ +X1JFU1AgLSBlcnJvciBlbmNvZGluZyB0byBoZXgKAAAAAAAAYXV0aF9uZWdvX3NlY3VyaXR5OiBL +RVlfQ0hBUF9SRVNQIC0gZWxlbiBbMHgleF0KAAAAAAAAAAAAAAAAAAAAAGF1dGhfbmVnb19zZWN1 +cml0eTogS0VZX0NIQVBfQ0hBTCAtIGVycm9yIGVuY29kaW5nIHRvIGhleAoAAAAAAABhdXRoX25l +Z29fc2VjdXJpdHk6IEtFWV9DSEFQX0NIQUwgLSBlbGVuIFsweCV4XQoAAAAAAAAAAAAAAAAAAAAA +bG9nb3V0X3RpbWVkb3V0OiBsb2dvdXQgcmVxdWVzdCB0aW1lZG91dCwgcG9zc2libGUgbmV0d29y +ayBpc3N1ZXMuIEZvcmNlZnVsbHkgYnJlYWtpbmcgcGF0aCBmb3Igc2VzcyBbMHgleF0KAAAAAHBp +bmdfdGFyZ2V0OiBwaW5nIHRpbWVvdXQsIGtpY2tpbmcgcmVjb3ZlcnkgZm9yIHNlc3MgWzB4JXhd +CgAAAABjc29ja19mYWlsZWQ6IGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2tfZmMtPmZsb3dj +X3N0YXRlIFsweCV4XSwgc2Vzc19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBzZXNzX2ZjLT5mbG93Y19z +dGF0ZSBbMHgleF0sIGV2dCBbMHgleF0KAAAAAAAAAAAAAABjaG5ldF9maW5kX2lwNl9sMnRfZW50 +cnk6IGZpbmQgcHJlZml4IG1hdGNoIFslMDR4ICUwNHggJTA0eCAlMDR4XQoAAAAAAAAAAAAAAAAA +AE5vIHJvdXRlciBjb25maWd1cmVkLCBsMmRldl9mYy0+Zmxvd2NfaWQgMHgleAoAAApSb3V0ZXIg +bGlmZSAldSBleHBpcmVkLiBkZWxldGluZyByb3V0ZXIgWyUwNHggJTA0eCAlMDR4ICUwNHhdCgBV +c2luZyByb3V0ZXIgWyUwNHggJTA0eCAlMDR4ICUwNHhdIHRvIHJlYWNoIFslMDR4ICUwNHggJTA0 +eCAlMDR4XQoAAAAAAAAAAAAAAAAAAGwydGVudCBbJTB4XSwgbDJ0ZW50LT5pZHggWyVkXQoAcmMg +WyVkXSwgY3NrX2ZjIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0KAAAAAAAAAAAAAAAA +AAAAAGNzb2NrX2FsbG9jOiBzcmNfYWRkcjoweCV4LCBkc3RfYWRkcjoweCV4CgAAAAAAAGNvbm5l +Y3Rpb24gb3ZlciBpcHY2LCBsMmRldiBmbG93Y19pZCAweCV4CgAAAAAAAGNza19hbGs6IEludmFs +aWQgbDJkZXY6MHgleAoAAAAAY3NrX2FsazogbmV4dDoldSwgaWR4OiV1LCB1c2VkOiV1LCBzcG9y +dDoldQoAAAAAY3NvY2tfYWxsb2M6IGNzb2NrX3NyY19hZGRyOjB4JXgsIGNzb2NrX2RzdF9hZGRy +OjB4JXgKAAAAAAAAAAAAAGNzb2NrX2FsbG9jOiB0eF9jaCBbMHgleF0sIGxwb3J0IFsweCV4XSwg +Y29va2llIFslMDh4XQoAAAAAAAAAAABjc29ja19hbGxvYzogYXZhaWxhYmxlIFsldV0sIG5jc29j +ayBbJXVdLCBwb3M6YXRpZCBbMHgleF0sIGNza19mYyBbMHgleF0sIGNza19mYy0+Zmxvd2NfaWQg +WzB4JXhdLCBzcG9ydCBbJXVdCgAAcmVjb3ZlcnlfdGltZW91dDogc2VzcyBpZCBbMHgleF0gc3Rh +dGUgWzB4JXhdLCByY291bnQgWyVkXSwgZmxhZ3MgWzB4JXhdCgAAAAAAAAByZWNvdmVyeV90aW1l +b3V0OiBzZXNzIGlkIFsweCV4XSBpbiBsb2dvdXQsIGFib3J0IHRoZSBjb25uZWN0aW9uCgAAAAAA +AAAAAAAAAAAAAHJlY292ZXJ5X3RpbWVvdXQ6IHNlc3NfZmMtPmZsb3djX2ZvaXNjc2lfc2Vzc19m +bGFncyBbMHgleF0sIGNvbm5lY3Rpb24gcmVxdWVzdCBwZW5kaW5nLCBiYWlsaW5nIG91dAoAAAAA +AAAAAAAAAABmb2lzY3NpOiBSZWNvdmVyeSB0aW1lZCBvdXQgYWZ0ZXIgWyV1XSByZXRyeSwgYmFp +bGluZyBvdXQKAAAAAAAAVENQIGNvbm4gZXN0YWJsaXNobWVudCBmYWlsZWQgJWQKAAAAAAAAAAAA +AAAAAAAAZGlzY292ZXJ5X2RhdGE6IHNlc3MgeyBpZCBbMHgleF0sIGZsYWdzIFsweCV4XSwgYnVm +ZmVyZWQgWyV1XS4gfQoAAAAAAAAAAAAAAAAAAABkaXNjb3ZlcnlfZGF0YTogc2VzcyB7IGlkIFsw +eCV4XSB9LCB1bHB0eGNoIFsldV0gbm8gY3JlZGl0cyBhdmFpbGFibGUsIHJlc2NoZWR1bGluZyBy +ZXF1ZXN0LgoAAABJbnZhbGlkIG9wY29kZSAweCV4IGluIGN0cmwgcGF0aAoAAAAAAAAAAAAAAAAA +AABERFAgZXJyb3IgWzB4JXhdLCBhYm9ydGluZyBjb25ubiBbMHgleF0KAAAAAAAAAAByeF9kYXRh +X2RkcDogUmVzcG9uY2UgcmVjaWV2ZWQgZm9yIHRhc2sgWzB4JXhdIHdoaWxlIGludmFsaWQgdGFz +ayBvciBjb25uZWN0aW9uIHN0YXRlLiB0YXNrIHN0YXRlIFsweCV4XSwgY29ubiBzdGF0ZSBbMHgl +eF0sIGNvbm4gZmxhZ3MgWzB4JXhdCgBpaGRyOiBSZXNwb25jZSByZWNpZXZlZCBmb3IgdGFzayBb +MHgleF0gd2hpbGUgaW52YWxpZCB0YXNrIG9yIGNvbm5lY3Rpb24gc3RhdGUuIHRhc2sgc3RhdGUg +WzB4JXhdLCBjb25uIHN0YXRlIFsweCV4XSwgY29ubiBmbGFncyBbMHgleF0KAAAAAAAAAABpaGRy +OiBJbnZhbGlkIHRhc2sgc3RhdGUgMHgleCBmb3IgdGFzayAweCV4LCBpdHQgWzB4JXhdLCBvcGMg +WzB4JXhdCgAAAAAAAAAAAAAAAHByb2Nlc3NfdG1mX3Jlc3BvbnNlOiBidWZmZXJlZCBbMHgleF0s +IGlzdGFza19mYy0+Zmxvd2NfYnVmLT5zY2hlZF9ub2RlLm5leHQgWzB4JXhdLCBpc3Rhc2tfZmMg +WzB4JXhdLCBpc3Rhc2tfZmMtPmZsb3djX2lkIFsweCV4XQoAAAAAAAAAAAAAAAAAAHByb2Nlc3Nf +dG1mX3Jlc3BvbnNlOiB3ciBvcCBbMHgleF0sIHRtZiBvcCBbMHgleF0KAAAAAAAAAAAAAAAAAAB0 +bWZfcmVzcDogZmxvd2M6MHgleCwgaWQ6MHgleCwgc3RhdGU6MHgleCwgeWllbGQ6MHgleAoAAAAA +AAAAAAAAdG1mX3Jlc3A6IHRfdGFzazoweCV4IGZyZWVkLgoAAABzY3NpX2NtZF9yZXNwOiBmbG93 +YzoweCV4LCBpZDoweCV4LCBzdGF0ZToweCV4LCB5aWVsZDoweCV4CgAAAAAAZGF0YV9pbl9yZXNw +OiBmbG93YzoweCV4LCBpZDoweCV4LCBzdGF0ZToweCV4LCB5aWVsZDoweCV4CgAAAAAAAHJldHVy +bl9wZW5kaW5nX3Rhc2s6IGNvb2tpZSBbMHglMDh4XSwgWzB4JTA4eF0KAHJldHVybl9wZW5kaW5n +X3Rhc2s6IGRlbGF5IHByb2Nlc3NpbmcsIGNvbm4gZmxhZ3MgWzB4JXhdCgAAAAAAAAByZXR1cm5f +cGVuZGluZ190YXNrOiBEb25lIHNlbmRpbmcgdGFzayBlcnJvciB0byBob3N0LCB1bHB0eGxlbjE2 +IFsldV0KAAAAAAAAAAAAAHJldHVybl9wZW5kaW5nX3Rhc2s6IGRlcXVldWUgdGFzayBbMHgleF0s +IHN0YXRlIFsweCV4XSBmcm9tIHR4X2xpc3QKAAAAAAAAAAAAAAAAcmV0dXJuX3BlbmRpbmdfdGFz +azogYWxsIHRhc2tzIHJldHVybmVkLCByZWNvdmVyeSBzdGF0ZSB0cmFucyB0byBbMHgleF0KAAAA +AAAAAABjbGVhcl9kZHBfbWFwOiBpc3Rhc2tfZmMgWzB4JXhdLCBpc3Rhc2tfZmMtPmZsb3djX2lk +IFsweCV4XSBidWZmZXJlZCAldQoAAAAAAAAAAGNsZWFyX2RkcF9tYXA6IGlzdGFza19mYy0+Zmxv +d2NfaXRhc2tfbnBwb2QgJXUsIG5wcG9kICV1LCBwcGRhZGRyIFsweCV4XQoAAAAAAAAAY2xlYXJf +ZGRwX21hcDogYWxsIHJldHVybmVkIHRhc2tzIGRkcCBjbGVhcmVkLCByZWNvdmVyeSBzdGF0ZSB0 +cmFucyB0byBbMHgleF0KAAB3cmhfZm9pc2NzaV9ub2RlOiBub2RlX3dyLT5mbG93aWRfbGVuMTYg +MiBbJXhdCgB3cmhfZm9pc2NzaV9jaGFwOiBpZF9sZW4gWyV4XSwgc2VjX2xlbiBbJXhdCgAAAAB3 +cmhfZm9pc2NzaV9jaGFwOiB0Z3RfaWRfbGVuIFsleF0sIHRndF9zZWNfbGVuIFsleF0KAAAAAAAA +AAAAAAAAc2Vzc2lvbl9ibG9jazogc2Vzc19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBzZXNzX2ZjLT5m +bG93Y19zdGF0ZSBbMHgleF0sIGNvbm5fZmMtPmZsb3djX2lkIFsweCV4XSwgY29ubl9mYy0+Zmxv +d2Nfc3RhdGUgWzB4JXhdLCBjc2tfZmMtPmZsb3djX2lkIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19z +dGF0ZSBbMHgleF0KAAAAAAAAAAAAAAAAAAAAc2Vzc2lvbl91bmJsb2NrOiBzZXNzX2ZjLT5mbG93 +Y19pZCBbMHgleF0sIHNlc3NfZmMtPmZsb3djX3N0YXRlIFsweCV4XSwgY29ubl9mYy0+Zmxvd2Nf +aWQgWzB4JXhdLCBjb25uX2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0sIGNza19mYy0+Zmxvd2NfaWQg +WzB4JXhdLCBjc2tfZmMtPmZsb3djX3N0YXRlIFsweCV4XQoAAAAAAAAAAAAAAAAAc3RhcnRfbG9n +b3V0OiBTZXNzLWlkIFsweCV4XSBhbHJlYWR5IGxvZ2dpbiBvdXQuCgAAAAAAAAAAAAAAAAAAAHBl +ZXJfY29uOiBjc2tfZmMgPT4gZmxvd2lkIFsweCV4XSwgZmxvd2NfYnVmIFsweCV4XQoAAAAAAAAA +AAAAAABhbGxvY19zZXNzOiBsb2dpbl9yZXRyeSBbJWRdLCByZWNvdl90aW1lb3V0IFslZF0KAAAA +AAAAAAAAAAAAAAAAZm9pc2NzaV9jdHJsOiBzdWJvcCBbMHgleF0sIHNlc3NfdHlwZV90b19lcmwg +WzB4JXhdLCBzZXNzX3R5cGUgWzB4JXhdCgAAAAAAAAAAAABmb2lzY3NpX2N0cmw6IHJlY2VpdmVk +IGJsb2NrZWQgZnJvbSBkcml2ZXIsIHRyaWdnZXJpbmcgcmV0dXJuIHRhc2tzIG5vdy4KAAAAAAAA +AFdBVENIRE9HX2Rpc3BhdGNoIGNhc2UgdG8gYXZvaWQ6IENvdW50ZXJfd2F0Y2hkb2cgJXUgQ291 +bnRlcl9zY2hlZCAldSAKAAAAAAAAAAAAV0FUQ0hET0c6IGRldmljZSBzaHV0ZG93bgoAAAAAAABX +QVRDSERPRzogcG9ydFsldV0gcGF1c2Ugd2F0Y2hkb2cgdGltZW91dAoAAAAAAABXQVRDSERPRzog +YnlwYXNzIHRpbWVvdXQKAAAAAAAAAFdBVENIRE9HOiBGTFIgLSBub3QgaW1wbGVtZW50ZWQgeWV0 +CgAAAAAAAAAAAAAAAFdBVENIRE9HOiB0ZW1wZXJhdHVyZSBvZiAlZEMgZXhjZWVkcyB0aHJlc2hv +bGQgb2YgJWRDCgAAAAAAAAAAAABmaWx0ZXI6IHBvcmdyYW1taW5nIHRpZCAldSAobGUgdGNhbSBp +bmRleCAldSkuLi4KAAAAAAAAAAAAAAAAAAAAZmlsdGVyOiByZXF1ZXN0aW5nIGNvbXBsZXRpb24u +Li4KAAAAAAAAAAAAAAAAAAAAY2huZXRfaXB2Nl9saW5rX2NoYW5nZV9ub3RpZnk6IGwyZGV2X2Zj +IFsweCV4XSwgc3RhdHVzICV1CgAAAAAAAGwyZGV2X3NlbmRfcG9ydF9ldmVudDogd3IgWzB4JXhd +IHBlbmRpbmcgb24gcG9ydCBbJWRdLCBjdXJyZW50IHRyeSBbJWRdCgAAAAAAAAAAZGNieF9pZWVl +X2NtZGhbJXVdIHdyaXRlIG9ubHkgcGVybWl0dGVkIG9uIGxvY2FsIGNvbmYKAAAAAAAAAAAAAGRj +YnhfaWVlZV9jbWRoWyV1XSBjYW5ub3Qgd3JpdGUgJXUgYXBwcyAoTUFYOiAldSkKAAAAAAAAAAAA +AAAAAABkY2J4X2llZWVfY21kaFsldV0gcmVxdWVzdGluZyBEQ0JfSUVFRV9DTUQKAAAAAABkY2J4 +X2llZWVfY21kaFsldV0gdW5rbm93biBmZWF0dXJlIHdyaXRlOiAldQoAAABkY2J4X2llZWVfY21k +aFsldV0gdW5rbm93biBmZWF0dXJlIHJlYWQ6ICV1CgAAAABjYW5ub3QgYWxsb2NhdGUgb2ZmbG9h +ZGVkIGZpbHRlciBjb25uZWN0aW9uCgAAAABjYW5ub3QgYWxsb2NhdGUgb2ZmbG9hZGVkIGZpbHRl +ciBJUHY2IGNvbm5lY3Rpb24KAAAAAAAAAAAAAAAAAAAAZGlzcGF0Y2hfZGVmZXJyZWRfY2xhc3Nf +Y2xhc3Nfc2hhcGluZ1sldToldV06IGxpc3RfZW1wdHkKAAAAAAAAAGxvb3BiYWNrIGJ1ZmZlciBn +cm91cFsldV0gaXMgZGlzYWJsZWQKAAAAAAAAAAAAAGludmFsaWQgYnVmZmVyIGdyb3VwWyV1XSBj +b25maWd1cmF0aW9uOiBtdHUgJXUgbHdtICV1IGh3bSAldSBkd20gJXUKAAAAAAAAAAAAAAAAZmMg +JXUgdmYgJXUgZ290IGl2Zj0weCV4LHJhbmdlOiAlI3gtJSN4ICgldS8ldSB1c2VkKQoAAAAAAAAA +AAAAAFZJICV1IGNhbm5vdCBnZXQgUlNTIHNsaWNlOiBObyBtb3JlIHNsaWNlcyBhdmFpbGFibGUg +KHVzZWQgJXUvJXUpCgAAAAAAAAAAAAAAAAAAcGZuICV1IHZmbiAldSB3aXRoIHBvcnQgbWFzayAw +eCV4IGNhbm5vdCBhY2Nlc3MgcG9ydCAldSwgcmV0ICVkCgAAAAAAAAAAAAAAAAAAAABwZm4gJXUg +dmZuICV1IGNvdWxkIG5vdCBhbGxvY2F0ZSB2aWlkLCByZXQgJWQKAABwZm4gJXUgdmZuICV1IGNv +dWxkIG1hcCB2aWlkICAweCV4IHRvIGZsb3djLCByZXQgJWQKAAAAAAAAAAAAAAAAcGZuICV1IHZm +biAldSBjb3VsZCBub3QgYWxsb2NhdGUgdXdpcmUgZnVuYyAlZCBtYWMgYWRkciwgcmV0ICVkCgAA +AAAAAAAAAAAAAAAAAABtaWlfaW5pdFsldV06IGFjYXBzIDB4JXgKAAAAAAAAAG1paV9mb3JjZV9z +cGVlZFsldV06IHJjYXBzIDB4JXgKAAAAAAAAAAAAAAAAAAAAAG1paV9wZG93blsldV06IHBvd2Vy +ZG93biBlbiAldQoAcG9ydF9jbWRfaGFuZGxlcjogdW5rbm93biB1LmRjYi50eXBlIDB4JXgKAAAA +AAAAcG9ydFsldToweCUwMng6MHglMDJ4XTogdW5rbm93biBhY3Rpb24gMHgleAoAAAAAcG9ydFsl +dToweCUwMng6MHglMDJ4XTogdW5rbm93biByZWFkIGFjdGlvbiAweCV4CgAAAAAAAAAAAAAAAAAA +AGNwbF9lcnJfbm90aWZ5OiB0aWQgJXUgY3BsIDB4JTA4eCUwOHgKAAAAAAAAAAAAAGNwbF9lcnJf +bm90aWZ5OiB0aWQgJXUgY3BsIDB4JTA4eCUwOHggMHglMDh4JTA4eAoAAAAAAAAAAAAAAAAAAABj +cGxfZXJyX25vdGlmeTogdGlkICV1IGxlbiAldQoAAEZDT0UgRnJlZTogc3RpbGwgeWllbGRlZCB3 +aGVuIGZyZWVpbmcuLi5mbG93Y19pZCAleCBmbG93Y19mbGFncyAleCAKAAAAAAAAAAAAAAAARkNP +RSBCUCBXUiBFUlI6IFdSIHdpdGggY29va2llICV4JXggZXJyb3JlZCBiYWNrIAoAAAAAAAAAAAAA +AAAAAHNjc2lfYWJvcnQ6IEVudGVyaW5nIEFib3J0X3Rhc2ssIGJ1ZmZlcmVkIFsldV0KAHNjc2lf +YWJvcnQ6IHJjIFsweCV4XSByZWYgdGFzayBub3Qgb3V0c3RhbmRpbmcKAHNjc2lfYWJvcnQ6IGlk +YXRhLT5vcCBbMHgleF0sIGZsYWdzIFsweCV4XSwgZnVuYyBbMHgleF0sIGx1bl9pZHggWzB4JXhd +CgAAAAAAAAAAc2NzaV9hYm9ydDogd3ItPmlxaWQgWzB4JXhdLCBpc3Rhc2tfZmMtPmZsb3djX3Nn +ZV9pcWlkIFsweCV4XSwgaXN0YXNrX2ZjIHRhc2sgZmxhZ3MgWzB4JXhdCgAAAAAAc2NzaV9hYnJ0 +OnRhc2sgZmxvd2NbMHgleF0sIHRtZl9saXN0X2VtcHR5OgoAAAAAc2NzaV9hYm9ydDogY29ubiBb +MHgleF0sIGNtZHNuIFsweCV4XSwgc2VudF9jbWRzbiBbMHgleF0sIG1heF9jbWRzbiBbMHgleF0s +IGl0dCBbMHgleF0KAAAAAAAAAAAAYWJvcnQvY2xvc2UgV1Igd2l0aCBjb29raWUgMHglbHggd2Fz +IGlzc3VlZCBvbiBzc24gMHgleCBpbiB3cm9uZyBzdGF0ZSAweCV4CgAAAABhYm9ydCBXUiBvbiBz +c24gMHgleCBkaWQgbm90IGZpbmQgV1Igd2l0aCBjb29raWUgMHgleCV4CgAAAAAAAAAAY2xvc2Ug +V1Igd2l0aCBjb29raWUgMHglbHggb24gc3NuIDB4JXg7ZGlkIG5vdCBmaW5kIFdSIHdpdGggY29v +a2llIDB4JWx4CgAAAAAAAABhYm9ydCBXUiBvbiBzc24gMHgleCB3YXMgaXNzdWVkIG9uIHhjaGcg +MHgleCB3aXRoIHJ4X2lkIDB4JXggaW4gd3Jvbmcgc3RhdGUgMHgleAoAAAAAAAAAAAAAAAAAAABz +Y3NpX2x1cjogRW50ZXJpbmcgTFVSIGhhbmRsZXIsIGJ1ZmZlcmVkIFsldV0KAABzY3NpX2x1cjog +aWRhdGEtPm9wIFsweCV4XSwgZmxhZ3MgWzB4JXhdLCBmdW5jIFsweCV4XSwgbHVuX2lkeCBbMHgl +eF0KAAAAAAAAAAAAAHNjc2lfbHVyOiB3ci0+aXFpZCBbMHgleF0sIGlzdGFza19mYy0+Zmxvd2Nf +c2dlX2lxaWQgWzB4JXhdLCBpc3Rhc2tfZmMgdGFzayBmbGFncyBbMHgleF0KAAAAAAAAAHNjc2lf +bHVyOiBjb25uIFsweCV4XSwgY21kc24gWzB4JXhdLCBzZW50X2NtZHNuIFsweCV4XSwgbWF4X2Nt +ZHNuIFsweCV4XSwgaXR0IFsweCV4XQoAAAAAAAAAAAAAAGRjYnhfYXBwbHlfYXBwX2NmZ1sldV1O +RVcgQVBQIFRMViAKAAAAAAAAAAAAAAAAAGRjYnhfY2VlX2ZlYV9zbVsldV0gRmVhdHVyZVsldV0g +RkVBVFVSRV9MSU5LVVAKAGRjYnhfY2VlX2ZlYV9zbVsldV0gRmVhdHVyZVsldV0gU0VUX0xPQ0FM +X1BBUkFNRVRFUlMKAAAAAAAAAAAAAABkY2J4X2NlZV9mZWFfc21bJXVdIEZlYXR1cmVbJXVdIEZF +QVRVUkVfTk9fQURWRVJUSVNFCgAAAAAAAAAAAAAAZGNieF9jZWVfZmVhX3NtWyV1XSBGZWF0dXJl +WyV1XSBGRUFUVVJFX1BFRVJfTk9UX0FEVkVSVElTRV9EQ0JYCgAAAAAAAAAAAAAAAAAAAABkY2J4 +X2NlZV9mZWFfc21bJXVdIEZlYXR1cmVbJXVdIEZFQVRVUkVfUEVFUl9OT1RfQURWRVJUSVNFX0ZF +QVRVUkUKAAAAAAAAAAAAAAAAAGRjYnhfY2VlX2ZlYV9zbVsldV0gRmVhdHVyZVsldV0gRkVBVFVS +RV9VUERBVEVfT1BFUl9WRVJTSU9OCgAAAABkY2J4X2NlZV9mZWFfc21bJXVdIEZlYXR1cmVbJXVd +IEZFQVRVUkVfUEVFUl9VUERBVEVfT1BFUl9WRVJTSU9OCgAAAAAAAAAAAAAAAAAAAGRjYnhfY2Vl +X2ZlYV9zbVsldV0gRmVhdHVyZVsldV0gRkVBVFVSRV9HRVRfUEVFUl9DRkcKAAAAAAAAAAAAAABk +Y2J4X2NlZV9mZWFfc21bJXVdIEZlYXR1cmVbJXVdIEZFQVRVUkVfQ0ZHX05PVF9DT01QQVRJQkxF +CgAAAAAAZGNieF9jZWVfZmVhX3NtWyV1XSBGZWF0dXJlWyV1XSBGRUFUVVJFX1VTRV9MT0NBTF9D +RkcKAAAAAAAAAAAAAGRjYnhfY2VlX2ZlYV9zbVsldV0gRmVhdHVyZVsldV0gRkVBVFVSRV9VU0Vf +UEVFUl9DRkcKAAAAAAAAAAAAAABkY2J4X2NlZV9mZWFfc21bJXVdIEZlYXR1cmVbJXVdIEZFQVRV +UkVfRkVBVFVSRV9ESVNBQkxFRAoAAAAAAAAAZGNieF9jZWVfZmVhX3NtWyV1XSBGZWF0dXJlWyV1 +XSBGRUFUVVJFX0VSUk9SX0NIQU5HRQoAAAAAAAAAAAAAAGRjYnhfaWVlZV9wcm9jZXNzWyV1XSBy +ZWNlaXZlZCBCV3MgZG8gbm90IGFkZCB1cCB0byAxMDAhCgAAAAAAAABXQVJOSU5HOiByZWNlaXZl +ZCBBcHAgVExWIGNvbnRhaW5zIG1vcmUgdGhhbkZXIGNhbiBoYW5kbGUgKG1heDogJXU7IHRsdiBj +b250YWluczogJXUKAAAAAAAAAAAAAABkY2J4X2llZWVfcHJvY2Vzc1sldV0gc3VidHlwZSAlI3gg +cmVtX2Z0X2NoYW5nZWQgJXUgc21fY2hhbmdlICV1CgAAAAAAAAAAAAAAAAAAAGRjYnhfaWVlZV9w +cm9jZXNzWyV1XSBzdWJ0eXBlIHVua25vd24KAAAAAAAAAAAAAGRjYnhfcGFyc2VfcGt0WyV1XSBl +cnJvciAlZAoAAAAAaXB2Nl9hZGRfcHJlZml4X2luX2xpc3Q6IG5vZGUgZm91bmQgMHgleAoAAAAA +AAAAaXB2Nl9hZGRfcHJlZml4X2luX2xpc3QsIG5vZGUgbm90IGZvdW5kCgAAAAAAAAAAY2huZXRf +YXJwX3VwZGF0ZV9jYWNoZTogYXJwIGlwNCBlbnRyeSBmb3VuZCAKAAAAY2huZXRfYXJwX3VwZGF0 +ZV9jYWNoZTogYXJwIGlwNiBlbnRyeSBmb3VuZCAKAAAAY2huZXRfYXJwX3VwZGF0ZV9jYWNoZTog +Ym90aCBpcDQgYW5kIGlwNiBhZGRyIGNhbm5vdCBiZSBudWxsCgAAAGNobmV0X2wydF91cGRhdGU6 +IGwydF91cGRhdGUgcmVxdWVzdCBzZW50IGwydGVudCBbJTA4eF0sIGwydGVudC0+aWR4IFslZF0s +IGwydGVudC0+dmxhbiBbJWRdCgAAAGNobmV0X2lwdjZfcmFfaW5wdXQ6IEludmFsaWQgUkEKAAAA +AAAAAAAAAAAAAAAAAGlwdjYgUkEgcmN2ZAoAAAByb3V0ZXIgbm90IHByZXNlbnQgaW4gb3VyIGxp +c3QuIGFkZGluZyBpdAoAAAAAAABJbnZhbGlkIG9wdGlvbiBsZW5ndGggJXUgaW4gU0xMQSBvcHRp +b24KAAAAAAAAAABHT1QgU0xMQSBvcHRpb24gaW4gUkEsIGxlbiAldQoAAEludmFsaWQgb3B0aW9u +IGxlbmd0aCAldSBpbiBwcmVmaXggb3B0aW9uCgAAAAAAAEludmFsaWQgb3B0aW9uIGxlbmd0aCAl +dSBpbiBtdHUgb3B0aW9uCgAAAAAAAAAAAEludmFsaWQgcGFja2V0IHdpdGggJXUgZXh0cmEgYnl0 +ZXMKAAAAAAAAAAAAAAAAAG1sZDYgcXVlcnkgcmN2ZAoAAAAAAAAAAAAAAAAAAAAAY2huZXRfaXB2 +Nl9tbGQ2X3F1ZXJ5X2lucHV0OiBJbnZhbGlkIE1MRCBxdWVyeQoAVW5zdXBwb3J0ZWQgcXVlcnkg +dmVyc2lvbi4gb25seSBtbGR2MiBxdWVyeSBzdXBwb3J0ZWQKAAAAAAAAAAAAAHF1ZXJ5IHJlc3Bv +bnNlIGRlbGF5ICV1IChpbiAxMG1zIHVuaXQpIAoAAAAAAAAAAGFscmVhZHkgYSBnZW5lcmFsIHF1 +ZXJ5IHBlbmRpbmcgaW4gJXUgKDEwbXMpCgAAAERlYnVnIHRoZSBjb2RlLiBncnBfbm9kZSBtdXN0 +IGJlIHByZXNlbnQKAAAAAAAAAGFscmVhZHkgYSBtdWx0aWNhc3QgcXVlcnkgcGVuZGluZyBpbiAl +dSAoMTBtcykKAGlwdjYgZWNobyByZXEgcmN2ZAoAAAAAAAAAAAAAAAAAREhDUHY2IHBhY2tldCB0 +eXBlICV1LCBvcHRzbGVuICV1IHJlY2VpdmVkCgAAAAAASW52YWxpZCBkaGNwIHN0YXRlICVkCgAA +AAAAAAAAAABJZ25vcmUgREhDUHY2IG1zZyB4aWQgJXgsICBkaDZjdHh0LT54aWQgJXgKAAAAAABF +cnJvciBpbiBESENQdjYgb3B0aW9ucyBwYXJzaW5nLiBJZ25vcmluZyBtc2csIGkgJWQsIG9wdHNs +ZW4gJWQKAAAAAAAAAAAAAAAAAAAAAERIQ1AgZmFpbGVkLCBzdGF0dXNjb2RlICVkLiBJZ25vcmlu +ZyBhZHZlcnRpc2UKAGljbXA2IGNoZWNrc3VtIHZhbGlkYXRpb24gZmFpbGVkLCBvciBlcnIgcmN2 +ZGlnbm9yaW5nIGljbXA2IG1zZyAldSwgZGxlbiAldQoAAAAAbmV0aWZfcHJvY2Vzc19kaGNwOiBs +MmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBwcm9jZXNzaW5nLCBvcHRfbGVuICV1CgAAAAAAAAAA +AABjaG5ldF9kaGNwX3JlY3Y6IHZsYW5pZCBbJXVdLCBsMmRldl9waWRfZmMtPmZsb3djX25ldF9s +MmRldl92bGFuZGV2IFsweCV4XSwgbDJkZXZfZmMgWzB4JXhdCgAAAABjaG5ldF9kaGNwX3JlY3Y6 +IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIGRoY3R4dC0+c3RhdGUgWyVkXSwgbWFsYWNpb3Vz +IGRoY3AgcmVjdiBmb3Igbm8gcmVxdWVzdAoAAAAAAAAAAAAAAAAAZGhjdHh0LT5zdGF0ZSA6ICVk +CgAAAAAAAAAAAAAAAABsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBCYWQgREhDUCBjb29raWUg +cmVjaWV2ZWQsIGFib3J0aW5nCgAAQ291bGQgbm8gYWxsb2NhdGUgcGNiISEgRnJlZWluZyBmY2Yg +ISEhCgAAAAAAAAAAdm5fcGFyc2UgdW5rbm93biBzdWJjb2RlICV1CgAAAAB2bl9wYXJzZSB1bmtu +b3duIGR0eXBlICV1CgAAAAAAAGlnbm9yaW5nIGZpcCByZWN2IGZvciBwY2IgZmxvdzoleCBpbiBv +ZmZsaW5lIHN0YXRlCgAAAAAAAAAAAAAAAABmaXBfdm4ydm5fcmVjdl9lcnIgCgAAAAAAAAAAAAAA +AENvdWxkIG5vdCBhbGxvY2F0ZSBmbG93YyEhISEKAAAAQ291bGQgbm90IGFsbG9jYXRlIFNDQiBm +bG93YyEhISEKAAAAAAAAAAAAAAAAAAAAQ291bGQgbm90IGZpbmQgcmlnaHQgc2NiIGZvciBsb2dv +CgAAAAAAAAAAAAAAAAAAaWdub3JpbmcgZmlwIHJlY3YgZm9yIGZjZiBmbG93OiV4IGluIG9mZmxp +bmUgc3RhdGUKAAAAAAAAAAAAAAAAAENvdWxkIG5vdCBmaW5kIHJpZ2h0IHNjYiBmb3IgZmxvZ2kK +AAAAAAAAAAAAAAAAAHBvcnQgMHgleCwgc3RhdGUgMHgleCwgcmV0cnkgbm90IHN1cHBvcnRlZAoA +AAAAAEZsb2dpIHJlc3AgcmN2IHdpdGggdW5rbm93biB4Y2hnIG94X2lkJXggc2lkICUyeCUyeCUy +eCBkaWQgJTJ4JTJ4JTJ4CgAAAAAAAAAAAAAATl9QT1JUIDB4JXgleCV4IHJlamVjdGVkIFBMT0dJ +IHdpdGggcmVhc29uIGNvZGUgJXgKAAAAAAAAAAAAAAAAAEFCVFMgd2hpbGUgYXdhaXRpbmcgUFJM +SSBSc3A6IGZsb3djX2lkIDB4JXggb3hfaWQgMHgleCByeF9pZCAweCV4IAoAAAAAAAAAAAAAAAAA +QUJUUyBmYWtlIFJzcDogbG9jIDB4JXggb3hfaWQgMHgleCByeF9pZCAweCV4CgAAbGxkcF9yeF9w +a3RfaGFuZGxlclsldV0gZHJvcCBwcmUtaW5pdCAoY291bnQgPSAldSkKAAAAAAAAAAAAAAAAACV4 +JXgleCBSZWNpZXZlZCBMT0dPIGZyb20gJXgleCV4IAoAAAAAAAAAAAAAAAAAAEZhaWxlZCB0byBw +b3N0IHhjaGcgZXJyOiBzc25pIDB4JXggY29va2llIDB4JWx4IHJ2YWwgJXggCgAAAAAAAAB0Y3Bf +cmVsZWFzZV90aWQ6IHRpZCBbMHgleF0sIGZsb3djIGZsYWdzIFsweCV4XSwgYnVmZmVyZWQgWzB4 +JXhdCgAAAAAAAAAAAAAAAAAAAHRjcF9yZWxlYXNlX3RpZDogc2l6ZW9mKHRjYl9mYy0+Zmxvd2Nf +aWNvbm4pIFsldV0sIGJ5dGVzCgAAAAAAAABhY3Rfb3Blbl9ycGw6IGF0aWQgWzB4JXhdLCB0aWQg +WzB4JXhdLCB0Y2JfZmMtPnsgaWQgWzB4JXhdLCBzdGF0ZSBbMHgleF0sIHR5cGUgWzB4JXhdIH0s +IGNwbF9vcCBbMHgleF0sIHN0YXR1cyBbMHgleF0KAAAAAAAAAAAAAGFjdF9vcGVuX3JwbDogY3Nr +X2ZjLT57IGlkIFsweCV4XSwgc3RhdGUgWzB4JXhdLCBjc29ja19mbGFncyBbMHgleF0gfSAKAAAA +AAAAAAAAYWN0X29wZW5fcnBsOiByZWN2ZCBuZWcgYWR2aWNlIFsweCV4XQoAAAAAAAAAAAAAc2Vu +ZF9hYm9ydF9ycGw6IGNza19mYy0+Zmxvd2NfdHlwZSBbMHgleF0sIGNza19mYy0+Zmxvd2NfaWQg +WzB4JXhdLCB0aWQgWzB4JXhdLCB1bHB0eGNoIFsldV0sIGJ1ZmZlcmVkIFsldV0KAAAAAHdyaF9v +ZmxkX3RjcF9jbG9zZV9jb25fcmVwbHk6IHRjYl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCB0Y2JfZmMt +PmZsb3djX3R5cGUgWzB4JXhdLCBsZW4xNiBbJXVdLCBsb2MgWyV1XQoAAAAAAAAAAAB3cmhfb2Zs +ZF90Y3BfY2xvc2VfY29uX3JlcGx5OiBycGwtPm9wX1RpZCBbMHgleF0sIHJwbD5zdGF0dXMgWzB4 +JXhdLCBycGwtPnNuZF9ueHQgWzB4JXhdLCBycGwtPnJjdl9ueHQgWzB4JXhdCgAAdGNwX2Fib3J0 +X3JwbF9yc3M6IHRpZCBbMHgleF0sIHN0YXR1cyBbMHgleF0KAAAAdGNwX2Fib3J0X3JlcV9yc3M6 +IHRpZCBbMHgleF0sIHN0YXR1cyBbMHgleF0sIGZsb3djX2Nzb2NrX2ZvaXNjc2lfc3RhdGUgWzB4 +JXhdCgBvZmxkX2Fib3J0X3JlcV9uZWdhZHZbJXVdOiB3ciAweCUwOHggY3BsX2Fib3J0X3JlcSBE +RUxJVkVSRUQKAAAAaG9zdF93clsldV06IHdyIDB4JTA4eCBjcGxfYWJvcnRfcmVxIHN0YXR1cyAw +eCV4CgAAAAAAAAAAAAAAAAAAAHBrdHNjaGVkX2NsX3JsWyV1OiV1XTogbW9kZSB8IHVuaXQgfCBy +YXRlIDB4JTA2eCBtaW4gJXUgbWF4ICV1IHBrdHNpemUgJXUKAAAAAAAAcGYgJWQsIHZmICVkIHNl +Y3JldCBrZXlfaW5kZXggJWQsIFZGIHNlY3JldCAweCV4CgAAAAAAAAAAAAAAAAAAAHBhcmFtX2No +bmV0WzB4JXg6MHgleF06IGNobmV0IDB4JXggcmVhZCAldSBwZiAldSByZXQgJWQKAAAAAAAAAABw +YXJhbV9kbWFxWzB4JXg6MHgleF06IGRtYXEgMHgleCByZWFkICV1IHBmICV1IHJldCAlZAoAAAAA +AAAAAAAAUlNTU0VDUkVUS0VZOiByc3NzZWNyZXQgdGJsIGJhc2UgJWQsIHJzc25zZWNyZXQgJWQK +AAAAAAAAAAAAAAAAAE1DWyV1XSBpbml0X3N0YXRlX21hY2hpbmUgMHglMDJ4CgAAAAAAAAAAAAAA +AAAAAE1DIGluaXRpYWxpemF0aW9uIG5vdCBjb21wbGV0aW5nLCBNQyBjdXJyZW50IGluaXQgc3Rh +dGUgaXMgMHglMDJ4CgAAAAAAAAAAAAAAAAAATUNbJXVdIF9od19tY19pbml0X21jCgAAAAAAAAAA +AABfaHdfbWNfaW5pdF9tYzogZXJyb3IsIHJldCAlZAoAAF9od19tY19pbml0X21jX2ZwZ2FbJXVd +OiBlcnJvciAlZAoAAAAAAAAAAAAAAAAAAHBoeTogZmFpbGVkIHRvIGFsbG9jYXRlZCBtZW1vcnkg +Zm9yIHBoeSBmdyBmaWxlLCByZXQgJWQKAAAAAAAAAABod19sZV9maWx0ZXJfY3R1cGxlOiB0dXBs +ZSAldSBub3Qgc3BlY2lmaWVkIGJ1dCByZXF1aXJlZCBmb3IgbWFzayAweCV4CgAAAAAAAAAAAGxl +IGNvbmZpZ3VyYXRpb246IGhhc2ggcmVnaW9uIHRvbyBsYXJnZSB0byBlbmFibGUgc2VydmVyIHNy +YW0KAABsZSBjb25maWd1cmF0aW9uOiBjYW5ub3QgZW5hYmxlIHNlcnZlciBzcmFtIHdoZW4gaGFz +aCByZWdpb24gaXMgZGlzYWJsZWQKAAAAAAAAAGh3X3RwX3RjcF9zZXR0aW5nc193OiB0aW1lcl9y +cyAldXVzIHRpbWVzdGFtcF9yZXMgJXV1cyBkZWxheWVkYWNrX3JlcyAldXVzCgAAAAAAaHdfdHBf +dGNwX3NldHRpbmdzX3c6IGRhY2tfdGltZXIgJXV1cyBtc2wgJXV1cyByeHRfbWluLG1heCAldSwl +dXVzIHBlcnNfbWluLG1heCAldSwldXVzCgAAAAAAAAAAaHdfdHBfdGNwX3NldHRpbmdzX3c6IGtl +ZXBfaWRsZSxpbnR2bCAldSwldXMgbWF4cnR0ICV1dXMgaW5pdHNydHQgJXV1cyBmaW53YWl0Ml90 +aW1lciAldXVzCgAAAAAAaHdfdHBfdGNwX3NldHRpbmdzX3c6IGNhcHBpbmcgZGFja190aW1lciBm +cm9tICV1IHRvICV1AAAAAAAAAAAAAGh3X3RwX3RjcF9zZXR0aW5nc193OiBjYXBwaW5nIG1zbCBm +cm9tICV1IHRvICV1AGh3X3RwX3RjcF9zZXR0aW5nc193OiBjYXBwaW5nIHJ4dF9taW4gZnJvbSAl +dSB0byAldQAAAAAAAAAAAAAAAABod190cF90Y3Bfc2V0dGluZ3NfdzogY2FwcGluZyByeHRfbWF4 +IGZyb20gJXUgdG8gJXUAAAAAAAAAAAAAAAAAaHdfdHBfdGNwX3NldHRpbmdzX3c6IGNhcHBpbmcg +cGVyc19taW4gZnJvbSAldSB0byAldQAAAAAAAAAAAAAAAGh3X3RwX3RjcF9zZXR0aW5nc193OiBj +YXBwaW5nIHBlcnNfbWF4IGZyb20gJXUgdG8gJXUAAAAAAAAAAAAAAABod190cF90Y3Bfc2V0dGlu +Z3NfdzogY2FwcGluZyBrZWVwX2lkbGUgZnJvbSAldSB0byAldQAAAAAAAAAAAAAAaHdfdHBfdGNw +X3NldHRpbmdzX3c6IGNhcHBpbmcga2VlcF9pbnR2bCBmcm9tICV1IHRvICV1AAAAAAAAAAAAAGh3 +X3RwX3RjcF9zZXR0aW5nc193OiBjYXBwaW5nIGluaXRfc3J0dF9tYXhydHQgZnJvbSAldSB0byAl +dQAAAABod190cF90Y3Bfc2V0dGluZ3NfdzogY2FwcGluZyBpbml0X3NydHRfaW5pdHNydHQgZnJv +bSAldSB0byAldQAAaHdfdHBfdGNwX3NldHRpbmdzX3c6IGNhcHBpbmcgZmlud2FpdDJfdGltZXIg +ZnJvbSAldSB0byAldQAAAAAAAGZpbHRlck1vZGU9JSN4IGlsbGVnYWw6IHNlbGVjdHMgJWQgYml0 +cyAobWF4ICVkKQoAAAAAAAAAAAAAAAAAAABsZSBjb25maWd1cmF0aW9uOiBuZW50cmllcyAldSBy +b3V0ZSAldSBjbGlwICV1IGZpbHRlciAldSBhY3RpdmUgJXUgc2VydmVyICV1IGhhc2ggJXUKAAAA +AAAAAAAAAABsZSBjb25maWd1cmF0aW9uOiBuZW50cmllcyAldSByb3V0ZSAldSBjbGlwICV1IGZp +bHRlciAldSBzZXJ2ZXIgJXUgYWN0aXZlICV1IGhhc2ggJXUgbnNlcnZlcnNyYW0gJXUKAAAAAAAA +AAAAAAAAaHdfc2dlX3F1ZXVlX2Jhc2VfbWFwWyV1XTogZXhjZWVkZWQgbnVtYmVyIG9mIGVncmVz +cyBxdWV1ZXMsICV1CgAAAAAAAAAAAAAAAAAAAABod19zZ2VfcXVldWVfYmFzZV9tYXBbJXVdOiBl +eGNlZWRlZCBudW1iZXIgb2YgaW5ncmVzcyBxdWV1ZXMgd2l0aCBmcmVlbGlzdCBhbmQgaW50ZXJy +dXB0LCAldQoAAABod19zZ2VfcXVldWVfYmFzZV9tYXBbJXVdOiBleGNlZWRlZCBudW1iZXIgb2Yg +aW5ncmVzcyBxdWV1ZXMsICV1CgAAAAAAAAAAAAAAAAAAAEVycm9yLCBUb3RhbCBSU1MgU2VjcmV0 +IHRhYmxlIGFsbG9jYXRpb24gJWQgPiAxNgoAAAAAAAAAAAAAAAAAAABza3UoMHgleCk6IGN1c3Rv +bSBza3UgNDBHX1NPIGRvZXMgbm90IHN1cHBvcnQgZXh0bWVtCgAAAAAAAAAAAAAAc2t1KDB4JXgp +OiBjdXN0b20gc2t1IDEwRyBkb2VzIG5vdCBzdXBwb3J0IDQwRyBwb3J0cwoAAAAAAAAAAAAAAHNr +dSgweCV4KTogY3VzdG9tIHNrdSAxMEdfU08gZG9lcyBub3Qgc3VwcG9ydCA0MEcgcG9ydHMoJXUp +IG9yIGV4dG1lbSgldSkKAAAAAAAAc2t1OiBjdXN0b20gc2t1KDB4JXgpIDQwRyBwb3J0cygldSkg +ZXh0bWVtKCV1KSBzdXBwb3J0ZWQKAAAAAAAAAGNmX3BhcnNlOiBmaWxlIG1lbXR5cGUgMHgleCBt +ZW1hZGRyIDB4JXggbWFwcGVkIEAgJXA6CgAAAAAAAAAAAABjb25maWd1cmVkIHdpdGggY2FwcyBu +Ym18bGluayAweCUwOHggc3dpdGNofG5pYyAweCUwOHggdG9lfHJkbWEgMHglMDh4IGlzY3NpfGNy +eXB0byAweCUwOHggZmNvZToweCV4CgAAAAAAAAAAAAAAbmV0IFZJIGFsbG9jYXRpb24gZmFpbGVk +IGZvciBmY19pZCAldSB3aXRoIGVycm9yICVkCgAAAAAAAAAAAAAAAG5ldCBWSSBtYWMgYWRkcmVz +cyBwcm9ncmFtbWluZyBmYWlsZWQgZm9yIGZjX2lkICV1IHdpdGggZXJyb3IgJWQKAAAAAAAAAAAA +AAAAAAAAbmV0IFZJIHJ4bW9kZSBwcm9ncmFtbWluZyBmYWlsZWQgZm9yIGZjX2lkICV1IHdpdGgg +ZXJyb3IgJWQKAAAAAG5ldCBWSSByc3MgaW5kaXJlY3Rpb24gdGFibGUgcHJvZ3JhbW1pbmcgZm9y +IGZjX2lkICV1IGZhaWxlZCB3aXRoIGVycm9yICVkCgAAAAAAbmV0IFZJIHJzcyBjb25maWcgY29t +bWFuZCBmYWlsZWQgZm9yIGZjX2lkICV1IHdpdGggZXJyb3IgJWQKAAAAAG5ldCBWSSBjb21tYW5k +IGZhaWxlZCBmb3IgZmNfaWQgJXUgd2l0aCBlcnJvciAlZAoAAAAAAAAAAAAAAAAAAABwcm9ncmFt +bWVkIEhXIHRhZ20gWzB4JTA4eF0sIEhXIHBnc3ogZmFjdG9yIFsweCUwOHhdLCBGT2lTQ1NJIHRh +Z20gWzB4JTA4eF0sIHJ0YWdtIFsweCUwOHhdLCBtYXhzel9iaXRzIFsldV0sIHN6X2JpdHMgWyV1 +XS4KAAAAAGJhc2UgWyAweCUwOHhdLCBsbGltaXQgWzB4JTA4eF0sIHVsaW1pdCBbMHglMDh4XSwg +c2l6ZSBbJXVdLCBtYXhfdHhzeiBbJXVdLCBtYXhfcnhzeiBbJXVdLCBpb3NpemUgWyV1XQoAAAAA +AAAAAABucHBvZHMgWyV1XSwgaWR4X21hc2sgWzB4JTA4eF0sIGlkeF9maXJzdCBbJXVdLCBpZHhf +bGFzdCBbJXVdLCBzY3NpX3BsZF9zaXplIFsldV0sIEFMSUdOKHNjc2lfcGxkX3NpemUsIDE2KSBb +JXVdLCBwcGRfem9uZXMgWyV1XS4KAAAAAAAAAAAAAAAAAABmb2lzY3NpX2luaXQ6IGluaXRfZG9u +ZToldSwgZm9pc2NzaV9udGFza3M6JXUsIGZvaXNjc2lfbnNlc3M6JXUsIG5jc29jazoldSwgbnNw +b3J0czoldSwgZm9pc2NzaV9uaW5pdDoldSwgcmM6JWQKAAAAAAAAAAAAAAAAAAAAAGNoX2NsX3Jh +dGVbJXUvJXVdOiBjYXBwZWQgY2xhc3MgcmF0ZSBmcm9tIHJlcXVlc3RlZCAldSB0byBjb25maWd1 +cmVkIChlZmZlY3RpdmUpIGNoYW5uZWwgcmF0ZSAldQoAAAAAAAAAAAAAAAAAAABjaF9jbF9yYXRl +WyV1LyV1XTogaW5jcmVhc2VkIGRlZmljaXRfaW5jciBmcm9tIHJlcXVlc3RlZCAldSB0byByZXF1 +aXJlZCBtaW4gb2YgJXU7IHJhdGUgJXUgKGVmZiAldSkgZGVmaWNpdF9tYXggJXUKAAAAAAAAAAAA +AAAAAHBrdHNjaGVkIGNoYW5uZWwgJXUgc2V0cyBzcGVlZCAoZnJvbSAldSkgdG8gJXUga2JwcwoA +AAAAAAAAAAAAAABuZXRfbDJkZXZfbm90aWZ5OiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBw +b3J0IFslZF0sIGV2ZW50IFsweCV4XSwgdWxwdHhjaCBbJXVdLCBjbGFzcyBbMHgleF0sIHZwcmlv +IFsweCV4XSwgdmlkIFsweCV4XSwgdmlfcmVhZHkgWyV1XQoAAAAAAABuZXRfbDJkZXZfbm90aWZ5 +OiBwZ2lkIFsweCV4XSwgcHJpbyBbMHgleF0sIGNoIFsweCV4XQoAAAAAAAAAAAAAWyV1XSB1bmFi +bGUgdG8gZXhlY3V0ZSBpbnRlcm5hbCBEQ0JfSUVFRV9DTUQKAAAAcG9ydFsldV0gcHR5cGUgJXUg +bGFuZSAldTogcnhjZmcgPSAlI3gKAAAAAAAAAAAAcG9ydFsldV0gcHR5cGUgJXUgbGFuZSAldTog +dHhjZmcgPSAlI3gKAAAAAAAAAAAAcG9ydFsldV0gbGluayBkb3duICgldSkgKGxzdGF0dXMgJSN4 +KQoAAAAAAAAAAAAAaHdfaTJjX3RyYW5zYWN0aW9uOiBuZGF0YSAldSBhZGRyX29wIDB4JXggZGF0 +YVswXSAweCV4IGRpZmYgJXUKAGh3X2kyY190cmFuc2FjdGlvbjogbmRhdGEgJXUgYWRkcl9vcCAw +eCV4IGRhdGFbMF0gMHgleCBkaWZmICV1IGRwb3MgJXUgY29udCAldSBmYWlsZWQgd2l0aCBlcnIg +JWQKAAAAAAAAAAAAAAAAAABpMmMgdHJhbnNhY3Rpb24gZmFpbGVkIHRvIGNvbXBsZXRlCgAAAAAA +AAAAAAAAAABpMmMgZXJyb3IgY2F1c2VkIGJ5IG1vZHVsZSB1bnBsdWcKAAAAAAAAAAAAAAAAAABz +ZW5kdG8gcGVuZGluZzogd3JfcGVuZCAlcCBmb3IgcG9ydCAldSwgd2FudCB0byBzZW5kIHRvIHBv +cnQgJXUKAAAAAAAAAAAAAAAAAAAAAHBvcnRbJXVdIHVwZGF0ZSAoZmxvd2NpZCAldSByYyAldSkK +AAAAAAAAAAAAAAAAAHBvcnRfc2V0X2xvb3BiYWNrIHBvcnQgJSN4IGN1cnJlbnQgJSN4IG1vZGUg +JSN4CgAAAAAAAAAAAAAAAAAAAABwb3J0WyV1XSBzcGVlZCB1cGRhdGU6ICUjeAoAAAAAAHBvcnRb +JXVdIGJlZ2lubmluZyBkZWJvdW5jZQoAAAAAUVNGUCBtb2R1bGUgdW5wbHVnIC0gcmVpbml0aWFs +aXppbmcgcnhfbG9zICB0byAweGZmCgAAAAAAAAAAAAAAAGdwaW9fcXNmcF9tb2R1bGVfdXBkYXRl +OiBjaGFuZ2VkIHJ4X2xvcyBmcm9tIDB4JXggdG8gMHgleAoAAAAAAABncGlvX3FzZnBfbW9kdWxl +X3VwZGF0ZTogY2hhbmdlZCB0eF9kaXMgZnJvbSAweCV4IHRvIDB4JXgKAAAAAAAAZGlzYWJsaW5n +IHR4ICUjeCByeCAlI3gKAAAAAAAAAABwb3J0X2xpbmtfc3RhdGVfaGFuZGxlclsldV0gcG93ZXJp +bmcgZG93bgoAAAAAAABwb3J0X2xpbmtfc3RhdGVfaGFuZGxlclsldV0gcG93ZXJpbmcgdXAKAAAA +AAAAAABwb3J0X2xpbmtfc3RhdGVfaGFuZGxlclsldV0gdW5rbm93biBzdGF0ZSAoc3RhdGUgPSAl +I3gpCgAAAAAAAAAAcG9ydF9saW5rX3N0YXRlX2hhbmRsZXI6IFNvbWV0aGluZyB3ZW50IHRlcnJp +Ymx5IHdyb25nLiByZXQgPSAlZAoAAAAAAAAAAAAAAAAAAABod19zZ2VfbWFtZW1faW5pdDogZW5j +b3VudGVyZWQgZXJyb3IgJWQKAAAAAAAAAABsZSBpbml0aWFsaXphdGlvbjogbmVudHJpZXMgJXUg +cm91dGUgJXUgY2xpcCAldSBmaWx0ZXIgJXUgYWN0aXZlICV1IHNlcnZlciAldSBoYXNoICV1CgAA +AAAAAAAAAABsZSBpbml0aWFsaXphdGlvbjogbmVudHJpZXMgJXUgcm91dGUgJXUgY2xpcCAldSBm +aWx0ZXIgJXUgc2VydmVyICV1IGFjdGl2ZSAldSBoYXNoICV1IG5zZXJ2ZXJzcmFtICV1CgAAAAAA +AAAAAAAAaHdfdHBfaW5pdDogdGNiIHJlZ2lvbiAoc3RhcnQgMHglMDhzIHNpemUgJXUpIG11c3Qg +YmUgaW4gZmlyc3QgMjU2TUIgb2YgTUEgbWVtb3J5CgAAAAAAAAAAAAAAAAAAaHdfdHBfaW5pdDog +cGdtbmd0IHJlZ2lvbiAoc3RhcnQgMHglMDhzIHNpemUgJXUpIG11c3QgYmUgaW4gZmlyc3QgMjU2 +TUIgb2YgTUEgbWVtb3J5CgAAAAAAAAAAAAAAaHdfdHBfaW5pdDogVFAgcGdtbmd0IGluaXRpYWxp +emF0aW9uIGRpZCBub3QgY29tcGxldGUKAAAAAAAAAAAAAGJ1Zm1faW5pdDogbiAldSBidWZsbDY0 +aW50X3NpemUgMHgleAoAAAAAAAAAAAAAAGJ1Zm1faW5pdDogbm90IGVub3VnaCBtZW1vcnkgdG8g +YWxsb2NhdGUgaW50ZXJuYWwgYnVmbGw2NCBidWZmZXJzCgAAAAAAAAAAAAAAAAAAYnVmbV9pbml0 +OiBub3QgZW5vdWdoIG1lbW9yeSB0byBhbGxvY2F0ZSBidWZsbDY0IGJ1ZmZlcnMKAAAAAAAAAG1l +bV9pbml0X2J1Zjogbm90IGVub3VnaCBtZW1vcnkgdG8gYWxsb2NhdGUgZmxvdyBidWZmZXJzCgAA +AAAAAABtZW1faW5pdF9idWY6IG5vdCBlbm91Z2ggbWVtb3J5IHRvIGFsbG9jYXRlIHRjYl9jYWNo +ZSAob2ZmZXJlZCAldSB0cnlpbmcgdG8gdXNlICV1IGF2YWlsYWJsZSAldSkKAAAAAAAAAAAAAAAA +AAAAbXBhcnRpdGlvbl9vdGhlcnM6IHN0YXJ0IDB4JTA4eCBzaXplICV1ICh1bnVzZWQgJXUpCgAA +AAAAAAAAAAAAAG1wYXJ0aXRpb25fb3RoZXJzOiBzdGFydCAweCUwOHggc2l6ZSAldSAodW51c2Vk +ICV1KQoAAAAAAAAAAAAAAABtZW1faW5pdDogRURDIG92ZXJjb21taXR0ZWQgYnkgJWQgYnl0ZXMK +AAAAAAAAAABtZW1faW5pdDogbm90IGVub3VnaCBtZW1vcnkgdG8gYWxsb2NhdGUgZmxvdyB0YWJs +ZQoAAAAAAAAAAAAAAAAAY3hjbmljX2RldmljZV9pbml0OiBjeGNuaWMgWzB4JTB4XSwgY3hjbmlj +LT5maWx0ZXIgWyUweF0KAAAAAAAAAHBvZmNvZSBpbml0IGRvbmUKAAAAAAAAAAAAAAAAAAAAcG9y +dF9pbml0WyV1XSBwdHlwZSAweCV4CgAAAAAAAABQb3J0WyV1XTogVW5rbm93biBTR01JSSBzdWIt +dHlwZSAlI3gKAAAAAAAAAAAAAABQb3J0WyV1XTogVW5rbm93biBCVF9YRkkgc3ViLXR5cGUgJSN4 +CgAAAAAAAAAAAABwb3J0X2luaXRbJXVdOiBwb3J0IHR5cGUgMHgleCBpcyBub3Qgc3VwcG9ydGVk +CgBtcGFydGl0aW9uX2luaXQ6IG1vdmVkIHBtcnhfc3RhcnQgZnJvbSAweCUwOHggdG8gMHglMDh4 +IHRvIG1ha2Ugcm9vbSBmb3IgTEUgSEFTSCBhbmQvb3IgVFAgVENCcwoAAAAAAAAAAAAAAAAAAAAA +bXBhcnRpdGlvbl9pbml0OiBtb3ZlZCBwbXJ4X3N0YXJ0IGZyb20gMHglMDh4IHRvIDB4JTA4eCAo +RURSQU0pCgAAAAAAAAAAAAAAAAAAAABFUSBwZm4gJXUgdmZuICV1OiBkZXN0cm95aW5nIGVxaWQg +JXUgd2l0aCBwZW5kaW5nIFdSKHMpIChudW1fYnl0ZXMgJXUgYW5kIGZsYWdzIDB4JTA4eAoAAAAA +AAAAAABsMmRldl9mYy0+Zmxvd2NfaWQgWyV1XSwgbDJkYy0+cGZuIFsldV0sIGwyZGMtPnZmbiBb +JXVdLCBsMmRjLT5scG9ydCBbJXVdLCBsMmRldl9mYy0+Zmxvd2lkIFsldV0gbDJkYy0+dHhfY2gg +WyV1XSwgZGV2LnZwZC5wb3J0dmVjIFsleF0KAAAAAAAAAABwb3J0dmVjIFsldV0KAAAAbDJkZXZf +dmlfZnNtOiBtYiBbMHgleF0sIGRlZmVycmVkLCBzdGF0ZSBbMHgleF0sIHBvcnQgWzB4JXhdCgAA +AGwyZGV2X3ZpX2ZzbTogdmlpZCBbMHgleF0gcG9ydCBbMHgleF0sIG1hYy1pZCBbJTAyeDolMDJ4 +OiUwMng6JTAyeDolMDJ4OiUwMnhdLiAKAAAAAAAAAAAAAAAAAAAAAGwyZGV2X3ZpX2ZzbTogc2dl +X2VxaWQgWzB4JXhdLCBzZ2VfaXFpZCBbMHgleF0sIHNnZV9lcWNyIFsweCV4XSwgcnNzX3N6IFsw +eCV4XQoAbDJkZXZfdmlfZnNtOiBsMmRldl9mYy0+Zmxvd2NfbmV0X2wyZGV2X210dSBbJXVdLCBt +Yl9zY3JhdGNoIFsweCV4XSwgcG9ydCBbMHgleF0KAAAAAAAAAAAAAAAAAAAAbDJkZXZfdmlfZnNt +OiB2aWlkIFslZF0sIHZpX2ZjLT5mbG93Y192aV9mbGFncyBbMHgleF0KAAAAAAAAAAAAAGwyZGV2 +X3ZpX2ZzbTogcGZuIFsweCV4XSwgdmZuIFsweCV4XSwgbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4 +XSwgbHBvcnQgWzB4JXhdLCB2aWlkIFsweCV4XSwgZmxhZ3MgWzB4JXhdCgAAAAAAAABsMmRldl92 +aV9mc206IEVycm9yIGZyZWVpbmcgVkksIHJjIFsweCV4XQoAAAAAAABsMmRldl92aV9mc206IHBp +ZCBbMHgleF0sIHZpaWQgWzB4JXhdLCBtYl9sb2MgWzB4JXhdLCBtYl9vcmlnWzB4JXhdLCBsMmRl +dl9mbGFncyBbMHgleF0sIHJjIFsweCV4XQoAAAAAAAAAAAAAAAAAQWggaGEuLi5kb3VibGUgZnJl +ZSBveF9pZCAweCV4LCByeF9pZCAweCV4CgAAAAAASG9zdCBQUkxJIFJlc3BvbnNlIHRpbWVkb3V0 +OiBveF9pZCAweCV4IHJ4X2lkIDB4JXgKAAAAAAAAAAAAAAAAAHBmbiAldSB2Zm4gJXUgdmlhIGNv +bW1hbmQKAAAAAAAAY29uZmlndXJhdGlvbiBmaWxlIHBhcnNlcjogYW5fYWVjX3RpbWUgdmFsdWUg +JWQgaXMgYmlnZ2VyIHRoYW4gYWxsb3dlZCBsaW1pdC5DaGFuZ2luZyBpdCB0byAxMDAwMCBtcy4K +AAAAAAAAAAAAAERlcHJlY2F0ZWQgY29uZmlnIG9wdGlvbiBmb3VuZCBpbiBjb25maWcgZmlsZS4g +SWdub3JpbmcuLgoAAAAAAABjb25maWd1cmF0aW9uIGZpbGUgcGFyc2VyOiBwbCB0aW1lb3V0IHZh +bHVlIGlzIHRvbyBsYXJnZSwgY2hhbmdpbmcgZnJvbSAldSB0byAldXVzZWNzCgAAAAAAAAAAAABQ +TF9QQ0lFX0xJTksuc3BlZWQgb2YgJXUgaXMgbm90IHN1cHBvcnRlZApmaWxlLCByZXQgRldfRUlP +CgAAAAAAc2NoZWRfaW9xdHhfYnBfcHJpb3JpdHk6IGhhcyAldSBlbnRyaWVzIG9ubHksIHJlcXVp +cmVzICV1IGVudHJpZXMKAAAAAAAAAAAAAAAAAAB0cF9iYWNrb2ZmOiBwYXJzZWQgJWQgaW5zdGVh +ZCBvZiAldSBlbnRyaWVzCgAAAAB0cF90aW1lcnZhbHM6IHBhcnNlZCAlZCBpbnN0ZWFkIG9mICV1 +IGVudHJpZXMKAAB0cF90aW1lcnJlczogcGFyc2VkICVkIGluc3RlYWQgb2YgJXUgZW50cmllcwoA +AAB0cF9tdHVzIGhhcyAldSBlbnRyaWVzIG9ubHksIHJlcXVpcmVzICV1IGVudHJpZXMKAAAAAAAA +AAAAAAAAAAAAdHBfbXR1c1sldV0gaXMgJXUgYnl0ZXMgd2hpY2ggaXMgbm90IHN1cHBvcnRlZAoA +Y29uZmlndXJhdGlvbiBmaWxlIHBhcnNlcjogc2dlIHRpbWVyIHZhbHVlWyVkXSBpcyB0b28gbGFy +Z2UsIGNoYW5naW5nIGZyb20gJXUgdG8gJXV1c2VjcwoAAAAAAAAAZmlsdGVybWFzayAweCV4IGlz +IG5vdCBlcXVhbC9zdWJzZXQgdG8vb2YgZmlsdGVybW9kZQoAAAAAAAAAAAAAAGh3X2xlX2NsaXBf +aGFuZGxlcjogcmVtb3ZlZCBwb3M9JXUgKD1pZHggJXUpCgAAAGh3X2xlX2NsaXBfaGFuZGxlcjog +YWRkaW5nIHRvIHBvcz0ldSAoPWlkeCAldSkKAHBoeV9pbml0OiBwb3J0ICV1IHdpdGggdGhlIHR5 +cGUgJXUgIGhhdmUgcmV0ICVkCgAAAAAAAAAAAAAAAAAAAABiZWFuL2FlYyBjb21wbGV0ZSAldQoA +AAAAAAAAAAAAAGh3X21hY19pbml0X3BvcnRbJXVdLCBwdHlwZSAweCV4LCBzcGVlZCAweCV4LCBs +YW5lcyAweCV4LCBmZWMgMHgleAoAAAAAAAAAAAAAAAAAbW9kdWxlWyV1XTogcG9ydCBtb2R1bGUg +aW5zZXJ0ZWQgYW5kIHJlYWR5CgAAAAAAbW9kdWxlWyV1XTogcG9ydCBtb2R1bGUgcmVtb3ZlZAoA +AAAAAAAAAAAAAAAAAAAAbW9kdWxlWyV1XTogdW5rbm93biBtb2R1bGUgaWRlbnRpZmllciAweCUw +MngKAAAAbW9kdWxlWyV1XTogZ3BpbyAldSB0cmFucyAxMEcgMHglMDJ4IDFHIDB4JTAyeCAobGVu +Z3RoICV1KSBjYWJsZSAweCUwMnggKGxlbmd0aCAldSkgbW9kdWxlX3R5cGUgMHglMDJ4CgAAAAAA +AAAAAG1vZHVsZVsldV06IGdwaW8gJXUgdHJhbnMgMTBHIDB4JTAyeCAxRyAweCUwMnggKGxlbmd0 +aCAldSkgY2FibGUgMHglMDJ4IChsZW5ndGggJXUpIG1vZHVsZV90eXBlIDB4JTAyeAoAAAAAAAAA +AABjeDRfY3JfbW9kdWxlX3J4X2xvc1sldV06IHJ4X2xvcyBjaGFuZ2VkIHRvICV1CgBNQzogZXhw +ZWN0ZWQgc3RhdGUgdG8gc3dpdGNoIHRvIENGRy4AAAAAAAAAAAAAAABNQzogZXhwZWN0ZWQgc3Rh +dGUgdG8gc3dpdGNoIHRvIEFjY2Vzcy4AAAAAAAAAAABNQzogZXhwZWN0ZWQgc3RhdGUgdG8gc3dp +dGNoIHRvIENGRy4AAAAAAAAAAAAAAABNQzogZXhwZWN0ZWQgc3RhdGUgdG8gc3dpdGNoIHRvIEFj +Y2Vzcy4AAAAAAAAAAABJSS4xLmJ4IGRwMThbJXVdIHFbJXVdICUjeCAlI3ggJSN4ICUjeCBtaW4g +JSN4IG1heCAlI3gKAAAAAAAAAAAASUkuMS5jLWQuICUjeCAlI3ggJSN4ICUjeCBhbGwgICUjeAoA +AAAAAAAAAAAAAAAASUkuMi5iICglI3ggLSAlI3ggKyAlI3gpICUgMTI4ID0gJSN4CgAAAAAAAAAA +AAAASUkuMyBpbmV3XzFlIGFmdGVyIGxpbWl0IGNvbXB1dGUgaXRlbXBfMWUgJXgsIGluZXdfMWUg +JXgKAAAAAAAAAElJLjMuIGl0ZW1wXzFlICUjeCBpbmV3XzFlICUjeCBpbmV3XzFlICVkCgAAAAAA +AElJLjQuIHNldF8xZSAlI3gKAAAAAAAAAAAAAAAAAAAATUM6IGNhbGlicmF0aW9uIGZhaWxlZCBm +b3IgZXJyYXRhMjkgZHAxOCAldQoAAAAASVYuMS4gZHAxOFsldV0gcGhhc2Vfc2VsIGJlZm9yZSAl +I3ggYWZ0ZXIgJSN4LCBnYXRlX2RlbGF5ICUjeAoAAE1DIGVycmF0YTI5IGlzc3VlOiBkcDE4ICV1 +IHF1YWQgJXUgY2Fubm90IGJlIGRlY3JlYXNlZAoAAAAAAAAAAABNQyBlcnJhdGEyOSBpc3N1ZTog +ZHAxOCAldSBxdWFkICV1IGNhbm5vdCBiZSBkZWNyZWFzZWQKAAAAAAAAAAAATUMgZXJyYXRhMjkg +aXNzdWU6IGRwMTggJXUgcXVhZCAldSBjYW5ub3QgYmUgZGVjcmVhc2VkCgAAAAAAAAAAAE1DIGVy +cmF0YTI5IGlzc3VlOiBkcDE4ICV1IHF1YWQgJXUgY2Fubm90IGJlIGRlY3JlYXNlZAoAAAAAAAAA +AAB0ZW1wMl8xZSsweDEwID0gJSN4CgAAAAAAAAAAAAAAAE1DOiBjYWxpYnJhdGlvbiBmYWlsZWQg +Zm9yIGVycmF0YTIxIGl0ZXJhdGlvbiAldQoAAAAAAAAAAAAAAAAAAABNQyBlcnJhdGEgMjE6IGRw +MThbJXVdIHByMCBuMDIgZmFpbGVkIHRvIGdldCBhdmVyYWdlCgAAAAAAAAAAAAAATUMgZXJyYXRh +IDIxOiBkcDE4WyV1XSBwcjAgbjEzIGZhaWxlZCB0byBnZXQgYXZlcmFnZQoAAAAAAAAAAAAAAE1D +IGVycmF0YSAyMTogZHAxOFsldV0gcHIxIG4wMiBmYWlsZWQgdG8gZ2V0IGF2ZXJhZ2UKAAAAAAAA +AAAAAABNQyBlcnJhdGEgMjE6IGRwMThbJXVdIHByMSBuMTMgZmFpbGVkIHRvIGdldCBhdmVyYWdl +CgAAAAAAAAAAAAAATUMgaW5pdGlhbGl6YXRpb24gZmFpbGVkOiBERkkgaW5pdCBub3QgZ29pbmcg +dG8gMAoAAAAAAAAAAAAAAAAAAE1DIGluaXRpYWxpemF0aW9uIGZhaWxlZDogREZJIGluaXQgbm90 +IGNvbXBsZXRpbmcKAAAAAAAAAAAAAAAAAABNQyBpbml0aWFsaXphdGlvbiBmYWlsZWQ6IENhbGli +cmF0aW9uIGRpZG4ndCBjb21wbGV0ZS4KAAAAAAAAAAAARFAxOCAldSwgYnl0ZV9sYW5lICV1LCBi +aXRfc2VsZWN0ICV1CgAAAAAAAAAAAAAARFAxOCAldSwgYnl0ZV9sYW5lICV1LCBiaXRfc2VsZWN0 +ICV1CgAAAAAAAAAAAAAATUMgZmFpbGVkIHRvIGdldCBVUENUTCBwb3dlciB1cCBkb25lCgAAAAAA +AAAAAAAATUMgaW5pdGlhbGl6YXRpb24gZmFpbGVkOiBEaWRuJ3QgZ2V0IGFsbCBEUDE4cyBsb2Nr +ZWQKAAAAAAAAAAAAAE1DIGluaXRpYWxpemF0aW9uIGZhaWxlZDogRGlkbid0IGdldCBib3RoIEFE +UnMgbG9ja2VkCgAAAAAAAAAAAABDdXJyZW50IFNsZXcgdHhfcm93ICVkOiB0eF9jb2wgJWQsIHZh +bCAlZAoAAAAAAABDdXJyZW50IFNsZXcgYWRkcl9yb3cgJWQ6IGFkZHJfY29sICVkLCB2YWwgJWQK +AABNQyBpbml0aWFsaXphdGlvbiBmYWlsZWQ6IFNMRVdfRE9ORV9TVEFUVVMgbmV2ZXIgdG9nZ2xl +ZAAAAAAAAAAAcGZuICV1IHZmbiAldSBGU00gc3RhcnQKAAAAAAAAAABwZm4gJXUgdmZuICV1IEZT +TSBjb21wbGV0ZQoAAAAAAGZscl9wZnZmX2ZzbVsldToldV06IHVua25vd24gc3RhdGUgJXUKAAAA +AAAAAAAAAHBmbiAldSB2Zm4gJXUgaW4gZDNob3QsIGlnbm9yaW5nLCBkM2hvdCAweCUwOHggUENJ +RV9TVEFUIDB4JTA4eAoAAAAAAAAAAAAAAAAAAAAAaHcgcGYgYml0bWFwIDB4JTAyeCB2ZmlkIGJp +dG1hcCAweCUwOHg6MHglMDh4OjB4JTA4eDoweCUwOHgKAAAAAGFmdGVyIHZmaWQgZml4dXAsIHZm +aWQgYml0bWFwIDB4JTA4eDoweCUwOHg6MHglMDh4OjB4JTA4eAoAAAAAAABNQ1sldV06IGZhaWxl +ZCB0byBzd2l0Y2ggY29udHJvbGxlciB0byBDRkcgc3RhdGUKAAAAAAAAAAAAAAAAAAAATUNbJXVd +OiBmYWlsZWQgdG8gc3dpdGNoIGNvbnRyb2xsZXIgdG8gSU5JVF9NRU0gc3RhdGUKAAAAAAAAAAAA +AE1DWyV1XTogZmFpbGVkIHRvIHN3aXRjaCBjb250cm9sbGVyIHRvIENGRyBzdGF0ZQoAAAAAAAAA +AAAAAAAAAABNQ1sldV06IHBlcmlvZGljIGNhbGlicmF0aW9uIGZhaWxlZCB3aXRoIGVycm9yICV1 +CgAAAAAAAAAAAAAAAAAAdGltZXIgcXVldWUgJXUgbG9zdCBhIHRpY2shIG5leHQgJXAgbGFzdCAl +cCBudW1lICV1CgAAAAAAAAAAAAAAAGZscl90aW1lcl9zdGFydDogZmxvd2NfaWQgJXUgJXAgYnVm +ICVwCgAAAAAAAAAAAE1BQzogUExMcyBkaWRuJ3QgbG9jawoAAAAAAAAAAAAAcGNpZTogcmVhZCBm +cm9tIHNlcmNmZyBwY2llX2lwX3VyX21heGZ1bmMgMHgleCBwZmJpdG1hcCAweCV4CgAAAHBjaWU6 +IFNlcmlhbCBDb25maWd1cmF0aW9uIFNQQVJFMyBoYXMgQ29va2llIEdlbmVyYXRpb24gZW5hYmxl +ZC4KAAAAAAAAAAAAAAAAAAAAcGNpZTogbnBmICV1IChwZmJpdG1hcCAweCUwMngpIG52ZiAldSAo +cGYgMC4uNyAweCUwOHglMDh4KSB2ZnN0cmlkZSAldQoAAAAAAAAAAABod19tYWNfcHJlcDogZXJy +b3IsIHJldCAlZAoAAAAAAGh3X2dwaW9fcHJlcDogZXJyb3IsIHJldCAlZAoAAAAATUMgQ0xLIHNl +dHRpbmcgZmFpbGVkOiBQTExfTV9MT0NLIG5ldmVyIHRvZ2dsZWQKAAAAAAAAAAAAAAAAAAAAAGZh +aWxlZCB0byBmaW5kIHRoZSAlYyVjIFZQRCBwYXJhbWV0ZXIKAAAAAAAAAAAAAGZhaWxlZCB0byBw +YXJzZSB0aGUgJWMlYyBWUEQgcGFyYW1ldGVyCgAAAAAAAAAAAG1lbV9wcmVwOiBlcnJvciwgcmV0 +ICVkCgAAAAAAAAAAZmFpbGVkIHRvIHN1Y2Nlc3NmdWxseSBmaW5kIENoZWxzaW8gVlBECgAAAAAA +AAAAdnBkX3ByZXA6IGVycm9yLCByZXQgJWQKAAAAAAAAAABzZXJjZmdfcHJlcDogZXJyb3IsIHJl +dCAlZAoAAAAAAGxvZyBpbml0aWFsaXplZCBAIDB4JTA4eCBzaXplICV1ICgldSBlbnRyaWVzKSBm +d3JldiAweCUwOHggcGNpZV9mdyAweCUwOHgKAAAAAAAAYm9vdHN0cmFwIGZpcm13YXJlIHRvb2sg +JXUgbXNlY3MgdG8gcnVuCgAAAAAAAAAAUEkgZXJyb3IgZmxvd2lkX2xlbjE2IDB4JXgsIGFwcF90 +YWcgMHgleCwgcmVmX3RhZyAweCV4LCBwaXNjICUwNHggJTA0eCAlMDR4ICUwNHgKAAAAAAAAAAAA +AAAAAAAAZmxvd2MgJXUgKFNHRSBlcWlkICV1KSAoRVRIQ1RSTCBxdWV1ZSkgZXhwZXJpZW5jZWQg +YSBQQ0kgRE1BIFJFQUQgd29yayByZXF1ZXN0IGVycm9yIChpbmJvdW5kIHF1ZXVlICV1KQoAAAAA +AAAAAGZsb3djICV1IChTR0UgZXFpZCAldSkgZXhwZXJpZW5jZWQgYW4gdW5leHBlY3RlZCBQQ0kg +RE1BIFJFQUQgd29yayByZXF1ZXN0IGVycm9yIChpbmJvdW5kIHF1ZXVlICV1KQoAAAAAAAAAAAAA +AABmbG93YyAldSBleHBlcmllbmNlZCBhbiB1bmV4cGVjdGVkIFBDSSBETUEgUkVBRCBlcnJvciAo +aW5ib3VuZCBxdWV1ZSAldSkKAAAAAAAAAGdhdGhlcl90YXNrc19mb3JfdG1mOiBpZHggWzB4JXhd +LCB0YXNrLWlkIFsweCV4XSwgY21kLWlkIFsweCV4XSwgYWN0aXZlIHRhc2tzIFsweCV4XS4gY29u +bi1pZCBbMHgleF0sIGNtZCBjb25uLWlkIFsweCV4XSwgdGFzayBjb25uLWlkIFsweCV4XQoAAGdh +dGhlcl90YXNrc19mb3JfdG1mOiBJbnZhbGlkIHR5cGUgWzB4JXhdLCBiYWlsaW5nIG91dC4KAAAA +AAAAAABnYXRoZXJfdGFza3NfZm9yX3RtZjogdGFzayBpZCBbMHgleF0sIHN0YXRlIFsweCV4XSwg +bGlkeCBbMHgleF0sIGNvb2tpZSBoaSBbMHglMDh4XSA6IGxvIFsweCUwOHhdCgAAAAAAAAAAAAAA +AAAAZ2F0aGVyX3Rhc2tzX2Zvcl90bWY6IHJjIFsweCV4XSwgWzB4JXhdIHRhc2sgZ2F0aGVyZWQg +Zm9yIHRtZiB0eXBlIFsweCV4XSBwcm9jZXNzaW5nLgoAAAAAAAAAAAAAc2NzaV9kYXRhX291dDog +Y29ubl9mYyBbMHgleF0sIHN0YXRlIFsweCV4XSwgc2Vzc19mYyBbMHgleF0gaW4gcmVjb3Zlcnku +IFNraXBwaW5nIGlzdGFza19mYyBbMHgleF0gZnJvbSBUWC4KAAAAAHNlbmRfbXNnX3BsZDogZmMg +eyBpZCBbMHgleF0sIGZsYWdzIFsweCV4XSwgYnVmZmVyZWQgWyV1XS4gfQoAAABzZW5kX21zZ19w +bGQ6IHNlc3MgeyBpZCBbMHgleF0gfSwgdWxwdHhjaCBbJXVdIG5vIGNyZWRpdHMgYXZhaWxhYmxl +LCByZXNjaGVkdWxpbmcgcmVxdWVzdC4KAAAAAABzZW5kX2Fib3J0X3JlcTogY3NrX2ZjLT5mbG93 +Y190eXBlIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIHRpZCBbMHgleF0sIHVscHR4 +Y2ggWyV1XSwgYnVmZmVyZWQgWyV1XQoAAAAAZmNfc2VuZF9hbGxvY19jcGw6IGZhaWxlZCB0byBz +ZXR1cCBmaWx0ZXIgY3R1cGxlCgAAAAAAAAAAAAAAAAAAAGZjb2VfY29tcHV0ZV9jdHVwbGUgMHgl +eDoleAoAAAAAY29tcHV0ZV9jdHVwbGUoKTogZmFpbGVkIHRvIHNldHVwIGZpbHRlciBjdHVwbGUK +AAAAAAAAAAAAAAAAAAAAAEZDb0UgRkNCIGxpbmtkb3duOiBpb19yZXEgMHgleCV4IGlxaWQgMHgl +eCBmbG93aWQgMHgleCBvcCAweCV4CgBmY29lIG5vdGlmeSA6IFVwZGF0ZSBuZXcgRENCWCB2YWx1 +ZXMgVkkgc3RhdGUgMHgleCBwcmkgMHgleCBzY2hlZGNsIDB4JXggZGNieF9kb25lIDB4JXgKAAAA +AAAAAABmY29lIG5vdGlmeSA6IEZDRiBmbG93aWQgMHgleCwgdWxwY2ggMHgleCAKAAAAAABmY29l +IG5vdGlmeSA6IEZDb0UgTElOS1VQOiBwb3J0IDB4JXgsIGV2ZW50IDB4JXgKAAAAAAAAAAAAAAAA +AAAAZmNvZSBub3RpZnkgOiBGQ29FIExJTktET1dOOiBwb3J0IDB4JXgsIGV2ZW50IDB4JXgKAAAA +AAAAAAAAAAAAAGZjb2Ugbm90aWZ5IDogRENCWCA6IHBvcnQgMHgleCwgcHJpb3JpdHkgMHgleCB1 +bHB0eGNoIDB4JXggY2xhc3MgMHgleAoAAAAAAAAAAAAAUkRFViBtc2cgZmxvd2M6JXggc3RhdGUg +MHgleCBldmVudCAweCV4CgAAAAAAAAAAY2FuY2VsIGZjYjoleCBzY2I6JXggc3RhdGU6JXgKAABG +Q29FIEZDRiB0aW1lcjogZmxvd2Mgc3RhdGUgMHgleCwgcG9ydCAweCV4ICxmY2YgMHgleCwgZmxv +d2NfaWQgMHgleAoAAAAAAAAAAAAAAGh3IHJlZ2lzdGVyIG9wZXJhdGlvbiBub3QgY29tcGxldGlu +ZywgcmVnIDB4JTA4eCBtYXNrIDB4JTA4eCB2YWx1ZSAweCUwOHggKHJlZyAweCUwOHgpCgAAAAAA +AAAAAE1ESU8gQ0w0NTogZmFpbGVkIHRvIHNldCB1cCBNTUQgYWRkcgoAAAAAAAAAAAAAAE1ESU86 +IGZhaWxlZCB0byByZWFkCgAAAAAAAAAAAAAAV3JpdGVfYWxsX3BvcnRzOiBwaWQgPSAldSByZWcg +PSAweCV4IAoAAAAAAAAAAAAATURJTyBDTDQ1OiBmYWlsZWQgdG8gc2V0IHVwIE1NRCBhZGRyCgAA +AAAAAAAAAAAATURJTzogZmFpbGVkIHRvIHdyaXRlCgAAAAAAAAAAAABtaWlfYWR2X2ZjWyV1XTog +cmNhcHMgMHgleAoAAAAAAG1paV9hZHZfc3BlZWRbJXVdOiByY2FwcyAweCV4CgAAbmV0aWZfc2V0 +X21hYzogbDJkZXZfZmMtPmZsb3djX25ldF9sMmRldl9tYnMgWzB4JXhdCgAAAAAAAAAAAAAAAHJl +bW92aW5nIG1hYwoAAABub2RlLT5ncnAgWyUwNHggJTA0eCAlMDR4ICUwNHhdLCBub2RlX2lkICV1 +LCByZWZfY250ICV1CgAAAAAAAAAAREFEIGZvciBhZGRyIFslMDR4ICUwNHggJTA0eCAlMDR4XQoA +AAAAAAAAAAAAAAAAY3BsX3R4X3BrdDogdmxhbmlkIFsweCV4XQoAAAAAAABjcGxfdHhfcGt0OiB2 +bGFuaWQgWzB4JXhdCgAAAAAAAGZsb3djX2lkIFsldV0gbDJkZXZfZmMgWzB4JXhdIGFscmVhZHkg +cmVjZWl2ZWQgUkEsIG5vdCBzZW5kaW5nIFJTCgAAAAAAAAAAAAAAAAAAZmxvd2NpZCBbJXVdIGwy +ZGV2X2ZjIFsweCV4XSBObyBJUHY2IHJvdXRlcgoAAAAAc2VuZF9jbG9zZV9yZXE6IGNza19mYy0+ +Zmxvd2NfdHlwZSBbMHgleF0sIGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2tfZmMtPnRjYl9z +dGF0ZSBbMHgleF0KAAAAc2VuZF9jbG9zZV9yZXE6IGNza19mYy0+Zmxvd2NfdHlwZSBbMHgleF0s +IGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCB0aWQgWzB4JXhdLCB1bHB0eGNoIFsldV0sYnVmZmVy +ZWQgWyV1XQoAAAAAAG9mbGRfdGNwX2RvX2FjdGl2ZV9jbG9zZTogY3NrX2ZjIFsweCV4XSwgY3Nr +X2ZjLT5mbG93Y19pZCBbMHgleF0sIGNza19mYy0+dGNiX3N0YXRlIFsweCV4XQoAAAAAAG9mbGRf +dGNwX2RvX2FjdGl2ZV9jbG9zZTogY3NrX2ZjIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19pZCBbMHgl +eF0sIGNza19mYy0+dGNiX3N0YXRlIFsweCV4XQoAAAAAAG9mbGRfdGNwX2Rpc2Nvbm5lY3Q6IHRj +Yl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2tfZmMtPmZsb3djX2lkIFsweCV4XSwgY3NrLT50Y2Jf +c3RhdGUgWzB4JXhdCgAAAGRlY29kZV9iYXNlNjRfc3RyaW5nOiBkbGVuIFslZF0KAAAAAAAAAAAA +AAAAAAAAAGRlY29kZV9oZXhfc3RyaW5nOiBkbGVuIFslZF0KAAAAZm9pc2NzaV92YWxpZGF0ZV9s +b2dpbl9zdGFnZTogLSAxCgAAAAAAAAAAAAAAAAAAYXN5bmNfcGR1OiBsb2dvdXQgcmVxdWVzdGVk +IGJsb2NraW5nIHNlc3Npb24KAAAAYXN5bmNfcGR1OiBzZXNzL2Nvbm4gZHJvcCByZXF1ZXN0ZWQg +YmxvY2tpbmcgc2Vzc2lvbgoAAAAAAAAAAAAAAGNwbF90eF9wa3Q6IHZsYW5pZCBbMHgleF0KAAAA +AAAAcmVpbml0IGxpbmstbG9jYWwgYWRkcmVzcwoAAAAAAABuZXRfbDJkZXZfZmluZF9ieV9hZGRy +OiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBsMmRjLT5scG9ydCBbJXVdLCBsMmRfZmMtPmZs +b3djX2lkIFsweCV4XSwgbDJkYy0+aW40X2Rldi5pbl9hZGRyLmFkZHIgWzB4JXhdLCBhZGRyIFsw +eCV4XQoAAABuZXRfbDJkZXZfbXR1X2NvbmZpZzogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwg +bXR1ICV1CgAAAAAAAAAAbmV0aWZfZG9fZGhjcDogd3ItPnBhcmFtLnZsYW5pZCBbJXVdLCBsMmRl +dl9mYy0+Zmxvd2NfbmV0X2wyZGV2X3ZsYW5kZXYgWzB4JXhdCgBjcGxfdHhfcGt0OiB2bGFuaWQg +WzB4JXhdCgAAAAAAAGVuY29kZSBoZXggc3RyaW5nOiBkbGVuIFslZF0KAAAAY2huZXRfZmluZF9s +MnRfZW50cnk6IGRhZGRyIFslMDh4XSwgWzB4JTA4eF0sIGxvY2FsIG5ldHdvcmsgWyVkXQoAAAAA +AAAAAAAAAAAAAABsMnRlbnQgWyUweF0sIGwydGVudC0+aWR4IFslZF0KAHRjcF9zZW5kX2FvcGVu +X3JlcTogY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIGNza19mYy0+Zmxvd2Nfc3RhdGUgWzB4JXhd +LCBidWZmZXJlZCBbJXVdLCByZXNfY250IFsweCV4XSwgaXFfaWR4IFsweCV4XQoAAAAAAAAAAAAA +dGNwX3NlbmRfYW9wZW5fcmVxOiBjc2tfZmMtPmZsb3djX2lkIFsweCV4XSwgY3NrX2ZjLT5mbG93 +Y19zdGF0ZSBbMHgleF0sIG5vIHZhbGlkIGwydF9lbnR5LiBEZWxheWluZyBhbm90aGVyIHJldHJ5 +IGZvciAxIHNlY29uZHMuCgAAAAAAAAAAAAAAAAAAYW9wZW5fcmVxOiBod19sZV9maWx0ZXJfY3R1 +cGxlIGZhaWxlZAoAAAAAAAAAAAAAb2ZsZF90Y3Bfc2VuZF9hb3Blbl9yZXE6IGNwbF9yZXEtPkZp +bHRlcl9oaSBbMHglMHhdLCBjcGxfcmVxLT5GaWx0ZXJfbG9fRkNvRU1hc2sgWzB4JTB4XSwgY3R1 +cGxlc1swXSBbMHgleF0sIGN0dXBsZXNbMV0gWzB4JXhdCgBsYWRkcl9yZXQ6IGwyZGMuYWRkciA6 +MHgleCwgc3JjX2FkZHI6MHgleAoAAAAAAABpdHRfdG9fdGFza19pZHg6IHRhZyBbMHglMDh4XSwg +aGkgWyV1XSwgbG8gWyV1XSwgbm1hc2tiaXRzIFsldV0sIHRhc2tfaWR4IFsldV0KAFdBVENIRE9H +OiBObyB0ZW1wZXJhdHVyZSBzZW5zb3IgYXZhaWxhYmxlLgoAAAAAAFdBVENIRE9HOiBBY3RpdmF0 +aW5nCgAAAAAAAAAAAAAAV0FUQ0hET0cgLSBFbmFibGUgYWN0aW9uICV1IHRpbWUgJXUKAAAAAAAA +AAAAAAAAV0FUQ0hET0cgLSBEaXNhYmxlIGFjdGlvbiAldQoAAABXQVRDSERPRzogRGUtYWN0aXZh +dGluZwoAAAAAAAAAAHBvcnRbJXVdIHNldCBQQVVTRSBQQVJBTVM6IHBwcGVuICV1IHR4cGUgJSN4 +IHJ4cGUgJSN4CgAAAAAAAAAAAABtcHNfbGlua191cFsldV0gYWNhcHMgJSN4ICg4MDIuMyAlI3gp +ICsgbHBhY2FwcyAlI3ggPT4gJSN4CgAAAAAAaXB2Nl9oYW5kbGVfbGlua19kb3duIGZsb3djX2lk +IDB4JXgKAAAAAAAAAAAAAAAAaXB2Nl9oYW5kbGVfbGlua191cCBmbG93Y19pZCAweCV4CgAAAAAA +AAAAAAAAAAAAZm9pc2NzaSBjb25uX2ZjIFsweCV4XSwgZmxvd2Nfc2NoZWRjbCBbMHgleF0sIGlu +Z19jaCBbMHgleF0sIGVncl9jaCBbMHgleF0KAAAAAABsMmRldl9ub3RpZnkgd2l0aCB1bmtub3du +IGZsYWcgWzB4JXhdCgAAAAAAAAAAAABjaF9jbF9yYXRlWyV1LyV1XTogY2FwcGVkIGRlZmljaXRf +aW5jciBmcm9tIHJlcXVpcmVkICV1IHRvICV1OyByYXRlICV1IChlZmYgJXUpIGRlZmljaXRfbWF4 +ICV1CgBEQ0JYOiBzdW0gb2YgcmF0ZXMgb24gYWxsIGNsYXNzZXMgbXVzdCBiZSAxMDAgKGFjdHVh +bDogJXUpCgAAAAAAcmlfd3JfaW5pdFsldV06IG1zcyAldSBpcyBub3QgOC1ieXRlIGFsaWduZWQK +AAAAY29yZV9wcm9ncmFtX3RjYjogdGlkICUjeCB0X3N0YXRlICUjeCByY3ZfYWR2IDB4JTA4eCBy +Y3Zfc2NhbGUgJSN4IHR4X21heCAlI3ggcmN2X254dCAlI3ggYXRpZCAlI3gKAAAAAAAAAAAAAAAA +AAlvcHQwICUjeCV4IG9wdDIgJSN4IGlwdjYgJSN4IGZsYWdzX3RpbWVyIDB4JTA4eAoAAAAAAAAA +AAAAAAAAAABvZmxkX2Nvbm5lY3Rpb25fd3I6IGNvbm5lY3Rpb24gd2l0aCA1LXR1cGxlIGxwIDB4 +JTA0eCBmcCAweCUwNHggbGlwIDB4JTA4eCUwOHggcGlwIDB4JTA4eCUwOHggZmlsdGVyIDB4JTA4 +eCBleGlzdHMgQCBMRSBpbmRleCAldQoAAAAAAAAAAAAAAAAAAABvZmxkX2Nvbm5lY3Rpb25fd3I6 +IGNvbm5lY3Rpb24gd2l0aCA1LXR1cGxlIGxwIDB4JTA0eCBmcCAweCUwNHggbGlwIDB4JTA4eCBw +aXAgMHglMDh4IGZpbHRlciAweCUwOHggZXhpc3RzIEAgTEUgaW5kZXggJXUKAAAAAAAAAG9mbGRf +Y29ubmVjdGlvbl93cjogY29ubmVjdGlvbiB3aXRoIDUtdHVwbGUgbHAgMHglMDR4IGZwIDB4JTA0 +eCBsaXAgMHglMDh4JTA4eCBwaXAgMHglMDh4JTA4eCBmaWx0ZXIgMHglMDh4CgAAAABvZmxkX2Nv +bm5lY3Rpb25fd3I6IGNvbm5lY3Rpb24gd2l0aCA1LXR1cGxlIGxwIDB4JTA0eCBmcCAweCUwNHgg +bGlwIDB4JTA4eCBwaXAgMHglMDh4IGZpbHRlciAweCUwOHgKAAAAAAAAAAAAAAAASVFGTElOVCBw +Zm4gJXUgdmZuICV1OiBpcWlkICV1IHRvbyBsYXJnZSAobWF4ICV1KQoAAAAAAAAAAAAAAAAAAElR +RkxJTlQgcGZuICV1IHZmbiAldTogaXFpZCAldSBub3QgYWxsb2NhdGVkCgAAAElRRkxJTlQgcGZu +ICV1IHZmbiAldTogZmwwaWQgJXUgdG9vIGxhcmdlIChtYXggJXUpCgAAAAAAAAAAAAAAAABJUUZM +SU5UIHBmbiAldSB2Zm4gJXU6IGZsMGlkICV1IG5vdCBhbGxvY2F0ZWQKAABJUUZMSU5UIHBmbiAl +dSB2Zm4gJXU6IGZsMWlkICV1IHRvbyBsYXJnZSAobWF4ICV1KQoAAAAAAAAAAAAAAAAASVFGTElO +VCBwZm4gJXUgdmZuICV1OiBmbDFpZCAldSBub3QgYWxsb2NhdGVkCgAASVFGTElOVCBwZm4gJXUg +dmZuICV1OiBmbDFpZCAldSBpcyB2YWxpZCBidXQgbm90IGZsMGlkICV1CgAAAAAAAElRRkxJTlQg +cGZuICV1IHZmbiAldTogZmwxaWQgJXUgaXMgdmFsaWQgYnV0IGhlYWRlciBzcGxpdCBmZWF0dXJl +IGlzIG5vdCBlbmFibGVkCgAAAAAAAAAAAAAAAAAAAGh3X3VscHR4X3dvcmthcm91bmRfcHIxNjk0 +OV9lbmFibGVkX3ZmaWQ6IHZmaWQgJXUgZW5hYmxlZCAldQoAAABFUSBwZm4gJXUgdmZuICV1OiBj +cmVhdGluZyBFVEggZXFpZCAldSB3aXRoIHBlbmRpbmcgV1IocykgKG51bV9ieXRlcyAldSBhbmQg +ZmxhZ3MgMHglMDh4CgAAAAAAAABFUSBwZm4gJXUgdmZuICV1OiBjcmVhdGluZyBDVFJMIGVxaWQg +JXUgd2l0aCBwZW5kaW5nIFdSKHMpIChudW1fYnl0ZXMgJXUgYW5kIGZsYWdzIDB4JTA4eAoAAAAA +AABFUSBwZm4gJXUgdmZuICV1OiBlcWlkICV1IHRvbyBsYXJnZSAobWF4ICV1KQoAAABFUSBwZm4g +JXUgdmZuICV1OiBlcWlkICV1IG5vdCBhbGxvY2F0ZWQKAAAAAAAAAABkY2J4X3BvcHVsYXRlX2N0 +cmwgY29kZSBpbmNvbXBsZXRlCgAAAAAAAAAAAAAAAAB2aV90Y2FtX3JhdyBpZHggJXUgbWFjIDB4 +JTA0eCAlMDh4CgAAAAAAAAAAAAAAAABwb3J0X2JsaW5rX2xlZF9yZXN0b3JlCgAAAAAAAAAAAHBv +cnRfYmxpbms6IGJsaW5rZHVyPTB4JXggYmxpbmtfcmVmY250CgAAAAAAAAAAAHBvcnRfYmxpbms6 +IAlibGlua19yZWZjbnQ9MHgleAoAcG9ydF9ibGluazogCWJsaW5rX3JlZmNudD0weCV4CgBtaWlf +YW5yZXN0YXJ0WyV1XTogYWNhcHMgMHgleAoAAHBvcnRfY21kX2hhbmRsZXI6IHVua25vd24gdS5k +Y2IudHlwZSAweCV4CgAAAAAAAHBvcnRbJXU6MHglMDJ4OjB4JTAyeF06IGwxY2ZnLCBpbnZhbGlk +IHJlcXVlc3QsIHBjYXBzIDB4JXggYWNhcHMgMHgleCByY2FwcyAweCV4CgAAAAAAAAAAAAAAAAAA +AHBvcnRbJXU6MHglMDJ4OjB4JTAyeF06IGwxY2ZnLCBwY2FwcyAlI3ggYWNhcHMgJSN4IHJjYXBz +ICUjeCBtY2FwcyAlI3gKAAAAAAAAAAAAcG9ydFsldToweCUwMng6MHglMDJ4XTogbDFjZmcsIG1k +aSBpc3N1ZSBwY2FwcyAweCV4IGFjYXBzIDB4JXggcmNhcHMgMHgleAoAAAAAAABwb3J0WyV1OjB4 +JTAyeDoweCUwMnhdOiBsMWNmZywgY2Fubm90IGZvcmNlIG5vL211bHRpcGxlIHNwZWVkKHMpLCBw +Y2FwcyAweCV4IGFjYXBzIDB4JXggcmNhcHMgMHgleAoAAAAAAAAAAAAAAAAAYmFkIEZsb3dDICVk +IG9uIGVzdGFibGlzaGVkIGNvbm5lY3Rpb24KAAAAAAAAAAAAZXRoX2Zsb3djX2hhbmRsZXJbMHgl +eF06IGZsYWdzIDB4JTA4eCBudW1fYnl0ZXMgJXUgc2NoZWRjbCAweCV4IC0+IDB4JXgKAAAAAAAA +AAB0YXNrX2lkeF90b19pdHQ6IHRhc2tfaWR4IFsldV0sIGhpIFsldV0sIGxvIFsldV0sIG5tYXNr +Yml0cyBbJXVdLCBzd190YWcgWzB4JTA4eF0sIHBwb2RfaWR4IFslZF0KAAAAAAAAAAAAAAAAAAAA +c2NzaV9jbWQ6IHJlY2VpdmVkIFRNRiBvcCBbMHgleF0gZnVuYyBbMHgleF0gb24gY29ubiBbMHgl +eF0gdGhyb3VnaCBjb21tYW5kIHBhdGguCgAAAAAAAAAAAAAAAAAAc2NzaV9jbWQ6IGNvbm5fZmMg +WzB4JXhdLCBzdGF0ZSBbMHgleF0sIHNlc3NfZmMgWzB4JXhdIGluIHJlY292ZXJ5LiBTa2lwcGlu +ZyBpc3Rhc2tfZmMgWzB4JXhdIGZyb20gVFguCgAAAAAAAAAAAHNjc2lfcmVhZDogY29ubl9mYyBb +MHgleF0sIHN0YXRlIFsweCV4XSwgc2Vzc19mYyBbMHgleF0gaW4gcmVjb3ZlcnkuIFNraXBwaW5n +IGlzdGFza19mYyBbMHgleF0gZnJvbSBUWC4KAAAAAAAAAABzY3NpX3dyaXRlOiBjb25uX2ZjIFsw +eCV4XSwgc3RhdGUgWzB4JXhdLCBzZXNzX2ZjIFsweCV4XSBpbiByZWNvdmVyeS4gU2tpcHBpbmcg +aXN0YXNrX2ZjIFsweCV4XSBmcm9tIFRYLgoAAAAAAAAAZGNieF9jb250cm9sX3NtWyV1XSBDT05U +Uk9MX0xJTktVUAoAAAAAAAAAAAAAAAAAZGNieF9jb250cm9sX3NtWyV1XSBDT05UUk9MX1VQREFU +RV9EQ0JYX1RMVgoAAAAAZGNieF9jb250cm9sX3NtWyV1XSBDT05UUk9MX1BFRVJfTk9UX0FEVkVS +VElTRV9EQ0JYCgAAAAAAAAAAAAAAAGRjYnhfY29udHJvbF9zbVsldV0gQ09OVFJPTF9VUERBVEVf +T1BFUl9WRVJTSU9OCgAAAAAAAAAAAAAAAAAAAABkY2J4X2NvbnRyb2xfc21bJXVdIENPTlRST0xf +UFJPQ0VTU19QRUVSX1RMVgoAAABkY2J4X2NvbnRyb2xfc21bJXVdIENPTlRST0xfQUNLX1BFRVIK +AAAAAAAAAAAAAABkY2J4X2llZWVfdmFsaWRhdGVbJXVdIGVycm9yIChvdWkgJSN4IHN1YnR5cGUg +JSN4IGxlbiAlI3gpCgAAAAAAZGNieF9jZWVfdmFsaWRhdGVbJXVdIGVycm9yCgAAAABjaG5ldF9s +MnRfdXBkYXRlOiBsMmRldl9mYyBbMHgleF0sIGwyZGV2X2ZjLT5mbG93Y19pZCBbJXVdIGwyZGV2 +X2ZjLT5mbG93Y19mbGFncyBbMHgleF0sIGludGYgWzB4JXhdCgAAAAAAAAAAAAAAY2huZXRfbDJ0 +X3VwZGF0ZTogbDJkZXZfZmMtPmZsb3djX2lkIFsldV0gYWxyZWFkeSBzY2hlZHVsZWQKAAAAAGNo +bmV0X2wydF91cGRhdGU6IGluIGRlbGF5ZWRfcHJvY2Vzc2luZywgbDJ0ZW50IFslMDh4XQoAAAAA +AAAAAABESENQdjYgUkVQTFkgcmVjZWl2ZWQgc3RhdGUgJXUKAGRoY3AgcmVwbHkgcmVjZWl2ZWQg +aW4gd3Jvbmcgc3RhdGUgJWQKAAAAAAAAAAAAAHVua25vd24gc2VydmVyaWQuIElnbm9yaW5nIGRo +Y3AgcmVwbHkKAAAAAAAAAAAAAHJlY2VpdmVkIHJlcGx5IHdpdGggZGlmZmVyZW50IGFkZHJlc3Mu +IGlnbm9yaW5nIGRoY3AgcmVwbHkKAAAAAABESENQdjYgQURWRVJUSVNFIHJlY2VpdmVkCgAAAAAA +AGRoY3AgYWR2ZXJ0aXNlIHJlY2VpdmVkIGluIHdyb25nIHN0YXRlICVkCgAAAAAAAGlnbm9yaW5n +IHJjdmQgYWR2ZXJ0aXNlIHByZWZlcmVuY2UgJXUKAAAAAAAAAAAAAHByZWZpeCBub2RlIDB4JXgs +IHZhbGlkX2xpZmV0aW1lICV1LCBjdXJyZW50X3RpbWUgJXUgZXhwaXJlZCwgZGVsZXRpbmcgaXQK +AAAAAAAARGVsZXRlZCBwcmVmaXg6IDB4WyUwNHggJTA0eCAlMDR4ICUwNHhdCgAAAAAAAAAAU3Rh +cnQgREhDUHY2IHRvIGdldCB0aGUgaXAgYWRkcmVzcwoAAAAAAAAAAAAAAAAATm8gZGhjcCwgZGhj +cCBzdGF0ZSAlZCwgYWRkciBzdGF0ZSAlZAoAAAAAAAAAAAAAcGluZyByZXEgcGF5bG9hZCB0b28g +bGFyZ2UgJXUuIElnbm9yaW5nIHJlcS4KAAAAUlIgcmN2ZAoAAAAAAAAAAGNobmV0X2lwdjZfcmRf +aW5wdXQ6IEludmFsaWQgUmVkaXJlY3QKAAAAAAAAAAAAAGNobmV0X2lwdjZfbmFfaW5wdXQ6IElu +dmFsaWQgTkEKAAAAAAAAAAAAAAAAAAAAAGlwdjYgTkEgcmN2ZAoAAABjaG5ldF9pcHY2X25hX2lu +cHV0OiBEdXBsaWNhdGUgYWRkcmVzcyBkZXRlY3RlZCEKAAAAAAAAAAAAAAAAAAAATkEgaW4gcmVw +b25zZSBvZiBOUwoAAAAAAAAAAAAAAABjaG5ldF9pcHY2X25zX2lucHV0OiBJbnZhbGlkIE5TCgAA +AAAAAAAAAAAAAAAAAABjaG5ldF9pcHY2X25zX2lucHV0OiBJbnZhbGlkIE5TIGlwdjZoLT5wbGVu +ICV1CgBpcHY2IE5TIHJjdmQKAAAAY2huZXRfaXB2Nl9uc19pbnB1dDogRHVwbGljYXRlIGFkZHJl +c3MgZGV0ZWN0ZWQKAAAAAAAAAAAAAAAAAAAAAGNobmV0X2lwdjZfbnNfaW5wdXQ6IHNvbWVib2R5 +IHRyeWluZyB0byB1c2Ugb3VyIGFkZHJlc3MKAAAAAAAAAABjaG5ldF9pcHY2X25zX2lucHV0OiBy +ZXEgZm9yIGFkZHIgcmVzb2x1dGlvbgoAAABIb3AgYnkgSG9wIG9wdGlvbgoAAAAAAAAAAAAAAAAA +AHByb2Nlc3NfZGhjcF9vcHRzOiByb290IHBhdGggbGVuIFslZF0gYnl0ZXMKAAAAAG5ldGlmX3By +b2Nlc3NfZGhjcF9vcHRzOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBNU0dfVFlQRSBbJWRd +LCBkaGN0eHQtPnN0YXRlIFslZF0KAAAAAAAAAAAAAGljbXBfcmVjdjogbDJkZXZfZmMtPmZsb3dj +X2lkIFsweCV4XSwgcGlkIFsweCV4XSwgaWNtcCB0eXBlIFsweCV4XQoAAAAAAAAAAAAAAAAAdm4y +dm46IHBvcnQgMHgleCBkaWQ6MHgleCV4JXggVVAKAAAAAAAAAAAAAAAAAAAAdm4ydm46IHBvcnQg +MHgleCBkaWQ6MHgleCV4JXggRE9XTgoAAAAAAAAAAAAAAAAAZmNfc2VuZF9hbGxvY19jcGw6IGZh +aWxlZCB0byBzZXR1cCBmaWx0ZXIgY3R1cGxlCgAAAAAAAAAAAAAAAAAAAGZjb2VfY29tcHV0ZV9j +dHVwbGUgMHgleDoleAoAAAAAY29tcHV0ZV9jdHVwbGUoKTogZmFpbGVkIHRvIHNldHVwIGZpbHRl +ciBjdHVwbGUKAAAAAAAAAAAAAAAAAAAAAGZjb2VfY29tcHV0ZV9jdHVwbGUgdmxhbiAleCB2aWlk +ICV4IHBvcnQgJXggbXBzX2lkeCAleAoAAAAAAAAAAABBQlRTIEFDQyBhd2FpdGluZyBQUkxJIFJz +cDogZmxvd2NfaWQgMHgleCBveF9pZCAweCV4IHJ4X2lkIDB4JXggaXFpZCAweCV4CgAAAAAAAHBv +cnQgMHgleCwgc3RhdGUgMHgleCwgY29tbWFuZCBmYWlsZWQgcmV0cmllcyAweCV4CgAAAAAAAAAA +AAAAAABhcnBfcmVjdjogaXBpZCBbMHgleF0sIGluX2FkZHIuYWRkciBbMHgleF0sIHNpcCBbMHgl +eF0sIHJpcCBbMHgleF0sIGFycF9vcCBbMHgleF0KAAAAAAAAAAAAAAAAAABjaG5ldF9hcnBfcmVj +djogaXAgY29uZmxpY3QgZGV0ZWN0ZWQKAAAAAAAAAAAAAABjaG5ldF9hcnBfcmVjdjogcGlkIFsl +dV0sIHZsYW4gWzB4JXhdLCBhcnAgb3AgWzB4JXhdLCBzaXAgWzB4JXhdLCByaXAgWzB4JXhdCgAA +AGNobmV0X2lwdjZfcmVjdjogdmxhbiBleHRyYWN0ZWQsIHZsYW5pZCBbJXVdLCBsMmRldl9mYy0+ +Zmxvd2NfbmV0X2wyZGV2X3ZsYW5kZXYgWzB4JXhdCgAAAAAAAAAAAEludmFsaWQgZGF0YSBsZW5n +dGggZGxlbiAldSwgcGFja2V0IGluZGljYXRlcyAldSBieXRlcwoAAAAAAAAAAABVbmtub3duIElQ +djYgbnh0IHByb3RvY29sICV1CgAAAGNzb2NrX2ZyZWU6IHNpemVvZihjc2tfZmMtPnUuY3NvY2sp +IFsldV0sIGJ5dGVzCgAAAAAAAAAAAAAAAAAAAABHb3QgQ09OTl9FWElTVCBmb3IgeGlkOjB4JXgs +IHRhZzoweCV4LCByZXRyeWluZy4KAAAAAAAAAAAAAAAAAAAAY3NvY2tfcGVlcl9jbG9zZTogY3Nr +X2ZjLT5mbG93Y19pZCBbMHgleF0sIHRjYl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2tfZmMtPmZs +b3djX3N0YXRlIFsweCV4XSwgdGNiX2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0KAAAAAABjc29ja19w +ZWVyX2Nsb3NlOiBjc2tfZmMtPmZsb3djX2lkIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19zdGF0ZSAg +WzB4JXhdCgAAAAAAAAAAAHRjcF9jbHNfYWJydF9ycGw6IHRjYiB0aWQgWzB4JTA2eF0sIGZsb3dj +X3R5cGUgWzB4JXhdLCBjcGxvcCBbMHgleF0gZmxvd2Nfc3RhdGUgMHgleAoAAAAAAAAAAAAAAGNo +X3JhdGVbJXVdOiBjYXBwZWQgdGljayBmcm9tIHJlcXVpcmVkICV1IHRvIHN1cHBvcnRlZCAldTsg +cmF0ZSAldSAoZWZmICV1KSBkZWZpY2l0X2luY3IgJXUgdGljayAldQoAAAAAAAAAAAAAAABwa3Rz +Y2hlZF9jaF9ybFsldV06IGNoYW5uZWwgcmwgbm90IGF2YWlsYWJsZSBpbiBjb25qdW5jdGlvbiB3 +aXRoIGZsb3cgc2hhcGluZwoAAHBrdHNjaGVkX2NoX3JsWyV1XTogcmF0ZSAldSBtYXggJXUKAAAA +AAAAAAAAAAAAAHBrdHNjaGVkX2NsX3dyclsldToldV06IHdlaWdodCAldQoAAAAAAAAAAAAAAAAA +AGVxX3BhcmFtc1sweCV4OjB4JXhdOiBkbWFxIDB4JXggcmVhZCAldSBwZiAldSBlcWlkX2FwaSAl +dSByZXQgJWQKAAAAAAAAAAAAAAAAAAAAd2FpdF9mb3JfY2FsaWJfZG9uZTogcmV0ICVkIGluICV1 +IGF0dGVtcHRzCgAAAAAAaHdfbWFfYWRkcl90b19tZW1fdHlwZV9vZmY6IE1BIGFkZHJlc3MgMHgl +MDh4IGlzIG5vdCBtYXBwZWQKAAAAAGh3X21hX2FkZHJfdG9fbWVtX3R5cGVfb2ZmOiBNQSBhZGRy +ZXNzIDB4JTA4eCBtYXBzIHRvIHR5cGUgJXUgb2Zmc2V0IDB4JXgKAAAAAAAAbWVtX21hbGxvY190 +ZW1wOiBmYWlsZWQgdG8gYWxsb2NhdGUgJXUgYnl0ZXMsIHJldHVybmluZyBOVUxMCgAAAG1lbV9t +YWxsb2M6IGZhaWxlZCB0byBhbGxvY2F0ZSAldSBieXRlcywgcmV0dXJuaW5nIE5VTEwKAAAAAAAA +AABsZSBjb25maWd1cmF0aW9uOiBoYXNoIG1vZGUgcmVxdWlyZXMgYXQgbGVhc3QgMTYgZW50cmll +cywgbmhhc2ggJXUKAAAAAAAAAAAAAAAAAGxlIGNvbmZpZ3VyYXRpb246IGhhc2ggbW9kZSByZXF1 +aXJlcyBhdCBlbnRyaWVzIHRvIGJlIGEgcG93ZXIgb2YgMiwgbmhhc2ggJXUKAAAAbGUgY29uZmln +dXJhdGlvbjogcmVxdWVzdGVkICV1IHRjYW0gZW50cmllcyBidXQgb25seSAldSBhdmFpbGFibGUg +KG5yb3V0ZSAldSBuY2xpcCAldSBuZmlsdGVyICV1IG5zZXJ2ZXIgJXUKAAAAAGxlIGNvbmZpZ3Vy +YXRpb246IHRjYW0gcmVnaW9ucyBtdXN0IGhhdmUgbXVsdGlwbGUgb2YgMzIgZW50cmllcywgbnJv +dXRlICV1IG5jbGlwICV1IG5maWx0ZXIgJXUgbnNlcnZlciAldQoAAAAAAABod190cF90Y3BfdHVu +aW5nczogdHVuaW5nIGZvciBjbHVzdGVyIGVudmlyb25tZW50CgAAAAAAAAAAAAAAAAAAaHdfdHBf +dGNwX3R1bmluZ3M6IHR1bmluZyBmb3IgTEFOIGVudmlyb25tZW50CgAAaHdfdHBfdGNwX3R1bmlu +Z3M6IHR1bmluZyBmb3IgV0FOIGVudmlyb25tZW50CgAAaHdfdHBfdGNwX3R1bmluZ3M6IG1hbnVh +bCB0dW5pbmcKAAAAAAAAAAAAAAAAAAAAX2h3X2NpbV9mbGFzaF9tZW1jcHk6IG1lbWNweVggc3Rh +cnQKAAAAAAAAAAAAAAAAX2h3X2NpbV9mbGFzaF9tZW1jcHk6IGRzdCAweCUwOCBvZmZzZXQgMHgl +MDh4IHNpemUgJXUsIHdpZHRoIG9mICV1IGlzIG5vdCBzdXBwb3J0ZWQKAAAAAAAAAAAAAAAAX2h3 +X2NpbV9mbGFzaF9tZW1jcHk6IG1lbWNweVggZW5kCgAAAAAAAAAAAAAAAAAAY29uZmlndXJhdGlv +biBmaWxlIHBhcnNlciBlbmNvdW50ZXJlZCBlcnJvciBAIGxpbmUgJXU6CgAAAAAAAAAAAEhPU1Qg +UEFHRV9TSVpFIFsweCUwbHhdIHRvbyBzbWFsbCwgbWluIFsweCUwbHhdIHJlcXVpcmVkCgAAAAAA +AABwYWdlIHNpemUgWyVsdV0gbWlzbWF0Y2gKAAAAAAAAAFBBR0Ugc2l6ZSAlbHUgdW5zdXBwb3J0 +ZWQsIGRkcCBkaXNhYmxlZAoAAAAAAAAAAEhvc3QgcGFnZV9zaXplICVsdSwgZGRwX2lkeCAldQoA +RkNvRSBERFAgaW5pdDogZmNvZSBsbGltaXQgMHgleCwgZmNvZSB1bGltaXQgMHgleCBnYmwgbGxp +bWl0IDB4JXggZ2JsIHVsaW1pdCAweCV4IHBjYnN6ICV4CgAAAAAARkNvRSBERFAgaW5pdDogZmNv +ZSBwcG9kIG9mZiAweCV4LCBmY29lIHN0IHBwb2QgYWRkciAweCV4IGZjb2UgbnVtIHBwb2RzIDB4 +JXgKAABmY29lIHhjaGcgbWdyIGluaXQ6IE51bWJlciBvZiBleGNoYW5nZXMgZm9yIEZDb0UgaXMg +JXgKAAAAAAAAAAAAZmNvZV9sMnRfaW5pdDogTm8gdWxwdHggY3JlZGl0IGNoOlsldV0KAAAAAAAA +AAAAZmNvZV9sMnRfaW5pdDogY2g6WyV1XSBsMnRfaWR4IFsldV0KAAAAAAAAAAAAAAAAbm8gbDJ0 +IGVudHJpZXMgY29uZmlndXJlZDsgZm9yY2luZyAldSBlbnRyaWVzLCBzdGFydGluZyBhdCAldQoA +AGRjYnhfaWVlZV9jb25zdHJ1Y3RbJXVdIGV0cyAldSBwZmMgJXUgYXBwICV1CgAAAGRjYnhfdGlt +ZW91dFsldV0KAAAAAAAAAAAAAAAAAAAAZGNieF9ydW5fdmVyc2lvbl9zbVsldV0gRENCWF9WRVJf +U1RBVEVfUlVOX0lFRUUKAAAAAAAAAAAAAAAAAAAAAGRjYnhfcnVuX3ZlcnNpb25fc21bJXVdIERD +QlhfVkVSX1NUQVRFX1JVTl9DRUUKAGRjYnhfcnVuX3ZlcnNpb25fc21bJXVdIERDQlhfVkVSX1NU +QVRFX1JVTl9OT05FCgAAAAAAAAAAAAAAAAAAAABNQUMgZmFpbGVkIHRvIHJlc3luYyB0eAoAAAAA +AAAAAHBvcnRbJXVdIGxpbmsgdXAgKCV1KSAoc3BlZWQgJSN4IGFjYXBzICUjeCBscGNhcHMgJSN4 +KQoAAAAAAAAAAABwb3J0X2hzc19zaWdkZXRbJXVdOiBoc3Nfc2lnZGV0IGNoYW5nZWQgdG8gMHgl +eAoAAAAAAAAAAAAAAAAAAAAAcG9ydFsldV0gaW5pdGlhbGl6aW5nIEtSCgAAAAAAAABDYWxjdWxh +dGlvbiBvdXQgb2YgYm91bmRzIGZ1cmluZyBpbml0OiAlI3ggJSN4ICUjeAoAAAAAAAAAAAAAAAAA +X2h3X3RwX3BnbW5ndDogdHhfcGFnZV9tYXggJXUgcnhfcGFnZV9tYXggJXUgcHN0cnVjdHMgJXUg +c2l6ZSAldQoAAAAAAAAAAAAAAAAAAABtcGFydGl0aW9uX290aGVyc190b3RhbDogZGRwICV1IGRk +cF9pc2NzaSAldSBzdGFnICV1IHBibCAldSBycSAldSBycXVkcCAldSAtPiAldQoAAAAAAAAAAAAA +AAAAAABfbXBhcnRpdGlvbl9iYW5rc19tY1g6IG5iYW5rc19wbXR4ICV1ICgldU1CKSBuYmFua3Nf +cG1yeCAldSAoJXVNQikgbmJhbmtzX290aGVycyAldSAoJXVNQikgbmJhbmtzX2Z3ICV1ICgldU1C +KQoAX21wYXJ0aXRpb25fYmFua3NfbWMxOiBuYmFua3NfcG10eCAldSAoJXVNQikgbmJhbmtzX290 +aGVycyAldSAoJXVNQikgbmJhbmtzX2Z3ICV1ICgldU1CKQoAAAAAAAAAX21wYXJ0aXRpb25fYmFu +a3NfbWMwOiBuYmFua3NfcG1yeCAldSAoJXVNQikgbmJhbmtzX290aGVycyAldSAoJXVNQikKAAAA +AAAAAAAAAABtZW1fbWFsbG9jX2ludGVybmFsOiBmYWlsZWQgdG8gYWxsb2NhdGUgJXUgYnl0ZXMs +IHJldHVybmluZyBOVUxMCgAAAAAAAAAAAAAAAAAAAGh3X2VkY19iaXN0WyV1XTogYmlzdF9jbWRb +MHglMDh4XSBhZGRyIDB4JXggbGVuIDB4JXgKAAAAAAAAAAAAAABod19lZGNfYmlzdFsldV06IGRv +bmUsIGVuY291bnRlcmVkICV1IGVycm9ycyBvbiBmaXJzdCBhbmQgJXUgZXJyb3JzIG9uIHNlY29u +ZCBhdHRlbXB0ICgldWdicHMpCgBtZW1faW5pdF9jYWNoZXM6IGNhY2hlX3NpemUgJXUgZmxvd2Nf +YnVmX3RjYl9jYWNoZV9zaXplICV1IGJ1ZmxsNjRfY2FjaGVfc2l6ZSAldQoAAAAAAAAAAAAAAAAA +AABtcGFydGl0aW9uX3BtdHg6IG0gMHglMDh4IHNpemUgJXUKAAAAAAAAAAAAAAAAAABtcGFydGl0 +aW9uX3Btcng6IG0gMHglMDh4IHNpemUgJXUKAAAAAAAAAAAAAAAAAABtcGFydGl0aW9uX2VkYyAo +bm8gZXh0bWVtKTogbSAweCUwOHggc2l6ZSAldQoAAABtcGFydGl0aW9uX2VkY19lc3RpbWF0ZTog +aHcgbW9kdWxlcyByZXF1aXJlICVkIGJ5dGVzIGluIEVEQwoAAAAAVGVtcGVyYXR1cmUvVm9sdGFn +ZSBTZW5zb3I6IENvcmUgY2xvY2sgJXUgPiAldTsgY2FwcGluZyB0byBzdGF5IGluIGNvbXBsaWFu +Y2Ugd2l0aCBoYXJkd2FyZS4KAAAAY2huZXRfYnllOmwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0s +IGwyZGV2X2ZjLT5mbG93Y19wY2llX3BmbiBbMHgleF0sIGwyZGV2X2ZjLT5mbG93Y19wY2llX3Zm +biBbMHgleF0sIHBvcnQgWzB4JXhdCgAAAAAAAAAAAAAAAABjaG5ldF9ieWU6dmxhbmRldl9mYy0+ +Zmxvd2NfaWQgWzB4JXhdLCB2bGFuZGV2X2ZjLT5mbG93Y19wY2llX3BmbiBbMHgleF0sIHZsYW5k +ZXZfZmMtPmZsb3djX3BjaWVfdmZuIFsweCV4XSwgcG9ydCBbMHgleF0KAAAAAAAAAGZvaXNjc2lf +Y29yZV9ieWU6IGFjdGl2ZSBzZXNzX2NudCAlZAoAAAAAAAAAAAAAAGh3X21hY19hZWNfY29tcGxl +dGVbJXVdIG9uIGxhbmVzICUjeCAoc2lnZGV0ICUjeCksIHR4X2xhbmVzICUjeAoAAAAAAAAAAAAA +AAAAAAAAYWVjX2ZzbVsldV0gOiBzdGF0ZSBTVEFSVCAoc2lnZGV0ICUjeCkKAAAAAAAAAAAAYWVj +X2ZzbVsldV0gOiB0cmFuc2l0aW9uaW5nIHRvIFRSQUlOSU5HCgAAAAAAAAAAYWVjX2ZzbVsldV0g +OiBUUkFJTklOR19DT01QTEVURQoAAAAAAAAAAAAAAAAAAAAAYWVjX2ZzbVsldV0gOiBSZW1vdGUg +ZmF1bHQgd2hpbGUgd2FpdGluZyBmb3IgbGluayBzdGF0dXMgMHgleAoAAGFlY19mc21bJXVdIDog +UmVtb3RlIGZhdWx0IGNsZWFyZWQgd2hpbGUgd2FpdGluZyBmb3IgbGluayBzdGF0dXMgMHgleAoA +AAAAAAAAAAAAYWVjX2ZzbVsldV0gOiBET05FCgAAAAAAAAAAAAAAAABhZWNfZnNtWyV1XSB0aW1l +ZCBvdXQgdHJhaW5pbmcgRlNNX1NUQVRFXzAgMHgleCwgXzEgMHgleCBfMiAweCV4IF8zIDB4JXgs +IExpbmsgU3RhdHVzIDB4JXgKAAAAAABiZWFuX2ZzbVsldV0gOiBzdGF0ZSBTVEFSVCAoY291bnQg +PSAldSkKAAAAAAAAAABiZWFuX2ZzbVsldV0gOiBlbnRlcmluZyBzdGF0ZSBXQUlUX1NJR0RFVAoA +AAAAAABiZWFuX2ZzbVsldV0gOiBlbnRlcmluZyBzdGF0ZSBOWFBfSEFORExFCgAAAAAAAABiZWFu +X2ZzbVsldV0gOiBlbnRlcmluZyBzdGF0ZSBXQUlUX0NPTVBMRVRFCgAAAABiZWFuX2ZzbVsldV0g +OiBETCA0MEcgTmVnb3RpYXRpb24gRXJyb3IgLSBBdHRlbXB0aW5nIHRvIGNvbnRpbnVlCgAAAAAA +AAAAAAAAAAAAAGJlYW5fZnNtWyV1XSA6IHN0YXRlIERPTkUKAAAAAAAAYmVhbl9mc21bJXVdIDog +c3RhdGUgUkVTVEFSVDEKAABiZWFuX2ZzbVsldV0gOiBzdGF0ZSBSRVNUQVJUMgoAAGJlYW5fZnNt +WyV1XSA6IHN0YXRlIFJFU1RBUlQzCgAAYmVhbl9mc21bJXVdIFRJTUVPVVQ7IHN0YXRlICV1IGV0 +aF9zdGF0dXMgJSN4IGJlYW5fc3RhdHVzICUjeCBoc3Mgc2lnZGV0ICUjeCByZXRyeV9jbnQgJXUK +AAAAAAAAaHdfbWFjX2xpbmtfc3RhdHVzWyV1XSBpbnRfY2F1c2UgMHgleCwgbGlua19zdGF0dXMg +MHgleAoAAAAAAAAAAHBvcnQgJXUgY2hhbmdpbmcgc3BlZWQgdG8gMUcKAAAAcG9ydCAldSBuZWdv +dGlhdGVkIHVuc3VwcG9ydGVkIHNwZWVkICUjeAoAAAAAAAAAYmVhbi9hZWMgY29tcGxldGUgKHJl +dHJ5OiAldSkKAABwb3J0WyV1XSByZXNldHRpbmcgS1IKAAAAAAAAAAAAAHBvcnQgJXUgbmVnb3Rp +YXRlZCB1bnN1cHBvcnRlZCBzcGVlZCAlI3gKAAAAAAAAAGJlYW4vYWVjIGNvbXBsZXRlIChyZXRy +eTogJXUpCgAAUmFuZ2UgY2FsYzogQXZlcmFnZWQgJSN4IGJ1dCBpZ25vcmVkIHZhbHVlICUjeCAo +aXRlcmF0aW9uICV1KQoAAE1DIGNhbGlicmF0aW9uIGZhaWxlZDogREZJIGluaXQgbm90IGdvaW5n +IHRvIDAKAE1DIGNhbGlicmF0aW9uIGZhaWxlZDogREZJIGluaXQgbm90IGNvbXBsZXRpbmcKAE1D +IGNhbGlicmF0aW9uIGZhaWxlZDogQ2FsaWJyYXRpb24gZGlkbid0IGNvbXBsZXRlLgoAAAAAAAAA +AAAAAABNQyBjb21tYW5kIGZhaWxlZCB0byBjb21wbGV0ZShvcGNvZGUgJSN4IGNhZGRyICUjeCBi +YWRkciAlI3ggZGVsYXkgJWQpCgAAAAAAAAAAAHBmbiAldSB2Zm4gJXUgY29tcGxldGUgaW1tZWRp +YXRlCgAAAAAAAAAAAAAAAAAAAHBmbl9iaXRtYXAgMHgleAoAAAAAAAAAAAAAAAAAAAAAYmFkIG1h +aWxib3ggY21kOiBwZm4gMHgleCB2Zm4gMHgleDsgb3Bjb2RlIDB4JXggPiBMQVNUQzJFIDB4JXgK +AG1haWxib3ggY21kIG5vdCB5ZXQgc3VwcG9ydGVkOiBwZm4gMHgleCB2Zm4gMHgleDsgb3Bjb2Rl +IDB4JXgKAABiYWQgbWFpbGJveCBjbWQ6IHBmbiAweCV4IHZmbiAweCV4OyBvcGNvZGUgMHgleCBp +cyB2YWxpZCBwb3N0IGRldmljZSBpbml0IG9ubHkKAGJhZCBtYWlsYm94IGNtZDogcGZuIDB4JXgg +dmZuIDB4JXg7IG9wY29kZSAweCUwMnggcmFtYXNrIDB4JXggY21kIHJhbWFzayAweCV4CgAAYmFk +IG1haWxib3ggY21kOiBwZm4gMHgleCB2Zm4gMHgleDsgb3Bjb2RlIDB4JTAyeCBsZW4xNiAweCV4 +IHZlcnN1cyBleHBlY3RlZCBsZW4xNiAweCV4CgAAAAAAAAAAaW5zdWZmaWNpZW50IGNhcHMgdG8g +cHJvY2VzcyBtYWlsYm94IGNtZDogcGZuIDB4JXggdmZuIDB4JXg7IHJfY2FwcyAweCV4IHd4X2Nh +cHMgMHgleCByZXF1aXJlZCByX2NhcHMgMHgleCB3X2NhcHMgMHgleAoAAAAAAAAAAABpbnN1ZmZp +Y2llbnQgY2FwcyB0byBwcm9jZXNzIG1haWxib3ggY21kOiBwZm4gMHgleCB2Zm4gMHgleDsgcl9j +YXBzIDB4JXggd3hfY2FwcyAweCV4IHJlcXVpcmVkIHJfY2FwcyAweCV4IHdfY2FwcyAweCV4CgAA +AAAAAAAAAGRvd25sb2FkX3NyYW06IGVycm9yLCByZXQgJWQKAAAAZG93bmxvYWRfdGNhbTogZXJy +b3IsIHJldCAlZAoAAABod19wb3dlcl9wcmVwOiBWREQ9Tk9ORSBidXQgVkNTPSVkCgAAAAAAAAAA +AAAAAABod19wb3dlcl9wcmVwOiB1bnN1cHBvcnRlZCBleHRlcm5hbCBhZGp1c3RhYmxlIHBvd2Vy +IHJlZ3VsYXRvcnMgVkREPSVkLCBWQ1M9JWQKAGh3X3Bvd2VyX3ByZXA6IHVuc3VwcG9ydGVkIFZE +RD0lZAoAAAAAAAAAAAAAAAAAAGh3X3Bvd2VyX3ByZXA6IHVuc3VwcG9ydGVkIFZDUz0lZAoAAAAA +AAAAAAAAAAAAAGh3X3Bvd2VyX3ByZXA6IGkyYyB3cml0ZSBlcnJvciwgVkREPSVkLHJldD0lZAoA +AGh3X3Bvd2VyX3ByZXA6IHVuc3VwcG9ydGVkIFZERD0lZAoAAAAAAAAAAAAAAAAAAGh3X3Bvd2Vy +X3ByZXA6IGkyYyB3cml0ZSBlcnJvciwgVkNTPSVkLHJldD0lZAoAAGh3X3Bvd2VyX3ByZXA6IHVu +c3VwcG9ydGVkIFZDUz0lZAoAAAAAAAAAAAAAAAAAAFZQRCByZWdpb24gaXMgdG9vIHNtYWxsIChT +RVJDRkdfU1JfUEZOVlBEU0laRSAweCV4KQoAAAAAAAAAAAAAAABjZl9wcmVwOiBlcnJvciwgcmV0 +ICVkCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAggAAASAAAAAAAAAA +ggAAAQAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoCAAAAAAAAAAAAA +AAAAgAAAAAAAAAAABwAAAAAAAAAAAAAAAQAAAAAQAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAA +AACAEAMAAAAAAAAIAAAAAAIAAAAAAAAAAAAgAAAAAAAAAAAAAAABAAOAAAAAAAAAAAAAAAIAAAAA +AAAAAAAgA4AAAAAAAAAAAAAQAoAAgAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +QAAAAAAAAAAgAAAAAAAAAAAAAACAAAKAAAAAAAAAAAAAAAKAAAAAAAAAAACAAAIAAAAAAAAAAAAA +AAIAAAAAAAAAAAAAAAKAAAAAAAAAAAABAAMAAAAAAAAAAAAAAoMAAAAAAAAAAAAQAoAAAAAAAAAA +AAAwAAMAAAAAAAAIAAAwAAMAAAAAAAAAAAAwBYMAAAAAAAAIAAAwBYMAAAAAAAAAAAAwBIMAAAAA +AAAIAAAwBIMAAAAAAAAAAAAwAwMAAAAAAAAIAAAwAwMAAAAAAAAAAAA4AwMAAAAAAAAAAAA4BYMA +AAAAAAAAAAA4BIMAAAAAAAAAAAA4AAMAAAAAAAAAAAA0BoIAAAAAAAAAAAA8A4IAAAAAAAAAAAA8 +AAMAAAAAAAAIAAA8AAMAAAAAAAAAAAA8BIMAAAAAAAAAAAA8BQMAAAAAAAAAAAA9BAMAAAAAAAAA +AAA8A4MAAAAAAAAAAAAsAAIAAAAAAAAAAAAsBYIAAAAAAAAAAAAsBQIAAAAAAAAAAAAQBoAAAAAA +AAAAAAAQBoKAAAAAAAAAAAAADoIAAAAAAAAAAAAQB4KAAAAAIAAAAAAAB4IAAAAAIAAAAAAQBwKA +AAAAAAAAAAAQBwKAAAAAAAAAAAAQBwKAAAAAAAAAAAAABwIAAAAAIAAAAAAQF4MAAAAAAAAIAAAQ +F4MAAAAAAAAIAAAQAAAAAAAAAAAAAAAQBgOAAAAAAAAAAAAADgMAAAAAAAAAAAAQBgNAAAAAAAAA +AAAQBgMAAAAAAAAAAAAQBgAAAAAAAAAAAAAABgOAAAAAAAAAAAAABgMAAAAAAAAAAAAADgIAAAAA +AAAAAAAADgIAAAAAAAAAAAAQBgIAAAAAAAAAAAAQBgIAAAAAAAAAAAAQBgKAAAAAAAAAAAAQBgKA +AAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAA +EAMAAAAAAAAIAAAAAAAAAAAAAAAAAAD///////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////8AAAAgAAAAAMAAAAAAAAAgAAAA +AOAAAAAAAAAAAgAAAAAAAABAAAAAAAAAAAAAAAAAAAEhAAAAAAAAAAAAAQEgAAAAAAAAAAAAAAIA +AAAEAAQAAAAAAIFAAAAAAAAAAAAABoAAAAQAAAAAAAAAgABAAAAAAAACAAAAgAAgAAAAAAACAAAI +gAAAAAAAQAAAAAIBAEAAAAAAAAAAAAABAEIAAAAAAAAAAAAAACAAAAAAAAAAAAACECAAAAAAAAAA +AAACDAIAAAAAAAAAAAAAhQIAAAAEAAAAAAAAgEIAAAAAAAAAAACAgEIAQAAAAAAAAACAgEIAAAAA +AAAAAAACACIAAAAAAAAAAAAAgEEAAAAAAAAAAACAgEEAAAAAAAAAAAAAgEGAAAAAAAAAAACAgEGA +AAAAAAAAAAACACEAAAAAAAAAAAAAECCAAAAAAAAAAAACJQCAAAAAAAAAAAAABQAAAAAAAAAAAAAI +iASAAAAAAAAAAAAIiASAAAAAAAAAAAAIogCAAAAAAAAAAAAIogCAAAAAAAAAAAAIowCAAAAAAAAA +AAAIowCAAAAAAAAAAAAIpICAAAAAAAAAAAAIpICAAAAAAAAAAAAEpIDAAAAAAAAAAAAEogDAAAAA +AAAAAAAEowDAAAAAAAAAAAAEiATAAAAAAAAAAAAACQGAAAAAAAAAAAACDACAAAAAAAAAAAAAiATA +AAAAAAAAAAAAiASAAAAAAAAAAAACCwCAAAAAAAAAAAAAioCAAAAAAAAAAAAAC4CAAAAAAAAAAAAA +jACAAAAAAAAAAAACIBCAAAAAAAAAAAACCgCAAAAAAAAAAAACCoCAAAAAAAAAAAAACQKAAAAAAAAA +AAAAAQEAAAAAAAAAAAAAAQCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAIEQAAAA +AAAAAAAAAIEIAAAAAAAAAAAAAIEEAAAAAAAAAAAAAIGAAAAAAAAAAAAAgADAAAAAAAAAAAAAgACg +AAAAAAAAAAAAAAgAAAAAAAAAAAAAgYAAAAAAAAAAAAAAgYCAAAAAAAAAAAAAiYCAAAAAAAAAAAAA +iYDAAAAAAAAAAAAAAYIAAAAAAAAAAAACAYAAAAAAAAAAAAACAYCAAAAAAAAAAAAAQYGAAAAAAAAA +AAACAYGAAAAAAAAAAAAASYGAAAAAAAAAAAACCYGAAAAAAAAAAAACAYEAAAAAAAAAAAAAQYEAAAAA +AAAAAAAgAAAAAAAAAAAAAAAQAAACAQAAAAAAAAAQAAACAAAAAAAAAAAQAAAAAAAAAAAAAAAAgADA +AAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAgAkgAAAAAAAAADZgAgAEAAAAAACACSAAAAAAAAAANyASUEQAAAAAAAAAAAAAAAAAAAA5YAIABA +AAAAAAgAAAACAIgDhwAAVgAgAEAAAAAAAAAAAAAAAAAAAAOWACAAQAAAAAAAAAAAAAAAAAAAA5YA +IABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAAAAAAAAAAAAAAAAOWACAAQAAAAAAAAAAAAAAAAAAA +A5YAIABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAAAAAAAAAAAAAAAAOWACAAQAAAAAAIAAAAAgCI +A4UAAJYBIABAAAAAAAgAAAACAIgDhQAAlgEgAEAAAAAAAAAAAAAAAAAAAAOWACAAQAAAAAAAAAAA +AAAAAAAAA5YAIABAAAAAAAgAAAACAIgDhQAAlgEgAEAAAAAAAAAAAAAAAAAAAAOWACAAQAAAAAAA +AAAAAAAAAAIAA5YAJgRAAAAAAAhHIAEEAAACsAAC0gVAJEQAAAAACEcgAQQAAAKyAALSBUYkQAAA +AAAIAAAAAgCIA4cAAJYBJgRAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAAAEcgAQYMoYKyQAGSBEAk +RAAAAAAIAAAAAgCIA4cAAJYBJgRAAAAAAABHIAEEDKBCsYACEgVAJEQAAAAACAAAAAIAiAOHAACW +ASYEQAAAAAAIAAAAAgCIA4UAAJYBIABAAAAAAAgAAAACAIgDhQAAlgEgAEAAAAAACAAAAAIAiAOF +AACWASAAQAAAAAAAAAAAAAAAAAAAA5YAIABAAAAAAA3FEroCsIDTFFSL4kpGJEAAAAAABcUSugK3 +gNMUVItiSaYkQAAAAAAFxRKiBrCA0xRUi+JKRiRAAAAAAA3FEqIGt4DTFFSLYkmmJEAAAAAABcUS +ogawgNMUVIviSkYkQAAAAAANxRKiBreA0xRUi2JJpiRAAAAAAAXFEqIGsIDTFFSL4kpGJEAAAAAA +DcUSoga3gNMUVItiSaYkQAAAAAAJxBCgAgCAkAAAi2JpxiRAAAAAAAHEEKAGsICTBlSLYmnGJEAA +AAAAAcQQoAawgJMGVItiacYkQAAAAAABxRC4BrCAkxZUi2JIxiRAAAAAAAihEIgCAIFYEgALUgCm +JEAAAAAACcAQkAKwgAMWVIqSAcYkQAAAAAAJwBC4BrCAAxCUi+ICRiRAAAAAAAnAELgCtIADEJSL +YgGmJEAAAAAACcAQuAK0gAMQlItiAaYkQAAAAAAJwBC4ArSAAxCUi2IBpiRAAAAAAAnAELgCtIAD +EJSLYgGmJEAAAAAAAaAQkAa0gAMQlItiAaYkQAAAAAABwBCAArCAAxRUilIAxiRAAAAAAAHAEIAC +sIADFFSKUgDGJEAAAAAAAcAQgAKwgAMUVIpSAMYkQAAAAAAIRyABBAAAArAAAtIEQCRAAAAAAACB +AAACAIVYB0ALUgCmJEAAAAAAAAAAAAQAoEABgAHWACAAQAAAAAAAAAAABgChgABAAVYAIABAAAAA +AAAAAAAEAKBAAYAB1gAgAEAAAAAACIEAAAIAhVmABAtSAKYkQAAAAAAKAUAAAAAAGAIAA0IBJqRC +AAAAAAAAAAAAAAAAAAADlgAgAEAAAAAAAAAAAAQAoEABgAHWACAAQAAAAAAIAAAAAgCIA4UAA9YA +IABAAAAAAAgAAAACAIgDhQAD1gAgAEAAAAAAAAAAAAAAAAAAAAOWACAAQAAAAAAAAAAAAAAAAAAA +A5YAIABAAAAAAAAAAAAEAKBAAYAB1gAgAEAAAAAACcAQuAK0gAMQlItiAaYkQAAAAAAAAAAAAAAA +AAIAA5YAJgRAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAACAAAAAIAiAOFAACWASAAQAAAAAAAAAAA +BACgQAGAAdYAIABAAAAAAAAAAAAEAKBAAYAB1gAgAEAAAAAAAAAAAAQAoEABgAHWACAAQAAAAAAI +oRCIAgCBWBAACRIBpiRAAAAAAAAAAAAEAKBAAYAB1gAgAEAAAAAAAAAAAAYAoYAAQAFWACAAQAAA +AAAIAAAAAgCIA4dACNICRiRCAAAAAAnFEqIClIjSEoCLIknGJEAAAAAAAcAQgAakiAEFVItSAMYk +QAAAAAAJwBCAAqSIAIVUi1IAxiRAAAAAAAnAEIAGtIgDARSLUgGmJEAAAAAADcAAAAKwgMMWVIvi +A0YkQAAAAAAAAAAAAAAAAAAAA5YAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIADAA +BAAAAAIAAAIAJiRAAAAAAABHMAAGAyACtwAIAgHAJEAAAAAACAMAAAIGoAq3AAgCAcYkRgAAAAAA +AAAAAAAAAAIAAAIAJiRAAAAAAAAgUAAEAAAAAAAAAgEmJEYAAAAACGAgAIQAAAAAAAAGACAAQAAA +AAAIYCAAhAAAAAIBMAIAJiVAAAAAAAhgAAAEAIQBggQEAgHGJMIAAAAAAcAAAAJDgAMCDIgCAaYk +QAAAAAAIAGAABAAAAAIAAAIAJiRAAAAAAAgAYAAEAAAAAAAABAEgAEAAAAAAAAAAAAAAAAAAAAAE +ASAAQAAAAAAECBSABgoAAAcBTAIgpiZAAAAAAAiAAAAGAIQBgAQIAgGmJMAAAAAAAEAAAAIAoAAA +QAgCAKYkRgAAAAAAAAAAAAAAAAIAAAIAJiRAAAAAAAQAAAAChAADAooIAgTAJEAAAAAAAAAAAAAA +AAACAAAGASBIQAAAAAAAIFAABAAAAAIAAAIAJiRAAAAAAAhgIACEAAAAAgAABgAmBEAAAAAACGAg +AIQAAAACAAACASYlQAAAAAAIYAAABACEAYAEBAIBxiTAAAAAAAgAYAAEAAAAAAAABAEgAEAAAAAA +AACAACAAAAAAAAACACZMcAAAAAAAAIAAIAAAAAAAAAYBIAAAAAAAAAAAgAAgAAAAAAAAAgAmTHAA +AAAAAACAACAAAAAAAAAGASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAACcAAAAi0jAQJFgQCBMYkQAAAAAAJwAAADDSABAkWBAIExiRAAAAAAAQIdIBMCQAA +UABcAmHmJEAAAAAADAh0gEQAAABSAEACYSYkQAAAAAAIAhCgBAAAAAABAAIAJiRAAAAAAAgCEKAE +AAAAAAEAAgAmJEAAAAAABAh0AEIBAAAHAIgCYMYkQAAAAAANyBQAAgkAAARAnAJg5iRAAAAAAAnI +EIACtIAEApSIAmXGJEAAAAAADch0AEy0gAMAlIgCYKYkwAAAAAAFyHQASDSQAwCUiAJgpiTAAAAA +AAhHAAAEAAAAAAAAAgEgJEAAAAAACEcAAAQAAAAAAAACBEAkQAAAAAAARyABDAchwrcACAIAwCRE +AAAAAABHIAEMByHCtwAIAgDAJEQAAAAAAEcgAQwHIcK3AAgCAMAkRAAAAAAAACABCACEAAVAiAIB +xiTAAAAAAAAAIAEIAIQABUCIAgHGJMAAAAAAAAAgAQgAhAAFQIgCAcYkwAAAAAAAACABhoIAAQLA +iAIDxiTAAAAAAAAAIAGCggAAAsCIAgPGJMAAAAAACcAgAYKkgAEFQIgCAcYkwAAAAAAIAAAADACE +AAVAiAIBxiTAAAAAAAAAIAGGggABAsCIAgPGJMAAAAAAAAAgAYKCAAAAwIgCAqYkwAAAAAAJwCAB +gqSAAQVAiAIBxiTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQABBAkA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbZ2xvYmFsXQpyc3NfZ2xiX2NvbmZpZ19tb2RlPWJh +c2ljdmlydHVhbApyc3NfZ2xiX2NvbmZpZ19vcHRpb25zPXRubG1hcGVuLGhhc2h0b2VwbGl0eix0 +bmxhbGxsa3AKcGxfdGltZW91dF92YWx1ZT0xMDAwMApyZWdbMHgxMDA4XT0weDQwODEwLzB4MjFj +NzAKcmVnWzB4MTAwY109MHgyMjIyMjIyMgpyZWdbMHgxMGEwXT0weDAxMDQwODEwCnJlZ1sweDEw +NDRdPTQwOTYKcmVnWzB4MTA0OF09NjU1MzYKcmVnWzB4MTA0Y109MTUzNgpyZWdbMHgxMDUwXT05 +MDI0CnJlZ1sweDEwNTRdPTkyMTYKcmVnWzB4MTA1OF09MjA0OApyZWdbMHgxMDVjXT0xMjgKcmVn +WzB4MTA2MF09ODE5MgpyZWdbMHgxMDY0XT0xNjM4NApyZWdbMHgxMGE0XT0weDAwMjgwMDAwLzB4 +M2ZmYzAwMDAKcmVnWzB4MTExOF09MHgwMDAwMjgwMC8weDAwMDAzYzAwCnJlZ1sweDEwYThdPTB4 +NDAyMDAwLzB4NDAyMDAwCmJhcjJ0aHJvdHRsZWNvdW50PTUwMApzZ2VfdGltZXJfdmFsdWU9NSwx +MCwyMCw1MCwxMDAsMjAwCnJlZ1sweDExMjRdPTB4MDAwMDA0MDAvMHgwMDAwMDQwMApyZWdbMHgx +MTMwXT0weDAwZDVmZmViCnJlZ1sweDExM2NdPTB4MDAwMmZmYzAKcmVnWzB4N2QwNF09MHgwMDAx +MDAwMC8weDAwMDEwMDAwCnJlZ1sweDdkNmNdPTB4MDAwMDAwMDAvMHgwMDAwNzAwMApyZWdbMHg3 +ZDc4XT0weDAwMDAwNDAwLzB4MDAwMDAwMDAKcmVnWzB4N2RjMF09MHgwZTJmODg0OQpmaWx0ZXJN +b2RlPWZjb2VtYXNrLHNydnJzcmFtLGZyYWdtZW50YXRpb24sbXBzaGl0dHlwZSxwcm90b2NvbCx2 +bGFuLHBvcnQsZmNvZQpmaWx0ZXJNYXNrPXByb3RvY29sLGZjb2UKdHBfcG1yeD0zMAp0cF9wbXJ4 +X3BhZ2VzaXplPTY0Swp0cF9ucnhjaD0wCnRwX3BtdHg9NTAKdHBfcG10eF9wYWdlc2l6ZT02NEsK +dHBfbnR4Y2g9MAp0cF9tdHVzPTg4LDI1Niw1MTIsNTc2LDgwOCwxMDI0LDEyODAsMTQ4OCwxNTAw +LDIwMDIsMjA0OCw0MDk2LDQzNTIsODE5Miw5MDAwLDk2MDAKcmVnWzB4N2QwOF09MHgwMDAwMDgw +MC8weDAwMDAwODAwCnJlZ1sweDdkNDhdPTB4MDAwMDAwMDAvMHgwMDAwMDQwMApyZWdbMHg3ZDYw +XT0weDA2MDAwMDAwLzB4MDcwMDAwMDAKcmVnWzB4MTkxNjhdPTB4MDQwMjAxMDAKcmVnWzB4MTlj +MDRdPTB4MDA0MDAwMDAvMHgwMDQwMDAwMAptY19tb2RlX2JyY1swXT0xCm1jX21vZGVfYnJjWzFd +PTEKcmVnWzB4OGRjMF09MHgwMDAwMDAwNC8weDAwMDAwMDA0CltmdW5jdGlvbiIwIl0KbnZmPTE2 +Cnd4X2NhcHM9YWxsCnJfY2Fwcz1hbGwKbnZpPTEKbmlxZmxpbnQ9OApuZXRoY3RybD04Cm5lcT0x +NgpuZXhhY3RmPTgKY21hc2s9YWxsCnBtYXNrPTB4MQpbZnVuY3Rpb24iMSJdCm52Zj0xNgp3eF9j +YXBzPWFsbApyX2NhcHM9YWxsCm52aT0xCm5pcWZsaW50PTgKbmV0aGN0cmw9OApuZXE9MTYKbmV4 +YWN0Zj04CmNtYXNrPWFsbApwbWFzaz0weDIKW2Z1bmN0aW9uIjIiXQpudmY9MTYKd3hfY2Fwcz1h +bGwKcl9jYXBzPWFsbApudmk9MQpuaXFmbGludD04Cm5ldGhjdHJsPTgKbmVxPTE2Cm5leGFjdGY9 +OApjbWFzaz1hbGwKcG1hc2s9MHg0CltmdW5jdGlvbiIzIl0KbnZmPTE2Cnd4X2NhcHM9YWxsCnJf +Y2Fwcz1hbGwKbnZpPTEKbmlxZmxpbnQ9OApuZXRoY3RybD04Cm5lcT0xNgpuZXhhY3RmPTgKY21h +c2s9YWxsCnBtYXNrPTB4OApbZnVuY3Rpb24iNCJdCnd4X2NhcHM9YWxsCnJfY2Fwcz1hbGwKbnZp +PTI4Cm5pcWZsaW50PTE3MApuZXRoY3RybD0xMDAKbmVxPTI1NgpucXBjcT0xMjI4OApuZXhhY3Rm +PTQwCmNtYXNrPWFsbApwbWFzaz1hbGwKbmV0aG9mbGQ9MTAyNApucm91dGU9MzIKbmNsaXA9MzIK +bmZpbHRlcj00OTYKbnNlcnZlcj00OTYKbmhhc2g9MTIyODgKcHJvdG9jb2w9bmljX3ZtLG9mbGQs +cmRkcCxyZG1hYyxpc2NzaV9pbml0aWF0b3JfcGR1LGlzY3NpX3RhcmdldF9wZHUsaXNjc2lfdDEw +ZGlmCnRwX2wydD0zMDcyCnRwX2RkcD0yCnRwX2RkcF9pc2NzaT0yCnRwX3N0YWc9Mgp0cF9wYmw9 +NQp0cF9ycT03CltmdW5jdGlvbiI1Il0Kd3hfY2Fwcz1hbGwKcl9jYXBzPWFsbApudmk9NApuaXFm +bGludD0zNApuZXRoY3RybD0zMgpuZXE9NjQKbmV4YWN0Zj0xNgpjbWFzaz1hbGwKcG1hc2s9YWxs +Cm5zZXJ2ZXI9MTYKbmhhc2g9MjA0OAp0cF9sMnQ9MTAyMApwcm90b2NvbD1pc2NzaV9pbml0aWF0 +b3JfZm9mbGQKdHBfZGRwX2lzY3NpPTIKaXNjc2lfbnRhc2s9MjA0OAppc2NzaV9uc2Vzcz0yMDQ4 +CmlzY3NpX25jb25uX3Blcl9zZXNzaW9uPTEKaXNjc2lfbmluaXRpYXRvcl9pbnN0YW5jZT02NApb +ZnVuY3Rpb24iNiJdCnd4X2NhcHM9YWxsCnJfY2Fwcz1hbGwKbnZpPTQKbmlxZmxpbnQ9MzQKbmV0 +aGN0cmw9MzIKbmVxPTY2Cm5leGFjdGY9MzIKY21hc2s9YWxsCnBtYXNrPWFsbApuaGFzaD0yMDQ4 +CnRwX2wydD00CnByb3RvY29sPWZjb2VfaW5pdGlhdG9yCnRwX2RkcD0yCmZjb2VfbmZjZj0xNgpm +Y29lX252bnA9MzIKZmNvZV9uc3NuPTEwMjQKW2Z1bmN0aW9uIjEwMjMiXQp3eF9jYXBzPWFsbApy +X2NhcHM9YWxsCm52aT00CmNtYXNrPWFsbApwbWFzaz1hbGwKbmV4YWN0Zj04Cm5maWx0ZXI9MTYK +W2Z1bmN0aW9uIjAvKiJdCnd4X2NhcHM9MHg4MgpyX2NhcHM9MHg4Ngpudmk9MQpuaXFmbGludD00 +Cm5ldGhjdHJsPTEKbmVxPTQKbmV4YWN0Zj00CmNtYXNrPWFsbApwbWFzaz0weDEKW2Z1bmN0aW9u +IjEvKiJdCnd4X2NhcHM9MHg4MgpyX2NhcHM9MHg4Ngpudmk9MQpuaXFmbGludD00Cm5ldGhjdHJs +PTEKbmVxPTQKbmV4YWN0Zj00CmNtYXNrPWFsbApwbWFzaz0weDIKW2Z1bmN0aW9uIjIvKiJdCnd4 +X2NhcHM9MHg4MgpyX2NhcHM9MHg4Ngpudmk9MQpuaXFmbGludD00Cm5ldGhjdHJsPTEKbmVxPTQK +bmV4YWN0Zj00CmNtYXNrPWFsbApwbWFzaz0weDQKW2Z1bmN0aW9uIjMvKiJdCnd4X2NhcHM9MHg4 +MgpyX2NhcHM9MHg4Ngpudmk9MQpuaXFmbGludD00Cm5ldGhjdHJsPTEKbmVxPTQKbmV4YWN0Zj00 +CmNtYXNrPWFsbApwbWFzaz0weDgKW3BvcnQiMCJdCmRjYj1wcHAsZGNieApiZ19tZW09MjUKbHBi +a19tZW09MjUKaHdtPTMwCmx3bT0xNQpkd209MzAKZGNiX2FwcF90bHZbMF09MHg4OTA2LGV0aGVy +dHlwZSwzCmRjYl9hcHBfdGx2WzFdPTB4ODkxNCxldGhlcnR5cGUsMwpkY2JfYXBwX3RsdlsyXT0z +MjYwLHNvY2tldG51bSw1Cltwb3J0IjEiXQpkY2I9cHBwLGRjYngKYmdfbWVtPTI1CmxwYmtfbWVt +PTI1Cmh3bT0zMApsd209MTUKZHdtPTMwCmRjYl9hcHBfdGx2WzBdPTB4ODkwNixldGhlcnR5cGUs +MwpkY2JfYXBwX3RsdlsxXT0weDg5MTQsZXRoZXJ0eXBlLDMKZGNiX2FwcF90bHZbMl09MzI2MCxz +b2NrZXRudW0sNQpbcG9ydCIyIl0KZGNiPXBwcCxkY2J4CmJnX21lbT0yNQpscGJrX21lbT0yNQpo +d209MzAKbHdtPTE1CmR3bT0zMApkY2JfYXBwX3RsdlswXT0weDg5MDYsZXRoZXJ0eXBlLDMKZGNi +X2FwcF90bHZbMV09MHg4OTE0LGV0aGVydHlwZSwzCmRjYl9hcHBfdGx2WzJdPTMyNjAsc29ja2V0 +bnVtLDUKW3BvcnQiMyJdCmRjYj1wcHAsZGNieApiZ19tZW09MjUKbHBia19tZW09MjUKaHdtPTMw +Cmx3bT0xNQpkd209MzAKZGNiX2FwcF90bHZbMF09MHg4OTA2LGV0aGVydHlwZSwzCmRjYl9hcHBf +dGx2WzFdPTB4ODkxNCxldGhlcnR5cGUsMwpkY2JfYXBwX3RsdlsyXT0zMjYwLHNvY2tldG51bSw1 +CltmaW5pXQp2ZXJzaW9uPTB4MTQyNTAwMWMKY2hlY2tzdW09MHgyZDE5ODM3MgoAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAABbZ2xvYmFsXQpyc3NfZ2xiX2NvbmZpZ19tb2RlPWJhc2ljdmlydHVh +bApyc3NfZ2xiX2NvbmZpZ19vcHRpb25zPXRubG1hcGVuLGhhc2h0b2VwbGl0eix0bmxhbGxsa3AK +cGxfdGltZW91dF92YWx1ZT0xMDAwMApyZWdbMHgxMDA4XT0weDQwODEwLzB4MjFjNzAKcmVnWzB4 +MTAwY109MHgyMjIyMjIyMgpyZWdbMHgxMGEwXT0weDAxMDQwODEwCnJlZ1sweDEwNDRdPTQwOTYK +cmVnWzB4MTA0OF09NjU1MzYKcmVnWzB4MTA0Y109MTUzNgpyZWdbMHgxMDUwXT05MDI0CnJlZ1sw +eDEwNTRdPTkyMTYKcmVnWzB4MTA1OF09MjA0OApyZWdbMHgxMDVjXT0xMjgKcmVnWzB4MTA2MF09 +ODE5MgpyZWdbMHgxMDY0XT0xNjM4NApyZWdbMHgxMGE0XT0weGEwMDBhMDAwLzB4ZjAwMGYwMDAK +cmVnWzB4MTBhOF09MHg0MDIwMDAvMHg0MDIwMDAKYmFyMnRocm90dGxlY291bnQ9NTAwCnNnZV90 +aW1lcl92YWx1ZT01LDEwLDIwLDUwLDEwMCwyMDAKcmVnWzB4MTEyNF09MHgwMDAwMDQwMC8weDAw +MDAwNDAwCnJlZ1sweDExMzBdPTB4MDBkNWZmZWIKcmVnWzB4MTEzY109MHgwMDAyZmZjMApyZWdb +MHg3ZDA0XT0weDAwMDEwMDAwLzB4MDAwMTAwMDAKcmVnWzB4N2Q2Y109MHgwMDAwMDAwMC8weDAw +MDA3MDAwCnJlZ1sweDdkYzBdPTB4MGUyZjg4NDkKZmlsdGVyTW9kZT1mY29lbWFzayxzcnZyc3Jh +bSxmcmFnbWVudGF0aW9uLG1wc2hpdHR5cGUscHJvdG9jb2wsdmxhbixwb3J0LGZjb2UKZmlsdGVy +TWFzaz1wcm90b2NvbCxmY29lCnRwX3Btcng9MzAKdHBfcG1yeF9wYWdlc2l6ZT02NEsKdHBfbnJ4 +Y2g9MAp0cF9wbXR4PTUwCnRwX3BtdHhfcGFnZXNpemU9NjRLCnRwX250eGNoPTAKdHBfbXR1cz04 +OCwyNTYsNTEyLDU3Niw4MDgsMTAyNCwxMjgwLDE0ODgsMTUwMCwyMDAyLDIwNDgsNDA5Niw0MzUy +LDgxOTIsOTAwMCw5NjAwCnJlZ1sweDdkMDhdPTB4MDAwMDA4MDAvMHgwMDAwMDgwMApyZWdbMHg3 +ZDQ4XT0weDAwMDAwMDAwLzB4MDAwMDA0MDAKcmVnWzB4N2Q2MF09MHgwNjAwMDAwMC8weDA3MDAw +MDAwCnJlZ1sweDE5MTY4XT0weDA0MDIwMTAwCnJlZ1sweDE5YzA0XT0weDAwNDAwMDAwLzB4MDA0 +MDAwMDAKbWNfbW9kZV9icmNbMF09MQptY19tb2RlX2JyY1sxXT0xCltmdW5jdGlvbiIwIl0Kd3hf +Y2Fwcz1hbGwKcl9jYXBzPWFsbApudmk9MjgKbmlxZmxpbnQ9MTcwCm5ldGhjdHJsPTk2Cm5lcT0y +NTIKbnFwY3E9MjA0OApuZXhhY3RmPTQwCmNtYXNrPWFsbApwbWFzaz1hbGwKbmV0aG9mbGQ9MTAy +NApucm91dGU9MzIKbmNsaXA9MzIKbmZpbHRlcj00OApuc2VydmVyPTMyCm5oYXNoPTIwNDgKcHJv +dG9jb2w9bmljX3ZtLG9mbGQscmRkcCxyZG1hYyxpc2NzaV9pbml0aWF0b3JfcGR1LGlzY3NpX3Rh +cmdldF9wZHUsaXNjc2lfdDEwZGlmCnRwX2wydD00MDkyCnRwX2RkcD0yCnRwX2RkcF9pc2NzaT0y +CnRwX3N0YWc9Mgp0cF9wYmw9NQp0cF9ycT03CltmdW5jdGlvbiIxIl0Kd3hfY2Fwcz1hbGwKcl9j +YXBzPWFsbApudmk9NApuaXFmbGludD0zNApuZXRoY3RybD0zMgpuZXE9NjYKbmV4YWN0Zj0zMgpj +bWFzaz1hbGwKcG1hc2s9YWxsCm5oYXNoPTIwNDgKcHJvdG9jb2w9ZmNvZV9pbml0aWF0b3IKdHBf +bDJ0PTQKdHBfZGRwPTIKZmNvZV9uZmNmPTE2CmZjb2VfbnZucD0zMgpmY29lX25zc249MTAyNApb +ZnVuY3Rpb24iMTAyMyJdCnd4X2NhcHM9YWxsCnJfY2Fwcz1hbGwKbnZpPTQKY21hc2s9YWxsCnBt +YXNrPWFsbApuZXhhY3RmPTgKbmZpbHRlcj0xNgpbZnVuY3Rpb24iMC8qIl0Kd3hfY2Fwcz0weDgy +CnJfY2Fwcz0weDg2Cm52aT0xCm5pcWZsaW50PTQKbmV0aGN0cmw9MgpuZXE9NApuZXhhY3RmPTQK +Y21hc2s9YWxsCnBtYXNrPTB4MQpbZnVuY3Rpb24iMS8qIl0Kd3hfY2Fwcz0weDgyCnJfY2Fwcz0w +eDg2Cm52aT0xCm5pcWZsaW50PTQKbmV0aGN0cmw9MgpuZXE9NApuZXhhY3RmPTQKY21hc2s9YWxs +CnBtYXNrPTB4MgpbcG9ydCIwIl0KZGNiPXBwcCxkY2J4CmJnX21lbT0yNQpscGJrX21lbT0yNQpo +d209MzAKbHdtPTE1CmR3bT0zMApkY2JfYXBwX3RsdlswXT0weDg5MDYsZXRoZXJ0eXBlLDMKZGNi +X2FwcF90bHZbMV09MHg4OTE0LGV0aGVydHlwZSwzCmRjYl9hcHBfdGx2WzJdPTMyNjAsc29ja2V0 +bnVtLDUKW3BvcnQiMSJdCmRjYj1wcHAsZGNieApiZ19tZW09MjUKbHBia19tZW09MjUKaHdtPTMw +Cmx3bT0xNQpkd209MzAKZGNiX2FwcF90bHZbMF09MHg4OTA2LGV0aGVydHlwZSwzCmRjYl9hcHBf +dGx2WzFdPTB4ODkxNCxldGhlcnR5cGUsMwpkY2JfYXBwX3RsdlsyXT0zMjYwLHNvY2tldG51bSw1 +Cltwb3J0IjIiXQpkY2I9cHBwLGRjYngKYmdfbWVtPTI1CmxwYmtfbWVtPTI1Cmh3bT0zMApsd209 +MTUKZHdtPTMwCmRjYl9hcHBfdGx2WzBdPTB4ODkwNixldGhlcnR5cGUsMwpkY2JfYXBwX3Rsdlsx +XT0weDg5MTQsZXRoZXJ0eXBlLDMKZGNiX2FwcF90bHZbMl09MzI2MCxzb2NrZXRudW0sNQpbcG9y +dCIzIl0KZGNiPXBwcCxkY2J4CmJnX21lbT0yNQpscGJrX21lbT0yNQpod209MzAKbHdtPTE1CmR3 +bT0zMApkY2JfYXBwX3RsdlswXT0weDg5MDYsZXRoZXJ0eXBlLDMKZGNiX2FwcF90bHZbMV09MHg4 +OTE0LGV0aGVydHlwZSwzCmRjYl9hcHBfdGx2WzJdPTMyNjAsc29ja2V0bnVtLDUKW2ZpbmldCnZl +cnNpb249MHgxNDI1MDAxZApjaGVja3N1bT0weDdkYzRkY2QKAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAA= +==== diff --git a/sys/dev/cxgbe/firmware/t5fw_cfg_uwire.txt b/sys/dev/cxgbe/firmware/t5fw_cfg_uwire.txt index 5abc29b..441362f 100644 --- a/sys/dev/cxgbe/firmware/t5fw_cfg_uwire.txt +++ b/sys/dev/cxgbe/firmware/t5fw_cfg_uwire.txt @@ -1,6 +1,6 @@ # Chelsio T5 Factory Default configuration file. # -# Copyright (C) 2010-2015 Chelsio Communications. All rights reserved. +# Copyright (C) 2010-2016 Chelsio Communications. All rights reserved. # # DO NOT MODIFY THIS FILE UNDER ANY CIRCUMSTANCES. MODIFICATION OF THIS FILE # WILL RESULT IN A NON-FUNCTIONAL ADAPTER AND MAY RESULT IN PHYSICAL DAMAGE @@ -91,7 +91,8 @@ reg[0x105c] = 128 # SGE_FL_BUFFER_SIZE6 reg[0x1060] = 8192 # SGE_FL_BUFFER_SIZE7 reg[0x1064] = 16384 # SGE_FL_BUFFER_SIZE8 - reg[0x10a4] = 0xa000a000/0xf000f000 # SGE_DBFIFO_STATUS + reg[0x10a4] = 0x00280000/0x3ffc0000 # SGE_DBFIFO_STATUS + reg[0x1118] = 0x00002800/0x00003c00 # SGE_DBFIFO_STATUS2 reg[0x10a8] = 0x402000/0x402000 # SGE_DOORBELL_CONTROL # SGE_THROTTLE_CONTROL @@ -600,8 +601,8 @@ [fini] - version = 0x1425001c - checksum = 0xf9115d76 + version = 0x01000025 + checksum = 0x2e1a8474 # Total resources used by above allocations: # Virtual Interfaces: 104 diff --git a/sys/dev/cxgbe/firmware/t6fw-1.16.22.0.bin.uu b/sys/dev/cxgbe/firmware/t6fw-1.16.22.0.bin.uu deleted file mode 100644 index 40b66e4..0000000 --- a/sys/dev/cxgbe/firmware/t6fw-1.16.22.0.bin.uu +++ /dev/null @@ -1,8974 +0,0 @@ -/*- - * Copyright (c) 2016 Chelsio Communications, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -begin-base64 644 t6fw -AAID5AEQFgAAARcCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAA8UD1gPeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAENoZWxzaW8gRlcgUlVOTUVNIERFQlVHPTAgKEJ1aWx0IFRodSBEZWMgIDEgMDM6 -Mjk6NTEgUFNUIDIwMTYgb24gdm5jNC5hc2ljZGVzaWduZXJzLmNvbTovaG9tZS9maXJtd2FyZS9j -dnMvZnctcmVsZWFzZSksIFZlcnNpb24gVDZ4eCAwMS4xMC4xNi4wMAAAAAAAAAAAAAAAAOLCEClg -ANQAH/zhSOEAe/AAEAAA4QGUQOEAVyDhADC4eP///x/84UCAAAAB4QB7cAAAEAAf/8ssIAAAAOEB -nAThBQAAIoIAQOEFCAAihgBAIIIARCCGAEThBQAEAAwAAIAAAQLhAHs84QB7ROEAe+TiAAAAAAEA -AOEAe5AgAAAAAACAAOEAewAAAEAB4QB7nAAGAIgAACAAREREQuAAAADjAAST4wAIACAAAlwAAAAA -H/8T0AAAAAAf/xPUAAAAAB//E9gAAAAAH/8T3B//gAAAAAAAAAAAAAAAAADAABH/yiIaB5IQghAS -/8kT/8mTIBL/yYMgJEoAA0QBZU/xwUEEMwEEMwNlP+YS/8PAMJMgEv/DE//DhCAEMwGTIBH/wRL/ -wpIQEf/BEv/CkhAR/8EB9DEA5DES/8AC5zECFgAR/7+BEAEBX8AhAhEByRER/7wS/7ySEBH/vBL/ -vJIQYAAPEf+3Ev+7khAR/7cS/7qSEIEQEf+5wCCSERL/uJISwCCSExL/t5IQghAC8lBlL/cR/7XH -L5IQEf+0khAS/7QT/7STIMAykyET/7OTIoIiEv+yE/+ykyAjIiEU/7EEMwHJOxP/sIMwA4MUCDMR -FP+upDOTIRP/opMiYAALAAAAwDCTIRP/npMiEv+pkCCQIZAikCOQJJAlkCaQJ5AokCmQKpArkCyQ -LZAukC8gJhAgJhEiIgIS/58CKDES/5kjCgAtNzAtNzgjPQFyM/MAAgAS/5nAMC83AC83IC83QC83 -YCM9AnIz7QACABL/jcAwKDcwKDc4Iz0BcjPzEv+OwDAnNwAnNyAnN0AnN2AjPQJyM+0S/4kV/4oW -/4rAMNcgBWYBYAASBDYFAAIA0w/TDwUzDG47FAdHFAcEQ3Yx5gQ2BQUzDG877QACABL/exX/fCMK -AAInAgcEQwQ+BQUzDAdHFG878AMCABL/d8kugyCEIYUivCJ0Ow6GULRVljC0M3Qz9GP/5gBlP+Jl -X98S/2zAMgMuBQMCABL/YsAwKDdAKDdIIz0BcjPzAAIAEv9nLScAwBEBSTEASDEBAgDAABT/YwTS -MRX/Y5RQFP9iBNMxFf9ilFAU/2IE1DEV/2GUUBT/YQTVMRX/YJRQEP9gAwAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAA9DAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/AAA -H/wAAOMACfgf/AAAH/wAAOMACfgf/AAAH/wAAOMACfgf/wAAH/8LQOMACfgf/wtAH/8LQOMAFTgf -/wtAH/8LQOMAFTgf/wtAH/8NEOMAFTgf/w0QH/8T0OMAFwgf/xPQH/8z/OMAHcgf/zP8H/8z/OMA -PfQf/4AAH//MHOMAPfQgAAAAIAABauMAihAgAAF4IAABfOMAi3wgAAF8IAABheMAi4AgAAGYIAAB -nOMAi4wgAAGcIAABpeMAi5AgAAG4IAABvOMAi5wgAAG8IAABxeMAi6AgAAHYIAAB2OMAi6wgAAHc -IAAB4uMAi6wgAAH4IAAB+OMAi7QgAAH8IAAB/OMAi7QgAAIYIAACGOMAi7QgAAIcIAACHOMAi7Qg -AAI4IAACOOMAi7QgAAI8IAACPOMAi7QgAAJYIAACWOMAi7QgAAJcIAACYuMAi7QgAAJ4IAACeOMA -i7wgAAJ8IAACguMAi7wgAAKYIAGV2uMAi8QgAwAAIAMdQOMCHwggAx1AIAMdQOMCPEggAx1AIAZ8 -vOMCPEggBnzAIAaAwOMFm8ggCAAAIAgTcOMFn8ggCBNwIAkx9uMFszggCTIAIAkzdOMG0cggCwAA -IAsAAOMG0zwgCwAAIAsAAOMG0zwgCwAAIAu2OOMG0zwAAAAAAAAAAAAAAAAf/wAAH/+AAB/8AAAf -/gAAH/+AACAAAAAAAAAAAAAAACAAO9MgADvIIABACyAAO8ggAD92IAA7yCAAPIsgAD8FIAA+gCAA -O8ggAD4oIAA92CAAPWMgADuzIAA9CyAAO8ggADvIIAA7yCAAPLIAAAAA////////D/z///D///8A -/CAAyJMgAMoLIADKOyAAygEgAMm+IADJtCAAyXwgAMlyIADJaCAAyRMgAMo5IADJCSAAyN8gAMo7 -IADI1SAAyMMgCCSAIAgk2CAIJKggCCSYIAgkiCAIJNAgCCTIIAgkwCAIJLggCCSwIAgkqCAIJKAg -CCM5IAgkmCAIIzkgCCSQIAgjOSAIJIggCCM5IAgjLwAAAAMAAAACAAAAAQAAAAAAAAAEAAAAAAAA -AAAAAAAAAAAACgAAAAoAAAAUAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAAAAAAAAAAAAAAAAEA -AQABAAEAAQABAAEAAQABAAIAAwAEAAUABgAHAAgACQAKAA4AEQAVABkAHgAjAC0APABQAGQAyAEs -AZAB9AAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAgACAAMAAwADAAMABAAEAAQABAAEAAUABQAFAAUA -BQAFAAYABgAHAAcAAAACAAAABgAAAAoAAAAOAAAAFAAAABwAAAAoAAAAOAAAAFAAAABwAAAAoAAA -AOAAAAFAAAABwAAAAoAAAAOAAAAFAQAABwAAAAoAAAAOAAAAFAAAABwAAAAoAAAAOAAAAFAAAABw -AAAAoAAAAOAAAAFAAAABwAAAAoAAAAOAAP8AAQICAAAAAAAAAAAAAAAgCJibIAiY/iAImFsgCJhA -IAiY/iAImAEgCJgBIAiY/iAImP4gCJgBIAiY/iAImP4gCJgBIAiYASAIl9MgCJj+IAiXmCAIlf8g -CJZ1IAiY/iAIlnggCJY6IAiY/iAImP4gCJj+IAiY/iAImP4gCJj+IAiY/iAImP4gCJj+IAiWLSAD -DTQAAAAQIAMV2AAAABAgAxAIAAAAASADEAwAAAACIAMP9AAAAAEgAw/8AAAAAiADFdgAAAD/IAMN -NAAAAP8gAw/gAAAAAiADD+QAAAADIAMP7AAAAAcAAAAAAAAAACADD8QAAAABIAMPyAAAAAIgAw/Q -AAAABCADFdgAAAD/IAMNNAAAAP8AAAAAAAAAACADDTQAAAAAIAMV2AAAAAAgAw6QAAAAASADDpgA -AAAEIAMOoAAAAAggAw6sAAAAICADDrwAAABAIAMOxAAAAIAgAw7MAAABACADDtQAAAIAIAMO6AAA -BAAgAw78AAAIACADDxQAABAAIAMPKAAAIAAgAw84AABAACADD0QAAIAAIAMPWAABAAAgAw9oAAIA -ACADD3gAEAAAIAMPkAAgAAAgAw+oAEAAACADD7AAgAAAIAMOfAAAABAgAw6EAAAAESADDmQAAAAA -IAMOaAAAAAEgAw5sAAAAAiADDnQAAAADAAAAAAAA//8AAAAAAAD//yADDeQAAAEAIAMN8AAAAIAg -Aw4AAAAAQCADDhAAAAAgIAMOIAAAABAgAw4wAAAACCADDjwAAAAEIAMOSAAAAAIgAw5UAAAAAQAA -AAAAAAAAAAAATgAAAEYAAAA+AAAANwAAAC8AAAAnAAAAHwAAABcAAAEBAQEBAQEBAQEBAQICIAkX -wCAJF3QgCRezIAkXsyAJF3QgCRd0IAkXwCAJF8AgCRd0IAkXwCAJF3QgCRfAIAkXsyAJF3QgCRd0 -IAkXdCAJF3QgCRd0IAkXwCAJF3QgCRd0IAkXdCAJF3QgCRd0IAkXwCAJF8AgCRfAIAkXwCAJF8Ag -CRfAIAkXwCAJF8AgCRd0IAkXdCAJF3QgCRd0IAkXdCAJF3QgCRd0IAkXdCAJF3QgCRd0IAkXdCAJ -F3QgCRd0IAkXdCAJF3QgCRd0IAknGCAJJxggCScNIAknGyAJJxsgCScFIAknBSAJJxsgCScbIAkn -BSAJJxsgCScbIAknBSAJJwUgCScFIAknGyAJJv0gCScFIAknBSAJJxsgCScFIAknGyAJJxsgCScb -IAknGyAJJxsgCScbIAknGyAJJxsgCScbIAknGyAJJxsAAgIFBQgICwsODhERFBQXFxoaHR0gICMj -JiYpKSwsLy8yMjU1ODg7OwAAAAAAAAABAxERCAgQCQMBAAAAAAAAIASioCABUOAgAGG0IAEyxCAB -TMwgAUdwIAEpuCAEBcgf/40YH/+1gCAAyxgf/6ocIACN1CAAflQAAAAAAAAAACABM1AgALCUAAAA -AAAAAAAf/6M8H/+U7B//kpAf/5AAIAB6ICAAb1AgAG2oIADAJB//sGggBi+IAAAAAAAAAAAgAHIM -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACABV1AgAT6kIADVKCAA1Fgf/7v4H/+eDB//mnQg -AK4gAAAAACABCqggAPhAIADlMCAA2uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAF/sCAA -jNwAAAAAAAAAAAAAAAAgAMf4AAAAAAAAAAAgAMAYIAARyCADU6gf/79EIADVSAAAAAAAAAAAAAAA -ACADdHggAFKgIAAv1CAAUYQAAAAAIABdACAAWwQgAFikAAAAACAAYXQAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIABe0CAEoiggA+o4IAPj/AAAAAAAAAAAAAAAAAAAAAAf -/4eEH/+AMCAAYJggA400IABfmCAABNQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAICwAA -ACADGoAIAAAAIAMajAgAAAAgAxqYCgAAACADGqQMAAAAIAMasBIAAAAgAxrADQAAACADGtQOAAAA -IAMa5BMAAAAgAxr0CgAAACADGwgOAAAAIAMbFBgAAAAgAxskDQAAACADG0AOAAAAIAMbUBAAAAAg -AxtgEgAAACADG3QOAAAAIAMbiBAAAAAgAxuYEQAAACADG6wKAAAAIAMbwAsAAAAgAxvMDQAAACAD -G9gUAAAAIAMb6AoAAAAgAxwADwAAACADHAwGAAAAIAMcHAYAAAAgAxwkBgAAACADHCwGAAAAIAMc -NAYAAAAgAxw8CQAAACADHEQGAAAAIAMcUAQAAAAgAxxYBgAAACADHGALAAAAIAMcaAsAAAAgAxx0 -BAAAACADHFgEAAAAIAMcgAkAAAAgAxyICQAAACADHJQAAAAAAAAAAA0AAAAgAxygCgAAACADHLAG -AAAAIAMcvAIAAAAgAxzEAwAAACADFawBAAAAIAMcyAAAAAAAAAAA12qkeOjHt1YkIHDbwb3O7vV8 -D69Hh8YqqDBGE/1GlQFpgJjYi0T3r///W7GJXNe+a5ARIv2YcZOmeUOOSbQIIfYeJWLAQLNAJl5a -Uem2x6rWLxBdAkQUU9ih5oHn0/vIIeHN5sM3B9b01Q2HRVoU7anj6QX876P4Z28C2Y0qTIr/+jlC -h3H2gW2dYSL95TgMpL7qREvez6n2u0tgvr+8cCibfsbqoSf61O8whQSIHQXZ1NA55tuZ5R+ifPjE -rFZl9CkiREMq/5erlCOn/JOgOWVbWcOPDMyS/+/0fYWEXdFvqH5P/izm4KMBQxROCBGh91N+gr06 -8jUq19K764bTkQcMERYHDBEWBwwRFgcMERYFCQ4UBQkOFAUJDhQFCQ4UBAsQFwQLEBcECxAXBAsQ -FwYKDxUGCg8VBgoPFQYKDxUf/4AAAAQAICAGgMAgBoQwH/ziAB//LYSBAAAAA4AAACAGgRAgCwAA -gYAAAB//MXAgAAAAH/8ZTB//GuQABAAABAAACCADEqAMAAAAgoAAAR//MWD//7////8AAB//LgQf -/zJwD////x//LjgA//gAwQAAABwAAACBBAEAgQQAAAEAAAAAEAAAAQQAAAEEAQAAB///gAAAACoA -AAAf/wYwBgAAAB//nYQgBB1QQUAAAEFAAQCAEAAAAgAAAIAAAAaDAAABH/8ZvCADErDwAAAA/3// -/x/84uQAQAAAH/8ptAAA//8AAQAAH/8UIB//FND//9NA///QZB/+54Qf/N4AIAZ+nP//vuQf/uf0 -H/7nYP//wUAf/y68H/8f1AAACLjg//4A4QGSAB//GkAA////H/8tBKUAAAAEQQAIBAEACDAAAAAf -/y9gAAAdIAAA/4AgBnzAIAtwwOEALgAf/y9UH/8qNB//MBAf/yuAAAAXYB//LvD//wD/4AAAoOEA -MLgAAIAA4QBgEAAAQADhAwgA4QNIAOEDiADhA8gA4QAQCB/84UDhAHtwH/8zvB//M7Qf/OAIH/8z -uB//M9Qf/zPMH/8z0B//M+wf/zPkH/8z6B/84gAf/y2EH/8rQCABZeQf/zAsAAD/gB//FCAf/y5w -4QAAAAQAAAiLEAAAgQAAAB//MXCBgAAAgoAAACADEqQMAAAAH/8aPB//Gkwf/x/I//+//8MAAAAE -AQAIH/8xYCALAYAAD0JAIAMQSCALerAgAxAoIAAiQCALAPAgABaAIAsBsCALAMAgCwEgIAsBUCAD -RDwgAxBYEAAAAO4AAAACgAAAIAt64AAACwAAAGAAAGAAAGAAAAAAAIbdIAsB4CoAAAAgAEnsIAAq -CCALAlAgA0+AIAsCgCALAsAgCwLwIAAbyCADEGggCwNwA2AAACALewAgCwPwH/8wOB//MDQf/zCY -IAsGkAUAAACD/wAAABAAACAAMVwgAxH4H/8KgB//BjAf/wg0Z0UjAe/Nq4mYutz+EDJUdh//ACAA -AD8oIAMVrM////8gCweAP////wIAAABAAAAA//9//yALCKAgAEyIIAsI0CALCUAIAAAAAP///yAL -CbD3////IAsMIP/+//8gCxlQgAAAAAAQQAAgAxKoAAD//wAAgAAgCxogIAsaoCALGuAgCxswIAsa -cP/7//8P9oAAIAsfYCALH5AAAQAAAAQAACALgoAf/y4gH/8usCAAXQAgAF6AIABbBCALICAgAFik -IAsgsCALIuAgCyNw4AAAACALI/AgCyOwUwAAACALJBBSAAAAIAskUFEAAAAgAYksH/8rdCALJuAg -CydAIAsnECALKcAf/y7cIAsqEB//HmAf/y4EIAsr0BQAAACAAAACeAAAAIAAAAaAAAAFAAAKAIAA -sAAA4zCS///wAIAAsQAgCyuQH/8b1AAAfkAf/y60AP/AAB//LsAmAAAAAQAAACgAAAAgCyxABYAA -AAYAAAAf/yrMKwAAACAAdQgf/N4AH/8saAf///8DgAAANQAAAANAAAAf////CA///wA///+AQAAA -IAAAAAAAwAAf/y6YPQAAAB//LRSBBAEAgQQAAAcAAAAf/yzkAAA6mBgAAAAf/xTgAAAP/wBDAAAE -AAAAH/8snCALhXAf/zLgH/8ZvAACAADhAHoAH/8upB//LKAf/y44H/8rCCCAAAAf/yz8H/8uoB// -HmQf/x5YIAuFoAADB4AgC4YQH/8cOAAgAAAAQAAAAAAJAAAAMAD//Ph/wAAAAKP/uwCj/7oADQAA -AOADAACD/7YAD////w//+AD/AAAAD//+ASALhlAgCy6AIAsusCALhuAACgAAAA8AAP//AA8f/x5s -A//AAIP/wAAgC4dgIAuH0B//L4gf/zJwH/8zAP9A8AAf/zLQH/8AcB//E+AEgAAIAEQAAP8f//8A -wAAAAYDCAAAAgQD/v/////8AAACAAAAf/x/MAAAJvA8AAAAgCy7wH/8vIB//MCQf/yswH/8gOB// -Gkgf/wCAIAZ90AAAUAAAACcQH/+pICALjsAgC46QH/8vhB//GkAgCzLwH/8uhCALjxAgCzNQIAsz -oCALNDAgCzMgIADVVCALNAAgCzSQIAs0wCALNRAgCzVwIADbECAA4CAgC4+AIAuP4CAA6kgf/y/Y -/wD/AMzMzMyqqqqq8PDw8B//MyAf/zEoAAP//wAAJ/8gAOygIAuQUAAQSACCAAAAIAED5CALkMAg -ACzAIAuVgCALlbAgCzwwIAs8ACALPEAgCzygIAs9ICALPHAgCzzAIAs88CALPsAAACAAAABAACAL -PxAgC5PAIAuT4CALP0AgCz+QIAuUgCALlKAgCz7wIAuU0CALlBAgC5RAIAs/wCALl1AgC5fgIAuW -gCALlpAgC5YQIAuW8CALllAgC5YgIAuW0CALl2AgC5cgIAuXoB//LqwAAAgAAAAIBgAAD/4AAIjM -fwAAAPAAAAAgC5qQIAuZ8CALmlAgC5kQIAuZoAAA4AAgC5gQIAuYwCALmXAf/xvsIAtB0B//K5ga -AAAAIAtCICABMDgf/y68IAMMwB//KyAf/yogIAtFMB//LQgf/zLAH/8yKCALm8AgC0VwH/8sgAAA -D/DgAQAAH/8f0CALnPAgC0WwIADE4CAAwaQgC5xwIAucwB//HAwgC0hwH/8f1CALVADg//4AIAt4 -4B//Lrgf/xY8IAthICALYbAgAV5AH/8seCABYFgf/xqsH/8qNB//LSQf/ypcAAAYEAAAFjwf/y1E -IAaA/B//KtQgBoEQ///x/+EAXgAf/ywc4QAuAB//LVDhAwYA4QAOAOAFAAAwAAAAA/8AAB//KoQg -AxKwH/y//zwAAAAAB///gwAAAB//KjwgAYTcIAt3YB//L5TgBgAAIAMSoAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AIGAAAAAAAAA/////////////////////x//xzwf/8c8H//G/B//xvwf/8b8H//G/B//wNAf/8O4 -H//CAB//wgAf/8IAIAYxdAAAAAAAAAAAAAAAAAAAAAAgBjRAIAY0QAAAAAAAAAAAAAAAAAAAAAAg -BjF0IAYxdB//xLwf/8S8H//EvB//xLwf/8S8H//EvAAAAAAgAWcUAAAAAAAAAAAAAAAAAAAAAAIB -AAAAAAAAAAAAAAAAAAAEAAAAAAAAAIGAAAAAAAAQBAAAAAAAAAKBAAAAAAAACAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -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 -tgAAAOIU8CAFIAxd2nDrWO9ACngAJ2P/nmnYL+xo70AOgACl6wPYQAqoAkGOFGTvhuoo70AOgACw -7VKQQA+YAMHuF7BACngBgGP/a+pQ2EAOgAOw7Nk9wAqoAjXiANhAD6ABEAAAgyccfZHqUNhADoAD -sOM+sEAKqAIuKDLJfY8KKTLOzJQqMhpkoGTsmD3ADoAApe06sUAOgAOw7j60wAqoAiNj/uUAAAAA -AOpQ2EAOgAOw7Gg9wAqoAh3iANhAD6ABEOpQ2EAOgAOw7Bg9wAqoAhfiANhAD6ABEMCw6nOYQA6A -AsDqoJLACqAHGWP+gowgKyA/DI1H4LvhwA8IDY3sDIbAD2AL2+o8k8APYAvL6z3JQApIB0zAseo8 -18AOgADQ7TDKwA6AAMHtMcrAD5gAouw6yUAL+A1o2iDsZDzADoAGtO0A2EAKeAIaLjLJKjYc74DY -QA6AAILoOslAD2AO/u45zMAJ+A4mAGwQCuyVPcAOgAOwpTXmU7hAEDgMculSuEAX4AKl6FG4QBAA -DUrjfrBAEAgNqudQuEAPCAmJ4IjhwA8IBITpiOtAD2AEpOhm60AOgACl5ESXwA+YANfuSO9ACqgB -2isyGuIU8CAW4AE7LjId4hTwAAy4Dm5kQjHAYOcZyEAOgADQ6xjIQAgAAETrANhADoAAhOmA2EAY -wAA4orfuqLhAEeANd7Gq67GQACbADn7Bge8UyEAQOAeMLAoMCWYCtMqq3eIU8AAI4AlNrVoooATr -pbhAEDAN+iygB+6klEAPCAiI6P/hwA9gC4vvzOtADPALsOwMjqACIAEL6QjYIANgAgvvpJA//CAD -C++B2CAD4AUL6NDYIAVgBwvp4NgABCAIi+o9PIAFeAib7rmWwA9gCqbupubACfgPiC8w/Nrg6wDY -AAXoDs9tyROjv+6kvEAT4A3/sarrsZAAIMAO78CC6GbrQAn4D1oAAO5A2AAEkAvJDmYC7BLIQBBA -ArrrEchACfgPPQAAAAAA6QLYQBOQCPzopJBAD2AGlugVyEAJ+A8g66m4QBBADeoffPEI7hHvZutA -D2AL6+sYyEAJ+A8CAAApCoDpZutAECACiugWyEAJ+A7tGnzn6mbrQAn4DuIAAOIU8AAEUA7U5xmw -AATgAyYkGoDl39ggCFgCB2h3IeIA2EAPoAEQwKXsvTzADoADsO1o70AKqAFr4gDYQA+gARCDJ4M+ -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 -0UAPKAzc5zK4QA9QC8rqOO9AC7gLqg+vEemGL8AQUAL/Dw9H7BKwQBAwB3/ckNow7RjvQBCAArXu -KO9AC/gPqxxfzu0QsEAQAAyCKhIR6xCxQBA4C5Lu2O9ADwgPiOoCLsAPWA6q6QmIwA9gDv7uQchA -DwgJyeqZ60AMEAq2rKqZQOwpsEAQ0AuSEl4c61PIQBQADaqcUuCZ4cAPYAIo4lDIQA9oCqbqmetA -D5gALelRyEAPoAEQAAAAAADtO+jACfgOtekTyEAPmACy7XjvQA+YAFrqOO9AC8ANMIkT5QLswA6A -AKCxqukT8EAf0AEqixDt/y3AEwACVO1GyUAOgAHA7EfJQBAYArvrEMhACfgO3gAAbBAE4//fwBA4 -DEKETiNG++NKz8AOgASg6kbPQBAYA5QjlQrjm8BADoAAgChGviOVKuObwkAQIANU6E7MwBUAAmUm -RujmSc7AF6ACVSVG/SVG/uNCzUAPoAEQAAAAAAAAbBAEwFEDJCwDIi4CUjmkItEPAAD//wED/wL/ -//8AAAAAAAAAAAQECAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgA1XkIANVsSADVcggA1XI -IANVyCADVcggA1XIIANVyCADWCcgA1fjIANVyCADVcggA1XIIANVyCADVcggA1XIIANXTCADVuQg -A1ZLIANWLiADVhkgA1YDAwEAAgAAAAAgBJcIIASYuCAEmgMgBJcIIASZ+yAEmecgBJcIIASXCCAE -lwggBJcIIASXCCAElwggBJcIIASXCCAElwggBJcIIASZ1yAEmccgBJcIIASXCCAElwggBJcIIASX -CCAElwggBJcIIASXCCAElwggBJcIIASXCCAElwggBJcIIASXCCAEmKYgBJcIIASYoCAEmKAgBJcI -IASYoCAEmKAgBJmoIASYoAAAAAAAAAAAAAAAACAEq/ggBKpYIASujiAErkYgBK4JIAStxiAEraEg -BKq0IASteyAErTsgBKzeIASshCAErDggBKwTAAAAAAAAAAAAAAAAIAUjlCAFHMAgBRxcIAUZWCAF -FGAAAAAAAAAAACAFHKAgBRyYIAUcmCAFHJggBRygIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUc -mCAFHKAgBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyY -IAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJgg -BRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAF -HJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHKAgBRyYIAUcmCAFHJggBRygIAUcmCAFHJggBRyYIAUc -oCAFHJggBRyYIAUcmCAFHKAgBRyYIAUcmCAFHJggBRygIAUcmCAFHJggBRyYIAUcoCAFHJggBRyY -IAUcmCAFHKAgBRyYIAUcmCAFHJggBRygIAUcmCAFHJggBRyYIAUcoCAFHJggBRyYIAUcmCAFHKAg -BRyYIAUcmCAFHJggBRygIAUcmCAFHJggBRyYIAUcoCAFHJggBRyYIAUcmCAFHKAgBRyYIAUcmCAF -HJggBRygIAUcmCAFHJggBRyYIAUcoCAFHJggBRyYIAUcmCAFHKAgBRyYIAUcmCAFHJggBRyYIAUc -mCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyY -IAUcoCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcoCAFHJgg -BRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAF -HJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcoCAFHJggBRyYIAUcmCAFHKAgBRyYIAUc -mCAFHJggBRygIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyY -IAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJgg -BRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAF -HJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUc -mCAFHKAgBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyY -IAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJgg -BRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAFHJggBRyYIAUcmCAF -HJggBRyYIAUcoAAAAAAAAAAAAAAAACAFHPkgBR2RIAUhNiAFISQgBSEJIAUg9yAFINYgBSDEIAUg -oyAFIJIgBSB3IAUgZiAFIEsgBSA6IAUgHyAFHPAgBSAEIAUf8yAFH9ggBR/GIAUfqyAFH5IgBR9v -IAUfkiAFH28gBR9dIAUfQiAFHPAgBRzwIAUc8CAFHPAgBR8xIAUdFSAFHPAgBRzwIAUc8CAFHxAg -BR70IAUe5iAFHs8gBRzwIAUevCAFHp4gBR6LIAUebSAFHlogBR5HIAUeNCAFHiEgBR4UIAUeAiAF -HeEgBR3QIAUdtSAFHaMgBR12IAUdQAAAAAAAAAAAAAAAACAFI+sgBSP5IAUl+CAFJc0gBSXCIAUl -tyAFJawgBSWhIAUlliAFJYsgBSWAIAUlciAFJWQgBSVGIAUlESAFJOUgBSTYIAUkuSAFJKsgBSSd -IAUkiSAFJH4gBSRlIAUkWiAFI9UgBSQxIAUkIyAFJBUgBSQKAAAAAAAAAAAAAAAAIAVgHiAFXXgg -BWA4IAVgHiAFXXggBV14IAVdeCAFYDggBWAeIAVgHiAFYB4gBV14IAVgHiAFYB4gBWAwIAVgMCAF -YCggBWAoIAVgFiAFXXggBWAWIAVgFgAAAAAAAAAAIAVgSCAFXi4gBWBgIAVgSCAFXi4gBV4uIAVe -LiAFYGAgBWBIIAVgSCAFYEggBV4uIAVgSCAFYEggBWBYIAVgWCAFYFAgBWBQIAVgQCAFXi4gBWBA -IAVgQAAAAAAAAAAAIAVgcCAFXl4gBWCIIAVgcCAFXl4gBV5eIAVeXiAFYIggBWBwIAVgcCAFYHAg -BV5eIAVgcCAFYHAgBWCAIAVggCAFYHggBWB4IAVgaCAFXl4gBWBoIAVgaAAAAAAAAAAAIAXFoCAF -wsAgBcEoIAW+rCAFvMggBbjgIAW6OCAFuvAgBbhQIAW9nAAAAAAAAAAAAAAqGAAAQAAAAEAAAAAA -AAAAKgQAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAF5ZcgBeUG -IAXlryAF5ZcgBeUGIAXlBiAF5QYgBeWvIAXllyAF5ZcgBeWXIAXlBiAF5ZcgBeWXIAXlpyAF5acg -BeWfIAXlnyAF5Y8gBeUGIAXljyAF5Y8AAAAAAAAAACAF5b8gBeUeIAXl1yAF5b8gBeUeIAXlHiAF -5R4gBeXXIAXlvyAF5b8gBeW/IAXlHiAF5b8gBeW/IAXlzyAF5c8gBeXHIAXlxyAF5bcgBeUeIAXl -tyAF5bcAAAAAAAAAACUoAw8IEqWog46TkgAAAAAgBfqAIAX9qiAF/pUgBf51IAX+VSAF+oAgBfqA -IAX6gCAF/jggBfqAIAX6gCAF/f8gBf3iIAX96iAF+oAgBfqAIAX6gCAF+oAgBfqAIAX6gCAF+oAg -BfqAIAX6gCAF+oAgBf29IAX9GQAAAAAAAAAAIAYbyCAGG24gBhvgIAYbyCAGG24gBhtuIAYbbiAG -G+AgBhvIIAYbyCAGG8ggBhtuIAYbyCAGG8ggBhvYIAYb2CAGG9AgBhvQIAYbwCAGG24gBhvAIAYb -wAAAAAAAAAAAIAYeEiAGHV4gBh4qIAYeEiAGHV4gBh1eIAYdXiAGHiogBh4SIAYeEiAGHhIgBh1e -IAYeEiAGHhIgBh4iIAYeIiAGHhogBh4aIAYeCiAGHV4gBh4KIAYeCgAAAAAAAAAAIAYd6iAGHXYg -Bh4CIAYd6iAGHXYgBh12IAYddiAGHgIgBh3qIAYd6iAGHeogBh12IAYd6iAGHeogBh36IAYd+iAG -HfIgBh3yIAYd4iAGHXYgBh3iIAYd4gAAAAAAAAAAIAYf9yAGH2YgBiAPIAYf9yAGH2YgBh9mIAYf -ZiAGIA8gBh/3IAYf9yAGH/cgBh9mIAYf9yAGH/cgBiAHIAYgByAGH/8gBh//IAYf7yAGH2YgBh/v -IAYf7wAAAAAAAAAAIAYgHyAGH34gBiA3IAYgHyAGH34gBh9+IAYffiAGIDcgBiAfIAYgHyAGIB8g -Bh9+IAYgHyAGIB8gBiAvIAYgLyAGICcgBiAnIAYgFyAGH34gBiAXIAYgFwAAAAAAAAAAIAZAeiAG -QFggBkByIAZAeiAGQFggBkBYIAZAWCAGQHIgBkB6IAZAeiAGQHogBkBYIAZAeiAGQHogBkBqIAZA -aiAGQGIgBkBiIAZAYCAGQFggBkBgIAZAYAAAAAAAAAAAAAAAAwAAAAIAAAABAAAAAAAAAAQAAAAA -AAAAAAAAAABSVgAAAAAAAEAkAAAAAAAAP1BiTdLxqfw/8AAAAAAAAD6wxvegte2NEAAAAGNvbmZp -Z3VyYXRpb24gZmlsZSBwYXJzZXIgZm91bmQgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uIGFmdGVy -IFtmaW5pXQoAADAAAABmY29lAAAAAHZuaWNfaWQAdmxhbgAAAAB0b3MAZXRoZXJ0eXBlAAAAbWFj -bWF0Y2gAAAAAbXBzaGl0dHlwZQAAZnJhZ21lbnRhdGlvbgAAAHNydnJzcmFtAAAAAGZjb2VtYXNr -AAAAAGNvbXBhY3QAYmFzaWN2aXJ0dWFsAAAAAGdsYl9rZXkAZ2xidmZfa2V5AAAAcGZ2Zl9rZXkA -AAAAaWR4dmZfa2V5AAAAc3lubWFwZW4AAAAAc3luNHR1cGVuaXB2NgAAAHN5bjJ0dXBlbmlwdjYA -AABzeW40dHVwZW5pcHY0AAAAc3luMnR1cGVuaXB2NAAAAG9mZG1hcGVuAAAAAHRubG1hcGVuAAAA -AHRubGFsbGxrcAAAAGhhc2h0b2VwbGl0egAAAABsYW4Ad2FuAGNsdXN0ZXIAbWFudWFsAAB0cF9w -aW8AAHRwX3RtX3BpbwAAAG5pY192bQAAbmljX3VtAABuaWNfdW1faXNnbABuaWNfaGFzaGZpbHRl -cgAAb2ZsZAAAAAByZGRwAAAAAHJkbWFjAAAAaXNjc2lfaW5pdGlhdG9yX3BkdQBpc2NzaV90YXJn -ZXRfcGR1AAAAAGlzY3NpX2luaXRpYXRvcl9mb2ZsZAAAAGlzY3NpX3RhcmdldF9mb2ZsZAAAZmNv -ZV9pbml0aWF0b3IAAGZjb2VfdGFyZ2V0AHBvZmNvZV9pbml0aWF0b3IAAAAAcG9mY29lX3Rhcmdl -dAAAAGlzY3NpX3QxMGRpZgAAAABpc2NzaV9pbml0aWF0b3JfY21kb2ZsZABpc2NzaV90YXJnZXRf -Y21kb2ZsZAAAAAB0bHNrZXlzAGNyeXB0b19sb29rYXNpZGUAAAAAcHBwAGRjYngAAAAAYjJiAHNv -Y2tldG51bQAAAGNlZQBpZWVlAAAAAGF1dG8AAAAAYW5fZGlzAABwZGxpdGVfZGlzAABycwAAZmly -ZWNvZGUAAAAAIAMczAAEAAAAAAQAAAQAAP8CAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAP8CAAAAAAAAAAAAAAABAAL/AgAAAAAAAAAAAAAAAAAC/wIAAAAAAAAA -AAAAAAAAFgAAAAAAAAAAAAAAACAFuAgAAAAAIAW3aCAFtNggBbPoIAWVsCAFLAQgBRPAIAUSiAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAACAELZggBDqoIAQ6qCAEOqggBEmQIARlyCAEdAggBH4QIAQq -TCAEJ6QgBBtcIASV7CAEGRQgBBX4IAUSWCAFEQwgBQoIIAQ6qCAFCQggBQdEIAUGcCAGN4wgA5ZE -IAP62CAF0iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAACAEDQgAAAAAAAAAAAAAAAAgA1VkAAAAAAAAAAAAD//zAAAAAAAA -D/MAAAAAAAAA8wAAAAAAAAAzAAAAD/////8AAAAAAAAAAAAAAAAAD//zAAAAAAAAD/MAAAAAAAAA -8wAAAAAAAAAzAAAAD/////8AAAAAAAAAACAGIiwgBiFoIAZLKCAGIVQgBiGUIAYggCAGIhQgBiBg -IAZLECAGIUD/GDBgYAAAAAABAgMAAAAAAAAAAAAAAAAgBcZAIAQr4CAAjKAAAAAAIAP+UCAEAAQg -A/+UIAQAICAD/nQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAP/EAAAAAAAAAAAAAAAADAx -MjM0NTY3ODlhYmNkZWZBQkNERUYAAAAAAAAAAAAAQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVph -YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLwAAAAAAAAAAAAAAAAAAAAAgAEtA -AAEAACAASyQABQABIABLDAADAAUgAErsAAcAAGOCU2MAAAAA////////AAAABAQIAAQECAAEBAgA -BAQIAAQECAAHQwAAAAAAAAAAAAAhAAkAgQBBACEACQAhAAkAgQBBAIEAQQCBAEEAgQBBACEACQCB -AEEAIQAJACEAEQCBAEEAgQBBACEACQCBAEEAIQAJACEACQEBAEEAgQAhAIEAIQAQEGEBAQCBAQEA -gQMCAQAEAAAAAAAAAAAAAAAAAAPoAAAAZAAAAAoAAAABECBAAAAAAAAAAAAAAAAAAAQAAgABAACA -AEAAIAAQAAggQIAAAAAAAAAAAAAAAAAAIAMNNAAAAAAgAxXYAAAAACADDTgAAAABIAMWfAAAAAIg -Aw1AAAAABCADDUgAAAAIIAMNUAAAABAgAxaEAAAAICADDVQAAABAIAMNYAAAAIAgAw1sAAABACAD -DXgAAAIAIAMNiAAAIAAgAw2UAABAACADDaAAAIAAAAAAAAAAAAAAACocAAAqPAAAKlwAACp8AAAq -AAAAEAAAABAAAAAqAAAAEAAAAAAAAAAqGAAAAAgAAAAIAAAAAAAAAAAAAAAACAcEAwoJAgAAAAAA -AAAAAAARABAADgAPABQAFAAKAAcAHwAAAAAAAAAAAAAAAAAAAAAAHgAAACgAAAA8AAAAeAAAAB4A -AAAiAAAAKAAAADAAAAA8AAAAUAAAAHgAAADwAAAAHgAAACgAAAA8AAAAeAACAAEAAwAFAAAABAAA -AAAEAgYBBQMHAAAAAAAAAAAAAAECAwQFBgcICAkJCgoLCwAAACIAAAAwAAAAAAAAAAAAAAAeAAAA -IgAAACgAAAAwAAAAPAAAAFAAAAB4AAAA8CAFybggBclwIAXISCAFxuggBcagAAAAACAFxtAAAAAA -AAACAAAABAAAAAgAWWVzADAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5egAAAABu -b25lAAAAAGFsbAAqAAAAZGlzYWJsZWQAAAAAZW5hYmxlZAAweAAATkEAAFYwAABWMQAAVjIAAFYz -AABWNAAAVjUAAFY2AABWNwAAVkEAAFZCAABWQwAAVkQAAFZFAABWRgAAVkcAAFZIAABWSQAAVkoA -AFZLAABWTAAAVk0AAFZOAABWTwAAVlAAAFZRAABWUgAAVlMAAFZUAABWVQAAVlYAAHBvcnQAAAAA -cHJvdG9jb2wAAAAAZ2xvYmFsAABmdW5jdGlvbgAAAABmaW5pAAAAAHJlZwBmaWx0ZXJNb2RlAABm -aWx0ZXJNYXNrAAByc3NfZ2xiX2NvbmZpZ19tb2RlAHJzc19rZXltb2RlAHJzc19nbGJfY29uZmln -X29wdGlvbnMAAHNnZV90aW1lcl92YWx1ZQB0c2NoX3RpY2tzAAB0cF9wbXJ4AHRwX3BtcnhfcGFn -ZXNpemUAAAAAdHBfcG1yeF9mbGFncwAAAHRwX25yeGNoAAAAAHRwX3BtdHgAdHBfcG10eF9wYWdl -c2l6ZQAAAAB0cF9wbXR4X2ZsYWdzAAAAdHBfbnR4Y2gAAAAAdHBfbXR1cwB0cF90Y3B0dW5pbmcA -AAAAdHBfdGltZXJyZXMAdHBfdGltZXJ2YWxzAAAAAHRwX2JhY2tvZmZ2YWxzAABzY2hlZF9pb3F0 -eF9icF9wcmlvcml0eQBwbF90aW1lb3V0X3ZhbHVlAAAAAG1lbWZyZWVfY29uZmlnAABtYwAAbnZm -AHd4X2NhcHMAcl9jYXBzAABuaXFmbGludAAAAABuZXEAbnFwY3EAAAB0cF9zcnEAAG5ldGhjdHJs -AAAAAG5jcnlwdG9fbG9va2FzaWRlAAAAbnZpAHJzc252aQAAcnNzbnNlY3JldAAAbmV4YWN0ZgBu -cmF3ZgAAAGNtYXNrAAAAcG1hc2sAAABuZXRob2ZsZAAAAABucm91dGUAAG5jbGlwAAAAbmZpbHRl -cgBuaHBmaWx0ZXIAAABuc2VydmVyAG5oYXNoAAAAdHBfbDJ0AAB0cF9kZHAAAHRwX2RkcF9pc2Nz -aQAAAAB0cF90bHNfa2V5AAB0cF90bHNfbXhyeHNpemUAdHBfc3RhZwB0cF9wYmwAAHRwX3JxAAAA -aXNjc2lfbnRhc2sAaXNjc2lfbnNlc3MAaXNjc2lfbmNvbm5fcGVyX3Nlc3Npb24AaXNjc2lfbmlu -aXRpYXRvcl9pbnN0YW5jZQAAAGlzY3NpX21heF9zZ2UAAABwcG1fbWF4X3pvbmVzAAAAcHBtX3pv -bmVfcmFuZ2UwAHBwbV96b25lX3JhbmdlMQBwcG1fem9uZV9yYW5nZTIAcHBtX3pvbmVfcmFuZ2Uz -AGZjb2VfbmZjZgAAAGZjb2VfbnZucAAAAGZjb2VfbnNzbgAAAGZjb2VfbmZjYgAAAGRjYgBkY2Jf -YXBwX3RsdgBkY2JfZGNieF9wcm90b2NvbAAAAGh3bQBsd20AZHdtAGRlYm91bmNldGltZQAAAABh -bl9hZWNfdGltZQBmZWMAYWVjX3JldHJ5X2NudAAAAHZlcnNpb24AY2hlY2tzdW0AAAAAU2Vzc2lv -blR5cGUAT0ZNYXJrZXIAAAAASUZNYXJrZXIAAAAARGF0YURpZ2VzdAAASGVhZGVyRGlnZXN0AAAA -AEVycm9yUmVjb3ZlcnlMZXZlbAAASW1tZWRpYXRlRGF0YQAAAERhdGFQRFVJbk9yZGVyAABEYXRh -U2VxdWVuY2VJbk9yZGVyAEluaXRpYWxSMlQAAE1heENvbm5lY3Rpb25zAABNYXhSZWN2RGF0YVNl -Z21lbnRMZW5ndGgAAAAASW5pdGlhdG9yTmFtZQAAAEluaXRpYXRvckFsaWFzAABEZWZhdWx0VGlt -ZTJXYWl0AAAAAERlZmF1bHRUaW1lMlJldGFpbgAATWF4QnVyc3RMZW5ndGgAAEZpcnN0QnVyc3RM -ZW5ndGgAAAAATWF4T3V0c3RhbmRpbmdSMlQAAABUYXJnZXROYW1lAABUYXJnZXRBbGlhcwBUYXJn -ZXRBZGRyZXNzAAAAVGFyZ2V0UG9ydGFsR3JvdXBUYWcAAAAAQXV0aE1ldGhvZAAAU2VuZFRhcmdl -dHM9QWxsAENIQVBfQQAAQ0hBUF9JAABDSEFQX0MAAENIQVBfTgAAQ0hBUF9SAABEaXNjb3ZlcnkA -AABOb3JtYWwAAE5vbmUAAAAAQ1JDMzJDAABDUkMzMkMsTm9uZQBOb25lLENSQzMyQwBDSEFQAAAA -AENIQVAsTm9uZQAAAE5vbmUsQ0hBUAAAAE5vdFVuZGVyc3Rvb2QAAABJcnJlbGV2YW50AABSZWpl -Y3QAAE5vAAA1AAAAQ0hOZXQgMS4wMAAAAAAADAAAAAABAAF8AAwBAAAAABAAAAAUIAZqSAAAAwUO -QAAAAAAAEAAAACggBm1QAAADMA5QAAAf/AAAH/wAAB//NAAf/zQAIAaAwCAGhDAgCTN4IAkzeCAK -AAAgCoAAIAqAACAK5oAgBoEQIAAAACADAAAgCwAgAABAAAAAgAcAAIAEAACAACALeeAAAAgA4QGO -AAABkQyAAAAAIAt5wP//8/8gC3lwIAt6AB//FCAAALjuAAA0AAAAtO4AALT/AAC0AAAAuAAf/y70 -IAsAUCADECggC3ogIAt6YBWgAAAAAIP9IAMOiCADUUQAAUFKAAEBbgAAg/8gAw7oH/8xYADAAAEg -C3pwIAsAkCADEDggCwIAIAsCMCjAAABAAAACIAMPNCigAACAAAACIAsDIB//LiAf/y7AAAD//+EA -AAABAAAAKAAAAGsAAAAgAw6wIAsDUBAAAADuAAAAA2AAACALewAgA0qQIAt7IAAAJxAgA1L8IAt7 -cCALA6BAAAAAIAMQeCALBCAD4AAAIAMAIB//LnAf/OIAH/8thOEDBgD/3///3////wABAAoC5gLp -4QL+ACADADDhAAYAAAIAAP/9//8AmJaAAA9CQK1lNF07msn/O5rKAAAETAAf/y7QAACvAOEBDgAA -AIj3ACAAAAE/AUAALGNIAAehIB//LSQgC3ugIAt8AAgAAAAf/OLkIANdJB//LrwgCwRQIAsFgCAL -BIAPPAAAIAsFECAD6qggA+yMIAsF4A8AAAAgCwZAH/8IAB//BjAf/wjwIAsGsCALBvAgCwcwIAMM -wCADEqAgAxIgIAt9kCADEgAgC33AIAt8cCALfNAgC30wH/8vFOAAAAAgAEtgH/8wJAD///8gC33g -IAsHwCALCCAgCwhwIAsH8CADujgACAAAIAO/UB//LrAgCwoAIAZ90CAASEQAD/wAH/8aSB//G6AA -ADAAIAsKQCALCtAgCwtwVQAAAA4AAAAgC36AIAMTGAAACAYf/y6sIAsLoCALDIAAAA/+H/8uzCAL -DRAgCwzgAADwACALfqAgCw0wIAsNkCALDcAgCw4gIAsOcCALDzAgC37AIAsO0CADd8AgA5GMIAsP -kCALD9AgCxBAIAsQkCALf5AgA5hoIAOeRCALf1AgCxFAIAsQ0CALEbAgCxIQIAsSgCAGg/AgCxMA -IAsTQO/////3////IAsToCALE/AgCxbA/f///yALFFAgCxTAIAOgyCALFSAgCxWAIAsV4CALFjAg -CxZwIAt/4CADExAAEEAAIAMSqAwAAACBAAAABAAACB//CGAf/wlgIAMVsB//CEA/////z////yAL -FyAf/wkcH/8utCALF2AgCxegIAuAACALGCB///+rAACcTv//0E0AANGk//8uXCALGKAgCxhgIAsX -4B//CFwAEEgAIAMSrB//CFgAACAAIAMVsB//CMAgCxjgIAPDLCALGZAgA0vIIAuAkCALgCAgC4Bw -IAPHQAP/0AAAAA//AAEAACALgaAf/xswAEAAAAAQDACD/9AAIAuBECADd5AgC4HQH/8vhCALG1Ag -CxuQH/8tMCALglAgCxvAIAsb8CALHBAgCxxAIAscgCALHMAgCx0wH/8vCCALHkAgCx2AAExLQCAD -wuQgCx3QIAsegAQBAAggA6NQIAsfACALHrAgCyEAIAt+QCAD3LggC34QD/aAACALIWAgC4KAIABd -ACAAXoAgAFsEIAshMCALInAgCyGQIABYpCALIiAgCyKgIAskkAAAjgIgCyUAIAslUCALJaAgCyTA -IAsl8AOAAAAf/zFwIAsmQCALJpD/9///IAsngCAD13wgCyhAIAspACAD26ggA9V0IAPDTCAD2twg -CylAAgAAACALKYAAABdwIAMQZCALg3AgC4MgIAuDACAD/QAgC4LQIAuDUCADD/QgAxBEIAsqYCAL -KrAf/y1QIAsq0CALKwDhAF4AIAsrIB//LBwgBnzAIAsrUB//KzjhAH4AH/8tYB//LsgAAPP/BAAA -ABQAAAAgBAagKgAAACALLAAf/y+AIAuEQCAAIkAgC4QQ4AAGAOAACgwf/x2QIAsskAAAnEDgAAoA -H/8eIOAADYAAnAAA4QAuACALLXAgCy5QIAsuICALhTAgCy3wH/8erCALLbAAAwTA4QMCAOD//gDh -AI4AH/8WPAAAloAAAJZAIAaAwAAAlqAAAJZg4QMALAADAADhAHoAAAHgAOEBkgAAAeMABgAAACAE -HVD4AAAAAf//5wABQAAgAACAAAAQAB//LRTPAAAAHAAAAB//K0jhAZoAABAAAB//L7AgAw/8IAMQ -DCADEAQgAxAUgAAAAx//LsT//P//H/8V3H////8f/OIEH/8V7B//Fmwf/xYIIAYySCAELZggC4iQ -IAuI0CALiQAgC4lAIAuJcCALibAgC4ngIAuKICALiEAAD/////8AAP/wAAAf/y6cH/8ycB//KmQg -BDqoIAuLQCALi3AgC4rgIAuKgB//HKgf/xscH/8cSB//HqgAAP+AAAA8AAAAIycgCy9gAACQEAAA -kQAAAJAgAACREP/7//8ABAAA4QHiwJAAAPD8/wDAAgAAIP7/AMAgCy+wIAsv8AAA+AAAAwEIAAMB -UI////8AAwEMIAswQCALMJAgCzDAIAsxAOEA7gCAAf//gAD//4ABAADhAN4AAAERFAABEwAAAwMI -AAMCAB//LVT//+AA//7//wAA/AAf/y7kAAHAAAAADAAAAwMEAAEREB//LtwgC4vQACAQAIAAEAAA -AwEE///AAMAAP+8AAP/+AAAlgAADAwAf/y1M4P3iwB//K7gf/x48IAuMICALjFAgC4xwAAD//SAL -jAAgAwCIAAD/8yALMVAAACowAAD/+AAA/48AAFK1AABICgAAj4IAAI+GAAA4AAAAj4oAAOM/AACD -rgAA//EgCzFwAAAQQP//z78gC4yQAAASACALMaDhAy4A4QMyAP7////hAwEIIAsxwCADAJAgCzIg -IAsx8ACAAAAgC4yw///mACALjYAAAP/7AAD+/wAA/8AAAP8/AAD5/wAA//cgC4zgIAuOICALjdAg -C41AIAsy0CALMpAgCzJgAADAACALg9AgC4OQAAAMvCALNdAgAwFAIAs2MCALNgAgCzkgIAs44CAL -OKAgCzhgIAs4ICALN+AgCzeQIAs3UCALNwAgCzawIAs2cCALkTAgC5FgIAuRkCALkdAgC5IQIAuS -QCALOlAgCzoAIAs5YCALOaAAAIDCAAAbIR//K0wgCzqAIAuScCALkrAgC5LQAP/AABIAAAAgBMuQ -IAuTgCALk0AAAKAAYAAAAB//LzggC5UAIAs6oCALOtAAABwgIAs7ACALO2Af/y2YIAs7oCALOzAg -Cz1QAAB/piALPeAgCz1wIAs+ECADQVggCz2gIAs+cCALPkAgA0KYIAs+oCADSAggC5XgIAtAECAL -mDAgC0EwIAMSkCALQGAgC0FQIAtAwCADEzQAABIPIAtBkCAE9Wz//0AAIAuasCALQmAgC0LgIAtD -MOEBkawAAZGsv////yALQ2ALAAAAIAT72CALQ9AgC0RAIAtEsCALROAgC5rwIAubcCAEf/ggAxA0 -IAucIH///w8gC0YAwAAAAB//LYD8AP//4QCWAOEAmgAAAAn/4QCeAAAAsAAf/y9MIAMBgCALRkDh -AA4A4QASAP/gOAAD/4AOAHP/gAMAAAAAOP//EwAAABEAAAAf/AAAIAtGgCALnSAAAZSPAAGUzyAD -AaAf/x50IAMGICALRsAgC0cAIAtHMB//LGwf/xS0H/8s7CADBxAABBQAH/8dhB//HAwf/x184QBa -AAIBsAAf/xXUIAtNoCALTfAgC05QH/8vICALTyAf/yxoAD///x//HCQf/y0cAAD/lwAA/tX//6uT -H/8uqBSwAACAAAAEwgAADhagAAAF3AEAIKAAAD/wAAAjoAAAA/8AABeQAADAAAABIAtPkCALT9Ag -C1AgIAtQYCALULAgC1DwH/8vlAIAABAgC1MwH/8tNCALVEAgC4RwIAtU0AAA/gAgC6IQGwAAAAAF -AAI6wAAAIAtVECAFQ9ggC6LQIAuiYCALoqAgBUpQIAuiQP//f/8gC1VA///B////388AAOAA//+f -/yALVXAgC1Wg///fMB//K1QgC1XQH/8WQAAA/9/hAyoA///t/x//K7wgAweQIAtWACADB/AgAwhQ -IAtWMCAGgPAgBoD4IAtWUAABkPj//Ph/IAtWkCALVwAgBn2UAAATiCALVzAAAwACH/8eOCALV7Ag -C1dgIAtX4CAFfYAf/yu04QMOAOEDEgAgC6NgATAYwCALWEAgC1ggIAujoCALWGAgC1jgIAtYoCAL -WSAgC1mgIAtZ4CALo+AgC1lAAAGGoOEDAAQF9eEAAX14QAJiWgDhAwAwH/8ryAAEBe7hAwEE4QHi -AB//HlwAAf//4QGeAAABnzQAAZ84IAtaMP+///8f/N4AH/8WVAAFAAQf/y7UH/8eZB//HmgAAIkG -AACJFCAIAAAf/y0gIAhOsCAIBmAgCI8AIAgFUCAIAiAgCAMwIAgEQCAIARAf/y9QH/8q+B//HEAg -Bn3UH///8B//KVgf/ywwIAFodP//9wDhAHYAIAMQcCALoeAgC6kwH/8uXCALYMAgBoMQIAaDuiAG -g7AgC2NQFJAAAEAAAAQAAFAAIAtjwCALY/AgC2HAIAOYACALYgAgC2JgAACP/iALYrAjKBUAA/8A -HyALYxAgC6qQIAupkCALqhD/6A//v/8PAP//DwAAEIAAIAtkYCAGMgDerb7/IAW1+CADCLAByAAG -4QGZ4OEBEgAgC3lAIAt5kAAAflAAAH5AAAB+GCAFwsAgAxXgIAMV5CADFdggAxXoIAMV9CADFfwg -C2dw4QGaBOEBmgjhAZoMAAMABh//HlgAUQAGIAtowCALaPAf/x8gIAtpICALaVAgC2mQDQDgAOD/ -B/8IAOAABQDAAAkAYAAFAKAAIAMUgCADCOAgC2nQAAMwAAAOAAAA4AAA/wD///8P//8AAIAD//9/ -/AAAcAD//w/////wAAAADxsgC6MQ//+//wD/AAAAAywcAAMsGCADFLDhAxIEIAuvkCALr2AgC69A -IAuvsCADCSAgAwmAAAMSECALaiAEAAABBAAAMR//FbgEgAAB+w//fj4+AA8gC6MwAAMNCAADDRwA -Aw0g4QMmAAADCiAAAwocAAMKCOEDChQAAD/gAAC5k///7//hA0YABAAAgQQAALEzIWjBY+bE8DOb -ZcXYPXmiAAST4CADCeAgC2qgIAtqcCALatAgAwnwIAtrUAAA/sEf/ytQIAtrkCALbAAgC2xwIAtr -0CAGfeQgC2sAH/8tyAAehIAAAxIEAAMSFAADCDQAAyocAAMqPAADKlwAAyp8IAuswCALqxAgC6tA -IAurcCALq7AgAxRwIAuqwCALq+AgC6ygAAB1MCALrBAgC6xQIAuucAADCHgAAwgAH/8p3CALrhAg -C64wIAutIP//Y+8AAywAIAutUCALrpAgC66wIAutgAADLAQgC62wIAut4AADLDwgC67QAAD/7yAL -bOAgC7AAIAuwUCADCmAgC6/QIAMKwCADCyAgAwuAIAML4B//GdyADwAA3//+AOAAAQDhAeJAIAaB -YOEB4pAf/y9UAAAxgMAAAAYAAFxIAAApQCAGJSAgC2+AIAtvYCALb0Af/xZkgAAAROEAVgDhAFbg -4QBecCALb7AgC2/QIAtwAB//LVggC7CQAAAxRAAAZEwAADmEH/8VZAAAMYQAAFxMAAApRCALcDAg -C3BgIAtwkAAAPgQdAAAAH/8vfCAGfvQAMAAAIAMThCALsZAgC7JAIAuwwCALsQAgC7LAIAux4CAL -sUAf/yx0H/8vKCALcQAgBiq8H/8yIB//MGAf/zO0H/8zzB//M+Qf/zO4H/8z0B//M+jt////AAJi -Wv/n//9t////ABpBAAAaQYD/5b5/AAAaGgCUAADwAAAAAAMJBCALcTDhAzoAIAMMQB//HFggAwyg -H/8cYCALcVDgAA2QIAtxoOIAAAAgCoAAH/8VAAAAHGAf/ysoH/8smJ////8gC7Ygv//w/x//Fugf -/y4EIAt0MCALdQAgC3SQIAt1cB//LTggC3XAIAt2kCALdwAgC3ZQMAAAACALeBAgC3fQIAZhBB// -KyAgBoEAH/8qICALeHAKAAAAIAZlqH/wAAAAH///f/gAAAAH//8ABRBEAAAAAGwQBOQ4f0APmADU -znmKTyihAmSASlt4jilCEAqrCeowyEAPCAurq5nqYMhAD4AJlelQyEAPoAEQiRhokU9okikqQhAJ -mwnpMMhADwgLq6uq6WDIQA+ACqXqUMhAD6ABEMDA7NDIQA+gARAuIhAtQhAO7wnuMMhADwgPr6/d -7mDIQA+ADdXtUMhAD6ABEIkvKkIQCZsJ6TDIQA8IC6urqulgyEAPgAql6lDIQA+gARAAbBAEG/tY -iSXqKO9ADoAAgesA2EAPKAm56YvmwAuIBMQPohG6IuIChsAPoAEQAAAAbBAGG/tN7LGwQBAAC3Ps -EchAEAAM2+0QyEAQQA2L6BjQQAwQCmbnGIBAEIACuwuqCOdHgMAPEAiIAXcICHcI6qC4QBAADXcr -CgHgdexAD2gCpe6gkyABkAEFaFM6dmc170OwQBAoDXQjQQMH/wwPPwruM+HAFngC/wP/LQ+/DA/u -KK4i0Q8AACgwAw2IEegi6J/+cANm0Q8pMAPikuRACfgPvgBsEATsUn9ADoAApe0kukAOgAG07jjv -QApgDOZoMUVoMgpoMwfiANhAD6ABECogIxz7Gx37GusB2EAKKAdMZqBDKiAj4w2AQA6AAb7sCNhA -DwgNne0NjsAKKAdF4qjvQA+gARAAKiAj7NB/QA6AAbDtANhACigHPuKo70APoAEQAAAAAADiqO9A -D6ABEGwQBOyC2EAOgAK26lLYIACoDAN6MUF7MVd8MSDirt/AD6ABEC0gQXzReuIU8AAEkAi9etFU -4gDYQA+gARAc+vQqICMd+vPrANhACigHJeKo70APoAEQAAAc+u8qICMd+u7rgdhACigHHuKo70AP -oAEQHProKiAjHfrp64HYQAooBxjiqO9AD6ABECogI+wefkAOgAG47UDYQAooBxHiqO9AD6ABECog -I+ytfkAOgACw7QDYQAooBwriqO9AD6ABECogI+xNfkAOgAG47QDYQAooBwTiqO9AD6ABEABsEATs -DX5ADoAApe0kukAOgAG47jjvQApgDIwZ+sbqrH5ADqAAgOk55UAOgABA6YTnwBA4AQMKRAIjICMV -+sTrM+HADoAAhAgzAiNWwRv6we0j2EAOgADh6ut+QA6AAMrsU8zADoAA8OwA2EALwA9s4qjvIADA -AHrsi35ADoAApOtB2EAKYAxw0Q8AAClSwiNWwRr6sgqZAQlJAgkJTylWwhv6rOwA2EAOgAPS6pp+ -QA6AAOHvANhADoAAiehTzMALwA9X4qjvIACwAHrsWn5ADoAAoetB2EAKYAxb0Q/RD2wQBOwKfkAO -gACl7SS6QA6AAbjuOO9ACmAMVOtA2EARGA2i5ADYQAwACDDtSO9ADogAwOjN58AKKAa7ZqAtwKLp -ANpADygKo+qU58ARGA2i7ADaQA6AALntSO9ACigGseKo70APoAEQAAAAAOKo70APoAEQbBAGKyAj -Gfp8C7sRK5bBGvp3KpbCG/p67ADYQA6AA9Lqd35ADoAA4e8A2EAOgACJ6JPMwAvADyXjqO8gAOAA -euw3fkAOgACh60HYQApgDCniOO9AD6ABEArqMBn6bimSOQqZCgzqMAycDGrBCArqMAqaDGuh9uoo -70AKKAPsZqAmwMHqI7pADoABsOsQwEAPmADR65DYQAoAAGDiqO9AD6ABEAAAAAAA4qjvQA+gARBs -EAQqICPthX5ADoAAsOzB2EAKUAJzIyAjwLDtRX5ADoABzOo470AKUAJuZqBxFPpG6znhwA6AAawK -mQIpRsEa+kPrNH5ADoAAwO0j2EAOgADh7wDYQA6AAIroQ8zAC8AO72agKipCwhv6Qh36QuoMgEAR -GA2i6wDYQA9YDcvswdhAClACV+IA2EAPoAEQAADsE35ADoAApOtB2EAKYAvpY//EAGwQBiogI+vx -2EAOgADA7RjvQAoAACzoEKhADYAEqnqHSiogIxL6IOuq4cAOgADhDqoCKibBGvocG/od7ADYQA6A -A9LvANhADoAAmukjzMALwA7KZqAdIiLC4kKAQA+gARAAAADiUNhAD6ABEOJg2EAPoAEQ7PB+QA6A -AKTrQdhACmALx+JQ2EAPoAEQbBAEKiAj7eB+QA6AALDswdhAClACJyogI+1wfkAOgACw7MHYQApQ -AiLiqO9AD6ABEAAAAGwQBG88PeIGhqAB0AIk5jzhwA0AA6QtUQAe+e/aYOzd60AOgACw7t3rQA6A -AcztDY7AClACEuKo70APoAEQAAAAAAAA4q7fwA+gARDaYOwNjsAOgACw7MHYQApQAghmoEoT+eDr -b+HADoABjAj/Ai82wRv53uwA2EAOgAPS6q19QA6AAOruM8zADoAA8O4Q2EALwA6J4qjvQA2AAbop -MsLpUMBAD6ABEAAAAADiqO9AD6ABEOz8fUAOgACk60HYQApgC4fRDwAAbBAEKCEf6AiGQA6AAz7t -7tggAdACCBn5zSogI+sA2EAOgAHM6d3rQApQAeId+ckqICPrANhADoABzO0960AKUAHd4qjvQA+g -ARAAACMK7u0+2EAJ+A/DAGwQBCghH+Pu2EAMUAiA7T7YQBhQAihgAAoAAADt7thADoADPhn5tCog -I+sA2EAOgAHM6d3rQApQAckd+a8qICPrANhADoABzO0960AKUAHD4qjvQA+gARBsEAQoICPkmX1A -DoAAWuuI4cAOgAGZCYgCKEbB62l9QA6AAMDqOX1ADoAD0u4Q2EAOgADw5UPMwAvADkHWoOPofUAN -gAiqKULCCYlC6hDYIANgBwkqJR8rICPru+HADoAAxQy7AitGwes4fUAOgADA6gh9QA6AA9LuENhA -DoAA8OVDzMALwA4u5ajvQA2ABYrAwN3AHvlwKULCGPlx6a+AQAwACZvpjefAD1gM/g3MAiwlHeKo -70APoAEQAMCi6i/BQAn4D5UAAAAAAADqQNhADoABtOw470AKYAsj4mjvQA+gARDsOO9ADoAApOtB -2EAKYAsd4ljvQA+gARBsEAQpICMU+VrrmeHADoAA4Q6ZAilGweuFfUAOgADA6lV9QA6AA9LvANhA -DoAAiuhDzMALwA4E4qjvQA2AAVoqQsIKKkDqMMhAD6ABEAAAAOy0fUAOgACk60HYQApgCwPRDwAA -bBAE4jzbwA+gARAAbBAQ4yewQA+YAJPoK7BAEHAMM9tQ6RfJQA+YAHLmOO9AEGAAGCciEYZ3JmIO -HflCLdJ/j9frvuPAD5gAxO/u5EAOgAGADwIA6ujvQBiwADjlwLhAEEAN+rGq7MGQABBQDvUl6Q0P -AgAPAgCwVQhVMuXtwEANAAEF4gDYQA+gARAAAAAAieGI4JiQj+DtENhAEBgMrenxyEAOgACA6ODI -QA+YAMjo4chAC8AKzmVfyMPDLBQRLBQQK0AM6xLRQA+YAFbvY5hAEGgNpOoT0UAR4AKW6RXJQBBw -DbTrFNFADoAAgOgWyUAQeA1k5hXRQBFgAv8tUurq+O9ADoAA5uwQkUANAAqdbeoR7sC4QBQADdqx -quzBkAAQEA7eLxIW4hTwP/q4AA8c+QXoE7lADoAApeYSyEAOgAPT6xHIQA6AA+PoEMhADoADsO8S -uUAKYAqrKVLqsJnpWs7ADQAGyR34+OpI70AOgAGw6NCwQBDAAsHowMhAEAgM/e/ByEAQEAzt7sLI -QBAYDN3tw8hAGLAAO+7AuEAQAA3asarswZAABtAO3uIA2EAPoAEQKhIWKRIVvP/lXJBAEAgCquoW -yR/5oA6VY/6yhXeFXiZyEupQ2EAOgAO05RTJQBAgA1XsrXxAEaACVe1Y70AKYAqE6ljvQA6AALDs -BNhAClgPiBz40x340ykSFChxGOpQ2EAOgAO06ZKYQA6AAOHunsxAD2AI2OidzEAKYAp1LhIUKxwQ -7uSYQA6AAMbtbHxAEfACru3uwUAKWA9RGPjDKIKX2mDrWO9ADoAAxO1Q2EAPoAAYY/77AAAAAAAA -AOr/38AQMAdfwKFlrgJj/enq/9/AEDAH3sChZK3y6jjvQA+YAMTtEJNADoAAs+4Q2EAKAATWHPiu -6qXjwA+YAGruVeHAD5gAoutWkcALuAcb5KjvQA1oC8orEhfmqshADoAIn+mgwUASMAKF6KnIQA6A -AcDqoJNAClgPKupAkMAPmADF6xCTQApYDyaKImWtf9og60jvQA6AAMrtMNhAC6ADoOIA2EAPoAEQ -AAAAAAAA6v/fwBAwB+3AoWWuhGP98WwQBOcL2CADyAEC5bh8IAPIAwLlINggA6AEAuXm2SADyAUC -aCZ55QDYIAA4CSJvKF7mANlADoAESOZW5UAOgAQi5kLnwBBgAeUoMOy0iAgiCH1XCKc5KZC9tJmp -InxXCuIgkUAQOAGlIiwceVcBuiJxVwfiJJBAD6ABENEPAAAA5dZ8QAn4D61j/6Vj/6IAAOXi2EAJ -+A+dY/+VAAAAAADlptlACfgPjWwQBoYnhm4nIhLqUNhADoADtOyFfEAQIANW4xDIQBGgAlXtWO9A -CmAKAdpQ6wDYQA6ABMDnEshAClgPBBn4UCghGOxFfEAQGAM26hDYQBAQA3bqfsxAD2AImOh9zEAN -AAH07FR8QA6AAKXrQ9hACmAJ7xv4Q+s+xUAIAAAHLDWeixDqZJhADoAAxuquk0AKWA7KGPhBhhIo -gn/rWO9ADoAAxO1Q2EAPmACm6BHIQA+gABgqco7qiobADgAMdCwxnh34N+sA2kAMkAzA6VjvAAWI -CcvtAOzAEAAMoQkCawkCawkCawkCaxv4JSkhGBz4LOx+zEAPYAm56X3MQBAIDDHvo7hAECANiu6g -uEAQCA2a7KK4QBAoDdroiOHADwgPD+iZ4cAPCA4O6e7rQA9gD4/v3etAD2AM7A3MA+zN7UAOgACx -DcwD7G3tQA6AAKANzAPsDIZACmAPcMDE6n/MQA6AANXrcM1AD5gAputY70APoAATInKO4oKGwA+g -ARAAAOKo70APoAEQbBAIFff36ijvQA+YALPTD+Vfs8AKMAmq5qjvQA0IAconqQziFPAgBHAAV4pT -KKEC6xDYQA6AAJAIuTjpFchADQAGmFt034hXCKcy6hTIQA8YBnfoZuRADoAAwOxgyEAPmACz7GHI -QBBAAqbsAdhAClgOcO4A2EAXSAyy7mfIQBAgDNHtbMBADvgPz5xo5rDIQBAgA6LrYchAFQACqupg -yEAQKAyRJibp6BDYQA6AAPAJjzjL+Rz32etlsEAQEAzW7mOwQBAgDPaXEesQyEAOgACl6W2gQA6A -A7DpEshACmAJcSxpDQ8CAA8CALHMLGUN4v/foAAwAHfRDydFAO9XsEAPmADX7Gx7wA6AAKXnfuPA -DoADsO3i4cAPIA7+7u2gQApgCWCIV6KC4i2gQA+gARAAAAAAAAAA5//fwAn4Du9sEATo4NhADoAA -kOkj0EAOgAAwKSQCKCQBIyQA4kDYQA+gARBsEATrANhADoAAxuwh0EAOgACgLCQDKyQA6iLQQA6A -AjfjJMBADoABiOgjwEAOgAGXKSUC4qDYQA+gARBsEATpMNhAEEgMgekx0EAOgACg6jDQQA6AAJDp -MtBADoAArOoz0EANAAh462jvQA6AANXtMdFADoAAkOky0UAOgAGo6jPRQA6AAMDsMNFAEKACo+wB -2EAKWA4O5zfSQA6AAODuMtBAD4AGeOY20kAQQAzx7zvSQA+ABmjmNdJAD4AGaOY00kAOgAJo5jPQ -QA+AD/jvOtJAD4AP+O850kAPgA/47zjSQAgAAAkAAADWoOo0kEAR4AKy7EDYQApYDfQkNAvlP9BA -D4AISOg60EAPgAJY4j7QQA+ACIjoOdBAD4ACKOI90EAPgAiI6DjQQA+AAigiNAziZJBAD6ABEAAA -bBAE2zDkI9BAD5gAxOog2EAPgAhI6iHQQA6AAJDpINBAECACougi0EAKWA3Z4kSQQA+gARAAAABs -EATbMOQj0EAPmADE6hDYQA+ACEjqIdBADoAAkOkg0EAQIAKi6CLQQApYDcviRJBAD6ABEAAAAGwQ -BOMl0EAOgABA5CLQQA6AAILoI9BADoAAkOkg0EAOgACo6iHQQA+ACzgrJATiYNhAD6ABEAAAbBAE -aCEhaCMmaCQraCUwaCY1bykKbigH4uLYQA+gARDiANhAD6ABEOJSe8APoAEQ4kJ7wA+gARDiINhA -D6ABEOLm2UAPoAEQ4qbZQA+gARBsEAwjIgcjMg4V9w8oMr7lX7OgCEgECBj3HSuCAOsQyEAQCAyo -6hHIQBAQDJjpEshAEBgMiCgWA+gQsEAQgALR6NDIQBAIDPHv0chAEBAM4e7SyEAQGAzB7NPIQA6A -AKXswHvADoADsO1I70AKYAinjlfqOO9ADoAAsu0QkkAPGAxE7szkQA74D//vyMhADoAA4ezIkEAK -AAMb46jvQA0AAkrsH3rADxgFqu5V4cAPmACi61aRwAu4BV/kqO9ADgAAyuIA2EAPoAEQKxwQ46rI -QA6ACJ/poMFAEjACheipyEAOgAHA6qCTQApYDWvqQJDAD5gAxesQkkAKWA1niiJlr7/aIOtI70AO -gADK7TDYQAugAeHiANhAD6ABEC4yuu4QyEAV2AzT7RHIQBXgDMPsEshAFegMs+sTyEAJ+A79AGwQ -DoMnDwIAgz4oMr7iFPAgB8gECBj2zSuCAOsQyEAQCAyo6hHIQBAQDJjpEshAEBgMiCgWA8Cl7xGw -QBCAAtHv0chAEBAM4e7SyEAQAAyB6NDIQBAYDMHs08hADoADsOzbesAKYAhZ6jjvQA6AALLtEJJA -DoAAwO4g2EAO+A+f6TrPwAoAAs/jqO9ADQACSuxqesAPGAWq7lXhwA+YAKLrVpHAC7gFE+So70AO -AADK4gDYQA+gARArHBDjqshADoAIn+mgwUASMAKF6KnIQA6AAcDqoJNAClgNIOpAkMAPmADF6xCS -QApYDRyKImWvv9og60jvQA6AAMrtMNhAC6ABluIA2EAPoAEQLjK67hDIQBXYDNPtEchAFeAMw+wS -yEAV6Ayz6xPIQAn4Dw0AAABsEAgY9oLaIOgA7MAPmACRCQJrCQJrCQJrCQJr6Uh6wA0ABESZERv2 -gJsQGPaBizGbE4kw6RLIQA6AAMLtM7BAE/gMiO0VyEAPmACx6TKwQA6AANXpFMhAD6AAGOIA2EAP -oAEQHPZ1HfZznRDsEchACfgPu2wQHoMn6lDYQA6AA7Ds5nrAD5gA1OM+sEAKYAgD6krhoBnQAiSq -Mykyvg8CAA8CAOmcl8AOgABx6XnnwA6AAIDpeObADvgPX+U0zMANGAD4KTK54hTwABnoA8nsxXqA -F+AD2Rn2WyrCoSmShua0esAXMAPM7MG+wA8ICpqqmeYA7MAQGAOp6qCUQBBQAfwqnQEqrIDtBXrA -D5gAkQkCawkCawkCawkCawkCawkCawkCayyhKR72SRj2SumEeoAVMAjc6RLIQBA4DdrvoLBADoAA -R+gQyEAOgA6B6BjRQAwQDdDo/+HADwgNDeT/60APYA3c7xHIQA9gDe2dFAnqMCQ9A+kVyEAQAAzy -6WN6wA6AAIDoG8hADugC4OgayEAOgAPQ7R/AQA6AAdHtFdNADoAAhekYyEAOgAae6RbTQA8ID4/v -HMhAD2APj+8ZyEARgATjKSILLEED7BDQwBBQABktIRstFSEpMrspFhMoMrooFhIvMr0vFhUuMrwu -FhTrGO9ADoAAx+0g2EALwARjiSeJniqSvuYA7MATgALx6xCToA5YBAoa9gCOoO6wyEAQCAza7bHI -QBAQDMrssshAEBgMqpqz6x+TwBAIDK/s8LBAEAgCi+yAyEAQEAyf6oHIQBAYDP+fg+mCyEAQiAKb -CQJrCQJrCQJrCQJrGPX7HfXuHvXtLhYkLRYlLDK7LBYn6Tq3QA+YAKLpFspAEIgCu+iAtkAV6Azj -7hnKQA6AANXpPLdADoAAwukYykAPoAAYHfXL6x+TwA+YAKLo07BAEYgCy+jDyEAQEAz978LIQBAI -DO3uwchAEAAM3e3AyEAQCAK77UqgQAv4DG4nFMvlSsBADoAAYCYUwiYUwyYUxCYUxeYW1MAQGAPj -5hfUwA6AD5/mGNTADoAAouoR1MAT+ALR5hnUwA+YAKLmGtTAEAgCvekQ1MAUAALu6RzUwBOwDf7v -HtTAE6gNjugd1MATuA3u7h/UwBIIAp3okLBAEYgC3ejQyEAQCAz579HIQBAQDOnu0shAEBgMmenT -yEAPmADN7UugQAv4DEYpMsQlRQsmNrngme8gA/AACYsniL4ojQQvgAAAeRoFmQMJ+QHpCYbADoAA -IOmA0EANAAB/ZJBjJTbE5j7PQA+gARDiANhAD6ABEADkM5hACfgOJusQk8AV0Azp7rDIQBXYDNnt -schAFeAMyeyyyEAV6Ayp6rPIQAn4DjTqKO9AC5gIN+IA2EAPoAEQJja+4gDYQA+gARAAAAAAAOqw -kUALwAmPJTbEJja+4gDYQA+gARAAAGwQBIYnHPWG6lDYQA6AA7DmbrBACmAHEekpu0AQWAyyLEEB -6kDYQBDYC9LqmutAEDgAS2AAAdqQ6Ld5wBB4ABsE1RHoVetACAAABsBQG/V27DPAQBBgDfLuLbhA -DoAAcOk3ecAMcAqg6TPIQA8ID4/gquHAD2AO/ucywEAPYArq7MZ5wA9gCrrqMMhADoADsOpQ2EAK -YAbxKzwQ7EySQA6IAI7iSJFAD5gAouhV60APmADi5TLIQBBAAlTtWO9AC5gJmuep0kAO+AjB7KjS -QBWwDLYrpAfqRrtAD5gAOitANwiqEQuqAuo90kAPgAqo6jzSQBBQDMQpQDgtQDkszPjrSpNADwgJ -ieowk0APYAnZ6T/SQA+ACZjpPtJAClgLsoxK6ljvQA+YALLsNdBAD4ANyO000EALuAPNKjQr6o7t -QA6AACDuOtJAD6ABEAAAAGwQBIUnhV7oU7dADoAA4eo04cAOgABgpFTn/9+ABZgD+ChCvytdBOnw -2CAHKAMoKrAALAoE67CUAAR4CprvknnAD5gAlugZ2UAYeAA8AJAECg0bf9cDsZnHnwCRBOmX4sAP -oA0O5XfjwA9gDdrtsNRAEBgDxyjFgujDxEAQEAN343LMQA+YAGnvc8xADQAGyiZGwOtDmEAPmACi -67iWwAuYBSwpUrMoQr/AouqZ60AOgAAg6VPPQBAIAojoT89AD6ABEAAAAAAA5njvQAn4D8TqQNhA -EAAM0uxAecAOgAOw7ijvQApgBokmRr8nRsDiANhAD6ABEAAAG/T9HPT96ijvQApgAX1j/4YAAAAA -AAAA5k/PQA+YAOLnQMzAEAAM0upA2EAOgAOw7D94wApgBnfiANhAD6ABEGwQBIUnhV7oU7dADoAA -4epD4cAOgABgo1Pn/9+ABZgD+CgyvytdBOnw2CAHKAMoKrAALAoE67CUAAR4CprvvXjAD5gAlugZ -2UAYeAA8AJAECg0bf9cDsZnHnwCRBOmX4sAPoA0O5XfjwA9gDdrtsNRAEBgDxyjFgujDxEAQEAN3 -5HLMQA+YAGnvc8xADQAGyiY2wOszmEAPmACi67iWwAuYBN4pUrMoMr/AouqZ60AOgAAg6VPPQBAI -AojoP89AD6ABEAAAAAAA5njvQAn4D8TqQNhAEAAM0uxreMAOgAOw7ijvQApgBjsmNr8nNsDiANhA -D6ABEAAAG/SvHPSv6ijvQApgAS9j/4YAAAAAAAAA5j/PQA+YAOLnMMzAEAAM0upA2EAOgAOw7Fp4 -wApgBiniANhAD6ABEGwQChj0ou8rsEAOgACl7Ol4wA6AA7DuILBAD5gA0uj/5UAKYAYe6Sm7QBBY -DLKMQepA2EAQ2AvS6prrQBBQAEtgAAQAAADakOh4eMAQeAAbBNUR6FXrQAgAAAbAUBv0guwzwEAQ -YA3y7i24QA6AAHDp93jADHAKoOkzyEAPCA+P4KrhwA9gDv7nMsBAD2AK6uyHeMAPYAq66jDIQA6A -A7DqUNhACmAF/ScUCicUCScUCCcUBycUBicUBScUBCcUA+cS0EAOgA/P7BzQQA6IAL7sENBADoAA -ouoR0EAPYAu16zLIQA6AAFHlG9BAEbgNlOkf0EARsA2E6B7QQBGoDWTmHdBADoADoyoUIOoR0kAQ -gALB7xOwQA+YAKLvw8hAEBAM4e7CyEAQAAyx68DIQBAIDNHtwchAEIACs+wQkkAQ4A2R6RLSQBDo -DYHoE9JAEPANYeYU0kAQ+A1R5RXSQBBAAmTtaO9AEMACVO5Y70ALmAh+K0wo56nSQA6AAcDnr9JA -D5gAOu5438APgA147a7SQA+ADdjuqNJAEYACqu090kAPgA3Y7TzSQApYCp8vQQHAoOyB2EANAAMf -21DqaO9AEMACiug10EAPgAiI6DTQQAu4ArYqNCvqie1ADoAAIOk60kAPoAEQwKHqMNDAEdACsuox -0MAOgADG6jKQwApYCorAqOwC2EAJ+A+zbBAE5VfjwA+YAKLsj3tADwgH5+t2kcALuAJo5qjvQA4A -ANriwNhAD6ABEADbMOWqyEAOgAif6aDBQBIwAofoqchADoABwOqgk0AKWAp060jvQA+YAMfqYJDA -ClgKcIoiyKbiANhAD6ABENog62jvQA6AAMrtMNhAC5gO6OIA2EAPoAEQbBAI3lDnANhADgAH9CQi -6C8tBC/8oHTxZmRgY+Xce0APmAAn6wDYQAgAAAgAditH2hDpUbBADoABwOkRyEAQEAyF6BLIQBAA -DNXtEMhAEBgM1e0TyEAYwAA8pLztoLhAEEANzLGq67GQQBIwCM2EQOsA2EAVyAhP0Q8AAAAAAADi -eO9AD6ABECNUACdUAedT0EAPmAC051LQQBAgAqXsAdhAClgKPeIQ2EAPoAEQAADq/9/AEDAHzcCh -ZK+wnxWeFCPkACfkASfkA+eL7UAQIAKu6+LQQA6AAcDrSJBAClgKLo4U7xWwQBAIAiLu5JFACfgP -fmwQBocnh34V86Qmcr6CUONRsEAQEAxF5VOwIAAwBAbRDyJyuuN7t0AV4AxH5X23QA+gARBsEBKD -Jw8CAA8CAIM+KDK+4hTwIAmwBAgY85OLgOsQyEAQCAyo6hHIQBAQDJjpEshAEBgMiCgWA+kTsEAQ -gAJR6VPIQBAQDIHoUshAEAgMcedRyEAQAAzxn1AlMuguPQQu7KDn/9+ABBgIXsBA5uZ7QBGAAvHt -AdhACAAAB29CR+xgsEARAAKh7KDIQBAQDJbposhAEBgMhuijyEAQCAy2m6HrANhAGMAAPaW87aC4 -QBBADcyxquuxkAAFsA7NhVDtAdhAFcgIXslO5EbjwA+YAKLstXtADwgG5utmkcALuAHL5ajvQA4A -APonNvviANhAD6ABECscEOSqyEAOgAif6aDBQBIwAoboqchADoABwOqgk0AKWAnW6lCQwA+YAMbr -EJNAClgJ0ooiZa+82iDrWO9ADoAAyu0w2EALmA5NJzb74gDYQA+gARAuMrruEMhAFdgM0+0RyEAV -4AzD7BLIQBXoDLPrE8hACfgOzwAAAOp470AQMAfNwKFkr0AvFhjuGclADoAAsOvx0EAQIAKv6/PQ -QA6AAMTs8NBADoAAsOvy0EAOgAHA61iQQApYCbAvEhjkQZBAEMgM4e/0kUAJ+A7/AGwQCBjzRIuD -6xPIQBAQDKjqEshAEAgMmOkRyEAQAAyImBCFQhzzPe0o70AOgACl5VXjwA6AA7DuVeHACmAEuekp -u0AQWAyyjEHqQNhAENgL0uqa60AQaABLYAAHAAAAAAAA2pDoEntAEHgAGwTWEehm60AIAAAGwGAb -8xzsM8BAEGAN8u4tuEAOgABw6UJ7QAxwCqDpM8hADwgPj+Cq4cAPYA7+5zLAQA9gCursIXtAD2AK -uuowyEAOgAOw6lDYQApgBJfaIOswkUAQgALB7QHZQA+YAOHtbetADoADk+0yyEAQgAJk6RDRQA+Y -ANbpEdFAEGgN8e8T0UAQYA2B6BLRQBBwDZHpFNFAEHgNgegV0UALmAc2J6QGJ6QpJ6QtJ6Qx56XT -QA+AC3jnr9JADoAAweyn0EAPmAAq7K7SQA6AA5rpKNJADoAA8u8r0kAO+Ajv7iDTQA6AAIXoKtJA -EBAMpCskLOon00APmADF6yTTQA+ACqjqJtNAEQACtOook0AKWAlK7FiQQA+YAKbtUJFAD5gAse0l -0EAPgA3Y7STQQAu4AWPqI9NAD4AOqC4kMuIA2EAPoAEQbBAEhicPAgCGbiRtA+VimEAQIANm52CU -QBAADWYjCgAAMAQGCBt/h0IpQYKwmQkJT+lCxEAOAAN56FO0QA+YAKLpcLxAD5gAs+0Q2EAPoAIT -4N3wwA74D+8O3QPsUrRADygJ2elw1EAPoAAY5VyQQBAIAjPkTJBAHUAEIy5wgMnkG/KxHPKy6ijv -QApYDzLiANhAD6ABEIon6qCRQAvABqbiANhAD6ABEAAAAGwQBhzyrh3yru/AsEAQOA2y7xDIQBAI -DOzuEchAEBAMzJwSiTQo0pXrC4JAFNAMbewoqEAMOAmQqYjvKahADwgImKhm72nAQBBIDILoachA -EOAMkulsyUAQQAzi7mjIQBAQDIbsaMBAE6gNkull08AToA2i6mTTwA4AD7ga8pIookrs1LLADQgA -eOmpsMAQIAPd7L7hwBQADd2q6uIU8AAHaA/JLdw37qqzQA+ADdSk369Pr90f8oS03eIU8AAHUAve -D78K7qmzQBTYDP/iFPAABrgP/tpg6zjvQA+YAMTtWO9AC4AOJIpn6zjvQA+YAMTqoJJAC8AIAe2k -sEAOgADM6BN6QA+YACrvIbBAD5gAoeMgkkAMOA7Q7uSQQA+YALPo/+VADwgODu8hyEAPYA3t7STI -QApYCMTrGO9AETACouxg2EAKWAjA6xaQQA+YAKPsYNhAClgIvNpg6yjvQA+YAMTtMNhAC4AOA+Ko -70APoAEQ2mDrOO9AD5gAxO1Y70ALwAmY4qjvQA+gARDaYOvB2EAOgADB7RDYQAvADqJj/9AAAAAA -AADqaO9AEMACu+wA2EALwA6bY/+3AGwQDBryRBfyRB/yRB7yRR3x9OZEekAPmAAj5CCwQBBADbLs -ANhADoABhuWTekAPmAA15ASCwBFwBYsY8jsIuAqIgCsKYwqAAAAAAAAALFKBDcwCLFaBAksRprsp -ssAKmQEptsDqOO9AD5gAsuwA2EAKYACc4gDYQA+gARAAAAAAAkkRpZkvlusuluYokoENigIqloEH -iAHokcxACfgPyRvyI+oksEAQKAzCLLbf6rDOwAn4D7MCTRGl3ewkyEAXIAzd7SXIQAn4D57oJLBA -ECgMkgJPEaX/KfbhKPbiwODu887ACfgPgSggCdfA5iOwQA0QAMjH3+rI70APmAC27P/fwApgBOsu -OufsANhADSAH+mTDUO3/38AO+A/P22DqeO9ACmAE4wGEBC4KAei64cAOgATQ22DmANhADoAAwOJE -4cAOgADwpUTlS7bAEHAH9+IU8AAUgAj3wMEZ8fYb8fTrW+tADygJlQy5OClG6wDoEQjYAihG6epK -zsAJ+A7pAAJEEaVEhSSGJespuEAPmACs6J55QBBIB8VkUlfAoWShtyxC5OpFtsANEAV7BssM5aro -wBAwBbywqi9G6y5G5ihCgQ2JAilGgQeIAShGgQi8ESxG4QGEBAupGClG4gqIV+hDzsAJ+A6AiiPi -FPAf87AJqxzx0uIU8B/zWAusKCAJCgYGCKY4GPHO6wDZQA8IBCSlRKhm6mjvQApgCOQc8cnZsKy7 -ebsBsaod8cfsANhACmAErepo70APmABb60x5QApgCNod8cHsANhACmAEp+pY70APmABr67TYwApg -CNQLbwzgXuHADPAP8A/uAi5G5y1KS+1IzsAJ+A3tAAAAABzxiRvxsyzCqeopuEAUEAy7pMzoJahA -DwgMnKy7KLUI4qnhwA6AALCmmSuW0BvxqgoKQAuqAgCqEQqIAuiRzcAJ+A2lKSEG76h5QA8ICySm -uyyywB7xoRXxoerK5UANAAF57fl5IAl4AQnm6XkgCjgCCWiTIeqwzMAJ+A1sLTrn6gDYQBAwB23A -oWShZ8DR7ADYQAn4Dgol5uUm5ufoRJFADoAAkeBJ70AQgAJE4JrwwA+gAhjgmPDAD6ACFACZGgiZ -AgqZAu3K60APYAn56ejOwAn4D6MAAAAAZLHk22DqWO9ADvgP3+z/38AKYARRLjrn7ADYQA0YAXpk -whrt/9/ADvgPz9tg6ljvQApgBEkBhAQtCgHov+HADoAEcNtgwGDsANhADoAA4OpLtsAQcAfl4hTw -AA5ACOXAwR7xXhjxXOio60APKA7qDI44LkbrANsRC3sCK0bp70rOwAn4DIkAAAAAAOIU8B/rgAu2 -Y/1qAAAAAADiFPAf7TAJaGP9nKbLpariFPAf7ZAJy+qhkEAJ+A2qACXm5egQ2EAPoAIUAIga7crr -QA9gCPjo6M7ACfgOxgAAJubn6ECRQBCgApTpENhAD6ACGeCa8MAPoAIYAJkaCpkC7crrQA9gCfnp -6M7ACfgOk8ff7P/fwAgAABEAAAAAAO0Q2EAOgADA22DqeO9ACmAEC5oXKxYIHfE37ADYQApgBAcd -8TXrFchADoAAwOocyEAQQAyx6hewQApgBAAvEgzpUnlAD5gA2+yo70AOgACA7ojvQBCgB4rqmO9A -DQAJzOzo70APmADa2vDrFbBACmAEAS066AGEBOwA2EAPmADrDqoY6LvhwApgA/uKF+wYsEAauAEL -6xbIQA6AANGdGe2O20APmAC87ADYQApgA+QtOujsANhACmAD7+0WsEAQSAzhAYQE6LrhwAn4C/cu -OufsANhADQgCJWTAVMDR7ADYQAn4Di8AAADoFNhADoAP3+gWyEAJ+A+p4hTwH/tgC5tj/1wAAAAA -AOIU8B/xwAu2Y/4yAAAAAADiFPAf3AgLvmP7fMff7P/fwAgAAA8AAADtENhADoAAwNtg6ljvQApg -A7+aEZsSHfDr7ADYQApgA7sX8OAd8OnrEMhADoAAwOobyEAQEAyx6hGwQApgA7TvG7BAD5gA2+yo -70AOgACQ7pjvQBB4B5pkoIDs6O9AD5gA19rw6xCwQApgA7YtOugBhATsANhAD5gA6w6qGOi74cAK -YAOw6hGwQBAQDMHnuO9AGfgBCysKAZsU68jvQA6YDtjsANhACmADmS066OwA2EAKYAOkjRQBhATo -v+HACfgNOgAAAADKXuwQ2EAJ+A7cKwr/5xTYQAn4D8F3s4Nj/3gAAAAAAAAA4hTwH+dIC75j/OQA -AAAAAOIU8B/1YAtuY//EAGwQBBjwsdMPJIIRZEEG6bd4QA6AAHBtCDYqkpcmgu2qegmqEapmhmex -d+ZusEANAAJi62q2QBVoDMbsz5fAELAIKyxmrS2CEeIU8AAGSAnXY//CAO8A2EANeA7T5Wq3QBXY -DMaLMYow7hDYQBAYDNPsvOjADoAAQOWl6MAPUATO5e/mwBAQDMPlANhAEUAJTyRivC9ivQTMDO/d -6MAOgABA7eXmwA9QBM51QAcsYsawzCxmxuRqtMAWWAxWwPDuENhADoAA0OW16MAPaARK5O3mwA9Q -D17lANgf+1gP/e1ttMAWYAz27DOwQBAQDLPAoO+76MAPaAzc7OrmwA9QBb7iFPAf+ggPpSRi1rBE -5GbNwAn4DzTRDwBsEAgjIAckIhjspnhADoAApeMDgkAOgAOw7kCwQBAgDdTvRbhACmABxilABSgK -ctMPeYMH4gDYQA+gARAc8F+PSO1EuEAOgACl5QaGwBAADOTlBfJAEAAM/+MQyEAOgAOw5RHIQApg -AbbaIOuA2EAPmADD7RCRQAvADRrtBXhADQAEWowgwODuochAD2AM3JygG/BL6BSwQA8ICcOrmeiQ -yD/8kAIGiifAsewA2EAOgADR6qCSQAvAAhXiANhAD6ABEAAA6ijvQA+YALXs43hAC8AM4+IA2EAP -oAEQbBAIE/A6JzKN5xbIQBDIDHfApexzeEAOgAOw7XjvQApgAZHiFPAgEIgBN4QW5SiTQA6AAGDl -FchAE2ACROQUyEAOgABQ5P/fwAgAAFLHjQjYAZgyiTjKlMCl7GJ4QA6AA7DtMLBACmABf4s5jTid -sIw468HIQA6AAKCaOJo5iC8uPCCegOg5yEAQKAzxnzieL7FV4hTwAAnICFeKFrFL6qixQAvAAZ4Y -79gT8BAogpgjMoeqiOwBeEAPCAiYqDOIPOo6sEAPmABKjjAvMAWKoJoQ6TKwQA6AA7DpEchAD5gA -1OkgsEAMAAiA6RLIQA6AAKXoE8hACmABW4867jW4QBMICC8pCpZ54VYqCpd64VArCpp74UosCpnm -YZBAEsgEzi0KmH3hTi8Km3/hd40yZN8h4hTwH/i4A+0Y7/DiFPAf+JgP2GTQ58CwbQgQLvoAfeAt -DY0U67iQQA0AA+1j/+iNMOpQ2EAOgAOw7F53wApgAT1j/xoZ7+PpO8hACfgPsMegfaALtLvtTe1A -CAAABrG7DR0UZd/32jDs/9/AC8AJE2P+ros8f7eCihTrMrFAC5gEYSwxKyo2Ex3v0+07yEAQGALM -DCwS7DrCQAn4D2HpFbBAEHAMguzcd8AOgACl6wPYQA6AAPHpiOjADoAA4Oj+5sAQEAzS72jvQApg -ARlkYEQb78OKInugBAosU8nJKyAH6ijvQA6AAMHrC4JADoAA0Ou4kUALwAvp0Q8AAADrANhACfgP -ZOwok0AOgABg7BXIQAn4D4zsO3fADoAApe0gsEAOgAOw7kDYQApgAQEqIhDrQNhAChAETdEPAAAA -bBAEijelQuqusEAOgADALCQAI0AAw5rrwtgACUgIk2QxOwRFAm0IECNQAbFX1XDoeO9AEFAEk8gy -Y//oAClwASx0ANMP4wDYQBEABLnJmMAwbQgRJ1ACsTPlUZBAEGAEt8h0bzUCY//nqDvssdBADQAF -c8Bw6QbYQA6AB8rrk9hAD5gAWOjy2EAZqAAzI1ABc4sMc7MJ4zCVwAgAABkAAHObDHPDCeM5lkAI -AAAJAAAjPMkHdwrjd+LAEAgCVWAABgAAAAAAwHDtANhADoAAwOvi2EAIAAAcLpAA5JjvQBAIAons -XOtAD1gE6LHdaNQ3I0AA6MzhwA14D0PoANhAEdgEs8BQbQgc6IGQQA8YBVWkieNV4sAQAA055VCV -wA14C6N7MbJj/9zAIOyizUAQEANq52LCQA+gARDZQOUA2EAJ+A+YJUABLEQA48jvQBEIBLXJWdhA -5UjvQAn4DvUlQAEsRADjyO9AEDgEtWVf5OhI70AJ+A72AGwQBBvvSws7CyOwgOuxskAPmACi7Djv -QApYBXuiOsO9K6QAG+9EGO9EDUQRq0uoRCRAgOuxtcAQCAKq7EjvQApYBXLA0KQ8os4t5ALiwpBA -D6ABEGwQBIYg5BDYQA+gAhMAQxp2MAjiANhAD6ABEAAGMwKTIOI470APoAEQAAAAbBAYgjcb7tmC -LuzCd8ARAAKh6wDswBAgA5LqEvBAFAACOe8yuEAQCA3j7TC4QBAYDYOYECswBJsRKjAFmhIpMAbp -E8hADoADsOg3uEAOgACl6BTIQApgAGkc7xnvOrhAEEgN4+04uEAQWA2DmBArMAybESowDSoWAikw -DukTyEAOgAOw6D+4QA6AAKXoFMhACmAAWiQtBeoQkMATIA2E6BTTQBQAAlTkQLrAC5gGDeoQkMAR -oAKx7BDYQAuYBaUpUGDsANhADQABqQVZAm0IDCqQYbHM6ZGQQA0AAHpj/+zqEJDAECgDsuuwlsAL -mAWY3EDqEJDAEBgDsuuwksALmAWUKhxA6xCSQAuYBTvBsA8CAA8CAA8CAOoQkkAYsAA77KC4QBAA -DbOxM+qhkEAQkAi84gDYQA+gARAAAAAAAADq/9/AEDAHy8ChZK/k7N12wA6AAKLrA9hACmAAKOIQ -2EAPoAEQAAAAbBAGKCAAw5APAgDrOO9AEUgImCogASwKWOMddoAJaAjKLQp44hTwAAkQCNouCkJ+ -oQ8vCmJ/oQnirt/AD6ABEAAALCAC5gDYQA0QBNzD7esSyAAVqAjsGe7D6sjvQA6AAFDvANhADoAA -QOkRyEAQAA15Cg1H6gDYQBFoBNcb7rrTDw8CAOuwvEAPmADLbQgS6qGQQA0ACasrwIHswZBAEDgE -22P/5okRqantAt5ADQAICQOZDK2ZZpBz6v/hwBAIAlXvn+tAGXAEFYgS5QDYQBAYAkTvgtBADPgK -8OqA0EAPgAn46YHQQBAYAojoEshADoAA8LFmomsssALqyO9ADQABzOIU8B/7WA7syMx+qR0qsAPr -sZBADngPamRReeIU8CAP8AIF4hTwIBBAAwXGSsCl7Oh2wA6AA7DtSO9AClgP1eJI70APoAEQLCAC -5Ih2wA+YAGvtIpBADtAEoOkA2EANAAKMbQgMLiADsZniIZBADQAAfmP/7AkIQAgPBgmPO+IU8CAJ -GAEPwCAr0ADTD8u85djvQA6AAHDiEMhAFAAN9AsOR+oA2EASyAT+60C8QA+YAMRtCBLqoZBADQAB -KyvAgezBkEAQ6ATrY//mxirApeyGdsAOgAOw7SjvQApYD63RDy6qQKOpfpHhZq/eK1ABZL/YaqsV -7KqXwAgAABQAAC6qQH4xxStQAWS/v9yg6w6GwA+YAFzqANhAEjgE/utAvEAPmADEDwIA0w9tCBLq -oZBADXgJqyvAgezBkEAQSATrY//hAAAsqkCjq+IU8B/76AjLZq91aqsS7KqXwAgAABEuqkDiFPAf -+yAI49ygpniHEOxV4cAQCAIi5cXrQA9oB3LlgNBADxAF1ytQAGW/D2P/OgDAQMaK5ITmwAn4DpIA -AAAAAADi0LhAFAAN5OwA2EARoAQu30Bk7xAu8IGxzO/xkEAXoAguo8niFPAf9/AIqe3RkEAN8A9s -assS7MqXwAgAAA8A4hTwH/cQCKOx3eyw0EAQCAJr4hDYQAn4Do0AAAAAAADqyO9AD5gAsuUA2EAO -gADw5ADYQAn4DfGLEu9K7UAQCAJE6rDQQAn4D2qNEu+u7UAQEAJE7tDQQA+ADPLs0dBACfgPUAAA -AABsEAgjIhgPAgAvMAUkCnLuMLAAA/gJ9CoKBewwdsAOgAOw7TjvQApYD0cvMAUoCnPiANhAEKAE -T+lX2AAHiAiP4hTwAAgICJ/qUNhADoADsOx/dcAPmADT7jCwQApYDznKLIM4IjAHJTIY7D11wA6A -AKXiAoJADoADsO5QsEAQIA3V71W4QApYDy8oUAV4QzXRD40g6lDYQA6AA7DsXnXAClgPKC8wBekH -2EAXKARPefHdijjrANhADoAAwO0g2EALuAIW0Q+PWOzbdcAOgACl7VS4QA6AA7DuULBAEAAM/+IQ -yEAOgACA6BHIQApYDxXaMOuA2EAPmADC7RCRQAvACnnu+nXADQAFqo0wwMDsochAD2AN7Z2gG+2r -6BSwQA8ICcKrmeiQyEAPoAEQgjgvCnQvNAXvJdBADoAAIe81uEAJ+A8HiTgoCncoNAXoldBADoAA -Ie81uEAJ+A7vAAAA7Kl1wA+YAKPrANhAC8AKPdEPAABsEA4oIAUpCpXlANgADAgImCkyEhftq+nq -gwAAoAK56cuDIAxIAQriFPAgDAgBC4QnhE4sIG7tQphADoAAkeXR0UAQAAzj7kfMQBQAAm3p0tEg -BtABDBjtR+shsUAQYAyS6yTJQA74CcLsJdBADvgPrexJdcAPKAmp6SzIQBAADNLqgbZADoAA9Olx -s8AXMAOI6N3hwBcIDYjlYdVADwgKmqqZ7BbIQBB4AfgpnQHpkJRACAAACimdAymcgC6QByuRKegD -dcAPYA397RHIQAwQDuDoEshADwgODumydcAPYAvr6RDIQA9gC8ubFArqMJUX6hXIQBAQA5TpEfNA -EQACoQrSagmCagqSaglCagpSagkCagoSatog6xjvQA6AAMTtINhAC7gLZtEPAAAqQpBkryMc7TaL -NwyqKOoQyUAQgAK76xHJQAuYAcwsEhAd7N4e7V7rqO9AEAAM8+oRsUALmAGBH+0nLjISjTcP7gLu -MslAEIACPeo470ALkAaO4hTwP/agAVrqOO9ACAAANoon6qCRQAvAAQKLLMfO5SXDQA8oC8vrLMhA -CfgOadow6wDYQA6AAMDtINhAC5gBxNEPWyabE+1CC6gRqDPKrgzqMCsyhYuwsKOsu+o470AKYARe -KnKb6xDYQA+gAhMAuxoLqgLqe81ACmAEi2P+WMCn6xDYQAvAAbcsMn/sM8xACfgOSAAAbBAKkhjl -GcggIzgBNOIA2EAOgABg59PYQAgAAEMAAADiFPAACTAIe8DQJmzq667fwBCwAkTsANhADoAA4I8Z -C2sMqzuvL+oYsEALmAQfAqIIZiEV4hTwIAiQATSjbyvwAGS/u+IU8AAHEAh7akG4r0Xr+O9ADoAA -0G0IGi6wAbHa7ajvQBAIAsvryO9ADQAA3nfhCHXKAmP/3nfpjCjAASsKAOvA0EAQCALq7MGQQA0Y -ChjiFPAAGwgKTsDgbQgTse6t66+5KZAB6rGQQA0AALl0qgVj/+UAsboEqQwJujivqOmhkEAOgACw -ppbrgNBAD2gElOuY7z/6KAM+ZOKgL8AAZPKaFezbJVLrmRDqULggFnABPuIU8AAWMA765RLIQA6A -ALBtCB4L6QzrsZAgE4gBCYoSapIzqrqsteVQuEAQAA2qdakwY//aK/ABwMAs9ADs8ZBADRgAq+IU -8CASUAI07QDYQAn4D1XRD4oSrLUlUACquiqgAIsQ7xfIQBCgB6XvENhAEHAHWu8A2EAIAAAGx/9k -8ggV7LcPAgAlUufA8OpQuEAYUAEOKBIHeKEH5RewQAgAADDlFshAD2gJ/u/xkCAO4AEJ6hawIBAg -Ajms9ar65VC4QBAADarv6ejAFwAEpXpTD+8Q2EAQcAda7wDYQAgAAAbH/2TxoxXsng8CAA8CACVS -rcDw6lC4QBhQAQ4oEgd4oQflF7BACAAAMOUVyEAPaAn+7/GQIAugAQnqFbAgDaACOaz1qvrlULhA -EAANqu/p6MAXAASlelMQ7xDYQBB4B1rvANhACAAABwDH/2TxOhXsgw8CAA8CACVSlcDw6lC4QBhI -AQ6IF3ihB+UXsEAIAAAw5RTIQA9oCf7v8ZAgCGABCeoUsCAK4AI5rPWq+uVQuEAQAA2q7+nowBcA -BKV6UxDvENhAEHgHWu8A2EAIAAAHAMf/ZPDSFexpDwIADwIAJVLFwPDqULhAGEgBDogXeKEH5Rew -QAgAADDlE8hAD2gJ/u/xkCAFIAEJ6hOwIAggAjms9ar65VC4QBAADarv6ejAFwAEpXpTEO8Q2EAQ -eAda7wDYQAgAAAcAx/9k8GoV7E8PAgAPAgAlUq/A8OpQuEAYSAEOiBd4oQflF7BACAAAMOURyEAP -aAn+7/GQIAHgAQnqEbAgBoACOaz1qvrlULhAEAANqu/p6MAXAASlelMT7xDYQBCQB1rvANhACAAA -CgAAAADH/2X8nOL/38APoAEQ4hTwIAZgAQTAka+dwLDr0NBADoAA4OuRkEAOgADQprbrROjACfgM -cYoWrPUlUACq+iqgAGP+BOX470AJ+A2VAIoVrPUlUACq+iqgAGP+VACKFKz1JVAAqvoqoABj/qwA -ihOs9SVQAKr6KqAAY/8EAATrDAuuONngr5jrkZBADoAA4Ka27oDQQA9oBLTuANhACfgMBYoRrPUl -UACq+iqgAGP/OAAAAAAA6ejvQA9oC07rqebACfgPxGhBHOkQ2EAJ+A9LAAAAAADiANhAD6ABEOkA -2EAJ+A826QDYQAn4Dy5sEBQoMATsNbhAEIAMQhnsCes2uEAPCAiI7IjrQBA4DKTsN7hADwgIiOsA -2EAPYAi46IjhwBBwDKrqHMlAD2AIyOwA2kAPKAiY6BvJQApYAkEoMAHmNLpADoAE5+gJgkAMcAeH -6GuAQAwQBYLvWO9AEVABmCsWGukZyUANCArX7O53QA6AAKLrA9hAClgNKu502EAIAADFAAAAKxYa -6RnJQA0ICHdkUsTiFPAgFkgBBekbsQAFIAjvKiISA/sRC6oC6iLJQA0AA5nckOswk0APmACi7Ryx -QAv4DqnpqO8gAQgAeuxtd0AOgACi6wPYQApYDRHudNhACAAAYQAAAMCQ6RjJQA0QCHYrIhjseN+g -CTgBBu0gsEAOgACi72jvQBAADOTstNPADoADsOxcd0AKWA0BLRIa7njvQA+YAPXsGbFADoAAouwQ -yEAOgAOw7Nt3QApYDPjE5x3rYBnrYBvrYyrSoemWtEAXMAPdLdDh7OV3QA8ICpqqmeocsUAQeAH9 -KZ0B6ZCUQAgAAAopnQMpnIDvWndAEBADiu6B0UARSAvZ7x7IQBA4DZnsGshAEAAMhJsY6QmCQA6A -ALToiOHADwgJCend60APYAi46BnIQA9gDf2dHAzqMJwd6wDYQBAQA5rrH8hAEgACoQnCagrSagmC -agqSaglCagpSagkCagoSatpA7EDYQBEAArHtINhAC7gJhOoo70AL+A124gDYQA+gARAAAADvWO9A -CfgOhAAAAAAAAMCi7LTTwBAADNLrA9hAEAAM5OwId0AKWAy5wLHrQslAEMAMMutDyUAOgACQ6UDJ -QA74CaUqRAXpRclAECgN8ylGFOlByUAOgAdC7jCwAApgCfTApew2d0AOgAOw7TjvQApYDKcvMAV0 -8RUsCnPiFPAAENgIzy0KdeIU8AARQAjfwCDqUNhADoADsOx1d0APmADT7jCwQApYDJlkIPSFOCNQ -ByJSGOwzd0AOgACl4wOCQA6AA7DuILBAECAN0u8luEAKWAyPKCAF4hTwAAYwCYSPKOySd0AOgACl -7iCwQA6AA7Dv8LBAECAN0uMQyEAOgACQ6RHIQApYDIHaUOuA2EAPmADD7RCRQAvAB+Vkoeoc6xqL -UMDQ7aHIQA9gC8uboBnrF+IUsEAPCAjDqYiSgOIA2EAPoAEQzJ9j/eUAAABknd/iFPA/7uABCe8Z -sUAJ+A0sAAAA2iDrANhAC8AHkywiEgzZQeuo7yADSAIpLRIY7arAQBDgDOGepO5yd0AOgAig7rLI -QA9gCqwqJhKPImTxT+IA2EAPoAEQjSDqUNhADoADsOwRd0AKWAxVLzAFdPHfKApwePHZijjrANhA -DoAAwO0g2EALsA9D4gDYQA+gARDiFPA/6TgDWR3rEOk8uUAQwAzy7rjfwBDoDaPtzetAEPANw+70 -08APCAmJ6pnrQBD4DaPtIslADwgJieyZ60AQkAzECJkRCpkCfJkEsc4uRhIoMCApMCHvTrrAERAN -0+o+uEAPCAiI7D+4QA9gCJjpM7pADwgIiOiq4cAPYAjY7KrrQA8ICIjqQMlAD2AImOhDyUAOAAV/ -KSIS7s52QA6ACKDusshADvgPz+y0yEAPYAmp6SLJQAn4DwWOOC0KdC00Be3l0EAOgAAh7zW4QAn4 -DeKCOC8Kdy80Be8l0EAOgAAh7zW4QAn4DcqKJ8C07ADYQA6AANTqoJJAC7gMf9pA6yjvQAv4DRbi -ANhAD6ABEOoo70AOgADE7TDYQA+gAB7iANhAD6ABEOwqdkAPmACl6wDYQAvAB0XiANhAD6ABEGwQ -DBTqYx7quY00HOrBjzbu3eVAFQgMtOzKtEAXMAOE7w+KwBcIDYjvHMhADwgLm6y77RnIQBCQAfgt -vQEt3IDtGshACAAADC69Ay7sgJ4a5Em1QBBgDFGGOec4sEAOgADwpUTnGMhADwgElKTE5UmwQBB4 -C3OfLp8vLyYQLyYRLyYSLyYTLyYULyYVLyYWLyYXLyYYLyYZLyYaLyYb7yzJQAu4AYkc6pvuIrFA -DoADsO0gsEAPmACK7aDIQA6AAKXoJ8hAClgLyZYsJiYUJiYT65d2QA6AAJDpK8FAEFAMgeki0kAQ -QAzx7yvIQBA4DdLvKchAEDgN5e8lyUAQOAuIH+qF6CfAQBa4DMvoSHZADBAO4K/u6CzJQBQADe7v -gdhAEGANhe8k0EAOgA/7793lQA8IDu7oLNBAD2AN7e0n0EAOgAD47yXQQBA4DaXvR3ZADoAP7O7d -5UAQaA3l7i3QQAwQCqDtqutAD2gNxuon0EAQUAXPD90ILSYUH+pqDwIADwIAKfKA7bm1wBPoDO/A -wgCQBA7dCO4O8EAX+ALd6fK0QA8oDt4ODhvo9XZADzgOzu3/2EAPSA6e58yCwA9IDt7uI9JADxAM -jCzBtg8CAA8CACzM2O4byEAM8AzA7CrBQBBoAYcszPQMDE8sJRruCNhAELANteXUdiAAYA4s7irB -QA6ACMArJBYo8n3TD+hV5cAQqATb6gqCQAuoBFwsIRoKVTYMVTcMWCzoyOlAD5gAougrwUALuAnC -hRgc6jzuJLhAEDgM0usbsEAQKA3y6xDIQA6AAKXpKrBADoADsOkRyEAKWAthHOoyJCYY4kjIQBHA -AqKaLuovyEAOgAeTKUQF6SXQQBAgDPOWEOURyEAQYAzR6EW4QBBIDOHnE8hADoADsOgSyEAOgACl -6CCwQAx4D/joFMhAClgLTCoKBezRdkAOgAOw7UCxQApYC0cqIgcjCgHrANhADoAAweqgkkALuA9S -KyIALEIN7TF2QA8IC4vtoMhAD2ALO+uhyEANAAD8AioC60CxQA+gABziANhAD6ABEGwQBIonDwIA -6qCRQAu4DaWOLGTgEgIqAusA2EAOgADA7SDYQA+gAB7iANhAD6ABEGwQBOkpu0AQWAyy5kDYQBDY -C9LmmutAEDgAS2AAAdqQ6Dl1QBB4ABsE1RHoVetACAAABsBQHOnwLyAM7i24QAxwC6DpothADoAA -oOkzwEAPCA+P4LvhwA9gDv7qMsBAD2AL6+xudUAPYAvL6zDIQA6AAKXrA9hAClgLC+UyyEAQsAKj -4iqTQA6AAMbrKO9AClAP6OxNuEAQYA2U7U+4QBBwDaTrQblAEIANhO2q60APYAnJ64jrQA9gCakJ -iALqMJFADgABSBvpzuxg2EAKUA/YYAALAAC8S+xg2EAKUA/UJjQjG+nI7/J1QA6AAJHpP9FAEBAM -xO8x0kAOgADo7jDSQA6AAIDoPtFAEAAM1Os90UAOgACo6jzRQA+YALLtNdJAETACo+w/0kAPgA3Y -7TTSQA+ADMjsPtJAD4AMyOw90kAPgAzI7DzSQA6AAMbsMtJAClAPt+pDuUAQkA3060W5QBCgDYTp -R7lAELAN5OuI60APYA+v6e7rQA9gD48P7gLI7uowk0AQkAK07GDYQApQD6iMQcAg7DnTQA+ADMjs -ONNAD4AMyOw300APgAzI7DbTQA+gARAAbBAGHekjGumSLdKXKqKLwLDp3eHADoAAxa2q7RjvQApY -CD/rGO9AECACouxg2EAOgACT6SHQQA6AAPHvI9BADoAA4O4i0EAOgACA6CDQQApQD4rioNhAD6AB -EABsEAbrILBAEAgM0sCA7hDYQA6AAJDt6ebAD1AIvnmAH+8wsEAQCAyD6gDYQA6AAMDo7ObAD1AK -/uIU8AAFWAXKGukwKaIRZJCdLKLWKKLtqc/pyuHADoAAUKiq6f/hwA6AAOKo/4in0qDqjrBAGzgA -Pimivg8CAOwA2EANAAUZ7qq3QBXYDJrAge2Z6MAPaA6+7gDYQA9QDOjpjubAFeAMmugA2EAROAns -5jCwQBAIDHMuor3Awefu6MAPaAlp6QDYQA9QCJwOyTh5iCLqoJDAEAgCVSotAeqglEAOgABQ7iDY -QBQQCPriANhAD6ABEBzpQu8gsEARyA3ilhKXE+sQyEAOgACl7RHIQA6AA7Tt+O9AClgKX8hG5UDI -QA+gARDRDwAAbBAg7FN1QA6AAKXtMqlADoADtO4gsUAKWApVKjES5/p0QA6AALDl4nVADoAAQeYI -2kAMsAqg7JJ1QBjwAgp6whYpIhDiuO9ADRgOiS2RGw0NSwrdDA2SOO5ZtEAOAADywMDkYdhACAAA -JAAu4i7iFPAACvAB/okniZ4vktYsnQPswJJADQgGz8FAHeihKtKhKVKDLd3m7dG+wA8ICpqqmaaa -5wDswBBQAf0qnQEqrIDuqXRAEwACkQkCawkCawkCawkCawkCawkCawkCay2hKRjokx/olOUpdAAF -OAjt5RrJQBA4DWrpoLBADoAA5+8YyUAOgA7x7xjTwAwQBmDomeHADwgGBu6Z60APYAZt6RnJQA9g -BoYmFhwF6jDlHclADoAD8O8fw0ANAAcTKRx/4xDxQBAIApkJQmsDA2gJAmvkFtVADQAC3Isr7iup -QBCYC9ztENZAEDgAGy4VUYvDKxYricIpFiqIxSgWLY/ELxYs7HDYQBMAArHtINhAC7gGt+yNdEAO -gACl60PYQApYCffiSO9AD6ABECsUlR/oY+0gsEAOgACAKBYj6BLKQA6AAOXvEMpADwgNje0UykAP -YA3t7RHKQAn4D3oAAAAAAADsbHRADoAApetD2EAKWAnj6wDYQA6AAMDkYthACfgOniqSyXynEy2S -zi3c/A20OWRCJeQA2EAJ+A6ELpLOKRY07BbLIA7IAT4vkr7pFMsgEMgEDxjoMouA6xDIQBAIDKjq -EchAEBAMmOkSyEAQGAyIKBYDBwBo6BCwQBCAAtHo0MhAEAgM8e/RyEAQEAzh7tLIQBAYDMHs08hA -EQACkQkCawkCawkCawkCaxjoLB/oHh7oHykSNJ4ZnxgtksudG+yatMAPmACi7BrIQBEAArHogLZA -FmgM2e0dyEAOgADC6Zy0wA6AANXpHMhAD6AAGB7n/C0SNO8QkMAPmACi6OCwQBAYA93o8MhAEAgM -nunxyEAQEAyO7RXLQBAYDO7u88hAEIACsejyyEAPmADP7dqiQAvwDpzkG9HADoAAsCsUUisUUysU -VCsUVSsUVisUVysUWOsZ0cARqAzR6xrRwA6AD//vENHAEaAMke8c0cAO+A+P6NrCQA+YAKKmme8Q -kMAVsA3J7B7RwBWoDenuHdHAFbgNmekf0cAOgACy6xHRwBKAAuHp4bBAEAAMjujwyEAQEAyO6fHI -QBAYDO7u88hAD5gAz+jyyEAQgAKx7duiQAvwDnQpEjQtEjUrktTHr+rbwkAOgADA7JnMoAFoAAuN -J4/eL/0E4LnvQBAADe8ASxoKuwML6wELC0fr8NBADQAAfmSweiqW1MCAKJbO6ijvQAuwBfbAsOwW -s0AOYAjaKRI00w8PAgApnBADA2oJgmsDA2kJQmsDA2gJAmsDA2sJwmsDA2oJgmviANhAD6ABEOK4 -70AJ+AwkLZK67RDIQBXYDMnsEchAFeAMuesSyEAV6Ayp6hPIQAn4DewAAAAAAOrQkUALuAu1KRI0 -6v/fwAn4D3YAbBAGKCA4AiQC5YF0IAVIBggiCmQb56LsTLhAFQgMuypSg6y7CbsRq6ob554poSns -6HOABAgIuY5Hju4t7QLvyXPAEoACvewA7MAPmACbCQJrCQJrCQJrCQJriEAc55Ts5s1AEDgNmuiI -4cAOgADE7+TNQA9gCMjo5c1AEUgL+ui9c8AMEAmQAJkRCf8C6OrNQA9gD4/v6M1AE4ACnQMDaQlC -awMDaAkCayLUhu0g2EALuAXN0Q8qMRIKCkvrvnPAGKACCnqyDCIiEMwu4iDYQAn4D0TiYdhACfgP -PCQmEehNuEAQYA2U6SzQQBHIDfTvKdNAENgL5O4rwUAQsA3U7SbRQBA4DcTsJ9BAENALpOoqwUAQ -wAu06yjBQBHQAqLsYNhAEdACtOgt0EAKUA3WHedujEsNzALsK8hAERgAXBjnzu4rqUAQkAvz7w+K -wA8oDo4P7gLuK8FACAAACwApMRIpJRuKJ4auJm0EK2AAJzqA5mCUQA0AAMvqoJFAC7gLUsCQKWSA -KFKJ0w8PAgAogi5/jwfiANhACfgOfOoo70ALwAUXhieGbipivmqiSyhiwGiARewrc8AOgACl6wPY -QApYCM2KJy2iDixiwCsKAafd4MnvQBQADc3gu/DADvgPnwm7AwvLAQsLR+vQ1EANAAB8ZLDGx+8u -ZsApID7pHtBAEegNouod0EAOgA+/6xvQQA6AAPAvFAcvFAYvFAUvFAQvFAPvEtBAEeAN0u0a0EAR -2A3i7hnQQA6ACIDoEdBADoAP7u4Q0EAR0A3C7hzQQBH4DYLoH9BADoAA0g3MA+wY0EAQGAOG7hOw -QA74D8/ubc9AEAgMoeprz0AQAAyx62rPQBAQDJHpbM9ADoAE0O2DwEAOgACR6W7PQA+YAKLsYszA -DoAAsOxjzMAOgADB74LAQAuwBKlj/tkAAOqgkUALuAsBY/8tAGwQFuzWc8AOgACl7TKpQA6AA7To -/9/AEIAM4ugUyEAKWAiEKjES7O1ywA+YAELl1XPADoAAZOoKisAOgACw5wjaQBlQAgod51Z60h8p -IhBklsEukRsODksK7gwOmzjUsMxI1CDiYdhACAAALy9Sie/+skAQOAwk4i6wAAZIA//s9HPADoAA -petD2EAKWAhp7ExywA6AAiYb5s/tTLhAFQgMuypSg6276dxywA8IC5urqiihKeIU8AAEQAiYjUeN -3u+scsAQEAOd6HFzwBKAArnsAOzAD5gAywwCawwCawwCawwCa+ynuEAQAAzkL9aU6NrNQBFIC1rs -DIJADwgOjubu60APCAwM7tXNQA9gBcXuW3LAD2AFhSXWmO7WzUATgAKZAwNpCUJrAwNoCQJrp9/i -9tBADoAAxO0g2EALuAT40Q8AAOowk0ARwAKz7BCRQAv4DZTvFLBADQAC2nSpAmjxIuxxc8AOgAO0 -7qm7QBAADNTqUNhAClgILhzmieI22EAJ+A8WKCLWy4gc5w7tKrTAFlgM4u8stMAWaAyy6xDIQA6A -AKXpJrXADoADtOkRyEAKWAgfHOZ64gHYQAn4DtsAAAAA6jywQBBoDLPs13LADoAA0OkQ2EAOgADg -657mwA9QDanvZ3KAESAP7Yg/7hDYQA6AANDoPrBAD1ANjsCQCOk44hTwABAoD9mJR4meKpK+4hTw -ICrwBAoa5mXooLBAEMACseiwyEAQCAzq7rHIQBAQDNrtsshAEBgMqpqzKxwY6LGwQBFAAtHo0chA -EBAM6+7SyEAQAAyb6dDIQBAYDLsZ5k+b0ykWH+kA7MARwAKRCQJrCQJrCQJrCQJrGOZcnB+fHioi -yyoWEesYk0AWUAyS6RDJQA6AAMLogLZAFmgM0u0TyUAPmACk6Sy0wA6AANXpEslAD6AAGB7mLtpA -7BiRwBAYA9LtHslAEAgM/u/ByEAQEAyO6MLIQBAYDJ7pw8hAEAAM7u7AyEARQAKx7dqiQAvwDNDA -sCsUcisUcSsUcCsUbysUbisUbesc0sAQ8AzR6xvSwA6AD5/pGNLADvgPj+kU08AOgACh6hPTwA6A -APLvGdLAD5gApOjawkASwALxpynrGtLAFbANyewW08AVqA3p7hXTwBW4DZnpF9PAE0AC4enhsEAQ -AAyO6PDIQBAQDI7p8chAEBgM7u7zyEAPmADP6PLIQBFAArHt26JAC/AMqSkSHioi1Mff7ZvCQA6A -AMDsKcygAeAACotHj74v/QTgqe9AFAAC/+7wvEAOgACh4KrwwA74D88MqgMK6gEKCkfq8NRADQAA -fmSjysevKibULRIfwLDrLszAEBgDwu0A7sARQALMDIJrK5UjHOXn4gDYQAn4DI/sMbFAEIAMky4K -AQ8CAOiY70APmADc7O3nwA9YCJ4NiALtI5hAEUAN4+7TwkANAAS46DKxQBCYDOPiEMpADoAAIe4u -58APWAiCDogC4hCyQA0AAogsJtspJtorMhPrLc3ADvgPr+ouzcAQkAyDKCbc6z2wQBBgDKPoK7TA -FlAM4sDB7q7owA9oCIvoyOfAD1gO7AjuAmTidygizuIU8CAPCAI4iUeJniqSvuIU8CAUkAQKGuW8 -6KCwQBDAArHosMhAEAgM6u6xyEAQEAzK7LLIQBAYDKoqtgPp+nHAEMACoeigsEARQAKx6LDIQBAI -DOruschAEBAMypyy6QDswBAYDKrqs8hAEcACkS0WHgkCawkCawkCawkCaxjlsp8eG+Wlmx8qIsvq -EclADoAAwukqtMAPmABd6RDJQBHAArHogLZAFmgM0u0TyUAPmACk6Sy0wA6AANXpEslAD6AAGB3l -gtpA7tGwQBLAAsHuwchAEBAM/e/CyEAQGAyN6MPIQBAADN3twMhAEUACse1aokAL8AwnpyzA8u8Z -0sAOgACwKxRyKxRxKxRwKxRvKxRuKxRtKxRsKxRr6xrSwA74D4/oWsJADoAPn+kY0sAOgAChKhRz -6RTTwA+YAKTpGJLAFagN7O4V08AVsA3c7RbTwBW4DczsF9PAEsAC0eiQsEAPmADN6NDIQBAIDPnv -0chAEBAM6e7SyEAQGAyZ6dPIQBFAArHtW6JAC/AMAS0SHiki1Mfv7tvCQA6AAMDsKcygAegACYtH -KLIOKI0E4JnvQBQAAojvgLxADoAAkeCZ8MAO+A+vCpkDCfkBCQlH6YDUQA0AAH9kkRnHvysm1MDA -LCbOKi0C6qCXwA+YAJMJA2sKwmsJA2oKgmsJA2kKQmsJA2gKAmsJA2sKwmvHn+kjzcAQaAzz7yvM -wA+YAKTpIs3AEGAM4+4qzMAOgACx7D+wQA6AAPHsLczAFkgM4u8uzMAQcAyD6CzMwA6AAMHv0sJA -D2AObu4pzMALsALj4gDYQA+gARAAAAAAAOS470AJ+AlI6T+wQBZoDKLoPrBAFmAMsuuI6MAPaAmp -6cnnwA9YCIwJiAJljWFj/LsAAAAAAAAA7hiRQBXQDLnr4MhAFdgMqerhyEAV4AyJ6OLIQBXoDMns -48hACfgNdO4YkUAV0Ay56+DIQBXYDKnq4chAFeAMiejiyEAV6AzZ7ePIQAn4CqfqsJFAC7gJF+0e -sUAJ+A7a6rCRQAu4CRPpHrFACfgMKWwQCOwoccAOgACl7TKpQA6AA7TuILFAClgGlyoxEucTccAP -mABC6gqKwBBQDNPr1nHAGVACCnqyIikiEGSSuCyRGwwMS+rM6MAOgABADJQ4zEjUIOJh2EAIAABi -hUfmdrXAF2gMl+hxsUAOgAig5V6wQA0AAd0JZhGpZm2JEIhniI4ogqriFPAABpgI2KpmKlKt61u2 -QA0IAVoc5V0vUrHuW7ZAFVAM1eoQyEAOgAO06lDYQApYBm/BIBvk1+xMuEAVCAy7KnLtrLsJuxGr -qhvk1CmhKew8cIAECAi5jkeO7i3tAu8tcMASgAK97ADswA+YAJsJAmsJAmsJAmsJAmuIQBzkyezm -zUAQOA2a6IjhwA6AAMTv5M1AD2AIyOjlzUARSAv66AFxwAwQCZAAmREJ/wLo6s1AD2APj+/ozUAT -gAKdAwNpCUJrAwNoCQJrItSG7SDYQAu4AwPRDxzlLu9gsEARyA3m6BDIQA6AAKXtEchADoADtO34 -70AKWAY+ZG8M4hTwH/hICEbuabtAEAAM0uwSccAOgACl60PYQApYBjXiNthACfgPFACJOuo7sEAN -CAI57FG3QBA4BKsqVquKPC5Squ06sEAQOASsKlax4hTwAAhwCO3pOO9ADoAAYeZQzUAQEAOl6RDy -QBeAAqoKgmsJA2kKQmsJA2gKAmsJA2sKwmsJA2oKgmuKUOoXyEAQUAyz6xbIQA6AAMLsUM1ADoAD -uuzfcMALsALc66jvQA0AAgqNF43S5qjIQBAwDPHvqchADoAA4O6qyEANAA49jEeMzivNBCqwAOZR -zUAOgADv67CUAAQYCurA1OkA2EAYeAA9AJAECg4bf+cDsZnHn5kU6FbYQA+gAhnpnuLAD6APBuzu -48APYA/677DUQBAYA97o0sRAEBAD7ujTxEAOgADwL+aCHeTa7ePMQA0ABcqIFOhZzkANgAOI4gDY -QA+gARDAkClWqilWqylWsSlWpeIA2EAJ+A3Ux6/qFMhACfgP0gAAAADkANhACfgNVMCi7IxwwA6A -A7TtKO9AClgF2eLA2EAJ+A2kG+ROHORO6kjvQApYAM5j/5YAAAAAAOyg2EAQOAyh7TDYQAuQDzBj -/w0AbBAIwKXse3DADoADtO4kuEAQAAzS7zW5QApYBcUc5DIX5DEb5CwV5H8oIDjkwnDADpAFYOqS -cMAOkAjw7QfaIAUoBggmCmToLLhAFQgM6yqihqjuCe4RrqopoSniFPAACOAISY4nju4Z5A4r7QIr -vFDpAOzAD5gAmwkCawkCawkCawkCa4ggre0koAfoiOHADoAAlOmI60ARSAua7OTNQAwQBEDn5s1A -DwgEBOXqzUAPYAlJ6OXNQA9gCVkp5pgDA2kNQmsDA2gNAmvsQNhADoAA0q/p5pbQQAu4AlHiANhA -D6ABEC4wFeIU8CAEwAEO4hTwIAUQBQ7okNggBWAHDuIU8AAQgAiOwIvp0NgABXAIjnnhLMCl7Edw -wA6AA7TtILBAClgFgxzj8Oq+c0AOkAfQ645zQA6QCPDmYdhACfgPCdog6zjvQAv4Cx/WoOx2cMAO -gACl7SCwQA6AA7TuaO9AClgFcxzj4Brj2+utc0AOkAfQ7wjaQA5wDPbiANhAD6ABENog6zjvQAv4 -Ds3mqO9ACfgPvNog6zjvQAv4DNnmqO9ACfgPqtog6zjvQAv4DCPmqO9ACfgPmAAA7NRwwA6AAKXt -MqlADoADtO4gsUAKWAVXKzES0w/rC4rADoAA0Ooo70AZCAILHOQte8IWKSIQZJIwLpEbDg5L6+7o -wA+YAK0OmjhkogqMp4zOK8wQ6xLIQA+YAJMJA2oLgmsJA2kLQmsJA2gLAmsJA2sLwmsJA2oLgmvA -4e7JyUAQOAz66C67QBH4DbLpoLBAEHAM/+i74MAPCAgI7BDIQA9gCLjpi4bADHAJkO70mEAPCAuL -64jrQBAADb7tyslAD2AImOjMyUAOgACP7uCUAAyACovAhNMP6QDYQBh4ADgAkAQLDBt/xwOxmcef -6BDYQA+gAhkAiBrqEchAD2AIi+jg1EAPEA6Z6RPIQA8YDv7oVthAEBgDzijFgujDxEAQEAPuLeaC -HOQELOaD7JjvQA0IBCuJEIoR7JvJQA6QBb7s/3NAC7AB1euo70AOAA9K7sDYQAgAAPzsr3NADoAA -pe0gsEAOgAO07jOpQApYBQEpIhAqMRPqKsFADQAAeSqVGhvjZRrjZg8CAOwsuEAVCAy7KqKGrLsJ -uxELqggroSniFPAABKAISywiByzCDh3jTQbLCO0A7MAPmACbCQJrCQJrCQJrCQJrJ8aW5crNQBFI -C+oZ41bop7hAEAAM8unEzUAQEAPc6UDYQBOAAt3oCIJADwgPj+n/60APCAgI6O7rQA+YAJPvxc1A -D2AOXu7IzUAOgADgCQNoDQJrCQNrDcJrLM0DLMyA7sbQQA6AANLsQNhAC7gBi+YA2EAJ+A1WjhGO -4o8S76jIQA0AA+7A4Obo70AJ+A0+7mHYQAn4D/THz+oRyEAJ+A7O6gDYQAn4Ddwb4zjsg3NAClAP -uewTsEAJ+A6zAAAA7KDYQBAIDKHtMNhAC5AOGmP/sgBsEAaEJ4ROLkKp7SCwQBL4CD7sWnNADoAA -pe5AtUAOgAO070G1QApYBKwvQpBk8d7tgXMgDtgBDxrjEhzjAxXjERbjYhvjDucRc0AOgAAw7kDY -IAGgAg/iFPAgCAgDDyNGkSNGkOI470APoAEQwKXs+HNADoADtO8470AKWASX4gDYQA+gARAoQpEf -433iFPAgDQAEKOVAsEAPmADP66PYQA6AAGLmQM1AFDAMZOpY70ALsAFT66jvQA0AAYqIUpap46rI -QA6AAJHpqMhADRALKIwnjM4tQpErzQQqsACx3e1BzUAOgADf67CUABNACtrA1NMP6QDYQBh4AD0A -kAQKDht/5wOxmcef7+VzQA6ADInuENhAD6ACGemW4sAPoA4O7GbjwA9gDurusNRAEBgD1ijVg+jS -xEAQEANm42LMQA+YAFnvY8xADRAByilGqeIA2EAPoAEQAAAAAADoLLhAFQgM+yqihqj/Cf8Rr6ov -oSniFPAABGAIX48nj/4l/QIrXFDsAOzAD5gAm+kS8EATgAJVCQJrCQJrCQJrLfaU6SCwQBA4DYon -9pbm+s1AEUgLyuiZ4cAMEAiA4IjhwA9gCenp9c1AD2AMjOlCmEAPYAxs7PjNQBeAApkJA2kFQmsJ -A2gFAmst/QPsJthAFAAC3ezW0EAOgADE7SDYQAu4APIjRpEjRpDiJthAD6ABEI0g7HJzQA6AAKXu -QphADoADtO7gl8AKWAQs4gDYQA+gARDc8OlDmEAUMAyE6BDIQBQ4DLTrS85AFEAMpOpBz0AOgAO6 -6ErOQBAADKTqEchAFIACmelFzkALsADm66jvQA0AAgqMEezCsEAOgADh7qjIQBAADNGdqu2pyEAN -CACcG+J7GuJ77Cy4QBUIDLsqooasuwm7EauqLaEp4hTwAAS4CF2NJ43eHOJkK90CK7xQ7ADswA+Y -AJsJAmsJAmsJAmsJAmsn1pYm1prlQNhAEUgLyu6nuEAQAAzy6JZyQBAQA5To1M1AF4ACme4OgkAP -CA+P5f/rQA8IDg7l0phAD2AM7O/VzUAPYAxs7NjNQBOAAlUJA2sFwmsJA2oFgmvo05hADoAAxOiA -lEAOgADS44bQQAu4AKEjRpEjRpDiANhAD6ABEADiANhADvgPn+lJzkAPoAEQ61VyQA+YAKLsRXJA -ClAO1CVGqeIA2EAPoAEQ6ljvQA6AAMrtMNhAC5ANNmP9PgAA7KDYQBAIDKHtMNhAC5ANMGP+5wBs -EAaDJ4M+KDK+wFEPAgDk/9/AGkgCCCgywGiAPuxackAOgACl6wPYQApYA8ErIgeMvioywNMPLM0E -4KnvQBAADawAWRoEmQMJqQEJCUfpwNBADQAAemSQqiQ2wO/v2EAOgADi7xDQQBHQDdLvHNBAEeAN -kuka0EAR2A2C6BnQQBHoDaLqHdBAEfgNwuwf0EAR8A2y6x7QQA6AD8/sG9BADoAIsA7dA+sR0EAO -gAAgIhQHIhQGIhQFIhQEIhQDIhQCLRQI6hOwQBAYA9PqPc9AEBAMkek8z0AQCAyB6DvPQBAADPHv -Os9ADoAE4C7VAyU2viQ2wyQ2wuLSwEAPoAEQAAAAAOqwkUALuAX9Y/9JAGwQCBzifhnh74gw5+Vy -QA+YANLpl7VAEAAM4u8kuEAMMAiA6BTIQBRYDHepiOo4uEAPCAiYqHfqFchAEFgMJ+MQyEAOgAO0 -5BHIQA6AAKXlEshAClgDc+pQ2EAOgAO07IZyQA+YANfucLBAECAN9+IQyEAKWANrGeJj0w/oOO9A -GFABNAgDaAkCaxrhnOzlckAOgAO07Tm4QBBQDePlrshAECgM8epQ2EAKWANdKzAJ7nuwQBAADNPs -n3FADQAAmwzuAp575ADYQBDYAK2PFehscUAOgACm0w/rAdggAlABD2jycXLpJCn6jXlBD+pY70AP -mACz7EjvQApYAELiANhAD6ABEAAAAAAAAADtKO9ADoAApezjckAOgAO070jvQApYAz9j/78scDjt -ANggA7AGDO1400AQIAzB2nDo7utAD5gAs+57yEAKQAMzjnvkqO9ACfgPkohwL3A4CIgR6DPIQBwQ -Bi/iFPAf+9AAPhniKIwUHeIo6njTQA+YAKfrzOtADygJnu2Z5UAPmACz6XvIQApAAyGOe+So70AJ -+A9IAAAAAOIU8B/54AI+jBQqdDjrzOtACfgPhQAAAGwQBhziFhjhgIUx4v5xQA6AAKXoh7VADoAD -tOQJgsAMcAVY4iu0QA+QBVCpiOmI4cAPmADVqCLuKbtAEcAN8uQQyEAKWAMIyVDqKO9AD5gAs+xI -70AKQAMB0Q8pIDixmeko00AJ+A/lbBAGgyeDPsCl7L9xQA6AA7TuObFAEAAM0u86sUAKWAL3KDIZ -535xQA74D9/lENhADoAAQOnw2EANCAyIjieO7ivtBCqwAOhA2EAPmABk67CUAA0wCprTD+9W2EAY -eAA4AGAECgkbf5cDsWbHbwBhBOZs4sAPoAkF7szjwA9gCZrpsNRAEBgDjC+Fg++CxEAQEAPMJMaC -58PMQA0gC2ooMhkmNhvmFHEgC4ACCCgyGeIU8CAOUAQIKTIZ4hTwIBAQBQkqMhnrANggIjgICi0y -Gu3RkEAOgAbD7TrJQBJ4BdzApexscUAOgAO07SCwQApYAsMa4SwkNhob4SokNhkf4QcrsqEqoobv -8b7AEDgM4gm7Eauq7u6wQBEQAf8qrQHqoJRACAAAHQAAAACNImTUMuIA2EAPoAEQAAAqrQMqrIAt -oSkf4RsZ4RvrCdhAFxgEbYyg6eTKQBA4DYrv5spADvgOkeno1kAOgAH26QFxQAwQCIDozOHADwgI -CO/M60APYAiN7OXKQA9gCJgo5igP6jDv6cpADoAGjukC2UAQCAPe6efBwBWAAt3o5tTAEIACkwkD -aQ1CawkDaA0Ca6vrwcbpP7BADoAA0unly0AQ0AuD6OzCwBBwDPPv5MtAEIAM8+/ny0ALsA9B4gDY -QA+gARAAAAAAAAAA5tjvQAn4DqIZ4YCIK+07yUAPKAiYmCviANhAD6ABEADst3FADoAApetD2EAK -WAJ17IdxQA6AAKXtILBADoADtO8pu0AQgAJT7ljvQApYAm3s9XFAD5gAouvl2kALqA8zwJDrqO9A -DoAAoeup5sANAABrlbjtENhADoAAwAncOGXOUmP+shfhY+xGcUAOgACl7SCwQA6AA7TvKbtAEIAC -U+5Y70AKWAJX6+XaQA+YAKLseO9AC6gPHeuo70ANcAfK5ajIQAn4DhHsVXFADoAApe0gsEAOgAO0 -7ym7QBCAAuPuEchAClgCR+zkcUAOgACl7SCwQA6AA7TuP7FAClgCQY0n5DrJQBDYDLPv3rBAEQAM -w+w7zkAOgADoLjYZ6vSYQA74D+/gue9AFAACqusyskAUAA2K6zHPQA+gCQUOmQPrP7FADygJmOs6 -zkAMcAmQ6aDUQA0AAHhkklwa4JQb4JLuO8lAEQAM0+0/yEAQ+AzD7D7IQBEQDIMoNhAY4GorsqEq -ooYogOEJuxGrqn+HCyqtAeqglEAIAAALACqtAyqsgC2hKeIU8AAFGAhtLKAHGOCCHuCCLvYk6PbK -QBAADOrsDIJADvgOgej41kAPCAwM7YdwQA9gDM3o7uHADoABhuju60AQCAyR7vXKQA9gDNzs+MpA -DoAJsAjqMCj2KeT21MAOiALg7vfBwBAIA9/pEPNAFYAC3Q3CawkDag2Ca6v7wcbuP7BADoAA0u71 -y0AQ0AuT6fzCwBBwDIPo9MtAEIAMg+j3y0ALsA6qHODYhjApMqrpEMhADoADuupo70ALqA6y66jv -QA0AAYqKYuW4yEAQAAzBnLrsuchADQgFSi0yHWTcsepQ2EAOgAO07F5wQApYAdyNJ43eK90E7j2x -QBQAArsqsIAvCmTv7upADoAA/+IU8AAGiAr6wPTmANhAGHgAPwBgBAoIG3+HA7Fmx2/gae9AEAgC -zuZp4sAPoAgF7ZnjwA9gCIrosNRAEBgD+Sz1g+zyxEAQEAOZJJaC55PMQA0ACUomNhviANhAD6AB -EAAAAAAA5ftwQA6AAKXsLHBADoADtO09sUAKWAG16+XaQA+YAKLsWO9AC6gOe+uo70ANWA9KKjwQ -6rjIQAn4C4YAAAAAAOsycEAPmACi7CJwQApQDKJj+zrqKO9ADoAAyu0w2EALkAsG4gDYQA+gARAA -AAAAAOIA2EAO+A+/6zvJQA+gARDrMXBAD5gAouwhcEAKUAySJjYb4gDYQA+gARAAAAAAAOrQkUAL -uAQFjyfH7+/+sEAJ+A2TAAAAAOpo70AOgADK7TDYQAuQCuxj/pwAbBAGiysoWtzoEMBAEAAMROkp -u0AQcABLwKTqmutACAAABtqQ7SupQBCQABsY3+8E1RHoVetACAAABsBQHOBOLyAM7i24QAxwC6Dq -ANhADpAEnukzwEAPCA+P4LvhwA9gDv7qMsBAD2AL6+x3cEAPYAvL6zDIQA6AAKXrA9hAClgBaJUy -6wDYQBCAAqPs5NpAClAGa8d/JzQQJzQRJzQS5zPRQBCwAqPnNNFADoAAxuc10UAR0AJS61jvQApQ -BjwnNDES35LqaW/ADoAE9O8z00AOgADg7jLTQA6ABNMtNDXqPdFAD4ALeOI10kAOgACY6TzRQA6A -AMDsNNNADpAEgOgx0kAOgABi5jDSQBDwDYPrMNNADoAAYeY600APgAu45jvTQA6AAMbsPNNADoAE -kOk00kAOgAEh4jfSQA6AAKLqNtNAEaACI+k20kASsAKj6z/SQA+AC7jrPtJADpACvOs300AMMAiA -6YjrQA6AD5DpUNhADygImOmI60APmAC16D7RQApQBgnAVuo+k0ATAAK07EDYQApQBgUb4CzqMZhA -DoAAxOqmkkAKUAYAJiT35ijXwA6AA9XtJtfADoAD5y4k+SxAF3jHB+Uq18AIAAAJwPUvJPomJPvl -LdfADoAAkykk/ChAFyk9AeKSk0AQcAGIwaHqktNAEZgCKe2h2EAQIAKi7SDQQA6AAFLlI9BADoAD -uesi0EAOgAHM7CHQQA+YALHsWO9AClAF4BvfsNMPK7LWLrAA6gDYQA0AAZ7ZsG0IDCyQAbGq6ZGQ -QA0AAHxj/+wqJAftw9hADHADoO0m0EAQQAKi7DjvQApQBdCiPufo0EAOgAAg5UXJQA+gARAAAABs -EAaLK+bN2cAQAAxE5hDAQA6AAGTpKbtAEGAAS+aa60AIAAAG2pDtK6lAEJgAGxjfTQTVEehV60AI -AAAHAMBQHN+sLyAM7i24QAxwC6DqANhADpAEnukzwEAPCA+P4LvhwA9gDv7qMsBAD2AL6+xdb8AP -YAvL6zDIQA6AAKXrA9hAClgAxpUy6wDYQBCAAqPs5NpAClAFycdfJTQQJTQRJTQS5TPRQBCwAqPl -NNFADoAAxuU10UAR0AIi6yjvQApQBZolNDEY3vDsT27ADoAE4C40JC40Juw90UAOgAC46zzRQA6Q -BKDqMdJAD4APWO8w00AOgACS6TDSQBDwDdPoNdJADoAAkuk200AOgACB6DrTQA+AD/joO9NADpAC -rOo300AOgACw6zTTQA6ABMPsNdNAD5gAsu8/0kAOgADG7DzTQA+AD/jvPtJADDAN0O7d60AOgAHx -7zfSQA6AD+DuUNhADygN7e5E2EAPYA3t7jPTQBKwAqPtPtFADoAA0O0y00AKUAVp6j6TQBMAArTs -QNhAClAFZRvfjOoxmEAOgADE6qaSQApQBWDni9hAE0ACtO4Q2EAQCAOj7qvSQA6AA9XtqtJADoAD -lumt0kAOgADE5q7SQA6AAIPorNJAFcACKuqvkkAKUAVQ5izTwBNgArTsQNhADoAD8u8r08AQCAOj -6qWTQApQBUjrGO9ADoADiewg2EAQCAOj7CLUQBHYAqroIdRAClAFQBvfDyuy1imwAOwA2EANAAGZ -2bBtCAwtkAGxzOmRkEANAAB9Y//swGPsJtRAEAgDo+qvk0AOgAPs7iXUQAxwAsDsKO9AClAFLqMv -p//l99RADoAAIOZFyUAPoAEQAABsEAbmJ7hAEBAMghrexOcisUAQgAxS5gaCQA4QBxjtDG7ADwgL -xqq7KLI6DW0K7du1IBMIBUgssjkY3uTtxOUAEpgP3OeHgEAQSAzy5xDIQA8YB4fncLVAEFAM4u/u -6MARgAK34hTwABDAC74rIBYoCv94sQ0qIAfsANhAC7gI8GSiKR7fNBbfMe0nqEAQkAzC7yCwQBAA -DLHo0m/ADoAEkOlDyEAMIAzK6rvhwA8IDGzsQm/AD2ALy+hCyEAO+A6Q5vbrQA8ID4/s8W/AD2AL -y+ZEyEAMoA3Q5qZuwAwQCrasquwpsEAPCA3N60fIQBQADarsRshAENALsqx87t3rQA9oCqfgu+HA -EYACquuq60AQqAyy6kXIQA6AAKXtQMhAD2APr6e770HIQBGAAszsKchAEYACu+slyQAKgAiUKUwg -5gDswA6AAIAJAmsJAmsJAmvoRNJADoAAsCtEJStEJutH0kAQkA3T60LSQA6ACODrQ9JADoAElulA -0kAPYA3tLUQh5iLswBFAApQJEmoqMBLsOKhADQAA+uxF00APgAzILEQ0il7rR9NAD4ALuOtG00AQ -CAKq6l7IQAuQCdzqQ9NAELAMguhP00AQiAyV6UvTQA+ACqjqQtNAD4AKqOpB00APgAqo6kDTQA+A -CZjpStNAD4AIiOhO00APgAmY6UnTQA+ACIjoTdNAD4AJmOlI00APgAiIKEQ85gDswBIAAvQPAmsu -IAcODkEf3jzs/9hAELANsuzu4cAOgADVr+7t6ctAEHgEyyogB+wD2EALuAhOiifAtOwA2EAOgADU -6qCSQAu4AB8rIhIs+n8MuwErJhLiANhAD6ABEAAAAAAA6ijvQAu4CJFkreDiANhAD6ABENog7BDY -QBDAArbtUNhAC7gKduIA2EAPoAEQ2iDsENhAEJACtu0A2EALuApw4gDYQA+gARAAbBAMJyIQo0YS -3qKJd+h/usAPmACm6yWxQBKADcLsGMhAEHAMmekVyEAMAAiB6B3IQApQBGmNGBveM+XT2EAQaAzB -rW0l1ADtOW7AEAgCrQ3MEavLrczrvbbAFAANzOweyEAKUARd7xiwQBBwDOEsIFiv7qbm7BnIQA6A -APDvYtBAELgMsu1/usAQEALurkSjRu0tgEAPmACm7R3IQApQBE4c3nyLHYoZDLsLqmrloNBAEAgC -quywvEARCAy77B7IQApQBEXvGbBAEHAM4SwgYK/upubsGshADoAA8O9i0EAQyAyy7X+6wBAQAu6u -RKNG7T2AQA+YAKbtHchAClAENhzeZYsdihoMuwuqauWg0EAQCAKq7LC8QBEIDLvsHshAClAELe8a -sEAQcAzhr+6m5u8A2EAQ2Ayy72LQQBNADcLtf7rAEBAC7q5Eo0bsG8hADAAN0O3ekEAPmACm7RbI -QApQBB0b3eiMFoobHd3n68vkQA8IDNyqauWg0EAQCAKqrczrsbXAFAANzOwXyEAKUAQS7RuwQBA4 -DMErIh2tzKbO5iC7wA6AANDt4tBAEBACzKxEo0rsaO9AClAEBxLeNqZEH91+7xzIQA+YAMEDRgjl -YNBAD5gA4e8A7MARoAu37hLwQA74D9buFMhADoAA6sCQbQge2LAOuy0NuiiqiKgoKIAA6MDQQA+Y -AKzswZBADQAAi2P/2ADpodBAEaAFodsQDwIAbQgi7rC4QBf4A/wt8P/u/9fAF/gCqu2w0EAQCAK7 -7M+XwBBIBatj/9MAACgQAOUA2EANAAGY2RBtCAwqkAGxVemRkEANAAB6Y//s6xjvQBAIAqbsWO9A -ClAD1rFbq0Qb3gMlsHijSuu/sUAQCAKq7FjvQApQA8/cEO8csEAQKAyR61GQQA6AA62rRANGCOpg -0EAPmADh7wDtwBR4DJnuEvFADoAA2u4UyEAO+A+2wOBtCB7fkA2ZLQuYKKj/ry8v8ADvwNBAD5gA -rOzBkEANAADZY//YAAAAAAAA7qHQQBGgBaHbEA8CAG0IIu6wuEAX+AP8LfD/7v/XwBf4AqrtsNBA -EAgCu+zPl8AQSAWrY//TAAAoEADlANhADQABmNkQbQgMKpABsVXpkZBADQAAemP/7OsY70AQCAKm -7FjvQApQA5yxW6tEG93JJbCgo0rrubJAEAgCquxY70AKUAOV7xywQA+YAMHpUZBADoADjalEA0YI -6GDQQA+YAOHvAO7AEMAMl+4S8kAOgADa7hTIQA74D7ZtCB7akA2ZLQueKK6qqioqoADqwNBAD5gA -rOzBkEANAAB5Y//awIDoodBAEaAFodsQDwIAbQgi7bC4QBf4A+wp4P/t79fAF/gCqumw0EAQCAK7 -7M+XwBBIBatj/9MAAC8QAOUA2EANAAGf2RBtCAwokAGxVemRkEANAAB4Y//s6xjvQBAIAqbsWO9A -ClADZLFbq0Qb3ZElsKijSuu7skAQCAKq7FjvQApQA13vHLBAD5gAwelRkEAOgAONqUSjRuhg0EAP -mADh7wDvwBC4DJfuEvNADoAA2u4UyEAO+A+2wOBtCB7akA2ZLQufKK+qqioqoADqwNBAD5gArOzB -kEANAACJY//YAO6h0EARkAWh2xAPAgBtCCLtsLhAF/gD7Cng/+3v18AX+AKq6bDQQBAIArvsz5fA -EDgFq2P/0y8QANMP5QDYQA0AAZ/ZEG0IDCiQAbFV6ZGQQA0AAHhj/+zrGO9AEAgCpuxY70AKUAMs -G91asVysRCWwsKNK6qGQQBFoDLvsWO9AClADJe4csEAPmADB5lGQQA6AA/2mRKNG72DQQA+YANHu -AOzAELAMl+0S8EAOgAD67RTIQA74D+bqANhAD5gAsW0IHtiQD5ktDp0orYioKCiAAOjA0EAPmADc -7MGQQA0AAKlj/9IAAADq0dBAEeAF2+rY70APmACxDwIA0w9tCCLvsLhAF/gDjC6A/++P18AX+AKq -7rDQQBAIArvsz5fAEEgFq2P/0QAAKRAA4gDYQA0AAZnZEG0IDCqQAbEi6ZGQQA0AAHpj/+zrGO9A -EAgCpuwo70AKUALwpCLiIpBAD6ABEAAAbBAO4hHJQBCADEIS3RuUHeRPusAQOAx0JiBI6yOxQA+Y -AKPkZIBAEHAMd+xo70AKUALhpjwb3KoY3Q4NRBGrS6hE5xXIQBQADUTqwZBADoADXeXA0EAXaAy7 -7EjvQApQAtWmSqOm5B2wQA6AAHDnYtBAEKgMsuqikEASgA1i6hfIQBN4DUSjquoeyEAPmADG5HSA -QApQAseKHhvc9aaqC0sLJLCAJaQA67GyQBAIAqrsSO9AClACv40e6BewQBBoDMGmRK1NJ9QC6hGx -QBNwDcyoRCRMAuqisUANGAFMo0brJ7FAEsANwuwfyEAMGA6s7uKQQA+YAKbuGMhAClACrRvceIwY -ih8d3Hfry+RADwgM3Kpq5aDQQBAIAqqtzOuxtcAUAA3M7BnIQApQAqLuH7BAEEgM0SwSEa7dpt4n -5ALswrFAEBAC3a1Eo0brKbFADBgMzuzCkEAPmACm7BrIQBMADcLsEMlAClACkh3cXhvcXIwaKhIQ -68vkQA8gDNyqauWg0EAQCAKq67G1wBQADczsG8hAClACh+wbsEAQgAzRrcymzefS0EAQ2Ayy5ii6 -wBAQAsysRKNK7GjvQApQAn0S3KymRBjb9Jgco0YlZADoAOzAD5gA8e8S8EAQAA3inxTnEdBADoAA -UO4Q0EANAAHuARkCbQgMKpABsVXpkZBADQAAumP/7AAAAADrGO9AEAgCpuxY70AKUAJmsVurRBvc -liWwsKNK672yQBAIAqrsWO9AClACX9wQ6RWwQBAIAqWqRKNG6ZGYQBBgDPHpFshADoADrepg0EAP -mADh7wDtwBSgC5nuEvFADoAA2u4UyEAO+A+2bQge3pANmS0Lnyiv7q4uLuAA7sDQQA+YAKzswZBA -DQAAiWP/2gDnodBAEaAFodsQDwIAbQgi7bC4QBf4A+wp4P/t79fAF/gCqumw0EAQCAK77M+XwBBI -Batj/9MAAC8QAOUA2EANAAGf2RBtCAwokAGxVemRkEANAAB4Y//s6xjvQBAIAqbsWO9AClACLBvc -XbFcrEQlsLijSuqhkEAReAy77FjvQApQAiXcEO8csEAQMAyR61GQQA6AA62rRKNG6mDQQA+YAOHv -AO7AFKgLme4S8kAOgADa7hTIQA74D7ZtCB7ekA2ZLQufKK/uri4u4ADuwNBAD5gArOzBkEANAACJ -Y//aAOeh0EARkAWh2xAPAgBtCCLtsLhAF/gD7Cng/+3v18AX+AKq6bDQQBAIArvsz5fAEDgFq2P/ -0y8QANMP4gDYQA0AAZ/ZEG0IDCiQAbEi6ZGQQA0AAHhj/+zrGO9AEAgCpuwo70AKUAH0pCLiIpBA -D6ABEBzcIxvcIygSEQyqAQuqAeqCyUAJ+AzdAAAAbBAkhjeGbi5ijuzBbMAOgACl6wPYQA+YANXu -foNAClANAMBw4nFsoACIAQXBiHhRR+J470APoAEQJSAswz3rLLBAD5gApOxY70AKUAHY6yazQBag -DWKlSuOg0EAQCAKq7GjvQApQAdGlYqQoJ4QC4iKQQA+gARAAABjbUoU9E9wBKIKbIzKJqFUJVRGl -M4M3JSBE2kDjPrBAEJAMsuxY70AKUAHCpU3DnSnUACswAiMWPCUWM+q470AaAAEL6TKYQA+YAK3p -kJRAGLgBOyyQSOyh0EAQCAKZ6qGQQA0AAQwjFjzqMrhACAAAEgCr3ifkAeMcy0AQEA2jFdslIhIz -L20F5QDswBEAAjECogjjEvBAEBACIuMcyEATIA0/4xTTQBIAAqHj8JRAEwgN/+8Sy0ALkAJ06hCQ -wBGgArHlFstADoAAweMVy0ALkAIKKhI80w8prQMpnIAokCgjKoDsANhADQABeG0IDCuQKbHM6ZGQ -QA0AAHtj/+wlEjLro5hAEgACoeu4lkALkAH63FDqEJDAECADtuuwlEALkAH2KhxA6xCSQAuQAZ0c -27fvErpAEQgN4e0QukARGA2BmBArECSbESoQJZoSKRAm6RPIQA6AA7DoF7pADoAApegUyEAKUAyQ -FdunHNup7xq6QBFIDeHtGLpAEVgNoZoQKRAsKRYBKBAtKBYCKxAu6xPIQA6AAKXpH7pADoADsOkU -yEAKUAyABCoI61SxQBJgDcXsEctAClABXisSMe2H2EAOgAPg5fJvQA6AA50LIggELwjp8NAgJNAA -Dy70Ae3y0EAPmAC/6AHYQBEAAsEPAgDq59hAGbAAOOIU8CAjIANKKcAAKqz+6U2CwAwwCZCpWa1d -7dC8QBAQArvtsdBAFAANmemy0EAQCALM5/PSQA6AAqMqFjvtG7NADoAApexXb0AOgAOw7BrLQApQ -DFYrEjtmtE7ApewHb0AOgAOw7RuzQApQDFDuG7NAFHAM1iwKA+7hkEAMiA3XDiII4hTwACEID9zp -Zm9AE/gCseuxkkAOgAChDeowZNGOHNthH9tjGNtjHttgD98tCPgoDv8oqNgMiCio/wn8CA/POg3q -MGTRbh7bWRjbWg7eLQjoKBzbVKjYHdtUDIgoDe4oqO6p6A6OOg3qMGTRTxjbUBzbUAjYLQyMKKzc -HdtLDYgoHdtJDcworIgPjBKpjQjYOgz8AwxNEg3MAw6NEg3tAw1eEg7dAwwOQgiMEu0NgMAPCA7e -Dt0CCMwDDF4SDswD7t3hwAwQDMDoFMtAD2AM3Oyw0EAX+AKq67GQQA54A8ouEKCkKuuSb0AOgADx -7+7nQBGoDPHtRG5ADHAO4C4UoO701sARoA3L6N3IQBBwDLvsGMtAClAA6BzbFy0SOOoWs0AOgADq -69PYQBUADZGtIqQv6/DQQBP4AtHqAO3AEYgCjegS8UAO+A+26BDLQBGIAt3YkA6ZLQuaKA8CAKqI -qMgogADo0NBAD5gAre3RkEAOeA4pKxx/K7wx56HQQBIoBattCCLusLhAF/gDjSyA/+6P18AX+AKq -7LDQQBAIArvt35fAEPgFq2P/1gAADeowY/5qAAAN6jBj/ooAAA3qMGP+qSocfyqsMSugAMCQ6RfL -QA0AAbttCAwroAGxmeqhkEANAACLY//sACkWN7H67BezQBP4ArHrsZNAClAAriwSN+sebkAQCALM -rCKkKiywPOwZy0AQgAy76qGQQApQAKUsEjkqEjbswZBADoADvQwiCAQvCOvw0EAQGAOW6gDswBMA -ApkJAmsJAmsZ2tXtAdhAEaAMoesA2EAeKAA9CuowZKExHtrQHNrRHdrRGNrPDKwtDc0oCMwora0O -3SgNzAgJzggM7DoK6jBkoQ8d2sge2sgNrS0O3igY2sOurhrawgjuKArdKK7dCd4IDe06CuowZKDv -GNq+Htq+CKgtDo4oFNq5rq4a2rgE7igKiigNiBKuqqmuCNgDCuo6CF4SDogDDI4SDs4DDkQSBO4D -CoQSDg5C6AiAwA8IDt4KRAMOiAIEXhIORAPuiOHADBAEQAhEAqa4o4jkgNbAEAgCuxvZuSkSNeq9 -yEAOgAGg6pDWoAagAA8syqDiFPAACBgIxgNtCCgKeOjy0EAOgAOQ6fHQQA+YAL/p59hAGYgAOm6T -SyrQ4Cmc/upMgsAMMAqgqlqsXOzAvEAQEAK77LHQQBQADarqstBAEAgC3Sf0I+My2EAIAAAjCuow -Y/7HAArqMGP+6QAACuowY/8JAADns9BADvgOOsCl7BqzQA6AA7DtOO9AClALWWYwQsCl7KduQA6A -A7DtOO9AClALVLE7qyLRDwAAAOez0EAO+A7K7BvLQAn4C8nG2u0by0AJ+Au/AAAAAAAA467fwAn4 -D6zstm5ADoAApesD2EAKUAtD4v/fwA+gARDRD+xWbkAOgACl6wPYQApQCz3i/9/AD6ABECf0AeOu -38AJ+A9vAAAAbBAIJiIQF9meFNpN5W2wQBTYDHfaMORJtEAQOAyGp1XnVW5ADwgFlaVE5hPIQBA4 -DETldLpAEHAMiOgQyEATcA1m63qwQBBwDETsWO9AClAABqU9DWwR6/xtQA6AA20m1ADt3G1AEAgC -ravLrczrsbXAFAANzOwRyEAKSA/7ihHAsKWq6hLIQBQgDVejqiukAutyskAQEAKq7FjvQApID/KM -EqXFA1oIJqQCK0AI7ADYQA0AAcsESQJtCAwtkAmxzOmRkEANAACdY//sAACzqutIkEAKSA/kLkAI -6QDYQA0AAb7aQG0IDC+gCbGZ6qGQQA0AAJ9j/+wAAMCApZWjWiikBChA6OVUkEANCABoK3CMarEu -KnIko1zpyO9AGLgBOy2gAO2Q0EAQCAKq6ZGQQA0AAM1gAAsAAAAAAKvPwOAu9ADDnatVo1YpZAAo -QOjsANhADQAB2NlAbQgMKpDpsczpkZBADQAAumP/7AAAAADrQZhAEAgCpuu4lsAKSA+6K0Do6QDY -QA0AAZvaQG0IDCyg6bGZ6qGQQA0AAHxj/+ztkpBADoAAQK1VA1YIJGQAjhMu4G5o4WfoIrFAFuAN -J8M963izQA+YAKbol4HAD5gAwud2kEAKSA+kHNlvG9ltomoMfAvjoNBAFAANPAt7C+uxtcAQCAKq -7DjvQApID5qiOKWCsiKmiOSC0EAPoAEQo1bkANhACfgPmgAAAAAAAOZ8v0APmACmK3Iw7GjvQApI -D47qELBADoAD7QZVCKNW7mDQQBAQA9op0HAsCgDt0JRADQABqQ3ZAm0IDC+Q8bHM6ZGQQA0AAH9j -/+ydFOphkEAQEAO667CTwApID3uJFCiQ8OoA2EANAAGY3ZBtCAwp0PGxqu3RkEANAAB5Y//ssqur -VaNW5GDQQAn4Dw4AAGwQDOgnuEAQgAxiGdkK6AiCQBA4DLYMhxGpd4u+6xzIQBHQDJcb2QQqCkLo -GMgAJUgLqQuLCul5s0AU2Ay7HNjX65TlACSYD7nsG8hAD5gAhOwA7MAYOAA6CAJrLDEK6gPYQA0A -AawqTFDrNLBACkgPUiwxCurAk0AIAAAEKyISDwIADwIA696CQA6AAPfoANhADRAE7uIU8CATsAEO -1YDuKbBAEFAM0qXF5QqCQBGAAjUKOQwpnATu3ejAD1gDqeIU8AAQEAs9KyAWKgr/erESKiAH7ADY -QAu4Ax/vcNhADSABmhrZYeyHbUAOgACw60LSQA6ACNDrQ9JAEIACk+lDyEAQkAyC7EfIQA6ACJHq -QshADoAEw+xA0kAQSAyi7CqpQBBgDLHqRshADBAIjerUbUAPUA2J6SCwQBf4AojgzOHAD2AO/e+U -bUAQGAO767KRwA9QDY7tGshAEDgL4u21bUAReAKD6prrQA8ICYnqRMhAD4AIhOgZyEAUAA3d6Yjr -QAygDuDoQchADwgOzu/u60APaA3T7kDIQA9gDNzsRchAEUACpOxg2EAKSA8DLGIQim7sT9JAD4AM -yOxO0kALkAQgJUQnKkQz7SaxQA6AAIHtT9NAEIgMtutL00APgAyo7ELTQA+ADljuRtJAEFAMkelB -0kAOgADw70fTQBBYDJHoRdNADoAA8O9G00AOgACA6ETTQA+ADujuRdJAD4AMyOxB00APgA7o7kTS -QA+ADMjsQNNAD4ALuOtK00APgArY6k7TQA+AC7jrSdNAD4AKqOpN00APgAu460jTQA+ACqgqRDzp -AOzAEgAChAgCay8iFYgpo/+jiJgpLyYVKyAW7hmwQA6AD9/uectAEHgE2yogB+w470ALuAKBiifA -tOwA2EAOgADU6qCSQAuwClIrIhIs+n8MuwErJhLiANhAD6ABEAAA2iDrOO9AC7gCxe9w2EANaA9K -4gDYQA+gARCNHC3dBSXQZQueVu3QlEANAAmV4hTwH+04D+/tF8gAAOAD9cHYddhF5YjvQAn4DZRk -wJLliO9ACfgNidtgqkzswJJADoAA0eoo70AL+Ay5jhct4OXVoOnv2EAOgAD37DqoQA8oDZ3t5dbA -CfgNVqpM7MCSQA+YALbqKO9AC/gMrI4XLeDlwPfqf9hAD5gAWun+2EAPKA2t7DqoQA8oDZ3t5dbA -CfgNHQCqSyu8IOoo70AL+A5w5ajvQA6AAPfsOqhACfgM/wCqRetQkkAPmACi6xXIQAv4C5QtYG7s -qO8gCDgBDRjYwy6AgGrhLiuCIaWq6KjvQBi4AT4vsADvgNJAEAgCu+iBkEANAADPYAALAAAAAACu -qcCAKJQgG9i272tsQA6AA92uzu4WyEAQWAzBpeXtUNJAD5gAgewA7cAPmACh6hLxQA6AAOrqFMhA -DvgPxtmwDrstDLooqpkJ+QgpkADpgNBAD5gAqOiBkEAOeA5LKwoA66HQQBFQBaEBGwLtsLhAF/gD -6Czg/+3v18AX+AKq7LDQQBAIArvoj5fAFwgHqy8QAA8CAOwA2EANAAE/2BApgAGxzOiBkEAOeA95 -7B3IQBEIAqXrGO9ACkgOQugWsEAQaAxRqFWyVcD37DqoQAn4C97aIOsVsEAL+AnF5ajvQAn4D+iJ -ImWd+osY2iDsANhADoAE0uu4kUALuAQp4gDYQA+gARCLGNog7ADYQA6AANDrspFAC7gEIuIA2EAP -oAEQAAAAbBAGKyISJiIQ6eZsABTYAMvqJ7hAECAMgyUKAOoKgiAUgAAIiSIe173srOHADhAHua7M -LcI6J1xf75trwA+AB3TqEMgAGLALfQ+vCu3Js0AU2Az/7O1rwAwAC7jv1OUAF9gP/ekpsEAQUAyC -6xHIQA8YC8srspAJiAylu+sSyEARgAK74hTwABCAC7grIBYtCv99sRIqIAfsANhAC7gB6O75a8AN -EA1KGtgoLCISixGIEuysgMAQSAzS6rvhwA8IDGzsAmxAD2ALy51GrY0MuwLsJbFADBAJtqqZ7dCT -QBQADZnrR8hAEAAMoqjM6YjowBDQC5LrUWxADwgPiu9/60ARgAKI70HIQA8ICQnvJ6hAD2AImOhF -yEASAAKF6EPIQBGAAszosGxAD2AKuupEyEAMoA/w6WBsQA8ID8/pQshAD2APj+9AyEAO+A6w7SnI -QBEAApTsJckACngItBrXSZoTCgBoCQJrCQJrCQJr6EG6QBAgDJPsQNhAELAM0uxA0kAQiAz270vT -QA6ACLDtT9NAD2AIuOhB0kAPgA3Y7U7TQA+AD/jvStNAD4AN2O1N00APgA/470nTQA6AALDvj+1A -D4AN2O1M00AQKAzT70jTIAeYAAkpRDcrRCcrRCYrRCUrRCTtQ9NAD4APmO9G00APgA/470XTQA+A -DdjtQtNAD4AP+O9E00APgA3Y7UHTQA+ADdgtRDDrQ9JAD4APuC9EIuoA7MASAALUDQJrLCAHDAxB -KyAW6f/YQA8IDMyuzOfJy0AQeASbLFww6ie4QAu4AU2KJ8C07ADYQA6AANTqoJJAC7AJHu0isUAQ -oAy2LGIRLvp/7t3lQBAIArvtIslAEAgCzOxhyUAOgAAg62TJQA+gARAAAOoo70ALuAGL7vFrwA1o -DoriANhAD6ABECWQgLFVBQhBCF8MtP/o9efACfgNYxzXU+3vasAOgA/v7kTTQBBwDKYtRDXsRtNA -DvgPv+tH00AQCAKq6m7IQAuQAo8b17TqQ9NAD4AMqOxC00ASgAKk7IztQBQADTvsQdNAD4AMyOxA -00ARCAy77DjvQApIDV8e1v2jT+sA2EAQGAyh6/DRwBAIAtPtR9JAD4AN2O1G0kAPgA3Y7UXSQA+A -DdjtRNJACfgOwYsQ2iDsENhAD5gA1+u4kUALuANE4gDYQA+gARAAixDaIOwQ2EAOgADQ67KRQAu4 -AzziANhAD6ABEGwQBCggBSkKkHmBKMCl7JhrwA6AA7DtILBAClAIWYsni74c14XqKO9ADoAA0Ouy -mEAKUAg9iifqoJFAC7AKxeIA2EAPoAEQAGwQBIkqyZOKmGSgD+sA2EAOgADA7SDYQApQCJnRDwAA -bBAO7EdrwA6AAKXuJbhAEAAM8+g1uEAQAAzS5BHIQA6AA7DTD+gQyEAKUAg7H9aoHtanHdb27Dew -QA6ICLDm9GvADoAJUuoJ2EAOgAZ17M6wIALoAQRvRCpuQickMAXTD9MPekF2LTBuDwIA7lnYIAlg -AQ3iFPAAD+AI5OIA2EAPoAEQaUT0LzBuafHuKDAFdYnojCjaMOsQ2EAOgACS6cXSwAoAC2viANhA -D6ABECQwBeIU8AAIAAikLTBuadG7dUm4jijqOO9ADoAAsevl0sAKAAtf4gDYQA+gARAS1nfoK7VA -EGgMk6vL6mm0QBUIDCKomRjWUQkiEaKi6ZnhwBcIDYipqie0ke4WyEAQiAH4KS0B6ZCUQAgAAAwA -ACktAymcgCiQBymRKQgIQQCIEeigsEAPYAmJ7xTIQA9gCdmZGOiI4cAOgACU7RrIQA9gCJiYFQvq -MOsZyEAOgACQ6RvIQBAQA5zpEfNAEYACsQvSagmCaguSaglCagtSagkCagsSauxA2EAQgAKx7SDY -QAuwBJ3iANhAD6ABEOIU8B/2oA5U2jDrENhACgALKeIA2EAPoAEQEtZB6Su1QBBoDIOry+pptEAV -CAwiqYgZ1hoJIhGioumI4cAXCA2ZqKontJHuFshAEIAB+SktAemQlEAIAAALACktAymcgCiQBymR -KQgIQQCIEeigsEAPYAmJ7xTIQA9gCdmZGOiI4cAOgACU7RrIQA9gCJiYFQvqMOsZyEAOgACQ6RvI -QBAQA5zpEfNAEYACsQvSagmCaguSaglCagtSagkCagsSauxA2EAQgAKx7SDYQAuwBGfiANhAD6AB -ENow61DYQAoACvXiANhAD6ABEAAAbBAGHNbT6GbYQA+YAKLr5dhADoAAke4470AOgAAw7hDIQA9Q -A2nji+fAC6gEY+eo70AOAADK4sDYQA+gARAmpRHsZdhADoAEvuwB2EAPWAs866nIQA6ACKfqcMFA -EAAMsep4kkAKSAxt6niTQA+YALTsAdhACkgMaep4kMAPmAC17AHYQApIDGWNIsjW4gDYQA+gARDa -IOt470AOgADK7TDYQAuQAN7iANhAD6ABEABsEAQU1eAV1lPoQbZAD5gAkuJTtEAXMANEJEDhCYgR -qCLrENhAEKAB9CIiJ4IuIiIU4i+XwAgAAA8iIqeCLiIiFCIs/2QgXCZSiYZm4irkQA74D8/mquRA -CAAADAAAJixIemE/4mjvQA0AAJkoYCbKh2Q/6S0gJsHg5gDYQB8IAS1t6hOjaKJn53C5QBAADYjm -YZBAEMAIeNEPiGR5idHRDwAAAOIA2EAPoAEQ5sjvQBAwB4fWsGVvpGP/4mwQEuyXasAOgACl5Cmw -QA6AA7DuJbhAEAAM0ugrsUAQOA0y5QXyQAxwBlDoEMhAD5gA9eMDgkARwAuC6BHIQApQBzmJKiUW -GeMYyQAZYAN5jkeO7iMiEucjsUAVWAy+63zlQA8oC7N8sQIj4rEc1l/p67ZADoADtOgQ2EAOgADw -7TjvQA+YAOfpeuVADygJk+pQ2EAPaAmp6Y/mwApQByHlANhADQACY9ow6wDYQAv4D6bqGslAD5gA -muWo70ANGA4q7pCpQAgAAAbH78Cl7IRqwA6AA7TtWO9AClAHEtNQF9ZF5QDYQA4IAZMqIhviFPAg -FPADSuUrySAGCAIGiifcUOsQ2EAOgADR6qCSQAuwB3hgAKUudQItdQOadRjWNpl0m3foROtAEJgM -gphy5HDIQBCQDELkc8hADoAAQJ8flRiVHOURyUARQA2z6xnIQA6AAKbqHchAEIgLsxrWKOkTacAO -gADRLRYQ6R7IQBBQBKsa1iMKugLsfYBADCAOyOwLhMAPCAye7LvrQA8IDA3qG8hAD2ALy+sayEAR -AAKh6xCRwAuwA0hkokzsYWrADoAApesD2EAKUAbbjS/TD2TQD+sgsUAPmACi7BDYQA+gAB2MLsjI -wKDrILFAD6AAHNog6wDYQA6AAMDtINhACiALEOIA2EAPoAEQAAAAAAAA6CqwQA+YAKLsGLFAEIAC -0ekA2UAOgAT46YjlQA6AA7Do++fAC7gCJ+eo70ANEAzKjyrrcmnADogAoO+MgcAOgADhDK454hTw -ABI4CuvAoO3Q2EAIAAALAAC4Gn6KCbGq4KnvH/+gCq0pQRod1ecvFhbt367ADRAFyd+Q6wDYQBGI -B9kd1eHrANhADoAAnu3SkEAIAAAOAADp4NhAEKAHj+uxkEAXeAuN7dKQQBdgBbkd1djpMKlADHAK -oOjI4cAQwAvE5LvgwA8ACurk5OHAD2AKuuwPhMAPCAnJ6pnrQBA4DaLsS4DADwAOT+SMacAPYA5O -65nrQAwQCqDrKKtADwgK6g6qAuiq60AQsAyB7bvrQA9gCUntJKtAEFgMQu4lqx/vmAF4KCIXmHMo -IhaYcigiGZh1KCIYmHQoIhOYdygiEph27nLAQBCoDIKYee1zwEAQoAyCmHgY1a+bfZp76XrIQA9g -BISUcOR470AJ+A3RAAAAAAAAAOsokMAPmACk7CiRwAuQATLjqO9ACfgNVOwqacAOgAOw7iW4QBAA -DNLqUNhAEAgCmukryUAKUAZdgyca1OvjMJFAC4gJhBzU6B3Ulx7Vluuo70AQAAzy6jjvQAuICTmI -J+csyEAQgAIo6ijvQAuADkjiFPAgCSABCuIA2EAPoAEQiyoqEhXpFLFAERABewCEBOiv4MAQQAzX -70/IQBBIDOcKnBjsTshACAAAFwiuEACEBAqdGO14yEAPAA6OnnnApeynacAOgAOw7xSxQBCoDIHo -EMhAClAGNSsKciskBSoSGBvU0uyq4cAQIAyRq6rpoMggAXACBoonwLHsANhADoAA0eqgkkALsAac -4qjvQA+gARAAAAAAAADqANhACfgN1OIA2EAPoAEQ7LBpwA+YAKTro9hAC6gC58mkK0ICJ6YK46nI -QA6AAMHsqMhADQAByykSGmWb82P7+C9a3OsA2B/uwAvfY/2jAMDK7TDYQA+YALrqSO9AC4gPcGP/ -0gAAAOsZsUAPmACi7NNpwAu4AU/iANhAD6ABEOoo70ALgA4cEtTCC6gRqCLLpgzqMCsihYuwsKKs -u+oo70AKUAveHNU7KsJ/6xDYQA+gAhIAuxoLqgLqz8vAClAMCuIA2EAPoAEQwKfrENhAC7AJNCwi -fywmg+IA2EAPoAEQAABsEAQU1IfiQbFAD5gAomQgjyVC1omh7U22wBAADIqiW+m74cAPCAWVDVUI -rbvtINhADoAIwI5X0w/l7rBAD5gAJW3aUuRat0AV2Axl4wDYQBXgDOXtENhADoAA8Olm6MAPaASE -5N/mwA9QA23mANhAESAJPy9SveOjsEAQEAxKwHDk7ujAD2gPP+/X5sAPUAbtd2gUJVxArCXtINhA -FMAIteIA2EAPoAEQKFLGsYjoVszAD6ABEAAAbBAQwKXs3mjADoADsOUpsEAQOA1y7hfYQBAADNLu -JdBAENgMgugQyEAOgADw5weCQBHAC4LoEchAClAFr4kq4hTwAAgIA3ksUgeMziMiEtMP5iOxQBVY -DNztbuVADygN037RAiPCsS7Cq+pQ2EAOgAO07D1owA6AANHub+VADygO4+8A2EAPaA7+7TjvQA9Q -D+3uaO9AClAFmOQA2EANAAJj2jDrANhAC/gOHOoXyUAPmACa5KjvQA0YCkrukKlACAAABsfvwKXs -+2jADoADtO1I70AKUAWIFtS84wDYQA4ADlQqIhtuo3IjJhuNL8je6yCxQA+YAKLsENhAD6AAHYwu -yMjAoOsgsUAPoAAc2iDrANhADoAAwO0g2EAKIAm53iDqUNhAEAAM8uxLaMAOgAOw7QDYQApQBXDi -ANhAD6ABEAAA6yiQwA+YAKXsKJHAC5AANOSo70AJ+A+A7EpowA6AA7DuJbhAEAAM0upQ2EAQCAL6 -7yvJQApQBV+DJxrT7eMwkUALiAiGHNPqHdOZHtSY66jvQBAADPLqOO9AC4gIO4Mn5izIQBCAAjPq -OO9AC4ANSuIU8D/7QAFaYAL0AAAAAADpKrBAD5gAoux470AOgASI7QDZQA6AA7DtmeVAEIAC0emL -58ALuACr5qjvQA0YAMqPKi4aAOuqa0AOgADR7xbJQAwoD/gP7TniFPAAEiAK28Cg7NDYQAgAAAoA -uBp9igmxquCp7x//oAqsLlEaHNRq7M+uwA0QBV7rANhAEaAHzhzUZusA2EAOgACO7MKQQAgAABEA -AAAAAOjg2EAQoAee67GQQBd4C5zswpBAF2AFuBzUXOlAqUAPCAiP6gqGwBDAC+Xku+DADwAK6uTV -4cAPYAq67g+EwA8ICcnqmetAEDgNou5LgMAPAA1P5cRowA9gDV3rmetADBAKoOsoq0APCArqDaoC -6KrrQBCwDIHsu+tAD2AJWewkq0AQWAxS7SWrQBKYAXgoIheYYygiFphiKCIZmGUoIhiYZCgiE5hn -KCISmGbtYsBAEKgMgphp7GPAQBCgDIKYaBjUM5ttmmvpashAD2AFhZVg5WjvQAgAADEAAAAALWUC -LGUDmmUY1CKZZJtn6FXrQBCYDIKYYuVgyEAQkAxS5WPIQA6AAFCfH5MYkxzjEclAEUANtOsZyEAO -gACm6h3IQBCIC7Qa1BTp0WtADoAAwSwWEOkeyEAQUASrGtQPCroC7guEwAwgDejufIBADwgNneDM -4cAPYAvb6hvIQA9gC8vrGshAEQACoesQkcALsAE0yaHsIGjADoAApesD2EAKUATHY/0KjioqEhXp -FLFAERABfgCEBOio4MAQQAzW6F/IQBBIDOYKnxjvXshACAAAFwiuEACEBAqdGO1oyEAPAA6OnmnA -pexPa0AOgAOw7xSxQBCoDIHoEMhAClAEsCwKciwkBRvTTukUsEAPCArHq6rpoMhACfgM0OoA2EAJ -+A3W7BlrQA+YAKXro9hAC6gBbcmkLVICJqYK46nIQA6AAOHuqMhADQABzSkSF2WcMWP8Ni5a3OsA -2B/vAAvOY/2oAMDK7TDYQA+YALrqWO9AC4gN9mP/0gAAAOo470ALgAyoE9NOC6gRqDNkoEcM6jAr -MoWLsLCjrLvqOO9AClAKahzTxyrCf+sQ2EAPoAITALsaC6oC6s/LwApQCpZj/CUAAOoo70AOgACw -7BtrQAuwD8Nj/BDAp+sQ2EALsAe8LDJ/7DPMQAn4DABsEAoc07aVGOYXyEAOgACl50trQA6AA7Di -FshAECgM0+QZyEAQIAzj5HC3wApQBGmIMOp+sAAEgAK4FtOqkxXiNbBADQAEisAwGNLLKIKXJXLq -qDgJiBGoVeUayEAQOAxVhV7saO9ADoAApetD2EAPmADi7Vq2QApQBFcpUqqKfuMxkEAReAQpejO9 -wGBkYFoqQhUroQLiANhADQABe4xNLMECLnIT7U6wQA0AAHx+01bRDy9SreYasEAQCAL/713OQAn4 -D8uTFeowkkAL+A5W7GhrQA6AA7DmqO9ADoAApe1gsEAKUAQ7ZW+kwKXs92tADoADsO1o70AKUAQ2 -4gDYQA+gARAAAADjyWpAC6APeSMymeoUyEAQmAyH4nq2wBB4DNSqM+kz4cAOgABQAyII49jvQA0A -A1iKTes470ALsARE63OxQA0IBarlUZBAEAgCM+kA2EAQcAU7mU/rc7FADoAAMHtT0I1P5QDYQBBw -DPTlEMhAD5gA4+zVa0AOgACl6wPYQApQBBMlJTXmKchAEDgNtu3P2EAQKAyh7xmwQBA4DcLvLchA -EEAM4e4uyEAQIAwx4yvIQA8oDNzqoLBAEDgM0e0vyEAMEAuw7LvrQBAoDNHrJ9BAEDAMsesgyQAE -AAK6jtTuIslAECgM3S0mE48V7ARrQA6AAKXv9qhADoADsO8kw0AKUAPz7mm7QBA4Ddbsk2tADoAA -pe8WsEAOgAOw7Q2CQApQA+stQhUc0zPt0qhAEHgM5+IQyEAPmADz6CCwQA6AAKXlEshADoADsOgR -yEAKUAPf0Q8AAAAAAO4qsEAQKAyxKixI7wDZQA6AAcDrsJFAD2AO/u4qyEAKSAi4ixXsAdhAEsAC -ouuwkkAKSAizLiIS7SOxQAn4D1WKTes470AOgADB7RDYQAuwA8Me0mCMKiVBIO9OsEAQCALT7U/I -QA9gDOylNeUFjsAQCAL/707IQA+YAD3sKshACfgOkWwQBOs8sEAQKA2j5zJqQA6AAEDmCd/ADoAJ -wuVZ2EAQaAHrKPr9CLsBKzYM4hTwAAXICMrpCdgABYgIWus52EAQeASae6EH4gDYQA+gARCJOCJy -jOw5sEANAADpmcCNOJzRlDiUOYo35TCwQBOQDIfAsOqusEAOqAfA6FXowApICKQmNAWUOJQ5lDqU -O5Q8lD2UPpQ/JDYQJDYRJDYSJDYTJDYUJDYVJDYWJDYXJDYYJDYZJDYaJDYb5DzJQA+YALXkPclA -DoAAwOQ+yUAOgADR6iexQAuwA4ApIhqwmSkmGuIA2EAPoAEQZC9aLSISft48fKFe5DrIQBEoCFp/ -vx3aMOtQ2EAKAAbIjjzA+O/u60AOgAAg7jzIQA+gARDAKAKyApI84gDYQA+gARAAAIon6qCRQAuw -BeIe0fotIhIqMAWLPOwp2EAPKA3t7SLJQBUoCMp/t53qN7BADvgPzgy7AZs86qCRQAuwBdWJOOJ8 -tEANAAEJjTmZ0I44neGUOJQ5ijflMLBAE5AMh8Cw6q6wQA6oB8DoVejACkgIXSY0BSQ2HiQ2HSQ2 -HCQ2GyQ2GiQ2GSQ2GCQ2FyQ2FiQ2FSQ2FCQ2EyQ2EiQ2ESQ2EJQ/lD6UPZQ8lDvkOshAD5gAteQ5 -yEAOgADA5DjIQA6AANHqJ7FAC7ADOCkiGrCZKSYa4gDYQA+gARBsEA4c0oTjJ7BADoAApe0gsEAO -gAOw7iW4QBGoC/LoLLBAEHAMM+gQyEAKUAMvjyzlENhADoAAQOaHakAOgABy6yuwAAwAA98qITW1 -qgoKT+olwwAUAAPvK7EZ4hTwAAoACauKJ+qgkUALsAWT7LZqQA6AAKLvLLBADoADsO0lq0AQEAPj -6DnfwA74D17oJdBADygPX+8syEAUAAJe5+LRQApQAxEa0XkY0X4c0cwroqHpZLPAFzADqiqg4e+H -aUAPCAubq5nkUdVAEHgB+imdAemQlEAIAAAKKZ0DKZyA7BrIQBA4DenoFMhAEAAM0u8WyEARSAu5 -7g6CQA6AAPTo3eHADwgODu/d60APYAvr7RXIQA9gC8ubGArqMJQb6hnIQBAQA5PpEfNAEYACoQrS -agmCagqSaglCagpSagkCagoSatog7EDYQBCAArHtINhAC6gPoS8iDOQlw0AR2AHPKiAF6ynYQBBo -Ae8p+v0J+QEpJgzsWdhAEPgEuu0J2EAQuATK4hTwAAVACNouCpPiFPAABOgI6uIA2EAPoAEQJSYS -JCYQJCYVJCYR5CPJQA+YAKLrOO9ACgAHdOIA2EAPoAEQAIon6qCRQAuwBTvkJcNADoAApewhakAO -gAOw7SCwQApQAsGDJxrSD+MwkUALiAXoHNIMHdD6HtIL66jvQBAADPLqOO9AC4gFnIMnIzwQ6jjv -QAuACq3iFPAgBrgBCogsBYgCmCziANhAD6ABEIko42qzwA0AAQmKKZmgiyiasZQolCmKJ+UgsEAT -AAyGwLDqrrBADqgHwOhV6MAKSAeqJCYeJCYdJCYcJCYbJCYaJCYZJCYYJCYXJCYWJCYVJCYUJCYT -JCYSJCYRJCYQlC+ULpQtlCyUK+QqyEAPmAC15CnIQA6AAMDkKMhADvgJkOkl0EAOgADR6jexQAuw -AoQqMhrqr5fADoAAIOo6yUAPoAEQ7iW4QBAADNLqUNhADoADsOwtaUAKUAJ/4gDYQA+gARDqOO9A -C4AKlBPROguoEagzy6UM6jArMoWLsLCjrLvqOO9AClAIVipingAxBABbGguqAupuzUAKUAiEjCwF -zAKcLOIA2EAPoAEQwKfrENhAC7AFrY0sLjJ/7jPMQA9gDV2dLOIA2EAPoAEQAABsEASJKBvQyugp -sEAOgABQ47y0QA0AAOmZgIoomKGVKJUpiifosrPAEAAMQixacOqusEAOgACw6ETowApIB1uVKJUp -lSqVK5UslS2VLpUvJSYQJSYRJSYSJSYTJSYUJSYVJSYWJSYXJSYYJSYZJSYaJSYb5SzJQA+YALTl -LclADoAAwOUuyUAO+AmQ6SXQQA6AANHqN7FAC7ACNioyGrCq6jrJQA+gARBsEAQZ0XGIKooo6wDY -QA6AAMDpiOtADoAA0ugqyEAKUAKC0Q9sEAToWdhADQANwuo3sEAQKA2zLAqQ0w/qrrBAEOAEi+05 -2EAQoATL4hTwAAagCNviANhAD6ABEBvQ5y8iGOMgyUAUcAza6XRpQA6AADDjJslAD5gAou3Eg0AQ -UAyP7e6DQAwYDNfpzODADwAOLuRE4MAMKA3Z593gwAwoCIjuROtADwgIaO1E60APYAjI6SfJQA9g -BITkIslADvgI6u7008ALsA0xLyIS7iKwQA+YALrjqsBADoAIgOOkyEAPYA+P7yLJQA54Br6IouxA -2EAOgADT6ijvQA+gABjiANhAD6ABEMCi7HRpQA6AA7DtOO9AClAB8uIA2EAPoAEQAAAA6iixQAv4 -D7biANhAD6ABEGwQChrQUxjQUyuioeiGtEAXMAOq4hfIQBcIDarlEchADwgLm6uI6RDYQBCYAfor -jQErvIDrEshACAAADQAsjQMszICcEhjQW+oXsEAQIAwjHtBakhjqp7BAEDgNIh/QL58T4gKCQBBw -DKriEMhADwgN4q7d6hbIQA8IAsKoIu0VyEAQEAOqmhQppBKOF47i5gzZQA4IDu6FNi8iOuZV5cAQ -KAyRJlxPBkYU6Zu1AAzoC28oIjmKE+mH5QAMgA+Y2HDqAOzAGDgBNggCa4wSGNDGihjtx7hADvgO -ke9Qk0ARSAvM73PIQBAADOrocshAEDgNuul40UAQOAuq7Q2CQA8IDo7rK4BAD2AO5uq74MAPCA0N -6gqIwA9gDNztAWhADwgKyutfaEAPYAq67nHIQA6AAODudchAD2AM3Ox0yEAPYAq6mnAN6jDsN7BA -ECgMs5115X/AQBIAAqcMuwjsWO9ACkgGdSkyB+g2sEARQA3zBZkI6TfIQBAwDJEFiAwoNgblkcxA -DQABP2WACxzQICqSgAyqAiqWgOlwkkAQIAyBCANpCUJrCANoCQJrjTbmKctADnANnYoY6wDYQAuw -DKaIGC+CEi4wKCkKgOn/60APmAC674LJQA0ABJ7ojGhADoAAoCq0Eiq1CJiyjBiMwmTARY0RDQ1H -aNIdiheKp8C07ADYQA6AANTqoJJAC7AB2uKo70APoAEQ4gDYQA+gARAY0CuNOO2kyEAQSAzDnKXo -oshACfgPuADsQNhAEEAMoe0w2EAPoAAYY/+mixCKF+wA2EAPmADW67iRQAuwDC6NF+x6aEAOgACl -7hCwQA6AA7Dt0LBAClABTeIA2EAPoAEQjxGNF+z5aEAOgACl7w/yQA6AA7Dt0LBAClABROIA2EAP -oAEQAAAAbBA2IyIYgzeDPu0wuEAOgAP/7jO6QBD4DUPsPLlAEQANs+kxukAQ6A2j5TK6QBDwDYPo -u+HADwgMjOrM60APYAub6LvhwA8IDIzozOtAD2ALW+i74cAPCAyM5MzrQA9gC+vtDYZAD2gEy+og -sUAZUAAELqIS7sjowBBQBM5mgAIsphIsohPTD9MP7LnowBBQBLxmkAIrphPqMtggFCgMDeUA2AAU -SAit60LYQA6ACGDsYtgABoAIvecQ2AAOcAjNw+J+0RriFPAABHgI/eog2EAOgAOw7CZoQApQAQrR -DwAvMBgkMBnoOrlADwgPjwT/AuQ7uUAPCA+PCP8C6TS6QA8ID4/jKdhAD2APT+/xkEAQgAxC7ybJ -QA14DFniFPAgEkABCWuUtWqSsuzkaEAOgACl6wPYQApQAPMoQG5pgZwpQAVzmZbnJdLAD5gApOsQ -2EAKAAQ60Q8qMBgrMBnsOrlADwgKiguqAus7uUAPCAqKDKoCCKoRC6oCsarqJslAD6ABECwwGC0w -Ge46uUAPCAyM5CCxQA9gDNztO7lADwgMjA7MAutOusAPCAyMDcwCsczsJslADngCexvQK+pI70AL -sAv7LDAB5szlQA+YALrsqNJAEKANoywwFS08MOc0uEAPCAqK7KrrQBCwDcPoNbhAEIANk+h34cAP -CAqK7KrrQBC4DcPomeHAD2AHh+g2uEAPCAqK6HfhwA9gCsrquMhAEIgNo+h360AQOA2D7bXIQA8I -B4fqmetAEJANo+W3yEAPYAeH6PZnwA8ICYnqmetAEJgNo+K0yEAQEAz06HflQA8ICYnntshAD2AJ -qem5yEAOcAa/iLLqSO9ADoAAxO0w2EAPoAAY0Q8qMBjrOblAEIAMQuw6uUAPCAqK66rrQBA4DHTr -O7lADwgKigyqAgiqEeuq60AQcAx36aGQQBAQDcPpJslAEEgIqbKrKyYWZc4J6ijvQAvwATstQG7i -FPA/79gBXeoY70AQEAO37AXZQApIBWcezuwZzuwq4qHplrRAFzAD7i7g4emq4cAOgADyqpnvENEA -B1gB/qaZYADn2iDrOO9AC4gJB9EPKjAYKzAZ7Dq5QA8ICooLqgLrO7lADwgKigyqAgiqEQuqArGq -6ibJQA+YALPqKO9AC/ADHdEPAAAAAADsHGfADoAApesD2EAKUABjK0Bu0w/TD2ixbSwiEnjHH4on -wLTsANhADoAA1OqgkkALsADNKyISLPp/DLsBKyYSLiIYG8+q7cjfwA+YAKLt5NPAC7ALfSgiEo8i -5aLRQA+YALrlqMBAD2AIaOgiyUAOaABviKLsQNhADoAA0+oo70APoAAY0Q8AKUAFc5mL2kDrENhA -CgADj2P/fimdAymcgOUR0UAQAAzkGs6qHc757RrJwBA4DfnqFMnAEUgLyelKZsAOgACE6RbJwAwQ -D/Do7uHADwgPD+ju60APYAz87hXJwA9gDNwsFlgL6jArFlnlG8nAEAgDoeqgk8APmACRCcJqCtJq -CYJqCpJqCUJqClJqCQJqChJq6kjvQA6AAMTrEZhADoAA0uuwkcALqAzX0Q8AAGwQCCoiGCqgdCgK -juIU8AAFIAiKKyAF7PZnwA0ACZvkOLpAEEgM0+jP38AOgAjr5ASGACM4Bdwcz0PrIrFAEFALU+cT -2EAOgAJl5QWMwA9gC8vrIslAEBgCVehV5QAPcAjqiCzqIthADoACwaWI6CzIQBJQBMR2QUJ3QT96 -QTwpIhMqIhGlmekjyUANIAJ6i6x9tx+Iq+sA2EAOgADA7SDYQA+gABjAkCkmEeIA2EAPoAEQAOIA -2EAPoAEQwKXsZGfADoADsO1I70AKSA/n7Ti7QBCADKIuMDkvMDrqoLvADwgNjQ7dAu47u0APCA2N -76aQQA9gDf0A8AQI3REO3QLtD4ZAD5AO0err4aAmyA4uC/sCmxTDsOoQyEAQIAzB7BHIQA6AAKXs -0mfACkgPzxzONxvOluzItUAQIAzRLyIYK7KKrczv9LvADwgMnKy76yHJQA6ACNvutbgAHKgO3y0K -mui52AAcUAje6WnYABwQCI7qmdgAG9AInusVyAAjiA6uwsHiFPAACCgIxOIU8AAH6AhkwMDtOLjA -EiAN4+k6uMASSA3z6ja4wBIoDYPo7uHADwgNje/d60ASWA3z6O7rQBI4DYPo3eHADwgOjuru60AP -YA2d6N3hwA8IDo7o7utAD2AN/Q7fDOogsUAZIAAPL6ISfvEID+gMZoACLqYSLqIT0w994QgO2Qxm -kAItphOKvC0KBA8CAA2qAuq8yEAT6ARk4hTwAAngCHTC4eIU8AAQUAjkwvLiFPAAGygI9GTOO2AD -iQAAAAAAAOgw2EAMOAm84hTwH/BQD5grMCwsMC3tPrpADwgLiwy7Auw/ukAPCAuLDbsCCLsR7Lvr -QBAgAqXrpefACfgN2wAALDArwNEM3DnssdCf9+gOZC4wKX/ngO87uMASOA1j7jS4wBJADdPpObjA -EigNo+c6uMASMA2D6N3hwA8IDo7q7utAD2ANnejd4cAPCA6O6O7rQA9gDX3o3eHADwgOjubu60AP -YA39Dt8M6iCxQBkQAA8vohJ+8QgP6AxmgAIuphIuohN94QgO2QxmkAItphMuMEAvMEHoMrjADwgO -jg/uAu8zuMAPCA6OCO4C6O7hwBBgDNvqimbAD2AO/u7hkEAOgAD07ibJQA9gDf2dvOq7yEAJ+A7i -AAAvMCniFPAACDABjygwLCkwLeo+ukAPCAiICYgC6T+6QA8ICIgKiAIIiBEJiAJlgNwtMFQuMFXv -NrnADwgNjQ7dAu43ucAPCA2ND90CCN0RDt0C6iCxQA0AC60uohjiFPAABXgL3i22Eu5oZsAOgADw -77XJQBKADZPvs8lAEeAN8+oxucAR6A2D7rvIQBHwDePomeHADwgPj+j/60ASkA2D6pnrQBKYDaPo -meHADwgPj+iZ60AR+A2D7v/rQA8ICYno/+HAD2AJqem0yUAPYA+P773IQAn4DggpMEAqMEHtMrjA -DwgJiQqZAuozuMAPCAmJDZkCCJkRCpkC6CZmwBAIApkpJhbou8hACfgN0yoiECugBSwKleIU8B/h -sAjL6xDYQA6AANLtJdLACgACROIA2EAPoAEQwKLsRWbADoADsO4gsEAKSA7vKiIQY//BwKXs9GbA -DoADsO1I70AKSA7pKiIYiqfsA9hAEUACs+qusEAKSAPH2iDrWO9AC/gNosCwKyYR4gDYQA+gARDA -pe2wsEAQkAzC7BDIQA6AA7Dsw2bACkgO2O07uMASOA3j7DS4wBJADbPpObjAEigNo+86uMASMA2D -6LvhwA8IDIzqzOtAD2ALm+i74cAPCAyM6MzrQA9gC/vou+HADwgMjO7M60APYAvbDL0M6iCxQBmY -AA0tohJ80QgNzgxm4AIsphIsohN7wRkMvwxm8BPro8lADoAAgCgmEeIA2EAPoAEQAMCQKSYR4gDY -QA+gARAsMEAtMEHuMrjADwgMjA3MAu0zuMAPCAyMDswCCMwRDcwC6tBmwBAIAswsJhaau4q36ziS -QA6AA8DqrrBACkgDhWP6mce/6xTIQAn4CyrAoug5u0ARwA3z7hWwQA+YAN7s72XADoADsOk6u0AP -CA+P6P/rQBAADO7oO7tADwgPj+n/60ARQA2T6RDIQA8ID4/o/+tACkgOjGP+b2wQBigiGCiAdCkK -jnmBVykgBWSQURzN6xjNRY006TawQBBYC/PpEMhADoADsOo/uUAMeA7Y6hHIQA8oDY3qUNhACkgO -eikiGImXKjELiZ6/qugwkkAMsAqk6ZCTQBhQADoIA2gJAmviANhAD6ABEABsEASJNw8CACiZFIWZ -ZIGX7lOwQBAQDNXqUNhADoADsOzsZcAKSA5lKyAHHMzmCwRB7l5kwA8ICsSsqimiOg5OCu7rtSAL -WARJLaI5CyZA7+plwA8ABqbu3OUACqgP7S4hBy1RCIsg4EThwAygDuDkANhAD2ANTeTFyEAPCA7O -5MfIQA9gDm7voGXAD2AO/p/G7sDIQA8IC4vudWXAD2AN/e3EyEAOgADU7sLIQA9gC9vrwchADoAD -sOvDyEARAAJ8BQNpB0JrBQNoBwJrGM2jmMkczaMtpjnqUNhACkgON4k4yprsCmXADoAApe0wsEAO -gAOw7jW4QApIDjCKOeQ7yEAQQAzDnKCLOJqxlDiUOY087rnfwBDQAf0uNAWPLigsOA8CAHjxWuIA -2EAPoAEQHszFiDcp+sDqad/AFGgMXuo10EARAAL45DzIQA8oD5/khMFAEgAC/5+Jn4ju4bPAEAAM -s8DA6lixQA6AANHuu+jAC6gODCtSGbC761nJQAn4D57ApeyHZcAOgAOw7TDYQApIDgoqIhDrMNhA -CgABVeIA2EAPoAEQ5QDYQAn4DmTApezmZcAOgAOw7SKwQApIDf+MImXPYNog7BDYQBDAArTtQNhA -C7AI0+IA2EAPoAEQAAAAbBAGkxIFD2zqUNhADoADsOz1ZcAPmADT7jCwQApIDe4WzHATzPyNEhjN -WxfNWegQyEAQmAxN7dqqQBeAAojoEchACAAACgAAAAAAAOpQ2EAOgAOw7BVlwA6AAFTl1eXAD5gA -9O5Y70AKSA3bLiAHGcxd7g6CQBAADMLqWuHADwgLzqa77a+SQBHQDIvtTe1ADwgMjOzc60APGAme -6Zu1AArwC9gosjmLEOmP5QAKiA+Y7PHIQBCAAp/n8MhAD4AORe7zyEAPgA6l7vLIQBEAAo/rAuzA -EAgMsQkSapP26vfIQBB4AprrAOzAD4AJlG2ZAggCaywgBwwMQYoSDMwR6ljhwBFQC7qoRKbMBbsM -7cnLQAzwDbDtqsJADngDLYkSiZjlANhADQABSYoSi6mVq5mwjKibwZWolamPEhbMSY387mnfwBRo -DEbu9dAABAgD/YsSjbfuDN/AEQACzeW8yEAPKAzs5dTBQBIAAsyc2JzZ7mGzwBAADLsqQhjsANhA -DoAA0e676MALqA2NKUIZjy7pn5fAEcACgulJyUAQYASP4gDYQA+gARDApezPZMAOgAOw7UDYQApI -DYgqIhDrQNhACgAA0+IA2EAPoAEQK/IS7k2yQA6AAMDrioRADoAA0QqqD+sLj8APGArq6qCwQAuo -DXOMEuXCyUAJ+A9XjyLJ8IISJCYT4gDYQA+gARAAAAAAAOvokUAPmACi7BDYQAuwCEeCEiQmE+IA -2EAPoAEQAAAAbBAMGMvRGcvRK4Kh6Za0QBcwA4jogb7AD5gAouM658APCAubq5nskZhAEIAB+OzA -lEAIAAAOAAAAACydAyzMgO1bZ0AQkAg66zuwQAgAAAwAAAAAAADHv+0A7MAPmACRCQJrCQJrCQJr -CQJr5BDxQBEAApEJQmsEA2gJAmvtx7hAEAAM+hjLtOgSyEARSAuc7CBkwAwQDdDsFshADwgNDej/ -4cAPYAnZ7dpnQA9gCcntEMhADoAAxOkUyEAPYAnPmREI6jAlFDErFRzoFchAD5gAse0g2EAOgADg -7hfIQA9gD9/vGchAC6gJ69EPAAAAbBAEFMuVE8xE6CyoQBTYDEQjMomoRAlEEaQzhDcoIBMkQg7K -gSsKAOVIkEAOgA7A6ljvQApIAifrIJJAD5gApewjuUAKSAH+KCASDwIAyobkQZhADoAAsOwO2EAX -QAJE6kjvQApIAhvrIZhAD5gApOwiuUAKSAHy6FjfwA+YACPoNdBAD6ABEGwQBBjLcxTLc+ksqEAU -2AyII0KGqYgJiBGoM4o3JEKM7APbQA6AALDqrrBACkgCBypCFuwA2EAQYAuy7RDYQAuoDPUby2Xr -LMBADvgPr+o7yEAO+AiV6TXQQA+gARAAAGwQBBXLXCRSjCpCFiihAiMhDMmC6zjvQAuoDQvJouIA -2EAPoAEQAADiANhAD6ABEAAAKkIW6zjvQA6AAMHtENhAC6gM3BjLSiiCmyRShqg1CVURpUSFRywg -E4VeyMi4WusgkkAKSAG8LCASyM7rIZhAEAgDpeqolsAKSAG3KSEO60CwQA74CMbrJchAEGgLoupI -wUANAAHJk0spRRnjLMBAD5gAJOxF0EAPoAEQAAAA40vIQA6AAe7uScFADvgI1uMswEAPmAAk7UXQ -QA+gARBsEATmKO9AGLgANCUwAOVg0EAQCAIz5mGQQA0AAGXRD6JJwIDokNBAD6ABEAAAAABsEAjA -UekqsEAOgABA6xJkwA74CO7tNWdADogIYOxZ2EANAAP5KpII56jvIAQgAQPsqJMgAfgCA+IU8CAT -4AMD4hTwIBPwBAPiFPAgCIAFA+IU8CAM+AYD0Q8AAAAAAADiFPAgETABA+dI7yAQUAIDY//EiK58 -gSeKfomg66GwQA0AAOmZsI2gm9GUoJShiH7A8eyI6MAOgADgCP44ZO/XnH6cf+p470AL6Arw0Q8A -AC+iEimiGOv/5UAQEAyqL3YSLpR07CXQQA0AATriFPAABsAB6seNCKgBmHIpchLiFPAAC8gC6Ygq -iogcy+vuJbhAEAAM0uqluEAQAAz6mhCJgOkRyEAOgAOw6IW4QA6AAKXoEshACkgMbYsni77A46a9 -LtSS5dPVQBAoA8skxGUkJhDkJclAD5gAouQhyUAQEAO75CTJQA6AANDlIslADoAAwOUjyUAKSAxH -0Q+DJxrLquMwkUALgA+DHMunHcqWHsvL66jvQBAADPLqOO9AC4APOIMnIzwQ6jjvQAuABEniFPAg -DagBCogsBYgC6CzIQA+gARAAAAAA4hTwH/l4D61koWTsAN/ADoAAsO0P38AQkAmsCooU67iQQA0A -Acp6yPF60Au0u+pK7UAIAAAGsbsKGhRlr/facOz/38ALsAQZY/7niJgcy6rtILBAECgN4uiFuEAQ -AAz4mBCLkOsRyEAOgACl6ZW4QA6AA7DpEshACkgMKokniZ7qKO9ADoAAwOuSmEAOgADQppnlktVA -CkgMDRvK6SpyEiz6kuwl0EAPYAq66nLJQA+gARCKd+qgkUALqA6OHMqmK3ISDLsB63LJQAn4DnSN -TsPI4hTwAAUQCM3nSO9ACfgN8ihCEi9CGOuI5UAQEAykKEYSLvR07CXQQA0ABup+p1HnSO9ACfgO -JwAAAAAAAADqeO9AC+gKa9EPinfAsewA2EAOgADR6qCSQAuoDHEpcGVokUtokljiFPA/66gDWdpw -6wDYQA6AAMDtINhACiAB09EPetAJ50jvQAn4Dq4AAOdI70AJ+A3P50jvQAn4DcfrANhACfgOyudI -70AJ+A186njvQAvoDJfRDwAAAAAAAOp4sUAL+Ams0Q8AAAAAAADqOO9AC4AD+BPKnguoEagzy6YM -6jArMoWLsLCjrLvqOO9AClABuhzLFyrCfwAxBABbGguqAurPy8AKUAHnjCwFzALsLMhAD6ABEMCn -6xDYQAuoDxCNLC4yf+4zzEAPYA1d7SzIQA+gARAAAABsEASKLCkKlesg2EAOgADk7q/rAAcoA9qN -J4zeKCAF7yzIQBAQA8zrwNEACIgImIkqg5gqMhIo+o3olNOABoAC6hjLJ4QnCKgB6iBnQBCAAkTo -MslAC4AO2hzK/h3J7R7K/uuo70AQAAzy6kjvQAuADo+EJyRMEOpI70ALgAOg5RDYIAbIAQqLLOoq -sEAQkAyD5AjYQA9gC1vrLMhADvgInOmk08ARIAGIijfAtOwA2EAOgADU6qCSQAuoDAorMhIs+n8M -uwErNhIbyufqOO9AC7AGvC4yEu0ysEAOgADw76jAQA+YALrvotFAD2AOTu4yyUANAANd0Q+NIOzf -ZkAOgACl6wPYQApIC4TRD4o36qCRQAuoDfUbyg0qMhILqgHqMslACfgPHYii7EDYQA6AANPqOO9A -D6AAGNEP6tCRQAuoDemLJ4u+2iDsGmZADoAA0OuymEAKSAta0Q/qSO9AC4ADhhTKLAuoEahEyqwM -6jArQoWLsLCkrLvqSO9AClABSBzKpSrCfwBBBABbGguqAurPy8AKUAF1Y/7qwKfrENhAC6gOoSxC -f+xDzEAJ+A7aAAAAbBAEHMrP7fxmQA+YAKLu7GZAEBADs+u4k0AL+Abe5KjvQA4AAOrlwNhACAAA -PwAAKSBuwGLoENhAD5gApuuJZUAPWAqY7ADYIAXAAQrlrt+gCBgCCspf2kDrANhADoAAwO0g2EAK -GA+C2iDsi2ZAEBADs+1W2EAKSAsl4ljvQA+gARAAAAAAAOwrZkAOgACl7UCwQA6AA7DuR7BACkgL -MSogbhvKrJQq6UqwQA0ADcoLmwKbSo8sBv8C7yzIQA74COjuRNPAEBAD0yzQaS/Qau7busAPCAyM -D8wC7dy6wA8IDIwOzAIIzBHtzOtAD5gApOxIw0AL+AVe4qjvQA+gARAosn8PAgArghMojEx4sU+J -sY6wLpYALbIAKdYBLLYA7LHIQA0ABcvvSrBADoAAUOlAsEAX+APL6c7LQBfAAovoR8hAD2APr+9K -yEAJ+A8JAAAAAC2yfyvSES3cRH25C+VP38AJ+A7xAAAAAI6xiLCY4I+wnvGcsOyxyEAOeArL5QDY -QAn4DtHpSshACfgPKWwQDBzJYhjJXBnJXO76ZUAPmACi64G2QBcwA4jplrRAFwgNiOQx0UAQAAz6 -7hbIQA8IC5urmetFZUAQgAH4KZ0B6ZCUQAgAAAsAKZ0DKZyAKJAHmxLsEMhAEUgL2ej/4cAMEAiA -4IjhwA6AAJTp/+tAD2ANje8RyEAPYA3tnRQM6jDsFchADoAAsOsXyEARAAKRA8JqCdJqA4JqCZJq -A0JqCVJqAwJqCRJq6xjvQA6AAMTtINhAC6gHg9EPbBAEE8kvJTKMKFIXKIECFMkr6mjYQBQwDGPn -XJLADQgGaOhLtUAQKAySqYgJiBEIZggpYAV6kQUq+oYqZAUqUhdbRfwZyPUkQpqIKOM2tEAOgADA -qkTpROHAD5gAuqQz7DHJQBA4DEPsNMlADBgIjuk+yEAOgACh6D7SwBBwDEQqNhIqNhPqSO9AC4gJ -o5Y77WipQBDIC+bs0WZADoADsOoA2EAQKAyC6jXDQA74D5/pP8hADoAApeg9yEAKSAqWwGDqQphA -D5gAsuwF2UAKQA91KkKIDwIADwIA7CDYQBBoAEorMG8MuwIrNG/uQNhAEGgAOi0wbw7dAi00b+iA -2EAQaAAqLzBvCP8CLzRvCo1X7DDYQBB4AFopMG/AsQuZAik0b+tMtEAQeAncLjBvwfAP7gIuNG/r -N8lAEAgDxOpLtEAUmAvc6jjJQBSQC8zsNMNAENAMJe02yUAQAAyT6UbMQBHADYcoNHCWOOY5yEAQ -CAIiIlYa4jjvQA+gARAAAAAAAOIA2EAPoAEQbBAG5TOwQA+YAEWIMIYy7K7foAEoBSXpvWUABigA -qHabHcbK2kDrOO9ACkgHUeIA2EAPoAEQAABj/+gAAAAAAOIU8CAJqAMFAFAE6SewQBPIDaLrENhA -DoAAzQwMG+eo70AQcAyZ4FnvQBBwAfwtIA3TD9MPZd+p7f/fwA+gCwsNfAPuYZBADQAGFh3Jv+q6 -60APEA9V0w/p/+PADxgL1eoKhsAT+Ay76inTwBAoA/8u9fHu8sfADQABa5wQ6ijvQA+gABvqKbvA -EAAMwWRwd3yoVOwA2EAJ+A9NAAAAAADsANhACfgPQOsRyAAFMAXKDbwDDKoBCgpH6inTwA14DWdl -r87sKmVADoAApesA2EAKSAoeiifqoJFAC6gMkGP/sQAAAAAAAADtWO9AD5gA5upQ2EAOgACw7Gll -QApIChNj/48AAAAAAOwQyEANeAhK7BllQA6AAKXrANhACkgKCxvIgxzJjeoo70AKSAUD6im7wBAA -DMFj/1ZbXD5lrsjseGVADoAAousA2EAKSAoAY/6P3VDqUNhADoAAsOwYZUAKSAn66xGwQA74D9/q -KbvACfgPQGwQBBnJewIIRwmICiiCf+KK7UAPoAAY6guCQA6AACDrvZfADoAAoeui5sAPoAEQAGwQ -BOgtuEAQYA2iDwIADwIA6KrhwA4AAPhb/+3iqO9AD6ABEBvIuuu/s8AQAAyiC6oM6KrhwA6AALHr -qutACfgP2wAAbBAGgycVyV7jPrBADoAAQOYpu8AOgAB15hDIQA6AAGDjNZhACAAANAAAKDHxsIgI -CE/oMcfADQAF+Ckgeik18OVUkEAQYAJm5EGQQBf4AnfjPJBADQANx4oQAEAECgobf6fW7DCvwBPQ -DbJ8ubvqKO9AC/gP02SvsOwkZUAOgACl7TCvwA6AALDuKrvACkgJtWP/qwBoQyztLbhAEGANouiq -4cAOAAVNGck1CghHCYgKKIJ/6ortQA+gABgKCUFokVBok1AoUn/qKO9AD6AAGCkx8WWfYyogeesQ -2EAPoAIU4LvwwA74D88MuwMLqgHqKdPACfgPRwAbyHSKICuyfwuqDOiq4cAOgACx66rrQAn4D5l8 -p66NJ43ept3t1phADoAAwezRw8AJ+A8YAAAAAOtQZEAPmACi7OBlQApIBITiANhAD6ABEGwQBGP/ -/AAAbBAE7NBlQA6AAKLrANhACkgJgepg2EALqAyV4gDYQA+gARAAbBAEiScPAgApkg4pnQYokkZk -gAniANhAD6ABEAAAFcj+wLErlkYqUh0Wx9rAMOcA2EANeA4qKGKl6yCwQBaoDMUkUuKoOOy76MAP -CAiYqETqSbFAC6gJhcioKUBPyJ6xmipETytSHbEzezPJY/+kwKLsrmRADoAAsO0470AKSAlcJ0RH -60O4wA+YAKPsTbpAChAJEylAT2P/xAAAbBAEiSeJnimdBiiSRmiBCuIA2EAPoAEQAAAAFMjYwDAj -lkYqQh0Wx7Tn/9/ADXgOOihipesgsEAWqAzEJULiqDjsu+jADwgImKhV6lmxQAuoCWDKoSlQT7CZ -CQlH6V/QwA4AAXknVEfrU7jAEWgNxeo470AKEAjzKkIdsTN6M7Bj/4wAbBAE7PtkQA6AAKTrANhA -CkgJMBrHd9MPKKDhe4dIHsi57Q7ZQA6AALDsft/ADoABlO7ktEAYoAA5L6GADP8B6qKQQBBIBN+x -uyv6+wCwBO4I8UAOgACi6AiAQA6AALHouufACigGZeIA2EAPoAEQAGwQBOxaZEAOgACk6wDYQApI -CRTiANhAD6ABEABsEAQex1gu4pwfyJ4dyJ0OjlEP7grt37PAF+AM7u9G2EAQuAbegieCLiItBy8l -A+IA2EAPoAEQAOoQ2EAOgACw7ClkQApICP/qUNhAC6gME4Ingi7vRthAEDgDIi8lA+IA2EAPoAEQ -AGwQBBrIiCqif+so70APmADD7RDYQAuoCOviqO9AD6ABEAAAAGwQBBrIfyqif+so70ALqAkJ4qjv -QA+gARAAAABsEAQUyHjAMeRPs8AOgAAg6EOoQBAQC0QIRAzkMubAD6ABEABsEAiUEZIQ6/ZkQA+Y -APPuWO9AD5gA1iwaQCy2ECuyEWSyQBfHE+e35UAOgABR5xPIABH4AwvAkOoA2EAOgADA4wDYQAgA -AKgAAAAA5wLYQA0QC6Psd+jADoAAQOcSyEANGADHhhLiENhADoAAcA8CAOZvl8APoAIXDwIA4FPw -wBigATbgKe9AEAgCIuBT8MAPYAQ0A0MCh/Dgye9ADygCgwAiGgJ3AufwyEAQIAxxhhLj4LBADygC -cwAiGgBgBOIRsEAPYAMjhhDj4MhAD5AHcecgyEAPkAOB42DIQA6AADAsrODiFPAgC+AJCQCRBABW -Gua25UAOgAJw6ZGQQBvYDBaIE+IU8AAFIAtnJtAlZIHlJwr/4hTwAAsYDnYm0CSyqugR2CAQcAYG -51jYABCACIboENgACjAOdpgUwINkr6LmFLA/+DgMKuTwsEAOgAAx4uCwQA+gAhzgh/DAD5gAyuBm -8MAPYAR05PDIQA9gAmLi4MhACfgPb25kU+cTsCAE4AUmItAcKNEW4kaAQA0IC6cJZxEHiALoFMhA -EEACquj/2EAJ+A+aAAAAAOgA2UAaIA8W4hTwAAZgC2iH2LOq5wiAwAwgB3PnFMhACfgPcm5icOIU -8D/4aAMmh9izqudogMAMIAd55xTIQAn4D1MAAAAAAOgI2CAFYA5G4hTwH/cgC2iH2Lmq5+iIQAyI -B3fnFMhACfgPKgAAAADoAdggBSALRuIU8B/14AtouKro17pAETANfecUyEAJ+A8EAAAAAAAA4hTw -P/TgAVaH2LGq58iAQAwAB33nFMhACfgO4gAAAADiANhAD6ABEAAAAAAAf78H4hTwH+3wAWvirt/A -D6ABECgqAOIU8B/yyA6GJ9AcsarnaIBADAAHd+cUyEAJ+A6e4hTwP/HgDVYqrBDo3ahAEGALfecU -yEAJ+A6DAAAAAADiFPA/8OAIVibQHCfRFAZYQACIEeh360AQqAuN6qGRQAwABmPnFMhADwgGBuaI -60AJ+A5K2GDn1LpAEEACqucUyEAJ+A44hhCEYADBBACHGucRsEAPYAR0ghTkYMhAEAAMZwAiGgJm -AuZwyEAJ+A2xwHPnFMhACfgOAsCC6BTIQAn4DfgAZxEHiALoFMhAELgLjQInQOqhkUAPCAcH54jr -QAn4DdkAAADjANhACfgNJ2wQBOlNl8AOgAtQ4gjYQA+YAGLjUubADQABFigsQOmC5sAPoAEQAADr -TZfAEAgDIuIglMAPmACi66LmwA+gARBsEAQVx4TTDyRSFyVS5+gA2UAPCAT05IjooACwDyTTD+VF -5EAYYAE4KVEAcpEDuFXRD8CgKlUBmlHqUMBAD6ABEAAAAGwQBB/HcynyF+73tsAOgADQ6wDZQA8I -Cfnpu+igA3gPKe6a5EAZCAE7K6EA3KDomO9AElAEK+kJhsANAAOr6siQQBAIApju1uRADQAELSJl -ACLy5wLSCyMlASzy5y1UAOzc5EAOgAAh5MHIQA+gARAAAAAA7Z3mwAn4D8YjpQGUoSlUAOIA2EAP -oAEQ4v/fwA+gARBsEAQXx07TDylyFyhy5+oA2UAPCAn56arooADgDynTD+iY5EAYkAE6K4EAcrER -6ZGQQBBAAoji/9/AD6ABEAAAI4UBlIEpVADiANhAD6ABEGwQBB7GD480Hcc6LuKk7dS0QAywD/Cv -7gnuEa7dKNAE4gDYIABgCwjRDwAAAAAAAOnVsUAQoA3zG8cv6o1hwA6AAODu2NHADQABLyiRANMP -C4gBCogCKJUA79KwQA6AAMDq07FADvgPju7TyUAQoAy97tTJQA8oDo/u0shACkgEgOIA2EAPoAEQ -AAAAbBAEGsaS6SCwQBA4C3IWxu8YxxbomeHADKAHcOx34cAPYAmU6THIQA9gB4eXMOYC7MAQQAIj -AhJq5TXIQBDAAiPqNMhAD6ABEAAAAGwQBIonKzID7UjvQA6AAMDsJ9JAEQACqusGisAM+AOw60jv -QAuoB9rnENhAETANouh+YcANAA5D625hwA8IBcqoVSxSOgurCuu7tSAGoANMKVI5HMbL7i9iwA6A -AIPrlOUABfAPue8gsEAQOAvS6P/hwAygDdDs3eHAD2APj+9ByEAPYA3tnUDsAuzAEEAClAkSaum1 -YsAPmACi6UTIQA6AAYjoRchAC4gJB4si7SGxQBCQDMLhOODADvgH7+YJhMAMAA9n5f/hwA8ACcnu -buVAD2AImOk9YsAPYA7+7yipQA8IDg7sS8hAD2AN7e1KyEAPYAma6UbIQA9gD4/vR8hAD2ALe5si -4gDYQA6AAKPqWctAD6ABEADnKNHACfgPHMDA66iRQA6AANPqKO9AC7AB/yogJ8in4gDYQA+gARAA -iifAseqgkkALqA97iyDsa2LADwgNA+yiyEAPYA3WnaPsO2LADwgLi+ygyEAPYAt7m6EnJCfiANhA -D6ABEAAAAGwQBOpQ2EAOgAOw7JpiwA+YANLuOO9ACkgHC2Qwh2kxRiMiB9MPgz4L6jAaxqIoon/i -FPAACNgLix3FSiumf+qus8AOgADA7dmzQApICHgtCmTsANhACkgJNy4gOCS9AeRIlKAAMAYO0Q/A -pew5YsAOgAOw7SCwQApIBvLrINhADpgI0O7oYsAOgAB/5ADYQBAIAlQpMr5okR+xROMwkMAfoAIk -0Q+NIOxoYsAOgACl6wPYQApIBuPRD4Ynhm6tbyrwgOs+zwADCAp6wITsANhAGHgAOADABAoJG3+X -A7HMx8/pENhAD6ACHOzI4sAPoAkJ5ojjwA9gBprm8NRAEBgDmCWVguWTxEAQEAOI5ILMQA+YAGzu -g8xADQABeuYwzMAJ+A95AAAA5v/fwAn4D/Hr02HAD5gAouzDYcAKSAG87QjbQA6AALLu1WLACfgP -0SyifrHM7K7LwAn4DuAAAABsEATohWLADoAAohfE/uvOYcAPCAkE4i3kQA6IAWjmJupADxANPezd -4cAPOAm5qN2nawmpFOnbzMAPCAzDrLspttkCJQsLVRGoVShSwu874cAOgACQ4LnvQA9YCUrgmfDA -D6ACG+Cq8MAO+A+/C6oDCogBCYgCKFbCJ30Cp2YlUsLla81AD6ABEAAAAGwQCufdYMAOiAGoCioo -6zNiwA6AAGOqeuMUyEAQUAN36hrIQBAgA6rqp7FACAAAEAAAAADrvJfAF/gCZux7scAXAAzb7Y3t -QA8IDNwNzCzizuHAFwgHygzuDHrj1hPGHiuy4OuL7UAKSAwnmhkaxhzrGMhADoAAuOqvs8AKSAwh -3bDrGLBAD5gAyuoZsEAKSAfs6jFiwA+YAMvrAWLADwgIJu0asEAOgABj7n9gwA8gCSLoyOtADwgJ -uaOZ7iDYQA9gCOjolczAECAD/e74yUAQIAPd7NnJQAgAAAzrvJfAF/gCZux7scAXAAzb7Y3tQA8I -DNwNzCzizuHAFwgHxAzuDHTj1u+vs8AXAAy7nxXvFshAD5gApOuL7UAKSAv6mxfnqO9ADoAAuOoW -sEAKSAv13KDtuO9AD5gAp+sXsEAKSAfA59tgwA+YAPvoAN/ADQAJVSVdASVc/whVAXtzNIwUiBoC -Kwvsu+LADwgJzKmIDLsRo7sFiRQAmhHibOHAD2AKrwyqAiq2ySmG1++IzcAPoAEQiRrsPWHADoAA -o+cQyEAQKAyB5BHIQBAgA5npmrFAD5gA0u+470AQIAzh5RPIQA8ICNgJiCzniOpADoACsOgSyEAK -SAYg73lgwAn4D4IAAADlHGHACfgPdGwQBOUmYMAOiAGICCgoqFXqVJhAD5gAtOqnsUAKSAu+LQpk -7ADYQApIB4scxbXkANhADoAA0Oq470AOgACU0w/rG2HAGRgAOe/AtsAS2AzrtN3vj+1ADwgO3g/u -LOzEkEAQMAeusUQcxagOSxGsu4uw64vtQApIC6gexZ7XsOrvs8APmABq64DYQApIC6PdsOyo70AP -mAC36mjvQApIB20exZsYxZLiLeRADwgKw6pa4kzhwA8QDT3svOtADwgNzajdDswCLNbJ66jNwA6A -CZwpptcCLwsL/xGo/ynywg86EeCp70AOgACB4IjwwA74D68KigMKmQEJiAIo9sLoVJhAFhAM/++L -yUAPoAEQAAAAbBAKG8V/5RjIQBAIDCPnMLBADoAAQeY470AOgACA6BbIQAwIAiHng4DADCAIcuga -yEAMEAdwGsVeKLKuwOCeF+qktEAQwAAYHMQuLMKoo8wJzBGsqoqniq4qFgSIYOwA2EARQACo6Rqw -QA0ABwfdMOog2EAOgAK07DZhwApIBbfGuusZyEAIAAA8nBmNGnmGMOTjYMANCA5d4hTwIA/YAw2F -FGjUae0470AOgACi7GVhwA6AArTuGrBACkgFqMaKmBnqGLBAD5gAtuwZsEAKSAKc4gDYQA+gARBk -kKTiFPAgI1gDCeIU8CAe0AQJ4hTwIAuYBQnumO9AD5gA0+og2EAOgAK07BRhwApIBZRj/63sVbig -J/ACB+IU8CAtSAEHZHWvIwoAwIDrVrjAEDgM8e5hsEAQEAyW7bvgwA9QD8TsiuDAD2APv+OZ60AP -YA+v6WLIQA9gDv7uYcg/+zABM8Ag6ljvQA+YAMfraO9AD5gA0u4Q2EAKEABrsSJzKeJj/z8Yw98V -xQoogqglUoSjiOmI4cAQEAzmqFXlV7BAEIgN1uRluUAQkA3G6WO5QAwACujlXrBADAgL4C9gEChg -FK/drczvZrlAELgN1qyZCYgICEQIBP8ID90IJApk4hTwACf4CE3qINhADoACtOyAYcAKSAVaLPrq -7BnIQAwICM/oFshADagI7BzDvhvE6SzCqCuyhKPMCcwRrLuLt4u+imMqthaNYX3WHo4aZOP34hTw -IB+gAw7iFPAgJ0gEDsCQ6RnIQAgAAAjAoJoZjRbsENhADoAAsA3LOGS+ZehgsEAJ+A4sLrKu4hTw -ABGoAB4v+rnvGchACfgOTGRwSOIU8CAnOAEH4hTwICzoAgfAMOyu38AIAABhAGRxFuIU8CAoMAEH -4hTwIC1wAgfAMO4A2EAOgADQ6wDYQA6AAHDsrt/ACAABawCLFCOwVuK8kcATIAK7yLkqbBjsgNhA -CkAKAsgu6mCRQA+YALLsgNhACkAJ/sDAiGLsGchAD2AIOOhiyEAN6AwMynbiFPAgI4gBB+IU8CAp -YAIH4wDYQA6AAODtANhADoAAsOyu38AIAAAYjhTr5rFADoAAMO3kucASqA3uwMAfw2+FYBrEmS/y -qOqktEAMIAJYov8J/xGvqoqniq7sGchADwgHDuVgyEAQOAxR6aC7QBF4DarrY8hADwgPje9360AQ -CAwm7ZngwA9QBaTpVetADwAJw+eH60APYAWV52LIQA9gAlLiYchACfgNFI4UKeDzwDDtgNhADoAA -xAk7EgkXEul/gEAPKArJ7arhwA8oB9fsu+VADygN2QlcEu/d4cAPYAe37arrQA6AALLrzOVADygL -ue3hv8APCAu778zrQAwACZDpmeHAD2AHx+p360APYAm56+K/wA9gB5fu4L/ADHAHcMDAH8M1GsRg -L/Ko6IKAwBQgDKqi/wn/Ea+qiqeKruwZyEAQOAxR7WLIQA8ICQ7osuHAEdAN+uKZ60AR2A2q6Xnr -QBAIDCbpY8hAD1AF9O2q4MAOgAD86lXrQA8ACsPvj+tAD2AFpe9gyEAPYAJS4mHIQAn4DCbApOzF -YMAOgAK07TjvQApIBKsYxFmoOOSA18AJ+A1pAAAAAIhiCAhC4hTwICA4BSgfwwyKFOwQ2EAPmADk -5AjYQA6AALDiI2DAD1ALLOul0MARYAKq6KDWwA6AAMAPAgDqaO9AGigBOOj4tkAQIAKqKSKEi6Oj -iAmIEaiY6IewQAz4CbDrC4DADCANswCxBOiOsEAPoAsOrIjpiMRAECACzKSILYSPK4SOY/zXhWMZ -wuzucWDADoAAyOV9gEAOgABEBRsS7uS0QBVADPnplbZADygKRexY5UAPCAra7LvlQA8ICPgFXBLq -iOtADAAKUKP/o5npmeHADwgPn6npr+7u57BADwgKmgU/EuQg2EAPKA9P5MzlQA9gC/vkVOVAEBAM -9u3M60AQcAzu60ThwA9gC8vqROtAD2AIuOhE60AOgADQ5J3SQAwICFDo4NfAD4AFWOXi18AMAA/w -5OPXwA6AAEHv4dfAD1ANJO3q00AJ+AwWI1xsKDDK4zi/QAn4CwwAAAAAAACFFOlckkAOgABA6RXI -QBCwDIXoU8pADoAPL+o470APmAC07ADYQA6AANDuANhADoAAkOkRyEAOgADw6RLIQA6ABoToEMhA -C6APoeyo70ANgALKpUwswFyKFwLLDOo470APUAy660jvQAugD3DsqO9ADYAAqiRMAWlIn+wZyEAN -0AHsjBXqOO9ADoAAsezHvMAKEAPl6hnIP9xwAHpj+fwjXGwoMOLjML3ACfgKWSNdAeM8uEAJ+ApM -AAAuVFbsgNhADoAAkepU0cAOgACA61XRwBLgAqXrYJFAD1AIKehf0kAKQAj46lSSwBDAArbsgNhA -CkAI9OwA2EAJ+ArZhRQqXCzqFchAFwANqugA2D/YUAE6Il0B4iCVQA+YAFjaMOsgqMAT8A3C7S+7 -wAoQBFSEFSRA4LFV4iSQQBcYBkVj+tYAixTjvr9AEAgDuyK8xOu8lMAJ+AtagxQrMjDtPL9AFegN -4+M4vsAJ+Au0ihbpENhADoAAgAqYOGWKuWP5HIMUIzxsKTCZ6kDYQA6AANgJXBIJOxIJFxLpfoBA -DygH1+2d5UAPKAur6prlQA8IDf3tquHAD2AHt+2q60AOgACy7Te9QA8oDLzrm+VAD2AM7O42vUAP -CAu76QmAQA9gB8fqd+tADwgJmeuZ60AUwA2z4zq9QA9gB5fnB4bACfgMCIsU47q8QBAIAyviIJVA -EAgDu+u4lUAJ+AqXgxQrMiPtOLxAFEgN4+M0v0AJ+ArxgxQpMPzqQNhADoAA2AlcEgk7EgkXEul+ -gEAPKAfX7Z3lQA8oC6vqmuVADwgN/e2q4cAPYAe37arrQA6AALLtOr/ADygMvOub5UAPYAzs7jm/ -wA8IC7vpCYBAD2AHx+p360APCAmZ65nrQBfYDbPjPb/AD2AHl+cHhsAJ+Atb3TDqINhADoACtOz0 -Y0AOgAD07ojvQApIA5xj949sEASIMOo4uEAQSA3j6AKCgAh4AJjr0NggBZgFJO4OgsAQgALT6gyC -QAwgCqTozZfADQAPfO8g2EAOgABB6PTmwA0ADfriFPAgBrgHKgSmDAYGR6bp4hTwAAY4DJtkYFfo -Q2NAD5gAve/eYUAPCAoi6u7jwA+YAJao7q/v6LjvIAYAAQkLugIPAGjrBOzAEIAC7uoR8EAX8AKZ -6hHxQBCAAv/oE/FAEIACu+gT8EAOeAzpDWsRDb0KBA5HZOBN2iDrINhACgAAJWAAQAAZwxrB+uIo -4cASWAj0qYjAneo470AYyAA5KYKw6aPIQBWIDJjoiJBAEEACqpmg2iDrINhADoAAw+0wk8AKAAAU -wMDaUOs470AKSABO4gDYQA+gARDsrt/ACfgP6uQA2EANeA9Kb6fsqu/mqO9AFzgG+2P/HxjC/qjo -KYKAmbAogoHoschACfgPYQAAAGwQBBjC+Cn6/A8CAOiAtEANAAEEdJgIGsL0aDELaDII4q7fwA+g -ARAAKqCAACAECgobf6fq7N5iIAqIAgMXwuwIA0FkMU7vKeGgCrABA8CxHsGdGsLo7S5iAAQgAfSu -eOJA2EAPmAA67zjvIAhgAQLWMAgAaOME7MAQgAJ35hHwQBfwAiLmEfFAEIACiO8T8UAQgAIz7xPw -QA54DPLqmOPADxAHm++y4cARmAV541CwQBAIAvIPHxLiUbBAGQABP4eAo3OTUIaAdjsEsSIiVgGP -gaLy4lHIQBBAAoi4VeOo70AT4AHkwCSuxOY47yADwAECAzcCBABp4wTtwBCAAsznEfJAF/ACIucR -80AQgAJE5hPzQBCAAjPmE/JADngM4uqU48APEAib77LhwBGQBYnjULBAEAgCsgsbEuJRsEAY+AE7 -jUCj05NQjEB8OwOxIpJRjkGi4uJRyEAQQAJE4gDYQA+gARCtzyLygJIwL/KB7zHIQAn4D6ytdihi -gJgwJmKB5jHIQAn4DxccwpvnuWJACfgOr8CQ60DYQAn4DrUAHsKYAi0Rrt2N0Osg2EAOgACg7due -QA6AAJTtqebACfgOkgAAbBAEiDDsrt/AEEgNo+gCgoAHWACY5rHYIAaYBSTtMJFAEEANg+oPhkAO -gAG26nqAQA6AAEHoDIJADCAIhOnNl8ANCAO8LgoC6eTmwA0IAojqa+agCQAHKASJDAkGRwb+COIU -8AAIeAvrZGBj5wDYwA6oBODnN2JAD1gOp+7+48APCA8ir+4fwR7r2O9AD5gAhqfur+/puO8gCAAB -CNqwDwBo6wTswBCAAu7qEfBAF/ACiOoR8UAQgAL/6RPxQBCAArvpE/BADngM+A1rEQ29CgQOR8jo -2iDrENhAC/gPWewA2EAIAAAZAAAAAADqOO9ADoAB+ulx2EAQsAT02lDrOO9ACkAPjOIA2EAPoAEQ -HMJCAisRrLvouO9AGMgAOSmCgOmjyEAUCAyY6IiQQBBAAqqZoMGc6jjvQBjQADkpstDpoctAFogM -m+u4kEAQQAKqKaYu6ijvQA6AALHtMphADoAAw+3YlUAL+A827ADYQAn4D40A7K7fwAn4D4TkANhA -DXgPSOpr5r//YAcoqP5+s+LmiO9ACfgO1x/CIK/vKPKAmLAv8oHvschACfgPIAAAbBAEF8DTGcIj -6KBiQA7wANAHNwgPAgDTD20ISepI7yACYAEF20AMAgAvkkAsgu0NzgEOLgIuhu0HAGgEAGfsjc7A -EIACROsR8EAQgAIz6xHxQBCAAnfqE/FAF/ACVeoT8EANAAB1Y/+q0Q8ADAIAKpJAJYLtDVcBBycC -J4btFsH7pjYnYoCXQSZigZZA5Y3OwA+gARAAAABsEASLMCz66ut6gAAF0ACb5h9hIAWQAkTuVWFA -DoAIcO9qYCAE6AUkLDEEDM1C7AyEQA0ACq3pAdggBRAHLSgKEQqYOQzZCOIU8AAEiAuY6RDYQA6A -AIDqmObADpgAoAinOemOYUAPIAp87DCRAAhYA4spIAwbweIGmREJqQgLmQgPmgjryO8gCqABDd7A -CgBo7ATswBCAApnuEfBAF/AC3e4R8UAQgAKq6xPxQBCAAszrE/BADngM/ewA2EAIAAAJwIl4QR3a -UOs470AKQA8H4gDYQA+gARAAAAAA7K7fwAn4D+bsOJBAEgABi+oA2EAOgAC46UxhQBigADstkqUN -DVLqqJBADQALbbiZwKDuILBAE/gM/sHQp6vv6ujAC/gPk2AASwAAACogDBvBt+aq4cAOgAGQC6oI -D6sI7cjvIARQAQnewAsAaewE7cAQgAKq7hHyQBfwApnuEfNAEIACu+0T80AQgALM7RPyQA54DPns -ANhACfgPUcD40w/rANhAGKAAPyiSpQgIUuu4kEANAAHYuJnAsOkgsEAT+AzuqrvumujAC/gPcWP/ -DCuSpAsLSe674cAJ+A/hAAAqkqQKCknuquHACfgPSKarLbKAncArsoHrwchACfgPmaaeL+KAn8Au -4oHuwchACfgOzwAAAAAAAGwQBugluEAQOA2ywZTrDIIABaAOmO4UYEAMcAVQ7MrhoAW4AlXjEMhA -EDAM066qLqI6GMA74xDYQBvgAh4IyArvqbNAFNgMiBnAwuj+5UATMAmPH8Fx7eXIQBEgC8LrKIBA -EEgLsuvjyEAPAAio6MzrQBEQC4LvILBAD2AM/Jzg7EFhQA6AALLpiOtADwgPj+jiyEAPYA+/n+Hs -AuzAEMACngkSauupy0AZuAIl4gDYQA+gARCJImSQg2hSPuIA2EAPoAEQ2iDrWO9AC6gJEuKo70AP -oAEQAO0zsEAJ+A9RiifbQOwA2EAPmADU6qCSQAuoAfviqO9AD6ABEIon6wDYQA6AAMHqoJJAC6gF -khvBQxzBGu4QsEAQAAzSnKDroshADoAAIO7msEAPCA2N7qPIQA9gDT3tochAD6ABENog68iRQA6A -ANLsENhAC6gMS2P/ZgBsEATk7WBADoAAgenAYEAPCAWD6SDIQA9gBYXlIchAEEACMuQC7MAQgAIi -AxJq0Q9sEAQdwSYpIBUfwSXo21/ADoAAtehK4cAPAAlJ6anrQA6AAMLsMNBAD2AJuZkx6ADswBCA -AkMEAmsEAmsEAmsEAmvvP8hAEoACQ+0wyUAOgADj6QDYQBA4DcLpOMhAEAAMkugBYUAPCAsF6D7I -QAwQDMDizOHADwgNue03yEAPYAvL6zbIQA0ABGYtIBUnNFnk3eDADoAA8e840cAPYA3a7zDRwA9g -Df0tNhUM6jDsRcBADwgLieIwksAPYAvr60PIQA+gARAAAAAAAADiSO9AD6ABEGwQBOQf38AQEAwy -BDMB4yLIQA+gARAAAGwQBOICjsAPoAEQAGwQBOoo70APmADD6xDYQApADWziqO9AD6ABEABsEAgB -lASJRu9LqEAQQAy04kqoQA+YAKLtR7BAD5gAw+9P7UAMCAi/4ueAQAwIC77tnu1ADAADI+LGgkAP -CAPz6ojhwA8IBnbg7uHADwgLuw2dGOx34cAMaAmZ7RXIQA9gB7fi/YBADoAAse4WyEAMEA4g7u7h -wA8IDV3r/+dAD2AG1uItgEAMEAIk7P/hwA9gBobnRLBAD2AGdu/u60APYA096CLhwA9gDe3n/oBA -DLAPcOfIgkAPAA/v4ojgwA8ADv7n54BAD2AOLudm60APYAj450FgQA9gCOjp6mBAD2AImO0XyEAP -mADR52brQA6AAODmE8hAD2AImOgUyEAKQAwY4qjvQA+gARAAbBAE6ijvQA+YAMPrANhACkANIuKo -70APoAEQAGwQCAF0BOoo70AQKAzU40awQA+YAMPiR7BADHALUOC74cAQIAyU43iJQAzwD9ACMxjo -FchADAgIlu7/4cAPAAj44xbIQA+AAinjlWBADwAC4uL/60AMcAJw64jrQA8AAlLjIutAEDgLOumu -gUAPAAs77+7rQAwYD5TuF8hADKADMOP/4cAPCAMT4yLrQAwIA5ni/+tADAgCmOwz4MAPAALS7T6B -QA9gAjLpc4FADBgJkOKZ4cAPAAPj4yLrQA8IA57n7uHAD2ADk+gi60APYA7+7X+BwAwoDdTn3eDA -D2ACMuISyEAPAA9P7xZgQA9gC/vtu+tADwgNtu2760AMIA117YHYQA9gC9vv7utAD2AL2+4UyEAP -mADR6xPIQA6AAODrANhACkALxOKo70APoAEQAAAAbBAGF8BPjDgkIAcavwfsCY/ADoAA8+QEgkAN -AALJ4hTwIARQAQniANggADACCdEPGcA4DAhP6YjrQA6AACDoOMhAD6ABEAxFEapVK1I6B0kK6Ze3 -IA2IA0soUjnB2OmG5QANIA+YGb9+GL987WPIQBAADLLoYshAEFgM4+lgyEAQUAyj6LvhwBBIDJPu -bu1AD2AL++thyEANCATK6wDYQA74ANDoD9/ACAAAyAxFEapVKFI6B0oK6qe3IAmIBkgpUjnqluUA -CTAPqepI70ALkAk222DsENhADoAA1e4A2EAOgACQ6RHIQA74D0/kEMhADoAA8OggsEAPmABK6BLI -QAuoA/vAwO1Q2EAOgADg7wDYQA6AAIDoEMhAD5gAuugRyEAPmACk6BLIQAuoA/EavsgtIAaLIuwQ -2EAOgADm7lnLQBAIAt3tJtBAD2ALy5siKTERxyXpOMhAD2AJqek4yEAPoAEQCooU67iQQA0AAep6 -2PF6gA20u+pK7UAIAAAIAACxuwoaFGWv95lnHb/u6gDYQA8ACEvqachAD2AIjpho6J5fwAzwC8Dt -yF/AD2AL25hkm2XtAuzAEUACtgsSau9Zy0APmACi6zjvQAuICkUav0spMREKmQLpOMhACfgO1AAA -AOsA2EAJ+A+i2iDsANhAEMACtO1g2EALqArj4k/fwA+gARDaIOwA2EAQwAK07TDYQAuoCtziT9/A -D6ABEGwQBBS/yipCgOso70ALqAAb46jvIAD4AQrbIOwA2EAT+Ayk7RDYQAugD/DiOO9AD6ABEAAq -Qn/sANhAEAgCsu0A2EALoA/pKkKA6yjvQA6AAMDtENhAC6AP5GP/uwAAAGwQBOQ7X8AOgACc0w/q -ANhAGQgAOYkr5KvjwBBYDNMptsDttM3AF+ACM+qhkEAX4AIiGb+oKUa9wIXoTM9ACjAFOuKo70AO -AAHKKELlxy/oioLAEIgB+GijCeJItsAPoAEQ0Q/RDwAAbBAEE7+YKjJ/WzsS1KDlqO8gAJABAuKo -70APoAEQAAAAAAAA6j+zwAuYCwviqO9AEWAIpGAARADbUOwA2EAT+Ayj7RDYQAugD7bVIOo/s8AL -mAsB4qjvQBEgBKSxWHgp1ioygOtY70AOgADB7QDYQAugD6viWO9AD6ABENtQ7ADYQBP4DKPtENhA -C6APpeJP38APoAEQAABsEAQSv3IiIn/iIqhAD6ABEAAAAGwQBBW/cCVQgOf2X8APCAWFBQRHDkQR -p0cncn8FhhTqaO9AD6AAFwoJQWiRB+IU8CAFOANZGL9l0w+oSCiCf+pY70APoAAYGb3UZKCKCSkC -6aDIQA6AALLrochADQAIQmghHG8kGemokEAYsAISA4JqCZJqA0JqCVJqAwJqCRJq6mjvQA+gABfH -LOKi5UAOgACKCCICHL8m0w8swq7oQNhAEDgAzAgiAhi/SqhIKIJ/2lDrENhAD6AAGBi/RqhIKIJ/ -2mDrKO9AD6AAGOIA2EAPoAEQAAAAAOJP38APoAEQDugwnqIN7jCdowzAMJykC7Ew66XIQA6AAJCZ -pumnyEAJ+A+AbBAI5BTAQBBoDbLpu13AD5gAouwsuEAQSAvS7uJfwA8ICBPuEMhAD2AIhe0TyEAO -gADS7RHIQA8IDIzpAOzAD2ALy+sVwEAQgAKR6RLwQA6AAMDmFchAD5gAsegUyEAKGAaj0Q8AAABs -EAju6l3ADoAA0u0RyEAQYA2y7hDIQBBoDZKMMu4QyEAPCAuL7RHIQA9gCbnpFcBADPgMwOwUwEAQ -SAvC7BPIQA+YAKLjEPBAEIACgegS8EAPmACx7ADYQAoYBorRDwBsEAYZvwMPAgDumbPAEAAM0tYw -7Ja0QBAADKPlEMhAD2gN7erd4cAOgABRDcwI68CSQBLQAKouMAnqMJFAD5gA2+5/gEAMAA7mCgNp -DUJrCgNoDQJrKsABKDAILQrgDaoB7fvYQA9gCKjq+uHADygI2O392EAPYAio6+rhwA8oCNgKiALo -wdBAEAAMo+cFXcASsACa72GwQBAIDTwLugLn/+VADAAIN+NugEAMQA0w7WjQQA8IDp7hiODADAAD -Neoz4cAPYA+P72HIQA9gDj7uadBAEIAC1goDaw3CawoDag2CaypiAHumXy3AAYhh7WqAQAwACdXo -/4EADNACCB29TO0A7MAPmADbDQJrDQJrwOAuxAEoIFDkANhADQAC6JwRE768Hr4e4J3hwA8ACvrm -EshAD2AK2u2HXcAIAADZhhLlENhAEAgMwS7AAOIQ2AAAYAOOL8ABeP8BwCDawOMQsEALkAYjGb0e -Cl0U7t3hwA+YALbtmejADoAAwOoOhEAQ6AOZ4OnvQBN4DInt/9/AD6AKBQ2qA+At8MAPKAio7Yjr -QA+YAKPon8rACkALvuIA2EAPoAEQJm0B2bAHaAIo1rEl0rLTD9MP41XlQA6AAMDlpetADoABgA8C -AOXSz0AZIAA45QDYQA0ABk8lkQDTDw5VAu3I48AQEAKZ5YPPQBAIAswm1rEpIFCxROIU8B/5eAmU -KSANy0QsIFHAgQmJOQxMCOnJ6MAQYA3CCMgR6JnrQA6ACIAImQLphoCf+8gBiekGhMAJ+A90AABj -/6QWvnBkn8PsLLhAFCgMVuZps8ANAAI5GL5sqMgogO2pialpCZkRqVkpnICJkOaZ6MAJ+A+tABm8 -+CmSoayZCZkRqVlj/+ToCNhADGAO0AjuAu7B0EAJ+A5xAGwQBBq+WQ8CAA8CAOyps8AQAAyyKqKG -7LvowBAADJPqu+HADoAAQQuqCOuo70ARsACp7aC4QBCAApPpEPFAEAgNygtCawkDaAsCayswCC4K -4A7eAeyh0EAPYAvr66DQQBAADJPsRF7AEiAAmSigAI8x2aDoC4RADAAIh+z/5UAPAAgY6zjQQA9g -D4/vMchAEIACswkDawvCawkDausS8kAOgACQ6TjAQBAADJPiENhAEXAAuYsxHLy06ajvQA2ACDvs -AOzAEAgNugkCawkCayukAemguEAIAAALAAAAACmgAHifBy2gAXjfAcAgWyWVH7ySClgU7ojhwA+Y -ALPo/+jADoAAwOoNhEAQ6AP/4NnvQBN4DO/gSfDADvgPrwqZA+Ao8MAPKA6e6O7rQA+YAKXu/8rA -CkALMeIA2EAPoAEQKaAA6wjYQAxgCZALmQLpoNBACfgPjwAAbBAE5CjvQBAADJKTkYghk4AEAmoD -EmqSIOIhyEAPoAEQAAAAbBAEE73+DCIRoyKCIOICj8APoAEQAAAAbBAE6S24QBEQDaLAseiq4cAP -WAmb6K5dwA9gAqkCA0cOMxGoOCiCf+KK7UAPoAAYCglBaJECaZMeGL3iqDgogn/qKO9AD6AAGNug -2iDsANhACkALBdEPAOsA2EAJ+A/vbBAGyDbiANhAD6ABECwhEwTMCOwQyEAOeA7jE7xt5K1dwA4A -B+dzYTYsIgzqKO9ADoAAsAxsCO0A2EAKQAnWZqEF7E+rwBAADNHqKO9ADoAAsg3MCO0A2EAKQAnO -ZqA34hTwAAXQCDWMLOoo70AOgACwrFztANhACkAJxmag0CMSAAIqAusg2EAOgADQ7DjvQApACcBn -oIfiqO9AD6ABENTA6ijvQA6AALHtENhACkAJuWav4nNRK9og6yDYQA+YAMTtENhACkAJs2avyows -6ijvQA6AALCsXO0Q2EAKQAmtZqBbc2GwHL2oLMF/6ijvQA6AALKkzO0Q2EAKQAmmZq+VjCzqKO9A -DoAAsKxs7RDYQApACaDiqO9AD6ABEIMQ2iDrENhADoAA0Ow470AKQAmZ4qjvQA+gARAAAAAAAADi -qO9AD6ABEOKo70APoAEQ4qjvQA+gARBsECKIIhe8HOQ0sEAPmABklxSXFeTUgaBRaAF46ijvQA6A -ALfmGctACkAIyeao70AO+A+k4hTwAFSACKbtF13ADYAIhigyAO82qEAQOAtj6zGwQBA4ALhmsbou -IA3qNahADQAKfuoWy0AQOAR/ZOE3nxTvGMtAEDgEdmThPZYVJhY3ZECiwGAG/FDrENhADoAAoAy6 -OMqvijDTD3qmCWRB5sBgZmAhijDtp+VAEJAJ2i4yAQ8CAOIU8AAJcAIeyHaJMQnfUmTxB+oo70AO -gACw7N/YQApAChko+o14oQIGpjjqKO9AD5gAs+1Y70ARyAzB7mjvQAowBMziqO9AD6ABEAAAAAAA -AADiFPAgRUAAZBm72ikWNuIU8B/6mA5/Y/9OAAAAAAAAAOYiqUARsAyh4hTwAE14CWqKKusWs0AL -oA2C7fJdoE4QAGorEjh3sRmGK+IU8ABO0Alr6i2wQAugDXrtcl2gT5AAai4SN+IU8B/4oAh+hivi -FPAAUCgJboot6+jvQAugDXDt0V2gUNgAaigSOOIU8ABRwAh4Gb0mKZB9ZZ7fYApPiiwK+gwqFjjq -FMgf9jAOdmP+wYssC2sMKxY36xXIQAn4DrsAAAAAAOIU8AA98AI54hTwH/dgAElgCjYAAAAAAOoo -70APmAC07BazQBHADNHuF7NACigK7eao70AN8AxKGLz+hzDod+VACfgOrS8xE+w7qUAOgACw5hCR -QA6AAODpFJFAD1AG/uy55sANOAjkGLuQKBY2wGBmboRkR9EuIA3TD9MPZOfUKhI2iRTpGMtAEDgE -eWTnySYSOIsV6xfLQBA4BHtk58ApEjcsNQQqNQUpNQcmNQbmANhACfgOFADuFrNAEJgLwq7MZU4L -AZQE6zewQBAIDIOOOIY26MiBQA+ADbnu6YFADAgK7+qq4cAPCAm5C2sY6x3IQA8IDQ3tHshAEGgN -0uqZ60AOgACx7qqBQAwIDuvtvufAEFAL0+OI4cAPCAoqCogC6e7hwAwQCtzqHcpADwgKeu6q60AM -AA7fBe4RDogC6jSwQA9gCKjmloXADBAO1Oju4cAPYAiY6vmAQAwQD6zi/+DADwAJ+e6Z60AMsA6g -6uqAQA8ADu7u/+tADAAO0+/u4cAPYA+f7emAQA9gD2/mGlzADwgJyeqZ60AMAArS7qrrQBBYC+MN -DUHu3eHAD2AImOb/60APgA7k6+7nQA+YAGzoG8hADwgOzu8cyEAPYA3t7arrQA6AAODqH8hAEQAC -0eoo70AKQAf+7RlcoEbIAWouMgTmFMtAEdgAPhu7iigSLQuLCO8nuEAUAA27KQr76f/lQA8IC+vp -z9hAD2APv+YUy0APKA+f5inCQA9gD48vJAcsEjjmqO8AFaAIfC0cQOstuEAOgADg6CywQBHADJHq -OLBADoAAwevL58ARoAzBqYjqSoPADwAL2+gQy0APYAq66hfJQA6AALPqKO9ACkAH1+ao70AN4Ab6 -iDGKOMBg5h/JQAwICIzqLIBADAANoer5gEAMAA6s6guBQA8ADu7gu+HADwAJ+e7d4MAPAAzc7czr -QA9gCbnrELNADAANreeI4MAPAA3d6sqDQA9gCNjsquDADwANq+ur7UAPYAjo64jrQA6AAODtqutA -DoAAsu0QksAPYArK6B3JQBGgDMHqKO9AD2AJqekeyUAKQAew5qjvQA3YDRoYvE/vMqlAEFgMw+kI -2EAQQAyzqYjrH8pADCAG9OYcykAQaA3iqGbvG8pAFuANZug6sEAMIA/36BPLQA6AAYzrG4AAOxAL -aBi8PCoSLOoRy0AReAyhKIB8JhI06BLLQAwACavtmeDADwgIWOoKgEAPYAiY6GbrQA0AAP4Zuxzp -ZutADoAAoQF0BC0SMeT54MAPAAhb6x+yQA8ADj7p7utADwAPfekuX0APYA/47RKzQA9gDv7oJ6hA -DwgPtu/u60APCA/K7VrtQA8ADV0J3QLoCIjAEAgMk+r/60AMEAq046rhwA9gDv7rn4BADwgIGO4T -ykAPYA2N6BuyQAwADrfs/+DADwAO7unJgUAPYAra642AQAwAC7bvu+DADwAN3eCZ4cAPYA397zqo -QA9gDe3oDoDADAAIg+uZ60APCAiY6d3rQA8IDn7vz4JAD2AOruoTs0APCA8v7JntQA9gD4/umeDA -D2AN/e8eX0AMiAunDKoY6xXKQBCYC4PtEspADoAAsO0fk8ARgAzB6hbKQBAIAt3uiOHAD5gAou/u -60APYAiY7hTKQA6AAJPpiOtADoAA4OgXykAKQAc/7S1fQA+YAGpmaeIvEjfiFPAfzuAIfy0SNOcs -sEAQaA2S7H1fQA+YAKLoPLBADoAA4a937M+rQA9YCZ7oSIPADwAJ2emI60AOgACz6BfJQA6AAOCt -zO0QkMAKQAco5qjvQA3ICyqOPOYA2EAPAAyn5h/JQBAIDIPuLYBADAAK7+4LgUAMAA/h6MiBQAwA -CezumeDADwAIeO7/4MAPCAsL76rgwAwADu3rOLBAD2AKuu3d4MAPAA7e793rQA9gCOjry4NAD2AI -mOep7UAPAAvL7MpfQA9gC8vpiOtADoAA4OgdyUAPYAvb7RSzQBH4C8zrINhAD2AKuuoeyUAPmACi -rcztEJLACkAG/eao70ANyABqGLuc7zqpQBB4DMPpCNhAEGAMs6mI6x7KQAwgBvTmGspAEGgN4qhm -7xnKQBbgDWboPrBADCAP9+gTy0AOgAGM6xuAACZ4C2gYu4npFLNAEfgLaCoSLiiAfKlm6BLLQAwA -CavliOHADwAJ2emI60ARUAyR6RHLQAwACqDoZutADQAA/hq6aOoQ2EAPYAamAXQEHbs0KRIx5Pjg -wA8ADj7lv+DAD2AOjuto4cAPAAl56f/rQBGQDJHv7utADwgPyuju60ARmAyB5ZvgwA+ACZXtu+tA -D4ANyen/60APAA3t6HmJQA9gDv7pFcpAENgL8+4TykAQCAyTDIgY6BbKQA8IDO/vHrJAD2AM3OnJ -gUAOgADT4JnhwA9gDNzsF8pADAAN9u+IgEAMAA7375qAQA8ADu7squDADwAI2OqI60AQOAui793g -wAwQD/TtmetAD2AI6OmI60AMoAqg6TqoQA8IChrj/+HAD2AKq+r/60ARSAyh6cmCQA+YAMftH5PA -DwgJKeoOgMAMAAqj6arhwA8IDn7vQl9AD2AO/uqZ60AQCALd6YjrQA6AALDoEspAD2AO/u4UykAP -mACi7gDYQApABosdux7mqO9ACfgHFdtA7BazQBHADNHqKO9AEbgM4e8Q2EAL+A1A5qjvQAn4Bxgr -IRMLqwzrFstACfgHWIsqLLEC6RjKQA0QBxzquO9AC5gGhh27CioWNeoWy0ANAAFGii0uoQJk4lxb -Nn4duwSaYC8SKNMPZPhAii0ooQJkgmJbNngpEigduv3qkMhACfgILAAA7hazQBCYC8KuzGP4IMhP -Y/gohiypZmP4MYksq5lj+DrrFrNAEJgLoquqY/gNiScsmRQUuvzqkJJADQAGPIuZZLBZLbAAwup+ -2QUvsgJ08UPrINhAC6gDdJSik6UmpBzlpshAEAAMwhm68OvKXkAOgADS66DIQA74D4/ppMhADwgM -jOit0UAPYAzcnKHqWO9ACkAILOIA2EAPoAEQwLDsINhAC6APFGP/rgAAAAAAAADqKO9AEcgMYevB -2EAOgADA7QLYQAuoBdVj/2HAoux9XkAOgAGy7xazQBBgDdLmEMhACkAK9B26wOau38AJ+AWDwKLs -/F5ADoABsu0suEAQaA3i7xazQApACuvte15ACfgP2gAAAAAAAOx8XkAOgACi7xizQA6AAbLtLLhA -EGgN4uYQyEAKQArf7cpeQAn4D6zAouzbXkAOgAGy7Sy4QBBoDeLvGLNACkAK1+06XkAJ+A+KAAAA -AAAA7FteQA6AAKLvF7NADoABsu0suEAQaA3i5hDIQApACsvtiV5ACfgPXMCi7LpeQA6AAbLtLLhA -EGgN4u8Xs0AKQArD7fheQAn4DzoAAAAAAADsOl5ADoAAou8Xs0AOgAGy7Sy4QBBoDeLoEMhACkAK -t+1IXkAJ+A8MwKLsmV5ADoABsu0suEAQaA3i7xezQApACq/tt15ACfgO6ttA7BazQBHADNHqKO9A -EbgM4e8A2EAL+Aye5qjvQAn4BJAWuQ8mFjbmqO9ACfgF+isSNewA2EAQUAyi7RDYQAugCpYdumjm -T9/ACfgF3Mhu7ADYQBAADLbtENhAC6AKjysSNewA2EAQUAyi7RDYQAugCortxV5ACfgPzwAAAOao -70AJ+AQHLxIw7AdeQA6AAKLtLLhAEWAMkekQyEAOgAGy5hHIQA8ICMboEshACkAKgR26Teau38AJ -+AnrAAAcumPveO9ADoAAou0suEARUAyR6RDIQA6AAbLmEchADwgIxugSyEAKQApzHbo/5q7fwAn4 -A5kAAGwQHugisEAQAAxzJBYX54eHwA44DIjaIOtA2EAKQAWIx8TmqO8APRAIyuS0XkANkAwqKDIA -6TGwQBA4ALhmkzTpMrBAEGgN4ucWyUAQWAyi5JnlQA0QDV7XkOIU8AA/uAmnKiIN63jvQAugCnPi -FPAgQDgAaioKAOao70AOEAdK6jCwQBAQDLMPAgDrTIuAEggAqu8jqUAQIAyD5ANeQA8oC0stIA3t -GslAD2gO/OgGjsAPKARI7ezmwA6AAYLuN7BAD2gJ9u4QykAMeA6o7MzgwA9QBtnsu+tAEDAMk+kf -yUAQKAzD5iywQA9gBGTkNMhADPANQK39p2brMshADPAKwOoZyUAQkASOwoF44QgLSVsJ+QgpFgXk -mIFADAgPSOx5gcAMCAvD6xbKQAwoC8TvEspADCgMwOgRykAMCA9K6RjKQAwICUfpE8pAEAgMk+8X -ykAMCAhG6BTKQAwYD0TpyYFADoABgekVygATiAiO6xrKQA6AAYLsHMoAHugIjsGT4hTwABYQCJ7C -geIU8AA4KAiOKBYbKRYeLhYdJBYcKBIcA/kR0w/ohFxADwAPaAe7EO6q4cAPCA0d6P/rQBD4DIHt -/etAENgM8QF0BO2d60APCAl86HyJQAxwD/DsHchADwgPT++Z60ARAAzx7BeyQA9gDZ3tHMhADwAJ -OQ+IGOgeyEAMcA1A75/tQAxwCODuErJADwAP7++q60ARKAzx6srrQBFADMHqH8hAEPAMoeLd4cAP -CAjI7e7gwA8IDw/kzODADwgKuuyZ60ARIAzB65nrQBDoDLHqmetAETAMoe/M4MAPYAiY6RGyQA9g -DPzrC4bADwgKmu2q60ARGAzR7bvhwA8ACcnou+tAD2AJ6e7d4MAOgADg7SDYQA9gCdnsaO9AD2AJ -ye2760ARAALR6xvIQA9gCanqKO9ADoAAsOkayEAKQAT21qBmYCGKMBm5iA8CAA8CAOmr5UAQSAma -ijFxrmHItokxCdtSZLBH6ijvQA6AALDs39hACkAGSyz6jXyhAgamOOoo70APmACz7VjvQBC4DMHu -aO9ACjAA/uKo70APoAEQhyznl+jACfgNKwAAAAAA4hTwAC0QAjl0lqxgBbMAACwSFuoo70APmAC3 -7RDYQAooB4jHhOao7wAjyAiKZq+HHLliizDsu+VACfgPdYotDwIADwIALaECZNWUWzTVhi/Bsqpm -6hTIAAwACLfBg+IU8AALsAiHwGDnFslADngExucUsEAQYAyyHbls6TKwQBBoDcKnu+YA2EAPmACn -7ZnlQA9QCsvrM8hAD2AJqekyyEAJ+AynLiBcBARRAEAEDg4b4hTwAB6YAf7mKcBADoAA4C4kFO4l -0UAQaA2C7pNcQA6AAJEpFhzpENhAD1gIia5O6B3JQBQADe7pG8lAEAAMgigWHu7u4cAQKAyB6CjA -QA9gDuQuJAfuENhACfgNXQCJLx65RugsucAMGARAAEAELuJvCAgbp5kOmQrpkLAAGsgB+CkWECsW -Ku8bykAOgACAKBYdKJQF6JbQQBDQDOEulA3okshADvgP7y6ULOiU0UAOgADhLhYcHrgS6JXRQA6A -AIjolNBAEAAMia5OKBYe7uC8QA6AAIHoG8lAEGANguic0EAQOAuC6JfAQBAoDIHomMBAEDgMiSwW -LC0WLe7u4cAQoAqI5pnAQA9gDuTul9BADoAA4e4ZykAOIAHowIjoldBACfgMlCsiEimxAmSUdOq4 -70ALmARvHbePLyIRK9Kf7t62QA+YAMqq+qq66arhwA6AAbKq6uyqyAAN4Ai3H7kHL/JvD28K6vDI -QAn4DkkZuQLvG8pAEHgMQu0dykAQQAyD6Z+ywA+YAKKnROgLi8AOgADB6xPJQA8YBJTo+YFADAgI -jukVyUAQAAxE6BTJQAowAbjtHbJAEWAMwe8bskARUAyx5BDJQA0QAOqENCggXAQEUQBABAgIG+6m -ugAPwAH45R7KQBCADFHAkJlSKVQV6VTRQBCYDIEpVAYpVAXoioDADAAJh+iq4cAPCAlZ6AiEwA9g -CantWMBAD2AImOhXwUAQaA2iGLe16l3QQBBgDZIauNOoSOlc0EAUAA2I6qC8QA6AAJjpVNBAEMgM -keZZwEAPCAjo6mrtQA9gCIToV9BAD2gJqeg3sEAQOAui6lfAQA8ICanqNrBAEXAMUaiY6BLJQBAw -BZixqikSEOqYyEAQkAyBKJYJKCAN7pzSQA6AAKHqHMlADoAA4OqXsEAPWAiK7hvJQBPADeIulBbq -pKFADoAA4S4WKegdyUAQAAyJ6B7JQA4QDoookAcICEHoEclAEKgMgSoSFCqUdeiU08ANAARYKpIa -ZKB5wKjqldBAECgMoxi3HiiWHOoKjsAJ+AqmAAArIA1kvkHuILBAFRAM/SzSrw/uDAruEa7M7KzI -QAn4Ditlr7sqkhpkr7sokhuagCqSGuihyEAQiAyBGriMCIgK6gDYQA8YCKgqlhrqm8lAF3ALqLCq -6o7GwAn4D40AAADiEMtAEIgMoRK4gSMWMeO9WsAPGAqqAqIK7qrhwBd4C4KjqsAxA4gDCAhPCogL -KI0YioUjnGiToOqbyUAQgAKo6prJQBdwC6LjhchAEAgCquouxsARiAwx4hCzQAn4Dyrmrt/ACfgL -B9og68HYQA6AAMDtAthAC6gDU4knDwIAK5kUFrhS6pCSQA0ADouLmWSw3iywAMLafckFLrICduFH -6yDYQAuoAMqWopOlJaYGH7hY6EBcQA74D8/srdFAEAAMkuigyEAQuAyxK6Qc6JnhwA6AALLvpMhA -D2AJuSmmAepY70AKQAWB4gDYQA+gARAAAAAAABy4R+0suEAOgAGy6hDIQA+YAPfqINhACkAIU+qu -38AJ+AgEwKLs81xADoABsu0suEAQaA3i73jvQApACEtj/9ouIFwEBFEAQAQODhviFPAf+NgB/u4A -2EAOgACR6RvJQA6AAIDoHslADoAAkOkdyUAOgACA6BzJQAn4CNPAsOwg2EALoAxJY/8pjCzqKO9A -DoAAsKfM7RDYQApABA/mqO9ACfgJ+ows6ijvQA6AALCnzO0A2EAKQAQI5qjvQAn4Cd4AAObI70AJ -+AqE73jvQA6AAKXsUVxADoABsu0suEAQaA3i6BDIQA6AAIDoEchACkAIHSkSEOo1sEAQOAzJLxIr -6wDYQA74DODqCo7AEQAC3OvEwUAPKA3t6xqyQBIAAt3tychAEUgM4e3IyEARaAzR7ByyQAn4C3zA -wO0Q2EAPmAC66i2wQAugCAHmT9/ACfgJ/OxvW8APmAD36yHYQA6AAIDtLLhAEGgN4uoQyEAOgACl -6BHIQApAB/spEhCMl+8bskAO+Azg7cCSQA6AALDrxMFADygN7esaskASAALd7cnIQBFIDOHtyMhA -EWgM0ewcskAJ+Ay7AAAAbBAIHrfcAi0Jrt0t0PAN3QkC3RFk0dgft28p8h3kiVvADQgMeeoA2EAO -gADA50C8QBiwATkAoAQHCBvqoZBAEDAB+LHM0w/iFPAgDOgBPOesW8APCAbi6gDYQA6AAODle7VA -DoAAuNMP53SQQBioADsA4AQFCBkICEPu5JBAEHAEhrGq7gDYQBa4CMoWtjEYt7vqpeLAFSgMZqhV -7vK2wBAIA/Wmpu/8ucAPCAaWpu7s5KpAEPgL7p8V5gjYQA+YAL/uDoZAERgDzOzIkiAHsAsO4hTw -IAdwDA4LOxzA+g+7LQy7NwvbDKZc5869wA2IAKsu+pwOfh2uvmbg+ijA3Qg4HA+PLcmXwMDnQLxA -GIgBOQDABAcJG3+XAbHEscyUFBy3l6ysLMDw52NagACwA/yKFMCUCpksDpkRzJZgADQAAADAlMCA -C3QS7+zlwA8IC8LgROHAE/gCzAx8Eg8CAOTM60AYiAE564njwBAIAoinmSyW6Ri11Rq3gyiA4Ck8 -f+qZ5UAZGAIYCdoMZqCs7KxZwBAIA7orvIALexLsu+tADxgMcivGkhq3eHmiewctCuIA2EAPaAya -DHwS7NfNQA+gARAet3Jz6w3EsQ+7N+sLhsAJ+A8HACsKaQ+7N+sLhsAJ+A74AADqANhACfgOoOIA -2EAPoAEQ7xWwQA+YANLsRlvAD5gA46ZU5E29wA6AAKLkEMhADoABuOcRyEAKQAdj4k/fwA+gARCm -V+h8vcAW8A136BXIQAn4D8CmV+h8vcAW8A136BXIQAn4D64AAGwQBMCx575ZwA74D68TtZboL5/A -D2ADMuNxz0AYOA8SYACAKHKyHLdH7/9awA+ACSXoyIGgAFgEKQycCmAACQAdt0IsnPwNzAqvzy7y -gAINRADRBOC88MAPoAIdCswD4FPwwA8oDuzjk1vAD2AOPu7wzCAAeAQpFbbs45njwAgAABAetzMV -tugpnPwOmQqlky8ygADRBOBO8MAPKA/8Dv8CLzaAI3KyGbcrFbcrwMDkxefADygDkwUzAiN2sgCB -BAC1GgpUA+Jxz0ANAAJmInKtAkIBAlICInatH7cg5o7hwA6AANOv7u3gyEAPoAEQACNyrQNDAeN9 -zkAPoAEQAABsEAYVtqrsLrnAEAAMMuoosEAOgACx5F61wA6AAIDsfIBAFqAMlemq4cAPUAjLqkTp -M+jADQgESO9OucAS+A3k4hTwAAkQCf4tUugt0QJk0RSx7i5EX+pYtsALmAJI6gjYQA+YAPoK+AIo -JF4sUhhkwQ0pzP/py+VAEPgJnG0ID+2/l8APmADL7bvlQBBICdxj/+kAAA/MERi2uAyILCglGgj4 -HCglGS5SF347Ehu1VCuypClS3qO7CbsRq5lgAAHAkBy2ecDgw9otxhAuxhHDuyvGEOs+WsAPYAqv -CgpGCKoRC6oCKsYRjMAdtt4Ytm7oO+HADygM3OvM60AOgALQDc0CnYAbttgYttkdtmcLzAIIzAHs -0MhADQAAiZqanpvrKalAEAAM0psQKiEaq6rsDVrAF/gCqpoR6U+5wA+YAOPpEshADoABuuhOucAO -gACl6BPIQApABsHiANhAD6ABEAAAAAAA3TDqUNhADoABuuwcWsAKQAa54gDYQA+gARDsENhACfgP -FGwQCBS2gYkw5JrlQBCAALmIMdMP4hTwABdAAhjAYMikLjIBZuGqwEDiFPAABWACqeIU8AAEYACZ -KzEE6ijvQA6AAMHrC4rACigPU+Ko70ANGAQaHLan6jyoQBDQC5LtENhAETANsunZ5sAPKArK7TqQ -QBLgDcLsuOHAD2AJqegw0UAPmACi6TzAQApABB7kqO9ADYAC6iowEesA2EANAAIKbQgSLiBA4iGQ -QA0AAS6xu3q7CG+0BWP/5gAAACs0EepY70APmACz7EjvQApAA3riANhAD6ABECYxBNog5gaKwA6A -AMHraO9ACigPKmSinyugNuIU8AAUyAPbLTAQKCBdDU1DANAECAgb4hTwABQQAfgftTuv3y/wgO2m -0kAOgAjg7mzlQA6AAILouOtADwgP7+im00APYA/976fQAAB4BeYGi0LrsZhACAAABwYLRi4iE+/j -qEAQEAvuf+FF4tnhoA54D0sftmOvme2/n8AIAAARAAAftmAo7PwJiQqvmR+2CK+fJvKA7hDYQA+g -Ah3g7vDADvgPjwjoAwhmAQbuAi72gMrEGLThLKAMHbSNDb0CLYaxKYKyHbZR5MzgwA8oCdkMmQIp -hrIrhrGJMGP+XicwEC8gXek0qEAMMAd0AHAEDw4b6cmAgA14Af4qIhMooQLpFMhADgAA6ORP38AI -AAA2AABbMXrpLbhADQgDyiwgUcDRCdk5qszpyejAEGANogimEegI2EAPYAZp6GbrQA6AAEBlQYfq -KO9AD5gAtuwA2EAKKA7T5KjvQA0ICUpb/wkoQDbmTcJADoAAkeYKhMAPYAiY6EbTQAogDtzbcOQV -yEAPmACk7TqQQBAgDMHsTNHACkADn+So70ANiAeqHrTxjBUYthbrNKhAEGAL0+zKqUAOgABw7xDY -QBCIDaPo3eVADygL6+a760APUAzP6zTAQA9gDNzsPMBADQACmoYVGrSUKqKJLaECydZbMUSmfCrE -QCswEbF36uhYwBA4BbdudN+JMOcx0UAJ+A0tACYxBNog5gaKwA6AAMHraO9ACigOoOyo70ANAAd6 -2iDraO9ACigEcIkw5JrlQAn4DPELXhTrDYQ/8egELh+18QnpCq+ZY/44AGSexB20duosuEATsAy9 -7dK0QA0AAikctbOsrCzA7anJqbkJmRGp2SmcgImQ65nowAn4DqoZtD8pkqGqmQmZEanZY//lAAAA -AOSu38AJ+A0sHLXb7Sy4QBBoDeLnEMhADvgOquoRyEAOgAG66jDYQApABcdj/9EAAC0gDOow2EAQ -aA3i7PxZwA6AAbrvSO9ACkAFv2P84QAAHLXL7Sy4QA+YAPbrrt/AEGgN4usQyEAOgACj66HYQApA -BbVj/4mPFBy1wu0suEAQaA3i6hDIQA6AAbrqMNhACkAFrWP8mQAAbBAE6qtZwA74D/8vpoAvpoEb -tbcPKRALmwIrpoIvpoAvpoEYtbQImAIopoIuHCCO4A9YAwjoASimgC0cJI3QD2gDCNgBKKaBLBwo -jMAYtaoPfwMPzwEPnwII/wIvpoIOXgEupoANbQEtpoEbs9MMfAEMmQILmQIppoIYtaAIKAsjhoHk -gMxAD6ABEABsEAhuPwfrP5/ACAAABwMLRBqzxuVjWcAOgABx5nFYwA6AAJDqLOtAD6ACG+B48MAP -oAIb7GPMwA74D78LiwPgnPDAGKgPEy1ixA29AQ3NAu1kzMAIAAAwA10Ub9QKGbWF6dnjwAgAAA0a -tYMp3PwKmQqlni3igNMP0w8NvQENzQIt5oDiY8zAD5gAouNGukAOgADg7hDIQA+YALHuEchAECAC -we0470AKAAY0HrVxjBHo/9lAEAAMse4u5EASmAcoLeKBKeKAADEEAH8a45jvQBjYAhvt/etAGWAC -HAb5EOk560AIAAAhAAAAAObz4MAO+A+PCDMDCPgDCNgB45nlQA9QDcgt5oHp4MxACAAASyg6A+I9 -4YALQAkoH7VYr93pd1jACAAAIwAAxJAftVUNnQrTD6/d7xdYwA+gAhMAeRoPmRAPmQKl3e/QtCAK -WAJLCfkCKdaAH7VL4KnhwA8ICIwJiAIIuwILCUfq4LRADQgDWeIU8CAFeAFZGbVDCw1f6anlIAFg -Dy0bs2gL2wIrZrEqYrIKylIHqhEK2gLrANlAD2AKqQuqAuoTyEAIAAAPLN3/B8wRDJwCnBMo8hzu -EshADoAAwNMP5BTIQA0ABFgas5wUtR4XtRueEujfn8AMQAvQ4LnvQA6AADHgNvDAD6ACGOAz8MAO -gACwDwIA0w9tCHftWe1AGiAPHS6iwn4wVoQS0w8oQoEoRoGPE+9AzEAQIAxB2yDqTrBAC6AFG8mg -2yDsANhAEHAMpO0Q2EALoATx4gDYQA+gARDrnuOgAEgEKaTuYAAHLpz8C+4Kp+6l6CiCgHhoqCny -HOzBkEASAAO76qCYwBTQBZxj/3wvKv/iFPAf9SALLwo5EQkpDOmen8AJ+A6YaLFQ6QDYQAn4DrUA -HLTvx48oxoAoxoEZtO0PKxAJuQIpxoIoxoAoxoEdtOkNuwIrxoLAoCrmgeso70AOgADA6uDMQA6A -ANHq87bAC6AEyWP/OwAAGbTo6fnlQAn4DmEAbBAG7jjvQA+YANQBBAQEORjsANhADQABeW0IDLCY -CJkB7MGQQA0AAHlj/+wNCU/rANhADQABmW0IDLCaCpkB67GQQA0AAJlj/+wAAAJoEeocsEAOgAAx -7AyAQAwgBHjrD4BADwgEdOj/4cAPCAx878zrQAwAD3fo/+HAD6ACGuqp4sAPoAsD6f/fwA+gAhng -iPDAD2ALy+cMhMAPYASE6RDIQA9gDEzvrFtAD2AM/OiQW0APmACl6BHIQA6AAEDkEshAD2AM/O8A -2EAL+A7tbi8J6S+fwAgAAAkAAAIJRBuzKOxNWkAPoAIZ4DrwwA74D58JqQMMXALss8ygAlgPIgJc -FG/EHh60nQ7OCh+0Oq/uLeKADZ0BDa0CLeaA5bPMwA+gARAdtJYozPwNiAodtDGtiC+CgA+fAQ+v -Ai+GgOWzzMAPoAEQLrLEDp4BDq4CLrbE5bPMwA+gARAAbBAEG7SHHbQG6TJYwA6AAODsfVpADoAA -gOooWMAOgAhwCFIUbyQI6yLjwAgAAAsAIiz8CiIKqSIiIoDLIS/CpCbShKj/Cf8Rr2ZtCB9/JxXl -PLhAEGANRu9tuEAQUAhUJDANdPEhp2YCEhTIIWP/2bHu6ICSQB1YCC7iANhAD6ABEAAAAAAAAOIQ -2EAPoAEQbBAIGrRi55ZYgAB4A4MDhkLmYZhACAAABwMGRgooCyiCgOwQ2AAJ+AEoHrRaHbRY72ha -QBigDxYpbf8AkQTgy/DACAAADwAABgpEAKEEAMsaGbLQGrPtDygC6JPMwBi4DxYoksTou+VADoAA -wevL58AIAAAoBlkUb5QH7ZnjwAgAAAopnPwOmQqqny/ygO+75UAOgADBC8s5ZLDIil7rKO9AC6AE -Re5BsEAQCAvE6zNYwA6QAIDTD+0A2EAY2AA4D98QL7aCL7KEKbKFCQlPeckCf+EBsd3n2O8ABYgI -LRm0NCga/+oUyAAFuAnYKZJ/KZEC5+JYwA0ABunqKO9AD5gAtuxY70AL+A6GGrQp6q+zwAuQD1Lf -MOtBqEAQCAzE7Va6QBAAC+TtEMhAD5gAeupo70APmADX7s6AwAv4DzaPFMj7il7reO9AC6AEG2Sh -fhm0FihBAAmIAQeIAuhAwEAPoAEQG7OLKkEA66rlQA6gALALqgIKCk/r/9tADygKeguqAupAwEAP -oAEQHbOCLEEADcwB7EDAQA+gARAAAADqKO9AD5gAtuxY70AL+A5cbm8WLG3/4MnvQA6AALHgu/DA -CAAAFgAAAAAGDETgye9ADoAAsQC7Gh2yHB6ybg19Au3jzMAY2A8WH7JqL/LE77vlQA6AAOHr6+fA -CAAAMgAGWRRvlAoYs+LomePACAAADRqz4Cmc/AqZCh6ze66eLuKA7rvlQA6AAMELyzlksIJubwnp -b5/ACAAACQAABglEAJEE70VaQA6AAMHgzPDADvgPvwvLA+3zzMAYwA8WHrJNLeLEDb0BDc0C7eTM -wAgAAC8GWRRvlAoes8bumePACAAADRqzxCmc/AqZCh6zX66eLeKADb0BDc0CLeaAH7I961a6QA+Y -AKfn88zACgAFDGP+jBmztgl5CyuSgSuWgSiSgBqzZQqIAuiQzEAJ+A9kil7reO9ADoAAwe0Q2EAL -oAORGbOyKEEACYgBB4gC6EDAQA+gARAAAGwQBB6zQx2x0uxCWgAAgAODA4tC67GYQAgAAAgAAwtG -6N/bQA6AAPHjeVtAE7gIgi9BAegA2kAQCAx04gDYQBjYADgPKhAqNoIqMoQpMoUJCU95+QJ6cQGx -IuIU8CAIIA9LL73/7xDYQA+gAh/g+fDACAAA/xiziS/8/Aj/Cq7/L/KA0w/vmeVADoAAoQmpOe8Q -2EANAA+JKCoA4hTwAAdoCIIXs3wHJwsqcoDiFPAABuABKui/n8AYgA8bAIEE4PnwwAgAAA4ACwlE -AJEEAPkaDS0C7cPMwBjADxsowsToENhADygJiemJ58AIAAA1AAtfFG/0CxizaOj/48AIAAAOABiz -Zi/8/Aj/Cq74KIKA6JnlQA6AAPHvENhAD1gJn2SQaOIU8AAKSAM6br8NKb3/AJEE4PnwwAgAAA0L -CkQAoQQA+Rrtw8zAGuAPGy7CxO6Z5UAOgADR6dnnwAgAAHYAAAsPRO8Q2EAPoAIfAPkaDSgC6MPM -oAcQD0sowsTomeVADoAAoQmpOWWfCxqyxClBAOqZ5UAOoACgCpkC6UDAQA+gARALXxRv9A0cszvs -/+PACAAAEAAAABizOC/8/Aj/Cq78LMKA7JnlQA6AAKEJqTlkkHTaIOwA2EAKAATk7v/fwA6AAMAu -NoAuNoEfsyYPKxAPvwIvNoIuNoAuNoEdsyMNuwIrNoIsdoEasyvbIOxwzEAOgADR6q+zwAugAwPa -IOtY70AL+A6Vya6Kbuso70ALoAMjyaDbIOwA2EAQcAym7RDYQAugAvnRDyhRK7CI6FvCQAn4D9cL -XxTiFPA/8KgELxqzDer/48AJ+A4TANog7GjvQAv4DWxj/6IAAABsEAgesoXoKLBADoAAwe9BqEAU -IAx+44WAwBAIDGTlUZhADwgImKh36XCwQBPADK7ofbgAAEgDg2AABAAAAwVG6pnowA0AAcgr4oUK -nRHTD627KrAADwIA4hTwABUgA4rqnlpADpAAgO0A2EAY2AA4D9sQK6aCK6KEKaKFCQlPefkCe2EB -sd3v/9lAD5gArebY70AQ6AffE7Lh7gZZQBsQDxUoXf8AgQTgy/DACAAAXel6qkARWAun0w/soZAA -E9AJmix1KyrihiuhAmSwnlsuBN8w60GoQBAIDMTuQKhAD5gAaupY70ARMA3S7RDIQA+YANbuzoDA -C/gN6mAAbgAABQ9EAPEEAMsaHbLDmhQfsmAZsO8JqQLp48zAG6gPFSrixOq65UAOgACB6ornwAgA -ACAALuz8A+4Kr+oqooDTDw8CAOq65UAOgACBCoo5mRXrENhAD5gAOuqz58ANAAaK7RDYQA6AAMAD -3DjLzCpBAO/v20AMkA6gf+EiErFyAqIBBiICIkUA4gDYQA+gARAABV4Ub+Sc7e7jwAn4D5+KLuto -70ALoAKmZKEEGbFmKEEACYgB5ojrQA6AACDoQMBAD6ABEIoU63jvQAv4DgzAkewVsEANCAB6bl8N -Kl3/AKEE4JvwwAgAAA0FC0QAsQQAmxodsQrs08zAGNAPFRqxByqixOq65UAOgADh6urnwAgAADQF -XhRv5Aocsn/s7uPACAAADR+yfi7s/A/uChqyGA8CAKrqKqKA6rrlQA6AAIEKijkYsnSHFOh35EAN -AAnK6hSwQA+YALXsENhACgAEI4oU6ya6QAoAA8AqQQDsJrpADCAKrC1ygSlygC12gev2WkAPEAzM -4qrhwA+gAhzgqvDAD6ACHOC78MAO+A/PDLsDC5kBCpkC6XDMQAn4DrUAii7raO9ADoAAwe0Q2EAL -oAI7GbEgKEEACYgB5ojrQA6AACDoQMBAD6ABECtxK7G763vCQAn4DvQucoEudoEscoAdsfsNzALs -cMxACfgPVQALAWkPDz8GDj8LAGgKCUQIQmniFPAf6lALmByxwCpBABuySAyqAeuq60AOgAAg6kDA -QA+gARAAAOJP38APoAEQbBAK5BbIQA6AALHjGMhADoAAUO0YsEAMQAkw6RTIQBgwDxPAsOoQ2CAA -OA8tKgoAFLHIFrCqjBjvANhADoAE0O0XyEAOiADg6v7nwBf4A4zoFchAD5gAj+4TyEAPWAi86BLI -QA6AAJGKFuhQlsAPoAIV66OwQA+gBwnqorAgAKAMJee35UAOgADB58fnwAgAABUAgQQAlxrnp+VA -DoAAgQeHOSMgJoov61jvQA+YAMfqM+HADoAA0aNT4zKYQAugAesrICYasgfuXeHADwgLK+tb48AO -gACRqrukuyyygOIU8AAIaACsjRicEZsQ6xWwQBhoDx1gAAcAAAAAAACLFO7/38AQQAzx6iJYQA+g -AhvgnPDAD6ACGw7MA+B98MAPYAij6GPMwBioDx8uYsQOzgEO3gLuZMzACAAAMIsYGrHm7m5ZQA+A -C7XquuOgADgEK2AABSq8/A6qCqSoL4KADP8BD98CL4aA2jAjZsPrJrpACgADLQoLR+kQ2CAA4AEL -ZLBcGrGHiBHqELBAD2AIqOigzEAIAAEgHLHVixEKCl/su+UgAUgPKh2v+g2tAi1msSxisgzMUgfM -EQyqAuwA2UAPYAqr7KrrQAgAAA0qrf8HqhEKugKLEOqwzEAIAADYjRDAwOzQzEAIAADMAAAAAO4Y -sEANAAwH6hWwQBhQDx5gAAQAAACKFOCp70AQQAzx6A5XwA+gCwnq/9/AD6ACGgq6A+B88MAPYAiD -6GPMwBioDx8rYsQKuwELywLrZMzACAAAMIsYC1sU7jpZIABgBCvuu+PACAAADR6xoCu8/A67CqS4 -L4KACv8BD88CL4aAI2bD7iy4QBEwDaKIExuwCuCp70APCAoqqtqrqusSsEAPoAwJ5+7hwA8ADPwO -zAIMuwLrAVhAD2AIuOqkmEAPYAi4mKArEgflUZBAF/gCu+sXyEAOaApbHq/YG7EDjBbtJrpAFSgM -7g8CAOu0tEAQCAzMrt3qJLpADwgNnQ27CHnGEWSgRymwKuo4WSACsAEJyZ7RD2Sv7SmwKumfl8AO -gACg6iTSQAxwCZDputJACfgP2iwgJgLMEarMpMwrwoAdsSwNuwHrwMxAD6ABEC2wKrHd6STSQAxw -CdDputJACfgPqi8gJgL/Ear/pP8u8oAYr4wI7gLu8MxAD6ABEAAAAGwQCopBjUDqCobADvgPv+0I -isAPEAq66BfIQBhoCBrirt/AD6ABEADv79tADRAEypQQ4hHIQA74B7/kqORAEDgMUe46WEAMAAfX -7hTIQA8IB1foGMhADoAA4O4TyEAMYAjQ7t/bQA8oBbXsiODAD2AFdegVyEAPCAUF5RbIQBBAAnTl -SO9ACAAAPAAAAAAAAOn/2UAS4ATmdpMaBmoC7HjvQBA4DLHtOO9AC/gMzO7f20AOmA/+ihi4Ved4 -kAANkAilKVEE6aSCAA04AQnpBoogAjgCBGhDP+IU8AAKoAT2K1EF0w/sU7BADngKe2XPn+sXsEAP -mACm7RGwQA+YAMfuOO9AC/gNcy46/e/v20AJ+A+nAAAAAADtNroACfgI5ixRBYlT6xDYQA0IAvws -NhEpNhIrNFkar3npl1fADwgMzarMKMI6JzYV6zjRwA8YCZ3pm7UgCVgDSCjCOemC5QAJAA+YiTDs -EshAEDgLgx2wgOiZ4cAOgACj6AiIwA9gCansiOHAECAMoekhyEAPYAjYmCDqAuzAEEACkgkSahuv -7OskyEAOgAGoKiYF6jjvQAuAApgbsHDsFrBADpgP/u0xsUAQkAyT66rrQBDAC7PqJshAECgMoekr -yEAQEAyD7czrQA6AAJHsKshAD2AKuuonyEAPYAiY6DLIQA6YD+0tEgIsCgMs1jniFPA/9mACVIgQ -GbBWLYEECd0BLYUELFEEDAxJ7FTAQAn4Do4AAAAA6xewQA+YAKPseO9AC/gNxe7f20AOmA/+6hPI -P/NQAHriANhAD6ABEGWe0cCgKjYR6jLJQA6AALHqOdHACfgOyuITsEAPoAEQ4gDYQA+gARDaMOvY -kUAOgADA7TDYQAugC3srMCcuOv3v79tADngGy4o3wLHqoJJAC6AI9xiwM+wwsEAOmA/t6KLIQBA4 -DNHto8hADoAAse3SWEAPCAyM7aDIQA9gDLzsochADpgP/us30j/vqAJUY/8lAABsEAgarvKTFokW -GK9k6qW2QBEwDZmSE+USyEAUGAyIqpnpmeHAD5gANKmI6BHIIAFQDyQEXRRv1AoZsJDp2ePACAAA -HBqwjync/OqZ48AIAAAOAAAAAAAAABmwlOaQV8AOgABQ7UJYQA6QALDnK1bADEAMMODJ70AOgADh -rZ3g5PDAGJAAOwdYAihmwy/SgH9IBLFVJSoAKRr/4hTwAAmIC1npOO9AGDAPE8CQ6RDIQAgAADcZ -sH4qKgCvnwWuDO0A2EAYuAA+pd4H6QIpZsMo8oDt0ZAAADAFhKXeKhr/5ejvAAdQC+oSsGSKFttQ -4lLkQBBwDKriILRAC6AAaogSyIbiFPAgD7ABCsmiihbbUOwA2EAOgADR6q6wQAugADwesFIPXxAv -5oIv4oSNFi7ihS3SEe4IjsANAAFteNkOjRYt0hLI1uIU8AAP6Aj9cy8yEq8S21DsANhADoAA0eol -tEALoAAr6ljvQA+YALPsANhACgAB9+pY70AKIAmXYAASAAAA6ljvQA+YALPsFrBAC/gKntpQ6xOw -QAv4C7FkoWLvTVe/+HgPI+lDWEAPgA016jNYIABgBC3p2ePACfgO+inc/OqZ48AJ+A7vAMDhixYr -sCbpjFfAF/gDw+DJ70AOgAAg4OzwwA8IC6vsFMhAEBADu+sVyEAOgARQ6xSwQBg4DxNgAAHbQI0V -rS3tF8hAD2ANfe1jzMAY2A8TL2LE77vlQA6AAOHr6+fACAAAOQAAAADoIVhAD4ANNe4RWCAAYAQt -6N3jwAgAAAot3PwO3Qqp2CiCgA8CAOi75UAOgADxC/s5ZLBDihbbIOwA2EAOgADR6q+wQAuYD+Xr -OO9AEDgMoewA2EAKAAGxjRYt0CYbr/0C3RENLQqr3RmvlqndLNKAf84gwOAu1oCwVeIhkEAOeASl -jhYs4CTA0O3t0cANAAw8YAATixaKF+u2ukAKAAE+6YhXwAn4D9SIES+AKrD/Dw9H74rSQA0AAq/A -ICLkJOIA2EAPoAEQAOVRkEAJ+A6hihMpoSuwmemrwkAJ+A6SAC3gJu5OV8APmAC+At0Rrt0er3Su -3SzSgB6vlu7M5UAOgAAg7NDMQA6AAKDqtNJAD6ABEI0Tihbt3LhADoAA4O6hyUAQAAyx7qLJQA6A -AMHuqdHADwgNje2760AOgAjQ7bvrQAoAAtdj/c8AAAAAAADiANhAD6ABEGwQCBevyOgosEAQAAyT -J3J/6QaKwA8ICJiod+RY7wAAiAOGCYlC6ZGYQAgAAAkAAAkJRiogNn6vIMZaKyBYZLB+JCYTIyYU -6kjvQAo4DLjiANhAD6ABEAAAAIow6RXIQBBIALqMMWbBPsBQeqbMiTEJeVJkkVHiFPAgCzABCWmS -t440AQQE5TWwQBEwDcLuCY7AEBAMc+kUyEAOgACwBZkY5wePwA0AAzltCAywmgqZAeuxkEANAAI5 -Y//sAAAAAOpI70APmACz7FjvQAo4DGziANhAD6ABEAUJT+oA2EANAAGZbQgMsJ0NmQHqoZBADQAA -mWP/7AAA7M/iwBBIDIPgye9ADAANoOsQ2EAMAAyw6N3hwA+gCwvg+e9ADCAPaOfM4cAPCA9/7QDY -QA9gDNzg3fDAD2ALy+YMhMAPYA397czrQBAYDPPoEMhADAANZ+jd4cAQQAyD7bdWwA9gDNyYEeg3 -sEAPmACn6BLIQA9gDNztWO9AC/gJnwd9Au9Y70AOgACk7IZXwA6AALDuFLBACjgPQiUKAC4gNsD0 -D+4C7ibTQAn4DpfckOp470APmACy7RDYQAv4DrDqMLBAD5gAWmP+pQAAAOp470APmACy7DjvQAv4 -De3lqO9ACfgPvOsVsEAPmACi7DjvQAv4DQtj/6QAbBAIG62/lBGTEBytagwsAiy2w+UA2EAPCAwl -6ADZQA6IDy/tqlXADoAAMOoA2EAOgADh7BLIQA6AAGitzOu0tMAZWAA2AFEEAOkaebAV6qGQQA+Y -ACgvwsIPAgAPAgB58AGxM+VRkEAQCAKIwGDmFMhADoAA0J0T7ftWwAgAABuGFI8TJmwg5hTIQBAI -Av/vE8ggBKAID48UFa8Y5pFXwA+AD/Xl9eOgADgEL2AABSX8/AZVCq1b5RKwQBQADLuIFOlAV8AX -4AJP5fbjwA14Czvl71bADxgEVKlm5hXIQA6AAsClROUA2EAZ2AA8AFEEAOkaebAl4ojvQBAIAqrs -FbAgAEAEL2AAAgDcQK3GJmKADwIADwIAeWABsTPlUZBAEAgCiGP/WIkQiBGakOOAyEAPoAEQAAAA -bBAGGK1kGa1wlBAarRwKKgIqlsPiANhADoAAcOJU4cAOgAA4qEjllLTAGKAAM8G/ArsMe1UFJ3wB -LILCsSIYrn/vbVbADoAA0O4tVsAOgADA7FntQAgAABcAAADswJJAEAgC3exZ7SADSAgN4m1WoABg -BCnikuPACAAADROu0yKc/AMiCqgl6pyXwBQADFXkm+PADxgKSq6q4wLYQA14C/Wvu9MP4gDYQBko -ADPBPwIzDHNVFudxkCAAYAQp5rjvQAgAAAbWoKhjIzKAsSJj/4qCEBOtMAQiCqMibnIXIy0EgzAV -rdrkJJhAD2ADU+NAyEAPoAEQJC0EhEAYrrjlJJhADygEhORQyEAPoAEQAABsEAbqKO9AD5gAsegA -2EAQIALB6BDIQA+YANPoEchAC/gPZ+wRsEAOgADh6f/ZQBAADLHoMNtAEqgHKR+unQ8vCynygeA5 -70AO+A8v7fC0QA+gDg7m6ODAGkgCG+np60AbaAIcBuMQA9MCKfaB6MjhwA8IAgrj8MxAD2ACguKy -60APoAEQAAAAAAAAAOI94cAS4AUoGa6KqdnuilXACAAAgAKIAwLiAwKSAejd5UAPUAnCKfaB6Mjh -wA8IAgrt8MxAD2ACguKy60APoAEQKfaB6MjhwA8IAgrt8MxAD2ACguKy60APoAEQAAAAAO9XVsAO -kA+f4DnvQBCQBykKOREJKQzpnp/ACAAABsSQDZkKr5kfrYoA7hoP7hAP7gIYrgOome2QtEAY+AIb -DtgC6M/hwA8IAgrokMxAD2AC8uKy60APoAEQaLEbwNDoyOHADwgCCu2QzEAPYAKC4rLrQA+gARAA -AB6uWg7dAejI4cAPCAIK7ZDMQA9gAoLisutAD6ABEAAAbBAE6MxUwBhwDxPnP5/ACAAACQAAAwdE -4HnvQA74D5/lJ1TADoAAYeBm8MAPoAIXCWYD4ETwwA9gBVLlg8ygAogPI+mzVsAPgAM17KNWoAEI -BCMJOQoardSqmSeSgAdnAQdHAieWgOKDzMAPoAEQACs8/Ay7ChytzKy7KrKACmoBCkoCKraA4oPM -wA+gARAALYLEDW0BDU0CLYbE4oPMwA+gARBsEAgWrcAVrKIXriPs8lagAJAPI+stuEAIAAAMAAAA -AAAAwLDqANggADgPIyoaAO4suEARMA3ywNHg+e9ADwgOfu6+60APoA0N793gwA9gDq7qLbnAD2AN -7QzdAu0RyEANAAREZKFaLyAkHKxc6nhVwA6AANDrJrpADQACTy0kJCzCpSqihKvMCcwRrKopoCqw -mQkIR+mq0kANCADo0Q8AAAAAAOkA2EANeA9a6S3RwA6ABODuFchAF/gD8+8TyEAMQAgw6BLIQA6A -AECKL+tI70ALmA347wDYIAUAAQoqICbiruHADwgKqqpK7k7jwBAYDLGn7uqimEAYSA8TYAADAACL -EhmsEOwQ2EAPoAIb4MzwwA+gAhvjW+1AD2ANmu1TzMAO+A/fDcwD4P3wwBiwDxMoUsQMiAEI2ALo -VMzACAAALQDpLVWgAGgEK+m548AIAAAOABitzim8/AiZCqaYK4KADLsBC9sCK4aAKlbDpukskoB/ -zhwvloCNFeRBkEAX+ALd7RXIQA54BE1j/w0AAAAAAOs470APmADE7Sa6QAv4Dspj/9IYrcQCvxGo -/6b/LvKAGK14CO4B7vDMQA+gARDAwewt0cAMQAsw6xLIQBf4A6PqE8hADoAEkOkUyEAOgABAii/r -SO9AC5gNsuIU8CAGEAEKKSAm4pzhwA8ICampSQxMCqfMKZ0CmRCmzC3CgHreDusTsEAZiA8TYAAr -AAAAAOs470AQAAyh7BDYQAv4D0uKEOs470APmADE7Sa6QAv4DqJgAGoAixIAsQTv21dADoAA4eDu -8MAO+A+vCu0D41vtQA9gD/nvU8zAGLAPEy9SxA/fAQ/vAu9UzMAIAAAtAOooVaAAaAQr6rrjwAgA -AA4AH61+Krz8D6oKpqsosoANiAEI6AIotoApVsOKESrGgIsU5EGQQBf4ArvrFMhADngCK2P9nQAA -AGwQBh+tfxitIO0suEARMA3i6hDYQA+YAJPjtlXAD5gAtOSr58AOgADA5eOYQA8IDi6j7uVUkCAA -MA8p2sDm71TADoAAcefd4cAPWAi/6QuEQA6IAPDo3etAD1gPrOqdVyAAuA8pKCANDYgC6P/rQAgA -ABEAAAAAAO3/60AX+AO5ALEE6NdXQA+gDQfr/9/AD6ACGwvbA+BN8MAPYAiF6KPMwBiwDxkoosQI -uAEI2ALopMzACAAALwAJWRToFFWgAGAEKeiZ48AIAAANGK0+KZz8CJkKppgkgoAEtAEE1AIkhoAl -psOm6SiSgGaACu+QzEAPoAEQAAAA7BDIQBEwDSLsEchAD5gApewUkEAPmACx7SjvQAv4Dezp/9lA -EAAMoe8w20AR4AdZHK0lDFwLKcKBjhHgKe9AFAAM3OB78MAZyAIa6bnrIAWIAk4GvhAO3gIpxoHu -wMxAD6ABEAAAAADiK+HAEeAFX6O57HNUwAgAAGMAAAAAAADmuODADvgPrwqIAwq6AwqaAejY5UAP -UAnqKcaB6MDMQA+gARAAAAAA7bBVwA6QD5/gKe9AEJAHWQopEQlZDOmen8AIAAAGxJALmQqtmR2s -IAB8Gg/MEA3MAqaZ65C0IACgAiruANggASABCu6QzEAPoAEQDL8C75DMQA+gARAAACnGge3AzEAP -oAEQGKz1CLgB6JDMQA+gARAAAABsEATnENhAETANouhVV0ANAA3U60VXQA8IBsqoZihiOgurCuu7 -tSAGaANIKWI5HKw57gZUwA6AAIPrleUABbgPue8gsEAQOAvS6P/hwAygDdDs3eHAD2APj+9RyEAP -YA3tnVDsAuzAEEAClQkSaumcV0APmACi6VTIQA6AAYjoVchAC3gOdYsi7SGxQBCQDMLhSODADvgH -7+MJhMAMAA835f/hwA8ACcnuPuVAD2AImOkkVMAPYA7+7yipQA8IDg7sW8hAD2AN7e1ayEAPYAma -6VbIQA9gD4/vV8hAD2ALe5siwKPqactAD6ABEOco0cAJ+A8jwMDrqJFADoAA0+oo70ALoAdvKiAn -yKDRD4onwLHqoJJAC6AE7Ysg7IJUwA8IDQTsoshAD2AN052j7EJUwA8IC4vsoMhAD2ALe5uh5yfS -QA+gARAAbBAEG6rLFaw16GFUwBDQA+su4qXpUVdAEJACY+iEtEAPmADCpO7iClTADwgOnq6DF6q7 -B8cCJ5axLpKyH6ycD+4BDm4CLpayLJaxGKr6AkcRqHcscsF2y1PvMKlAESANg+KI4YAAeAPPoogF -iAgmhoAmNRkicsHiAo7ADoAAUNsg6ljvQAv4BHjlUZBADYAAemlU6hiqpyiA4X2PEulEVMARGAH0 -4GrhwAgAACN8Y3MpMR8JCUVomzJonC/RDwAAAAAAAOnrVkAPmACmHawOBBwUDcwKK8L0x98NnQMN -uwELqwLrxM/ACfgPyQAucvHoBthADwgP9gj/LBisbSkKtwn/Nur/4MAPKA6O7wHYQA9gDv4P7gLu -cc/AD6ABEAAAAAAAAOpI70AKAAfY5qjvQA14CArpMKlAESANo+Kq4YAAcAPJoqqlqiamgCY1GSJy -weICjsAOgABQ2yDqWO9AC/gEQuVRkEANgAB6aVTqGKpwKIDh4hTwH/nAA9jp0FTAEGAB9OBq4cAI -AAAM6chWQA+YAKYdq9wEHBQNzAorwvTH3w2dAw27AQurAuvEz8AJ+A8BAGwQDOoysEAQAAzjLyA2 -7oaAwAz4BKDq7IJADBAHqurLgkAMsA3g6oqCAACYA43mYZhACAAADgAAAAAAAAAOBkboA1TAEHgB -7+nyVMARcAdIdJsm7K7fwA6AAEAqIFlkoVBkQU0lJhMjJhTqWO9ACjgJH+IA2EAPoAEQwITpNlZA -D2AIj+gm0wAJQACunRmcGOsXyEAOgADh6hbIAAlACJTqaO9AD5gAtOwmukAL+A9oKiBZ60KRQA6A -AOHrKMFADQAOmisgJhyqZwy6EayqLKI67ijRoCCYA0wfqmMPvwrtqbNAFNgM/+/U5QAf6A/9mhXs -ILBAEDgLkhirR+v2V0AOgADT6MzhwAygCZDsmeHAD2AM3OxByEAPYAm5mUDoAuzAEEAClAkSau69 -VkAPmACi7kTIQA6AAdjtRchAC3gNhxurXuwZsEAOgADh6CGxQBAQDNLvIrFADvgHn+nJ5UAPYAq6 -6kbIQAxgC8DqKKlADAAMx+9LyEAPCAxc7LvgwA9gCcngmeHAD2AKuupHyEAPYAiY6ErIQA9gDe0t -JgIsEgUrCgMrxjnkENhACAAAGsDA2lDrOO9ACjgIoeIA2EAPoAEQwECMGOIU8CAOqAJM6wDYIAhA -Aicfq8wpICbqENhAD5gA1+kbyEAPWA164pzhwBAYA5mvzOwTyEAQYA3y7LtXIAAwDybAoIgb6LVX -QA+gAhjtyOfAD6ANDuwA2UAPAA396rznwA8ICn/oqusgAOAPJiggDezf60APYAioCP8CnxrmD4RA -CAAAEgrPAg/fAu8ayEAX+AP2GqszHaoVAPEE6BxVQA+gDA7v/9/AD6ACHw/PA+B38MAPYAiJ6NPM -oAgwD0aMEyjSxAj4AQh4AujUzMAIAAAwABirhuIeyEAX4AIsCCIK4hTIQBBwDCGME4gUqogqgoAK -+gEKegIqhoAaqxmZHSnWw6rNL9KA6xLIAAfoAq+IGijWgIkX6xLIIAawAkmKFuIU8CAEoAIqGauH -jSAvkuPp2OHAEDAMwaj/GKnI6vqwQBbIDOns9FZAD1ALyCmSHA7dDOz7sEAPKArK66rrQBBgBZ3p -+O9ACAAABsCQG6rcw/ovthAsthHD6y62ECq2EYuwHqtGH6rW6NjhwA8oC+vou+tADoAC4A6+Ap7w -GKtAH6tBHqrPCLsCD7sB6+DIQA0AAImampyb7ADYQAn4DNcGXBTiFPA/+FgELBirRwjICugUyEAJ -+A8T2iDraO9AC/gN0+4Q2EAJ+A4hAAAAAADsmO9AD5gAtuoo70AL+A0Y6xKwQAn4DxrpErBAD5gA -sekQyEAQaAxx6RHIQBEwDdLtHMhAECACwep470AL+AvwixLs/9lAEGAMoe0QsEATMAd8H6soD38L -LvKBKfKA6hDYQA+gAhrnEbBAD6AKCuyY70AY8AId7q7rQBl4AhcGqRDpyetACAAAJAAAAAAAAADm -rODADvgP3w3MAw2tAw3tAeyZ5UAPUA59LvaB6fDMQAn4DnQvOgPiruHAEIgFfxqrEKrq6fJWQAgA -ADgsKv93ww0KqREJeQzpnp/ACAAABsSQHKsI4KnvQA8YCumsquxCVkAOgACRAJkaD5kQDJkCHKqc -rKruoLRAGHgCHQnpAumgzEAJ+A4QaNEH6QDYQAn4D/EZqvvp6eVACfgP5gAAK7wY6ijvQA6AAMDt -MNhAC6AFsyogJ+4Q2EAOYApqiifAseqgkkALoAMwHKpr7RmwQBAADLKdo+yiyEAOgADh7HZWQA8I -C4vsoMhAD2AL65uh7ifSQAn4DGsAAABsEAYfqS4ZqS7mKLBAD5gAouImukAVKAx/LZKGCWYRonet -Zu/xtkAQYA3mCXcRp9ev7gnuEa7d7xDYAACIA4MDg0LjMZhACAAACQAAAwNGbj8RG6reBjkRq5np -kLBACAAAXgAA63pWQA+ACTXsalYgAHAEKeub48AIAAAMAAArnPwMuwocqlgeqqCsu+uwtCAAaAQp -7pnjwAgAAA4AHqqbKZz8DpkKrJ4u4oADCEQAgQTg+fDAD2AO6w6ZASxxGKJr7ry7wA0AAQllQJpl -UJdgAAUAAABkQQ4oYAziEchADoAA8OiJl8AOgAAh6ADYQA9QD4IPKDjiEbBADQACqGSQcrDJKXUY -KLB8sIgotHwp0HawmenW08ARsA2aKAr3CJkBKaQ26BDYQA6AAKAPijjJqel4qUANAAZ8ZJCw6by7 -wA0ABs7tEMhADQAK+SlgDGiXGS7Qdtow6yjvQA+YAMTtWO9AC/gDF9EPAAAA7hDYQAn4D+WxyCh1 -GCmwfLGZKbR8KNB2sYjo1tPAEbANisCYCYgC6KbTQAn4D40AZJ+cwJPpfdDACfgPlwAAAO0QyEAN -eAnJHqjD7umzwBAADLYqchnsENhADoAA0e676MALmApML3EQwITo/+tAEAAM0e9wwUAJ+A9pZV7t -Y/95wJHpfdDACfgPSR6osu7ps8AQAAy2KnIZ7ADYQA6AANHuu+jAC5gKO+0QsEAJ+A8zAAAAbBAG -KiBfFail5lpUQBI4BDrrVbZAETANkowoJGKGq5kJzBGsTOfAsEATyAyGCZkRqUTod+jADQAAY8uj -LsB3sO4ODUfux9PADQAA7eMv0cAPoAEQ0Q8qQhrreO9ADoAAwO0Q2EALmAoe4y/RwA+gARAvwHcq -QhrTD+/xkEAPmAC378fTwAuYCjtkobXqRLpAFUAMtRiqRylihqq7qKgogPAJuxGrmWSPoomXiZ4r -kDDMuSyQO8zELZBGZN+OwLHsANhADoAA0O4g2EAKGAEMGKhz5US6QBVADIgnYoaliAmIEah3h3fA -sOd+sEAOgADA7RDYQA6AAOLv89hAD5gApe9xx0AKGAD96ljvQA6AALDsENhADoAA0e4g2EAKGAD3 -K3Gxfb91GaojqVl6tzUqnQEqoGDpEMhAEAgDt+awlEANAAxqaaEn6ljvQA6AALTtANhADoAPz+4g -2EAKGADoYAAMAAAmfQHpEMhAFAACZogQKI0BKIyAKIDgaIE+wMAsdP0sdOgsdLQsZM4sZLYsZIbj -L9HAD6ABEAAAAOpY70AOgACz7ADYQA6AANHuINhAChgA0utxr0AJ+A9uK3Gx4hTwAATIA+viFPAA -BcgDy3q3qupY70AOgAC07QDYQA6AD8/uENhAChgAxcDALHS0LHToLHT9LGSGLGS2LGTO4y/RwA+g -ARAqsCTiFPA/+xABOuQA2EAOgADRsK5+QgHA0NpQ5AyGwA6AALTuINhAChgAsypgpLFE7RDYQBbw -BqRj/yzbcOwQ2EAQ0Ayk7RDYQAuYCaNj/jQAAAAAAOpY70AOgACw7ADYQA6AANHuENhAChgAoitx -sdMPDwIA4hTwH/p4AcvqWO9ADoAAs+wA2EAOgADR7hDYQAoYAJgrcbFj/ywAAGwQBisgNuyu38AO -gACk6rjrAAA4A+tgALqMMBSpIxun9ugm0wAFaAC8KCAm6TGwQBQgDETrtbZADoAA4O4n0kAMsAbA -6eeBQAwIDZ+riO0QyEAPCAiYqETpy4FAEuAAKSIxBByprO5IukAOgAG47SjvQAo4CXgcp+Lmr1OA -BFgIwu3C2UANAApictNbKUEQLkET6CDYQA8ICvLomOtAEqAB6e8v4cASkAfi70PBQAgAAEoAAAAA -AADqKO9AC/gPKNog62jvQA+YANfsELBAC/gOnMDA2lDrOO9ACjgGV+IA2EAPoAEQAADsrt/ACfgP -6AAAKkUTKEUQKUIbiZxkkIfsANhACfgP0CpAKGSgjMG47ChVQBAIAtrtDYbADoAApO1I0kAKOAlL -Y//UKkAoZK+2wbjsp1VAF/gC2u0NhsAOgACk7UjSQAo4CUMuQChl764YqXMvQRDsN1VADoAApOj/ -5UAOgAG470DBQAo4CTopQhuKnGSgW4udZLBW6kjvQA+gABtj/3gAK0AkArsRprsrsoLrRtDACfgP -aSxCG4zMycwtQRAqQCjuINhADoAA8O9DwUAPYA3t7UDBQAn4D1IoQCQCiBGmiCiCguhG0MAJ+A/T -KkAkKUBGAqoRpqrposxACfgPHgAAbBAE2iDrMJFAD5gAxO0w2EAKEABv4qjvQA+gARAAAABsEAYo -ICPkJVPADoAAWuuI4cAOgAGcCYgCKEbB6/RTwA6AAMDqxFPADoAD0u4Q2EAOgADw5UPMwAuYC/rW -oON0U8ANgArqGak2K0LC6iDYQA6AAMLpkLBADoAA0ekQyEAQgAG77C/BQAgAABAAAAAA7S/BQA6A -AKELz0Gh/y/wAO4jukAPCA9/D68CLyUf6+7hwA6AAPUP7gIuRsHr8lPADoAAwOrCU8AOgAPS7hDY -QA6AAPDlQ8zAC5gL2uWo70ANgASKwIDZgBqnHC1CwhynHe2rgEAMAA3b7cnnwA9YCLoJiAIoJR3i -WO9AD6ABEADqQNhADoABtOw470AKOAjT4mjvQA+gARDsOO9ADoAApOtB2EAKOAjN4ljvQA+gARBs -EATrANhADoABz+IChsAOgADR6ijvQAogDyzKSy0xAOoo70AOgACw7DHYQAogDybaIOsA2EAOgAHP -7QDYQAogDyLiANhAD6ABEBSm+esp4cAOgAGjCpkCKUbBGqb2629SwA6AAMDtI9hADoAA4e8A2EAO -gACK6EPMwAuYC6JmoA4rQsLrMMBACfgPqAAAAADsvlLADoAApOtB2EAKOAijY/+MAGwQBusY70AR -GA2i7ADYQAv4D9TpPVRADYAC2ugQqEAZaAEjCYgBKBUAKiAj2xDsENhAC/gPy+Ko70APoAEQAAAA -AAAA4qjvQA+gARDqEKggADgCA2kz0e474cAPKAqaC6oC6hDAQAn4D8MAAGwQBNQg7ILYQA6AArbq -UtggANAMA3oxN3sxZOIU8AAEiAjD4q7fwA+gARAtIEHiFPAABLgIzeIU8AAFUAi94hTwAAbQCK3i -ANhAD6ABEAAAKiAj7CtSwA6AALDtANhACgAC3iogI+tx2EAOgADI7YDYQAoAAtniqO9AD6ABEAAA -KiAj64HYQA6AAMHtENhACgAC0uKo70ANgAg6KkAj6yHYQA6AAsDtAthACgACy9EPKiAjHKaVHaaU -6wDYQAoAAsbiANhAD6ABECogI+z4UsAOgACw7QDYQAoAAr/iANhAD6ABECogI+uB2EAOgADB7QDY -QAoAArniqO9ADYAB+ipAI+sh2EAOgALA7QDYQAoAArLiqO9AD6ABENEPKCEYzI8qICMcpn4dpn3r -ANhACgACqipAI+tx2EAOgADI7QDYQAoAAqXiqO9AD6ABEAAAAGwQBOyWVEAOgACl7SS6QA6AAbju -LKlACjgILSggIxOmbMB6C4gRKDbBGqZqG6Zr7ADYQA6AA9LuENhADoAA8OczzMALmAsY5lZSwA+Y -AErlANlADYgI2i0ywikhHO4uU8APYA1d7Q2OwBBQAXkO3QINDU/rANhAERgNouwA2EAKAAKCZqAr -KiAj7A7bQA6AALTtANhACgACfGagFSogI+wA2UAOgAC57QDYQAoAAndnoAniqO9AD6ABEAAAJCEc -7KRSwA6AAKXtJLpADoABuO5I70AKOAf+60DYQBEYDaLmANhADogAwO1o70AMAA9A713nwAoAAmVm -r7cqICPsANpADoAAuekg2EAOkACA6UnlQA+YANbpjefACgACW2avkSUhHOySUsAOgACl7SS6QA6A -AbjuWO9ACjgH5QXrQORo70AOoACg66TnwBBQAQUcph8MRAIlICPrVeHADoAAhAhVAiU2wevBUsAO -gADA6pFSwA6AA9LuENhADoAA8OczzMALmArI56jvQA2ABvopMsIlNsEaphMKmQEJSQIJCU8pNsIb -pg3sANhADoAD0uqQUsAOgADh7wDYQA6AAInoM8zAC5gKuOOo70ANgAT6ZqA/JiRA4qjvQA+gARAA -AAAAAOpA2EAOgAG07GjvQAo4B7fiSO9AD6ABEOpA2EAOgAG07H9RwAo4B7HqeO8//iAAd+Ko70AP -oAEQ7D9RwA6AAKHrQdhACjgHqeo470AJ+A+hbBAEKyAjGaXmC7sRK5bBGqXhKpbCGqXj605RwA6A -AMDtI9hADoAA4e8A2EAOgACJ6JPMwAuYCo/iqO9ADYACygrqMBml3imSOQqZCgzqMAycDGrBDm0I -CArqMAqaDGqhAmP/8NEPAADsPVHADoAAoetB2EAKOAeJ0Q8AAGwQBOoo70AL+A/gZ6AJ4qjvQA+g -ARAAACogI+sA2EAOgAHP7RDYQAogDeUWpcETpb3loNhADfgNmiggI+uI4cAOgAGTCYgCKDbB64tR -wA6AAMDqW1HADoAD0u4Q2EAOgADw5TPMwAuYCmTkqO8gCPAAeupA2EAOgAG07GjvQAo4B2jaQGav -hiogI+3ZU8AOgACw7PHYQAogDclmr3ApICPBeAuZEQeZAik2wesKUcAOgADA6tlRwA6AA9LuENhA -DoAA8OUzzMALmApM5KjvIAf4AHrqQNhADoABtOxo70AKOAdQ2kBmryUqICPtWFPADoAAsOzx2EAK -IA2xZq8PKiAjC6oRKjbB65hRwA6AAMDqaFHADoAD0u4Q2EAOgADw5TPMwAuYCjXkqO8gCWAAeuxo -70AOgACk60HYQAo4BznaQGauySogI+vh2EAOgADD7QDYQAoAAaJmrrMqICPsCNhADoABsu0A2EAK -AAGcZq6d6ijvQAv4DvjrANhADfAJKiskIuKo70APoAEQAC0ywh6lZOsA2EAOgAHD6iO6QAzwDdDu -3etACiANhWauYCogI+sA2EAOgAHP7QDYQAogDX9mrkrqKO9AC/gPcGP+tR+nTS0ywusA2EAOgAHI -793lQA6AAOPqI7pAD2AN7e0NjsAKIA1yZq4WKiAj6wDYQA6AAc/tANhACiANbWauACggIwuIEQeI -Aig2wRqlQxulROwA2EAOgAPS7hDYQA6AAPDlM8zAC5gJ8eSo7yALyAB66kDYQA6AAbTsaO9ACjgG -9epI70AJ+A6SH6csLTLC6wDYQA6AAMDuBthADygN/eojukAPYA3t7Q2OwAogDVBmrY0qICPtIlPA -DoAAsOzx2EAKIA1LZq13KiAj6wDYQA6AAcLtIdhACiANRWatYSogI+2BU8AOgACw7BHYQAogDUBm -rUsqICPtMVPADoAAsOwB2EAKIA06Zq01KiAj6wDYQA6AAcLtANhACiANNWatHyogI+sA2EAOgAHB -7SLYwAogDS9mrQkqICPtQFPADoAAsOwB2EAKIA0qZqzzKiAj6wDYQA6AAcLtw9hACiANJGas3Sog -I+2vUsAOgACw7BHYQAogDR9mrMcqICPtX1LADoAAsOwB2EAKIA0ZZqyxKiAj6wDYQA6AAcLtgNhA -CiANFGasmyogI+2+UsAOgACw7BHYQAogDQ5mrIUqICPtflLADoAAsOwB2EAKIA0JZqxvKiAj6wDY -QA6AAc/tANhACiANA2P9jB+m3i0ywusA2EAOgAHI793lQA6AAOTqI7pAD2AN7e0NjsAKIAz5Y/0H -AAAAbBAEKSAjE6TP65nhwA6AAa0KkgIiNsEapMzrzFDADoAAwO0j2EAOgADh7wDYQA6AAIroM8zA -C5gJeGegGexMUMAOgACk60HYQAo4Bn3iANhADYAFmtEPLTLCIjbBLvoA7hLYQA8oDe0O3QINDU8t -NsIapLXra1DADoAD0u4Q2EAOgADJ7DPMwA6AAPDsANhAC5gJYWevtewLUMAOgACh60HYQAo4Bmdj -/6LRD2wQBCkgIxOkpOuZ4cAOgAGtCpkCKTbBGqSh6xpQwA6AAMDtI9hADoAA4e8A2EAOgACK6DPM -wAuYCU1moDopMsLqI7pAEOAB+ez/2EAOgAG97e7YQAoAAL7iqO9AD6ABEOz/2EAOgAG97f7YQAoA -ALjiqO9AD6ABEOy4UMAOgACk60HYQAo4BkNj/7QAbBAE4jzbwA+gARAAbBAE7ChSwA6AAKXtJLpA -DoABuO4470AKOAY5JCAjFaR4C0QRJFbBG6R47ADYQA6AA9LqR1DADoAA4e8A2EAOgACK6FPMwAuY -CSPiqO8gALAAeuzmUMAOgACk60HYQAo4BifRDylSwiRWwRulThqmaB2maQMMQO2Z5UAPWArLCpkC -CQlPKVbCG6Rg7ADYQA6AA9LqxVDADoAA4e8A2EAOgACJ6FPMwAuYCQviqO8gALAAeuyFUMAOgACh -60HYQAo4Bg/RD9EPAABsEAQpICMUpEzrmeHADoAA4Q6ZAilGweukUMAOgADA6nRQwA6AA9LvANhA -DoAAiuhDzMALmAj24qjvQA2AAVoqQsIKKkDqMMhAD6ABEAAAAOzTUMAOgACk60HYQAo4BfXRDwAA -bBAEKCAj4zNQwA6AAFrriOHADoABmgmIAig2wRqkLxukL+wA2EAOgAPS7hDYQA6AAPDlM8zAC5gI -3OSSUMANgAVqKTLCdJcH4iDYQA+gARAqICPrquHADoAAtQuqAio2wRqkHRukHuwA2EAOgAPS7hDY -QA6AAPDlM8zAC5gIy2agKSIywuLSgEAPoAEQAAAAAAAAAOpA2EAOgAG07EjvQAo4BcviUNhAD6AB -EOxI70AOgACk60HYQAo4BcXiUNhAD6ABEGwQBOyQUsAOgACl7SS6QA6AAbjuLKlACjgFvSMgIxSj -/AszESNGwRuj/OwA2EAOgAPS6o9TQA6AAOHvANhADoAAiuhDzMALmAin4qjvQA2ABKopQsIjRsEa -pfUImTIKmQIpRsIbo+3sANhADoAD0uqeU0AOgADh7wDYQA6AAInoQ8zAC5gImOKo70ANgAJa0Q8A -AAAAAAAA7B5TQA6AAKTrQdhACjgFmdEPAAAAAAAA7N1TQA6AAKHrQdhACjgFk9EPAABsEAQWo9IL -KREJMwIjZsEbo9HsANhADoAD0urcU0AOgADh7wDYQA6AAIroY8zAC5gIfOKo70ANgATqLWLCI2bB -x+8OTgMO3QENDU8NXQItZsIbo8DtI9hADoAA4erbU0AOgADJ7GPMwA6AAPDsANhAC5gIa+Ko70AN -gAJK0Q8AAAAAAADsW1NADoAApOtB2EAKOAVt0Q8AAAAAAADsG1NADoAAoetB2EAKOAVn0Q8AAGwQ -BOzqUcAOgACl7SS6QA6AAbjuOO9ACjgFYOojukANAAHTHKOdHaOc6wDYQAv4D8niqO9AD6ABEAAA -AOx5U0AOgACw7QDYQAv4D8LjqO9ADYAESiYgIxSjkcBa5zlTQA8IBrYmRsEao44bo47sANhADoAD -0u4Q2EAOgADw5UPMwAuYCDtmoIsoQsJ0j9UuIRx37wfiOO9AD6ABEMCl7FhRwA6AAbjtJLpACjgF -OyIgIwsiESJGwRqjehujeuwA2EAOgAPS7hDYQA6AAPDlQ8zAC5gIJ2agUylCwiJGwRqldgiZMgqZ -AilGwhqjbevWU0AOgADA7SPYQA6AAOHvANhADoAAiehDzMALmAgZZ6+DYAAwAOpA2EAOgAG07Hjv -QAo4BR3im9/AD6ABEOpA2EAOgAG07HjvQAo4BRfiOO9AD6ABEOy1U0AOgACh60HYQAo4BRHiOO9A -D6ABEGwQBGRAduIU8CAFOAEE6gDYIAWwAgTpANhADoAAQOKu38ANAAdmaWER5gDYQA0ACzTHwOsA -38AIAAAR0Q8EhBTmaJBADQABxHS48XTAC7Rm5ETtQAgAAAaxZgQUFGVP9+CX4cAPCATaB0QC41fj -wA9gBEbkdMhAD6ABEAAAAloK6aisQBAIA6rkrrhAEHgNquIA2EAOeAkmJTQLJDQMKjQN6TfAQA6A -ALTrONBAD6ABEAJZCiqdAemQrkAR8A1K6q+7QAn4D80AAlkKKp0B6ZStQBEwDUrqp7pACfgPtgAA -4JzhwA8IC9rsu+tADxgMNevEyEAPoAEQbBAEGaNU6zLYQA6AAqLngVHADwgIIqmI6VFRoAaoDAXs -gNhAEPAEpeKu38ATYAS1KoKFG6UQC6oB6oXMQA+gARAAJgpg4gDYQBmoADwAIAQDDRt/1yUCFUDi -BIBADwgF5eIv7UAPYARU4v/hwA8IBISk/6f/jvEG7gKe8bEiwCAjgoUUpPwEMwHjhcxAD6ABEAAA -AAAAAADmAthADoAAqOIA2EAZuAA6ACAEAwsbf7cnAh9A4g6AQA8ID+/iLe1AD2AO/uLd4cAPCA6O -rt2p3SzSgAbMAizWgLEiwCAjgoUUpOUEMwHjhcxAD6ABEAAAABai/RSkKSZipSRChKJiCSIRokIi -IEHm+d/AEqgIosCY4gDYQBmoADkAIAQDCht/pyUCHkDiDYBADwgO7uIs7UAPYA3t4szhwA8IDY2t -zKfMi8EGuwGbwbEiLYKFHqLq7t3rQA6AACDthcxAD6ABEO+A2EASEAiyJvrf4gDYQBm4AD8AIAQD -BBt/RycCHEDiC4BADwgM7OIq7UAPYAvL4qrhwA8IC4urqqmqJaKABlUBJaaAsSItgoUeotPu3etA -DoAAIO2FzEAPoAEQbBAGHaL37DpSQA6AAKDuEVDADoAAgOIp4cAO+A//6RDIQA6AALHpANhACAAA -DrGq6ZCSIANgCAoJUhRvJA+DEOPVUMAPGAIyoyJgAA8AgxAiLPzjZVDADxgCMqMiriUlUoDiANhA -DXgMhQumEW0ILAAhBAC3GndQFgxkAiTWsSPSsg90AwMDTeRV5UAPOAg4sSLmYZA//MAMImRfkGP/ -zBmkh4UQqVWFUOIA2EANAAP15gDZQA6IAJdtCCsAIQQAtxp3UBYMbgIu1rEq0rIPfgMKCk3uVeVA -DzgIqLFm4iGQQBBQB2nIUmP/zQAiWu7ogufAD6ABEABsEAYYoowVorYPAgDrJLpAFUAMiCVSgquI -CYgRqFXlV7BAEAANQ+VesEANAAZU4hTwIA1QAQTqrd+gB1ACBOIU8CAJWAME4hTwIAeQBARoRRoq -CgTs1VDADoABuO1I70AKOAQL4q7fwA+gARAsMQEMzEJvxAfiFPAgBZgCLOqu36AFWAcMLTABeN8T -YAAeACkwAY4x7lbJQA6AAKB4lw3jANhADQABZGhBDmhCC+Ko70APoAEQAAAAACQgJOf/2EAOgABg -6kjvQA+YALPsANhADoAA0O4A2EAOgACQ6RHIQA6AAPDpEshADoAGhOgQyEALkA9NZq+1pTwswJDT -DwfKDOps5sAPmACz6kjvQAuQDx3jMZBADYAAemk4p2avjWAA3AAAKTABY/9xAAAdpAfAoK297NDX -wAn4D04AKTAD4hTwP/kIBCkuMATln+PAEBgLI+L4xEAQCAP/7v7QQBAoDSMi9A/iANhAD6ABECkw -AcCi60DYQA6AAMgJOBIJFxLpfYBADygHx+yc5UAPKAi465vlQA8IDPztu+HAD2AHhwlYEuy760AP -KAio6prlQA9gCNjod+tADAAIkOuq4cAPCAiY63frQA9gCKjod+tADoAAoOdT18AJ+A7FAOs4kEAS -4AKl6Te4QA6AAMjpVtHACjAIiikwAeoA2EAJ+A6hKiAkLCAt6xDYQAoAA13iqO9AD6ABEAAAAGwQ -Eh6iBheh2u0wsEAQCAyzJCAk5gDYQA6AAonrC4/AENAAvelOUwAHoAmLCbkKiZAKkAAAAAAAAADc -YOsI2AAFCACdjTENDV/ugNggB5ADDe9y2EATOAfeHqHwbtZcGqMb7CS6QBVADO4qooSuzAnMEayq -iqcuMAjqrrAgD7gGDeIU8CAPeAgNZOcA4hTwIDiIAQ7iFPAgEKACDuIU8CA7oAMO4hTwID+QBA7i -FPAgD1AFXuyu38AIAAApf9E07OtTQA6AAKLvJLtAESgN4u0QyEAOgAG47UjvQAo4A2fGytpQ6zjv -QAo4AF3iANhAD6ABEAAsIhuMycnH2iDrOO9AD6AAHOyo70AJ+A/YAAAAAAAAAOyt38AJ+A/J7IpT -QA+YANTvJLtAESgN4usQyEAOgACi64HYQAo4A09j/58uICvpANhADoAAoO4PgEAQ2AH+fucTfecQ -fOcNLSEfDQpF6KrgwAgAAActIR/lFMlADQAA/37nB33nBHznAcCRH6J47mjvQAwABdbl2FNAD1gO -X+9o70AMAAjX6F/nwBDoC1LUYOGZ4MAMAAhX6anrQA9YBIfkxlFAD2AJSeVogEAPmACmCEo5D6oC -6pnrQBCAC6IfocHqBIBAD5gA1uT958AQ2AtC7t3rQBEoDeLtmetAERgN0uQ2wEAQ4Avy7zfAQBFg -DYLo7uHADwgNDe7d60AQyAvi7jjAQAwACqPtmetAERAN0po3CvoT6jbIQA8IDb3tiOtAEXgN0ulA -U0APYAiY6DLIQBEgDYLtMtFAEXANoio0E6mIKIDw5TvAQAwACIHlFLFAD1gLhus00UAJ+A5zAABk -55ziFPAgPQgBDmjiKeIU8CA92AMO4hTwIEEwBA7iFPAgOEAFDt3g6kDYQA6AAbjshFNACjgC8+yu -38AJ+A4xKCBBZY4k6ijvQAoYBNiNMOyo70AJ+A10GqM/KyEbhzIpIhsKugIKfAHsFcggQ9gAaesW -yABDmA16HKM3LyA07iW6QBDgC5LnEshAEDAM0e0QyEAOgACl6RHIQAxQCJDoG8hADBAIlugZyEAO -gAG46YiAQAwQCZnpF8hAD5gA1OgayEAQ8AuC6BPIQAo4As6PGwcIRegcyEARSAiPiRkHakF6mRyL -GgeMQHy5FAebQeIU8CBCKABrjRfiFPAAQdgIvSghEI8WwJTuANrAD2AImOggwQASuA/+B5tBZLJM -ihfiFPAAEjgIuiwiGyzCFOsfyEANIAQ86ijvQA+gABzcoOsfsEAIAAQ0LCIbjMlkwf/aIOs470AP -oAAcjTDsqO9ACfgMaAAAAOxo70AOgADh7i3QwAn4DFXsaO9ADoAA8+8t0MAJ+AxF2iDrOJBAC/gO -eo0w7KjvQAn4DDHsaO9ACfgMKRuiLeojukAVKAze6Ti4QBQgDLuq3QndEa277KFRQBIAAfktMAnv -OKhAEEgL4+1NgCABaAQqAPkR6enrQA8IDiqs7inmyCniwMeO6BDYQA8oCYkNjTkJ2QIp5sApMAh+ -l0AtMAnvOqhAEFgL4+1dgCABkAQqAPgR6OjrQA8IDiqs7ijmySjiwMCR6d/fwA9YDdnpiOVADwgJ -/QiZAinmwCkwCH2XQC0wCe88qEAQaAvj7W2AIAGQBCoA+BHo6OtADwgOKqzuKObKKOLAwJHpv9/A -D1gN2emI5UAPCAntCJkCKebAKTAIfJdALTAJ7z6oQBB4C+PtfYAgAZAEKgD4Eejo60APCA4qrO4o -5sso4sDAkel/38APWA3Z6YjlQA8ICd0ImQIp5sApMAh7ly8vMAneYOg1qEAMAA/zAq0RDN0IKNbH -KdLAGKF97xZSQA9YDvgPmQEOmQIp1sApMAh5l10pMQcdomXsH1FADSgJOS+wJC6cEu4OjsAPCA8v -rf8psRCs/+7wzEAOgACo7rnBQA9gCakptRB9nyQvMQZ/9xXAhAiYAuiwwUAIAAAWAOyt38AJ+Ap0 -GqKBCpoBKrUQjTDsANhACfgKYcCgLBoADH0B7RjIQBIgCccpIR53lzmLHGSzi4wbe8kUjhroENhA -D5gA/Q2POeIU8AAmIAj+LCIbLMISZMKb2iDreO9AD6AAHOyo70AIAAKRjRpk0F8sIhsswhLJw9og -6wDYQA+gABzsqO9ACAAACgAAACz62urI70ANiAKMLCIbLMIRycPaIOsA2EAPoAAc7KjvQAgAAAoA -AAAs+trqyO9ADYgADB6iVC0hHNMP0w8O3QEtJRzoHLBAEFgM8Xj5BIkaZJQXihhko4UsIhsswhPJ -xtog63jvQA+gABzsqO9ACAAADQAAAAAAACz62urI70ANgAsMHKJBKyEc7BywQA8oC8uNGQy7Auci -UEAMEAx26yzBQBBwCM2NGufRUEANAAP9GaI20w/TD+rN4cAPKAmb7gzYQA9gCdnpCY5AD5gAtuks -wUAPKA7p7nvnwBBQAZkcoA0MuwILnQItJRwpICt/lz1+lzp9lzfqEMlAEaAByeokukAKEAyS6hCx -QAgAACQALPra6sjvQA2AAYwfohouIRzv7uVADogA8A/uAi4lHBef/I0w7KjvQAn4CLMpojAmNBCZ -NewA2EAJ+AlIAAAAACutAeK470AV8A2a67SUwBZgAiLpN9FADoAAweww0UANAAD7KjwY7IDYQAow -Bo7ILuowkkAPmACy7IDYQAowBonsANhACfgI/Cz62trA7BDJQBDgC5LpHchADZgPLB2h+Oe+4cAP -KA3ZDt0C7SzBQAn4DdEqrQEooAXA2Oh+gEAOgACUCFwSCBISCDsS6bvlQA8oCZjtIuVADygN2O/d -4cAPYAKy6yDYQA8ICdnrzOVADygLuO2Z60APCAu77szrQAwACIDsIutADwgImOki60APYAi46qS4 -QA9gAoIiNAnqP9BADoAAwyw0COwA2EAJ+AhSAAAAAAAAAMDB7Tu4QBBAArPuANhAC/gMZeyo70AJ -+AgxAAAAAAAs+trqyO9ADfAMDBihxS8hHOgcsEAPKA+PjhnnbYJAD2APj+8swUAQqAjeihiJGsCx -Cro54hTwAASoCKkcn54uCsDufuVAD5gAtu7L58AQUAGXH5+WD7sCLCIbLMIRysHtHshAD2ALt+oo -70APoAAc5xlPwA+YAMrtHrBACAAADwAAAOfYT8AO+A3K6sjvQA3wA4wboaQpIRzq2uHADygJue4M -2EAPYAmp6QmOQA+YALbpLMFADygO6e5758AQUAGZHJ96DLsCC50CLSUcKyIbi79kvdLqKO9AD6AA -G+yo70AJ+A3KLKAwDwIA6QDYQA0AASwtoDvI1y+gRi4KAQ/pOausK8DgZLEi4hTwIAowAQviFPAg -CbACC8Cw7ADYQA6AAIXurbtAEZAN2umf4cASQA0q7zHRQA8IBEvs3eHADwgOju5E60APYALS6DDR -QA9gAkLiOcBACfgG0emjskAJ+A14Iq0B6aq8QBSAArLiKJVACfgNiYgcZIF/sIniFPAf43gPiWAB -ciig/O2A2EAOgADECBISCDsS6qu/wA8oCcjofoBADwgJ2ey75UAPKALS7Y3lQA9gArLrINhADwgN -/QhcEuvM5UAPKAu47ZnrQA8IC7voCIBAD2AM7Owi60APCAiY64jrQA9gApLoIutACfgN1AAAAAAA -AADsINhACfgN5I0ZB2xB4hTwH+XYCM0XnynrLKlACfgMMY4ZB21B4hTwH/DADt5j/JsAHaCvK8Dh -rbsrvQErsGBosxVotxJosgfiFPA/9pAHW+sg2EAJ+A7M6zDYQAn4DsQYoTQusRDrFMhADygOju6w -wUAL+AxzixQpsRDiFPAf09ADyS2wJB6g9QLdEa7dHqCACgxPrt3s0MxAEIALm+q5wUAJ+ApXAAAc -oSPvJLtAESgN4usQyEAOgACi6CypQA+YANTnEshADoABuOgRyEAKOAC9iRV3kRcbnwMLSwgrsPwq -IHILC0R7oQUsIRhkwH/qrt/ACfgL2OoA2EAJ+AvQHKEOLyA06RawQBEoDeLpEMhADoAAougsqUAO -gAG45xLIQA+YANToEchACjgApmP/vgAAAAAAAADsEFFADoAAouuB2EAPmADU7yS7QBEoDeLnEshA -EDAMkekQyEAQaAyB6BHIQAo4AJfqELFACfgLYOxPUEAOgACk64HYQAo4AJHqANhACfgLSGwQBi4x -C+0gsCACcAgOaOsX6jDYQA6AALjsjlBACjgAh+IA2EAPoAEQHKDljjbvN7BAEEAMk+kQyEAOgACj -6DmwQA6AALjoEchACjgAfOIA2EAPoAEQAADuNrBAEDgM8+ydUEAOgACj64DYQAo4AHPiANhAD6AB -EGwQBOIA2EAPoAEQAAAAAABsEAQUnw4jQo0qMhgooQJkgIVbG68bntArspjuv9hAEDgNwu05sUAU -OAyUqrrsLIBADwgKmqqZ65e4QBAIAt3tOclADoAP3OKayEAPCAzs6onfwA8oC+vqldBAD2ALy+uX -0EAQYA3i7pzQQBA4DcLtANhADygL252Y7ZnIQAwQDMDsu+tAD5gAKeuX0EAPoAEQAAAAAAAAAOIA -2EAPoAEQbBAIHZ6tGp/YL9KlLqKEov/st07ADwgPn6/uI+RDJOQtLdKlGaCV5wzYQBQgDKqi3e+5 -UEAPCA2draToT6lAEOAL5OsnTsAOgARQ6k2pQA6AAGDv7eVADygImOhPwQAIiAi9cecRcacO5+Pl -QAgAABMAAAAAAAAA4wDYAAigCP3vaO9ADygIfui/58AQOAGeDP8CkxHsOFBADoAAuOoQyEAPmADS -6lDYQAo4ABrqCNhAESgBkylBH+hHuMARaA106HflQA9gCVnpT8FACAAADAAAAAAAAMBw7wDYQBD4 -AYMpQR/oR7jAEWgN9Oj/5UAPYAmp6U/BQAgAAASfFOymUEAPmABf40O4wA6AAKTrgdhAD5gA0ucQ -yEAPmABH7jjvQAowD/zvAN/ADQAFIxyeggIrEay7IrKCDyIBAlICIraCLrKED+4BDk4CLraEKrKA -HJ7tHZ5i49bnwA8oCsrmqutADoAAIOqwzEAPoAEQAADjCNgf93gN+mP/BIUU7RDYQA+YAEcH1Dnl -1efACfgPoQ+oAeIU8B/3SA644wTYQAn4DuEAbBAEHZ5E63tOwBAIA8LswbrAFTgM3Suyg63MCcwR -rLuLtyuyDudg2EAOgAAg7BDYQBjIADerKumuukARQA2qeaMV4iGQQBEwB6kiMAJkIFtpIRDNT2AA -MCIwAtMP0w/LIWghH+IA2EAPoAEQIjACyippIe/JQcCxBrY54mjvQA+gARAAyEFkX+wsNALiENhA -D6ABEGRPzGVfyWAAAmRPwyw0AuIQ2EAPoAEQAGVP8GP/sQAAbBAGHZ4XHJ5BLdKoLMKCot0J3RGt -zIzH7M6wQA0ACkTAsO0P38AO+ACgbQgNdKAPBIQU67iQQA0AAfRj/+sAAHTQDLS75ETtQAgAAAcA -sbsEFBRlT/crFALiEdBAERgM/KvI6cHYQA8ICuvur0/AD2gJqQCQBOiAvUAPkA/x6BPQQAwwD/Dv -ENBAEPAE48Cl7C9PwA6AArTtKO9ACjAPh+IA2EAPoAEQ6ijvQA6AALLsGO9AChAE4+IQ2EAPoAEQ -6wDYQAn4D5JsEAgXneUUnxAscqgrQoSizAnMEay7i7eLviO0/CpypR2dsChChKKq6arhwA6AAJGq -iCmEQyOELSdypR+f0eREtEAOgARQonfpTE/ADwgHl6dE6E+pQBDgC+TrSk3ADoAAYOcM2EAQ6Auk -7+zlQA8oCJjoT8EACFAIvHHnCnGnB+fj5UAIAAAM4wDYAAigCPzvaO9ADygIfui/58AQOAGeDf8C -kxHse0/ADoAAuOoQyEAPmADS6lDYQAowD07qCNhAESgBkylBH+hHuMARaA106HflQA9gCVnpT8FA -CAAADAAAAAAAAMBw7wDYQBD4AYMpQR/oR7jAEWgN9Oj/5UAPYAmp6U/BQAgAAASfFOzpT8APmABf -40O4wA6AAKTrgdhAD5gA0ucQyEAPmABH7jjvQAowDzDvAN/ADQAFIxydtgIrEay7KLKCD4gBCFgC -KLaCLrKED+4BDk4CLraEKrKAHJ4hHZ2W49bnwA8oCsoGqgLqsMxAD6ABEAAAAAAAAADjCNgf97AN -+mP/BIUU7RDYQA+YAEcH1Dnl1efACfgPoQ+oAeIU8B/3SA644wTYQAn4DuEAbBAEwDLjI9BAD6AB -EAAAAGwQBMAw4yPQQA+gARAAAABsEAYYnXAXnZoogqgncoKiiAmIEah3h3fnfrBADQgKM+IU8CAL -gAED4hTwIAUQAlNkQYAlfQElXDguUAQmfQHmYJQgC0gBPuNY70AOgABA4gDYQAgAAIkAvFvqcZhA -DoAAyOqglUAQEAyF6HPKQAowA8/AMOQA2EAOgA9v6ijvQA+YALPsANhADoAA0OlG2EAOgADg6RDI -QA6AAIDoEchADoAA8OgSyEALkApDZqEvpTwswAzaIObJ6MAPmACz6UzmwAuQChRmoRexM2k4rdEP -oqKxROM0kAADOArkKmDh6zSoQBAwDcPtN7hAC/gPH+5UuEANeA3aauHV7GjvQA+YANfvWO9ADoAA -sG0IKbG76fa4QBA4DY/ox9ZAECALj+nG1kAQIAL/6NTFQBAgAszt1JAf/OgK62P/zwAAAAAAfipJ -BysK5SzjwBAIA6vtVLhAFAACqm0IKbEi78a4QBA4DYzop9ZAECAL7O+m1kAQIALM7rTFQBAgAqrr -tJAAAHAK0mP/zwAAAAAAAADiZNZAD6ABEMtMK30BK7z+2iDrt7hAC/gPI9EPAAAAAOIA2EAJ+A+P -JX0B5ViQQAn4Dn4lfQHocJHAFcACVeSF5sAJ+A6KAAArfQHrvJbACfgPwdEP0Q8AbBAG5UK4QA+Y -AKXjMZhAD5gAI+MxusAOgACO5ULQQBNoBYUYnu4IWAqIgJoQCoAA7TjvQA6AAKXsrk7ADoACtO4Q -sEAKMA59K0AK6hDYQA6AAJALqTjpQdBADQAAmcDBLEQDL0AA7iq6QAwAD/Dp/+HADoAEgAj/Au9i -0EAQCALu7kbQQA6AANAtRAhkUNDrENggADAHJc9RaFdD6MDYIANICAXq0NhAEHAHWMCZ4hTwAAYw -CZV6URIlRALiWZfADoAAoeKi58APoAEQwMfsQtBADoAAIOKy58APoAEQAAAqQAgtQAHvSrhADQAK -uu4Q2EANAAo9wPHvQtBADvgPKuLi58APoAEQAClgAsDc7BDYQA6AACXiwueABXABiSpwAuIU8AAF -GAGKeJeMeKeJK0AJ6WqAQBA4AZlktHJkpCDiFPAf+6gOuugQ2EAOgACa6ULQQA6AACPigufAD6AB -EOoQ2EAOgACx60LQQA74DyrioufAD6ABEC5AAcDX7q3mwA6AAMHtQtBAF8gCLeLC58APoAEQZPPO -yKQoQAFljxgrIClksvQpIChkku7qENhADoAAs+tC0EAO+A8s4qLnwA+gARAAAAAA7ULQQA+gARDt -OO9ADoAApew4TsAOgAK07hCwQAowDhVj/qDtOO9ADoAApezXTsAOgAK07hCwQAowDg8uICqx7u5G -0EAJ+A6A6lDYQA6AArTsV07AD5gA0+4QsEAKMA4F2jDsANhAEAAMse0A2EAL+A76KWACwIHpWYBA -DoAA8AmPOO9B0EANGAMvwKHqQ9BACfgONOpQ2EAOgAK07DZOwA+YANPuELBACjAN8itgAsDB61uA -QA6AANDrzebAD5gAo+sQsEAL+A7kLmACwNHuXoBADoAAwA7cOOxB0EANEA68wPHvQ9BACfgN3QAA -AOpQ2EAOgAK07NROwA+YANPuELBACjAN3ClgAusQsEAPmACj7ADYQA6AAIHpWYBADoAA0OmN5sAL -+A7MLGACwLHsXIBADoAAoAy6OOpB0EANEAm6wNHtQ9BACfgNfepQ2EAOgAK07HNOwA+YANPuELBA -CjANxdow7ADYQBAADLHtANhAC/gOuS5gAu5egEAPmACk7kHQQAv4Dqxj/TjtOO9ADoAApeyCTsAO -gAK07hCwQAowDbUvcAIPb0DvSdBACfgNF+0470AOgACl7PFOwA6AArTuELBACjANq8CBKEQB6EPQ -QAn4DPLtOO9ADoAApexxTsAOgAK07hCwQAowDaLsYbhAEAgNt+kqukAPQAvL62DQQA6AAKAqRAHq -Q9BAEAgCmelG0EAJ+Ayv6lDYQA6AArTscE7AD5gA0+4QsEAKMA2R2jDsANhAEAAMse0A2EAL+A6G -6kjvQA6AANHtQdBAC/gOemP8bepQ2EAOgAK07J9NwA+YANPuELBACjANgtow7ADYQBAADLHtANhA -C/gOdi4gKupI70AOgADw70HQQBAIAu7uRtBAC/gOaGP8JepQ2EAOgAK07I5NwA+YANPuELBACjAN -cNow7ADYQBAADLHtENhAC/gOZOpI70AL+A5eY/vwyKQoQAFljBXItCkgKGSRHMikLEABZcwFyb8t -QAfJ2i5AAWThP+lhuEAQCA2HL2AACYg04hTwAAiwDo/IpCxAAWXL2sq6LUAH0w8PAgDK0C5AAWTh -J+hhuEAQCA33LGAACP80f8kKKXAA4hTwAAlADsnIpCpAAWWrpGS7oStAB9MPDwIAZLuWLEABZMEf -7mG4QBAIDdcsYAAO3TTiFPAf2/gO3ChwAOyI6MAOgAAo6CXmwA6AAPHlQtBAF8gCJeLy58APoAEQ -ZbvjY/vY6RDYQA6AAKLqQtBADvgPK+KS58APoAEQAOpI70AL+A4iY/sAAAAAAADqSO9AC/gOHmP6 -8AAAAAAA6kjvQAv4Dhpj+uAAAAAAAOsQ2EAOgADL7ELQQA6AACTisufAD6ABEC1AB2Xe3O4Q2EAO -gAD070LQQA74Dy3i4ufAD6ABEAAA6BDYQA6AAJXpQtBADvgPLuKC58APoAEQ7Ea4QBAoDNLiFPAf -9lAO3GP+rAAAAAAA7ka4QBAoDPLiFPAf90AO/mP+xAAAAAAA6BDYQA6AAJbpQtBADvgPL+KC58AP -oAEQ6ka4QBAoDLLiFPAf9qAIumP6XQBsEAroMLtAEAgMc+UA2EAQKAxj7zC4QBBgDSPiGMhADQAB -WCkwOyswRuoQ2EANAAB5C6U5GptU6XxPQBAIA7PtsbrAFTgMqimSg62qCaoRqpmJlyIwJumesEAQ -aA3D7jG4QBcgArvqOLpAD5gAQumWukANAAainxeeFpwVmhPpEsggAWABAusUyCAFkAIC4hTwIAeQ -AwLiFPAgCNAEAuIU8CALUAUC4hTwIAyQBgJoIUpvJQJvIjRoJWFoJi7kNtIgAZgCAuJPl8AOgACR -4pLnwA+gARAAAAAAAAAA6lDYQA6AArTsU03ACjAMveQQ2EAJ+A/N4hDYQA+gARDqErBAEDgIZ2RR -zOsTsEANCAcaZLF05DDYQAn4D6cAAO4QsEAQCAzRwMHu3ejADoAARu3E5sAJ+A+LAAAAAAAA6lDY -QA6AArTs4U3ACjAMpYoxsarqMchAECAMkRqbCxibfumdu8AVOAyqKIKDqpkJmRGpiIiHiI7A8e+H -0kAJ+A80AAAAAAAA6lDYQA6AArTs0E3ACjAMk8DR7TnSQA6AAMCcMZwy7DXIQBAIDbPrMNBACfgP -AAAA6lDYQA6AArTsIE3ACjAMh+oxuEAQaA2T6RXIQA9ACanpMNBAECAMgRma6h+bXeiNu8AVOAyZ -L/KDqYgJiBGo/4/3j/7qFshADoAA4e730kAJ+A6qAAAAAOpQ2EAOgAK07N5MwAowDHHA0e050kAQ -EAzD7BDIQBAgDLPrEchACfgOfAAAAAAAAOpQ2EAOgAK07C5MwAowDGWJNOkyyEAQIAyBGZrLH5s+ -6I27wBU4DJkv8oOpiAmIEaj/j/eP/sDh7vfSQAn4DjbiFPAf8egOZ2AAAnZ5AmReL4oS0w9koEeL -E2SwUnZ5AmReHYwSZM4YjRNl3hPoFrBAECgM8Y4XCP804hTwH/AYDv6LGMCV6+rowA+YAELqlObA -CfgN7wAA5CDYQAn4DeXiFPAf7ugOZ2P/tAAAAAAA7hawQBAoDNGMFw7dNH3BnORA2EAJ+A29bBAE -KCAEKSAF7QDYQBCYBDgjJATtENhACAAACAAAAADqJrhAEGAESeQl0EAOgADR22Dj/9/ADoAAxOQQ -2EAQYARa5SbQQA6AANEPAgAPAgDqKO9AGLAAPO6wuEAQQA3KsarrsZAABZAOzuoo70AOgADoDwIA -DwIA63jvQBiwAD7usLhAEGANyrGq67GQQBIQCM6LGOoo70AOgADo7LjvQA0AAisPAgAPAgAPAgBt -6hHvwLhAEKAN6rGq7MGQQBHQCO/i2O9AD6ABEAAAAAAAAOo470AQMAfs2kBkr7TqLJBAD5gAt+yA -2EAKMADf7RDYQAn4D6EAAADqOO9AEDAH/tpAZK+8KiwU7IDYQAowANbiENhAD6ABEOo470AQMAfs -2kBkr0TqKJBAD5gAtuxA2EAKMADN7RDYQAn4DzEAAABsEAroMLtAECgMc+kxsEAOgABg6RnIQBAA -DfPp205ADQABWCowOywwRusQ2EANAAB6DLY5GppDKz0B7bG6wBU4DKopkoMNqggJqhEKmQgpkgck -MAzkGMhAETANQ+mesEAQCA3j7D24QBcgArvqOLpAD5gAVOmWukANAAiELxYHLhYGLBYFKhYD6RLI -IAFgAQTrFMggBiACBOIU8CAIIAME4hTwIAlgBATiFPAgC+AFBOIU8CANIAYE6xmwIALgAQRvRQJv -QkloRW5oRkPlNtIgAIgCBOlfl8AOgAChCak5yZXAQOoo70APmACz5EGQQAv4DrTIoWpG6uIA2EAP -oAEQ6lDYQA6AArTssUzACjALo+UQ2EAJ+A+47BKwQBA4CHtkYdTtE7BADQgHHGTRd+Uw2EAJ+A+a -AADlELBAEAgM8cDh5WDYQA9oD1/v5ebACfgPfgAAAAAAAOpQ2EAOgAK07GBMwAowC42LMbG76zHI -QBAgDKEbmfMZmmbqrbvAFTgMuymSg6uqCaoRqpmJl4mewIHol9JACfgPIgAAAAAAAOpQ2EAOgAK0 -7F9PQAowC3vA4e450kAOgADQnTGdMu01yEAQCA3D7DDQQAn4Du4AAOpQ2EAOgAK07K5PQAowC2/r -MbhAEGgNo+oVyEAPQAq66jDQQBAgDJEamdIYmkXpnbvAFTgMqiiCg6qZCZkRqYiIh4iO6xbIQA6A -APHvh9JACfgOmAAAAADqUNhADoACtOxdT0AKMAtZwOHuOdJAEBAM0+0QyEAQIAzD7BHIQAn4DmoA -AAAAAADqUNhADoACtOysT0AKMAtNijTqMshAECAMkRqZsxiaJumdu8AVOAyqKIKDqpkJmRGpiIiH -iI7A8e+H0kAJ+A4kixniFPAf8XAOe2AABQCMGXfJAmRuHY0SZNBMjhNk4FSPGXf5AmRuC4gSZI4G -iRNlngHsFrBAECgMsYoXDLs04hTwH++IDrqPGMDV767owA+YAFTu1ebACfgN3QAAAAAA5SDYQAn4 -DdCIGeIU8B/uMA54Y/+v6xawQBAoDKGJFwuqNHqRmuVA2EAJ+A2rAAAAbBAK6yjvQA6AAInmWO8A -F0gIheMVyEAOgADB4hbIIBdgCQXAm+Uok4AjMAiWaGoq7NhPQA6AAKTtWb7ADoACtO5o70AKMAsL -KlI36qGQQA6AACDqV8tAD6ABEJIW7CbQwA6AAN7vT5fADoAAowr0LO5L2AAmYAv9LVDE4hTwABMI -CE0EDUfkVNSgKXABPeYZyEAPmABMhxXrFshADoAAIK6253KQQA+YADfreO9AEIACoewg2EAKKA/S -LjABKxEI6GaowAwgD+Xg+e9ADoAAwe4OgMAPoA0M7Q2GwBB4BLgrZUbrENhACAAABsCwKGCK0w99 -gQftatRADoAAsSlgi7DtDQpHepEH7WvUQA6AALEtUMTmZJBAD2AES+MzkEAQCAIi53OQQBQYBtLm -GbAgAsgEHY4WwJDTD+7e48AOgAC07bvowBAIA97t0JTAGdgAOy/RQNMP0w9k8I3p0MDADoAAsSjQ -fg8CAMiG6d7TwA6AALEq0H/Ipunf08AOgACx7dSQQA9gBEtkQ+7sVtXADoAA4YsWwMHtANhAD5gA -q+u1kMAL+ArZ4qjvQA0IAQqMFizAR2TD4CcSBid9ASd8OC1wBJIYlhnkGsggHigBPYIW5HjvQA6A -AGDiIZhADoAAMOIolkAIAAAbwLDpANhACfgPdACjo7Fm5ESQAAL4CtYqUOnrRKhAEDANxO1HuEAL -+Arr7XS4QA14Ddpq0dXcIO5470AOgACwDwIA0w9tCCfv5rhAEAgCu+/O08AQOA2e6c/TwBAgC47o -wMDAECAC7uzEkB/9AArbY//MhBrmGbBAEEAMIX06R4oWCjoK5zvjwBAIA6rsdLhAFaACqm0IJ++2 -uEAQCAIz76LTwBA4Devuo9PAECAL2+2qw0AQIAK76qSQAABgCsNj/9EAAAAAAONc1kAOgACBKFS+ -7mjvQA+YAPTsnk5ADoAApO1ZvsAOgAK04hDIQAowCmfRDwAAAOIU8CAWIAE9wEDmGchACfgNqAAA -AAAAAOUok8AOgABA4gDYQAn4D7cAAADdMOgQ2EAQCALj6CDTQBAoAvPjIZhAEAANzeM4l0AOgACY -6jjvQBBoAt3tEMhADAALx+wNgMAMAAzG7Z3mwAv4DhTkqO9ADRAN+oIW6yu8wBZQDcLoJLzAFigN -cu0pvMAWMA1S7ii8wBY4DfKod6dVpf+v7q7drcysuykKZOUok8AQuASbKgoD7GtOQA6AArTtWb7A -CjAKNcCBKFRwjBbTDynAMStQEOzAu0ANEAEp4hTwIBIIAQnAIGQu840WLdAxZNIQkxcYmJETmLzn -Wb7AFUAMiCMygqeICYgRqDODN48Xgz4sCgjr/JBAEBAM/+8zykAQCAOj6qCVQAooDv4pEgcq+ux6 -kRIrnBTqMZhADoAAyOqolUAKKA73wDDqeO9AD5gAs+wA2EAOgADQ7gDYQA6AAJDpEchADoAA8OkS -yEAOgAaE6BDIQAuQBW1moCmMF6w8LMAMKwr/68vowA6AAKDqeO9AD1AMuus470ALkAU7ZqAEsTNp -OKLA0e1c00AJ+A4wLCQ7IjAALlCKLTAB4mOAQAwABCfiAoLAEHgETiRUiu/I70AIAAAGwPAuUIvT -D9MPc+EH41vUQA6AAPEoUIxygQfiXNRADoAA8SlQjX2RB+1d1EAOgADx1PDrFshADQAAryxUjisW -BosW7FG8QA+YAO/quO9AFFAN1eu6k0AL+An+4hDYQA0ADcpkLZ+MFizAPGTA74oWKq0BKqz+K6AH -6lm+wAv4ClTAsetV1EAJ+A1/3kDstE5ADoACtO1A2EAKMAnJLVDE7BDYQBAwDLHuS9g/6/gEDcBB -5hnIQA6AANTtVNTACfgLIwDAQIgWKIBG7wDYQA6AAOHo/ufACfgMCADjANhACfgM0YcWJ30B53CS -QAn4DB8AAADrFsg//mAEHeQA2EAJ+At/6xbIIAMgBB3kyO9ACfgLb2S99mTN84kW4hDYQA6AAIHo -kdNACfgN6IoWKq0BKqyE6hfIQAn4DeWMFizAO8Cw7LLnwAn4Dx3Lt8vF7RDYQA+YACTk0ufACfgN -tYoWKq0B6qWXwAn4Dw/sVtXAD5gA7OQQ2EAJ+AtnhRblWJPACfgNcokW4hDYQA6AAIDokdNACfgN -fGwQDJIeHJfx7SGYQBCAAoLoGMhAEGACouoSyEAOgABw5xvIQBHAAv3vFshAF/ACbeYVyEAOgABw -6pVMQBSAAu3uHchAFcACvesayEAWIALt7hPIQBMIDb3syLZAFgAC3e0XyEAUGAyqJyQ25yHQwA6A -AIHnLNDAD5gAZ6y76CjSQA8IC5urquoUyEAIAACBjhKIEi7g948d6Ii/wA0AAM7n89PADoAAIYoS -iR3qqb/AEGAE2O2U08AOgAAh6x2wQBBgBMrstdPADoAAIcopGJe/jx0emDIogqcv8NEu4oOo/wn/ -Ea/ujucu4g4sCgHsG8hADoAA0S3kJqZWslioM7JmBgZP4hTwABYgCUbqGO9AD5gAs+wg2EAKKA4m -KREADwIA6QWIQAxgCZniFPAgB5ABCeIU8CAJwAIJ4hTwIA8YAwlplLPqFrBAEBACs+xA2EAKKA4Y -iRLuXJfADoAA9g/uLe8dsEAOgACg6hzIQA6AAIHokNDADoAAIO781kAMcA7g6jaQIB6wAT6TEeof -yEAQOAxx6hKQQBB4DLHsINhACigOBIwRLREBL3FALsAIK8AL7g6CQBB4BN8tdUDtENhACAAABsDQ -L3B+KHB/e/EH637TwA6AANHpHLBAEGAE6O5/08AOgADRjh0NIgLndJBAEHgMoe7svkAQMALM7BHI -QBAIApnpHMhAEDACquofyEAUGAbp5wDYIAqwBD5j/quHEooY6DK4QBAgArPicbBADoAAyOhw0EAQ -EAyX6RnIQBAYDfPvcdBACigN2opxixKMGecA2AAIeA4qi7LnANgACCgOy4wS58zRQAn4Do+OEuoa -sEAQEAKz7EDYQA6AANHt6tJACigNy48SiBItMAQv8LAsMBLtbYBADoAAIOiBv0AQiATfgh0tJCzi -ENhACAAABIoS0w8PAgAqoLLpHbBADQAAyOed0kAOgAAh7UDYQBCgBMqLHQ8CAA8CAOy+0kAOgAAh -7ADYQBjAAD2NHqPOLuAGrc0t0MDswZAAFmgO3sDo7ADYQBjAAD6NHqPOLuAKrc0t0MTswZAAFFAO -3mP9qo8S6hWwQBAQArPsQNhADoAA4e7100AKKA2fiBIuMAQogPbtN7hAEDANw+5ugEAOgAAg6R2w -H+nACOjAIe6S08AJ+A0uihLnrNFACfgNY4ke6enjwA6AALTuu+jAEAgDmemQlMAZyAA7LJFALpB+ -0w/tENhADQAC/CeVQO+fu8ANAADO557TwA6AANHI9uef08AOgADR6ZSQQA9gAtJj/QoAAADtANhA -CfgP1IgSKIAkwCDjFLBADQABeIkSKZAvyJorEgIrsDoqCgELojmLHuo470AL+Aym5x6wQBBQDFHq -OO9ADoAA0O9Y70APmAC35nGYQBF4AnfseO9AFCACZu5o70AL+AnyyqXAQOx470APmADm5EGQQA+Y -APXrHrBAD5gAo+0A2EAL+AnpyKFqRtrnHrBAECgMUcBA6jjvQA6AANHvWO9AD5gAt+ZxmEAR0AJ3 -7HjvQBeoAmbuaO9AC/gJ3Mqj7HjvQA+YAObkQZBAD5gA9esesEAPmACj7RDYQAv4CdPIoWpG2uce -sEAQMAxRwEDqOO9ADoAA0u9Y70APmAC35nGYQBIoAnfseO9AEQACZu5o70AL+AnFyqTqOO9AD5gA -x+5o70APmAD15EGQQBBwDLHtINhAC/gJvWSgAmpG2SoSAiigJCkKAOmt0UANAAVoK6AvZLB4LKA6 -ZMB6ZCBFGpaqix0Zlxzrsb3AFTgMqimSg6uqCaoRqpmJl4meLZAmZNBD7ADYQBBYDCHsl9JAD6AB -EAAAAADiANg/3MgEHmP+B2QvuYod6xDYQA6AAMDtANhADoAA4uqhvcAKCA8qY/+cAAAAAADiG7BA -D6ABEGUv0mP/iQAAZS/KY/+BAADs/9/AEDAH7cDBZMsa6hOwQBBQArPsgNhACigM/eIQ2EAJ+AsH -7P/fwBA4B+0sCgFkzSjqF7BAEDACs+xA2EAKKAz04hDYQAn4DRUAbBAM4hLIQA6AAKDqGchADoAA -4O4byEAQ4AKy6x3IQBAIA2LuEMhADoAAgOgayEAWgAJ2lxXo8kxAD5gAkuZhusARgA3Z7RjIQBHY -DcnsF8hAEjANuesWyEAOgAAgqGjoHMhADoAHf+s470AQIAKh7CDYQAooDNQkEQIElUbkBIgAB1gI -dbJIqDNlX9qJGmSU2ooZ0w9ko4yLG4wd7RiwQA0YDMsswBTuF7BAEPgI3I0dLdAf7xawQBCQCO0u -Eg0u4CriFPAAILgI/sAhGJZEFZa3DwIAKIKoJVKDpogJiBEIVQglUgcGagLlXrBADoAAsOwA2EAO -gADR7iDYQA6AA//vUcdACggOzepo70AOgACw7BDYQA6AANHuINhACggOxylRseIU8AAVYAPZ6lGY -ABOgAamJHCmdASmcgCmQ4OSglEANGA0Z4hTwIBL4AVnqaO9ADoAAtO0A2EAOgA/P7iDYQAoIDrZg -Aj8AAOsykEAPmACh7EDYQAooDJIsEgAdmC4MixTu0kwABGgI2+IU8B/3oA7rGJYRH5aFKIKnL/KD -BogICYgRCP8IL/IHHZfRL/IO6RywQA6ACOCu3S/wQOmRmEAOgACk6ZCUQBAoDMHpnL3ADQAAz+IU -8B/1SA+pLMCRDwIArcwswNybE+IA2AAK6APs7xDYQA2IDTLvG8hADoAA0e0ayEAOgADh7hnIQAn4 -DnQAGZXxGJZkKZKnKIKDppkJmRGpiIiHihyIjuqhmEASAA2I6qCUQA6AANHqrL3ADoAA4OkA2EAN -AACYfa8BwJHsDIbAD1AOne+A2EANcAJe6MDYH/DoCc/iFPAf8KgLyOsTyCAB4AkMwJt5wTqKG+sQ -2EAXoALcDbo4mhuOFR+XmC7gkSgKgKj/r+4u4NzsFMgAAPAD7sAgZy3VYAEZAADtGshACfgP2O0Z -yEAJ+A/QihUpoiCxmemgykAQGAyx6hKwQAoID6kbl9jqE7BAECgMwezBvUAQ+AS6GZcdKgqAqpmp -ySmQ4GiTNWiXMuIA2EAJ+A+nGZfNKgqAqpmpySmQ3GiSAmmX0eoSsEAQMAKz7EyXwAv4DbriqO9A -CfgPfIoS7EyXwBAwArPtFLBAC/gMIeKo70AJ+A9ijBUrwiCxu+vAykAQEAyh6xOwQAoID4aJFRqX -timQkSsKgKuqqpkpkNxokhFolw7iANhACfgOdAAAAAAAAADqErBAEDACs+xMl8AL+A2e4qjvQAn4 -DlUkXQEkTICIHCiNASiMgCiA4GiBO8CgKlT9KlToKlS0KkSGKkS2KkTOZiGA0Q8AAADqaO9ADoAA -s+wA2EAOgADR7iDYQAoIDhQpUbFj/TkAAClRseIU8AANSAPp4hTwAA5IA8l6l63qaO9ADoAAtO0A -2EAOgA/P7hDYQAoIDgdj/5KOHR2VbewOScAOgACwK+QfLdKoLMKDpt0J3RGtzIzHjM4rxP/rztfA -EAgDzCvEACvEASvEAivEAyvEBCvEBevG0EAJ+AwxAIodGZVb6OxJwA6AAPAvpCopkqgogoOmmQmZ -EamIiIeIjiiNAS+EOC+EOS+EOi+EOy+EPC+EPS+EPi+EPy+EQC+EQS+EQi+EQy+ERC+ERS+ERi+E -Ry+ESC+ESS+ESi+ESy+ETC+ETS+ETu+P0MAJ+AvLix0rsJhlu+aMHSzAzGXL3o0dLdDhZdvWjh0u -4Opl686PFS/wZmX7xogVKIB+ZYu+ZSu7Y/64ACqgJOIU8D/0eAE64wDYQA6AANGwqXkyAcDQ2mDj -DIbADoAAtO4g2EAKCA2/KkCksTPtENhAFvAGo2P+WY0V6iDYQA6AArTso0vAD5gA4u3RvUAKMAa0 -0Q+NHRuVG+roScAOgADALNQUK7KoKqKDprsJuxGrqoqniq7DxOqhmEAOgACw6qiXQAooC69j+u4A -AOpo70AOgACw7ADYQA6AANHuENhACggNoClRsdMPDwIA4hTwH/H4AcnqaO9ADoAAs+wA2EAOgADR -7hDYQAoIDZYpUbFj/hwAAGwQBNMPbUoR5yC4QBAADUOxM+IhkEAQYAhH4gDYQA+gARDi/9/AEGAH -R+IQ2EAPoAEQ0Q9sEAgYlwYqCtzpMEvAEegEhOug2EAROAiU7bDYQBB4B1ssCgnpUdgABaAJxeIU -8AAG8AjV4gDYQA+gARDiANhAD6ABEAAAAAAAAMBA5SGYQA6AAHHlXJXADoAAIOs470AQgAKh7CDY -QAooC04qEQgKmUZokUZrlR5qkhsAkAQECBvgme8ABHgD+AB4GghEAuQEhsAIAAAMKVIgsZkpViAK -CEiiguIikEAQEAKIqDMCAk92I6fiANhAD6ABEACQBAQLG+CZ7wAC2AP7AHgaCEQC5ASGwAn4D8sA -AAAA4hTwH/qgCJbuSO9AD5gA9ez8SsAOgAK0qi3t1bxADoAApOYQyEAKMAZF4pvfwA+gARBpYtJj -/x8uUh+x7u5fyUAIAAAML1Iesf8vVh4tUIXsDErADoAApetC2EAKMAY34pvfwA+gARBsEAbkJ7hA -EFgMgukpu0AOgABk5ASCQBBgAEjmlutACAAABtaQwKXsG0rADoADtO4gsEAPmADS5geGwBAQDPLn -EMhACjAGJBiUpeqVSMAMcAZQ73pKwA8IBcQIVQjpobEgADgCBiMyA+0gsEAR0AyFsZkpphHv3+sg -BjgCSBqUmApKCulZs0AU2AyqG5Ru6p7lAAVwD6nrAOzAD5gAngkCawkCaxmUTxqWk+ShScAOgAHQ -7ePIQBCAC4Pk4MhAEIgLw+zswEAPAAuH6yCwQA9gCLjv8EnAD2AKr+/iyEAOgADG6uTIQA6AAELp -iOtADwgLi+jlyEAPYAtL6+HIQBDQAq7rPJNACigK1uRZy0AO+Aiw6zfSIAEQAgaKJ8Cx7ADYQA6A -ANHqoJJAC5AGXeKo70APoAEQAADiANhAD6ABEIsiZbBqK0wY6ijvQA6AAMDtINhAC5gAuWli3Ion -6wDYQA6AAMHqoJJAC5AJ6uOjyEAQAAzSHJVx6wZKwA6AAOHroshADoADtOygyEAPCA2N7LVKwA9g -De3tochADoAApe0470AKMAXL4gDYQA+gARDqUNhADoADtOwlSsAKMAXF4gDYQA+gARBsEAQWlBEm -Yn8alkyGZeko70AO+A+/qmrsENhACAAADAAAJiwoemE84mjvQA0AAJkoYADKh2Q/6S0gAMHg5gDY -QB8IAS1t6hOjaKJn53i4QBAADYjmYZBAEMAIeNEPiGJ5idHRD+IA2EAPoAEQAAAA5rjvQBAwB4fW -wGVvpGP/4mwQBuzISMAPmACi4xDIQA6AA7rjaO9AC4gCZ+ao70ANAASaZDAP6qySQA+YALPsYNhA -CigKech+6mKTQA+YALfsYNhACigKdIgilWrkachAEAAMkeloyEANAAGI4gDYQA+gARAAAAAA4sDY -QA+gARDaIOto70AOgADK7TDYQAtoDubiANhAD6ABEAAAbBAEIiKqwEHjJejADQABAsAg5ULmwA+g -ARAAAOIA2EAPoAEQbBASGJPfGZPfKoKhKZKG6/xLQBcwA4jogb7ADwgKmgqZCOsA7MAQGAOp6qCU -QBBQAfgqnQEqrIDsTUtAD5gAkQkCawkCawkCawkCawkCawkCawkCayuhKRiTzR2Tzu7MSwAFMAjL -7hLIQBA4DfrpoLBADoAAx+0QyEAOgA7R7RjRQAwQD/DomeHADwgPD+yZ60APYA/76RHIQA9gD4+f -FA7qMO4VyEAOgAPQ7R/AQA0ABbTkEPFAEQACkQlCawQDaAkCa+YW00ANAAMDjivoK6lAEJgL8w8C -AO8Q0MAQOAAeKBUhjTMtFhOMMiwWEos1KxYViTQpFhTrGO9ADoAAx+0g2EALkAHx0Q8lFDUYk6Lu -ILBADoAAkJkb6RrIQA6AAPXoGMhADwgOju4cyEAPYA7+7hnIQAn4D44AAGwQBBuTkBqTkOwsuEAV -CAy7KqKGrLvp2EtADwgLm6uqKKEp7LdLAAQICJiOJ47uLe0C75hLQBKAAr3sAOzAD5gAmwkCawkC -awkCawkCa4ggHJOB7ObNQBA4DZroiOHADoAAxO/kzUAPYAjI6OXNQBFIC/rojEtADBAJkACZEQn/ -AujqzUAPYA+P7+jNQBOAAp0DA2kJQmsDA2gJAmsk1IbtINhAC5AButEPAABsEAooUBhogQ7iANhA -D6ABEAAAAAAAAADrWpFAEIACoexg2EAKKAnW6hiRQBBAArTsAdhACigJ0tog77dJwBDAAsHtOJBA -EIAC4ekg2EAPmAC96RDIQAuIAJviANhAD6ABEAAAbBAgiifrOLBAEAgMcw8CAOWusEAOgABh5P/f -wA6AAIjod+VAD6ACG+lY7yABCAALLV0ELNAAAGsaBLsDC8sBCwtH69DQQA0AAHxktA4skr7tA0sg -FcAEDI7S7hLIQBAIDP3vEchAEAAMjegQyEAQGAzdLRYDGpMi7xCwQBCAAsHvwMhAEAgM4e7ByEAQ -EAzRncLqFMtAEBgMsZvD6gDswBEAApEJAmsJAmsJAmsJAmsYkygbkxsckxmcGJsZijOaG+kysEAR -AAKx6RrIQA6AAMLtNbBAFQAMiO0dyEAPmACi6TSwQA6AANXpHMhAD6AAGB2S+OsQkUAPmACi6dCw -QBIAAuHp4MhAEAgMjejhyEAQEAz97+LIQBAYDN3t48hAD5gAzu06oUALyAmbJDUa5hvRwBCoDfPv -HdHADoAAgCgUUigUUygUVCgUVSgUVigUVygUWOgZ0cAPmACi6BrRwA6AD8/sENHAEIACsewc0cAO -gACS6RHRwBC4DdPtH9HAELAN4+4e0cASgALR6dCwQBIAAuHp4MhAEAgMjejhyEAQEAz97+LIQBAY -DN3t48hAD5gAzu07oUALyAl3iTzkO8FADoAA0J0x4JnvIAFQAAmKJ4yuLM0ELMyAK8CAAGkaBJkD -CbkBCQlH6cDUQA0AAHtkkneUPB6S1ByS0uQNSkAQEAO1KLAFnTYfksrqvEogAaAFCMl12iDrkNhA -C4APxilQJcCt7QDYAAiwCKkpMRJkkiDiFPAgB8ABCdEPAAAAAAAAAOgsuEAVCAxPKqKGqETpq0pA -DwgElKSqKKEp5LCXgASQCJiPJy/yDiUSNCn9AiucUOUA7MAPmABbBQJrBQJrBQJrBQJr6ZCTwBFI -C4ru9M1AEDgNWuz2zUAQAAxy7p9KQA6AAMTu+s1ADBAFUOh34cAPCAUF7HfrQA9gCFjn9c1AD2AI -6Oj4zUAPmADkDgNpCUJrDgNoCQJr6fOYQA6AANLoJthAFAACmeiW0EALkADj6kjvQA6AALDsBdhA -CigJK+0A2EAJ+A8lLZK67RDIQBXYDMnsEchAFeAMuesSyEAV6Ayp6hPIQAn4DUqdNp0ynTOdNO01 -yEAPoAEQGpJ9GZJ9HpJaKqKhKZKG7uG+wA8ICpqqmSqdA+qglEAQUAH+Kp0BKqyAKxI00w/rAOzA -EwACkQkCawkCawkCawkCawkCawkCawkCayuhKeIU8B/02AhLGZJqHpJr7KZKQA6ADvHvGNPAEDgN -iuwayUAQAAzKLhYY6AiCQA6AAOfozOHADwgICOi460APYAzs7BnJQA9gCJgoFhwP6jAvFh3sD9/A -DoAD4O4fwwAEgAjFKxx/67GQQBCAApUJA2sLwmsJA2oLgmssCmPsFtVADQAC444rLzETDwIA7xDW -QBBQAB4oIRsoFVGOMy4WK4wyLBYqizUrFi2JNCkWLOxw2EATAAKx7SDYQAuQAI3tANhACfgN3eY2 -yEAPoAEQ6qCRQAuQBj+JJ4meY/vhAOqgkUALkAY77QDYQAn4DXwtFJUekjPrILBADoAA8C8WI+8S -ykAOgADF7hDKQA8IC4vrFMpAD2ALy+sRykAJ+A9eAAAAAAAAAGwQCCYi/QvqMBeUQtMPKHKR4hTw -AArYC4sdkfgrdpHqcLVADoAAwO3Zs0AKMAUmHZI67ADYQAowBSMnLQQnfPTrF8gACKAIZxiUNJIU -6BXIQBKAAojoFshACAAAJwCj/qL4KIAYLuAAAJAECAgbDg4beOFbhiDTD+IU8AAG4Ahn4mjvQA0A -ARWOYukXsCAAOAAOeeNChiTIQXRp1wY/FNMP6gDYQBjYAT+jrqKt7di5QBAADe4PAgDqoZAABSAO -3umA2EAMIA1g7ZnowA54CS3RDwAAAAAAAO+Y70AOgACl7BWwQA6AA7DtaO9ACjADe8Cl7BawQA6A -A7DtZrBAEDgM5u9osEAQSAyG6BDIQAowA3MalAAuIgEmIgAqom4m5gAvIgArIgXsANhADoAA0e7x -yEAOgACQ6SDIQBAgDKrpIchAC5ADYCwSBCvC/Cu8/+vMz5/5YA5n4gDYQA+gARDq/9/AEDAH7cCh -Za8GY/9PLHKQsczscM1ACfgOoAAAAGwQEIkniZ4akbUokr6NoOyhsEAQEAy66qOwIAzQBAidEJwR -mxIqFgMekanrELBAEIACgeuAyEAQCAyh6oHIQBAYDPHvg8hAEBAMkZmC7gDswBEAApEJAmsJAmsJ -AmsJAmsYka4bkaIckaCcGJsZijOaG+kysEARAAKx6RrIQA6AAMLtNbBAFQAMiO0dyEAPmACi6TSw -QA6AANXpHMhAD6AAGB2Rf+sQkUAPmACi6dCwQBIAAuHp4MhAEAgMjejhyEAQEAz97+LIQBAYDN3t -48hAD5gAzu06oUALyAgiLwr/LxRc7xDRwA6AAGHmG9HADoAAUCUUUiUUUyUUVCUUVeUW0cAQgAKx -5RfRwBIAAuHlGNHAEoAC0eUZ0cAQuA1D5RrRwBCwDYPoHtHADoAAouoR0cAQqA2T6R3RwA+YAKLk -H9HADvgPT+Q6wUAQAAyd6eDIQBAIDI3o4chAEBAM/e/iyEAQGAzd7ePIQA+YAM7tO6FAC8gH/Ik8 -JDUblTHgme8gArAACYsnjb4t3QQs0AAAaRoEmQMJyQHpCYbADoAAIOnQ0EANAABsy5WUPOU2yEAP -oAEQKpK66hDIQBXYDInoEchAFeAM+e8SyEAV6Azp7hPIQAn4DlSVNuIA2EAPoAEQ6rCRQAuQBVGU -PJU24gDYQA+gARAAAGwQBC4i/QrqMBeTZNMPKHKR4hTwAAYYC4ovLQQv/PTqcc1AEtgE7+aA2EAI -AAAgAKNZrloqoBgpkAAAwAQKChsJCRt6kTWO4H7xMo3kyEF02fMNNRTqANhAGMABNaOsrqvruLlA -EAANzOqhkEAS2Ai8DQtC62zowA54C4vM5uIA2EAPoAEQiOHr4LBAE3AMp5uAieDA8O0Q2EAPmADP -6JHIQBAgDKrv4MhAECgMvu/hyEALkAKmLCL8sMwsJvziANhAD6ABEAAA6v/fwBAwB8vAoWWvcGP/ -mC1ykLHd7XDNQAn4DzgAAABsEAbueO9AD5gAcwvqMBOTKSgykZ4QGpDh6zHNAAzoC4toUB/tqbNA -DoAAwOowtUAKMAQMHZEh7ADYQAowBAoakNerVWhgHsDA6zG1QBHIDNrqMLVACjAEAx2RF+wA2EAK -MAQAq2baIOt470APmADE7RDYQAv4DsvjqO9ADQACSsCl7OBLQA6AA7DtOO9ACjACe5UyljPiOO9A -D6ABEAAA7IBLQA6AAKXrA9hACjACcy4i/O8QsEAaIAUey/wpIv4akv2LkeyQsEATcAyqnLCOkMDR -6qSwQA6AAIDr4chAD5gAyOiQyEAQKAy56JHIQAuQAl0rIvywuysm/Cwi/OIU8CAEcAUsE5LrIzJu -ijQtoQLM1uoA2EAIAAAZWw2fizjqquPAD5gAig8CAAuqC5il46jvQA0ABcqVouajyEAQCAzHnKfk -pMhAEAAMt5um7BCwQBAYDKfqOchAECADku1ysEAXoAKZ7TjIQA0AAuwuIv3j4chAF+AM0p4wmTHj -Lc/AEAgC3S0m/OI470APoAEQ4jjvQA+gARAoIv7jgMhAF+AM8pgxmTDjLs/AEAgC/y8m/OI470AP -oAEQKTKQsZnpMM1ACfgOXgBsEASEICgwBiUwByJCEAiIEQhTAuNKwUANAAECIyUa4gDYQA+gARAA -4gDYQA+gARBsEBYnMAIL6jAakbrTD9MPKKJ/0w/iFPAAK3gLix2QYSumf+qus8AOgADA7dmzQAow -A48dkKPsANhACjADjNoQ7AHYQA+YAGvrMJFACigG8CQwC+U3uEAQUA2j7DW4QBAwDbPoOLhAEEgN -0+k0uEAPCAqK6LvhwA8IDAzg3eHADwAIiOiZ4MAPYAjY7JnrQA9gBbXqROtAD2AFlehE60ANAACV -aFABpWUsEADr79hADQAAlGhAAaRk4hTwAAjgCLwqCv/iFPAACEgIrCkwAw8CAA8CAHiXIGRRFQIq -AusY70APmADH7VjvQA+YAOTvANhAC/gPRikwA+IU8AAGoAGZKSLJ0w/TD+4g2AAGKAPZLyKz4hTw -AAXQAe8sEADiFPAABXgDySgK/uIU8AAGuAiM4yOYAATgC0UpMSPTD+0Q2AAEUA555z/tQA+YALEP -AgDqOJZAGLABP+6wuEAUAA3asarrsZAAIBAO3i0KAQcLQu4g2EANAALLofii+emTmEAOgACo6IC4 -QBVAApnrqujAFAANmQCgBAgIGwkJG3mJKisyEuqkSiAbCAAL5rvowBBgB1riFPAAGcgJWyU2EiQ2 -E+IA2EAPoAEQAADIUWh9R+IA2EAPoAEQKRABKgrACpkB4hTwP/bYDllj/+MAAAAA6ijvQA+YALHs -eO9AC/gOyWP+8SsQAS0KwA27AeIU8D/5AA5bY/+4ACwUEOkRuEAQIA3x7xTRQBAYDWHmE9FADoAP -v+sb0UAOgA+u6hzRQBAQDYHoEtFAEAAMoukR0UAQOA2B6BfRQBAwDZHpFtFAECgNsSsUFeuqu0AR -6A2a6R3RQBHwDYroHtFAEdgNauYZ0UAR4A367xrRQBH4DWrmH9FAEHAM8w67A+sY0UAQgAJh6WCw -QBEAAoHpgMhAEAgMtuuByEAQEAyW6YLIQBAYDGbmg8ggDxgBPymiBymSDiySvuao7yASOAQMGo/K -6KCwQBGAArHosMhAEAgM+u+xyEAQEAzK7LLIQBAYDKoqtgPp20fAEYACoeigsEASAAKx6LDIQBAI -DPrvschAEBAMyuyyyEAQGAyqmrPpAOzAEoACkQkCawkCawkCawkCaxiPwRyPsxuPtCsWFSwWFIo7 -KhYX6TqwQBKAArHpFslADoAAwu09sEAVAAyI7RnJQA+YAKbpPLBADoAA1ekYyUAPoAAYHY+R6xCQ -wA+YAKbv0rBAE4AC4e/iyEAQCAyN6OHIQBAADJ3p4MhAEBgM3e3jyEAPmADO7TqiQAvIBjQoMDXo -HdRADoAAkCkUiikUiSkUiCkUhykUhikUhekU1EAOgA+/6RPUQA74D9/pEtRADoAAwewb1EARsA3z -7x7UQA6AAKLqEdRAEbgN4+4f1EAPmACm7TrCQBOAAuHrENRAE/gC0esc1EAQCALd79KwQBIAArHv -4shAEAgMjejhyEAQAAyd6eDIQBAYDN3t48hAD5gAzu07okALyAYNKTIU7RDYQA74D+/uO8JADoAA -oOo5yCABqAAJjGcowg4ojQTgme9AEAAN+ODZ8MAO+A+/C5kDCfkBCQlH6YDQQA0AAH9kkK7Hnyk2 -FJo+JTYSJDYTJzUjnT4tNSLsG7BAEEAMses6yEAQSAyh6jvIQA6AALHsPchAEFAM0e08yEAOgADB -6iCwQAuADQDiANhAD6ABEAAAe6tRKjYSJDYT4gDYQA+gARAAAAAAAAAA4hTwH+V4C1rH7+IU8B/l -KAteY//V6BCTQBXQDMnsgMhAFdgMueuByEAV4Ayp6oLIQBXoDPnvg8hACfgNvyQ2E+IA2EAPoAEQ -6sCRQAuQAz/A0eoA2EAJ+A9DAAAAAAAA6v/fwA+YAI3tENhAEEAH6MDR2tDuINhADmAEumP75QAp -on6xmemuy8AJ+AqMAAAAbBAIyTzaMOsA2EAL+Ar2yqDslElADoAApetD2EAKMACz0Q9kQHHAoOtI -70AL+ArtZaIkF4+LJ3KJinEooQJkgGZbC/GLdewhR8APGAmq50hHwA8gCbnqkcBADQAE6etztEAU -SAx3LcKhLM3m6nKwQBcIDczpFchADwgNna2776KoQBFAAfwtsieN3i3SE+0UyEAIAAAiAADskklA -DoAAoutD2EAKMACR0Q8usqeO7i7iE54UZP/wWwvUiBSJdgqnC6io6QDYQA8gB5eZcJlx6HDBQA14 -DVdkMY+KFSmkACl0JpOik3SKFetY70AOgADG6qyRQAooBWCSfOZxwUARyA3yL3Qo7VG4QBAADeUu -dDwtdD3rU7hAEBANxSx0Pit0P+lVuEAQIA2lKnRAKXRB5Ce4QBBYDLLoKN/AEeACZ+h30kARyA2S -5ASCQBBwAEvANOOT60AIAAAG05DApeyeSEAOgAO07iCwQA+YANLjBYbAEBAM8uUQyEAKMABcH5Di -Go6SGI7cjSDsQ+HAEIgMmqgzKDI6sZnpoclAD2AP/eqOSCAHMAJICkoK6TmzQBSwDKobjqrqnuUA -BoAPqesA7MAPmACeCQJrCQJrFI6LGJDP7FVHwA8ACoXtRUfADoABsOvjyEAQgAuX7eDIQBCIC7fs -4shAD2AIj+ogsEAPYA+p6+zAQA6AAMbo5MhAD2APT+iq4cAOgABC7+XIQA9gCkrq4chAD5gAturq -kUAKKAUS5DnLQA74CJApdCfdcO5wqUAQiAv37PtIQA6AAKXrQ9hACjAAJtEP7MtIQA6AAKXrQ9hA -CjAAIdEPjBXAoerA0EAPmAC06nbSQA6AAcDqcJFACigE/WP+XI4iyeHqUNhADoADtOwKSEAKMAAU -Y/+bK0wY6ijvQA6AAMDtINhAC5AK6Yon6wDYQA6AAMHqoJJAC5AEGuejyEAQAAzSHI+h6wlIQA6A -AOHroshADoADtOygyEAPCA2N7LhIQA9gDe3tochADoAApe1470AKKA/7Y/84AGwQBOIotsAPmABi -KW0EKZygcpEv6v/fwA6AALHsAdhADoAAYG3KFKNoAmcI53i4QBAADYjmYZBAEKAIeHKRBNEPAAAA -4gDYQA+gARDmqO9AEDAHh9awZG/igiDBwOYA2EAWGAgpY//bbBAEjSeN3izdBOvAuEAOgADk5hDY -QA+YAKLo8NhADoAAIOzAlAACcAqL0w/pMZBAGHgAPgAgBAsPG3/3A7Eixy8AIQTiKOLAD6APBu2I -48APYA/778DUQBAYA+gp5YPp4sRAEBADiCWGguSDzEANAADr0Q/i/9/AD6ABEBuOOeyTRsAKKAq6 -0Q8AAABsEASMJ4rO4DnvQBAgA6rooLhADoAAkeCZ8MAO+A+/C5kDCYkB6QmGwA6AACDpoNBADQAA -eGSQB9EPAAAAAAAA6sCRQAuQAh/iANhAD6ABEGwQBMBCbUpi7Cu3QBXwDILpANhAFdAMsuYtt0AO -gACg5Sy3QA0ABEjtMbBAEAAM4+8A2EAOgABA5zOwQA6AAIHuu+jAD2gM3OyK5sAPUAm452bowBCg -CamJMglVDOaE5sAPUA9YdPgKIixA4gDYQA+gARAiLQPiIJbAD6ABEAAAbBAIJCIHHJAf6lDYQA6A -A7DkTrBACigPgygwFek0uSAJQAFYZZEgKjA47O/YIAjQBVrrNrlAELgN0+oyuUAOgAzg7t3lAAgQ -DsviFPAgB9AOXSswEwiqEeux2EAPYAq65azooAcgC0oszDbucEgAFQgJywU3CC1wBC9wBQjdEQ/d -Au3PgMAQ0AXeHo8t7/OQQAywDdDg+e9AD2AN7QDdGutFt0AOgADA6kS3QAowAZnqUNhADoAAWgW1 -LOxPR8AOgAOw7VjvQAooD1cocBopcBsIiBEJiAJlgIUpQvotQvnqCNtADoAAYecUyCAECAAJiyeL -viy9BCzAAADQBAwOG3/nZA3eCQvuCi7tA+/irEAUGAvuD+4MdetSKUL6AJAEDA8b4hTwAAm4Af8J -nQkL3Qot3QPu0qxAFBgL3e7d6MAIAAEgAAAAAOwtR8AOgACl6wPYQAooDzPiANhAD6ABEOIA2EAP -oAEQx+9146yPFI/ywH/r/9/ADgAGn4gUiINlgF2JFImUZZBWjBSMxWXATx+Ndt0Q7PCwQA6AAeDs -EMhAEAgMn+kRyEAQEAyP6BLIQBAYDP8PAgDvE8hAGOAAPu42ukAQAA394hTwAA8gDu/jMZBAEAgC -3eIA2EAPoAEQixTaQOu4kEAL+A8VLDqA46jvQA0IBtrqqLBAEDgMQu1OsCAEyAAKL90E7/CUQBA4 -DOMr8IAA4AQLCBt/h1kO6QkNmQopnQPokqxAFBgLmQiZDHWbRwCgBAsMG+IU8AAHeAH8Cq4JDe0K -Ld0D7tKsQBQYC93u3ejACAAA2AAAx9/qUNhADoADsOy4R8AKKA7t4gDYQA+gARDHj3WDtwChBOBp -8MAO+A/vDpkDCbkBCQlH6fDUQA0AAHtkkPus2yqwgNMP7jygAAUICnrA9OkA2EAYeAA/AJAECggb -f4cDsZnHnxyPdeCZ70AQCAJF6Z/iwA+gBwbt/+PAD2AHeuew1EAQGANvJGWC5GPEQBAQA//u8sxA -D5gAaezzzEANAAfKmTiVN+IA2EAPoAEQAAAAAOw2R8AOgACl6wPYQAooDsHiANhAD6ABEAAAAAAA -AMff6lDYQA6AA7DspUfACigOueIA2EAPoAEQ5TfIQA74Dy+SOOIA2EAPoAEQAAAAAAAA7BVHwA6A -AKXrA9hACigOreIA2EAPoAEQ6zJFwA+YAKLsIkXACigJopY4lTfiANhAD6ABEAAAAADqQJFAC5AB -FY0njd7sCNtACfgO9AAAAADtuO9AEDAH791gZN2i7yewQBfQDJTt/rAgASgACarY4JnvQBQADegA -aRoLmQMJ6QEJCUfpgNRADQAAfmSQqarbKrCAd6ppLAoE6QDYQBh4ADwAkAQKDht/5wOxmcefF48m -4JnvQBAIAoXpn+LAD6ADBu3/48APYAM647DUQBAYA8/ow8RAEBAD/+jCxEAPmAA55/PMQA6AALDr -8sxADQACuilG+iVG+eK470APoAEQAOVJz8AO+A8vIkb64gDYQA+gARAAAAAAAOs+RMAPmACi7C5E -wAooCWIjRvolRvniANhAD6ABEAAA6vCRQAuQANWNJ43e6gjbQAn4D0ZsEAiEJxyO/upQ2EAOgAOw -5E6wQAooDljrNpJAD5gAoewB2EAKKAM36hCRQBCwArPsAdhACigDM48S7BGwQBAADLHqSO9ADoAA -gtMP5BOwQBrAADgpor7tANhADoAAYe4A2EANAAQp6au3QBXQDIrriOjAD2gJyelu5sAPUA2G6K23 -QBEQCe0uorzpANhADoAA0OSI6MAPaA7+6G3mwA9QCeZ9mAoqrEDiANhAD6ABEC/aIH+hBSiivmiE -B+IA2EAPoAEQJDASKDATCEQRCEQC6QjYQBHAAqTiFPAABFgLqeycRsAPmACi60aQwAuACuzmqO9A -DXgMiusY70ARQAKq6RjYQA6AAcDpYMFAEbAChOhhwUAKKAL76miTQBCAArHsAdhACigC9yRmEus2 -kEASYAKm7GDYQAooAvOlOypsUuxI70AKKALviiJlr27aIOto70AOgADK7TDYQAtoB2riANhAD6AB -EN1A6lDYQA6AA7DsWkbACigOAOIA2EAPoAEQAAAAbBAKLkAQ70G5QA+YAKPrSO9ADoAAYehKukAP -CA6O6Uy6QA9gDv6k5e//36AQeAJYwIQPAgBtihHtvrpAEwANyrGq67GQABAQDs2LINpA0w/rupNA -GLABOe2wuEASMA3KsarrsZAADrgOzRyOh40g7u+fwA6AAKXu5pbADoADtO3QsEAKKA3c6jySwBHQ -ArTsQNhACigCu+c0k8AQCANE5jSSwBDQAkToOJOADIAJVJgX5hXIQBOAApPnFshAE0AC8+8TyEAO -gANz6AdGwA6AAWHpGMhAEAgDk+gSyEAWkAKZ6RHIQBGAAojoFMhACAAAPQAAAAAAAADqU9gABaAI -e+xj2EASkASrfLkP6hOwQBAQArTsQNhACigCmi1AAbLdrUTiFPAACKgJVCtAAOIU8CAHuAEL4hTw -IAbQAwviFPAgBfgGC3a5ryowF+IU8B/+YAGKYABsjBTtILBADoAApe5CuEAOgAO07hnIQBCoDPPt -0LBACigNn4kZaJIXaZWaLjIV4hTwIAWgA17A9e81yUAJ+A+KKDIV4hTwIAT4AljAlOk1yUAJ+A91 -AAAAAAAA6hWwQBAQArTsQNhACigCcGP/Vys00C5AAS400SxAAS0aAO3M5cAQCAyh7AyGwBAQArTs -EMhACigCZsCl7BKwQA6AA7TtELBACigNfmP/GwDqFrBAEBACtOxA2EAKKAJcY/8H6hewQBAQArTs -QNhACigCWGP+9AAA6hiwQBAQArTsQNhACigCUmP+39EPfcMB32Bl//Vj/iHq+O9AEDAHzdpgZa/l -Y/3xbBAEijQSjD7qCYPADvgPi+IrtEAQOAHZCJkBGIvJKIKXqYgJiBGoInmueYQnDwIAJEIOKUIZ -4hTwIAewATkqCgXs30XADoADtO1JsUAKKA1TKDBGKTBHG4356jGYQA8ICIjpiOtADoAPlOqolwAE -UAyYKQoEbZoR7K67wBQADduxu+qhkAAEEA7N60CRQA+YAKTsMJJAC/gPReIA2EAPoAEQAAAAwKXs -bkXADoADtO06qEAQgAzi7yjvQAooDTgqIhDA4e8A2EAOgADQ6QDYQA0AAwrrOqhAENgLyuwMisAM -sAuwDLsMC6k4Ce84D+046ZLnwA54A33iANhAD6ABEOkA2EAJ+A/m6v/fwBAwB9zAoWSvdI0g7LxF -wA6AAKXrQ9hACigNHuIA2EAPoAEQAI0g7FxFwA6AAKXrQ9hACigNF+IA2EAPoAEQAABsEAQiIhDj -BYrADQAA8iQhGwQES3VJAdEP4gDYQA+gARAAAABsEAzoN0dADoAAoJoQhTQXi+TmPpJAFTgMSOUF -g8APmAAm53O0IBIoBCWkVOiItkAPCASUpHSER6hYhE4JiBEIdwjoQqhAEDgMd+d+sEANEAHY6k6S -QBEwArPsYNhACigB1hmNnupI70AOgACD7JCoQBAgArHssMBAEBANmQ8CAOmy0EAYsAA47LC4QBFw -DdqxquuxkAAgEA7cwJEai00pREAZi78qoqgpkoOqWgmqEaqZiZcpkg4ukC8rCh3vmrtADRgN/iwx -C5cV5hTIQA6AAHDmANgADKgJyy1CA+QTyEAQCALdLUYD6yjvQBBAAqHsINhACigBsCQRBNMP7zuo -QAyABUDoUpBADGAESahm7EjvAB/YCfZvRA0AQAQHCBviFPAAH8AD+GTBLOIU8CAIkAEM4hTwIAeg -AgziFPAgBsgDDGvHCWrEBm5fIWADvgDiFPAgBaAHDOn32CAEiAgM6xOwQBEgBJyKtbGqmrWyW6si -ZU9ywJ/iFPAAB5AIl2ADiwAAAAAAAOz/2SAcEARF4hTwABvQC1zrIpBAD5gAoexA2EAKKAGEjRAe -jU0NjBTvAkXAFdAE7OjRRcAQwAT86hOwQBCABIyJpbGZ6aXIQAn4D54NDUfqFbBAEDACsu5cl8AL -+AYNZ6+DYAMgwKjretgAGNgJWuIU8B/7mAlbYAMLAAAAAAAA4hTwP/sQBAVgAvoAAAAAAOiA2CAX -kAJVCHcC5weGwAn4D0dkUt/oQNggFuAPJQh3AucHhsAJ+A8xZFLJ6CDYIBYwDyUIdwLnB4bACfgP -GwDoENhADhALJQh3AucHhsAJ+A8H0Q+OEyjtAuOI70AQCAOe4ojvQA+YAPjqgZDAEhACeeoZyEAU -AAKZ6R7IQA+YAGjmbJDAEvgC/+8WyEAS2AIi4hfIQBKIAjPjG8hAECAMIeYcyEAOgAAw6IOQwBIQ -Am7oHchAEcAC7u4YyEAIAAAiAABpyBGKFuzA2EAQEAKy7FzkwAooATKyXa0iZEFU6yjvQBBAAqHs -INhACigBLCURBOWchMAMgAVQ5MjvIAeIAQziFPAgBQgCDGjDYWjESGjFMGjGGGnHqYoX7EDYQBAQ -ArLsXOTACigBHWP/qQCKG+yg2EAQEAKy7FzkwAooARhj/5OKHOyQ2EAQEAKy7FzkwAooARNj/36K -HeyQ2EAQEAKy7FzkwAooAQ1j/2kA6hmwQBBADOHtI7hAEBACsuwg2EAQEA3y7+DQQA9ADMXt4dBA -CigBAokTKJEcsYjonMFACfgPNgDs/9hAD5gAp+xc5MAQEAKy6xrIQAv4BYPJotpw7P/YQBBQDLHs -XOTACigA88AxjR4t0MHuHrAf99AIXcAx5eHUwAn4DvAAAADrIpBAD5gApusayEAOgA/P7FzkwAv4 -BXHJotpg7P/YQBBQDLHsXOTACigA4cAxjRMt0EHuE7Af9ZAIXcAx5eHQwAn4DqiPE2QwdS/wJRyK -0h6KXukTsEATSAHv7ue2QBEgDdkswoOu3QndEa3MjMfszrBAESgNiesA2EAOgACi68bSQA9gCKjo -ldJAD6ABEADpANhACfgMAGX8ISiQRWWMG45CwKXs2ETADoACtO7hkEAPmADV7kLIQAooC9rRDwCK -FesUsEAL+APKiRMeij8cirLu57ZAESAN2SzCg67dCd0RrcyMx+zOsEARKA2J6wDYQA6AAKLrxtJA -D2AIqOiV0kAPoAEQiBOPhLH/74TIQA+gARCJE4qWiJSxquqWyEAQCAKI6JTIQA+gARBsEASIIhuK -XuUJhsAO+Aww5L20QA0ACwhpkmgpIgcrmRTqkJJADQgK+yuSCeyi2EALiAnH5QZEwA0ABcrkothA -CAAALI0n7NCSQBCoC92vqgPOAa7eLuxA66jvQBGABerawOyi2EALiAm6yqaIoC+gB+iIh8AQEAya -7P/hwBY4CEh1mb/iANhAD6ABEO2r6MAJ+A/QiifAseqgkkALkAPzjCCVouvyR0AOgADR6MzhwA6A -ACDroMhAD2AM3OyhyEAPoAEQGow9JyE15iCwQBOQDIvAUKp36GbooAmgAlntJ7BAEFAMkukKhsAR -AALt4+7lQA0AA0ro/9/ADQACwu8A2EAUaAy7nyeY0O/UwUASAALuntnu2MggBiABCuIU8CAGqAIK -mSp3lwzAoOsokcALyAldYAAKKiIT6wDYQAvICVnApezhRMAOgAOw7QbYQAooC2rbYOwA2EAQqAyk -6QfYQA6AANHpJdBAC4gLXYoqeqYX23DsANhAEGgMpO0Q2EALiAtXi06wu5tOwMCcKJwpnCqcK5ws -nC2cLpwvLCYQLCYRLCYSLCYTLCYULCYVLCYWLCYXLCYYLCYZLCYaLCYbLCYcLCYdLCYeLCYf4ljv -QA+gARDrANhACfgOVCiyE7je7oHIQBJgAvuf05jS7rPJQAn4DzMushG42urhyEASIALLnNOe0uqx -yUAJ+A8aiifAsewA2EAOgADR6qCSQAuIC6nVoOt9RUAJ+A62bBAELSIPZNAP6yCxQA+YAKLsENhA -D6AAHYgq4hTwAA4IAoiMLsjIwKDrILFAD6AAHIoiGYnII/rA5J20QA0ACsqJJyuZFOqQkkANCAjr -i5nsothAC4gJM+XMR0ANAAXK5KLYQAgAACyNJ+zQkkAQqAvdr6oDzgGu3i7sQOuo70ARgAXq2sDs -othAC4gJJsqmiKAvoAfoiIfAEBAMmuz/4cAWOAhIdZm/0Q8AAAAAAADtq+jACfgP0IonwLHqoJJA -C5ADX4wg5aLIQA6AANHrmUZADwgMjOugyEAPYAzc7KHIQA+gARAAAAAYi6jmJatAEFAMouUgsEAT -kAx5qGbnVejADHALoOcA2EANAANryi6JJ8ff5yfIQBEAAsntkMhADygMPOeUwUASAALMnJnsmMgg -BwABC+IU8CAHiAILmip3pwzAoOsokcALyAjLYAAKKiIT6wDYQAvICMjApezIR0AOgAOw7QbYQAoo -CtjbUOwA2EAQqAyk7gfYQA6AANHuJdBAC4gKzI8qev5nlyiXKZcqlyuXLJctly6XLycmECcmEScm -EicmEycmFCcmFScmFicmFycmGCcmGScmGicmGycmHCcmHScmHucvyUAPoAEQAAAAAAAAAOsA2EAJ -+A50iijrANhADoAAwO0g2EALgA2t0Q/bYOwA2EAQaAyk7RDYQAuICqyITrCI6E7IQAn4D34tQhO4 -m+vRyEASYALEnJOdkutDyUAJ+A8XKEIRuJ7ugchAEiAC9J+TmJLuQclACfgO/mwQBhyLU+UGRUAO -gACl7yCwQBAgDOPpNbBAECgNQuQQyEAOgAOw7oiHwA8oDl7phIrAECAN0u0RyEAMcAOQ4xPIQA+Y -ANToEshACigKjxmI9xiJVimSmRyLP+iKtEAOgAClpJTpROHADoADsKSE7kW4QBAADNTvSrBACigK -g8Kj61LYAATQCKPsQtgABJAIs+IU8AAEUAjDaDFAaDI97VHYIAHQAwPuYdhAEZAE034xKi8iGOhI -sEANAANP6SS4QA0AA0jqJ7BADQADScuvHIrAi0oPAgAMuwIrRgrqSO9AC/gPN+IA2EAPoAEQ5CjJ -QAn4D8ziSMhACfgPzB6JL+4syUAOgAHY7STQQAn4D8FbEBSPIJ+g6ifIQAn4D7TdMOpQ2EAOgAOw -7MBHQAooClbiANhAD6ABEGwQBOOoREAPCAKyIzIQ4yLowA6ADDADIizRDwBsEATsANhADoAA1eQu -REAOgADh6u9GQA6AAPDpv0ZADwgI4uQ060APmAC0qoqpiOSAyEALiA024qjvQA+gARAAbBAE4yLT -wA+YAKLrENhAC4gPzuoo70ALkABk4qjvQA+gARAAbBAEiioZiukciLjoJ9hAEYgAKisgBQmpAeoH -2EAPKAnJ6SrIQBDYBIt6sROKKOsA2EAOgADA7SDYQAuADRvRD9EPAABsEAgkIhgcitkjIAfvSLBA -DHAGUOUF8kAOgACl7kCwQBAgDdTv8LBADBADMOMQyEAOgAOw5RHIQAooChTaIOsB2EAPmADD7RCR -QAuQBXhkoJ4eiseNIMDx76nQQA9gDe2doByIquw54cAPmACi6BSwQBEQDbKsmeiQyEALiAmviErq -RbhADoAHsuwA2EAOgAeU7CPSQBFYACh5oSNoYkiKJ+sQ2EAOgADR6qCSQAuICmriANhAD6ABEAAA -AAAAAADsB9hAESAEunyhHIpI6wDYQA6AAMDtINhAC4AM4uIA2EAPoAEQAAAA4gDYQA+gARDqKO9A -D5gAtez5RkALkAUr4gDYQA+gARBsEAbvSO9ADoAApeyZRkAOgAOw7SCwQBAgDeLlEMhACigJ2cCl -7DlGQA6AA7DuN7lAEDAM8+00sEAQOAyD6BDIQAooCdApIATBqOsiukATEASpyLvqKO9AC4gJdcCw -KyQjKjAF62fYQA6AB8Ttd9hAEkAEyuIA2EARiAat7ifYQBFIBrrvB9hAEQgE6n+hGYo46wDYQA6A -AMDtINhAC4AMr+IA2EAPoAEQ0Q8AAAAAAOMosUAJ+A+eKzQFKyQF4gDYQA+gARAAAGwQBB+Ibu00 -sEAQwAxC7IZGQA6AAKXuN7lADoADsO/d5UAKKAmmKDAXKQoqeYEYAioC6yK6QAuICUwqCgAqJCPq -SO9AC/gPauIA2EAPoAEQbBAEHIpYGIhZJCIYjTTqUNhADoADsO43uUAToA306N3lQAooCZIqMBcp -CiXrQtgABcAImuIU8AAFgAi6LEB063BEQA0AClwpQgomCiPuQdhADoABX+ud6wAAOAIZLUYK6UW4 -QA6AB7Tv4dgABGAI6uww2AAEYAj66BLYQBOgBFp4oWzs/9/AE0gEanuREY1PyNwESgLrQLFAD6AA -HSowF3WhRO+SRkASCARqLCIYjkoswHTt6NhADygO/u5KyEAQuAjcwNMtJGXiANhAD6ABEAAAAAAA -ANog6wDYQA6AAMDtINhAC/gPP+IA2EAPoAEQ7EDYQAn4D5fsINhACfgPj2P/hwBsEAgiIhgPAgBk -IH8cihYoIgjqUNhADoADsO8luEAQAAzS6IW4QBAADOjoEMhACigJTi8gBSUKd+NH2EAOgAdj5CfY -QBKABG/pZ9gABAAIP3n5IOoH2EAQ6ARPevEVKiII6wDYQA6AAMDtINhAC4AMNC8gBepQ2EAQAAzS -7L9FQA6AA7Du+O9ACigJN+IA2EAPoAEQ7S+wQBBADLInCnUnJAXntdBADQABTesgsUAPmACi7BDY -QA+gAB2MKA8CACzAZcnM7yW4QAn4D6yNKCUkBSXUBe8luEAJ+A+cAAAAAAAAwKXsrUPADoADsO4g -sEAPmADS7yW4QAooCRsvIAV08Q/iFPAABggIb+IU8AAGcAh/wDDqUNhADoADsOzcQ8APmADS7iCw -QAooCQ9kP5SGKCVgByNiGOyaQ8AOgACl5QWCQA6AA7DuMLBAECAN0+81uEAKKAkFKDAF4hTwH/sw -CYSPOOz5Q8AOgACl7jCwQA6AA7Dv8LBAECAN0+UQyEAOgACQ6RHIQAooCPfaYOuA2EAPmADF7RCR -QAuQBFtkoFIdh5CMYMDg7qHIQA9gDNycoBuHjegUsEAPCAnFq5nokMhACfgPAY8oIyQF4/XQQA6A -ADHvJbhACfgPPIMoJSQF5TXQQA6AADHvJbhACfgPJwAAAOznQ8APmACm6wDYQAuQBCFj/rwAbBAE -KCAX0w8PAgBpggUpIDh/nwfiANhAD6ABEBqHCIsv7ADYQA6AANHqr7BAC4gIxisgOCwK/gy7ASsk -OOIQ2EAPoAEQAAAAbBAEKCBywJTpiOtAD5gAougi08ALiA7t4qjvQA+gARBsEAQoIBfTDw8CAGmC -BSkgOH6fB+IA2EAPoAEQGobuKyIRL6IQwMDru+HADoAA0e4M2EAPaAv7Drss6q+wQAuICKgsIDgt -Cv0NzAEsJDjiENhAD6ABEAAAbBAGHIh16y24QBA4DWIdhw3qLLhAElAMnOYGgkANAA97H4h1r68v -8O0u0qKr/6/uCe4RDpkIKZyABQdH6RLIIAcIAgeIImWBIiqQDWSgRRqIYiqggOgWREAPCAqKCgVH -DlURqFgogn+aEeqK7UAPoAAYCglBaJEH4hTwIAqAA1kYiFioWCiCf+oRsEAPoAAYzKNgAR7AoBiH -BOtAQ8APCAXGCFUIKVI65BDIQA8YC7bru7UgCAAESSlSOeuU5QAHqA+5ZKANKjIAKzwI6gqCwAvg -CNHqKO9AD5gAtOw470ALiAvjwLTrWcsgARACB40QiifsANhAD5gAveqgkkALiAjb4qjvQA+gARAA -AOIA2EAPoAEQK9KhqrsJuxGrmWP/F4wn7gzfwBEAAtzu3eVADoAAUOXEwUASAALd7cnIQA+YAKLt -yMhAC4ANxi8gBOkSsD/3kAhfwKDrKahAChACCokS5SXQQAn4Dt4AAGhyB+IA2EAPoAEQiifrANhA -DoAAw+qgkkALiAxWjSDrYEVADoAA4+zdQ8AOgAAg7KDIQA8IDY3roshAD2AN7e2hyEAPoAEQACts -GOoo70AOgADA7UDYQAuQAxFj/6EAAOoA2EAJ+A7AbBAI7plCwA6AANLtEchAEGANsu4QyEAQaA2S -jDLuEMhADwgLi+0RyEAPYAm56RXAQAz4DMDsFMBAEEgLwuwTyEAPmACi4xDwQBCAAoHoEvBAD5gA -sewA2EAL+A910Q8AbBAEGIjcCEgKKIJ/2iDrOO9AD6AAGNEPbBAG58VCwA6IAYgIKCjqOO9ADoAA -YKh35UtDwBAgA0fjR8lADoAGtOQA2EAKKA207ADYQA6ABtTnEMhACigJf+O470AOgACU6ppDwBk4 -ADnnULbAEtgMuueH7UAPCAvbB7ss5VSQQBEIBzvmYZBAECACRMCi7KtEQA6AArDtOO9ACigH9NEP -AGZ/5xuGKgtLDCu9DSuyINow64vtQAooDZgch47VsOrPs8APmABK64DYQAooDZPdsOyo70APmAC1 -6kjvQAooCV0Yh4Mchm6NEOJq4cAPIA8i6//hwA9gCqvp1JhAD2AKyqj/6vXMwA6AAILomMlAECAD -7evpyUAQIAPNJ8YaKfLAG4boGoZOC5kBCpkCKfbALvLAGIYRCO4C7vDMwBAgA93j18lAD6ABEGwQ -BuYBQsAOiAGICCgoDwIACGYIKG0E6oaxQA+YALPqh8lACigNay0KZOwA2EAKKAk3Godh7BZDwA6A -AEDjuO9ADoAAlA8CAOsA2EAZOAA57cuxwBcADFrlhe1ADwgN3QXdLOqkkEARCAc95EGQQBAgArvA -ouzmREAOgAKw7TjvQAooB6jRDwBmX+cchd4MuwwrvQ0rsiDaMOuL7UAKKA1MHYdC6t+zwA+YAHqb -EOuA2EAKKA1H3KDtuO9AD5gAp+sQsEAKKAkR7DJCwA6AAPLpU0PADwgKJOIo5EAPYAqr64jhwA9g -CsqpiOqFzMAQIAOW75jJQBAgA+br6clAECAD1iXWGiqCwByGnBuGAgyqAQuqAiqGwC+CwBmFxQn/ -Au+AzMAQIAPm4+fJQA+gARBsEAQpMAgahhPsrt/AD5gAReUrQsANAAQ5aJER2kDrOO9ACigEbeIA -2EAPoAEQiTAKmgFkoFkqMAnTD9MPZKBf7K7foAKgAQrort/ADygKWeqM58AJ+A/IiTDqmuVAEKgA -qSowCWSgV+yu36ACYAEKY/+oeZa8KzAJZb+f2iDrOJBAC4gDpOyo70AJ+A+SAABj/7QAAAAAAOyt -38AJ+A+s2iDrOJBAC4gDPYkw7KjvQAn4D5gAAAAA7K3fwAn4D2DaIOs4kEALiAOc7KjvQAn4D04A -AGwQCBaHc+pssUARqAzG7MmDwA0IBqpkkWLiFPAgCkgBWe4gsEAWyAx2iTDvakHADoAA0efn6MAQ -GAyz6e7hgAc4AKktYuMZh/oO3Qjk2rBAENALgi3SC+0UyEAMmA6w6UTlQA0AA2h/twUYhXAIRAJ7 -twUpCoAJRAJ8twTEgAhEAn23BMKQCUQC4OjhwBBIAevBsAtEAghEAhiFneyrh0AOmA+f6enowA9g -CITpMNhAD1AEmOIU8AAGYAW568pCwBDABacq8qQpYuOnqgmqEaqZYAAFAAAAAMCQw+outhAtthHD -yyy2ECS2EYuwGIcPHIaf6H7hwA8oC4vuu+tADoACoAq6AprAGIcJHocJHIaXCLsCDrsB68DIQA0A -AImUmp2biTDA0SrypHmWOSli46eqCaoRqpmJmgkLWQC7EQ24AgmLOniXBMHADLsCeZcEwNgNuwJ6 -lwTA5A67AnuXBMDyD7sCmzPAwNpQ6zjvQAooA+XiANhAD6ABEAAA7JvfwAn4D+jsykPADoAApe80 -sEAOgACw6DWwQBBoDeLoFMhAEGAN0ugQyEAMMA/w5PTrQAooBtvqbLFAECAM0e8kQcAJ+A78bBAE -iTDqWO9AD5gAs+zDQYAB0AKpeZYl78CwQBAIDIyYs5+y7cKwQBAYDOyetZ206MWwQBAgDJwptgYo -tgfAwFhTvuIA2EAPoAEQGYZtKZKucZYH7JvfwAn4D+iJMtMP0w8JyVNvkjfvwNkgAXgBCemysEAQ -GAzbncGZwO+0sEAQKAyLmMOfwu22sEAQOAzrnsWdxImwY/97AACOM3/oz+yu38AJ+A+cbBAEGoZp -GYdxG4aTGITt4gaKQA6AAHDrZutADoAAWtMP5qvPwBiQADUiovsJLAHncZBAEGgEjOIP38APoAEQ -AAKuSe4wyEAMkA0gnUDiANhAD6ABEAAAAGwQCh2E/+bFQ8APmADyLPANlRXr/LhAD5gAI+NmtcAN -GAocGoZkDwIAqroqoO0p0qIMqggKmQgJmREJOQgpnIDtk6lAEJAL6SzxGishBK3u7u+XwA0AAexk -tMbCgOIU8AAmCAu4KSEFq5niFPAAJaALnIsgDwIADwIA5FNCgAxQAKsqYigKylPiFPAgHaABCugQ -2EAOgACQ7InmwA6AALAJizjpFshADRgPm+olqEAQyAt/IyEECncIBxcS5SCRACAQA/rmQdhADoAA -wMCg7xLIIBfYAkMDGBTvOO9AGygBOIlQAGAECQMZ4wOKQA0AD7YmbPYAYAQJCxnrC4pADQAPpiZs -9uIU8AAhGAvb4hTwACDYC77iFPAAIJgL0+IU8AAgWAs+p6nmuOHADwAJyQmIAu/+l8APYAiD6EvP -wBAIAqqbEZMQnhTtE8ggFGgBD40W6xDYQA6AAKAPAgDtuubAEBAM8eIXyEANEAO6KyIA4hfIABGA -AJsmIQXTD+sA2EANEAt2LvEa4hfIQA0QAY4dhHYehvgZhhoq8RnrJMhAEIACcuMkqEAQKAuCpqoK -FhLrJMAAEBgB+OoYikAOgADw6YjrQA6AAMroS8/AGJAAPCxC+w7JAe/xkEAR0ATZ7A/fwAgAAEUA -5VSQQA6AAWTpULBACfgPALRV5kHYQAn4DwcAAAAAAADsANhACfgPZAAAAAAADK9J7xDIQAyQCsDq -EchADoAAwOlvQcAQCAJm4hfIQA4IBwyIEQ8CAA8CAOyI4MAX+AIz6HDIQA6AAPrqANggEuACQ+YY -yEAQCAyx4hfIQA+YAFPjELBACAAAYgAAAqNJ4xDIQAyQCyDrEchADoAAwIgXZcEZKYEEspkphQSJ -cADxBAA4GgiZAulwyEANAAZ/L/z25V6XwA+gAh/guPDAEAgCquktQcAPYAiJ6HDIQA0ABc8v/PZu -UmqMGAysCAwMSQnMAuxLz8AOgACK7ADYQBiQADgiQvsOJgHswZAf+/gI1uwP35/7uAjWY/+CAAAA -AAAA7wDYQBAgAnfvcMhADoAAkO9B2EAJ+A+M6YtBwA6AAfToANhAECACd+hwyEAJ+A+XAGlRZ4IX -iBgbhbCoqOgIikAOgADK6wDYQA9gCLjoS8/AGJAAPCxC+w7JAeuxkEAQcATZ7A/fwAgAABkAAAyr -SesQyEAMkArA6hHIQA6AAMDiF8hADgABjI4QjXAA8QQA7hriF8hAD2AN7Z1wihXrF7BACigCpeIA -2EAPoAEQAADvQdhACfgOlCnSoauZCZkRqTlj/HKfEp4U7RPIP+vYAVPsFJBAD5gAsaen6njvQAv4 -DvGDUABgBAMDGeMDikAPmADK4xDIQA4IBJooOv94MROJE+IU8AAJyAuTixTiFPAACXgLO40R7H7g -wA8IDW0O3QINPQLtS8/ACfgNHwAAAOskyEAJ+A1JKCEF6WmyQA5gBJieFO0TyB/h+AHpivAoYszv -EshAECAM4u9kQsAPCAuaqzuMuu5Oi0AOgADQ6KrowA8IDg7vzOVAEFgMu+7M60AKAAmUjxLtE7BA -ECAM4ez6qUAJ+Av0wMDvEshACfgMqgAAAAAAAOIXyD/3gAFTlhjiF8hACfgOfp8SnhSdE+p470AP -mACx7BSQQAv4DrWLUI0T7hSwQBAQDPHrS4tAD5gAyusRyEAOAARqfbM+e+M74z+XwBAADIHmuuHA -DwAJx+qZ60AOgABq6YjrQBAIAnfoS8/ACfgLrsbK4hfIQAn4DnybEeMQyEAJ+A/wkhfrrt/AD5gA -yuq85sAJ+A5gkhftrt/AD5gAyurc5sAJ+A5OAABsEAQpIgLpxYFAD5gAgunWgUAMGAmeFIYDBFMQ -42XgwA8YBEninuDAFCAMJAXuAgPuAuINhAAEmACCAo9E6P/hwBAADLgP3QLuD9/AD2AN7eIshUAP -KAvr7YLIQA9gC8srhgAqQogJlRHqC4lADoAAIOoKjkAPAAvr66rrQA6AATzqg8hAD5gASA8CAOp+ -QcAYwAAz5SPjwBAgAkSqM+MwtEAQCAIik0PBPNMP4gDYQBjIADPlI+PAECACiKoz4zC2QBAIAiIj -hh/iANhAD6ABEAAAAGwQBOUisEAQAAzCHYXR4iOwQA+YAILsDILADBgJXuXbgUAMCApc5YeEQAzY -BCLiAo5ADEAFUCPSgOZsQcAQmAHj4q7fwA+gARAAAAAAAAAA7pRBwA8IA4fuz+DAD2ADNQ8zAu2f -48APYAPjI/aE5ADYQA8IDgTpl+HAD2AO4u74zEANAAI7Iwoc4ojvQBjAADODJOdF48AQIAIiplXj -UMxAEAgCROIA2EANAAKa5ADYQA6AATzpl+HAGMgAMyOCIOdF48AQIAKIplXjUM5AEAgCRNEPbBAE -iTDsANgAANgCqXmeK9pQ6zjvQAooAcniANhAD6ABEAAA6jjvQAv4D8GJMA8CAA8CAOyo70AWwACZ -6jjvQAv4D4bsqO9ACfgPyGwQBBSFiyshBOcQ2EAOgABQ5gDYQA6AADTr+YBADAAKvuvdgEAMQAy4 -62uCQBjQADMuQoTkRJBAEGgAjgBRBAB/Gg9mArFVHoV6ZJCSI+KA0w/iFPAABBAD42RgeuVHQcAN -AALq5wDYQA6AAPToJ0HAGPAAPyNSiMFP4wOOQBAgAlXnROjAEDgFOHRtSrF3FIVrLOaMFYVqIyEF -BbUC4FXhwA6AACDiQsxAD2ADUyNGgyXigO+P38APCAjt75bhwA8oBfXoZutAD2AFWgZVAuXgzEAP -oAEQAOKu38APoAEQKOKAx73vmuHADygIuOqI60AOgAAg6ODMQA+gARAAAABsEASIMOwA2AAAuAK4 -2lDrOO9ACigBd+IA2EAPoAEQAOo470AL+A+37KjvQAn4D+FsEAiJMCQKAA8CAOgA2AAEyACpKiAM -6qmXwA6AAJEKlDgEmDhkgHAqMgPro0GgAHgAeiuxf+IU8AAHuAHbHIRO6zKwQBAoDNPq+YFAECAM -8+kQyEAMOA6k7hLIQAw4CKjoEchADygMyuoo70AMuAu07YiHwAx4DtDuFchADPAN0OgUyEAMeA74 -7wiOwAx4D/DoE8hACigBkesQ2EAOgACgBLo4ZKBxiTB5lmwsISrvK7BAEIAM4usiqUASgA3S6S25 -wBA4C4LqIbpAEuANYuQgukAPCA0N6MiCwA8ACcnoZuDADwAKiuBE4cAPAAvL6zLIQA9gBKTpZutA -DwAIiOjd60APYA9v7zPIQA9gDk7uNchAD2AM3Jw0wMDaUOs470AKKAEn4gDYQA+gARAAAAAA7K7f -wAn4D+ZsEAbpJkNAD5gAY+cwsEAOgADA5Q6GwA6AANHogNhADwgKxOl35QADIAqoo6QlFgDkEchA -DoAAUO7V5sAQQAJDi2ILi1dvtk/KvRiE5Qi4CoiA2iDseO9AD5gA1etI70APoAAY7KjvQBBAAmbk -SJBADgAAmokReUPG2zDqELBACigBAuIA2EAPoAEQlRDsANhACfgP6AAAAOyu38AJ+A/dbBAGjzAZ -gk4PD1fpn7PADgACn+IA2EANAAEUKpIu6jHIQA+gARAAAOsxsEAOgAAg657KQA+gARDsPEDADoAA -ou4tuEAQYA3S5BDIQA6AA7TlEchADvgOiugSyEAKKAPp4q7fwA+gARBsEAQUgnoVgk7lWLZAFBAM -RKJSCSIRokKCJ4IuDjUR4iOyQA6AAUwFRAwAQAQCAhniAoLAD6ABEGwQDOJDQkAPmACCAzkC4gDs -wA+YACECAmsCAmsiHCACAmsCAmtkgKfiFPAgBjgBCOIU8CAHIAII4slAwA6AADPkGO9AGTAAM+Mk -mEAQOAxU5iSQQBAwDHTlMMhAF8ACRONkmEAQQAIilzDkCUDADoAAMw8CAA8CAOIQkkAY4AAz4yew -QBfAAiLjSMhAEEAMMuNJyEAQQAJEFISEGoIkCIcQB5cC4z9BQA9gB6fnT8/ADpgOKNMPbQgKsCJk -IIEoQv94MANj/+wA4gDYQA+gARAFaxHjXeHADwAKtOxXQMAPYAra7BrIQA9gCrrqEshACfgPSQ9v -Ee1T4cAPCA4U4tZAwA9gDj7iG8hAD2AO/u4TyEAJ+A8mAAAJShHsbODADwAHpetWQMAPYAfH6x3I -QA9gB6fnFchACfgPAQAAAAAA4r/fwA+gARBsEBDjMLBAD5gAoyshEy4gDQMMTwvNDOMDh8APUAzt -rLtoPAfirt/AD6ABEBiETenrQUANAAakFIRPBLQC5I/PwA6YDkhtCAqwRGRA8iaC/3aQBGP/7gAA -4iRAwA6AADPkEJDAGTAAM+MkmEAQIAJS4zCwQBfAAkTjSchAECADNeMwsEAQQAIik0joF7FADoAA -IOihyEAPoAEQAAAAZFCXHIQ27B/IQBAIDNqdF+QY70AOgAAzDwIA4ojvQBkwADPjJJhAEDgMVOYk -kEAQMAx05TDIQBfAAkTjZJhAEEACIpcw5AJAwA6AADMPAgAPAgDiEJJAGOAAM+MnsEAXwAIi40jI -QBBADDLjSchAEEACRB6EG+KO20APYA7r7o/PwBf4AiLKIS+C/+Ivl5//uAX54gDYQA+gARDi/9/A -D6ABEOK/38APoAEQ4r/fwA+gARBsEBSJMC4hEyogDevIQUAM8A+Q4hdBQA9oCO/pCYfAD1APqK/u -769DQA0AAXnlAECgAeABCeIU8CAF+AIJaJMH4q7fwA+gARBlT/SPMeoQ2EAPmAC+7wyIwAwIDf/v -joNAC/gPQuKo70APoAEQZU/PijHrAOzADoAAgukQkMAYOAA4CQJrLDoA7BTJQA8IDYotFhzp/UNA -DoAAtuoQksAYuAA7Kqz865SYQBBADIrosMhAECACmel9Q0AOgADG0w/qEJDAGKAAPO2nsEAQIAKZ -7ZfIQBfgAqoF6ALo/8/ADpgOqLCqZKDHKfL/4hTwAAZID5Jj/+wAAOkY70AOeARECwBo6RLwQBAI -DKMJAmvqnENADwAL6pscmhTpMNhAEQACoQ8CAA8CAOj470AZMAA56YSYQBA4DLrshJBAEDAM2uuQ -yEAXwAKq6cSYQBBAAoidkOoLQ0AOgACTDwIADwIA6BjvQBjgADnph7BAF8ACiOmoyEAQQAyY6anI -QBBAAqrqjttAD2AMXuz/z8AX+AKqyaQt8v/qr5ef/7gF0uIA2EAPoAEQAAAA4r/fwA+gARDiv9/A -D6ABEOIA2EAPoAEQbBAIijAKBlfrQdggAUgEJmVCaus470APmACi7EjvQAv4D4nToGUyV+I470AP -oAEQAAAAAAB2swfqB46gAWALJuwD2CAGoAwG6gqOgBGQDsYoIA1kgHbrqO9AE/AExsaq46jvQAn4 -D8HpEdggBGALBuwZQgAF8AiWwdPqIdhAExAHbXpjWmRBby4gDQ8CAGThcdlwiy8vwm+puw+7Couw -ZLIQ6jGwAAhQCNbiFPAgDBAACmRBNyqwFiwK/+IU8AAKiAjKmjHpANhACAAAJyshE+ur6MAUUAjG -ZU+CYAIGAADiFPAADmAOtumu38ANAAfE45jvQAn4DzHqLbhADQgBxOkoqEANCAXKLCETDJwMnDHp -ANhACfgP3Nsw6ijvQA+YAMTtWO9AC/gO8+Oo70AJ+A73KiANZKD/2XCNLyvCb6nZC5kK6ZCwQA0I -AATpmKhADQgBii4hEw6eDO4xyEAJ+A+yAAAAAAAA6yywQBAIDOMpIA3qANhAD5gA9+4MiMAPaAi3 -7v2BQA9QD5ivu+6Og0AL+A6G6ajvQA34BXpkr0/jqO9AEGgN4uMUyEAIAAEJ4hTwIAXgAAoYgL4p -sAcogqjvz7RADBAJkKmICYgRqP+P94/+wdzuruHAERgMrw7dDADQBAoKGQoKQ2VOxwoKR+q20UAJ -+A7EZV6M6f/fwAn4DvGJLOl56MAJ+A6KAAAA6v/fwAn4Dq/sMbBAEJgLsgvNDArcOKy76yjAQAn4 -DuTq/9hACfgOfoks6XnowAn4DvwAAAAAAADsMbBAEJgLsgvNDArcOKy765jAQAn4DrTpMchACfgO -rOkxyEAJ+A6k6v/YQAn4D3YAAAAAAADGOuzvQkAPmAD27Sy4QBBoDeLkEMhADoAAouURyEAOgAGy -4xLIQAooAhniOO9AD6ABEC4gDcY6HILx4xTIQBBgDdLnEshADoAAouQQyEAOgAGy5RHIQA+YAPbj -E8hACigCC4kUY/4KLyETjjHAoqv77gyIwAwIDe/ujoNAC/gOLGP9XgAAAGwQBBaAwYIwF4Ld5iLl -QA0AArTp0dlAEFAFJxiC2XKLIiQt8CRM+OZ9QkAQiAWUBkYKhmAKYAAAAADJXuKu38APoAEQGIBd -qCjogLBADoAAIOgxyEAPoAEQAAAA4v/fwA+gARBsEASLMB2AL+x8QkAOgAOJ6wqHwA+YAGLiANhA -EKAFihmCwgmpComQCpAAAAAAAADirt/AD6ABEABkRH0rYCEqYCAIuxHrqutADoAAIOoxyEAPoAEQ -ZESPKmB4LAr/4hTwACswCMrZoJkx4gDYQA+gARAAAAAAAADiANhAD6ABECpgDOso70AKIA6xZE+h -LqA7LaA6wbLsWkJADwgPDu/f60AOgACk7zHIQAooAb7iANhAD6ABEGRPdohniI7phatAEaALiKmI -sIjoMchAD6ABEGRPW4lniZ4pkSrpMchAD6ABEGRPSYpniq4qoTTqMchAD6ABEGRPN4tni77surBA -EEgMu6y7sLvrMchAD6ABEGRPHIxnjM6MyewxyEAPoAEQZE8LjWeN3u/Jq8ARmAvtLdEyD+42rt2w -3e0xyEAPoAEQZE7qjmeO7i7hMu4xyEAPoAEQZE8gkjHiANhAD6ABEGROyy9gDWTz3ZIx4gDYQA+g -ARBkTrgoYA1kg+iSMeIA2EAPoAEQZE6lKWANZJN3kjHiANhAD6ABEGROkipgDWSjhJIx4gDYQA+g -ARBkTn8rYA3pa7BADRgMO+yfl8AOgAAg7DHIQA+gARBkTmEtYA1k07uSMeIA2EAPoAEQZE5OLmAN -6WKpQA0YC47vn5fADoAAIO8xyEAPoAEQZE4wKGANZIOykjHiANhAD6ABEGROHeretMAWaAydqpmw -mekxyEAPoAEQZE4GK9LN6zHIQA+gARBkQpktYFwsYF0I3RHtzOtADoAAIOwxyEAPoAEQZE3cLmBQ -C4tH4hTwABGgC+viANhADvgP/+8xyEAPoAEQZE27iGeIjoiP6DHIQA+gARBkTaqJZ4me6pKxQBCI -DJmqmbCZ6THIQA+gARBkTY+KZ4quKqIR6jHIQA+gARBkTX2Ja+psqUANGAGFi2ypu6ur67+XwA6A -ACDrMchAD6ABEGRNWulrsEANGACVjGzAIKnM7DHIQA+gARBkTUGNZ43e7tSxQBCYDN2u3bDd7THI -QA+gARBkTSaOZ47uLuIT7jHIQA+gARBkTRSPZ4/+6P6wQBBoDP+o/7D/7zHIQA+gARBkTPmIZ4iO -iI3oMchAD6ABEGRM6IlniZ7pn7BAEIAMqaqZsJnpMchAD6ABEGRMzYpniq7rrLBAEFgMqquqsKrq -MchAD6ABEGRMsotni76Lu+sxyEAPoAEQZEyhjGeMzu3IsEAQOAzMrcywzOwxyEAPoAEQZEyGjWeN -3o3X7THIQA+gARBkTHWOZ47u7+awQBAoDO6v7rDu7jHIQA+gARBkTFqPZ4/+j/XvMchAD6ABEGRM -SYhniI7qxavAEYgLmCiBMAqZNqmIsIjoMchAD6ABEGRMKIlniZ4pkTDpMchAD6ABEGRMFopniq7t -w6vAEXgLuiqhLg27NquqsKrqMchAD6ABEGRL9Ytni74rsS7rMchAD6ABEGRL44xnjM7tzapAEWAL -zK3MsMzsMchAD6ABEGRLyI1njd4t0SztMchAD6ABEGRLto5nju7v66pAEVAL7q/usO7uMchAD6AB -EGRQq+po70AKEAAvL2AMCP8R6AjYQA9gD/ro/+tADoAAIO8xyEAPoAEQZFCCiDHAIOhg0kAPgAiI -6GHSQA+gARBkUGuJMcAg6W3RwA+ACZjpbNHAD6ABEGRQVIox4hTwIAf4AAoqZHjqaO9AC4AM/eIA -2EAPoAEQKsGKZKyB7cerwBOwC7ytu+u/l8AOgAAg6zHIQA+gARAuwYpk7HTvxqvADoAAIO8xyEAP -oAEQAADi/9/AD6ABEIhniI7pg7BAEBAMiKmI6I+XwA6AACDoMchAD6ABEIlniZ7pkrBADoAAIOkx -yEAPoAEQimypquqvl8AOgAAg6jHIQA+gARAAAOtssEAOgAAg6zHIQA+gARAsYROpzOzPl8AOgAAg -7DHIQA+gARAAAADtY6lADoAAIO0xyEAPoAEQ6f/fwAn4Cpypru7vl8AOgAAg7jHIQA+gARCZMeIA -2EAPoAEQAAAAAOr/2EAJ+A8BbBAG5Tq4QBBYDXPmOLhADoAApeyUQUAOgAC45DKoQA+YANLkEMhA -D5gARu5o70AKKABfG3/uwKDra+RADgAC9SyyXe0QsEARIAfH4l/foAOICy0uMQIqNAvqONBAEAgC -7u4ywEAPoAEQAAAoslzqKO9AD6AAGMup4l/fwBDgBEbkONBADoAAkek60EAOgACg6jvQQA+gARAr -MAviX9/ADoAAwOw60EAQCAK76zvQQA+gARCxZGlEv+IA2EAPoAEQ3WDqENhADoAAuOzBQUAKKAA3 -4r/fwA+gARAAAGwQBOYo70ANAARUH4EYGn/SjTDuiT7ADoAAIOchQUAOgADB7QuHwA6AAY3l8EFA -EKgFixiBDwi4CoiACoAAAAAAZEMf4q7fwA+gARBlX7vi/9/AD6ABEGRP6Smif+kxyEAPoAEQZE/b -Gn/PKqCA6jHIQA+gARBkT8rsMchAD6ABEGRPvytSJ+sxyEAPoAEQZE+xLHL07DHIQA+gARBkT6Pa -YO0LjsAKEAi6ZK+WLqEaLaEZAO4R7t3rQA6AACDtMchAD6ABEGRPeuwxyEAPoAEQZU9vH3+oL/Ku -4hTwABgwAB/im9/AD6ABEGRPVuIxyEAPoAEQZE9LKO38KILLC4gR6DHIQA+gARBkTzcpCv/pMchA -D6ABEGRPKSuigOsxyEAPoAEQZE8bDYlHZJHt4hTwP/iQAVkpcmxmksfpMchAD6ABEGRO/MfP7DHI -QA+gARApUGjtCoagAGAECeIU8D/3IANZ4iE+wA0QAsriFPAgEqgBCuIA2EAPoAEQAOp+38AOiA5Q -5uaewA6AAYTraO9AGKAAOCmxgAqZAeuykAAGqAhZsSLird/AD6ABEAAAAAAAZE6O6nywQBBYDLfo -u+HADPgKoAuqAuoxyEAPoAEQZE5wLPLT7DHIQA+gARBkTmIt8tLtMchAD6ABEGROVOIxyEAPoAEQ -ZE5J4jHIQA+gARBkTj7iMchAD6ABEGROM+IxyEAPoAEQZE4o4jHIQA+gARBkTh3iMchAD6ABEGRO -EuIxyEAPoAEQZE4HK+KQKvL7CbsRq6qKp2Sg3eqgkkALgAwF6kztQA6AACDsMchAD6ABEGRN3Fgb -4cAg6jHIQA+gARBmLy3tiYbADQAMtOISP8AOAASZ22DtANhADoAB9O4ktEAYoAA/KLGACogB67KQ -QBBIBFix3S36+wDQBA4KGeoKgEAOgACS6snnwA6AACDpMchAD6ABEAAA4hTwP+ugAVnbYCwKAOhB -2EAOkATQ4iW0QBjQADgpsYAKmQHiFPAABEgI2ezBkEAQEAK7KuKlKfL7CaoRqpkpkRAJWUCZMeIA -2EAPoAEQAAApcmtmkNnpMchAD6ABEIv3ivTs8JFAF8ACu+ys6MAXwAKq7LrmwAn4DwpkkRLiFPA/ -57gBWYox6xDYQAoADKjiqO9AD6ABEABYSX2LMWSxBOIU8CAIiAEL4gDYQA+gARAAwAQCDRniFPAf -+8gB/ekg2EAJ+A+CAAAefvgu4q5x7m7rMbBADQAHNOoA2EAKWA+f4qjvQA3gCTrqANhAClgPkeox -yEAPoAEQZEx7LCKUjMDKwypQmOs0kEAPoAAc4qjvQA+gARAAAOoxsEAKWA9z4gDYQA+gARDirt/A -D6ABEOKY70APoAEQ4pjvQA+gARDim9/AD6ABEOuH7UAOgACg6wSGwApYD3EtYAzToOja4cAKIAxM -LiKUjuHJ6ipQmOt470APmADE7TjvQA+gAB7iqO9AD6ABEADirt/AD6ABEOoxsEAKAANd4qjvQA+g -ARAAAAAAAFhVCOIA2EAPoAEQAAAAAABYVQriANhAD6ABEGwQBOKfP8APoAEQAGwQBBN/9yUygBR+ -vqQk5UDMQBP4DDPjQcxAD6ABEAAAbBAEFX2zF3/v5ADYQA6AAGDoENhADoAAOg8CAOd+q8AYyAAz -5iDIQA0AAURoQQyxROVRkEAQIAIi0Q8AAEAEBwkbf5fpK1AwALEEAIoasKrqIMhACfgP22wQBBN/ -2yUygBR+oKQk5UDMQBP4DDPjQcxAD6ABEAAAbBAEFX2VFn/R5ADYQA6AAIDnENhADoAAOuZvq8AZ -eAAzAEAEBgkb5EGQQBC4AfkrUDAAsQQAehqwquogyEAIAAAGmCDlUZBAECACIuIA2EAPoAEQbBAE -FX0TAkkUKVaRJFKSAghDD4gR4InvQA6AAHPgNvDAD6ACGOB38MAO+A+PCHcDB0QBBkQC5FLNQA+g -ARAAAGwQBBR9AyJGluNHzUAPoAEQAAAAbBAEE3+qGX+qKTaEGH43KDaFwCDiNsxAD6ABEGwQCBR8 -/o0y5QDYoArgCELAsOoaP8AXwALi7ADYQA6AAIjnNJFAGJgAOCmg7aub6qGQAAloC76xzMaqmhfr -PJFADQgJPSxCttpw0w/rFshADzgMXOxGz0AKYALD7DGwQBAoDLPmqO8ADRALy5sx6hawQApgAr3u -MrBAEAgM0+oQkUAPmAB6DwIADt0I7RTIQApgArXsMbBAFZgM5C86/w7ICOuo70AQUAePDF4MLkaz -7XjvQA+YAPbpRLdAD5gAou5Gt0APmADO6RDIQAp4CHWPF+o3sEAQEAzT5P/jwBAoDLPp97dAECAM -werY5cAV+AzvqLgMmTfp989ADzgOji72v+ZRPcAPSAmt6TfIQBWYDOTuMMhAFbAMhOg2yEAVoAz0 -nzSoqK+/rO4uRrPvRM9ADzgI+OhGzwAHKAvm6gDYAAf4C/UuQrYbffziFPAACIgL6+Ko70APoAEQ -AAAAAADsF8hACfgO2ewxsEANAALNKkKzK0K2rKoFuzfrRs9AEJgFugq+DK7M7DHIQAgAAAwAAAuv -Ny9Gtuoo70AOgAGx7gDYQA6AAfCs2egA2EAOgADA6RTIQA6AAd/oEMhACngIOY0y6zWwQBA4DKPs -FLBACfgPMrQ66xbIQApgAmOaFep470AQCAyz6xTIQApgAl7WoOoWsEAKYAJc6xWwQA+YAHruQ7dA -CfgOqtpw7DXIQApgAlXWoOs1sEAJ+A5SwKLs8T/ADoAAtu0o70AKIA4rL0K00w8PAgDqT9+f+EgJ -9e7470AOgACi7GE/wA6AALbtKO9ACiAOIepP38AJ+A7p3SDqINhADoAAtuzgP8AKIA4b4k/fwA+g -ARAAAGwQBtIwiSDTUOWAP8ASyACZGH28KIKu4hTwAAuwABjAQCtSSJsjKlGSKiUIKVGTKSUJKFGU -KCUKL1GVLyUMLlGWLiUNLVGXLSUOLFGYLCUQK1GZKyUP6lqtQBAADJLqIcFACAAABsBAepYQ7Fiw -wBAYDKLTD9MPesQZxkrqOO9AD5gAsuxI70AKIAru4gDYQA+gARAqVkjtUq1AEEALotMPetzVKlWS -7lOtQBBIC6J67McqVZPvVK1AEFALonr8uSpVlOhVrUAQYAuieoyrKlWV6VatQBBoC6J6nJ0qVZbr -V61AEHALonq8jypVl+xYrUAQgAuiesyBKlWY7VmtQBB4C6LiFPAf+5gNrSpVme5arUAQiAui4hTw -H/sADa7qWsVACmAGQRx+wupA2EAOgACw71etQBSoC+XnVK1AFLALRelSrUAUwAuF5lmtQBSYC9Xg -ROHADwgHB+CI4cAPCAkJ6d3rQA9gBobmEMhAD2AOfuT/60AU0AtF5BHIQAogDbhYxETkqO9ADfAP -SmABwQAAFH6o6Jo+wA6AAJMpVZTpVcVADoAAYCZVkiZVk+hGz8AKYAdgiyHnlDyABOAASwuKUusL -h8AKYAZC5KjvQA2IBroafpiMqpwqi6ubK4qpmilYxjfkqO9ADYgHSljGKx1+k9MP0w8s0mYbfALq -GT7ADQAG/OIU8B/wyAvHLtKZDwIA4hTwH/BYC+cvoiXsANhADXAAD20IKS2yoSmi763N7qGzQA8I -DZ2tmS2SGq7dLaYxJpYaKKIlscziFPAf7pgJjGP/zwAAwKXrANhACmAGHOSo7z/74AB6WP05Y/4M -LtKZ0w8PAgBl74kcfawefnEtUZUpUZruBz7ADygN7ezZPcAPKAnJ7VXFQBTAC9UooiXsANhADygJ -yelaxUAPKA3t7VjFQA0ABPjuRj7ADoAA9CiyoS2i76jICYgRqN0o0hbuiOVAEAgCzOjWyUAQOAFI -L9U66aGzQBDQDI3TD6mIKKYxJtYaKaIlecPE6VqtQBTAC9XrINhAEKgBvSumFSumFuukyUAOiADA -LKYXf5cj66LJQA6AAOjuoclADoAC0O2gyUAJ+AztAFj9BWP9PAAAAAAA5lrFQAn4DNkAAAAAAFjC -DOSo70AJ+A0kWPz8Y/0ZAABsEASIQB5+ORl78I0g7u+zwAx4CIjpiOPAD5gAo+iEt8APmAC07Ee4 -QA9oDe3o3eHADoAA5e7d60APoAAYiUGPMgmJR+kJ8EANAAIPyViKJ4qu5aDIQA74CC3mochAD6AB -EAAAAAAAAOKY70APoAEQbBAMFHt+6yy4QBBoDaLkAOzAD5gAkQkCawkCawkCawkCa+XcP0AOgADE -50E+wA8ICcPpENFAEAAM0ukRPsAOgABl6xjvQA8ICIvq4D7AD2AIiu5/s8APYAiY6BDIQAx4CIjq -EchADxgIWOiEt8APmACi7gDYQA9oDe3uEdFADwgNjebd60APoAAYgxEDg0cDAwZmMmojEQTaIOMD -isAOgADB6zjvQAoQBankAOzAD5gAkekS8EAPmABqCQJrCQJrCQJrGHtG6g89wA6AAMHsEchAD5gA -seoTyEAOiAiQ6RXAQBP4DOfoOOtAEAAM0ugQyEAMeAiI6fM/QA8YCFjohLfAD5gApukUwEAPaA3t -6N3hwA6AAOXu3etAD6AAGIUR5YWGwA6AAOXvyD9AD5AFUOkY70ANiA7FBABo6RLwQA6AAFEJAmsJ -AmsJAmsYfdCVEel/s8APmACm6DjrQBAADNLoEMhADHgIiO+I48APmACx6d3owBegDIjo3eHADoAA -we88PcAPYA3t7xLIQA+gABiFEe8XP0AMcAVY5QXwQA+YAJHuUNhADYgJlQQAaAkCawkCawkCawkC -a+0gsEAPmACx6Es9wA6AAMTqENhADoAAkOkVwEAT+AyX6hTAQA9gCIPoEMhADHgIiOq6PcAPGAj4 -7BHIQBegDIjqFMhAD2gNnejd4cAPmACm7t3rQA+gABiFEQWFRwUFBukY70ANiAQlBABoCQJrCQJr -CQJrCQJrGX2bHn2a6RPIQBP4DPfpZD9AD5gApu4+60AQAAzS7oiHwA+YALHpiOPADoAAwu/d6MAX -oAyI7BHIQA8IDY3uEMhADoAA5e7d60APoAAYhREFhUcFBQbpGO9ADYAPVQQAaAkCawkCawkCawkC -ax59ge9/s8APmACm7LI/QA+YALHuPutAEAAM0um3PcAMeAjo6RHIQA8YCMjv3ejAF6AMiO4QyEAP -CA2N7BDYQA6AAOXu3etAD6AAGIURBYVHBQUGZlCr4jjvQA+gARAAAAAA6iDYQBAADNLslj3ADoAA -sO4470AKIAxd4jjvQA+gARDqINhAEAAM0uwmPcAOgACw7ljvQAogDFXiWO9AD6ABEOog2EAQAAzS -7LU9wA6AALDuWO9ACiAMTeJY70APoAEQ6iDYQBAADNLsRT3ADoAAsO5Y70AKIAxF4ljvQA+gARDq -INhAEAAM0uzUPcAOgACw7ljvQAogDD3iWO9AD6ABEOog2EAQAAzS7GQ9wA6AALDuWO9ACiAMNeJY -70APoAEQbBAE4gOPwA0ABhLkAthADQACQwKIV8qGAslTypwC6lHrT5fADQADSgK0O+JI70APoAEQ -ACIR5AHYQAn4D9kAAAgiEeRIl8AJ+A/RDCIR5EyXwAn4D8sAAA4tEexNl8AX8AIkDcI70Q/iANhA -D6ABEGwQBBJ6V+IotcAPoAEQAABsEASCJ4Iu4yiwQBA4DCKjIuIvl8APoAEQAAAAbBAEgieCLuIn -sEAPoAEQAGwQBBJ6SOIntcAPoAEQAABsEAQl+sAFJQHjIchAEKgLRaVEJE0BJEzA5CDIQA+gARAA -AABsEASCJ4Iu4iSwQA+gARAAbBAEF3o+5jA9wA8IBeKnV5N0plXkX8vAD6ABEGwQBBl7gomQGnvw -6Ag/QA8oCanpIutADoABQAQkApSAE3z3FHvr45c/QA9gAjIEIgGSMOIA2EAPoAEQAGwQBBd8DBh6 -SCVyHBl7cSiCpOZztsAQcAVSoogJiBGoZmAAAcBgw7orlhAjlhHDqyqWECSWEYmQG3vVHntl6Crh -wA8oCbnqmetADoAC0A2dAp3gHHvPG3vPGntdDJkC65nlQA6AACDpoMhADQABVpRq42vIQA+gARAA -AAAAAAAA4gDYQA+gARBsEAQcegbopD9ADoABs+oQ2EAO+A+f5w7ZQA74DmfjQdhAGfABIgzCAuUA -2EAYoAAzJCGABkQB4iKQAAroCHSxVcdLLYLABL8MAPEEAKUaCV4DDt0BDVUC5YDMwAgAAE/lANgg -B+ACUu0A2EAOgAE04sjvQBigADMkIYAGRAHiIpAABzAIdLFVJPr7JYLABLIMACEE4N7wwA+gAhIA -rxoJ/wMPVQEOVQIlhsDSwOUA2EAOgAE05wbaQBigADMkIYAGRAHiIpBAEogEdLFVJfr7LoLAHHnz -F3seBb0M4NnvQBUoDMzgrfDAFCAMdwnfAwnMEax3JnA17+7lQA6AACDsINhAD2AN7e2AzMAPYAbG -5nXTQA+gARAAb1u0JIKEEnngH3sL4FnvQBUoDCLgo/DAFCAM/wk2AwkiEaL/5kTlQBGoDe8EMwLj -hMxADoAAIuIA2EAPYA4u7vXTQA+gARAA4q7fwA+gARDkWO8/+PgLJSOChABRBODV8MAPoAIUAK4a -Ce4DDjMBBTMC44TMQAn4Dx0AAAAAAADkWO8/9TgLJSKChABRBACvGgnzAwMiAQL/Au+EzEAJ+A71 -AAAAAAAAbBAI6IHZQA0AAdbaIOs470APmADE7VjvQAvYBLPRDwAAAAAAFnrsCCgo0w8nbfaod+lr -scAQIAOHKoIaKIIZDZkRCpksCYgo6BTIAAhgC0jqDj5ADwgJw6l56RXIQA6AALDkls3ADQgBpSVd -AeVfl8AO+ACACFUBwIQPAgAPAgDsANhAGRgAOOlrscAXAAzatMztje1ADwgJ2Q2ZLOqkkAAFeAtJ -sbvaQBx6yw5rEay7i7Dri+1ACigAzB56wurvs8APmABKmxbrgNhACigAxtyg7bjvQA+YAKTrFrBA -CiAMkYoV6Gs+QA8IDiblie1ADyANIuPd4sAPCAwJ7LzrQA8IDc2o3Q7MAizWySum2Cmm1wIvCwv/ -Eaj/KfLCDzoR4KnvQA6AAIHgiPDADvgPrwqKAwqZAQmIAij2wuh0mEAWEAz/74vJQA+gARAAAAAA -5rjvQAn4D1PvSO9ADoAAo+xwPMAOgAKw7SjvQA+YAOPoEMhACiAK8eQUsEAJ+A7U5Tk+QAn4DvRs -EAbnQz1ADogBiAgoKNowqHfl2D5AECADR+NGyUAOgABg40fJQA6ABrTkANhACigAjOwA2EAOgAbU -5xDIQAogDFfjuO9ADoAAlA8CAA8CAOr3PkAZOAA551C2wBLYDLrnh+1ADwgL2we7LOVUkEARCAc7 -5mGQQBAgAkTAouwJP0AOgAKw7TjvQAogCsrRDwBmf+cbeQALSwwrvQ0rsiDaMOuL7UAKKABuHHpk -1bDqz7PAD5gASuuA2EAKKABp3bDsqO9AD5gAtepI70AKIAwzGHpZHHlEjRDiauHADyAPIuv/4cAP -YAqr6dSYQA9gCsqo/+r1zMAOgACC6JjJQBAgA+3r6clAECADzSfGGinywBt5vhp5JAuZAQqZAin2 -wC7ywBh45wjuAu7wzMAQIAPd49fJQA+gARBsEAoXeQcVe64tcpfsWbbADoAAgKLd6d3hwA6AAKGt -wusou0AOgACQ7im7QBDYC8LmJ7hAEAAM0uYQyEAX0AK77ya5QA9QCbrpFMhAD1gMyugSyEAOgACl -7xHIQA6AA7TsE8hAD5gA8+x5P0AKIAqD4hTwIAfIAgMuIDjiFPAgBtgGXmQxTuIU8CAJ8AED5l+2 -oAX4AlMvYhooUhBk8LHkANhADQAK6OuIP0AOgAly6xjIQAgAAGYAKCAHL+AH6b/YQAwACILp/+VA -DwgI6Oj/60AQQAzB7+fQQBAADN4oIAfqJrlADoADsOrm0UAOgA+c6f/lQAwQCIDo/+tADoAApe/n -0EAMEA7w7y+AQAogClspUhCxRHlLNypiF+tI70ALgAqEG3i/Zq/mK7KaLFLpqroJqhGqyiugBXe5 -04qqZK/OjKnuqLBAFkgILMihZe9mLVLvLdIuf98B0Q/aIOs470AL2AM20Q8AAAAAAMCl7HU/QA6A -A7TtQLhAEBAN5O9BuEAKIAo+G3nU6SupQBBYDILqQrhAEAAN9O8m0UAQCA3k7ifQQA0AAKkJCUwp -JRvjquHAD2AIuOgryEAPYAqp6ivBQAn4DrTaIOsQ2EALYAvyY/972iDrANhAC2AL72P/bgAAbBAG -5qM/QBAIA0IrQGDv3j1ADoAAUOeK2EAOgAjg7ESWwA0ADsviFPAgB+ABC8i8aLECaLId4gDYQA+g -ARApwH2u+qqZKZDgaJPqaJfnaJICaZfh5TLQQA6AAPIvNAbvNdBADoAAiug30EAOgAKR6TTQQA6A -AasqNAPuILhAECACsu440EAOgADI7SG4QBBQAqPtOdBAChgO4ywgL+qx2EAOgAKx5CySQA0QCczA -xOwy0UAOgAGBKDQTLyAALzQULiAB7jXRQBDAAqPrIZhAFDAN0u020UAUYAK75TfRQAoYDtEqPBzr -IZhADoAAyOuwlUAKGA7M6rHYQA6AArHtKrxADoACxe000kAIAAI9LUBhrvmp2SmQ4GiTDeIU8D/4 -eAdZYAACLUBhHHrx5CySQBF4DeLvKrtAEigNouoQyEAOgAK06lDYQAogCdMsQAPrLN/ADvgP/ukI -38ANAAp85TLQQA6AAMnsNdBADoAB2e0x0EAO+Azi7jTQQA74D47oMNBADvgI8C80A+9NucAS4A3k -6yGYQBA4AqPrvJRAEvAN1O4OgEAMAA/w6v/hwA8IDp7tDYDAD2AO/u7d60AOgADE7TbQQAoYDpe7 -OushmEAOgADI67CVQAoYDpIqPBPrIZhADoAAyOu4lUAKGA6OKfqA7+/fwA74DLLqsdhACAAABsCg -LEAOZMBRqj4l5AIp5AMr5ATv4NBADoAAhujh0EAOgADbLeQF7U68wBZoDcQoQM/sDIBADAAN0Ord -4cAPCAyc6AiCwA9gDNwMiAIo5AYtQNDt59BAEEACqixAGWTB6S9A+MCMqj3r1NBADxAP/+nT0EAQ -KAL/5dLQQAyAD/Do1dBAD2APb+/R0EAPgA/4L9QALkD44hTwIA3IAT7V0Kcu7wDfwBAIAzLjOJJA -DvgPYOIA2EAIAABPALHMCxsUZb/3KOB/6IGQQAwgCcDrmeHADCAIgAmIAihUB+kwuEAQCA2zK9QJ -KdQIKED44iGQQBAgAu7lU5BAECACM+3TkAAB0AqCK+B+yrfAwG0IDXvwDQuLFOzIkEANeAqrY//r -e2CZtMzrS+1ACfgPlAAAAAAAAOwA2EAJ+A+MAiIJtyKiotEPwcIoQA7Kjqw9wOYu1AAu1AEpIAAp -1AIoIAEo1AMvIPcl1AUv1AQuIPwu1AYpIPvp19BAEEACzC9AGWTw2ShA+Kw+CIgJ6Tg7wA8ICPi0 -iAgISAmIAujh0EAPgAiIKOQALyAAL+QCLSABLeQDKUD2JeQFKeQEKED44hTwIAXIATi27+UhmEAO -gADQpyLnENhAEUACVW0IP+hQuEAQCA2VKfQBKPQAKCB/K+QK6unQQA9YCIco5AgpIH4p5AsoQPjt -0ZBAECACVe/2kEAQIAIi7uaQAABgCo1j/7kAAAAAAO3S4sAOgACGCCIJosIpLP4JCUgGmQLpMdBA -D4AJmOkw0EAPoAEQAADiqO9AD6ABEOKnkEAPoAEQKcz+CQlI5pnrQA+YACzpMdBAD4AJmOkw0EAP -oAEQtMkJCUjmmetAEDACLOkx0EAPgAmY6TDQQA+gARAAbBAOF3doHHda5nY7wA+YAOYqcqgncqUt -YoaiqqJ362Y7wA8IB5en1+mq4cAQ0AyHqtqKp+mDqEAQEAuI5BHJQA+YAPXlyjvADoAAROqusAAM -SAiYGHiaqCjlFshAF4ANiJsQGXdU6RLIQA4ABlgdefzsAOzAEQACseyPPUAPmACbCQJrCQJr7RnI -QA6AAOHpEbFAD2AMwuwYyEANCAQz6QDYIAywAQPiFPAgD9gDA+IU8CAFUART7RGxQA6AAMLuANhA -C+gDwWAAkgAAAAAAGnc14hTwIAgYAQPqo7ZAEQACsewA7MAPmACbCQJr6RLwQA8ICpqq2ugp4cAP -CAjj6Z09QA9gCJjg/OHADoAA0u3M60APYAiO6dY7wA9gCJjuabPAEAAM2ugYyEAMeAiICYgK7BnI -QBegDIjsDIbAD2gN7ejd4cAOgADl7t3rQA+gABiKGQqKRwoKBmaiASpyGusA2EALgAjUE3cRG3cO -5KjvQA+YACorsqEqYoaiuwm7EauqLqEpc+E6KKAH76CwQA+YALHsQNhADoAA0ugIgkAOgACU6P/h -wA8ICAjp/+tAD2AOju8RyEAPYA5e7hTIQAuABUuxK+p6sUALgAi7G3b14qjvQBUICKTRDwAAAGSR -auIU8D/7wAFZKhYQLhQo7AffwBRQDdrtH9JAEMgEysDI66GYQBGAAqHrsJVAChgNXyoSECz6aOIU -8B/6EAjKwMjroZhAEcACoeu4lUAKGA1XY/8oAAAAAAAsoDDtq7tADQAAzMjUL6BGD+k57qK7QBAI -A8rrwLrADoAAhegY0kASQA2K7627QA8IDs7uiOtADQAK2+IU8CAGYAEL4hTwIAXgAgvAsOj/4cAP -CAxL6Z3hwA9gDPztGdJAD2AIyOgVwUAJ+A67KaD8wCPiGNJADoAA0gkTEglbEul+gEAPKAzZ6QiA -QA8IDLzpiOHADygL2wk9Eu6760APYAjI5N3lQA6AAMjsM+VADygMye/M4cAPKAlJ7TPrQA8ICdnr -M+tAD2AJyekz60AX2A2a6R/SQA9gA4PjGdJACfgORQAdeAMrwGGtuyu9ASuwYGizFWi3EmiyB+IU -8D/6YAdb6yDYQAn4D0brMNhACfgPPi+iI+8byEAOgADg7hjSQAn4DgLdIOog2EAOgAK07PM9QAog -CCTRDwBsEAYZdosYdv4PAgDmJ7hAFTgMOSiCgwYzCAkzEQODCOoisEAQOAwz4z6wQA0AAMriANhA -D6ABECqSqKaqCaoRqoqKp4quK6AvZLELKzECZLDdKz0D67+UQAv4DefsbOHADQAM+qOu7bg6wBAY -A+7u4JRADoAAsCvkECvkD63M7BDIQBHQDMwnrFXoODrAD4AHdO8QsAAGkAt8CGgK7/mzQBTYDIgZ -dlXo/eUABeAPj9jQ6QDswBg4ATcIAmsYdsged4rr2sBAETACyuzbwEAQAAzz7tDIQBGwArrr08hA -EAAMouufOsAPCAkG69LIQA9gD5/ryjxAD2APj5/U69bIQA8ICorrMphAD2AKp+rRyEARAAKt67uS -wAoYDL/sN7BAEAAM0efZy0AQCALMLDYHBQ5H4hTwP/fIAg6KJ9tA7ADYQA+YANTqoJJAC4AIQ+IA -2EAPoAEQACugOmW+7SygRWXO52P/yACNOCtsGO3RkEAPmACi7TjIQA6AAMDteO9AC4gCnAUOR+IU -8D/1IAJeiifrANhADoAAweqgkkALgAvLjSDrXTxADoAA4ewlO8AOgAAg7KDIQA8IDY3roshAD2AN -7e2hyEAPoAEQbBAI7SGYQA6AAHHk0LrADoAAUOxnO8APmACj6wjYQA6ACTDm1JbADQAD1O5iPCAD -0AEE7jI8QBkoAiR+qR1gAIUkZHzrENhAE+gNpuwA2EAOgADQ7iDYQAv4DpriANhAD6ABEC3QYavJ -qdkpkODiFPAgIFADCeIU8CAgEAcJ4hTwICBQAgniFPAgIBAHCWhDysBD6kDYQA6AArTsWjxACiAH -iGP/mgAAAH6pry3QYavJqdkpkOBokgJpl5/iFPAgHyACVGP/lC3QYQvJCA8CAAnZCCmQ4A8CAGiT -B+IU8D/74AdZ4hTwIBzgAVRj/2wAAAAAAOpA2EAOgAK07Og8QAogB28qIC8PAgBkoEolJDCjKuUh -00ASoA3i7ijUQBKoDdLtKdRAELAMsusjykASsA3C7CrUQBLgArLsgNhAChgMQyssZOohmEAOgADI -6qiVQAoYDD4nJDkrIDroJbjADQAC2yUkOyUkPOck0MAXgA3y7ynXwBeIDeLuKtfAF5AN0u0r18AX -mA3CLCT86iiTQA1wCxglJEblJ9DAFqAN+u+s1sAUQAvi7iTFQBawDcrsrtbAFrgN2u2v1sAUUAuy -6ybFQBbQDYrootfAFtgNmumj18AUYAvy7yjFQBbwDdrtptfAFvgN6u6n18AUcAvC7CrFQBcQDZrp -qtfAFxgNuiuk++cv0MAJ+A47AAAAABh1lRN1vyiCqOMytEAOgACkrYjpiOHADoACtKgz7DQ8QAog -ByQlJCblINBAEXgNkickAZUh5SLIQA0ABVklJDDlIdNAErANwusmsUASoA3i7ijUQBKoDdLtKdRA -EAgDousjykAUgAKq7CrUQBLgArLsgNhAChgL8issZOohmEAOgADI6qiVQAoYC+0nJDkrIDroJbjA -DQAC2yUkOyUkPOck0MAXgA3y7ynXwBeIDeLuKtfAF5AN0u0r18AXmA3CLCT8ZIB15SbQwBHAAqLl -J9DAFqAN+u+s1sAUQAvi7iTFQBawDcrsrtbAFrgN2u2v1sAUUAuy6ybFQBbQDYrootfAFtgNmumj -18AUYAvy7yjFQBbwDdrtptfAFvgN6u6n18AUcAvC7CrFQBcQDZrpqtfAFxgNuiuk+yckT9ow6yjv -QAvoCvYDOgLrKO9AC+gK8wM6Auso70AOgADQ5yGYQBF4AsLsEchAFCACV+5Y70AVwAJ373jvQAvo -CEDlEMhADQACyiUKAOVRkEAPmAD36jjvQA+YALLtANhAEAgMwe4QsEAL6Ag1yKFqVtrAUOo470AP -mACy7CqTQA6AANHsEshAEAgD4u7ll8APmAB+7hPIQBfwAnfveO9AC+gIKMqj5VGQQA+YAPfqOO9A -D5gAsu0Q2EAQEAzB7hOwQAvoCB/IoWpW2sBQ6jjvQA+YALLsJZDADoAA0uwUyEAQCAPi7uCSQA+Y -AH7uFchAEcACd+9470AL6AgRyqTqOO9AD5gA9+so70AQCAJV7SDYQBAgDMHuFbBAC+gICWSgAmpW -2cDw7ynSQAn4C88AAAAAAADiFPA/3uABBOQQ2EAJ+Axs4hTwP9/wAwniFPA/37AHCeIU8D/d4AIE -5CDYQAn4DWZsEAQUdWETdOzpTbPAEAAMgiMypwmIDORDtEAMcAiAqDMJMxGjQ4M3qYjjPrBADwgI -mKhEhEfoMqhAEOALo4RO6ajvQA0ABsjsN7BAEGgM0+sQ2EANAADKsKkJCU8pNRwvMR/uENhAGDAF -HMCwD98u7+vmwA0AAGrLnMmy2iDrANhADoAAwO0g2EAL+A5AjT0bdPAcd3/o0ZBAD5gAoug9yEAK -IAFX4gDYQA+gARAAAOIA2EAPoAEQHHd37UGYQA6AAKTl0JRADoACtO3RusAKIAZRwMAsRDAsRDvs -RtDADoAA4+5C00AXCA2l7k3TQA6AALHuSNDADoAA0O4g2EAL+A1GY/91AABsEAYbdKsadNXtJLpA -FUAM6yyigq7dCd0RrcyMx4LOGXYG6CGYQA6AAEAkhGDkJNdAEwgN2CQk6CQk/QnZCCSEBiSENiSE -TiQmVOSE0sAQCAOZKZBg54nYQA6AAFHmCdhAFAACiOgQyCAVuAMJ4hTwIBV4BwlokgfiFPAgFGAH -WeIU8CAUIAMJ4hTwIBPgBwkosqgcdzwjooKtiOmI4cAOgACkqDPrQthACiAGGCQkJuQg0EAReA2S -JSQBlCHkIshADQAEuSQkMAYqCOQh00ASoA3i7ijUQBKoDdLtKdRAELAMsusjykASsA3C7CrUQBLg -ArLsgNhAChgK6AcqCCssZOyA2EAKGArkJSQ5LyA67CW4wA0AAt8kJDskJDzlJNDAF4ANsusp18AX -iA2i6irXwBeQDZLpK9fAF5gNgigk/O4QsEANAAdcJCRG5CfQwBRgDb7r5NZAFEALouokxUAUcA2O -6ObWQBR4DZ7p59ZAFFAL8u8mxUAUkA3O7OrWQBSYDd7t69ZAFGALsusoxUAUsA2e6e7WQBS4Da7q -79ZAFHALgugqxUAU0A3e7eLXQBTYDf4v5LMlJE/aMOso70AL6Ant2jDrKO9AC+gJ6gM6Auso70AO -gADQ5SGYQBF4AnLmVJRAD5gAx+5o70AVwAJV71jvQAvoBzfkANhADQACmux470APmADm5EGQQA+Y -APXqOO9AD5gAsu0A2EAL6ActyKFqRtrAQOo470APmACy5yqTQA6AANHseO9AEAgDYuZll8APmABW -5V6XwA+YAObvWO9AC+gHIMqj7HjvQA+YAObkQZBAD5gA9eo470APmACy7RDYQAvoBxfIoWpG2sBA -6jjvQA+YALLnJZDADoAA0ux470AQCANi5mCSQA+YAFblWJNAD5gA5u9Y70AL6AcJyqTqOO9AD5gA -x+5o70APmAD16yjvQBAIAkTtINhAC+gHAWSgAmpG2cCA6CnSQA6AAKKJEMCx7ADYQA6AANDqkNbA -DoAA4uqRvsAL+AyF4gDYQA+gARAAAOpA2EAOgAK07Lk6wAogBX3qMNhACfgPxupA2EAOgAK07Gk6 -wAogBXcqIC9koEQkJDCmKuQh00ASoA3i7ijUQBKoDdLtKdRAELAMsusjykASsA3C7CrUQBLgArLs -gNhAChgKTKcqKyxk7IDYQAoYCkglJDkvIDrK9yQkOyQkPOUk0MAXgA2y6ynXwBeIDaLqKtfAF5AN -kukr18AXmA2CKCT8LCBFDwIADwIAZMByjhAkJEbkJ9DAFGANvuvk1kAUQAui6iTFQBRwDY7o5tZA -FHgNnunn1kAUUAvy7ybFQBSQDc7s6tZAFJgN3u3r1kAUYAuy6yjFQBSwDZ7p7tZAFLgNrurv1kAU -cAuC6CrFQBTQDd7t4tdAFNgN/i/ksyUkT+oQ2EAJ+A62bBAIGHOfF3NwFHTJKIKlGXWM5ES0QA6A -BFACiAjtKTnADwgImAhECOhPqUAQ4Avk65Y7QA6AAGDvDNhAEOgLpO3s5UAPKAiY6E/BAAhgCLxx -5wxxpwnv4+VACAAADgAA4wDYAAigCNzvaO9ADygJ/um/58AQOAGeB/8CkxHstznADoAAuOoQyEAP -mADS6lDYQAogBRLqCNhAESgBkylBH+hHuMARaA106HflQA9gCVnpT8FACAAADAAAAAAAAMBw7wDY -QBD4AYMpQR/oR7jAEWgN9Oj/5UAPYAmp6U/BQAgAAASfFOwmOcAPmABf40O4wA6AAKTrgdhAD5gA -0ucQyEAPmABH7jjvQAogBPTvAN/ADQAFIxxzegIrEay7KLKCD4gBCFgCKLaCLrKED+4BDk4CLraE -KrKAHHPlHXNa49bnwA8oCsoGqgLqsMxAD6ABEAAAAAAAAADjCNgf96AN2mP/BIUU7RDYQA+YAEcH -1Dnl1efACfgPoQ2oAeIU8B/3SA644wTYQAn4DuEAbBAE537fwA74D9/q5TjADQgBI+hIl6AIqAIE -5RDYQA6AAJDoWebADoAAsMHj7wE7QA6AAMHoDtpADoAAQOgo60AOgAFU4/jvQBigADUlMYAHVQHj -MpBAEYAEWLFE4/jvQA6AAEDrDNpADoABhOsi60AYoAA4LzGAB/8B4zKQQBGABPKxRNEPZk/Sb0tu -I6KEAEEE4LXwwA+gAhQAxhoNZgMGMwEFMwLjpMxACfgPsmZP0m9LISiihABBBOCb8MAPoAIUAM4a -De4DDogBC4gC6KTMQA+gARAvosAE5QwAUQTgkvDAD6ACFQDDGg0zAwP/AQL/Au+gzMAPoAEQJqLA -BOUMAFEE4LjwwA+gAhUAwxoNMwMDZgEIZgLmoMzACfgPQMCQ6wDYQAn4DwQAwJDrENhACfgO+QAA -bBAEFnQaF3LMJmKE6HqZQA6AAJnohbZADQAL1qKICYgRqGgigCVrIipmICcigCxoJWJoIV9oIlxo -JlloI1biFPAgBbgEAgMyCgciCuIjscAPoAEQ6vDYQBagBJLl4NggADgKEmspPXJSAmsqvuYh2EAR -oASi6UHYQBBIBibBgXgqAnkpwAMyCrQiByIK4iOxwA+gARADMgqzIgciCuIjscAPoAEQaEVzaEc4 -aEgIb0oCb0kvekEsAzUKB1IK4iOxwA+gARADNQqlIgciCuIjscAPoAEQAiIKByIK4iOxwA+gARAA -AzUKslIHIgriI7HAD6ABEAAAAAAAIoA04hTwH/owCJJoKSTAW3UhB+IU8D/5sApS4iDYQAn4D60D -NQqxUgciCuIjscAPoAEQ4hDYQAn4D5VsEAgZc80bcn8PAgApkoTsuplADoAA2ezFtkANCAoposwJ -zBEMnAgqwCXiFPAgCpACGmahSirALNMPaKIaaKUX4hTwIA14BAriFPAgDeABCuIU8CAOIAQKwJAJ -RQoLVQolUnvqKO9AD5gAtOw470AL+A+Y5mY4wAwAC0HkCIBADwgL6+Qn7UAPYAi44nfhwA8ICIio -dwZ2COUJgiAJoAID6RTIIADgAHotbQSN0B91Lu5kmEAPKA397eDIQA+gARDlEMhAD5gA0uySOcAO -gACl64HYQA+YAOPvSO9ACiAEARJ0TKJyjisYdSIFr0Ln/+HADygOjg/uAp4rKyInxtDlLIRADygL -2wy7AismJyptBIqgHXUYixQccx3su+HADygK2guqAutkmEAPYArKmrAoIh8ZdREJiAIoJh+OIsDx -D+4C7iLIIAGQAgPaQOsA2EAKEALfiijAsQuqAuooyEAPmACkiCgp+v7piOVADoAAsegoyEAKEALW -0Q8AAAAAAADu8Ngf9YgI2u/g2CAAOAoaa6lFevIH4hTwP/TYChp+oTfBgnqCBMGReaoJwcTiFPAf -9TgOyukw2EAJ+A6hDCURpbXlW7PACfgOnQAAAAAAAOkA2EAJ+A7MAGg1U2g3MGg4CG86Am85J34x -JOkA2EAJ+A5rKMA04hTwH/JwDthj/lYAAAAAAAAA6RDYQAn4Dk7pINhACfgORirANGip6cCb4hTw -H/GgDprpINhACfgOLukQ2EAJ+A4mbBAG6ijvQA+YALTsOO9AC/gPIuYPO0AMAAhB5AeAQA8ICOjk -Je1AD2AHh+JV4cAPCAeHp1XAcaZV5qjvIACoAHopUoAadLsKmQHpUMxAD6ABENpA6wDYQAoQAo8v -UoAYcc4I/wIvVoAsUoAedLYdcrnuzOVAD5gApO3M60AOgACx7FDMQAoQAoTtKO9AD5gA4+YQyEAP -mAD07Lo4wA6AAKXrgdhACiADgSj6wCxSg+bNg0AO+A/j7t3hwA8oDOwNzAIsVoMrUojmTIZADygL -iwy7AitWiCpSiearhkAPKAqKC6oCKlaJKVKK5gqHQA8oCYkKmQIpVoovUovo/+VADFgIZgj/Ai9W -iy1Sjcfg5gyCwA8oDe0NzAIsVo0rUoIHuwIrVoIpUoLHrgqZAelSzEAPoAEQAAAAbBAE5ADYQAgA -ABGxRAQER+IU8CAHwAgEAEAEAggbf4fp4hTwIAYYBAPiFPAgBdgIA+IU8CAFmAsD4hTwIAVYDAPi -FPAgBjgCU8Bz5hDYQA6AAFDApez2OMAOgAG47TjvQA+YAOXvaO9ACiADQgQfQOQOgEAPCA/v5C3t -QA9gDv7i3eHADwgOjq7dHnOErt0s0oDqX+HADwgO5u/1OMAPYA7+7n7rQA8oDPzuxTpAD2AM7A7M -AizWgAzqMBtxdiuyOQy7CQnqMAm5DOIU8D/56AE5bQgNCOowCLgM4hTwP/lgAThj/+sAAOIU8D/6 -6AIDaDQIaDgZaDsWaTwP5wDYQA6AAGLlENhACfgPS9EPAADnANhADoAAYuUA2EAJ+A83bBAEiieK -rhl0PSQgJOUI2EARCAzqpZmpSbHu7qHKQA6AAGAmJE4pkODvOO9ADQAAeSkkccCk7CM4wA6AAbjt -SO9ACiADBOpI70AOgACw7ADYQAv4Di0rIhuLt8i66ijvQA+gABtgAAIAwKBmoQEfcYICShGvry7y -gBhzrQjuAS72gAvqMBxxOynCOS3COQ2ZCguZCQ3qMA2dDGrRDm0ICAjqMAiYDGqBAmP/8MDXGHFt -qKouooAfcYYP7gIupoApwpsJi1JotxvpYNhADAgPlg/ZOSuigsfgDrsBC5kCKaaCKcKbCbhSaIcf -H3MsLgpw6wbYQA8oD/kP6zksooIt+g8NzAEMuwIrpoIbcTsYcsYacmYpsqeoSCqihKSZCZkRqanp -l7BAF4ANiOmesEAR0AHoLLKlpMwJzBGsrO24tkARIA3MrcwJzBGsrIzHjM6lzCbE4OacwUAOgAAg -5pLAQA+gARAAAAAA4gDYQA+gARDiqO9AD6ABEGwQBujvOEAOgALQ7hQ6QA6AAMHmwzpADvgOp+eK -mUANAAUTaDJJCIkC7wTaQBQoDL7rEMhADoABROsA2EAYoAA0JJGACkQB6ZKQAAmoCPSxuylypSVi -4gmZEQlVCCVREOIU8AAPSAGl4hTwIAbgAQLlENhAD5gA8+Nf58AOgACw6xHIIAjgAgLpANhADoAB -ROsC2kAYoAA0JYGAClUB6IKQAAVwCLWxmcdbKOLAwUMFRAwAQQTgOfDAD6ACFODK8MAO+A+/C6oD -CogBCYgCKObAKXKlKGLiDwIACZkRqYiJESWANQ/ZOQlVAiWENWQwVxhzp+NtsSAIqAECZDBJGXOk -4gDYQA6AAKNtCDMrgHwAIAQLCxvlYrbAERAB+ytypasrCbsRq1UjURDpPOVAEFABoypUTSxVECNi -HbEicysHY//FAAAAAADiANhAD6ABEOWY7z/6sAspJOKEAJEE4DjwwA+gAhngyfDADvgPrwqZAwlE -AQhEAuTkzEAJ+A9WAI8QALAEDw8Z4hTwH/YoAf/iFPA/9uACUmP/rAAAAAAA6QDYQA6AAUTrANpA -GKAANCWBgApVAeiCkAAE8Ai1sZnHWyjiwMFDBUQMAEEE4DnwwA+gAhTgyvDADvgPvwuqAwqIAQmI -AijmwClypShi4gmZEamIiRElgDXAqA+pOQlVAuWF00AJ+A7oAAAAZD84wCBtCDUqgHwvcqUAIAQK -ChvuYrbAEOAB+q8vCf8Rr+4r4RDs7dDAD2AL2yvlECNiHbEi4hTwH/gQCTJj/8NlLh9j/vQAAAAA -AOWY7z/7MAspJOKEAJEE4DjwwA+gAhngyfDADvgPrwqZAwlEAQhEAuTkzEAJ+A9mAGwQBBhxqenH -OEAOgACgKiQCKiQBmiTqILhAFSgMmSiChKqZ5GU6QA8ICZmpiB1zNwKqEa2tL9KAE3M2A/8BL9aA -LNKAHnBCDswCLNaAG3CFq6opooUbcGwogR/rgNhAD2AJuemlzEAMUAiA4yS4IAUICAjCoOIA2EAZ -uAA7ACAEAwwbf8cnAhhA4g+AQA8ICOjiLu1AD2APj+Lu4cAPCA+Pr+6k7i3igwrdAi3mg7Ei5UI4 -QA6AACAAIAQDCRt/l0baIOsA2EAKEADeAh9A4g6AQA8ID+/iLe1AD2AO/uLd4cAPCA6Ort2k3Szd -BCzCAOoo70AOgACx7dSYQA9gDFzs0MhAChAAzrEiaSiq0Q8AGXMBKCAAqYgogPDiFPAf+qAD6GP/ -iQAAbBAI5iewQBEoDYLmbrBAEUgEOCQhHO6u38AOgAGG5GSCQBDwBYMYcvIIOAqIgAqAAAAAAAAA -AADiANhAD6ABEMCk7M46QA6AAbjtJLpACiABtysiG4uzIyQl4yLTwA0AAQvqKO9AD6AAG2AAAgDA -oOyuN8AM0Aeg7b43wAzQCKDvDNhADoAAUOlY70APKA766CvBQA9YCe3u7zlAEDgBmgyZAueX60AP -mACl6kvhwA8oDufnK8FAD2AL6+cuwUAM0Amw77jlQAzQDrDuLMFAD1gKjehh2EAQOAGbDKoCCakC -6SzBQBCIBYMacsMKOgqKoAqgAAAAxsrqJLpAElgN0uwvwUAM8AvA7Cq4wAoYB/3Btns7EBxyuQw8 -CozACsAAAAAAAAAAxsrvK6lAD5gAs+4quMASWA3S6iS6QBOADZLpEMhADoAAgOgRyEAKEAJm46jv -QA2QAcobb73nJbpAFwgNu+UquMASWA1C4xXIQBEgDaLqFMgAAmAD+8AwADAEBQwbf8cP63jvQBAg -DKHsOO9AC/gNvLEzaTjhwDAAMAQEDRt/1w/reO9AECAMoew470AL+A0msTNpOOHjFbBAESANoh9v -wx5w7i/ypS7ihKr/6mDQQA8ID5+v7unquMAPmACm6WTQQBEoDf7vY9BAElgNjuhl0EATgA3u7mzQ -QAv4DzcqYAPrAdggAhgHCujg2CADsAkK6fDYAAVwCIriFPAABXAImuIU8CAJcAsKwcHiFPAACXgI -ysHVetITweR+og4vagDvYshACAAACMCBmGLrZNNADoAA0O1ryEAQgAuS7WrSQA6AAKTtadJAESAN -wuxo0kAPYAmpKSUQ4jjvQA+gARAAAAAA62TTQBEgDcLsaNJADoAA0O1p0kAQgAuS7WrSQA6AAKTt -a8hADoAA5e5iyEAPYAmpKSUQ4jjvQA+gARAAAAAAAOtiyEAJ+A+FwP3vYshACfgPewAAAADsQNhA -CAAABsDI7sjvQAn4DVTsAthACfgP9OwB2EAJ+A/s7CDYQAn4D+TsQNhACfgN7OyA2EAJ+A3k7ALY -QAn4DdzsAdhACfgN1Owg2EAJ+A3M7EDYQAn4DfTsgNhACfgN7OwC2EAJ+A3k7AHYQAn4DdzsINhA -CfgN1ChKjehiyEAJ+A7yKVoQ6WLIQAn4DucAAOxCOkAOgACk64HYQAogAOviOO9AD6ABEGwQCudY -70APmABiC+owGHCBKIJ/4hTwABTYC4sacH4Schcdbyjrr8vADoAAwOIhsEAT8Ayq7dmzQAogAlQd -byEfchAt0OHitejADoAA4e7w0EAQUAHNLjAAaOMux/7vb+VADoADiHjxIcl+7GA6QA6AAKXrgNhA -D5gA1O8wuEAPmADm5RDIQAogAMfBg+IU8AALeAlYF28EJna9GnH760A3wA6AAMDuoNhADoAG1O8A -2EAOgACT6X7PQAuAA7AdcFXiqO9ADQgP6uUWyEAOgACQ4xXIQA0IA+TVkOYUyEAMAAxg7BfIQBf4 -ArTrGMhADoAAM+YQ2EAIAAARAAAAAADmENhADQAFg40YDwIA7hewQBA4B9UmCgDvYuHADQAITutO -NsAOgADA4n7PQA6ABtTqbTlADoAA6uhdOUAOgADw0w/TD+gQyEALeA3K4qjvQA0ACepmIMyxVXRT -ox1wLhRxxwvqMCnSf+IU8AAMqAubHm7VLuI5wMDr38vAE/AMre3o70AKIAIBm0HqQMhADQgAIxhx -u8Dw74DQQA+gARAAiRWlmSmQACl2vRpxtxtuwO1G2EAOgADA7qDYQA6AAIHpOzlAD2AIguh+z0AO -gADw6RDIQAt4DafiqO9ADngHiityvuIU8B/7aAIbYAAyixUqcr2lu+qw0EAJ+A9bAAAA6zo5QA6A -AaTlqujAC3gNz2P+gRRxmuMw2EAJ+A9IAAAAIvq5jxXsqTlADoAApO/wuEAOgAC45hLIQBAwDOHu -EMhAD5gA1OURyEAQIAzh4hPIQAogAFSIGHhTerAzCuowG26ZKbI5K7I5C5kKCpkKCuowCpoMaqEI -DOowDJwMa8H25QDYQAn4DnsAAAAAAAAA7Bg5QA6AAKHrgNhACiAAQR5xeOK/38AOgADQ7eDQQA+g -ARAYb9gvgn6x/++Oy8AJ+A1dKHK+4hTwH+/4Ahjim9/ACfgN98CgKna9GnFr60c2wA6AAMDuoNhA -DoAG1O8A2EAOgACR6X7PQAuAAyBj/1ks0n6xzOzey8AJ+A5mAABsEAbnxjbADoAPj+Ap7wAPiAiC -49U5QA6AAEEHKgjgS/DADoAA6eqsv8AUAA3T6wuCwA6AAcTrENBAF+ANt+oKhAAHMAjSCwtE6ODY -AAmwCOviFPAACXAIyytw/Q8CAAsLROIU8AALEAjrL3D+4hTwAAq4CMsPD0TiFPAACxAI7+IU8AAK -0AjPL3D/Dw9EfvECfPkLwLCxu+IU8CALYAIr7H7fwBCIBIrBkevQ2EAQOASae6lgwVPuSDfADvgP -/+p470AOgACw5gzZQA6AAYTTD+bd60AYoAA4KaGADJkB6qKQQBJoBJ2xu9pw6EHYQA9gDWLrANhA -GKAAOCmhgAyZAeqikEASgASdsbsacSDrsTlAC3gNSuIw1EAOgABA4kjvQA+gARAAAOIA2EAPoAEQ -Zr+14hTwIAgQCyst4oQAsQQAShoPqAMI3QENqgLq5MxACfgPmGa/sukA2CAH4AsrKuKEALEE4Jzw -wA+gAhsATRoP3QMNqgEMqgLq5MxACfgPjQArcP0LC0TiFPAAB5gI6+IU8AAHWAjLL3D+Dw9E4hTw -AAcoCO/iFPAABugIzy9w/w8PRH7xB+IU8B/3IA7P6xDYQAn4DtLAsC9w/g8PROuxkEAQYATvfPkG -YAABwLCxuy9w/w8PROIU8B/1UAjv4hTwH/UgDs9j/poAAAAAAOIA2EAPoAEQKgrg6xjvQA6AAMHt -ENhAC/gOt+So70ANgAcaG3DW6kbYQAt4DQQiNIDiSO9AD6ABECniwAtdDADRBABIGg+KAwqZAQmI -AujgzMAJ+A6XAAAo4sALXQwA0QTgmvDAD6ACHQBMGg/MAwyIAQqIAujgzMAJ+A6SAAAA6xDYQAn4 -D0brENhACfgPVOKo70APoAEQbBAEGm3G6KG+wA6AAPfuJLpADvgO1+yA2EARKA2y7IzlAARQAcjA -sOkQ2EAOgACA7JjmwA6ICMDoQdhAD1gPjuz860AYoAA4LqGADe4B6qKQQBBABOyxu8e7GW716hDY -IAE4CysvkoUAsQQAqBoI/wEPrznO98GcKSQs4gDYQA+gARAAAAAAAOyRtMAXgALrAOEEAK0aDcwB -DKw5ZM/WLyAk4gDYQA0ABS/RD8GB6eDYH/ugCIvoANgf+2AIm+sA2EAOgACR7ATYQA9QCMnoQdhA -D1gPjtMP7PzrQBigADguoYAN7gHqopAf+4AI7LG767/fwAn4D2bsCDhADoAApOuB2EAKGA894gDY -QA+gARBsEBAqIhkdb48sIRDpo6hAEBALig3MAewgwQATaAiYF3BKLyAkG22fGW2eGHBwmBnpEshA -EVgNkusQyEAPYAd/lxjnfjXADAALkOcWyEAREAH5fpcafZcXfJcUIyEfAw5F6O7gwAgAABMAAAAA -AAAA4y+pQA6AAODtANhADQAA+36XB32XBHyXAcDRFm9q6BU2wA6AALDnE8lADAAENuO6NcAMAAc3 -6bjvQAwABcDouO9AD1gJSOU458APmABL5WQ1wA9YBHbmLalADAAHwwf8EwmIAuZmgEAPmACb4yy6 -QA9YCWXmJbpAERgNUuSZ60AREA1C5x/IQA8ABx3sHshAEOAL0i0VF+xzNcAPCAaG4FXhwA8IBLTk -M+tAEOgLQufn60AQ2Avi7hbBQA9gBWXkG8FADAAER+biOEAPWAtM5AjYQBDIC8LsGMFAD2AHt+sv -ukAPYAeX6xLTQA6ACJCpZqb26S66QA6AALDpE9NAFwANZuh/60AQmAxx5QDYQA9gD1/vP+tADAAG -Ye8ayEAPWARl5BTTQAt4DwMqFhEWbT7oszXAD5gAOuSjNcAIAAAxAAAAAAAAAOIU8CAE+AUJZFDU -sTvqKbFAC3gO9i0SERhtMBRtMOOo7wAFcAitKIKhJEKGo4gJiBGoRCtBKe9A2EAWiARriUfuQLBA -EDgN1OqQkkAQoArJ6O7hwAwQDdDg3eHAD2AO/u4RyEAPYA3b593rQBBIDLntFMhADQAGTOyC2EAL -eAzD5ajvQA4ACNrAUB5s8i7g4SlADOIU8B/7SAH+4hTwP/sIAVkpICvrANhAEHgB+X6XB32XBHyX -AcCxKiAk7ADYQA6AAPHr++fAC/gD/GP/OADRDwAAAAAAAOsA2EAJ+A+c2kDrGO9ADoAAxO0g2EAL -eAtNjkDsLTfADoAApO0kukAOgAG47yK6QAoYDopj/vsAAItY64iHwA6AAZt5gSyKRy2hFewM38AR -AAKqDKwBrNzrUJCAAWAKxeyC2EALeAyT5ajvQA14BEpj/8UvICQLDkN++cmLWQsLX2mzwWAACADt -u+jACfgP1MCk7Fs3wA6AAbjtWO9AChgObykgKyUWEOkNgEAQ4AH5fpcUfZcRfJcOLyEfDw5F6O7g -wAgAAA0A7y+pQA6AAODrANhADQAA/X6XB32XBHyXAcCx5Qs2wAwACPfpaTXADAAN9uMVyUAOgADA -48jvQA+YAKztmufAEOgL0uX4NMAPWAOF7WiAQA+YAJzl6DTAD1gJhejI70AMAA3X7VznwBCAC9If -bOIDmQLlI7pADAAD0OP458AREA0y6ojrQBEoDaLgVeHAEWAN8usz4cAPCAqK6lXrQBCADKHtPYBA -D2APPw3zE+2vyEAQyAvS467IQA8AAxvtqMFAD2ADPu0kukAPYAPD7CypQA9gA5Psp8FAD2ADg+kr -qUAPYANT6abBQA9gDz/vqshAEXANgh9vaeij00AReA1S5aLTQA6ACDCj/6/dLdDg6QjYQA6AAMDj -FbFADoAAUe8tqUAMAA3R76vBQA9YCdzppNNACfgNuAAAbBAEKCBMwkjoSILADoACVeYA2EAZEAEo -4hTwAATgCFPpMJaABKAIQwljOCMkQeJo70APoAEQwKTs1DfADoABuO0kukASCA3i7zjvQAoYDgPr -YthADoACo+0i2CADgAwDc6MH4hTwAARgCdNzswJ1Oyl0MSbqANhAGMAMIyYkQeKo70APoAEQAAAA -ZqCFaDzrIyRB4qjvQA+gARAsIhsswhDqrt/ADXgOXNog6zjvQA+gABxj/9MAAC0iGy3SEGTQXiMk -QeIA2EAPoAEQLCBBfKICfcpSfLICdcoCdMmVLCIbLMIQysbaIOs470APoAAcYAAcKiAk6yq4wBJY -DcLtOO9AC+AJBmevg2AABgAAxqpnr3niqO9AD6ABEAAAAAAA4q7fwA+gARAqICTrKrjAElgNwu04 -70AL4Aj5Z69OY//RAAAAbBAOKCEY54Q0wA6AAEDpANhAESANUukUyEANAAVoLyEQev9LKCBM6yG4 -wAwwCITuIthADQAD2OmC2AAMSAjr4hTwAAugCJsrIhRksQ8cbvfqKO9AChgIq8Cw6yTJQA6AAKAq -JCviX9/AD6ABEAAAAMCw6gDYQA6AAMCJFObDNcAPCAjq75PhwA8ICdzpiOtAD2ADs+srukAPYAOD -4wqAQBFIAfN+N2HiFPAAB0gB0+IU8AAXCAHDf7cafrcXfbcUfLcRYABOAAAAf7dIfrdFfbdCfLc/ -ZKBHfjdEfTdBfDc+KiBO4hTwIEBoAGobbtGxrCwkTqtbK7Dw4hTwABXQDKviSO9AD6ABEH+3CH63 -BX23Any/vyMkK+JI70APoAEQ2iDrOO9AC/gKaNSgZk/l6iCwQBPYDMYrIR8MqgzrC4ZACgAFcS0h -EMDk4yvSQA9gDe0tJRDiANhAD6ABECwiG4zEZMF82iDrEJFAD6AAHOkUsCBMmAFqZJYJKyIbi7Vk -sFfqKO9AD6AAG+kUsEAIAABOAADiFPAf++gB++IU8B/7qAHr4hTwH/toAdviFPAf+SgDy2P/XSwi -G9MP0w8swhBlzoLkANhADoAA0e0UyEAIAAAXAAAAAAAAwKDkqO8gSeABamSQ/C4gK37vXhhuei8g -JKj/L/Dwf/81KiAlKQoOeaEiaKcfaKgcaKsZKwoRe6ETLAoUfKENLQoVfaEHaKkEwO9+qQkpICzT -D2iUHMmZLSEf6yq4wA+YAKXuANhAElgNwu0NhkAKCAvW6i+pQBDgC/ICVhGnY+r/5UAOgAPv4hTw -AAR4D/7qCoZAE4ANkisygBxucBhrcA8CAAxsCOiBvsAUCAzM7AyCQBCAAfgcbmoMbAgswhQMLEHi -FPAgMcgECuIU8CAnIAwK4hTwIC34BAriFPAgLjgLCuIU8CAuaAgK4hTwIC6gAgriFPAgOYgBWgtN -QWXXJmjBFmAHIAAAwEAuICviFPAAI6gD7gJWEadjKiAlLSAk7yK4oB3wBgrAiXihEWiqDsGUeaEJ -wbJ7oQTBwXypEC4gLA8CAA8CAOIU8CAdSAQOwPHvItDADoAA4eoQ2EANIAFeKDKNwJLpi+VAEjgJ -mMCQ7De3QA0AAJt6zwHAkduQwtAtNrccbjWsbC3NBI3Qc9cfL8KALgoDf+AWGW4wCWkIKZIBLAog -7JnlQA6AAIAJizjsENhACfgM6uIU8B/r6AH74hTwH+uoAeviFPAf62gB2+IU8B/pKAPLY/1diCco -gg4ugiDs8TbADoAApOQkukAOgAG47uGQQBD4C/LugMpADoAA0O0i0kAQ4AuS6RDIQAxQD/DoLalA -D5gA1OgRyEAKGAzHLyEf7w+GQA6AAFcCShEHrAguwoAYa74I7gEuxoAbawcdbggtxrcrspvruYHA -DAgOtut9gUAMKAu44hTwIBDABBtmshAiFhEowoLlENhADwgC++UP38APWA7l4uLrQA8oCFgCiALo -wsxAEIgMIeXw36AQoAQZZpIMwOAowoLB8Oub4cAPWA7f7rvrQA8oCFgLiAIoxoIdbQQbat7ogDdA -DoAM8B5rJq6q6hvIQBQADJocaxYMmQIppoAogqUnYoSkiOn+NMAPCAiYqHfof6lAEOAL5ypxHe3s -5UAPKAiY6H/BAB6YCLxx5wtxpwjv5eVACAAADwDiFPAAILgI3MBQ7wDYQA8oCP7ov+fAEFABnhtq -vQv/ApUR7E40wA6AALjqEMhAD5gA1OpQ2EAKGAx7eVcgLHEf63e4wBFoDafE0Ouq5UAPYAzc7H/B -QAgAAAoAAAAAwKDrCNhAEPgBhSlxH+h3uMARaA336P/lQA9gCbnpf8FACAAABsDwnxwcbMzrgdhA -D5gA1O8fyEASGA1X6hDIQA+YAHrnEMlADoAApO5Y70AKGAxdKRIQ6x+wQBBYDMHtLDZADRgA9eoA -2EAO+ACALsKCCO4BDrsCK8aCL8KECP8BD58CL8aEKMKAG2tLHmxDH2q/rk7l+ufADygIuAqIAijG -gCXSqCvSpypihKRVpLsJuxGrq+u3sEAXgA3uCVURpaXrvrAADCAD7isiG4u2ybLqKO9AD6AAG+Wo -7yAAUAB6YAAVAMBQLCEf6kjvQA6AALHsDIZAC/gHYORY70AJ+Arc52DYIBZgBAviFPAgGCAFC+IU -8D/wIAZbDnU5KMKCx7ALiAEIWALowsxACfgN7gAAKwpw7gbYIBXIBAniFPAgF4gFCeIU8D/vyAZZ -L8KC7evnwA8oD18L/wLvwsxACfgN4wAAAAAAAADo8NhAElgNkugdyEAIAAAMAAAAKSBLmR3uxTTA -DoAAoOyA2EAMcAuQ6QDYQBoQADwAkAQLCBt/hzIJHEDpCIBADwgM7OyI60APgAyS6IjhwA8IDCyo -zK7MLMIn4JnvQAwADMUAzBoMqgIKCkexmYgdCK4BDg5H7iLQgABwBIrAgOgi0MAOgADgZPGnZevp -YAPeKSBB6Z6VwA6AAMDpyufACfgL4C0hH+squMAPmACl7hDYQBJYDcLtDYZACggKi2P7cAAAAAAA -AOSo70AJ+ApcC05B4hTwP9jIA15j+1kAAB9qSC/ypaT/Cf8Rr6rrHshAC/gFmIke5yQ2QA6AAIEo -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 -AQ4CAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4CgQUAAAAAAAAAAAAAAAAAAAAAHgIB -AQAAAAAAAAAAcwAAAH0AAACHAAAAkQAAAAAfAAAAAAAAAQAAAAAAAAACAQAAAAAAAAQCAAAAAAAA -BhQAAAAAAAAHEgAAAAAAAAgDAAAAAAAAChUAAAAAAAAPEwAAAAAAABAEAAAAAAAAIAUAAAAAAABA -BgAAAAAAAIAHAAAAAAAAwBYAAAAAAAEACAAAAAAAAgAJAAAAAAADABcAAAAAAAQACgAAAAAACAAL -AAAAAAAMABgAAAAAABAADAAAAAAAGAAaAAAAAAAgAA0AAAAAAEAADgAAAAAAgAAPAAAAAADAABoA -AAAAAOAAGwAAAAABAAAQAAAAAAGAABwAAAAAAcAAHQAAAAAB4AAeAAAAAAIAABEAAAAABiF6AAAA -BQAAAAQAAAAEAAAAEgAAAAQAAAAbAAAAFgAAAAAAAAABAAAAAQAAAGwAAABsAAgbMgAAAAYAAAAE -AAAADAAAABEAAAAEAAAAHQAAABQAAAAAAAAAAQAAAAEAAABwAAAAcAAAAAAAAAAAAAAAAAAAAAIA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiH/AAAABwAAAAIAAAACAAAAEQAA -AAQAAAAeAAAAGgAAAAAAAAABAAAAAQAAAHQAAAB1AAAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAw1AAAAAAgAAAABAAAACgAAAAgAAAAFAAAAHQAAAB0AAAAAAAAAAwAA -AAEAAAB4AAAAeQAMNQAAAAAIAAAAAQAAAAoAAAAIAAAABQAAAB0AAAAdAAAAAAAAAAMAAAABAAAA -eAAAAHkAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOThwA -AAAJAAAAAQAAAAYAAAAGAAAAAgAAAB4AAAAeAAAAAAAAAAEAAAABAAAAfQAAAHoAAAAAAAAAAAAA -AAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDZkAAAACgAAAAwAAAAJAAAAEQAAAAQA -AAAdAAAAHQAAAAAAAAABAAAAAQAAAAAAAAB+AAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAML5MAAAAJ -AAAAAwAAAAoAAAAXAAAABgAAAB8AAAAcAAAAAAAAAAEAAAABAAAAYQAAAHMADDUAAAAACQAAAAMA -AAAKAAAACAAAAAUAAAAdAAAAHQAAAAAAAAADAAAAAQAAAGEAAABzAA05awAAAAoAAAADAAAABgAA -ABoAAAAPAAAAHQAAAB0AAAAAAAAAAwAAAAEAAABkAAAAZAANu6AAAAAKAAAAAwAAAAYAAAAJAAAA -BQAAAB0AAAAdAAAAAAAAAAMAAAABAAAAZAAAAHEADj3VAAAACgAAAAMAAAAGAAAAHAAAAA8AAAAd -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 -AAQTGAAEExAAAHfgAAB35AAAd/QAAHgEAAGcPAABEHQAARCEAACUCAAAmFwAAJYMAACWFAAAliAA -AJYsAACWxAAA0CgAAJAIAAMI3AADSNwAAwjkAANI5AABkFQAAGAcAAGg2AABkJAAAHfgAAB35AAA -d/QAAHgEAAB42AAAeOAAAHj0AAUAeAAFCHgABRMIAAGUBAAB48AAAefAAAHrwAAB78AAAfPAAAH3 -wAAB+8AAAf/AAAGUDAAAMACf//9AAAAwCJ///0AAAZQQH//n/wABlDQAAAAQAAGUCB//4/8AAZQ4 -AAAAEAAAEChg////AAAQLGD///8AABA0Afxf/wAAEDgB/F//AAAQQAAEAAAAABEQAP///wAAERQA -////AAB7KAB9/+IAAHswf//u/wAAezgAAAABAAB7QH//7v8AAHwkAH3/4gAB4ogACAAAAAHmiAAI -AAAAAeqIAAgAAAAB7ogACAAAAAHyiAAIAAAAAfaIAAgAAAAB+ogACAAAAAH+iAAIAAAAAI3I//// -8AAAjdD////wAAB+cH+//38AAH54f7//fwAAfgACwAAAAAGRVAH///8AAZGcAf///wAAj9gDf/// -AACP+P////8ABBMUAAAABwAEEwwAAAAKAAB33AAAAAcAAHf0/////wAAeAQAAAADAAGcODnBv/kA -AJAEAAAAPgABEHgBjAYAAAEQfAGMBgAAARCIAAAAAAAAlAQACd/gAACUEAAJ3+AAAJhUAAAB/wAA -mFgAAAH/AACWCAAAAAAAAJYcAP///wAAliQA////AACWKAD///8AAJYwAP///wAA0CAAAAAPAADQ -JAAAAA8AAwjYAAAAAwADSNgAAAADAAMI5AAAAAMAA0jkAAAAAwABkFAAAAD/AAGg1AAAAYMAAZCM -ADgAAAABkJgAOAAAAAUAdAAAAC8ABQBwAAAALQAFCHQAAAAvAAUIcAAAAC0ABRMEAAAAPwAAAAAA -AAAAIAMWrCAI0dggAxawIAjk0CADFrwgCOPYIAMWyCAI43wgAxbcIAjieCADFuggCOHEIAMXACAI -4FggAxcQIAjfCCADFxwgCN3oIAMXJCAI3bwgAxc4IAjdkCADF0ggCN1YIAMXVCAI3DggAxdcIAjc -DCADF3AgCNvgIAMXgCAI26ggAxeMIAjZ/CADF5QgCNk4IAMXpCAI2CggAxewIAjXCCADF8AgCNXw -IAMX0CAI1MQgAxfoIAjRhCADF/wgCNFYIAMYDCAI0FgAAAAAAAAAACADGBAgCNAIIAMYFCAIz4gg -AxgcIAjPUCADGCQgCM8YIAMYMCAIzuAgAxg0IAjOqCADGDwgCM5wIAMYRCAIzjggAxhQIAjHiCAD -GGQgCM4AIAMYaCAIz8AgAxhwIAjNyCADGHwgCM2QIAMYhCAIzVggAxiMIAjNICADGJQgCMoAIAMY -nCAIzMwgAxioIAjMwCADGLAgCMyIIAMYuCAIzFAgAxjAIAjMGCADGMwgCMvgIAMY1CAIy6ggAxaE -IAjHtCADGNwgCMdQIAMY5CAIxxggAxjsIAjG4CADGPwgCMaoIAMZCCAIxmggAxkYIAjGMCADGSAg -CMX4IAMZKCAIxcAgAxkwIAjFlCADGTwgCMVoIAMZSCAIxSggAxlgIAjE/CADGXwgCMTQIAMZjCAI -xKQgAxmcIAjEeCADGawgCMRMIAMZvCAIxCAgAxnMIAjD9CADGdwgCMPIIAMZ6CAIw5wgAxn0IAjD -cCADGgAgCMMoIAMaDCAIwcAgAxoQIAi/4CADGhwgCL7oIAMaMCAIvrAgAxo0IAi+eCADGjggCL5A -IAMaPCAIvgwgAxpMIAi9pCADF0AgCLyIIAMaWCAIu2wgAxpcIAi7GAAAAAAAAAAAIAMabCAIuuwg -Axp0IAi6wCADFpAgCOgIIAMWmCAI5yggAxZ8IAjmaCADFqQgCOWsAAANAB//AAAf/wAYH/8UICAI -AQAf/x0wIAtHgAAKAADhBBIA4QQCAOED/gD/wf//ABAAAEIHCAACAAAA//+A7gAA8AAAABUAUAAA -AAYAAAAABgAAEPAA8AAAMAAAwAAAQDBCAAEAAACABAAB4AAAAIDACAABAEQg+OD//3AA/+CAMwAB -Dw8AAAAgAAAAMAAAABAARoAAAAEf/wDAAAARAIIAAAHAAAQAAAAP/1////8gAAAAIAtHoBAAAAAg -C0fQAAQTACALR/Af/x2wIAtIEB//HNggBoEQH/8vICALngDhAHYAIAudcCALnbAgC0gwH/8feB// -HwDhAZoAAAGeDOEBngAAAZ6sH/8fgB//HAwAAf//AAGfTAABn5wAD0JA4QB6ACALSMAgC0kQIAtJ -cAAA//8/////IAtJ0CALSkAgC0qAIAtKwCALSwAgC0tAIAtLgCALS8AgC0wAIAtMQB//ARAf/x00 -H/8doCADE6AgAxNA/wD//wAMAACAAAAfgAAAPx//K8gf/xY84QDOAERERESIiIiIzMzMzB//L0gf -/x0gH/8cqOEBDgAAAEAA4QCOAAAAgADMiEQAH/8GMB//HaQf/y8wAAAIACALTMAgC00gAAALAAAA -CsAgC57wIAtMgCALnoAgC55A4QAuAAQAAAAf/xZk4QBWAAQBgACIAAEA//GBAAABgAAgCAAAIAgR -VAAAElDhAZIAAAMAAAACAAAAfwBAAIIAgAABAAAAwQDAH/8crB//L1DhAA4A//8j/wAAyAAQIAEg -4QB+ADwAAAD//7//UGjoR5IAAADwAPAA37//+yAAAAR/9///gAACAP7/////9/9/AAB+GP//8AAQ -ARABIAEgAQAAfkAVFRUVISEhIRAQEBDhAY4AAAD+fwQEAYCAAAAA4P/+ACAICyQA/wD/AEAAQP// -P/8gC5+gIAuf0P8P////wP//IAufYCALoAAf/ywkH/8cWB//LiAf/x4gIAtOoB//Hqgf/xwkAAD/ -/YAPAAAf/ywUIAug8OMAAgDi//8AIAtO4CAI5awAQAAAIEAAAACAAAAggAAA0AAAACALoDAgC6DA -AAAQACADDOwf/zFgH/8tSB//ATAf/y7AIAuhwCALUTAgC1GwIAtSICALoXAgC6EwIAuhkB//LWAg -C1KwAAAoAAAAP/8AAMAAAAQAAOEAMgAf/x5M//AAByALpJAgC6RAH/8BYB//AaAf/wHgH/8boAAA -e2Af/OIACAAAAB//K7Qf/xXU4QL+AOEDvgDhAz4A4QN+AOEB4gDhAJIA4QESAP//8P8AAZwIAAGc -BAABAAX/8AAAAGAAACALpODhAZoE4QGaCOEBmgwgC1pwIAta0B//AmAf/x0MH/8cIB//L0z/8P// -IAMRmB//GiAAAH5MIAtcQOEAigAgC1tAIAtboCALXAAf/xasH/8ycB//LzQf/ysgH/8tFCALXHAg -C1zwIAunECALXKAf/y08IAtdcCALXTAgC6WQIAtd4CALXiAgC15gH/8s7CB//gAgC6gAH/8qIN/A -AAAgC6dgIAunoB//LPz/gAAA///gACALXqAgC17QIAulQCAGfdQgAxGkH/8vJCALXxAf/yxYH/8b -IB//Kswf/x+gIADE4B//uYgf/7jIH/8uzB//upwAABOIAgCCEAIAAhAAACAAAgAAEAAaAAAA+saI -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 -DLviT9/AD6ABEN0w6gDYQA6AALbs2HVAC7gMtOzIdUAOgACh62DYQAu4DLDiT9/AD6ABEGwQFBjo -/iiBf+IeyUAO+A+v7DjvQA6ACFDoCIJADoAAMOwXyEAPWAOF6zjvQAugBvnrANhAD5gAKur/38AL -oAb16hzJQA6AALDq/9/AC6AG8eobyUAOgACw6v/fwAugBu3qGslADogAsOr/38ALoAbp6hnJQA6I -ALDq/9/AC6AG5eoXyUAOiACw6v/fwAugBuHqFslADoAAsOr/38ALoAbd6hHJQA6AALDqBNhAC6AG -2eoQyUAOoAiw6v/fwAugBtXqFclADogAsOoE2kALoAbR6hTJQA6oCLDqBNpAC6AGzeoTyUAOmAiw -6gTaQAugBsnqEslADoAAsOr/38ALoAbF6h/IQA6AALDq/9/AC6AGweoeyEAOgACw6v/fwAugBr3q -HchADrgIsOr/38ALoAa56hzIQA64CLDq/9/AC6AGteobyEAOuAiw6v/fwAugBrHqGshADoAIsOr/ -38ALoAat6hnIQA6IALDq/9/AC6AGqesA2EAPmABq6v/fwAugBqXnqO9ADpgAsOr/38ALoAah5ajv -QA6ICLDq/9/AC6AGneoYyEAOgAiw6v/fwAugBpnqFchADoAIsOr/38ALoAaV6hbIQA6AALDq/9/A -C6AGkRTpEu1FsEAQ4AzhjEQO3SgMKyibFK277UawQBDYDOEvEhnu3epAEEAM5K27D+4o7UewQBDQ -DPEP3Siu3e5KsEAQsAzxrbuNSe/u6kAQuAzxD90ort3uT7BAEKAM8a27jUvv7upAEKgM8Q/dKK7d -7k6wQBCYDPGtu41N7+7qQBCQDPEP3Siu3e8QsUAQ4AzkrbstQhvv7upAEIgM8Q/dKK7d7kmxQBBw -DPGtuy1CGO/u6kAQeAzxD90ort3uTbFAEGAM8a27LUIa7+7qQBBoDPEP3Siu3e5PsUAQUAzxrbst -Qh7v7upAEFgM8Q/dKK7drbvtQLJAEEgM4e7d6kAREAzkBu4ort2tuy5CJi1CIwXuKAfdKK7d7kiy -QBAwDPGtuy1CJ+/u6kAQQAzxD90ort2tu+5KskAQKAzxLUIkD+4oCt0ort2tux3oiy3Rf5YRlxLl -E8hAEHAF3IUU6hDIQAgAAAzqEMhADoAAUKW66wjYQAoAAk/ZoOeo7yBIwABqy1aPROYA2EANAALf -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 -gAHq2jDrSO9AD5gAxe0F2EAOgADh7xCwQAoICLPRDwBsEAbqKO9AD5gAsezT2EALmA7v4qjvQA2A -AeraMOtI70APmADF7QTYQA6AAOTvELBACggIpdEPAGwQBuoo70APmACx7NPYQAuYDuHiqO9ADYAB -6tow60jvQA+YAMXuENhADoAH0+8QsEAKCAiX0Q8AbBAG6ijvQA+YALHs09hAC5gO0+Ko70ANgAHq -2jDrSO9AD5gAxe2D2EAOgADi7xCwQAoICInRDwBsEAbqKO9AD5gAsezT2EALmA7F4qjvQA2AAera -MOtI70APmADF7cLYQA6AAOTvELBACggIe9EPAGwQBuoo70APmACx7NPYQAuYDrfiqO9ADYAB6tow -60jvQA+YAMXtQthADoAA4u8QsEAKCAht0Q8AbBAG6ijvQA+YALHs09hAC5gOqeKo70ANgAHq2jDr -SO9AD5gAxe0S2EAOgADh7xCwQAoICF/RDwBsEAbqKO9AD5gAsezT2EALmA6b4qjvQA2AAeraMOtI -70APmADF7QLYQA6AAOHvELBACggIUdEPAGwQBuoo70APmACx7NPYQAuYDo3iqO9ADYAB6tow60jv -QA+YAMXt5dhADoAA4e8QsEAKCAhDGdGUKJB9wKEKiALondPAD6ABEGwQBmgxB+Ku38APoAEQ6ijv -QA+YALHs09hAC5gOeOj1akANgAJqqEgojQHijbnAEAAMkQkiNiKEXeKo70APoAEQAAAAAAAAAOKo -70APoAEQbBAI2iDrtdhAC5gP5OKo70ANAA56wDDkGO9ADoAF7e0Y70AOgACL0w/rANhAGOAAOKK6 -LKAAfsEX67GQQA0AAuzs0NBAEAgC3euw2EAQWAKipLnioZBADoAAwOOQ0EAPmACh6xCRQAuYDlHa -IOvT2EALmA/K6QDYQA0AB/rAu9MP7BjvQBj4ADstoADpkZBAD5gAueqhkEANAADt7cDQQBAIAszA -u9oQpLzjwNBAEKACsewA2EALmA497RWwQA2AA6riANhADQAAbdEPjxTuAmpADoAMLAL/KK/u73DY -QBAIAy7vLdHADoAAIOPqycAPoAEQAAAAAADirt/AD6ABEGwQBuoo70APmACx7NPYQAuYDicY0hDi -j6vAEAAMkQqSOyKFf+Ko70APoAEQbBAG6ijvQA+YALHs09hAC5gOHOKo70ANgAG6G9B367qzQBAA -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 -sMhACfgP1QClnOfA0EAPoAEQpZ3n0MBAD6ABENEPAAAAAAAAAAAAACADFgAMwAAGIAY6QCADFgQI -wAAMIAY6QCADFgg8wAAQIAY5iCADFgwGwAA4IAY7qCADFhAIwAA8IAY6QCADFhQCwABAIAY7qCAD -FhgIwABEIAY6QCADFhwIQABMIAY60CADFiAIQABQIAY60CADFiQoQABcIAY60CADFigoQABwIAY6 -0CADFiwoQACEIAY60CADFjAoQACYIAY60CADFjQoQACsIAY60CADFjgoQADAIAY60CADFjwoQADU -IAY60CADFkAoQADoIAY60CADFkQQQAD8IAY4oCADFkgQQAEMIAY4oCADFkwQQAEcIAY4oCADFlAQ -QAEsIAY4oCADFlQQQAE8IAY4oCADFlgQQAFMIAY4oCADFlwQQAFcIAY4oCADFmAQQAFsIAY4oCAD -FmQIQAF8IAY60CADFmgIQAGAIAY60CADFmwIQAGEIAY60CADFnAQQAGIIAY60CADFnQQQAGQIAY6 -0CADFngIQAGYIAY60E5vIHNwYWNlIGluIEREUiEKAAAAAAAAAAAAAAAAAAAAaHdfYmNtNTQ4Ml9j -ZmdtZGlbJXVdIHNldHRpbmcgdHlwZSAldQoAAAAAAAAAAAAAcmVtb3ZlIG11bHRpY2FzdCBtYWMg -WyV4OiV4OiV4OiV4OiV4OiV4XSBmcm9tIFRDQU0KAAAAAAAAAAAAAAAAAGlwdjZfam9pbl9ncnA6 -IGlkICV1LCByZWZfY250ICV1CgAAAAAAAAAAAAAAAAAAAGRoY3A2X3RpbWVyX2NiOiByZXNlbmRp -bmcgREhDUDZTT0xJQ0lUIGFnYWluCgAAAGRoY3A2X3RpbWVyX2NiOiBzZW5kaW5nIERIQ1A2UkVR -VUVTVAoAAAAAAAAAAAAAAGRoY3A2X3RpbWVyX2NiOiBzZW5kaW5nIERIQ1A2UkVORVcgcmVxdWVz -dAoAAAAAAGRoY3A2X3RpbWVyX2NiOiBzZW5kaW5nIERIQ1A2UkVCSU5EIHJlcXVlc3QKAAAAAGRo -Y3A2X3RpbWVyX2NiOiBESENQNlJFUExZIHJjdmQsIHN0YXRlICV1CgAAAAAAAGZhaWxlZCB0byBy -ZW5ldy9yZWJpbmQgZGhjcHY2IGFkZHJlc3MKAAAAAAAAAAAAAHR5cGUgJXgsIHhpZCAleCwgdHlw -ZV94aWQgJXgKAAAAaXB2Nl9tdWx0aWNhc3RfcXVlcnlfdGltZXJfY2Igbm9kZV9pZCAlZAoAAAAA -AAAAaXB2Nl9nZW5lcmFsX3F1ZXJ5X3RpbWVyX2NiCgAAAABhZGQgbXVsdGljYXN0IG1hYyBbJXg6 -JXg6JXg6JXg6JXg6JXhdIGluIFRDQU0KAABjaG5ldF9pcHY2X2RhZF9jYjogaGFuZGxlICV1LCBh -ZGRyX2lkICV1LCBhZGRyIHN0YXRlICV1CgAAAAAAAAAAaXB2NiBwcmVmZXJyZWQgYWRkciBbJTA0 -eCAlMDR4ICUwNHggJTA0eF0KAAAAAAAAU3RhcnRpbmcgYWRkciB2YWxpZGl0eSB0aW1lciBmb3Ig -JXUgc2Vjb25kcwoAAAAAVmFsaWRpdHkgZXhwaXJlZCBmb3IgYWRkcl9pZCAldQoAAAAAAAAAAAAA -AAAAAAAAc2VuZGluZyBpcHY2IGVjaG8gcmVwbHkKAAAAAAAAAABjaG5ldF9pcHY2X3JzX291dHB1 -dDogbDJkZXZfZmMgMHgleAoAAAAAAAAAAAAAAABjaG5ldF9pcHY2X25zX291dHB1dDogbDJkZXZf -ZmMgMHgleCwgZmxvd2NfaWQgMHgleCwgdmxhbiBmbGFnIDB4JXgKAAAAAAAAAAAAAAAAAGNobmV0 -X2lwdjZfbmFfb3V0cHV0OiBsMmRldl9mYyAweCV4CgAAAAAAAAAAAAAAAGNobmV0X2lwdjZfbWxk -djJfcmVwb3J0X291dHB1dDogbDJkZXZfZmMgMHgleAoAAGdhdGhlcl90YXNrc190b190eF9saXN0 -OiB0YXNrIGluIHVzZSBbJXVdCgAAAAAAAGdhdGhlcl90YXNrc190b190eF9saXN0OiBpZHggWyV1 -XSwgdGFzayBmaWQgWzB4JXhdLCB0YXNrIHN0YXRlIFsweCV4XSwgdGFzayBjb25uIFsweCV4XSwg -dGFzayBmZmxhZ3MgWzB4JXhdLCBjb25uIGZpZCBbMHgleF0sIGRkcCBbJWRdCgAAAAAAAAAAAGdh -dGhlcl90YXNrc190b190eF9saXN0OiB0YXNrIFsweCV4XSwgc3RhdGUgWzB4JXhdIG9uIGNvbm4g -WzB4JXhdIG5vdCB2YWxpZCB0byBnYXRoZXIsIHNraXBwaW5nCgAAAAAAAAAAAAAAAAAAAABnYXRo -ZXJfdGFza3NfdG9fdHhfbGlzdDogdGFzayBbMHgleF0sIHN0aWxsIHF1ZXVlZCBvbiB0eCBwZW5k -aW5nIGxpc3QuIFJlbW92aW5nIGl0LgoAAAAAAAAAAAAAAABnYXRoZXJfdGFza3NfdG9fdHhfbGlz -dDogY29ubl9mYy0+Zmxvd2NfZmxhZ3MgWzB4JXhdLCBsaXN0X2VtcHR5IFsweCV4XSwgYWRkX3Rh -c2tfY291bnQgWzB4JXhdCgB0b190eF9saXN0OiBubyB0YXNrIHRvIGNsb3NlIGZvciBjb25uIFsw -eCV4XSwgYmFpbGluZyB0byByZWNvdmVyeSBzdGF0ZSBbMHgleF0KAHNldF9kaWdlc3Q6IHVwbHN1 -Ym1vZGU6JXgKAAAAAAAAYXV0aGVudGljYXRlX3RhcmdldDogS0VZX0NIQVBfUkVTUCAtIFsweCV4 -JXgleCV4JXgleCV4JXhdCgAAAAAAAGF1dGhlbnRpY2F0ZV90YXJnZXQ6IEtFWV9DSEFQX1JFU1Ag -LSBbMHgleCV4JXgleCV4JXgleCV4XQoAAAAAAABhdXRoZW50aWNhdGVfdGFyZ2V0OiBJbmNvcnJl -Y3QgcGFzc3dvcmQKAAAAAAAAAABDSEFQX0M6IGRpZ2VzdCBleHBhbnNpb24gZXJyb3IKAENIQVBf -TjogVGFyZ2V0IHVzZXJpZCBtaXNtYXRjaAoAQ0hBUF9SOiBkaWdlc3QgZXhwYW5zaW9uIGVycm9y -CgBpU0NTSSBTZWMtcGFyYW1zIHJlY2VpdmVkIGhhdmUgZXJyb3JzISEKAAAAAAAAAABUYXJnZXQg -bW92ZWQgdGVtcC4gY29ubiAleCwgc2VzcyAleAoAAAAAAAAAAAAAAABMb2dpbiBGYWlsZWQhIS4g -Y29ubl9mYyBbMHgleF0sIHNlc3NfZmMgWzB4JXhdLCBzdGF0dXNfY2xhc3MgWzB4JXhdCgAAAAAA -AAAAAAAAAFByb3RvY29sIEVycm9yIGNiaXQgJWQgdGJpdCAlZCBjc2cgJWQgbnNnICVkCgAAAHJl -Y3Zfbm9waW46IGN0cmwgdGFzayBhbHJlYWR5IHBlbmRpbmcKAAAAAAAAAAAAAG9mbGRfcnhfZGF0 -YTogYWllZSwgaXNjc2kgY29ubiBbMHgleF0gZm9yIHNlc3MgWzB4JXhdLCB0eXBlIFsweCV4XSB0 -cmFuc2l0ZWQgaW4gdG9lIG1vZGUuIEtpY2tpbmcgcmVjb3ZlcnkgCgAAAABvZmxkX3J4X2RhdGE6 -IGNvbm4gdGlkIFsweCV4XSwgcnhfZGF0YS0+c2VxIFsweCV4XSwgcnhfZGF0YS0+bGVuIFsweCV4 -XSwgcnhfZGF0YS0+c3RhdHVzIFsweCV4XQoAAAAAAAAAAAAAAAAAAAAAb2ZsZF9yeF9kYXRhOiBj -c2sgeyBpZCBbMHgleF0sIGNzb2NrX29mZnNldCBbMHgleF0sIGRsZW4gWzB4JXhdIH0KAAAAAAAA -AAAAAAAAAABhY3RfZXN0OiB0Y2JfZmMgWzB4JXhdLCBmbG93Y19pY29ubl9mbGFncyBbMHgleF0K -AAAAAAAAAAAAAAAAAAAAYWN0X2VzdGFiOiB0Y2JfZmMtPmZsb3djX2J1ZiBbMHgleF0sIHRjYl9m -Yy0+Zmxvd2NfdHlwZSBbMHgleF0gdGNiX2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0sIG5wYWdlcyBb -MHgleF0sIGZsb3djX3RwX3NuZF9tYXggWzB4JXhdCgAAAAAAAAAAAAAAAAAAYWN0X2VzdGFiOiBh -dGlkIFsweCV4XSwgdGlkIFsweCV4XSwgb3AgWzB4JXhdLCByY3ZfaXNuIFsweCV4XSwgc25kX2lz -biBbMHgleF0sIGNzb2NrLT5mbG93Y19zdGF0ZSBbMHgleF0sIHRjcF9vcHQgWzB4JXhdLCB0Y2Jf -ZmMtPmZsb3djX2lkIFsweCV4XSAKAAAAAAAAAAAAAAAAAGNza19mYy0+Zmxvd2NfY3NvY2tfY29v -a2llIFsweCV4XSAKAAAAAAAAAAAAAAAAAG5ldF9sMmRldl9maW5kX2J5X2FkZHI2OiBsMmRldl9m -Yy0+Zmxvd2NfaWQgWzB4JXhdLCBsMmRjLT5scG9ydCBbJXVdLCBsMmRfZmMtPmZsb3djX2lkIFsw -eCV4XSwgYWRkciBbJTA0eDolMDR4OiUwNHg6JTA0eF0KAAAAAAAAY2huZXRfcXVldWVfeG1pdDog -ZmMtPmZsb3djX2lkIFsweCV4XSwgYnVmX2xlbiBbMHgleF0sIGJ1ZmZlcmVkIFsweCV4XSwgZmlm -by5udW1fYnl0ZXMgWyUweF0KAAAAbmV0aWZfZG9fZGhjcHY2OiB3ci0+cGFyYW0udmxhbmlkIFsl -dV0sIGwyZGV2X2ZjLT5mbG93Y19uZXRfbDJkZXZfdmxhbmRldiBbMHgleF0KAAAAAAAAAAAAAAAA -AAAAbmV0aWZfZG9fZGhjcHY2OiBpcHY2IG5vdCBlbmFibGVkCgAAAAAAAAAAAAAAAAAAZGhjcCBy -ZXNwIHRvIGRyaXZlcgoAAAAAAAAAAAAAAABsM2luNl9kZXZfY29uZmlnOiB3ci0+cGFyYW0udmxh -bmlkIFsldV0sIGwyZGV2X2ZjLT5mbG93Y19uZXRfbDJkZXZfdmxhbmRldiBbMHgleF0KAAAAAAAA -AAAAAAAAAABsM2luNl9kZXZfY29uZmlnOiBpcHY2IG5vdCBlbmFibGVkCgAAAAAAAAAAAAAAAABu -ZXRfbDNpbjZfZGV2X2NvbmZpZzogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgYWRkcmVzcyBh -bHJlYWR5IHVzZWQgYnkgcG9ydCAlZCwgYWRkcl9pZCAlZAoAAABuZXRfbDNpbjZfZGV2X2NvbmZp -ZzogIGFkZHIgWzB4JTA0eCUwNHglMDR4JTA0eF0sIHJlZl9jbnQgWzB4JXhdIGluIHVzZQoAAAAA -AAAAAGwzaW40X2Rldl9jb25maWc6IHdyLT5wYXJhbS52bGFuaWQgWyV1XSwgbDJkZXZfZmMtPmZs -b3djX25ldF9sMmRldl92bGFuZGV2IFsweCV4XQoAAAAAAAAAAAAAAAAAAG5ldF9sM2luNF9kZXZf -Y29uZmlnOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBhZGRyZXNzIGFscmVhZHkgdXNlZCBi -eSBwb3J0ICVkCgAAAAAAAAAAAAAAAAAAAG5ldF9sM2luNF9kZXZfY29uZmlnOiAgYWRkciBbMHgl -eF0sIG1hc2sgWzB4JXhdLCBndyBbMHgleF0sIHJlZl9jbnQgWzB4JXhdIGluIHVzZQoAAAAAAAAA -AAAAAAAAAGwyZGV2X2ZjIFsweCV4IF0gRmFpbGVkIHRvIHN0YXJ0IHRpbWVyIGZvciBpcHY0IGRh -ZAoAAAAAAAAAAAAAAAB3cmhfY2huZXRfaWZjb25mOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhd -LCBsMmRldl9mYy0+Zmxvd2NfdHlwZSBbJTB4XSwgaWZjb25mX3dyLT5zdWJvcCBbMHgleF0KAAAA -AAAAAAAAAAAAAAAAd3JoX2NobmV0X2lmY29uZjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwg -dW5rbm93biBzdWJvcCBbMHgleF0KAAAAAAAAAAAAAAAAAAB3cmhfY2huZXRfaWZjb25mOiBsMmRl -dl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCByYyAlZAoAAAAAAAAAAAAAAAAAbmV0aWZfaXBfY29uZmxp -Y3RfdGltZXJfY2I6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIGV4cGVjdGluZyB0aW1lciBo -YW5kbGUgWyVkXSwgYnV0IGdvdCBoYW5kbGUgWyVkXSBleHBpcnkKAG5ldGlmX2lwX2NvbmZsaWN0 -X3RpbWVyX2NiOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBpbmRldmN0eHQtPnN0YXRlIFsl -ZF0sIGluZGV2Y3R4dC0+cmV0cnlfY250IFslZF0KAAAAAAAAAABuZXRpZl9pcF9jb25mbGljdF90 -aW1lcl9jYjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgaW5kZXZjdHh0IFsweCV4XSwgaW4g -ZnJlZSBzdGF0ZQoAAAAAAAAAAABjbWRoX2NobmV0X2lmYWNlOiBmYyBbMHgleF0sIGZjLT5mbG93 -Y19pZCBbMHgleF0sIGZjLT5mbG93Y190eXBlIFsweCV4XSwgcCBbMHgleF0sIGxlbjE2IFsldV0s -IGxvYyBbMHgleF0KAAAAAAAAY21kaF9jaG5ldF9pZmFjZTpsMmRldl9mYyBbMHgleF0sIGwyZGV2 -X2ZjLT5mbG93Y19pZCBbMHgleF0sIGwyZGV2LT5mbG93Y190eXBlIFsldV0sIGwyZGV2X2ZjLT5m -bG93Y19uZXRfbDJkZXZfZmxhZ3MgWyUweF0KAAAAAABjbWRoX2NobmV0X2lmYWNlOiByMlswXTol -dSByMlsxXToldSwgc3Vib3A6MHgleAoAAAAAAAAAAAAAAAAAAAAAY21kaF9jaG5ldF9pZmFjZTog -bDJkZXZfZmMtPmZsb3djX25ldF9sMmRldl9mbGFncyBjaGFuZ2VkIGZyb20gWyUweF0gdG8gWyUw -eF0sIHJjIFslZF0KAAAAAAAAAAAAY2huZXRfbDJkZXZfdXBfbWJfY2I6IHJjIFslZF0sIHBvcnQg -WyV1XSwgc3RhdGUgWyV1XSwgY29va2llIFsweCV4XQoAAAAAAAAAAAAAAABkaGNwX3Byb2Nlc3Nf -Y2I6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIGRoY3R4dC0+c3RhdGUgWyUweF0sIGRoY3R4 -dC0+cnRyeV9jbnQgWyV1XQoAAAAAAAAAAABkaGNwX3RpbWVyX2NiOiBESENQRElTQ09WRVIgc2Vu -dCwgYnV0IG5vIHJlcGx5IGZyb20gYW55IHBvc3NpYmxlIHNlcnZlciBvbiB0aGUgbmV0d29yay4g -UmV0cnlpbmcgYWdhaW4KAAAAAAAAAAAAZGhjcF90aW1lcl9jYjogbDJkZXZfZmMtPmZsb3djX2lk -IFsweCV4XSwgc2VuZGluZyBESENQRElTQ09WRVIgZm9yIGRoY3R4dCBbMHgleF0gb24gcGlkIFsl -ZF0KAAAAZGhjcF90aW1lcl9jYjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgREhDUE9GRkVS -IHJlY2VpdmVkIGZvciBkaGN0eHQgWyV4XSBwaWQgWyVkXQoAAAAAAAAAAAAAZGhjcF90aW1lcl9j -YjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgIERIQ1BBQ0sgcmVjZWl2ZWQgZm9yIGRoY3R4 -dCBbJXhdLCBwaWQgWyVkXQoAAAAAAAAAAAAAZGhjcF90aW1lcl9jYjogbDJkZXZfZmMtPmZsb3dj -X2lkIFsweCV4XSwgZGhjdHh0LT5pcGFkZHIgWzB4JXhdCgAAAAAAAAAAAAAAAAAAAABkaGNwX3Rp -bWVyX2NiOiBzdGFydGluZyB0aW1lciBmb3IgbGVhc2UgWyV1XSBzZWNvbmRzCgAAAAAAAAAAAAAA -ZGhjcF90aW1lcl9jYjogbGVhc2UgdGltZSBvZiBbJXVdIHNlY29uZHMgZXhwaXJlZCwgc2VuZGlu -ZyByZW5ldyByZXF1ZXN0CgAAAAAAAABkaGNwX3RpbWVyX2NiOiBsMmRldl9mYy0+Zmxvd2NfaWQg -WzB4JXhdLCBubyByZXBseSBmcm9tIGRoY3Agc2VydmVyLCB0aW1pbmcgb3V0CgAAAAAAAAAAAAAA -AAAAAABhdXRoX25lZ29fc2VjdXJpdHk6IHNlbmRfZmxhZyBbMHgleF0sIGF1dGhfcG9saWN5IFsw -eCV4XQoAAAAAAAAAYXV0aF9uZWdvX3NlY3VyaXR5OiBLRVlfQ0hBUF9SRVNQIC0gaGFzaFsweCV4 -JXgleCV4JXgleCV4JXhdCgAAAGF1dGhfbmVnb19zZWN1cml0eTogS0VZX0NIQVBfUkVTUCAtIGhh -c2hbMHgleCV4JXgleCV4JXgleCV4XQoAAABhdXRoX25lZ29fc2VjdXJpdHk6IEtFWV9DSEFQX1JF -U1AgLSBlcnJvciBlbmNvZGluZyB0byBoZXgKAAAAAAAAYXV0aF9uZWdvX3NlY3VyaXR5OiBLRVlf -Q0hBUF9SRVNQIC0gZWxlbiBbMHgleF0KAAAAAAAAAAAAAAAAAAAAAGF1dGhfbmVnb19zZWN1cml0 -eTogS0VZX0NIQVBfQ0hBTCAtIGVycm9yIGVuY29kaW5nIHRvIGhleAoAAAAAAABhdXRoX25lZ29f -c2VjdXJpdHk6IEtFWV9DSEFQX0NIQUwgLSBlbGVuIFsweCV4XQoAAAAAAAAAAAAAAAAAAAAAbG9n -b3V0X3RpbWVkb3V0OiBsb2dvdXQgcmVxdWVzdCB0aW1lZG91dCwgcG9zc2libGUgbmV0d29yayBp -c3N1ZXMuIEZvcmNlZnVsbHkgYnJlYWtpbmcgcGF0aCBmb3Igc2VzcyBbMHgleF0KAAAAAHBpbmdf -dGFyZ2V0OiBwaW5nIHRpbWVvdXQsIGtpY2tpbmcgcmVjb3ZlcnkgZm9yIHNlc3MgWzB4JXhdCgAA -AABjc29ja19mYWlsZWQ6IGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2tfZmMtPmZsb3djX3N0 -YXRlIFsweCV4XSwgc2Vzc19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBzZXNzX2ZjLT5mbG93Y19zdGF0 -ZSBbMHgleF0sIGV2dCBbMHgleF0KAAAAAAAAAAAAAABjaG5ldF9maW5kX2lwNl9sMnRfZW50cnk6 -IGZpbmQgcHJlZml4IG1hdGNoIFslMDR4ICUwNHggJTA0eCAlMDR4XQoAAAAAAAAAAAAAAAAAAE5v -IHJvdXRlciBjb25maWd1cmVkLCBsMmRldl9mYy0+Zmxvd2NfaWQgMHgleAoAAApSb3V0ZXIgbGlm -ZSAldSBleHBpcmVkLiBkZWxldGluZyByb3V0ZXIgWyUwNHggJTA0eCAlMDR4ICUwNHhdCgBVc2lu -ZyByb3V0ZXIgWyUwNHggJTA0eCAlMDR4ICUwNHhdIHRvIHJlYWNoIFslMDR4ICUwNHggJTA0eCAl -MDR4XQoAAAAAAAAAAAAAAAAAAGwydGVudCBbJTB4XSwgbDJ0ZW50LT5pZHggWyVkXQoAcmMgWyVk -XSwgY3NrX2ZjIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0KAAAAAAAAAAAAAAAAAAAA -AGNzb2NrX2FsbG9jOiBzcmNfYWRkcjoweCV4LCBkc3RfYWRkcjoweCV4CgAAAAAAAGNvbm5lY3Rp -b24gb3ZlciBpcHY2LCBsMmRldiBmbG93Y19pZCAweCV4CgAAAAAAAGNza19hbGs6IEludmFsaWQg -bDJkZXY6MHgleAoAAAAAY3NrX2FsazogbmV4dDoldSwgaWR4OiV1LCB1c2VkOiV1LCBzcG9ydDol -dQoAAAAAY3NvY2tfYWxsb2M6IGNzb2NrX3NyY19hZGRyOjB4JXgsIGNzb2NrX2RzdF9hZGRyOjB4 -JXgKAAAAAAAAAAAAAGNzb2NrX2FsbG9jOiB0eF9jaCBbMHgleF0sIGxwb3J0IFsweCV4XSwgY29v -a2llIFslMDh4XQoAAAAAAAAAAABjc29ja19hbGxvYzogYXZhaWxhYmxlIFsldV0sIG5jc29jayBb -JXVdLCBwb3M6YXRpZCBbMHgleF0sIGNza19mYyBbMHgleF0sIGNza19mYy0+Zmxvd2NfaWQgWzB4 -JXhdLCBzcG9ydCBbJXVdCgAAcmVjb3ZlcnlfdGltZW91dDogc2VzcyBpZCBbMHgleF0gc3RhdGUg -WzB4JXhdLCByY291bnQgWyVkXSwgZmxhZ3MgWzB4JXhdCgAAAAAAAAByZWNvdmVyeV90aW1lb3V0 -OiBzZXNzIGlkIFsweCV4XSBpbiBsb2dvdXQsIGFib3J0IHRoZSBjb25uZWN0aW9uCgAAAAAAAAAA -AAAAAAAAAHJlY292ZXJ5X3RpbWVvdXQ6IHNlc3NfZmMtPmZsb3djX2ZvaXNjc2lfc2Vzc19mbGFn -cyBbMHgleF0sIGNvbm5lY3Rpb24gcmVxdWVzdCBwZW5kaW5nLCBiYWlsaW5nIG91dAoAAAAAAAAA -AAAAAABmb2lzY3NpOiBSZWNvdmVyeSB0aW1lZCBvdXQgYWZ0ZXIgWyV1XSByZXRyeSwgYmFpbGlu -ZyBvdXQKAAAAAAAAVENQIGNvbm4gZXN0YWJsaXNobWVudCBmYWlsZWQgJWQKAAAAAAAAAAAAAAAA -AAAAZGlzY292ZXJ5X2RhdGE6IHNlc3MgeyBpZCBbMHgleF0sIGZsYWdzIFsweCV4XSwgYnVmZmVy -ZWQgWyV1XS4gfQoAAAAAAAAAAAAAAAAAAABkaXNjb3ZlcnlfZGF0YTogc2VzcyB7IGlkIFsweCV4 -XSB9LCB1bHB0eGNoIFsldV0gbm8gY3JlZGl0cyBhdmFpbGFibGUsIHJlc2NoZWR1bGluZyByZXF1 -ZXN0LgoAAABERFAgZXJyb3IgWzB4JXhdLCBhYm9ydGluZyBjb25ubiBbMHgleF0KAAAAAAAAAABy -eF9kYXRhX2RkcDogUmVzcG9uY2UgcmVjaWV2ZWQgZm9yIHRhc2sgWzB4JXhdIHdoaWxlIGludmFs -aWQgdGFzayBvciBjb25uZWN0aW9uIHN0YXRlLiB0YXNrIHN0YXRlIFsweCV4XSwgY29ubiBzdGF0 -ZSBbMHgleF0sIGNvbm4gZmxhZ3MgWzB4JXhdCgBpaGRyOiBSZXNwb25jZSByZWNpZXZlZCBmb3Ig -dGFzayBbMHgleF0gd2hpbGUgaW52YWxpZCB0YXNrIG9yIGNvbm5lY3Rpb24gc3RhdGUuIHRhc2sg -c3RhdGUgWzB4JXhdLCBjb25uIHN0YXRlIFsweCV4XSwgY29ubiBmbGFncyBbMHgleF0KAAAAAAAA -AABpaGRyOiBJbnZhbGlkIHRhc2sgc3RhdGUgMHgleCBmb3IgdGFzayAweCV4LCBpdHQgWzB4JXhd -LCBvcGMgWzB4JXhdCgAAAAAAAAAAAAAAAEludmFsaWQgb3Bjb2RlIDB4JXggaW4gY3RybCBwYXRo -CgAAAAAAAAAAAAAAAAAAAEREUCBlcnJvciBbMHgleF0sIGFib3J0aW5nIGNvbm5uIFsweCV4XQoA -AAAAAAAAAGlzY3NpX2NtcDogb3BjOjB4JXgsIGluIGRhdGEgcGF0aAoAAAAAAAAAAAAAAAAAAGlz -Y3NpX2NtcDogUmVzcG9uY2UgcmVjaWV2ZWQgZm9yIHRhc2sgWzB4JXhdIHdoaWxlIGludmFsaWQg -dGFzayBvciBjb25uZWN0aW9uIHN0YXRlLiB0YXNrIHN0YXRlIFsweCV4XSwgY29ubiBzdGF0ZSBb -MHgleF0sIGNvbm4gZmxhZ3MgWzB4JXhdCgAAAGlzY3NpX2NtcDogSW52YWxpZCB0YXNrIHN0YXRl -IDB4JXggZm9yIHRhc2sgMHgleCwgaXR0IFsweCV4XSwgb3BjIFsweCV4XQoAAAAAAAAAaXNjc2lf -Y21wOiBvcGM6MHgleCwgaW4gY3RybCBwYXRoCgAAAAAAAAAAAAAAAAAAaWRhdGE6IHRpZDoweCV4 -LCBvcDoweCV4LCBsZW46MHgleCwgc2VxOjB4JXgsIHN0YXR1czoweCV4LgoAAAAAAHByb2Nlc3Nf -dG1mX3Jlc3BvbnNlOiBidWZmZXJlZCBbMHgleF0sIGlzdGFza19mYy0+Zmxvd2NfYnVmLT5zY2hl -ZF9ub2RlLm5leHQgWzB4JXhdLCBpc3Rhc2tfZmMgWzB4JXhdLCBpc3Rhc2tfZmMtPmZsb3djX2lk -IFsweCV4XQoAAAAAAAAAAAAAAAAAAHByb2Nlc3NfdG1mX3Jlc3BvbnNlOiB3ciBvcCBbMHgleF0s -IHRtZiBvcCBbMHgleF0KAAAAAAAAAAAAAAAAAAB0bWZfcmVzcDogZmxvd2M6MHgleCwgaWQ6MHgl -eCwgc3RhdGU6MHgleCwgeWllbGQ6MHgleAoAAAAAAAAAAAAAdG1mX3Jlc3A6IHRfdGFzazoweCV4 -IGZyZWVkLgoAAABzY3NpX2NtZF9yZXNwOiBmbG93YzoweCV4LCBpZDoweCV4LCBzdGF0ZToweCV4 -LCB5aWVsZDoweCV4CgAAAAAAZGF0YV9pbl9yZXNwOiBmbG93YzoweCV4LCBpZDoweCV4LCBzdGF0 -ZToweCV4LCB5aWVsZDoweCV4CgAAAAAAAHJldHVybl9wZW5kaW5nX3Rhc2s6IGNvb2tpZSBbMHgl -MDh4XSwgWzB4JTA4eF0KAHJldHVybl9wZW5kaW5nX3Rhc2s6IGRlbGF5IHByb2Nlc3NpbmcsIGNv -bm4gZmxhZ3MgWzB4JXhdCgAAAAAAAAByZXR1cm5fcGVuZGluZ190YXNrOiBEb25lIHNlbmRpbmcg -dGFzayBlcnJvciB0byBob3N0LCB1bHB0eGxlbjE2IFsldV0KAAAAAAAAAAAAAHJldHVybl9wZW5k -aW5nX3Rhc2s6IGRlcXVldWUgdGFzayBbMHgleF0sIHN0YXRlIFsweCV4XSBmcm9tIHR4X2xpc3QK -AAAAAAAAAAAAAAAAcmV0dXJuX3BlbmRpbmdfdGFzazogYWxsIHRhc2tzIHJldHVybmVkLCByZWNv -dmVyeSBzdGF0ZSB0cmFucyB0byBbMHgleF0KAAAAAAAAAABjbGVhcl9kZHBfbWFwOiBpc3Rhc2tf -ZmMgWzB4JXhdLCBpc3Rhc2tfZmMtPmZsb3djX2lkIFsweCV4XSBidWZmZXJlZCAldQoAAAAAAAAA -AGNsZWFyX2RkcF9tYXA6IGlzdGFza19mYy0+Zmxvd2NfaXRhc2tfbnBwb2QgJXUsIG5wcG9kICV1 -LCBwcGRhZGRyIFsweCV4XQoAAAAAAAAAY2xlYXJfZGRwX21hcDogYWxsIHJldHVybmVkIHRhc2tz -IGRkcCBjbGVhcmVkLCByZWNvdmVyeSBzdGF0ZSB0cmFucyB0byBbMHgleF0KAAB3cmhfZm9pc2Nz -aV9ub2RlOiBub2RlX3dyLT5mbG93aWRfbGVuMTYgMiBbJXhdCgB3cmhfZm9pc2NzaV9jaGFwOiBp -ZF9sZW4gWyV4XSwgc2VjX2xlbiBbJXhdCgAAAAB3cmhfZm9pc2NzaV9jaGFwOiB0Z3RfaWRfbGVu -IFsleF0sIHRndF9zZWNfbGVuIFsleF0KAAAAAAAAAAAAAAAAc2Vzc2lvbl9ibG9jazogc2Vzc19m -Yy0+Zmxvd2NfaWQgWzB4JXhdLCBzZXNzX2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0sIGNvbm5fZmMt -PmZsb3djX2lkIFsweCV4XSwgY29ubl9mYy0+Zmxvd2Nfc3RhdGUgWzB4JXhdLCBjc2tfZmMtPmZs -b3djX2lkIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0KAAAAAAAAAAAAAAAAAAAA -c2Vzc2lvbl91bmJsb2NrOiBzZXNzX2ZjLT5mbG93Y19pZCBbMHgleF0sIHNlc3NfZmMtPmZsb3dj -X3N0YXRlIFsweCV4XSwgY29ubl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjb25uX2ZjLT5mbG93Y19z -dGF0ZSBbMHgleF0sIGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2tfZmMtPmZsb3djX3N0YXRl -IFsweCV4XQoAAAAAAAAAAAAAAAAAc3RhcnRfbG9nb3V0OiBTZXNzLWlkIFsweCV4XSBhbHJlYWR5 -IGxvZ2dpbiBvdXQuCgAAAAAAAAAAAAAAAAAAAHBlZXJfY29uOiBjc2tfZmMgPT4gZmxvd2lkIFsw -eCV4XSwgZmxvd2NfYnVmIFsweCV4XQoAAAAAAAAAAAAAAABhbGxvY19zZXNzOiBsb2dpbl9yZXRy -eSBbJWRdLCByZWNvdl90aW1lb3V0IFslZF0KAAAAAAAAAAAAAAAAAAAAZm9pc2NzaV9jdHJsOiBz -dWJvcCBbMHgleF0sIHNlc3NfdHlwZV90b19lcmwgWzB4JXhdLCBzZXNzX3R5cGUgWzB4JXhdCgAA -AAAAAAAAAABmb2lzY3NpX2N0cmw6IHJlY2VpdmVkIGJsb2NrZWQgZnJvbSBkcml2ZXIsIHRyaWdn -ZXJpbmcgcmV0dXJuIHRhc2tzIG5vdy4KAAAAAAAAAFdBVENIRE9HX2Rpc3BhdGNoIGNhc2UgdG8g -YXZvaWQ6IENvdW50ZXJfd2F0Y2hkb2cgJXUgQ291bnRlcl9zY2hlZCAldSAKAAAAAAAAAAAAV0FU -Q0hET0c6IGRldmljZSBzaHV0ZG93bgoAAAAAAABXQVRDSERPRzogcG9ydFsldV0gcGF1c2Ugd2F0 -Y2hkb2cgdGltZW91dAoAAAAAAABXQVRDSERPRzogYnlwYXNzIHRpbWVvdXQKAAAAAAAAAFdBVENI -RE9HOiBGTFIgLSBub3QgaW1wbGVtZW50ZWQgeWV0CgAAAAAAAAAAAAAAAFdBVENIRE9HOiB0ZW1w -ZXJhdHVyZSBvZiAlZEMgZXhjZWVkcyB0aHJlc2hvbGQgb2YgJWRDCgAAAAAAAAAAAABmaWx0ZXI6 -IHBvcmdyYW1taW5nIHRpZCAldSAobGUgdGNhbSBpbmRleCAldSkuLi4KAAAAAAAAAAAAAAAAAAAA -ZmlsdGVyOiByZXF1ZXN0aW5nIGNvbXBsZXRpb24uLi4KAAAAAAAAAAAAAAAAAAAAY2huZXRfaXB2 -Nl9saW5rX2NoYW5nZV9ub3RpZnk6IGwyZGV2X2ZjIFsweCV4XSwgc3RhdHVzICV1CgAAAAAAAGwy -ZGV2X3NlbmRfcG9ydF9ldmVudDogd3IgWzB4JXhdIHBlbmRpbmcgb24gcG9ydCBbJWRdLCBjdXJy -ZW50IHRyeSBbJWRdCgAAAAAAAAAAaHdfY2ltX3RzY2hfY2hfY2xfcmF0ZV9tYXhfcmVzb2x1dGlv -blsldS8ldV06IGNhcHBlZCBkZWZpY2l0X2luY3IgZnJvbSByZXF1aXJlZCAldSB0byAldTsgcmF0 -ZSAldSAoZWZmICV1KSBkZWZpY2l0X21heCAldQoAAAAAAABDYW5ub3QgZ2V0IGNsYXNzIFsldS8l -dV0gcmF0ZS9wZXJjZW50ICV1LyV1IHdpdGggY29uZmlndXJlZCBncmFudWxhcml0aWVzLiBDaGVj -ayBjb25maWcgZmlsZQoAAABkY2J4X2llZWVfY21kaFsldV0gd3JpdGUgb25seSBwZXJtaXR0ZWQg -b24gbG9jYWwgY29uZgoAAAAAAAAAAAAAZGNieF9pZWVlX2NtZGhbJXVdIGNhbm5vdCB3cml0ZSAl -dSBhcHBzIChNQVg6ICV1KQoAAAAAAAAAAAAAAAAAAGRjYnhfaWVlZV9jbWRoWyV1XSByZXF1ZXN0 -aW5nIERDQl9JRUVFX0NNRAoAAAAAAGRjYnhfaWVlZV9jbWRoWyV1XSB1bmtub3duIGZlYXR1cmUg -d3JpdGU6ICV1CgAAAGRjYnhfaWVlZV9jbWRoWyV1XSB1bmtub3duIGZlYXR1cmUgcmVhZDogJXUK -AAAAAGNhbm5vdCBhbGxvY2F0ZSBvZmZsb2FkZWQgZmlsdGVyIGNvbm5lY3Rpb24KAAAAAGNhbm5v -dCBhbGxvY2F0ZSBvZmZsb2FkZWQgZmlsdGVyIElQdjYgY29ubmVjdGlvbgoAAAAAAAAAAAAAAAAA -AABkaXNwYXRjaF9kZWZlcnJlZF9jbGFzc19jbGFzc19zaGFwaW5nWyV1OiV1XTogbGlzdF9lbXB0 -eQoAAAAAAAAAbG9vcGJhY2sgYnVmZmVyIGdyb3VwWyV1XSBpcyBkaXNhYmxlZAoAAAAAAAAAAAAA -aW52YWxpZCBidWZmZXIgZ3JvdXBbJXVdIGNvbmZpZ3VyYXRpb246IG10dSAldSBsd20gJXUgaHdt -ICV1IGR3bSAldQoAAAAAAAAAAAAAAABmYyAldSB2ZiAldSBnb3QgaXZmPTB4JXgscmFuZ2U6ICUj -eC0lI3ggKCV1LyV1IHVzZWQpCgAAAAAAAAAAAAAAVkkgJXUgY2Fubm90IGdldCBSU1Mgc2xpY2U6 -IE5vIG1vcmUgc2xpY2VzIGF2YWlsYWJsZSAodXNlZCAldS8ldSkKAAAAAAAAAAAAAAAAAABwZm4g -JXUgdmZuICV1IHdpdGggcG9ydCBtYXNrIDB4JXggY2Fubm90IGFjY2VzcyBwb3J0ICV1LCByZXQg -JWQKAAAAAAAAAAAAAAAAAAAAAHBmbiAldSB2Zm4gJXUgY291bGQgbm90IGFsbG9jYXRlIHZpaWQs -IHJldCAlZAoAAHBmbiAldSB2Zm4gJXUgY291bGQgbWFwIHZpaWQgIDB4JXggdG8gZmxvd2MsIHJl -dCAlZAoAAAAAAAAAAAAAAABwZm4gJXUgdmZuICV1IGNvdWxkIG5vdCBhbGxvY2F0ZSB1d2lyZSBm -dW5jICVkIG1hYyBhZGRyLCByZXQgJWQKAAAAAAAAAAAAAAAAAAAAAG1paV9pbml0WyV1XTogYWNh -cHMgMHgleAoAAAAAAAAAbWlpX2ZvcmNlX3NwZWVkWyV1XTogcmNhcHMgMHgleAoAAAAAAAAAAAAA -AAAAAAAAbWlpX3Bkb3duWyV1XTogcG93ZXJkb3duIGVuICV1CgBwb3J0X2NtZF9oYW5kbGVyOiB1 -bmtub3duIHUuZGNiLnR5cGUgMHgleAoAAAAAAABwb3J0WyV1OjB4JTAyeDoweCUwMnhdOiB1bmtu -b3duIGFjdGlvbiAweCV4CgAAAABwb3J0WyV1OjB4JTAyeDoweCUwMnhdOiB1bmtub3duIHJlYWQg -YWN0aW9uIDB4JXgKAAAAAAAAAAAAAAAAAAAAY3BsX2Vycl9ub3RpZnk6IHRpZCAldSBjcGwgMHgl -MDh4JTA4eAoAAAAAAAAAAAAAY3BsX2Vycl9ub3RpZnk6IHRpZCAldSBjcGwgMHglMDh4JTA4eCAw -eCUwOHglMDh4CgAAAAAAAAAAAAAAAAAAAGNwbF9lcnJfbm90aWZ5OiB0aWQgJXUgbGVuICV1CgAA -c2NzaV9hYm9ydDogRW50ZXJpbmcgQWJvcnRfdGFzaywgYnVmZmVyZWQgWyV1XQoAc2NzaV9hYm9y -dDogcmMgWzB4JXhdIHJlZiB0YXNrIG5vdCBvdXRzdGFuZGluZwoAc2NzaV9hYm9ydDogaWRhdGEt -Pm9wIFsweCV4XSwgZmxhZ3MgWzB4JXhdLCBmdW5jIFsweCV4XSwgbHVuX2lkeCBbMHgleF0KAAAA -AAAAAABzY3NpX2Fib3J0OiB3ci0+aXFpZCBbMHgleF0sIGlzdGFza19mYy0+Zmxvd2Nfc2dlX2lx -aWQgWzB4JXhdLCBpc3Rhc2tfZmMgdGFzayBmbGFncyBbMHgleF0KAAAAAABzY3NpX2FicnQ6dGFz -ayBmbG93Y1sweCV4XSwgdG1mX2xpc3RfZW1wdHk6CgAAAABzY3NpX2Fib3J0OiBjb25uIFsweCV4 -XSwgY21kc24gWzB4JXhdLCBzZW50X2NtZHNuIFsweCV4XSwgbWF4X2NtZHNuIFsweCV4XSwgaXR0 -IFsweCV4XQoAAAAAAAAAAABzY3NpX2x1cjogRW50ZXJpbmcgTFVSIGhhbmRsZXIsIGJ1ZmZlcmVk -IFsldV0KAABzY3NpX2x1cjogaWRhdGEtPm9wIFsweCV4XSwgZmxhZ3MgWzB4JXhdLCBmdW5jIFsw -eCV4XSwgbHVuX2lkeCBbMHgleF0KAAAAAAAAAAAAAHNjc2lfbHVyOiB3ci0+aXFpZCBbMHgleF0s -IGlzdGFza19mYy0+Zmxvd2Nfc2dlX2lxaWQgWzB4JXhdLCBpc3Rhc2tfZmMgdGFzayBmbGFncyBb -MHgleF0KAAAAAAAAAHNjc2lfbHVyOiBjb25uIFsweCV4XSwgY21kc24gWzB4JXhdLCBzZW50X2Nt -ZHNuIFsweCV4XSwgbWF4X2NtZHNuIFsweCV4XSwgaXR0IFsweCV4XQoAAAAAAAAAAAAAAGRjYnhf -YXBwbHlfYXBwX2NmZ1sldV1ORVcgQVBQIFRMViAKAAAAAAAAAAAAAAAAAGRjYnhfY2VlX2ZlYV9z -bVsldV0gRmVhdHVyZVsldV0gRkVBVFVSRV9MSU5LVVAKAGRjYnhfY2VlX2ZlYV9zbVsldV0gRmVh -dHVyZVsldV0gU0VUX0xPQ0FMX1BBUkFNRVRFUlMKAAAAAAAAAAAAAABkY2J4X2NlZV9mZWFfc21b -JXVdIEZlYXR1cmVbJXVdIEZFQVRVUkVfTk9fQURWRVJUSVNFCgAAAAAAAAAAAAAAZGNieF9jZWVf -ZmVhX3NtWyV1XSBGZWF0dXJlWyV1XSBGRUFUVVJFX1BFRVJfTk9UX0FEVkVSVElTRV9EQ0JYCgAA -AAAAAAAAAAAAAAAAAABkY2J4X2NlZV9mZWFfc21bJXVdIEZlYXR1cmVbJXVdIEZFQVRVUkVfUEVF -Ul9OT1RfQURWRVJUSVNFX0ZFQVRVUkUKAAAAAAAAAAAAAAAAAGRjYnhfY2VlX2ZlYV9zbVsldV0g -RmVhdHVyZVsldV0gRkVBVFVSRV9VUERBVEVfT1BFUl9WRVJTSU9OCgAAAABkY2J4X2NlZV9mZWFf -c21bJXVdIEZlYXR1cmVbJXVdIEZFQVRVUkVfUEVFUl9VUERBVEVfT1BFUl9WRVJTSU9OCgAAAAAA -AAAAAAAAAAAAAGRjYnhfY2VlX2ZlYV9zbVsldV0gRmVhdHVyZVsldV0gRkVBVFVSRV9HRVRfUEVF -Ul9DRkcKAAAAAAAAAAAAAABkY2J4X2NlZV9mZWFfc21bJXVdIEZlYXR1cmVbJXVdIEZFQVRVUkVf -Q0ZHX05PVF9DT01QQVRJQkxFCgAAAAAAZGNieF9jZWVfZmVhX3NtWyV1XSBGZWF0dXJlWyV1XSBG -RUFUVVJFX1VTRV9MT0NBTF9DRkcKAAAAAAAAAAAAAGRjYnhfY2VlX2ZlYV9zbVsldV0gRmVhdHVy -ZVsldV0gRkVBVFVSRV9VU0VfUEVFUl9DRkcKAAAAAAAAAAAAAABkY2J4X2NlZV9mZWFfc21bJXVd -IEZlYXR1cmVbJXVdIEZFQVRVUkVfRkVBVFVSRV9ESVNBQkxFRAoAAAAAAAAAZGNieF9jZWVfZmVh -X3NtWyV1XSBGZWF0dXJlWyV1XSBGRUFUVVJFX0VSUk9SX0NIQU5HRQoAAAAAAAAAAAAAAGRjYnhf -aWVlZV9wcm9jZXNzWyV1XSByZWNlaXZlZCBCV3MgZG8gbm90IGFkZCB1cCB0byAxMDAhCgAAAAAA -AABXQVJOSU5HOiByZWNlaXZlZCBBcHAgVExWIGNvbnRhaW5zIG1vcmUgdGhhbkZXIGNhbiBoYW5k -bGUgKG1heDogJXU7IHRsdiBjb250YWluczogJXUKAAAAAAAAAAAAAABkY2J4X2llZWVfcHJvY2Vz -c1sldV0gc3VidHlwZSAlI3ggcmVtX2Z0X2NoYW5nZWQgJXUgc21fY2hhbmdlICV1CgAAAAAAAAAA -AAAAAAAAAGRjYnhfaWVlZV9wcm9jZXNzWyV1XSBzdWJ0eXBlIHVua25vd24KAAAAAAAAAAAAAGRj -YnhfcGFyc2VfcGt0WyV1XSBlcnJvciAlZAoAAAAAaXB2Nl9hZGRfcHJlZml4X2luX2xpc3Q6IG5v -ZGUgZm91bmQgMHgleAoAAAAAAAAAaXB2Nl9hZGRfcHJlZml4X2luX2xpc3QsIG5vZGUgbm90IGZv -dW5kCgAAAAAAAAAAY2huZXRfYXJwX3VwZGF0ZV9jYWNoZTogYXJwIGlwNCBlbnRyeSBmb3VuZCAK -AAAAY2huZXRfYXJwX3VwZGF0ZV9jYWNoZTogYXJwIGlwNiBlbnRyeSBmb3VuZCAKAAAAY2huZXRf -YXJwX3VwZGF0ZV9jYWNoZTogYm90aCBpcDQgYW5kIGlwNiBhZGRyIGNhbm5vdCBiZSBudWxsCgAA -AGNobmV0X2wydF91cGRhdGU6IGwydF91cGRhdGUgcmVxdWVzdCBzZW50IGwydGVudCBbJTA4eF0s -IGwydGVudC0+aWR4IFslZF0sIGwydGVudC0+dmxhbiBbJWRdCgAAAGNobmV0X2lwdjZfcmFfaW5w -dXQ6IEludmFsaWQgUkEKAAAAAAAAAAAAAAAAAAAAAGlwdjYgUkEgcmN2ZAoAAAByb3V0ZXIgbm90 -IHByZXNlbnQgaW4gb3VyIGxpc3QuIGFkZGluZyBpdAoAAAAAAABJbnZhbGlkIG9wdGlvbiBsZW5n -dGggJXUgaW4gU0xMQSBvcHRpb24KAAAAAAAAAABHT1QgU0xMQSBvcHRpb24gaW4gUkEsIGxlbiAl -dQoAAEludmFsaWQgb3B0aW9uIGxlbmd0aCAldSBpbiBwcmVmaXggb3B0aW9uCgAAAAAAAEludmFs -aWQgb3B0aW9uIGxlbmd0aCAldSBpbiBtdHUgb3B0aW9uCgAAAAAAAAAAAEludmFsaWQgcGFja2V0 -IHdpdGggJXUgZXh0cmEgYnl0ZXMKAAAAAAAAAAAAAAAAAG1sZDYgcXVlcnkgcmN2ZAoAAAAAAAAA -AAAAAAAAAAAAY2huZXRfaXB2Nl9tbGQ2X3F1ZXJ5X2lucHV0OiBJbnZhbGlkIE1MRCBxdWVyeQoA -VW5zdXBwb3J0ZWQgcXVlcnkgdmVyc2lvbi4gb25seSBtbGR2MiBxdWVyeSBzdXBwb3J0ZWQKAAAA -AAAAAAAAAHF1ZXJ5IHJlc3BvbnNlIGRlbGF5ICV1IChpbiAxMG1zIHVuaXQpIAoAAAAAAAAAAGFs -cmVhZHkgYSBnZW5lcmFsIHF1ZXJ5IHBlbmRpbmcgaW4gJXUgKDEwbXMpCgAAAERlYnVnIHRoZSBj -b2RlLiBncnBfbm9kZSBtdXN0IGJlIHByZXNlbnQKAAAAAAAAAGFscmVhZHkgYSBtdWx0aWNhc3Qg -cXVlcnkgcGVuZGluZyBpbiAldSAoMTBtcykKAGlwdjYgZWNobyByZXEgcmN2ZAoAAAAAAAAAAAAA -AAAAREhDUHY2IHBhY2tldCB0eXBlICV1LCBvcHRzbGVuICV1IHJlY2VpdmVkCgAAAAAASW52YWxp -ZCBkaGNwIHN0YXRlICVkCgAAAAAAAAAAAABJZ25vcmUgREhDUHY2IG1zZyB4aWQgJXgsICBkaDZj -dHh0LT54aWQgJXgKAAAAAABFcnJvciBpbiBESENQdjYgb3B0aW9ucyBwYXJzaW5nLiBJZ25vcmlu -ZyBtc2csIGkgJWQsIG9wdHNsZW4gJWQKAAAAAAAAAAAAAAAAAAAAAERIQ1AgZmFpbGVkLCBzdGF0 -dXNjb2RlICVkLiBJZ25vcmluZyBhZHZlcnRpc2UKAGljbXA2IGNoZWNrc3VtIHZhbGlkYXRpb24g -ZmFpbGVkLCBvciBlcnIgcmN2ZGlnbm9yaW5nIGljbXA2IG1zZyAldSwgZGxlbiAldQoAAAAAbmV0 -aWZfcHJvY2Vzc19kaGNwOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBwcm9jZXNzaW5nLCBv -cHRfbGVuICV1CgAAAAAAAAAAAABjaG5ldF9kaGNwX3JlY3Y6IHZsYW5pZCBbJXVdLCBsMmRldl9w -aWRfZmMtPmZsb3djX25ldF9sMmRldl92bGFuZGV2IFsweCV4XSwgbDJkZXZfZmMgWzB4JXhdCgAA -AABjaG5ldF9kaGNwX3JlY3Y6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIGRoY3R4dC0+c3Rh -dGUgWyVkXSwgbWFsYWNpb3VzIGRoY3AgcmVjdiBmb3Igbm8gcmVxdWVzdAoAAAAAAAAAAAAAAAAA -ZGhjdHh0LT5zdGF0ZSA6ICVkCgAAAAAAAAAAAAAAAABsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhd -LCBCYWQgREhDUCBjb29raWUgcmVjaWV2ZWQsIGFib3J0aW5nCgAAbGxkcF9yeF9wa3RfaGFuZGxl -clsldV0gZHJvcCBwcmUtaW5pdCAoY291bnQgPSAldSkKAAAAAAAAAAAAAAAAAHRjcF9yZWxlYXNl -X3RpZDogdGlkIFsweCV4XSwgZmxvd2MgZmxhZ3MgWzB4JXhdLCBidWZmZXJlZCBbMHgleF0KAAAA -AAAAAAAAAAAAAAAAdGNwX3JlbGVhc2VfdGlkOiBzaXplb2YodGNiX2ZjLT5mbG93Y19pY29ubikg -WyV1XSwgYnl0ZXMKAAAAAAAAAGFjdF9vcGVuX3JwbDogYXRpZCBbMHgleF0sIHRpZCBbMHgleF0s -IHRjYl9mYy0+eyBpZCBbMHgleF0sIHN0YXRlIFsweCV4XSwgdHlwZSBbMHgleF0gfSwgY3BsX29w -IFsweCV4XSwgc3RhdHVzIFsweCV4XQoAAAAAAAAAAAAAYWN0X29wZW5fcnBsOiBjc2tfZmMtPnsg -aWQgWzB4JXhdLCBzdGF0ZSBbMHgleF0sIGNzb2NrX2ZsYWdzIFsweCV4XSB9IAoAAAAAAAAAAABh -Y3Rfb3Blbl9ycGw6IHJlY3ZkIG5lZyBhZHZpY2UgWzB4JXhdCgAAAAAAAAAAAABzZW5kX2Fib3J0 -X3JwbDogY3NrX2ZjLT5mbG93Y190eXBlIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0s -IHRpZCBbMHgleF0sIHVscHR4Y2ggWyV1XSwgYnVmZmVyZWQgWyV1XQoAAAAAd3JoX29mbGRfdGNw -X2Nsb3NlX2Nvbl9yZXBseTogdGNiX2ZjLT5mbG93Y19pZCBbMHgleF0sIHRjYl9mYy0+Zmxvd2Nf -dHlwZSBbMHgleF0sIGxlbjE2IFsldV0sIGxvYyBbJXVdCgAAAAAAAAAAAHdyaF9vZmxkX3RjcF9j -bG9zZV9jb25fcmVwbHk6IHJwbC0+b3BfVGlkIFsweCV4XSwgcnBsPnN0YXR1cyBbMHgleF0sIHJw -bC0+c25kX254dCBbMHgleF0sIHJwbC0+cmN2X254dCBbMHgleF0KAAB0Y3BfYWJvcnRfcnBsX3Jz -czogdGlkIFsweCV4XSwgc3RhdHVzIFsweCV4XQoAAAB0Y3BfYWJvcnRfcmVxX3JzczogdGlkIFsw -eCV4XSwgc3RhdHVzIFsweCV4XSwgZmxvd2NfY3NvY2tfZm9pc2NzaV9zdGF0ZSBbMHgleF0KAG9m -bGRfYWJvcnRfcmVxX25lZ2FkdlsldV06IHdyIDB4JTA4eCBjcGxfYWJvcnRfcmVxIERFTElWRVJF -RAoAAABob3N0X3dyWyV1XTogd3IgMHglMDh4IGNwbF9hYm9ydF9yZXEgc3RhdHVzIDB4JXgKAAAA -AAAAAAAAAAAAAAAAcGt0c2NoZWRfY2xfcmxbJXU6JXVdOiBtb2RlIHwgdW5pdCB8IHJhdGUgMHgl -MDZ4IG1pbiAldSBtYXggJXUgcGt0c2l6ZSAldQoAAAAAAABwZiAlZCwgdmYgJWQgc2VjcmV0IGtl -eV9pbmRleCAlZCwgVkYgc2VjcmV0IDB4JXgKAAAAAAAAAAAAAAAAAAAAcGFyYW1fY2huZXRbMHgl -eDoweCV4XTogY2huZXQgMHgleCByZWFkICV1IHBmICV1IHJldCAlZAoAAAAAAAAAAHBhcmFtX2Rt -YXFbMHgleDoweCV4XTogZG1hcSAweCV4IHJlYWQgJXUgcGYgJXUgcmV0ICVkCgAAAAAAAAAAAABS -U1NTRUNSRVRLRVk6IHJzc3NlY3JldCB0YmwgYmFzZSAlZCwgcnNzbnNlY3JldCAlZAoAAAAAAAAA -AAAAAAAATUNbJXVdIGluaXRfc3RhdGVfbWFjaGluZSAweCUwMngKAAAAAAAAAAAAAAAAAAAATUMg -aW5pdGlhbGl6YXRpb24gbm90IGNvbXBsZXRpbmcsIE1DIGN1cnJlbnQgaW5pdCBzdGF0ZSBpcyAw -eCUwMngKAAAAAAAAAAAAAAAAAABJbml0aWFsaXppbmcgSUJNIEREUjM0TE1DCgAAAAAAAEREUiBp -bml0IGNvbXBsZXRlLCBiZWdpbm5pbmcgY2FsaWJyYXRpb24KAAAAAAAAAEREUiBjYWxpYnJhdGlv -biBzdWNjZWVkZWQKAAAAAAAATUNbJXVdIF9od19tY19pbml0X21jCgAAAAAAAAAAAABfaHdfbWNf -aW5pdF9tYzogZXJyb3IsIHJldCAlZAoAAHBoeTogZmFpbGVkIHRvIGFsbG9jYXRlZCBtZW1vcnkg -Zm9yIHBoeSBmdyBmaWxlLCByZXQgJWQKAAAAAAAAAABod19sZV9maWx0ZXJfY3R1cGxlOiB0dXBs -ZSAldSBub3Qgc3BlY2lmaWVkIGJ1dCByZXF1aXJlZCBmb3IgbWFzayAweCV4CgAAAAAAAAAAAGh3 -X3RwX3RjcF9zZXR0aW5nc193OiB0aW1lcl9ycyAldXVzIHRpbWVzdGFtcF9yZXMgJXV1cyBkZWxh -eWVkYWNrX3JlcyAldXVzCgAAAAAAaHdfdHBfdGNwX3NldHRpbmdzX3c6IGRhY2tfdGltZXIgJXV1 -cyBtc2wgJXV1cyByeHRfbWluLG1heCAldSwldXVzIHBlcnNfbWluLG1heCAldSwldXVzCgAAAAAA -AAAAaHdfdHBfdGNwX3NldHRpbmdzX3c6IGtlZXBfaWRsZSxpbnR2bCAldSwldXMgbWF4cnR0ICV1 -dXMgaW5pdHNydHQgJXV1cyBmaW53YWl0Ml90aW1lciAldXVzCgAAAAAAaHdfdHBfdGNwX3NldHRp -bmdzX3c6IGNhcHBpbmcgZGFja190aW1lciBmcm9tICV1IHRvICV1AAAAAAAAAAAAAGh3X3RwX3Rj -cF9zZXR0aW5nc193OiBjYXBwaW5nIG1zbCBmcm9tICV1IHRvICV1AGh3X3RwX3RjcF9zZXR0aW5n -c193OiBjYXBwaW5nIHJ4dF9taW4gZnJvbSAldSB0byAldQAAAAAAAAAAAAAAAABod190cF90Y3Bf -c2V0dGluZ3NfdzogY2FwcGluZyByeHRfbWF4IGZyb20gJXUgdG8gJXUAAAAAAAAAAAAAAAAAaHdf -dHBfdGNwX3NldHRpbmdzX3c6IGNhcHBpbmcgcGVyc19taW4gZnJvbSAldSB0byAldQAAAAAAAAAA -AAAAAGh3X3RwX3RjcF9zZXR0aW5nc193OiBjYXBwaW5nIHBlcnNfbWF4IGZyb20gJXUgdG8gJXUA -AAAAAAAAAAAAAABod190cF90Y3Bfc2V0dGluZ3NfdzogY2FwcGluZyBrZWVwX2lkbGUgZnJvbSAl -dSB0byAldQAAAAAAAAAAAAAAaHdfdHBfdGNwX3NldHRpbmdzX3c6IGNhcHBpbmcga2VlcF9pbnR2 -bCBmcm9tICV1IHRvICV1AAAAAAAAAAAAAGh3X3RwX3RjcF9zZXR0aW5nc193OiBjYXBwaW5nIGlu -aXRfc3J0dF9tYXhydHQgZnJvbSAldSB0byAldQAAAABod190cF90Y3Bfc2V0dGluZ3NfdzogY2Fw -cGluZyBpbml0X3NydHRfaW5pdHNydHQgZnJvbSAldSB0byAldQAAaHdfdHBfdGNwX3NldHRpbmdz -X3c6IGNhcHBpbmcgZmlud2FpdDJfdGltZXIgZnJvbSAldSB0byAldQAAAAAAAGZpbHRlck1vZGU9 -JSN4IGlsbGVnYWw6IHNlbGVjdHMgJWQgYml0cyAobWF4ICVkKQoAAAAAAAAAAAAAAAAAAABsZSBj -b25maWd1cmF0aW9uOiBuZW50cmllcyAldSByb3V0ZSAldSBjbGlwICV1IGZpbHRlciAldSBhY3Rp -dmUgJXUgc2VydmVyICV1IGhhc2ggJXUKAAAAAAAAAAAAAABsZSBjb25maWd1cmF0aW9uOiBuZW50 -cmllcyAldSBjbGlwICV1IG5vcm1hbCBmaWx0ZXIgJXUgaGkgcHJpb3JpdHkgZmlsdGVyICV1IHNl -cnZlciAldSBhY3RpdmUgJXUgaGFzaCAldSBuc2VydmVyc3JhbSAldQoAAAAAAAAAAGh3X3NnZV9x -dWV1ZV9iYXNlX21hcFsldV06IGV4Y2VlZGVkIG51bWJlciBvZiBlZ3Jlc3MgcXVldWVzLCAldQoA -AAAAAAAAAAAAAAAAAAAAaHdfc2dlX3F1ZXVlX2Jhc2VfbWFwWyV1XTogZXhjZWVkZWQgbnVtYmVy -IG9mIGluZ3Jlc3MgcXVldWVzIHdpdGggZnJlZWxpc3QgYW5kIGludGVycnVwdCwgJXUKAAAAaHdf -c2dlX3F1ZXVlX2Jhc2VfbWFwWyV1XTogZXhjZWVkZWQgbnVtYmVyIG9mIGluZ3Jlc3MgcXVldWVz -LCAldQoAAAAAAAAAAAAAAAAAAABFcnJvciwgVG90YWwgUlNTIFNlY3JldCB0YWJsZSBhbGxvY2F0 -aW9uICVkID4gMTYKAAAAAAAAAAAAAAAAAAAAY2ZfcGFyc2U6IGZpbGUgbWVtdHlwZSAweCV4IG1l -bWFkZHIgMHgleCBtYXBwZWQgQCAlcDoKAAAAAAAAAAAAAGNvbmZpZ3VyZWQgd2l0aCBjYXBzIG5i -bXxsaW5rIDB4JTA4eCBzd2l0Y2h8bmljIDB4JTA4eCB0b2V8cmRtYSAweCUwOHggaXNjc2l8Y3J5 -cHRvIDB4JTA4eCBmY29lOjB4JXgKAAAAAAAAAAAAAABuZXQgVkkgYWxsb2NhdGlvbiBmYWlsZWQg -Zm9yIGZjX2lkICV1IHdpdGggZXJyb3IgJWQKAAAAAAAAAAAAAAAAbmV0IFZJIG1hYyBhZGRyZXNz -IHByb2dyYW1taW5nIGZhaWxlZCBmb3IgZmNfaWQgJXUgd2l0aCBlcnJvciAlZAoAAAAAAAAAAAAA -AAAAAABuZXQgVkkgcnhtb2RlIHByb2dyYW1taW5nIGZhaWxlZCBmb3IgZmNfaWQgJXUgd2l0aCBl -cnJvciAlZAoAAAAAbmV0IFZJIHJzcyBpbmRpcmVjdGlvbiB0YWJsZSBwcm9ncmFtbWluZyBmb3Ig -ZmNfaWQgJXUgZmFpbGVkIHdpdGggZXJyb3IgJWQKAAAAAABuZXQgVkkgcnNzIGNvbmZpZyBjb21t -YW5kIGZhaWxlZCBmb3IgZmNfaWQgJXUgd2l0aCBlcnJvciAlZAoAAAAAbmV0IFZJIGNvbW1hbmQg -ZmFpbGVkIGZvciBmY19pZCAldSB3aXRoIGVycm9yICVkCgAAAAAAAAAAAAAAAAAAAHByb2dyYW1t -ZWQgSFcgdGFnbSBbMHglMDh4XSwgSFcgcGdzeiBmYWN0b3IgWzB4JTA4eF0sIEZPaVNDU0kgdGFn -bSBbMHglMDh4XSwgcnRhZ20gWzB4JTA4eF0sIG1heHN6X2JpdHMgWyV1XSwgc3pfYml0cyBbJXVd -LgoAAAAAYmFzZSBbIDB4JTA4eF0sIGxsaW1pdCBbMHglMDh4XSwgdWxpbWl0IFsweCUwOHhdLCBz -aXplIFsldV0sIG1heF90eHN6IFsldV0sIG1heF9yeHN6IFsldV0sIGlvc2l6ZSBbJXVdCgAAAAAA -AAAAAG5wcG9kcyBbJXVdLCBpZHhfbWFzayBbMHglMDh4XSwgaWR4X2ZpcnN0IFsldV0sIGlkeF9s -YXN0IFsldV0sIHNjc2lfcGxkX3NpemUgWyV1XSwgQUxJR04oc2NzaV9wbGRfc2l6ZSwgMTYpIFsl -dV0sIHBwZF96b25lcyBbJXVdLgoAAAAAAAAAAAAAAAAAAGZvaXNjc2lfaW5pdDogaW5pdF9kb25l -OiV1LCBmb2lzY3NpX250YXNrczoldSwgZm9pc2NzaV9uc2VzczoldSwgbmNzb2NrOiV1LCBuc3Bv -cnRzOiV1LCBmb2lzY3NpX25pbml0OiV1LCByYzolZAoAAAAAAAAAAAAAAAAAAAAAY2hfY2xfcmF0 -ZVsldS8ldV06IGNhcHBlZCBjbGFzcyByYXRlIGZyb20gcmVxdWVzdGVkICV1IHRvIGNvbmZpZ3Vy -ZWQgKGVmZmVjdGl2ZSkgY2hhbm5lbCByYXRlICV1CgAAAAAAAAAAAAAAAAAAAENhbm5vdCBnZXQg -Y2xhc3MgWyV1LyV1XSByYXRlICV1IHdpdGggY29uZmlndXJlZCBncmFudWxhcml0aWVzLiBDaGVj -ayBjb25maWcgZmlsZQoAAAAAAAAAAAAAAAAAAHBrdHNjaGVkIGNoYW5uZWwgJXUgc2V0cyBzcGVl -ZCAoZnJvbSAldSkgdG8gJXUga2JwcwoAAAAAAAAAAAAAAABuZXRfbDJkZXZfbm90aWZ5OiBsMmRl -dl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBwb3J0IFslZF0sIGV2ZW50IFsweCV4XSwgdWxwdHhjaCBb -JXVdLCBjbGFzcyBbMHgleF0sIHZwcmlvIFsweCV4XSwgdmlkIFsweCV4XSwgdmlfcmVhZHkgWyV1 -XQoAAAAAAABuZXRfbDJkZXZfbm90aWZ5OiBwZ2lkIFsweCV4XSwgcHJpbyBbMHgleF0sIGNoIFsw -eCV4XQoAAAAAAAAAAAAAWyV1XSB1bmFibGUgdG8gZXhlY3V0ZSBpbnRlcm5hbCBEQ0JfSUVFRV9D -TUQKAAAAcG9ydFsldV0gcHR5cGUgJXUgbGFuZSAldTogcnhjZmcgPSAlI3gKAAAAAAAAAAAAcG9y -dFsldV0gcHR5cGUgJXUgbGFuZSAldTogdHhjZmcgPSAlI3gKAAAAAAAAAAAAdHhfY29uZmlnIHNw -ZWVkIDB4JXggcGxsX3NlbCAlZCBid19zZWwgJWQKAAAAAAAAcG9ydFsldV0gbGluayBkb3duICgl -dSkgKGxzdGF0dXMgJSN4KQoAAAAAAAAAAAAAcG9ydF9yZXNldCBmb3JjaW5nIHBvcnQlZCBmb3Ig -c3BlZWQgMHgleAoAAAAAAAAAcG9ydCBpbml0aWFsaXphdGlvbiBmYWlsZWQKAAAAAABod19pMmNf -dHJhbnNhY3Rpb246IG5kYXRhICV1IGFkZHJfb3AgMHgleCBkYXRhWzBdIDB4JXggZGlmZiAldQoA -aHdfaTJjX3RyYW5zYWN0aW9uOiBuZGF0YSAldSBhZGRyX29wIDB4JXggZGF0YVswXSAweCV4IGRp -ZmYgJXUgZHBvcyAldSBjb250ICV1IGZhaWxlZCB3aXRoIGVyciAlZAoAAAAAAAAAAAAAAAAAAGky -YyB0cmFuc2FjdGlvbiBmYWlsZWQgdG8gY29tcGxldGUKAAAAAAAAAAAAAAAAAGkyYyBlcnJvciBj -YXVzZWQgYnkgbW9kdWxlIHVucGx1ZwoAAAAAAAAAAAAAAAAAAHNlbmR0byBwZW5kaW5nOiB3cl9w -ZW5kICVwIGZvciBwb3J0ICV1LCB3YW50IHRvIHNlbmQgdG8gcG9ydCAldQoAAAAAAAAAAAAAAAAA -AAAAcG9ydFsldV0gdXBkYXRlIChmbG93Y2lkICV1IHJjICV1KQoAAAAAAAAAAAAAAAAAcG9ydF9z -ZXRfbG9vcGJhY2sgcG9ydCAlI3ggY3VycmVudCAlI3ggbW9kZSAlI3gKAAAAAAAAAAAAAAAAAAAA -AHBvcnRbJXVdIHNwZWVkIHVwZGF0ZTogJSN4CgAAAAAAcG9ydFsldV0gYmVnaW5uaW5nIGRlYm91 -bmNlCgAAAABRU0ZQIG1vZHVsZSB1bnBsdWcgLSByZWluaXRpYWxpemluZyByeF9sb3MgIHRvIDB4 -ZmYKAAAAAAAAAAAAAAAAZ3Bpb19xc2ZwX21vZHVsZV91cGRhdGU6IGNoYW5nZWQgcnhfbG9zIGZy -b20gMHgleCB0byAweCV4CgAAAAAAAGdwaW9fcXNmcF9tb2R1bGVfdXBkYXRlOiBjaGFuZ2VkIHR4 -X2RpcyBmcm9tIDB4JXggdG8gMHgleAoAAAAAAABkaXNhYmxpbmcgdHggJSN4IHJ4ICUjeAoAAAAA -AAAAAHBvcnRfbGlua19zdGF0ZV9oYW5kbGVyWyV1XSBwb3dlcmluZyBkb3duCgAAAAAAAHBvcnRf -bGlua19zdGF0ZV9oYW5kbGVyWyV1XSBwb3dlcmluZyB1cAoAAAAAAAAAAHBvcnRfbGlua19zdGF0 -ZV9oYW5kbGVyWyV1XSB1bmtub3duIHN0YXRlIChzdGF0ZSA9ICUjeCkKAAAAAAAAAABwb3J0X2xp -bmtfc3RhdGVfaGFuZGxlcjogU29tZXRoaW5nIHdlbnQgdGVycmlibHkgd3JvbmcuIHJldCA9ICVk -CgAAAAAAAAAAAAAAAAAAAGxlIGNvbmZpZ3VyYXRpb246IGhhc2ggcmVnaW9uIHRvbyBsYXJnZSB0 -byBlbmFibGUgc2VydmVyIHNyYW0KAABsZSBpbml0aWFsaXphdGlvbjogbmVudHJpZXMgJXUgcm91 -dGUgJXUgY2xpcCAldSBmaWx0ZXIgJXUgYWN0aXZlICV1IHNlcnZlciAldSBoYXNoICV1CgAAAAAA -AAAAAABsZSBpbml0aWFsaXphdGlvbjogbmVudHJpZXMgJXUgcm91dGUgJXUgY2xpcCAldSBmaWx0 -ZXIgJXUgc2VydmVyICV1IGFjdGl2ZSAldSBoYXNoICV1IG5zZXJ2ZXJzcmFtICV1CgAAAAAAAAAA -AAAAaHdfdHBfaW5pdDogdGNiIHJlZ2lvbiAoc3RhcnQgMHglMDhzIHNpemUgJXUpIG11c3QgYmUg -aW4gZmlyc3QgMjU2TUIgb2YgTUEgbWVtb3J5CgAAAAAAAAAAAAAAAAAAaHdfdHBfaW5pdDogcGdt -bmd0IHJlZ2lvbiAoc3RhcnQgMHglMDhzIHNpemUgJXUpIG11c3QgYmUgaW4gZmlyc3QgMjU2TUIg -b2YgTUEgbWVtb3J5CgAAAAAAAAAAAAAAaHdfdHBfaW5pdDogVFAgcGdtbmd0IGluaXRpYWxpemF0 -aW9uIGRpZCBub3QgY29tcGxldGUKAAAAAAAAAAAAAHRsc19rZXlfc3RhcnQ6MHgleCwgdGxzX2tl -eV9zaXplOiVkCgAAAAAAAAAAAAAAAGJ1Zm1faW5pdDogbiAldSBidWZsbDY0aW50X3NpemUgMHgl -eAoAAAAAAAAAAAAAAGJ1Zm1faW5pdDogbm90IGVub3VnaCBtZW1vcnkgdG8gYWxsb2NhdGUgaW50 -ZXJuYWwgYnVmbGw2NCBidWZmZXJzCgAAAAAAAAAAAAAAAAAAYnVmbV9pbml0OiBub3QgZW5vdWdo -IG1lbW9yeSB0byBhbGxvY2F0ZSBidWZsbDY0IGJ1ZmZlcnMKAAAAAAAAAG1lbV9pbml0X2J1Zjog -bm90IGVub3VnaCBtZW1vcnkgdG8gYWxsb2NhdGUgZmxvdyBidWZmZXJzCgAAAAAAAABtZW1faW5p -dF9idWY6IG5vdCBlbm91Z2ggbWVtb3J5IHRvIGFsbG9jYXRlIHRjYl9jYWNoZSAob2ZmZXJlZCAl -dSB0cnlpbmcgdG8gdXNlICV1IGF2YWlsYWJsZSAldSkKAAAAAAAAAAAAAAAAAAAAbXBhcnRpdGlv -bl9vdGhlcnM6IHN0YXJ0IDB4JTA4eCBzaXplICV1ICh1bnVzZWQgJXUpCgAAAAAAAAAAAAAAAG1w -YXJ0aXRpb25fb3RoZXJzOiBfbToleCBfc2l6ZTolbGQgZGV2LnRwLnRsc19rZXlfc2l6ZTolbGQg -CgAAAABtcGFydGl0aW9uX290aGVyczogc3RhcnQgMHglMDh4IHNpemUgJXUgKHVudXNlZCAldSkK -AAAAAAAAAAAAAAAAbWVtX2luaXQ6IEVEQyBvdmVyY29tbWl0dGVkIGJ5ICVkIGJ5dGVzCgAAAAAA -AAAAbWVtX2luaXQ6IG5vdCBlbm91Z2ggbWVtb3J5IHRvIGFsbG9jYXRlIGZsb3cgdGFibGUKAAAA -AAAAAAAAAAAAAGN4Y25pY19kZXZpY2VfaW5pdDogY3hjbmljIFsweCUweF0sIGN4Y25pYy0+Zmls -dGVyIFslMHhdCgAAAAAAAABwb3J0X2luaXQgcG9ydCVkIHB0eXBlIDB4JXgKAAAAAFBvcnRbJXVd -OiBVbmtub3duIFNHTUlJIHN1Yi10eXBlICUjeAoAAAAAAAAAAAAAAFBvcnRbJXVdOiBVbmtub3du -IEJUX1hGSSBzdWItdHlwZSAlI3gKAAAAAAAAAAAAAHBvcnRfaW5pdFsldV06IHBvcnQgdHlwZSAw -eCV4IGlzIG5vdCBzdXBwb3J0ZWQKAG1wYXJ0aXRpb25faW5pdDogbW92ZWQgcG1yeF9zdGFydCBm -cm9tIDB4JTA4eCB0byAweCUwOHggdG8gbWFrZSByb29tIGZvciBMRSBIQVNIIGFuZC9vciBUUCBU -Q0JzCgAAAAAAAAAAAAAAAAAAAABtcGFydGl0aW9uX2luaXQ6IG1vdmVkIHBtcnhfc3RhcnQgZnJv -bSAweCUwOHggdG8gMHglMDh4IChFRFJBTSkKAAAAAAAAAAAAAAAAAAAAAEVRIHBmbiAldSB2Zm4g -JXU6IGRlc3Ryb3lpbmcgZXFpZCAldSB3aXRoIHBlbmRpbmcgV1IocykgKG51bV9ieXRlcyAldSBh -bmQgZmxhZ3MgMHglMDh4CgAAAAAAAAAAAGwyZGV2X2ZjLT5mbG93Y19pZCBbJXVdLCBsMmRjLT5w -Zm4gWyV1XSwgbDJkYy0+dmZuIFsldV0sIGwyZGMtPmxwb3J0IFsldV0sIGwyZGV2X2ZjLT5mbG93 -aWQgWyV1XSBsMmRjLT50eF9jaCBbJXVdLCBkZXYudnBkLnBvcnR2ZWMgWyV4XQoAAAAAAAAAAHBv -cnR2ZWMgWyV1XQoAAABsMmRldl92aV9mc206IG1iIFsweCV4XSwgZGVmZXJyZWQsIHN0YXRlIFsw -eCV4XSwgcG9ydCBbMHgleF0KAAAAbDJkZXZfdmlfZnNtOiB2aWlkIFsweCV4XSBwb3J0IFsweCV4 -XSwgbWFjLWlkIFslMDJ4OiUwMng6JTAyeDolMDJ4OiUwMng6JTAyeF0uIAoAAAAAAAAAAAAAAAAA -AAAAbDJkZXZfdmlfZnNtOiBzZ2VfZXFpZCBbMHgleF0sIHNnZV9pcWlkIFsweCV4XSwgc2dlX2Vx -Y3IgWzB4JXhdLCByc3Nfc3ogWzB4JXhdCgBsMmRldl92aV9mc206IGwyZGV2X2ZjLT5mbG93Y19u -ZXRfbDJkZXZfbXR1IFsldV0sIG1iX3NjcmF0Y2ggWzB4JXhdLCBwb3J0IFsweCV4XQoAAAAAAAAA -AAAAAAAAAABsMmRldl92aV9mc206IHZpaWQgWyVkXSwgdmlfZmMtPmZsb3djX3ZpX2ZsYWdzIFsw -eCV4XQoAAAAAAAAAAAAAbDJkZXZfdmlfZnNtOiBwZm4gWzB4JXhdLCB2Zm4gWzB4JXhdLCBsMmRl -dl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBscG9ydCBbMHgleF0sIHZpaWQgWzB4JXhdLCBmbGFncyBb -MHgleF0KAAAAAAAAAGwyZGV2X3ZpX2ZzbTogRXJyb3IgZnJlZWluZyBWSSwgcmMgWzB4JXhdCgAA -AAAAAGwyZGV2X3ZpX2ZzbTogcGlkIFsweCV4XSwgdmlpZCBbMHgleF0sIG1iX2xvYyBbMHgleF0s -IG1iX29yaWdbMHgleF0sIGwyZGV2X2ZsYWdzIFsweCV4XSwgcmMgWzB4JXhdCgAAAAAAAAAAAAAA -AABwZm4gJXUgdmZuICV1IHZpYSBjb21tYW5kCgAAAAAAAGNvbmZpZ3VyYXRpb24gZmlsZSBwYXJz -ZXI6IGFlY19yZXRyeV9jbnQgdmFsdWUgJWQgaXMgbm90IHdpdGhpbiB0aGUgYWxsb3dlZCBsaW1p -dCBvZiAxIHRvIDI1NC5EaXNhYmxpbmcgaXQuCgAAAABwb3J0JWQgZmVjIDB4JXgKAAAAAAAAAAAA -AAAAAAAAAGNvbmZpZ3VyYXRpb24gZmlsZSBwYXJzZXI6IGFuX2FlY190aW1lIHZhbHVlICVkIGlz -IGJpZ2dlciB0aGFuIGFsbG93ZWQgbGltaXQuQ2hhbmdpbmcgaXQgdG8gMTAwMDAgbXMuCgAAAAAA -AAAAAABEZXByZWNhdGVkIGNvbmZpZyBvcHRpb24gZm91bmQgaW4gY29uZmlnIGZpbGUuIElnbm9y -aW5nLi4KAAAAAAAAY29uZmlndXJhdGlvbiBmaWxlIHBhcnNlcjogcGwgdGltZW91dCB2YWx1ZSBp -cyB0b28gbGFyZ2UsIGNoYW5naW5nIGZyb20gJXUgdG8gJXV1c2VjcwoAAAAAAAAAAAAAc2NoZWRf -aW9xdHhfYnBfcHJpb3JpdHk6IGhhcyAldSBlbnRyaWVzIG9ubHksIHJlcXVpcmVzICV1IGVudHJp -ZXMKAAAAAAAAAAAAAAAAAAB0cF9iYWNrb2ZmOiBwYXJzZWQgJWQgaW5zdGVhZCBvZiAldSBlbnRy -aWVzCgAAAAB0cF90aW1lcnZhbHM6IHBhcnNlZCAlZCBpbnN0ZWFkIG9mICV1IGVudHJpZXMKAAB0 -cF90aW1lcnJlczogcGFyc2VkICVkIGluc3RlYWQgb2YgJXUgZW50cmllcwoAAAB0cF9tdHVzIGhh -cyAldSBlbnRyaWVzIG9ubHksIHJlcXVpcmVzICV1IGVudHJpZXMKAAAAAAAAAAAAAAAAAAAAdHBf -bXR1c1sldV0gaXMgJXUgYnl0ZXMgd2hpY2ggaXMgbm90IHN1cHBvcnRlZAoAaHdfY2ltX3RzY2hf -dGlja19pbml0OiBUSUNLJWQsIHZhbHVlIDB4JXgsIHJhdGUgJXUga2JwcwoAAAAAAAAAAGludmFs -aWQgdGljayBncmFudWxhcml0eSAldSBrYnBzIG9yIGdyYW51bGFyaXR5IHZhbCBtdXN0IGJlIDwg -JXUKAAAAAAAAAAAAAAAAAAAAVGljayBncmFudWxhcml0aWVzICV1a2JwcwoAAAAAAABjb25maWd1 -cmF0aW9uIGZpbGUgcGFyc2VyOiBzZ2UgdGltZXIgdmFsdWVbJWRdIGlzIHRvbyBsYXJnZSwgY2hh -bmdpbmcgZnJvbSAldSB0byAldXVzZWNzCgAAAAAAAABmaWx0ZXJtYXNrIDB4JXggaXMgbm90IGVx -dWFsL3N1YnNldCB0by9vZiBmaWx0ZXJtb2RlCgAAAAAAAAAAAAAAY2xpcCBlbnRyeSBkZWxldGlv -biBmYWlsZWQgYXQgcG9zICV1LCByZXQgJWQKAAAAaHdfbGVfY2xpcF9oYW5kbGVyOiByZW1vdmVk -IHBvcz0ldSAoPWlkeCAldSkKAAAAaHdfbGVfY2xpcF9oYW5kbGVyOiBhZGRpbmcgdG8gcG9zPSV1 -ICg9aWR4ICV1KQoAcGh5X2luaXQ6IHBvcnQgJXUgd2l0aCB0aGUgdHlwZSAldSAgaGF2ZSByZXQg -JWQKAAAAAAAAAAAAAAAAAAAAAGh3X21hY19tdGlwX2VuYWJsZTogcG9ydCVkLCBwdHlwZSAweCV4 -LCBzcGVlZCAweCV4LCBmZWMgMHgleAoAAABod19tYWNfYWVjX2NvbXBsZXRlWyV1XSBvbiBsYW5l -cyAlI3ggKHNpZ2RldCAlI3gpLCB0eF9sYW5lcyAlI3gKAAAAAAAAAAAAAAAAAAAAAGh3X21hY19p -bml0X3BvcnQgcG9ydCVkLCBwdHlwZSAweCV4LCBzcGVlZCAweCV4LCBsYW5lcyAweCV4LCBmZWMg -MHgleAoAAAAAAAAAAAAAbW9kdWxlWyV1XTogcG9ydCBtb2R1bGUgaW5zZXJ0ZWQgYW5kIHJlYWR5 -CgAAAAAAbW9kdWxlWyV1XTogcG9ydCBtb2R1bGUgcmVtb3ZlZAoAAAAAAAAAAAAAAAAAAAAAbW9k -dWxlWyV1XTogdW5rbm93biBtb2R1bGUgaWRlbnRpZmllciAweCUwMngKAAAAbW9kdWxlWyV1XTog -ZXhjZXB0aW9uIGNhYmxlIGZlYyBhYmlsaXR5IG9mIHBvcnQgMHgleCwgb2YgY2FibGUgMHgleAoA -AAAAAAAAAAAAAABtb2R1bGVbJXVdOiB1bnNwZWNpZmllZCBleHRlbmRlZCBjb21wbGlhbmNlIGNv -ZGUgMHglMDJ4CgAAAAAAAAAAbW9kdWxlWyV1XTogZmVjIGFiaWxpdHkgb2YgcG9ydCAweCV4LCBj -YWJsZSAweCV4LCBjb25maWcgMHgleAoAAG1vZHVsZVsldV06IGZlYyBhYmlsaXR5IG9mIGNhYmxl -IDB4JXgKAAAAAAAAAAAAAG1vZHVsZVsldV06IGdwaW8gJXUgdHJhbnMgMTBHIDB4JTAyeCAxRyAw -eCUwMnggKGxlbmd0aCAldSkgY2FibGUgMHglMDJ4IChsZW5ndGggJXUpIG1vZHVsZV90eXBlIDB4 -JTAyeAoAAAAAAAAAAABtb2R1bGVbJXVdOiBncGlvICV1IHRyYW5zIDEwRyAweCUwMnggMUcgMHgl -MDJ4IChsZW5ndGggJXUpIGNhYmxlIDB4JTAyeCAobGVuZ3RoICV1KSBtb2R1bGVfdHlwZSAweCUw -MngKAAAAAAAAAAAAY3g0X2NyX21vZHVsZV9yeF9sb3NbJXVdOiByeF9sb3MgY2hhbmdlZCB0byAl -dQoARERSIGluaXQgY29tcGxldGUsIGJlZ2lubmluZyBjYWxpYnJhdGlvbgoAAAAAAAAATUMgY2Fs -aWJyYXRpb24gZmFpbGVkOiBERkkgaW5pdCBub3QgY29tcGxldGluZwoATUMgY2FsaWJyYXRpb24g -ZmFpbGVkOiBERkkgaW5pdCBub3QgY29tcGxldGluZwoATUMgY2FsaWJyYXRpb24gZmFpbGVkOiBQ -aHkgaW5pdCBDYWxpYnJhdGlvbiBkaWRuJ3QgY29tcGxldGUuCgAAAE1DIGNhbGlicmF0aW9uIGZh -aWxlZDogUGh5IGluaXQgQ2FsaWJyYXRpb24gRXJyb3JkaWRuJ3QgY29tcGxldGUuMHgleAoAAAAA -AAAAAAAATUMgY2FsaWJyYXRpb24gUGFzc2VkOiBObyBQaHkgaW5pdCBDYWxpYnJhdGlvbiBFcnJv -ciBJdCBkaWQgY29tcGxldGUuCgAAAAAAAAAAAABNQyBpbml0aWFsaXphdGlvbiBmYWlsZWQ6IERp -ZG4ndCBnZXQgYWxsIERQMThzIGxvY2tlZAoAAAAAAAAAAAAATUMgaW5pdGlhbGl6YXRpb24gZmFp -bGVkOiBEaWRuJ3QgZ2V0IGJvdGggQURScyBsb2NrZWQKAAAAAAAAAAAAAE1DIGluaXRpYWxpemF0 -aW9uIGZhaWxlZDogU0xFV19ET05FX1NUQVRVUyBuZXZlciB0b2dnbGVkAAAAAAAAAABwZm4gJXUg -dmZuICV1IEZTTSBzdGFydAoAAAAAAAAAAHBmbiAldSB2Zm4gJXUgRlNNIGNvbXBsZXRlCgAAAAAA -ZmxyX3BmdmZfZnNtWyV1OiV1XTogdW5rbm93biBzdGF0ZSAldQoAAAAAAAAAAAAAaHcgcGYgYml0 -bWFwIDB4JTAyeAoAAAAAAAAAAAAAAAAmdmZpZF9iaXRtYXBbMF0gMHglMDh4OjB4JTA4eDoweCUw -OHg6MHglMDh4CgAAAAAmdmZpZF9iaXRtYXBbNF0gMHglMDh4OjB4JTA4eDoweCUwOHg6MHglMDh4 -CgAAAABhZnRlciB2ZmlkIGZpeHVwIGh3IHBmIGJpdG1hcCAweCUwMngKAAAAAAAAAAAAAAAmdmZp -ZF9iaXRtYXBbMF0gMHglMDh4OjB4JTA4eDoweCUwOHg6MHglMDh4CgAAAAAmdmZpZF9iaXRtYXBb -NF0gMHglMDh4OjB4JTA4eDoweCUwOHg6MHglMDh4CgAAAAB0aW1lciBxdWV1ZSAldSBsb3N0IGEg -dGljayEgbmV4dCAlcCBsYXN0ICVwIG51bWUgJXUKAAAAAAAAAAAAAAAAZmxyX3RpbWVyX3N0YXJ0 -OiBmbG93Y19pZCAldSAlcCBidWYgJXAKAAAAAAAAAAAATUFDOiBQTExzIGRpZG4ndCBsb2NrCgAA -AAAAAAAAAABod19tY19wcmVwX21jOiBtYyAlZCwgbW9kZSAlZCwgZGVuc2l0eSAlZCwgd2lkdGgg -JWQsIHNpemUgMHgleCwgbnVtX2NoaXBzICVkIAoAAHBjaWU6IHJlYWQgZnJvbSBzZXJjZmcgcGNp -ZV9pcF91cl9tYXhmdW5jIDB4JXggcGZiaXRtYXAgMHgleAoAAABwY2llOiBucGYgJXUgKHBmYml0 -bWFwIDB4JTAyeCkgbnZmICV1IChwZiAwLi43IDB4JTA4eCUwOHgpIHZmc3RyaWRlICV1CgAAAAAA -AAAAAGh3X21hY19wcmVwOiBlcnJvciwgcmV0ICVkCgAAAAAAaHdfZ3Bpb19wcmVwOiBlcnJvciwg -cmV0ICVkCgAAAABod19tY19zZXRfY2xrX2NmZzogZm9yY2VfcmVzZXQgJWQsIGN1cnJfc3RhdGUg -JWQsIHNpemUgJXUKAAAAAAAATUMgQ0xLIHNldHRpbmcgZmFpbGVkOiBQTExfTV9MT0NLIG5ldmVy -IHRvZ2dsZWQKAAAAAAAAAAAAAAAAAAAAAGZhaWxlZCB0byBmaW5kIHRoZSAlYyVjIFZQRCBwYXJh -bWV0ZXIKAAAAAAAAAAAAAGZhaWxlZCB0byBwYXJzZSB0aGUgJWMlYyBWUEQgcGFyYW1ldGVyCgAA -AAAAAAAAAG1lbV9wcmVwOiBlcnJvciwgcmV0ICVkCgAAAAAAAAAAZmFpbGVkIHRvIHN1Y2Nlc3Nm -dWxseSBmaW5kIENoZWxzaW8gVlBECgAAAAAAAAAAdnBkX3ByZXA6IGVycm9yLCByZXQgJWQKAAAA -AAAAAABzZXJjZmdfcHJlcDogZXJyb3IsIHJldCAlZAoAAAAAAGxvZyBpbml0aWFsaXplZCBAIDB4 -JTA4eCBzaXplICV1ICgldSBlbnRyaWVzKSBmd3JldiAweCUwOHggcGNpZV9mdyAweCUwOHgKAAAA -AAAAUEkgZXJyb3IgZmxvd2lkX2xlbjE2IDB4JXgsIGFwcF90YWcgMHgleCwgcmVmX3RhZyAweCV4 -LCBwaXNjICUwNHggJTA0eCAlMDR4ICUwNHgKAAAAAAAAAAAAAAAAAAAAZmxvd2MgJXUgKFNHRSBl -cWlkICV1KSAoRVRIQ1RSTCBxdWV1ZSkgZXhwZXJpZW5jZWQgYSBQQ0kgRE1BIFJFQUQgd29yayBy -ZXF1ZXN0IGVycm9yIChpbmJvdW5kIHF1ZXVlICV1KQoAAAAAAAAAAGZsb3djICV1IChTR0UgZXFp -ZCAldSkgZXhwZXJpZW5jZWQgYW4gdW5leHBlY3RlZCBQQ0kgRE1BIFJFQUQgd29yayByZXF1ZXN0 -IGVycm9yIChpbmJvdW5kIHF1ZXVlICV1KQoAAAAAAAAAAAAAAABmbG93YyAldSBleHBlcmllbmNl -ZCBhbiB1bmV4cGVjdGVkIFBDSSBETUEgUkVBRCBlcnJvciAoaW5ib3VuZCBxdWV1ZSAldSkKAAAA -AAAAAGdhdGhlcl90YXNrc19mb3JfdG1mOiBpZHggWzB4JXhdLCB0YXNrLWlkIFsweCV4XSwgY21k -LWlkIFsweCV4XSwgYWN0aXZlIHRhc2tzIFsweCV4XS4gY29ubi1pZCBbMHgleF0sIGNtZCBjb25u -LWlkIFsweCV4XSwgdGFzayBjb25uLWlkIFsweCV4XQoAAGdhdGhlcl90YXNrc19mb3JfdG1mOiBJ -bnZhbGlkIHR5cGUgWzB4JXhdLCBiYWlsaW5nIG91dC4KAAAAAAAAAABnYXRoZXJfdGFza3NfZm9y -X3RtZjogdGFzayBpZCBbMHgleF0sIHN0YXRlIFsweCV4XSwgbGlkeCBbMHgleF0sIGNvb2tpZSBo -aSBbMHglMDh4XSA6IGxvIFsweCUwOHhdCgAAAAAAAAAAAAAAAAAAZ2F0aGVyX3Rhc2tzX2Zvcl90 -bWY6IHJjIFsweCV4XSwgWzB4JXhdIHRhc2sgZ2F0aGVyZWQgZm9yIHRtZiB0eXBlIFsweCV4XSBw -cm9jZXNzaW5nLgoAAAAAAAAAAAAAc2NzaV9kYXRhX291dDogY29ubl9mYyBbMHgleF0sIHN0YXRl -IFsweCV4XSwgc2Vzc19mYyBbMHgleF0gaW4gcmVjb3ZlcnkuIFNraXBwaW5nIGlzdGFza19mYyBb -MHgleF0gZnJvbSBUWC4KAAAAAHNlbmRfbXNnX3BsZDogZmMgeyBpZCBbMHgleF0sIGZsYWdzIFsw -eCV4XSwgYnVmZmVyZWQgWyV1XS4gfQoAAABzZW5kX21zZ19wbGQ6IHNlc3MgeyBpZCBbMHgleF0g -fSwgdWxwdHhjaCBbJXVdIG5vIGNyZWRpdHMgYXZhaWxhYmxlLCByZXNjaGVkdWxpbmcgcmVxdWVz -dC4KAAAAAABzZW5kX2Fib3J0X3JlcTogY3NrX2ZjLT5mbG93Y190eXBlIFsweCV4XSwgY3NrX2Zj -LT5mbG93Y19pZCBbMHgleF0sIHRpZCBbMHgleF0sIHVscHR4Y2ggWyV1XSwgYnVmZmVyZWQgWyV1 -XQoAAAAAaHcgcmVnaXN0ZXIgb3BlcmF0aW9uIG5vdCBjb21wbGV0aW5nLCByZWcgMHglMDh4IG1h -c2sgMHglMDh4IHZhbHVlIDB4JTA4eCAocmVnIDB4JTA4eCkKAAAAAAAAAAAATURJTyBDTDQ1OiBm -YWlsZWQgdG8gc2V0IHVwIE1NRCBhZGRyCgAAAAAAAAAAAAAATURJTzogZmFpbGVkIHRvIHdyaXRl -CgAAAAAAAAAAAABNRElPIENMNDU6IGZhaWxlZCB0byBzZXQgdXAgTU1EIGFkZHIKAAAAAAAAAAAA -AABNRElPOiBmYWlsZWQgdG8gcmVhZAoAAAAAAAAAAAAAAG1paV9hZHZfZmNbJXVdOiByY2FwcyAw -eCV4CgAAAAAAbWlpX2Fkdl9zcGVlZFsldV06IHJjYXBzIDB4JXgKAABuZXRpZl9zZXRfbWFjOiBs -MmRldl9mYy0+Zmxvd2NfbmV0X2wyZGV2X21icyBbMHgleF0KAAAAAAAAAAAAAAAAcmVtb3Zpbmcg -bWFjCgAAAG5vZGUtPmdycCBbJTA0eCAlMDR4ICUwNHggJTA0eF0sIG5vZGVfaWQgJXUsIHJlZl9j -bnQgJXUKAAAAAAAAAABEQUQgZm9yIGFkZHIgWyUwNHggJTA0eCAlMDR4ICUwNHhdCgAAAAAAAAAA -AAAAAABjcGxfdHhfcGt0OiB2bGFuaWQgWzB4JXhdCgAAAAAAAGNwbF90eF9wa3Q6IHZsYW5pZCBb -MHgleF0KAAAAAAAAZmxvd2NfaWQgWyV1XSBsMmRldl9mYyBbMHgleF0gYWxyZWFkeSByZWNlaXZl -ZCBSQSwgbm90IHNlbmRpbmcgUlMKAAAAAAAAAAAAAAAAAABmbG93Y2lkIFsldV0gbDJkZXZfZmMg -WzB4JXhdIE5vIElQdjYgcm91dGVyCgAAAABzZW5kX2Nsb3NlX3JlcTogY3NrX2ZjLT5mbG93Y190 -eXBlIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIGNza19mYy0+dGNiX3N0YXRlIFsw -eCV4XQoAAABzZW5kX2Nsb3NlX3JlcTogY3NrX2ZjLT5mbG93Y190eXBlIFsweCV4XSwgY3NrX2Zj -LT5mbG93Y19pZCBbMHgleF0sIHRpZCBbMHgleF0sIHVscHR4Y2ggWyV1XSxidWZmZXJlZCBbJXVd -CgAAAAAAb2ZsZF90Y3BfZG9fYWN0aXZlX2Nsb3NlOiBjc2tfZmMgWzB4JXhdLCBjc2tfZmMtPmZs -b3djX2lkIFsweCV4XSwgY3NrX2ZjLT50Y2Jfc3RhdGUgWzB4JXhdCgAAAAAAb2ZsZF90Y3BfZG9f -YWN0aXZlX2Nsb3NlOiBjc2tfZmMgWzB4JXhdLCBjc2tfZmMtPmZsb3djX2lkIFsweCV4XSwgY3Nr -X2ZjLT50Y2Jfc3RhdGUgWzB4JXhdCgAAAAAAb2ZsZF90Y3BfZGlzY29ubmVjdDogdGNiX2ZjLT5m -bG93Y19pZCBbMHgleF0sIGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2stPnRjYl9zdGF0ZSBb -MHgleF0KAAAAZGVjb2RlX2Jhc2U2NF9zdHJpbmc6IGRsZW4gWyVkXQoAAAAAAAAAAAAAAAAAAAAA -ZGVjb2RlX2hleF9zdHJpbmc6IGRsZW4gWyVkXQoAAABmb2lzY3NpX3ZhbGlkYXRlX2xvZ2luX3N0 -YWdlOiAtIDEKAAAAAAAAAAAAAAAAAABhc3luY19wZHU6IGxvZ291dCByZXF1ZXN0ZWQgYmxvY2tp -bmcgc2Vzc2lvbgoAAABhc3luY19wZHU6IHNlc3MvY29ubiBkcm9wIHJlcXVlc3RlZCBibG9ja2lu -ZyBzZXNzaW9uCgAAAAAAAAAAAAAAY3BsX3R4X3BrdDogdmxhbmlkIFsweCV4XQoAAAAAAAByZWlu -aXQgbGluay1sb2NhbCBhZGRyZXNzCgAAAAAAAG5ldF9sMmRldl9maW5kX2J5X2FkZHI6IGwyZGV2 -X2ZjLT5mbG93Y19pZCBbMHgleF0sIGwyZGMtPmxwb3J0IFsldV0sIGwyZF9mYy0+Zmxvd2NfaWQg -WzB4JXhdLCBsMmRjLT5pbjRfZGV2LmluX2FkZHIuYWRkciBbMHgleF0sIGFkZHIgWzB4JXhdCgAA -AG5ldF9sMmRldl9tdHVfY29uZmlnOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBtdHUgJXUK -AAAAAAAAAABuZXRpZl9kb19kaGNwOiB3ci0+cGFyYW0udmxhbmlkIFsldV0sIGwyZGV2X2ZjLT5m -bG93Y19uZXRfbDJkZXZfdmxhbmRldiBbMHgleF0KAGNwbF90eF9wa3Q6IHZsYW5pZCBbMHgleF0K -AAAAAAAAZW5jb2RlIGhleCBzdHJpbmc6IGRsZW4gWyVkXQoAAABjaG5ldF9maW5kX2wydF9lbnRy -eTogZGFkZHIgWyUwOHhdLCBbMHglMDh4XSwgbG9jYWwgbmV0d29yayBbJWRdCgAAAAAAAAAAAAAA -AAAAAGwydGVudCBbJTB4XSwgbDJ0ZW50LT5pZHggWyVkXQoAdGNwX3NlbmRfYW9wZW5fcmVxOiBj -c2tfZmMtPmZsb3djX2lkIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0sIGJ1ZmZl -cmVkIFsldV0sIHJlc19jbnQgWzB4JXhdLCBpcV9pZHggWzB4JXhdCgAAAAAAAAAAAAB0Y3Bfc2Vu -ZF9hb3Blbl9yZXE6IGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2tfZmMtPmZsb3djX3N0YXRl -IFsweCV4XSwgbm8gdmFsaWQgbDJ0X2VudHkuIERlbGF5aW5nIGFub3RoZXIgcmV0cnkgZm9yIDEg -c2Vjb25kcy4KAAAAAAAAAAAAAAAAAABhb3Blbl9yZXE6IGh3X2xlX2ZpbHRlcl9jdHVwbGUgZmFp -bGVkCgAAAAAAAAAAAABvZmxkX3RjcF9zZW5kX2FvcGVuX3JlcTogY3BsX3JlcS0+RmlsdGVyX2hp -IFsweCUweF0sIGNwbF9yZXEtPkZpbHRlcl9sb19GQ29FTWFzayBbMHglMHhdLCBjdHVwbGVzWzBd -IFsweCV4XSwgY3R1cGxlc1sxXSBbMHgleF0KAGxhZGRyX3JldDogbDJkYy5hZGRyIDoweCV4LCBz -cmNfYWRkcjoweCV4CgAAAAAAAGl0dF90b190YXNrX2lkeDogdGFnIFsweCUwOHhdLCBoaSBbJXVd -LCBsbyBbJXVdLCBubWFza2JpdHMgWyV1XSwgdGFza19pZHggWyV1XQoAV0FUQ0hET0c6IE5vIHRl -bXBlcmF0dXJlIHNlbnNvciBhdmFpbGFibGUuCgAAAAAAV0FUQ0hET0c6IEFjdGl2YXRpbmcKAAAA -AAAAAAAAAABXQVRDSERPRyAtIEVuYWJsZSBhY3Rpb24gJXUgdGltZSAldQoAAAAAAAAAAAAAAABX -QVRDSERPRyAtIERpc2FibGUgYWN0aW9uICV1CgAAAFdBVENIRE9HOiBEZS1hY3RpdmF0aW5nCgAA -AAAAAAAAcG9ydFsldV0gc2V0IFBBVVNFIFBBUkFNUzogcHBwZW4gJXUgdHhwZSAlI3ggcnhwZSAl -I3gKAAAAAAAAAAAAAG1wc19saW5rX3VwWyV1XSBhY2FwcyAlI3ggKDgwMi4zICUjeCkgKyBscGFj -YXBzICUjeCA9PiAlI3gKAAAAAABpcHY2X2hhbmRsZV9saW5rX2Rvd24gZmxvd2NfaWQgMHgleAoA -AAAAAAAAAAAAAABpcHY2X2hhbmRsZV9saW5rX3VwIGZsb3djX2lkIDB4JXgKAAAAAAAAAAAAAAAA -AABmb2lzY3NpIGNvbm5fZmMgWzB4JXhdLCBmbG93Y19zY2hlZGNsIFsweCV4XSwgaW5nX2NoIFsw -eCV4XSwgZWdyX2NoIFsweCV4XQoAAAAAAGwyZGV2X25vdGlmeSB3aXRoIHVua25vd24gZmxhZyBb -MHgleF0KAAAAAAAAAAAAAEludmFsaWQgcmF0ZSAldSBrYnBzLCBvdXQgb2YgY29uZmlndXJlZCBn -cmFudWxhcml0eSByYW5nZXMKAAAAAABEQ0JYOiBzdW0gb2YgcmF0ZXMgb24gYWxsIGNsYXNzZXMg -bXVzdCBiZSAxMDAgKGFjdHVhbDogJXUpCgAAAAAAcmlfd3JfaW5pdFsldV06IG1zcyAldSBpcyBu -b3QgOC1ieXRlIGFsaWduZWQKAAAAY29yZV9wcm9ncmFtX3RjYjogdGlkICUjeCB0X3N0YXRlICUj -eCByY3ZfYWR2IDB4JTA4eCByY3Zfc2NhbGUgJSN4IHR4X21heCAlI3ggcmN2X254dCAlI3ggYXRp -ZCAlI3gKAAAAAAAAAAAAAAAAAAlvcHQwICUjeCV4IG9wdDIgJSN4IGlwdjYgJSN4IGZsYWdzX3Rp -bWVyIDB4JTA4eAoAAAAAAAAAAAAAAAAAAABvZmxkX2Nvbm5lY3Rpb25fd3I6IGNvbm5lY3Rpb24g -d2l0aCA1LXR1cGxlIGxwIDB4JTA0eCBmcCAweCUwNHggbGlwIDB4JTA4eCUwOHggcGlwIDB4JTA4 -eCUwOHggZmlsdGVyIDB4JTA4eCBleGlzdHMgQCBMRSBpbmRleCAldQoAAAAAAAAAAAAAAAAAAABv -ZmxkX2Nvbm5lY3Rpb25fd3I6IGNvbm5lY3Rpb24gd2l0aCA1LXR1cGxlIGxwIDB4JTA0eCBmcCAw -eCUwNHggbGlwIDB4JTA4eCBwaXAgMHglMDh4IGZpbHRlciAweCUwOHggZXhpc3RzIEAgTEUgaW5k -ZXggJXUKAAAAAAAAAG9mbGRfY29ubmVjdGlvbl93cjogY29ubmVjdGlvbiB3aXRoIDUtdHVwbGUg -bHAgMHglMDR4IGZwIDB4JTA0eCBsaXAgMHglMDh4JTA4eCBwaXAgMHglMDh4JTA4eCBmaWx0ZXIg -MHglMDh4CgAAAABvZmxkX2Nvbm5lY3Rpb25fd3I6IGNvbm5lY3Rpb24gd2l0aCA1LXR1cGxlIGxw -IDB4JTA0eCBmcCAweCUwNHggbGlwIDB4JTA4eCBwaXAgMHglMDh4IGZpbHRlciAweCUwOHgKAAAA -AAAAAAAAAAAARVEgKGZyZWVzbGlzdCkgcGZuICV1IHZmbiAldTogZmxpZF9hICV1IGZldGNoIGJ1 -cnN0IG1heFsldV0gJXUgKCV1IGJ5dGVzKSA+IDI4CgBJUUZMSU5UIHBmbiAldSB2Zm4gJXU6IGlx -aWQgJXUgdG9vIGxhcmdlIChtYXggJXUpCgAAAAAAAAAAAAAAAAAASVFGTElOVCBwZm4gJXUgdmZu -ICV1OiBpcWlkICV1IG5vdCBhbGxvY2F0ZWQKAAAASVFGTElOVCBwZm4gJXUgdmZuICV1OiBmbDBp -ZCAldSB0b28gbGFyZ2UgKG1heCAldSkKAAAAAAAAAAAAAAAAAElRRkxJTlQgcGZuICV1IHZmbiAl -dTogZmwwaWQgJXUgbm90IGFsbG9jYXRlZAoAAElRRkxJTlQgcGZuICV1IHZmbiAldTogZmwxaWQg -JXUgdG9vIGxhcmdlIChtYXggJXUpCgAAAAAAAAAAAAAAAABJUUZMSU5UIHBmbiAldSB2Zm4gJXU6 -IGZsMWlkICV1IG5vdCBhbGxvY2F0ZWQKAABJUUZMSU5UIHBmbiAldSB2Zm4gJXU6IGZsMWlkICV1 -IGlzIHZhbGlkIGJ1dCBub3QgZmwwaWQgJXUKAAAAAAAASVFGTElOVCBwZm4gJXUgdmZuICV1OiBm -bDFpZCAldSBpcyB2YWxpZCBidXQgaGVhZGVyIHNwbGl0IGZlYXR1cmUgaXMgbm90IGVuYWJsZWQK -AAAAAAAAAAAAAAAAAAAARVEgcGZuICV1IHZmbiAldTogY3JlYXRpbmcgRVRIIGVxaWQgJXUgd2l0 -aCBwZW5kaW5nIFdSKHMpIChudW1fYnl0ZXMgJXUgYW5kIGZsYWdzIDB4JTA4eAoAAAAAAAAARVEg -cGZuICV1IHZmbiAldTogY3JlYXRpbmcgQ1RSTCBlcWlkICV1IHdpdGggcGVuZGluZyBXUihzKSAo -bnVtX2J5dGVzICV1IGFuZCBmbGFncyAweCUwOHgKAAAAAAAARVEgcGZuICV1IHZmbiAldTogZXFp -ZCAldSB0b28gbGFyZ2UgKG1heCAldSkKAAAARVEgcGZuICV1IHZmbiAldTogZXFpZCAldSBub3Qg -YWxsb2NhdGVkCgAAAAAAAAAAZGNieF9wb3B1bGF0ZV9jdHJsIGNvZGUgaW5jb21wbGV0ZQoAAAAA -AAAAAAAAAAAAdmlfdGNhbV9yYXcgaWR4ICV1IG1hYyAweCUwNHggJTA4eAoAAAAAAAAAAAAAAAAA -cG9ydF9ibGlua19sZWRfcmVzdG9yZQoAAAAAAAAAAABwb3J0X2JsaW5rOiBibGlua2R1cj0weCV4 -IGJsaW5rX3JlZmNudAoAAAAAAAAAAABwb3J0X2JsaW5rOiAJYmxpbmtfcmVmY250PTB4JXgKAHBv -cnRfYmxpbms6IAlibGlua19yZWZjbnQ9MHgleAoAbWlpX2FucmVzdGFydFsldV06IGFjYXBzIDB4 -JXgKAABwb3J0X2NtZF9oYW5kbGVyOiB1bmtub3duIHUuZGNiLnR5cGUgMHgleAoAAAAAAABwb3J0 -WyV1OjB4JTAyeDoweCUwMnhdOiBsMWNmZywgaW52YWxpZCByZXF1ZXN0LCBwY2FwcyAweCV4IGFj -YXBzIDB4JXggcmNhcHMgMHgleAoAAAAAAAAAAAAAAAAAAABSZXR1cm5pbmcgc3VjY2VzcyBhcyB0 -aGUgbGluayBzdGF0dXMgdXBkYXRlIGlzIHBlbmRpbmcKAAAAAAAAAAAAcG9ydFsldToweCUwMng6 -MHglMDJ4XTogbDFjZmcsIHBjYXBzICUjeCBhY2FwcyAlI3ggcmNhcHMgJSN4IG1jYXBzICUjeAoA -AAAAAAAAAABwb3J0WyV1OjB4JTAyeDoweCUwMnhdOiBsMWNmZywgbWRpIGlzc3VlIHBjYXBzIDB4 -JXggYWNhcHMgMHgleCByY2FwcyAweCV4CgAAAAAAAHBvcnRbJXU6MHglMDJ4OjB4JTAyeF06IGwx -Y2ZnLCBjYW5ub3QgZm9yY2Ugbm8vbXVsdGlwbGUgc3BlZWQocyksIHBjYXBzIDB4JXggYWNhcHMg -MHgleCByY2FwcyAweCV4CgAAAAAAAAAAAAAAAABiYWQgRmxvd0MgJWQgb24gZXN0YWJsaXNoZWQg -Y29ubmVjdGlvbgoAAAAAAAAAAABldGhfZmxvd2NfaGFuZGxlclsweCV4XTogZmxhZ3MgMHglMDh4 -IG51bV9ieXRlcyAldSBzY2hlZGNsIDB4JXggLT4gMHgleAoAAAAAAAAAAHRhc2tfaWR4X3RvX2l0 -dDogdGFza19pZHggWyV1XSwgaGkgWyV1XSwgbG8gWyV1XSwgbm1hc2tiaXRzIFsldV0sIHN3X3Rh -ZyBbMHglMDh4XSwgcHBvZF9pZHggWyVkXQoAAAAAAAAAAAAAAAAAAABzY3NpX2NtZDogcmVjZWl2 -ZWQgVE1GIG9wIFsweCV4XSBmdW5jIFsweCV4XSBvbiBjb25uIFsweCV4XSB0aHJvdWdoIGNvbW1h -bmQgcGF0aC4KAAAAAAAAAAAAAAAAAABzY3NpX2NtZDogY29ubl9mYyBbMHgleF0sIHN0YXRlIFsw -eCV4XSwgc2Vzc19mYyBbMHgleF0gaW4gcmVjb3ZlcnkuIFNraXBwaW5nIGlzdGFza19mYyBbMHgl -eF0gZnJvbSBUWC4KAAAAAAAAAAAAc2NzaV9yZWFkOiBjb25uX2ZjIFsweCV4XSwgc3RhdGUgWzB4 -JXhdLCBzZXNzX2ZjIFsweCV4XSBpbiByZWNvdmVyeS4gU2tpcHBpbmcgaXN0YXNrX2ZjIFsweCV4 -XSBmcm9tIFRYLgoAAAAAAAAAAHNjc2lfd3JpdGU6IGNvbm5fZmMgWzB4JXhdLCBzdGF0ZSBbMHgl -eF0sIHNlc3NfZmMgWzB4JXhdIGluIHJlY292ZXJ5LiBTa2lwcGluZyBpc3Rhc2tfZmMgWzB4JXhd -IGZyb20gVFguCgAAAAAAAABkY2J4X2NvbnRyb2xfc21bJXVdIENPTlRST0xfTElOS1VQCgAAAAAA -AAAAAAAAAABkY2J4X2NvbnRyb2xfc21bJXVdIENPTlRST0xfVVBEQVRFX0RDQlhfVExWCgAAAABk -Y2J4X2NvbnRyb2xfc21bJXVdIENPTlRST0xfUEVFUl9OT1RfQURWRVJUSVNFX0RDQlgKAAAAAAAA -AAAAAAAAZGNieF9jb250cm9sX3NtWyV1XSBDT05UUk9MX1VQREFURV9PUEVSX1ZFUlNJT04KAAAA -AAAAAAAAAAAAAAAAAGRjYnhfY29udHJvbF9zbVsldV0gQ09OVFJPTF9QUk9DRVNTX1BFRVJfVExW -CgAAAGRjYnhfY29udHJvbF9zbVsldV0gQ09OVFJPTF9BQ0tfUEVFUgoAAAAAAAAAAAAAAGRjYnhf -aWVlZV92YWxpZGF0ZVsldV0gZXJyb3IgKG91aSAlI3ggc3VidHlwZSAlI3ggbGVuICUjeCkKAAAA -AABkY2J4X2NlZV92YWxpZGF0ZVsldV0gZXJyb3IKAAAAAGNobmV0X2wydF91cGRhdGU6IGwyZGV2 -X2ZjIFsweCV4XSwgbDJkZXZfZmMtPmZsb3djX2lkIFsldV0gbDJkZXZfZmMtPmZsb3djX2ZsYWdz -IFsweCV4XSwgaW50ZiBbMHgleF0KAAAAAAAAAAAAAABjaG5ldF9sMnRfdXBkYXRlOiBsMmRldl9m -Yy0+Zmxvd2NfaWQgWyV1XSBhbHJlYWR5IHNjaGVkdWxlZAoAAAAAY2huZXRfbDJ0X3VwZGF0ZTog -aW4gZGVsYXllZF9wcm9jZXNzaW5nLCBsMnRlbnQgWyUwOHhdCgAAAAAAAAAAAERIQ1B2NiBSRVBM -WSByZWNlaXZlZCBzdGF0ZSAldQoAZGhjcCByZXBseSByZWNlaXZlZCBpbiB3cm9uZyBzdGF0ZSAl -ZAoAAAAAAAAAAAAAdW5rbm93biBzZXJ2ZXJpZC4gSWdub3JpbmcgZGhjcCByZXBseQoAAAAAAAAA -AAAAcmVjZWl2ZWQgcmVwbHkgd2l0aCBkaWZmZXJlbnQgYWRkcmVzcy4gaWdub3JpbmcgZGhjcCBy -ZXBseQoAAAAAAERIQ1B2NiBBRFZFUlRJU0UgcmVjZWl2ZWQKAAAAAAAAZGhjcCBhZHZlcnRpc2Ug -cmVjZWl2ZWQgaW4gd3Jvbmcgc3RhdGUgJWQKAAAAAAAAaWdub3JpbmcgcmN2ZCBhZHZlcnRpc2Ug -cHJlZmVyZW5jZSAldQoAAAAAAAAAAAAAcHJlZml4IG5vZGUgMHgleCwgdmFsaWRfbGlmZXRpbWUg -JXUsIGN1cnJlbnRfdGltZSAldSBleHBpcmVkLCBkZWxldGluZyBpdAoAAAAAAABEZWxldGVkIHBy -ZWZpeDogMHhbJTA0eCAlMDR4ICUwNHggJTA0eF0KAAAAAAAAAABTdGFydCBESENQdjYgdG8gZ2V0 -IHRoZSBpcCBhZGRyZXNzCgAAAAAAAAAAAAAAAABObyBkaGNwLCBkaGNwIHN0YXRlICVkLCBhZGRy -IHN0YXRlICVkCgAAAAAAAAAAAABwaW5nIHJlcSBwYXlsb2FkIHRvbyBsYXJnZSAldS4gSWdub3Jp -bmcgcmVxLgoAAABSUiByY3ZkCgAAAAAAAAAAY2huZXRfaXB2Nl9yZF9pbnB1dDogSW52YWxpZCBS -ZWRpcmVjdAoAAAAAAAAAAAAAY2huZXRfaXB2Nl9uYV9pbnB1dDogSW52YWxpZCBOQQoAAAAAAAAA -AAAAAAAAAAAAaXB2NiBOQSByY3ZkCgAAAGNobmV0X2lwdjZfbmFfaW5wdXQ6IER1cGxpY2F0ZSBh -ZGRyZXNzIGRldGVjdGVkIQoAAAAAAAAAAAAAAAAAAABOQSBpbiByZXBvbnNlIG9mIE5TCgAAAAAA -AAAAAAAAAGNobmV0X2lwdjZfbnNfaW5wdXQ6IEludmFsaWQgTlMKAAAAAAAAAAAAAAAAAAAAAGNo -bmV0X2lwdjZfbnNfaW5wdXQ6IEludmFsaWQgTlMgaXB2NmgtPnBsZW4gJXUKAGlwdjYgTlMgcmN2 -ZAoAAABjaG5ldF9pcHY2X25zX2lucHV0OiBEdXBsaWNhdGUgYWRkcmVzcyBkZXRlY3RlZAoAAAAA -AAAAAAAAAAAAAAAAY2huZXRfaXB2Nl9uc19pbnB1dDogc29tZWJvZHkgdHJ5aW5nIHRvIHVzZSBv -dXIgYWRkcmVzcwoAAAAAAAAAAGNobmV0X2lwdjZfbnNfaW5wdXQ6IHJlcSBmb3IgYWRkciByZXNv -bHV0aW9uCgAAAEhvcCBieSBIb3Agb3B0aW9uCgAAAAAAAAAAAAAAAAAAcHJvY2Vzc19kaGNwX29w -dHM6IHJvb3QgcGF0aCBsZW4gWyVkXSBieXRlcwoAAAAAbmV0aWZfcHJvY2Vzc19kaGNwX29wdHM6 -IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIE1TR19UWVBFIFslZF0sIGRoY3R4dC0+c3RhdGUg -WyVkXQoAAAAAAAAAAAAAaWNtcF9yZWN2OiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBwaWQg -WzB4JXhdLCBpY21wIHR5cGUgWzB4JXhdCgAAAAAAAAAAAAAAAABhcnBfcmVjdjogaXBpZCBbMHgl -eF0sIGluX2FkZHIuYWRkciBbMHgleF0sIHNpcCBbMHgleF0sIHJpcCBbMHgleF0sIGFycF9vcCBb -MHgleF0KAAAAAAAAAAAAAAAAAABjaG5ldF9hcnBfcmVjdjogaXAgY29uZmxpY3QgZGV0ZWN0ZWQK -AAAAAAAAAAAAAABjaG5ldF9hcnBfcmVjdjogcGlkIFsldV0sIHZsYW4gWzB4JXhdLCBhcnAgb3Ag -WzB4JXhdLCBzaXAgWzB4JXhdLCByaXAgWzB4JXhdCgAAAGNobmV0X2lwdjZfcmVjdjogdmxhbiBl -eHRyYWN0ZWQsIHZsYW5pZCBbJXVdLCBsMmRldl9mYy0+Zmxvd2NfbmV0X2wyZGV2X3ZsYW5kZXYg -WzB4JXhdCgAAAAAAAAAAAEludmFsaWQgZGF0YSBsZW5ndGggZGxlbiAldSwgcGFja2V0IGluZGlj -YXRlcyAldSBieXRlcwoAAAAAAAAAAABVbmtub3duIElQdjYgbnh0IHByb3RvY29sICV1CgAAAGNz -b2NrX2ZyZWU6IHNpemVvZihjc2tfZmMtPnUuY3NvY2spIFsldV0sIGJ5dGVzCgAAAAAAAAAAAAAA -AAAAAABjc29ja19wZWVyX2Nsb3NlOiBjc2tfZmMtPmZsb3djX2lkIFsweCV4XSwgdGNiX2ZjLT5m -bG93Y19pZCBbMHgleF0sIGNza19mYy0+Zmxvd2Nfc3RhdGUgWzB4JXhdLCB0Y2JfZmMtPmZsb3dj -X3N0YXRlIFsweCV4XQoAAAAAAGNzb2NrX3BlZXJfY2xvc2U6IGNza19mYy0+Zmxvd2NfaWQgWzB4 -JXhdLCBjc2tfZmMtPmZsb3djX3N0YXRlICBbMHgleF0KAAAAAAAAAAAAdGNwX2Nsc19hYnJ0X3Jw -bDogdGNiIHRpZCBbMHglMDZ4XSwgZmxvd2NfdHlwZSBbMHgleF0sIGNwbG9wIFsweCV4XSBmbG93 -Y19zdGF0ZSAweCV4CgAAAAAAAAAAAAAAQ2Fubm90IGdldCBjaGFubmVsIHJhdGUgJXUgd2l0aCBj -b25maWd1cmVkIGdyYW51bGFyaXRpZXMuIENoZWNrIGNvbmZpZyBmaWxlCgAAAABwa3RzY2hlZF9j -aF9ybFsldV06IGNoYW5uZWwgcmwgbm90IGF2YWlsYWJsZSBpbiBjb25qdW5jdGlvbiB3aXRoIGZs -b3cgc2hhcGluZwoAAHBrdHNjaGVkX2NoX3JsWyV1XTogcmF0ZSAldSBtYXggJXUKAAAAAAAAAAAA -AAAAAHBrdHNjaGVkX2NsX3dyclsldToldV06IHdlaWdodCAldQoAAAAAAAAAAAAAAAAAAGVxX3Bh -cmFtc1sweCV4OjB4JXhdOiBkbWFxIDB4JXggcmVhZCAldSBwZiAldSBlcWlkX2FwaSAldSByZXQg -JWQKAAAAAAAAAAAAAAAAAAAAaHdfbWFfYWRkcl90b19tZW1fdHlwZV9vZmY6IE1BIGFkZHJlc3Mg -MHglMDh4IGlzIG5vdCBtYXBwZWQKAAAAAGh3X21hX2FkZHJfdG9fbWVtX3R5cGVfb2ZmOiBNQSBh -ZGRyZXNzIDB4JTA4eCBtYXBzIHRvIHR5cGUgJXUgb2Zmc2V0IDB4JXgKAAAAAAAAbWVtX21hbGxv -Y190ZW1wOiBmYWlsZWQgdG8gYWxsb2NhdGUgJXUgYnl0ZXMsIHJldHVybmluZyBOVUxMCgAAAG1l -bV9tYWxsb2M6IGZhaWxlZCB0byBhbGxvY2F0ZSAldSBieXRlcywgcmV0dXJuaW5nIE5VTEwKAAAA -AAAAAABsZSBjb25maWd1cmF0aW9uOiByZXF1ZXN0ZWQgJXUgdGNhbSBlbnRyaWVzIGJ1dCBvbmx5 -ICV1IGF2YWlsYWJsZSAobmZpbHRlciAldSBuc2VydmVyICV1IG5ocGZpbHRlciAldQoAAAAAAAAA -AAAAbGUgY29uZmlndXJhdGlvbjogdGNhbSByZWdpb25zIG11c3QgaGF2ZSBtdWx0aXBsZSBvZiA2 -NCBlbnRyaWVzLCBuZmlsdGVyICV1IG5ocGZpbHRlciAldSBuc2VydmVyICV1CgAAAAAAAAAAAAAA -AGh3X3RwX3RjcF90dW5pbmdzOiB0dW5pbmcgZm9yIGNsdXN0ZXIgZW52aXJvbm1lbnQKAAAAAAAA -AAAAAAAAAABod190cF90Y3BfdHVuaW5nczogdHVuaW5nIGZvciBMQU4gZW52aXJvbm1lbnQKAABo -d190cF90Y3BfdHVuaW5nczogdHVuaW5nIGZvciBXQU4gZW52aXJvbm1lbnQKAABod190cF90Y3Bf -dHVuaW5nczogbWFudWFsIHR1bmluZwoAAAAAAAAAAAAAAAAAAABfaHdfY2ltX2ZsYXNoX21lbWNw -eTogbWVtY3B5WCBzdGFydAoAAAAAAAAAAAAAAABfaHdfY2ltX2ZsYXNoX21lbWNweTogZHN0IDB4 -JTA4IG9mZnNldCAweCUwOHggc2l6ZSAldSwgd2lkdGggb2YgJXUgaXMgbm90IHN1cHBvcnRlZAoA -AAAAAAAAAAAAAABfaHdfY2ltX2ZsYXNoX21lbWNweTogbWVtY3B5WCBlbmQKAAAAAAAAAAAAAAAA -AABjb25maWd1cmF0aW9uIGZpbGUgcGFyc2VyIGVuY291bnRlcmVkIGVycm9yIEAgbGluZSAldToK -AAAAAAAAAAAASE9TVCBQQUdFX1NJWkUgWzB4JTBseF0gdG9vIHNtYWxsLCBtaW4gWzB4JTBseF0g -cmVxdWlyZWQKAAAAAAAAAHBhZ2Ugc2l6ZSBbJWx1XSBtaXNtYXRjaAoAAAAAAAAAUEFHRSBzaXpl -ICVsdSB1bnN1cHBvcnRlZCwgZGRwIGRpc2FibGVkCgAAAAAAAAAASG9zdCBwYWdlX3NpemUgJWx1 -LCBkZHBfaWR4ICV1CgB0bHNfYm1faW5pdDogbWVtX21hbGxvYyBmYWlsZWQhCgAAAAAAAAAAAAAA -AAAAAABkY2J4X2llZWVfY29uc3RydWN0WyV1XSBldHMgJXUgcGZjICV1IGFwcCAldQoAAABkY2J4 -X3RpbWVvdXRbJXVdCgAAAAAAAAAAAAAAAAAAAGRjYnhfcnVuX3ZlcnNpb25fc21bJXVdIERDQlhf -VkVSX1NUQVRFX1JVTl9JRUVFCgAAAAAAAAAAAAAAAAAAAABkY2J4X3J1bl92ZXJzaW9uX3NtWyV1 -XSBEQ0JYX1ZFUl9TVEFURV9SVU5fQ0VFCgBkY2J4X3J1bl92ZXJzaW9uX3NtWyV1XSBEQ0JYX1ZF -Ul9TVEFURV9SVU5fTk9ORQoAAAAAAAAAAAAAAAAAAAAATUFDIGZhaWxlZCB0byByZXN5bmMgdHgK -AAAAAAAAAAByeF9jb25maWcgc3BlZWQgMHgleCBwbGxfc2VsICVkIGJ3X3NlbCAlZAoAAAAAAABw -b3J0WyV1XSBsaW5rIHVwICgldSkgKHNwZWVkICUjeCBhY2FwcyAlI3ggbHBjYXBzICUjeCkKAAAA -AAAAAAAAcG9ydF9oc3Nfc2lnZGV0WyV1XTogaHNzX3NpZ2RldCBjaGFuZ2VkIHRvIDB4JXgKAAAA -AAAAAAAAAAAAAAAAAHBvcnRbJXVdIGluaXRpYWxpemluZyBLUgoAAAAAAAAAQ2FsY3VsYXRpb24g -b3V0IG9mIGJvdW5kcyBmdXJpbmcgaW5pdDogJSN4ICUjeCAlI3gKAAAAAAAAAAAAAAAAAGxlIGNv -bmZpZ3VyYXRpb246IGhhc2ggbW9kZSByZXF1aXJlcyBhdCBsZWFzdCAxNiBlbnRyaWVzLCBuaGFz -aCAldQoAAAAAAAAAAAAAAAAAbGUgY29uZmlndXJhdGlvbjogaGFzaCBzaXplICV1IG11c3QgYmUg -bXVsdGlwbGUgb2YgJXUsIG5oYXNoICV1CgAAAAAAAAAAAAAAAAAAAABBZGRpbmcgbWF0Y2gtYWxs -IGNsaXAgZW50cnkgQCBsb2MgMHgleC8lZAoAAAAAAABod19zZ2VfbWFtZW1faW5pdDogZW5jb3Vu -dGVyZWQgZXJyb3IgJWQKAAAAAAAAAABfaHdfdHBfcGdtbmd0OiB0eF9wYWdlX21heCAldSByeF9w -YWdlX21heCAldSBwc3RydWN0cyAldSBzaXplICV1CgAAAAAAAAAAAAAAAAAAAG1wYXJ0aXRpb25f -b3RoZXJzX3RvdGFsOiBkZHAgJXUgZGRwX2lzY3NpICV1IHN0YWcgJXUgcGJsICV1IHJxICV1IHJx -dWRwICV1IC0+ICV1CgAAAAAAAAAAAAAAAAAAAF9tcGFydGl0aW9uX2JhbmtzX21jWDogbmJhbmtz -X3BtdHggJXUgKCV1TUIpIG5iYW5rc19wbXJ4ICV1ICgldU1CKSBuYmFua3Nfb3RoZXJzICV1ICgl -dU1CKSBuYmFua3NfZncgJXUgKCV1TUIpCgBfbXBhcnRpdGlvbl9iYW5rc19tYzE6IG5iYW5rc19w -bXR4ICV1ICgldU1CKSBuYmFua3Nfb3RoZXJzICV1ICgldU1CKSBuYmFua3NfZncgJXUgKCV1TUIp -CgAAAAAAAABfbXBhcnRpdGlvbl9iYW5rc19tYzA6IG5iYW5rc19wbXJ4ICV1ICgldU1CKSBuYmFu -a3Nfb3RoZXJzICV1ICgldU1CKQoAAAAAAAAAAAAAAG1lbV9tYWxsb2NfaW50ZXJuYWw6IGZhaWxl -ZCB0byBhbGxvY2F0ZSAldSBieXRlcywgcmV0dXJuaW5nIE5VTEwKAAAAAAAAAAAAAAAAAAAAaHdf -ZWRjX2Jpc3RbJXVdOiBiaXN0X2NtZFsweCUwOHhdIGFkZHIgMHgleCBsZW4gMHgleAoAAAAAAAAA -AAAAAGh3X2VkY19iaXN0WyV1XTogZG9uZSwgZW5jb3VudGVyZWQgJXUgZXJyb3JzIG9uIGZpcnN0 -IGFuZCAldSBlcnJvcnMgb24gc2Vjb25kIGF0dGVtcHQgKCV1Z2JwcykKAG1lbV9pbml0X2NhY2hl -czogY2FjaGVfc2l6ZSAldSBmbG93Y19idWZfdGNiX2NhY2hlX3NpemUgJXUgYnVmbGw2NF9jYWNo -ZV9zaXplICV1CgAAAAAAAAAAAAAAAAAAAG1wYXJ0aXRpb25fcG10eDogbSAweCUwOHggc2l6ZSAl -dQoAAAAAAAAAAAAAAAAAAG1wYXJ0aXRpb25fcG1yeDogbSAweCUwOHggc2l6ZSAldQoAAAAAAAAA -AAAAAAAAAG1wYXJ0aXRpb25fZWRjIChubyBleHRtZW0pOiBtIDB4JTA4eCBzaXplICV1CgAAAG1w -YXJ0aXRpb25fZWRjX2VzdGltYXRlOiBodyBtb2R1bGVzIHJlcXVpcmUgJWQgYnl0ZXMgaW4gRURD -CgAAAABUZW1wZXJhdHVyZS9Wb2x0YWdlIFNlbnNvcjogQ29yZSBjbG9jayAldSA+ICV1OyBjYXBw -aW5nIHRvIHN0YXkgaW4gY29tcGxpYW5jZSB3aXRoIGhhcmR3YXJlLgoAAABjaG5ldF9ieWU6bDJk -ZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgbDJkZXZfZmMtPmZsb3djX3BjaWVfcGZuIFsweCV4XSwg -bDJkZXZfZmMtPmZsb3djX3BjaWVfdmZuIFsweCV4XSwgcG9ydCBbMHgleF0KAAAAAAAAAAAAAAAA -AGNobmV0X2J5ZTp2bGFuZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIHZsYW5kZXZfZmMtPmZsb3dj -X3BjaWVfcGZuIFsweCV4XSwgdmxhbmRldl9mYy0+Zmxvd2NfcGNpZV92Zm4gWzB4JXhdLCBwb3J0 -IFsweCV4XQoAAAAAAAAAZm9pc2NzaV9jb3JlX2J5ZTogYWN0aXZlIHNlc3NfY250ICVkCgAAAAAA -AAAAAAAAaHdfbWFjX2FlY19jb21wbGV0ZVsldV0gb24gbGFuZXMgJSN4IChzaWdkZXQgJSN4KSwg -dHhfbGFuZXMgJSN4CgAAAAAAAAAAAAAAAAAAAABhZWNfZnNtWyV1XSA6IHN0YXRlIFNUQVJUIChz -aWdkZXQgJSN4KQoAAAAAAAAAAABhZWNfZnNtWyV1XSA6IFRyYW5zaXRpb25pbmcgdG8gVFJBSU5J -TkdfTE9DQUwKAABhZWNfZnNtWyV1XSA6IFRyYW5zaXRpb25pbmcgdG8gQ09FRl9TVEFUVVNfVVBB -RFRFCgAAAAAAAAAAAAAAAAAAYWVjX2ZzbVsldV0gOiB0cmFuc2l0aW9uaW5nIHRvIFRSQUlOSU5H -CgAAAAAAAAAAYWVjX2ZzbVsldV0gOiBUUkFJTklOR19DT01QTEVURQoAAAAAAAAAAAAAAAAAAAAA -YWVjX2ZzbVsldV0gOiBSZW1vdGUgZmF1bHQgd2hpbGUgd2FpdGluZyBmb3IgbGluayBzdGF0dXMg -MHgleAoAAGFlY19mc21bJXVdIDogUmVtb3RlIGZhdWx0IGNsZWFyZWQgd2hpbGUgd2FpdGluZyBm -b3IgbGluayBzdGF0dXMgMHgleAoAAAAAAAAAAAAAYWVjX2ZzbVsldV0gOiBET05FCgAAAAAAAAAA -AAAAAABhZWNfZnNtWyV1XSB0aW1lZCBvdXQgdHJhaW5pbmcgRlNNX1NUQVRFXzAgMHgleCwgXzEg -MHgleCBfMiAweCV4IF8zIDB4JXgsIExpbmsgU3RhdHVzIDB4JXgKAAAAAABiZWFuX2ZzbVsldV0g -OiBzdGF0ZSBTVEFSVCAoY291bnQgPSAldSkKAAAAAAAAAABiZWFuX2ZzbVsldV0gOiBlbnRlcmlu -ZyBzdGF0ZSBXQUlUX1NJR0RFVAoAAAAAAABiZWFuX2ZzbVsldV0gOiBlbnRlcmluZyBzdGF0ZSBO -WFBfSEFORExFCgAAAAAAAABiZWFuX2ZzbVsldV0gOiBNQUNfUE9SVF9QQ1NfREVCVUclZF9STyAw -eCV4CgAAAABiZWFuX2ZzbVsldV0gOiBlbnRlcmluZyBzdGF0ZSBXQUlUX0NPTVBMRVRFCgAAAABi -ZWFuX2ZzbVsldV0gOiBzdGF0ZSBET05FCgAAAAAAAGJlYW5fZnNtWyV1XSA6IGZlYyBsb2NhbCAw -eCV4LCByZW1vdGUgMHgleCwgbmVnb3RpYXRlZCAweCV4CgAAAABiZWFuX2ZzbVsldV0gOiBzdGF0 -ZSBSRVNUQVJUMQoAAGJlYW5fZnNtWyV1XSA6IHN0YXRlIFJFU1RBUlQyCgAAYmVhbl9mc21bJXVd -IDogc3RhdGUgUkVTVEFSVDMKAABiZWFuX2ZzbVsldV0gVElNRU9VVDsgc3RhdGUgJXUgZXRoX3N0 -YXR1cyAlI3ggYmVhbl9zdGF0dXMgJSN4IFBDU19ERUJVRzBfUk8gJSN4IGhzcyBzaWdkZXQgJSN4 -IHJldHJ5X2NudCAldQoAAAAAcG9ydCAldSBjaGFuZ2luZyBzcGVlZCB0byAxRwoAAABwb3J0ICV1 -IG5lZ290aWF0ZWQgdW5zdXBwb3J0ZWQgc3BlZWQgJSN4CgAAAAAAAABiZWFuL2FlYyBjb21wbGV0 -ZSAocmV0cnk6ICV1KQoAAHBvcnRbJXVdIHJlc2V0dGluZyBLUgoAAAAAAAAAAAAAcG9ydCAldSBu -ZWdvdGlhdGVkIHVuc3VwcG9ydGVkIHNwZWVkCgAAAAAAAAAAAAAAcG9ydCAldSBuZWdvdGlhdGVk -IHB0eXBlIDB4JXgsIHR4X2xhbmVzIDB4JXgsIHJ4X2xhbmVzIDB4JXgsIGZlYyAweCV4CgAAAAAA -AAAAAABiZWFuL2FlYyBjb21wbGV0ZSAocmV0cnk6ICV1KQoAAE1DOiBHUE8gMHgleCwgUkxPIDB4 -JXgKAAAAAAAAAAAAcGZuICV1IHZmbiAldSBjb21wbGV0ZSBpbW1lZGlhdGUKAAAAAAAAAAAAAAAA -AAAAYmFkIG1haWxib3ggY21kOiBwZm4gMHgleCB2Zm4gMHgleDsgb3Bjb2RlIDB4JXggPiBMQVNU -QzJFIDB4JXgKAG1haWxib3ggY21kIG5vdCB5ZXQgc3VwcG9ydGVkOiBwZm4gMHgleCB2Zm4gMHgl -eDsgb3Bjb2RlIDB4JXgKAABiYWQgbWFpbGJveCBjbWQ6IHBmbiAweCV4IHZmbiAweCV4OyBvcGNv -ZGUgMHgleCBpcyB2YWxpZCBwb3N0IGRldmljZSBpbml0IG9ubHkKAGJhZCBtYWlsYm94IGNtZDog -cGZuIDB4JXggdmZuIDB4JXg7IG9wY29kZSAweCUwMnggcmFtYXNrIDB4JXggY21kIHJhbWFzayAw -eCV4CgAAYmFkIG1haWxib3ggY21kOiBwZm4gMHgleCB2Zm4gMHgleDsgb3Bjb2RlIDB4JTAyeCBs -ZW4xNiAweCV4IHZlcnN1cyBleHBlY3RlZCBsZW4xNiAweCV4CgAAAAAAAAAAaW5zdWZmaWNpZW50 -IGNhcHMgdG8gcHJvY2VzcyBtYWlsYm94IGNtZDogcGZuIDB4JXggdmZuIDB4JXg7IHJfY2FwcyAw -eCV4IHd4X2NhcHMgMHgleCByZXF1aXJlZCByX2NhcHMgMHgleCB3X2NhcHMgMHgleAoAAAAAAAAA -AABpbnN1ZmZpY2llbnQgY2FwcyB0byBwcm9jZXNzIG1haWxib3ggY21kOiBwZm4gMHgleCB2Zm4g -MHgleDsgcl9jYXBzIDB4JXggd3hfY2FwcyAweCV4IHJlcXVpcmVkIHJfY2FwcyAweCV4IHdfY2Fw -cyAweCV4CgAAAAAAAAAAAE1DOiBUYWtpbmcgUEhZIG91dCBvZiByZXNldCAoRlBHQSkuCgAAAAAA -AAAAAAAAAGRvd25sb2FkX3NyYW06IGVycm9yLCByZXQgJWQKAAAAZG93bmxvYWRfdGNhbTogZXJy -b3IsIHJldCAlZAoAAABod19wb3dlcl9wcmVwOiBWREQ9Tk9ORSBidXQgVkNTPSVkCgAAAAAAAAAA -AAAAAABod19wb3dlcl9wcmVwOiB1bnN1cHBvcnRlZCBleHRlcm5hbCBhZGp1c3RhYmxlIHBvd2Vy -IHJlZ3VsYXRvcnMgVkREPSVkLCBWQ1M9JWQKAGh3X3Bvd2VyX3ByZXA6IHVuc3VwcG9ydGVkIFZE -RD0lZAoAAAAAAAAAAAAAAAAAAGh3X3Bvd2VyX3ByZXA6IHVuc3VwcG9ydGVkIFZDUz0lZAoAAAAA -AAAAAAAAAAAAAGh3X3Bvd2VyX3ByZXA6IGkyYyB3cml0ZSBlcnJvciwgVkREPSVkLHJldD0lZAoA -AGh3X3Bvd2VyX3ByZXA6IHVuc3VwcG9ydGVkIFZERD0lZAoAAAAAAAAAAAAAAAAAAGh3X3Bvd2Vy -X3ByZXA6IGkyYyB3cml0ZSBlcnJvciwgVkNTPSVkLHJldD0lZAoAAGh3X3Bvd2VyX3ByZXA6IHVu -c3VwcG9ydGVkIFZDUz0lZAoAAAAAAAAAAAAAAAAAAGV4dG1lbSBjbGsgbW9kZSAlZCwgZXh0bWVt -ICV1LCByZWZfY2xrICV1CgAAAAAAAHVwIGNsayBtb2RlICVkLCByZWZfY2xrICV1LCBkZXYuY2xr -LnVwICV1CgAAAAAAAGNsayBtb2RlICVkLCByZWZfY2xrICV1LCBkZXYuY2xrLmNvcmUgJXUKAAAA -AAAAAFZQRCByZWdpb24gaXMgdG9vIHNtYWxsIChTRVJDRkdfU1JfUEZOVlBEU0laRSAweCV4KQoA -AAAAAAAAAAAAAABjZl9wcmVwOiBlcnJvciwgcmV0ICVkCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAACCAAABIAAAAAAAAAAAAAAAggAAAQAAAAAAAAAAAAAAAIIAAADAAAAAAAAAAAAA -AACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgIAAAAAAAAAA -AAAAAAAAAAAAgAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAABAAAAABAAAAAAAAAAAAAAAAMA -AAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAIAQAwAAAAAAAAgAAAAAAAAAAAIAAAAAAAAAAAAA -AAAAIAAAAAAAAAAAAAAAAAAAAAEAA4AAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAIAOAAAAA -AAAAAAAAAAAAABACgACAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAABAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAgAACgAAAAAAAAAAAAAAAAAAAAgAAAAAA -AAAAAAAAAACAAAIAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAB -AAMAAAAAAAAAAAAAAAAAAAKDAAAAAAAAAAAAAAAAABACgAAAAAAAAAAAAAAAAAAwAAMAAAAABAAA -AAAAAAAAMAMDAAAAAAQAAAAAAAAAADAAAwAAAAAAAAgAAAAAAAAwAAMAAAAAAAAAAAAAAAAAMAWD -AAAAAAAACAAAAAAAADAFgwAAAAAAAAAAAAAAAAAwBIMAAAAAAAAIAAAAAAAAMASDAAAAAAAAAAAA -AAAAADADAwAAAAAAAAgAAAAAAAAwAwMAAAAAAAAAAAAAAAAAOAMDAAAAAAAAAAAAAAAAADgFgwAA -AAAAAAAAAAAAAAA4BIMAAAAAAAAAAAAAAAAAOAADAAAAAAAAAAAAAAAAADQGggAAAAAAAAAAAAAA -AAA8A4IAAAAAAAAAAAAAAAAAPAADAAAAAAAACAAAAAAAADwAAwAAAAAAAAAAAAAAAAA8BIMAAAAA -AAAAAAAAAAAAPAUDAAAAAAAAAAAAAAAAAD0EAwAAAAAAAAAAAAAAAAA8A4MAAAAAAAAAAAAAAAAA -LAACAAAAAAAAAAAAAAAAACwFggAAAAAAAAAAAAAAAAAsBQIAAAAAAAAAAAAAAAAAEAaAAAAAAAAA -AAAAAAAAABAGgoAAAAAAAAAAAAAAAACADoIAAAAAAAAAAAAAAAAAkAeCgAAAACAAAAAAAAAAAIAH -ggAAAAAgAAAAAAAAAAAQBwKAAAAAAAAAAAAAAAAAEAcCgAAAAAAAAAAAAAAAABAHAoAAAAAAAAAA -AAAAAAAQBgIAAAAAAAAAAAAAAAAAEAYCgAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAABwIA -AAAAIAAAAAAAAAAAEBeDAAAAAAAACAAAAAAAABAXgwAAAAAAAAgAAAAAAAAQAAAAAAAAAAAAAAAA -AAAAEAYDgAAAAAAAAAAAAAAAAAAOAwAAAAAAAAAAAAAAAAAQBgNAAAAAAAAAAAAAAAAAEAYDAAAA -AAAAAAAAAAAAABAGAAAAAAAAAAAAAAAAAAAABgOAAAAAAAAAAAAAAAAAAAYDAAAAAAAAAAAAAAAA -AAAOAgAAAAAAAAAAAAAAAAAADgIAAAAAAAAAAAAAAAAAEAYCAAAAAAAAAAAAAAAAABAGAoAAAAAA -AAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAACAAAAAAAAAAAAAAAAABADAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAP////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////8A -AAAAAAAAIAAAAADAAAAAAAAAAAAAACAAAAAA4AAAAAAAAAAAAAAgAAAAASAAAAAAAAAAAAAAAAIA -AAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAEhAAAAAAAAAAAAAAAAAAEBIAAAAAAAAAAAAAAA -AAAAAgAAAAQABAAAAAAAAAAAAIFAAAAAAAAAAAAAAAAAAAaAAAAEAAAAAAAAAAAAAACAAEAAAAAA -AAIAAAAAAAAAgAAgAAAAAAACAAAAAAAACIAAAAAAAEAAAAACAAAAAAEAQAAAAAAAAAAAAAAAAAAB -AEIAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAIQIAAAAAAAAAAAAAAAAAACDAIAAAAAAAAA -AAAAAAAAAIUCAAAABAAAAAAAAAAAAACAQgAAAAAAAAAAAAAAAACAgEIAQAAAAAAAAAAAAAAAgIBC -AAAAAAAAAAAAAAAAAAIAIgAAAAAAAAAAAAAAAAAAgEEAAAAAAAAAAAAAAAAAgAAhAAAAAAAAAAAA -AAAAAACAQYAAAAAAAAAAAAAAAACAgEGAAAAAAAAAAAAAAAAAAgAhAAAAAAAAAAAAAAAAAAAQIIAA -AAAAAAAAAAAAAAACJQCAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAIiABIAAAAAAAAAAAAAA -AACIhICAAAAAAAAAAAAAAAAACIgEgAAAAAAAAAAAAAAAAAiIBIAAAAAAAAAAAAAAAAAIogCAAAAA -AAAAAAAAAAAACKIAgAAAAAAAAAAAAAAAAAijAIAAAAAAAAAAAAAAAAAIowCAAAAAAAAAAAAAAAAA -CKSAgAAAAAAAAAAAAAAAAAikgIAAAAAAAAAAAAAAAAAEpIDAAAAAAAAAAAAAAAAABKIAwAAAAAAA -AAAAAAAAAASjAMAAAAAAAAAAAAAAAAAEiATAAAAAAAAAAAAAAAAAAAkBgAAAAAAAAAAAAAAAAAIM -AIAAAAAAAAAAAAAAAAAAiATAAAAAAAAAAAAAAAAAAIgEgAAAAAAAAAAAAAAAAAILAIAAAAAAAAAA -AAAAAAAAioCAAAAAAAAAAAAAAAAAAAuAgAAAAAAAAAAAAAAAAACMAIAAAAAAAAAAAAAAAAACIBCA -AAAAAAAAAAAAAAAAAgoAgAAAAAAAAAAAAAAAAAIKgIAAAAAAAAAAAAAAAAAACQKAAAAAAAAAAAAA -AAAAAAEBAAAAAAAAAAAAAAAAAAABAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAA -AAAAAAAAAAAAAAAAgRAAAAAAAAAAAAAAAAAAAIEIAAAAAAAAAAAAAAAAAACBBAAAAAAAAAAAAAAA -AABJgYAAAAAAAAAAAAAAAAAAQYEAAAAAAAAAAAAAAAAAgAABAAAAAAAAAAAAAAAAAAAAgYAAAAAA -AAAAAAAAAAAAgADAAAAAAAAAAAAAAAAAAIAAoAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAA -gYAAAAAAAAAAAAAAAAAAAIGAgAAAAAAAAAAAAAAAAACJgIAAAAAAAAAAAAAAAAAAiYDAAAAAAAAA -AAAAAAAAAAGCAAAAAAAAAAAAAAAAAAIBgAAAAAAAAAAAAAAAAAACAYCAAAAAAAAAAAAAAAAAAEGB -gAAAAAAAAAAAAAAAAAIBgYAAAAAAAAAAAAAAAAACCYGAAAAAAAAAAAAAAAAAAgGBAAAAAAAAAAAA -AAAAACAAAAAAAAAAAAAAAAAAAAAQAAACAQAAAAAAAAAAAAAAEAAAAgAAAAAAAAAAAAAAABAAAAAA -AAAAAAAAAAAAAAAAgADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////wAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAACACSAAAAAAAAAAGzABAAIAAAAAAIAJIAAAAAAAIAAbkAEoIgAAAA -AAgAkgAAAAAAAAABswAQACAAAAAAAAAAAAAAAAAAAAHLABAAIAAAAAAIAAAABQBEAcOAACsBEAAg -AAAAAAAAAAAAAAAAAAABywAQACAAAAAAAAAAAAAAAAAAAAHLABAAIAAAAAAAAAAAAAAAAAAAAcsA -EAAgAAAAAAAAAAAAAAAAAAABywAQACAAAAAAAAAAAAAAAAAAAAHLABAAIAAAAAAAAAAAAAAAAAAA -AcsAEAAgAAAAAAAAAAAAAAAAAAABywAQACAAAAAACAAAAAUARAHBgABLABAAIAAAAAAIAAAABQBE -AcGAAEsAEAAgAAAAAAAAAAAAAAAAAAABywAQACAAAAAAAAAAAAAAAAAAAAHLABAAIAAAAAAIAAAA -BQBEAcGAAEsAEAAgAAAAAAAAAAAAAAAAAAABywAQACAAAAAAAAAAAAAAAAAAAAHLARMCIAAAAAAI -RyABBAAAAVoAAWkDIBIiQAAAAAhHIAEEAAABWgABaQIjEiBAAAAACAAAAAUARAHBgABLARMCIAAA -AAAAAAAAAAAAAAAAAcsAEAAgAAAAAAhHIAEBBlDBWCAAyQIgEiJAAAAACAAAAAUARAHBgABLARMC -IAAAAAAIRyABAAZQIVrAAQkDIBIiQAAAAAgAAAAFAEQBwYAASwETAiAAAAAACAAAAAUARAHBgABL -ABAAIAAAAAAIAAAABQBEAcGAAEsAEAAgAAAAAAgAAAAFAEQBwYAASwAQACAAAAAAAAAAAAAAAAAA -AAHLABAAIAAAAAAIAAAABQBEAcGAAEsBEwIgAAAAAAgAAAAFAEQBwYAASwETAiAAAAAABcUSugFY -QGmLKkXxJKMSIAAAAAAFxRK6BVvAaYkqRbEkUxIgAAAAAA3FEqIFWEBpiypF8SSjEiAAAAAADcUS -ogFbwGmJKkWxJFMSIAAAAAANxRKiBVhAaYsqRfEkoxIgAAAAAA3FEqIBW8BpiSpFsSRTEiAAAAAA -DcUSogVYQGmLKkXxJKMSIAAAAAANxRKiAVvAaYkqRbEkUxIgAAAAAAnEEKABAEBIAgBFsTRjEiAA -AAAACcQQoAVYQEmBKkWxNWMSIAAAAAAJxBCgBVhASYEqRbE1YxIgAAAAAAHFELgBWEBJiypFsSVj -EiAAAAAAAKEQiAUAQKwIAAWpAVMSIAAAAAAJwBCQBVhAAYkqRUkBYxIgAAAAAAnAELgFWEABiEpF -8QCjEiAAAAAAAcAQuAVaQAGKSkWxAFMSIAAAAAABwBC4BVpAAYpKRbEAUxIgAAAAAAHAELgFWkAB -ikpFsQBTEiAAAAAAAcAQuAVaQAGKSkWxAFMSIAAAAAAJoBCQAVpAAYpKRbEAUxIgAAAAAAHAEIAF -WEABiypFKQBjEiAAAAAAAcAQgAVYQAGLKkUpAGMSIAAAAAABwBCABVhAAYsqRSkAYxIgAAAAAAhH -IAEEAAABWAABaQMgEiBAAAAACIEAAAEAQqwDoAWpAVMSIAAAAAAIAAAAAABQIADAAOsAEAAgAAAA -AAgAAAABAFDAACAAqwAQACAAAAAACAAAAAAAUCAAwADrABAAIAAAAAAAgQAABQBCrMACBakAUxIg -AAAAAAoBQAAAAAAMAgABoQETUiEAAAAAAAAAAAAAAAAAAAHLABAAIAAAAAAAoRCIBQBArAoABIkA -UxIgAAAAAAgAAAAFAEQBw6AEaQGjEiEAAAAACAAAAAUARAHBgABLARMCIAAAAAAIAAAAAABQIADA -AOsAEAAgAAAAAAgAAAAFAEQBw4AB6wAQACAAAAAACAAAAAUARAHDgAHrABAAIAAAAAAAAAAAAAAA -AAAAAcsAEAAgAAAAAAAAAAAAAAAAAAABywAQACAAAAAACAAAAAAAUCAAwADrABAAIAAAAAABwBC4 -BVpAAYpKRbEAUxIgAAAAAAAAAAAAAAAAAAABywETAiAAAAAAAAAAAAAAAAAAAAHLABAAIAAAAAAI -AAAABQBEAcGAAEsAEAAgAAAAAAgAAAAAAFAgAMAA6wAQACAAAAAACAAAAAAAUCAAwADrABAAIAAA -AAAIAAAAAABQIADAAOsAEAAgAAAAAAgAAAAAAFAgAMAA6wAQACAAAAAACAAAAAEAUMAAIACrABAA -IAAAAAAJxRMiAUpEaQpARZElYxIgAAAAAAHAEQABUkQAg6pFqQBjEiAAAAAACcARAAVSRABDqkWp -AGMSIAAAAAABwBCAAVpEAYKKRakAUxIgAAAAAA3AAAAFWEBhiSpF8QGjEiAAAAAAAAAAAAAAAAAA -AAHLABAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAgAMAAEAAAAAAAAAQETEiAAAAAAAEcwAAEBkAFbgAQBAGAyIEAAAAAARzAA -BQGAAVuABAEAYDIgQAAAAAADAAABAFAFWYAEAQBjEiNAAAAAAAMAAAQAAAVZgAQBAGMSI0AAAAAA -AAAAAAAAAAAAAAEBExIgAAAAAAAgUAAEAAAAAgAAAQATEiMAAAAACGAgAIQAAAAAAAADABAAIAAA -AAAAoCAAgAAAAAAAmAEBExKgAAAAAAhgAAAEAEIAwgICAQFjEmEAAAAACcAAAAUhwAGCBkQBABMS -IAAAAAAIAGAABAAAAAIAAAABEAAgAAAAAAgAYAAEAAAAAgAAAgAQACAAAAAAAAAAAAAAAAACAAAC -ABAAIAAAAAAMCBSABQUAAAOApgEQUxNgAAAAAACAAAABAEIAwgIEAQBTEmAAAAAACEAAAAUAUAAA -IAQBAFMSIwAAAAAAoAAAAAAAAAAAAAEBExIgAAAAAAwAAAAFQgABgEUEAQNgEiAAAAAAAAAAAAAA -AAACAAADARAkIAAAAAAAIFAABAAAAAAAAAEBExIgAAAAAAhgIACEAAAAAAAAAwAQACAAAAAAAKAg -AIAAAAACAAABARMSoAAAAAAIYAAABABCAMICAgEAYxJgAAAAAAgAYAAEAAAAAgAAAgAQACAAAAAA -CACAABQAAAAAAAABABMmOAAAAAAIAIAAFAAAAAIAAAMAEAAAAAAAAAgAgAAUAAAAAAAAAQATJjgA -AAAACACAABQAAAACAAADABAAAAAAAAAMAAAABbIAAYJNBAECAAIgAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJwAAAAlpGAgSLAgECYxIgAAAAAAHAAAACGkACBIsC -AQJjEiAAAAAADAh0gEIEgAAqAC4BMHMSIAAAAAAMCHSARAAAACoAIAExExIgAAAAAAgCEKAEAAAA -AACAAQATEiAAAAAACAIQoAQAAAAAAIABABMSIAAAAAAECHQARQCAAAOARAExYxIgAAAAAAXIFAAB -BIAAAyBOATBzEiAAAAAAAcgQgAVaQAICSkQBM2MSIAAAAAANyHQARlpAAYBKRAEwUxJgAAAAAAXI -dABCGkgBgEpEATBTEmAAAAAACEcAAAQAAAACAAABABASIAAAAAAIRwAABAAAAAAAAAECIBIgAAAA -AABHIAECA5DhW4AEAQBgEiJAAAAAAEcgAQIDkOFbgAQBAGASIkAAAAAARyABAgOQ4VuABAEAYBIi -QAAAAAgAIAECAEIAAaBEAQBjEmAAAAAACAAgAQIAQgABoEQBAGMSYAAAAAAIACABAgBCAAGgRAEA -YxJgAAAAAAAAIAGFQQAAgmBEAQHjEmAAAAAACAAgAYVBAAACYEQBAeMSYAAAAAAJwCABhVJAAIGg -RAEAYxJgAAAAAAAAAAAGAEIAAaBEAQBjEmAAAAAACAAAAAVBAACCYEQBAeMSYAAAAAAAAAAABUEA -AABgRAEA0xJgAAAAAAHAAAAFUkAAgaBEAQBjEmAAAAAACACgAYQAAAAAAEQBABMSYAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAEXAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFtnbG9iYWxdCnJzc19n -bGJfY29uZmlnX21vZGU9YmFzaWN2aXJ0dWFsCnJzc19nbGJfY29uZmlnX29wdGlvbnM9dG5sbWFw -ZW4saGFzaHRvZXBsaXR6LHRubGFsbGxrcApwbF90aW1lb3V0X3ZhbHVlPTIwMApyZWdbMHgxMDA4 -XT0weDQwODEwLzB4MjFjNzAKcmVnWzB4MTAwY109MHgyMjIyMjIyMgpyZWdbMHgxMGEwXT0weDAx -MDQwODEwCnJlZ1sweDEwNDRdPTQwOTYKcmVnWzB4MTA0OF09NjU1MzYKcmVnWzB4MTA0Y109MTUz -NgpyZWdbMHgxMDUwXT05MDI0CnJlZ1sweDEwNTRdPTkyMTYKcmVnWzB4MTA1OF09MjA0OApyZWdb -MHgxMDVjXT0xMjgKcmVnWzB4MTA2MF09ODE5MgpyZWdbMHgxMDY0XT0xNjM4NApyZWdbMHgxMGE0 -XT0weGEwMDBhMDAwLzB4ZjAwMGYwMDAKcmVnWzB4MTBhOF09MHg0MDIwMDAvMHg0MDIwMDAKc2dl -X3RpbWVyX3ZhbHVlPTUsMTAsMjAsNTAsMTAwLDIwMApyZWdbMHgxMGM0XT0weDIwMDAwMDAwLzB4 -MjAwMDAwMDAKcmVnWzB4N2QwNF09MHgwMDAxMDAwMC8weDAwMDEwMDAwCnJlZ1sweDdkYzBdPTB4 -MGUyZjg4NDkKdHNjaF90aWNrcz0xMDAwMDAsMTAwMDAsMTAwMCwxMApmaWx0ZXJNb2RlPWZjb2Vt -YXNrLHNydnJzcmFtLGZyYWdtZW50YXRpb24sbXBzaGl0dHlwZSxwcm90b2NvbCx2bGFuLHBvcnQs -ZmNvZQpmaWx0ZXJNYXNrPXByb3RvY29sLGZjb2UKdHBfcG1yeD0zMAp0cF9wbXJ4X3BhZ2VzaXpl -PTY0Swp0cF9ucnhjaD0wCnRwX3BtdHg9NTAKdHBfcG10eF9wYWdlc2l6ZT02NEsKdHBfbnR4Y2g9 -MAp0cF9tdHVzPTg4LDI1Niw1MTIsNTc2LDgwOCwxMDI0LDEyODAsMTQ4OCwxNTAwLDIwMDIsMjA0 -OCw0MDk2LDQzNTIsODE5Miw5MDAwLDk2MDAKcmVnWzB4N2QwNF09MHgwMDAxMDAwOC8weDAwMDEw -MDA4CnJlZ1sweDdkMDhdPTB4MDAwMDA4MDAvMHgwMDAwMDgwMApyZWdbMHg3ZDQ4XT0weDAwMDAw -MDAwLzB4MDAwMDA0MDAKcmVnWzB4N2Q2MF09MHgwNjAwMDAwMC8weDA3MDAwMDAwCnJlZ1sweDE5 -YzA0XT0weDAwMDAwMDAwLzB4MDA0NDAwMDAKcmVnWzB4MTljMjhdPTB4MDA4MDAwMDAvMHgwMWYw -MDAwMApyZWdbMHg4ZGMwXT0weDAwMDAwMTA0LzB4MDAwMDAxMDQKcmVnWzB4MTkyNWNdPTB4MDAw -MDQxYzAvMHgwMDAwMzFjMApbZnVuY3Rpb24iMCJdCm52Zj0xNgp3eF9jYXBzPWFsbApyX2NhcHM9 -YWxsCm52aT0xCm5pcWZsaW50PTgKbmV0aGN0cmw9OApuZXE9MTYKbmV4YWN0Zj04CmNtYXNrPWFs -bApwbWFzaz0weDEKW2Z1bmN0aW9uIjEiXQpudmY9MTYKd3hfY2Fwcz1hbGwKcl9jYXBzPWFsbApu -dmk9MQpuaXFmbGludD04Cm5ldGhjdHJsPTgKbmVxPTE2Cm5leGFjdGY9OApjbWFzaz1hbGwKcG1h -c2s9MHgyCltmdW5jdGlvbiIyIl0KbnZmPTE2Cnd4X2NhcHM9YWxsCnJfY2Fwcz1hbGwKbnZpPTEK -bmlxZmxpbnQ9OApuZXRoY3RybD04Cm5lcT0xNgpuZXhhY3RmPTgKY21hc2s9YWxsCnBtYXNrPTB4 -NApbZnVuY3Rpb24iMyJdCm52Zj0xNgp3eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT0xCm5pcWZs -aW50PTgKbmV0aGN0cmw9OApuZXE9MTYKbmV4YWN0Zj04CmNtYXNrPWFsbApwbWFzaz0weDgKW2Z1 -bmN0aW9uIjQiXQp3eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT0yOApuaXFmbGludD0yMDIKbmV0 -aGN0cmw9MTAwCm5lcT0yNTYKbnFwY3E9MTIyODgKbmV4YWN0Zj00MApjbWFzaz1hbGwKcG1hc2s9 -YWxsCm5ldGhvZmxkPTEwMjQKbmNyeXB0b19sb29rYXNpZGU9MTYKbmNsaXA9MzIwCm5maWx0ZXI9 -NDk2Cm5zZXJ2ZXI9NDk2Cm5oYXNoPTEyMjg4Cm5ocGZpbHRlcj0wCnByb3RvY29sPW5pY192bSxv -ZmxkLHJkZHAscmRtYWMsaXNjc2lfaW5pdGlhdG9yX3BkdSxpc2NzaV90YXJnZXRfcGR1LGlzY3Np -X3QxMGRpZix0bHNrZXlzLGNyeXB0b19sb29rYXNpZGUKdHBfbDJ0PTMwNzIKdHBfZGRwPTIKdHBf -ZGRwX2lzY3NpPTIKdHBfdGxzX2tleT0zCnRwX3Rsc19teHJ4c2l6ZT0xNzQwOAp0cF9zdGFnPTIK -dHBfcGJsPTUKdHBfcnE9Nwp0cF9zcnE9MTI4CltmdW5jdGlvbiI1Il0Kd3hfY2Fwcz1hbGwKcl9j -YXBzPWFsbApudmk9NApuaXFmbGludD0zNApuZXRoY3RybD0zMgpuZXE9NjQKbmV4YWN0Zj0xNgpj -bWFzaz1hbGwKcG1hc2s9YWxsCm5zZXJ2ZXI9MTYKbmhhc2g9MjA0OAp0cF9sMnQ9MTAyMApuY2xp -cD02NApwcm90b2NvbD1pc2NzaV9pbml0aWF0b3JfZm9mbGQKdHBfZGRwX2lzY3NpPTIKaXNjc2lf -bnRhc2s9MjA0OAppc2NzaV9uc2Vzcz0yMDQ4CmlzY3NpX25jb25uX3Blcl9zZXNzaW9uPTEKaXNj -c2lfbmluaXRpYXRvcl9pbnN0YW5jZT02NApbZnVuY3Rpb24iNiJdCnd4X2NhcHM9YWxsCnJfY2Fw -cz1hbGwKbnZpPTQKbmlxZmxpbnQ9MzQKbmV0aGN0cmw9MzIKbmVxPTY2Cm5leGFjdGY9MzIKY21h -c2s9YWxsCnBtYXNrPWFsbApuaGFzaD0yMDQ4CnRwX2wydD00CnByb3RvY29sPWZjb2VfaW5pdGlh -dG9yCnRwX2RkcD0yCmZjb2VfbmZjZj0xNgpmY29lX252bnA9MzIKZmNvZV9uc3NuPTEwMjQKW2Z1 -bmN0aW9uIjEwMjMiXQp3eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT00CmNtYXNrPWFsbApwbWFz -az1hbGwKbmV4YWN0Zj04Cm5maWx0ZXI9MTYKW2Z1bmN0aW9uIjAvKiJdCnd4X2NhcHM9MHg4Mgpy -X2NhcHM9MHg4Ngpudmk9MQpuaXFmbGludD00Cm5ldGhjdHJsPTIKbmVxPTQKbmV4YWN0Zj00CmNt -YXNrPWFsbApwbWFzaz0weDEKW2Z1bmN0aW9uIjEvKiJdCnd4X2NhcHM9MHg4MgpyX2NhcHM9MHg4 -Ngpudmk9MQpuaXFmbGludD00Cm5ldGhjdHJsPTIKbmVxPTQKbmV4YWN0Zj00CmNtYXNrPWFsbApw -bWFzaz0weDIKW2Z1bmN0aW9uIjIvKiJdCnd4X2NhcHM9MHg4MgpyX2NhcHM9MHg4Ngpudmk9MQpu -aXFmbGludD00Cm5ldGhjdHJsPTIKbmVxPTQKbmV4YWN0Zj00CmNtYXNrPWFsbApwbWFzaz0weDEK -W2Z1bmN0aW9uIjMvKiJdCnd4X2NhcHM9MHg4MgpyX2NhcHM9MHg4Ngpudmk9MQpuaXFmbGludD00 -Cm5ldGhjdHJsPTIKbmVxPTQKbmV4YWN0Zj00CmNtYXNrPWFsbApwbWFzaz0weDIKW3BvcnQiMCJd -CmRjYj1wcHAsZGNieApod209NjAKbHdtPTE1CmR3bT0zMApkY2JfYXBwX3RsdlswXT0weDg5MDYs -ZXRoZXJ0eXBlLDMKZGNiX2FwcF90bHZbMV09MHg4OTE0LGV0aGVydHlwZSwzCmRjYl9hcHBfdGx2 -WzJdPTMyNjAsc29ja2V0bnVtLDUKZmxhZ3M9YW5fZGlzCmZlYz1ub25lCltwb3J0IjEiXQpkY2I9 -cHBwLGRjYngKaHdtPTYwCmx3bT0xNQpkd209MzAKZGNiX2FwcF90bHZbMF09MHg4OTA2LGV0aGVy -dHlwZSwzCmRjYl9hcHBfdGx2WzFdPTB4ODkxNCxldGhlcnR5cGUsMwpkY2JfYXBwX3RsdlsyXT0z -MjYwLHNvY2tldG51bSw1CmZsYWdzPWFuX2RpcwpmZWM9bm9uZQpbZmluaV0KdmVyc2lvbj0weDE0 -MjUwMDFjCmNoZWNrc3VtPTB4MzZjZWJmY2EKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbZ2xvYmFsXQpyc3NfZ2xiX2NvbmZp -Z19tb2RlPWJhc2ljdmlydHVhbApyc3NfZ2xiX2NvbmZpZ19vcHRpb25zPXRubG1hcGVuLGhhc2h0 -b2VwbGl0eix0bmxhbGxsa3AKcGxfdGltZW91dF92YWx1ZT0xMDAwCnJlZ1sweDEwMDhdPTB4NDA4 -MTAvMHgyMWM3MApyZWdbMHgxMDBjXT0weDIyMjIyMjIyCnJlZ1sweDEwYTBdPTB4MDEwNDA4MTAK -cmVnWzB4MTA0NF09NDA5NgpyZWdbMHgxMDQ4XT02NTUzNgpyZWdbMHgxMDRjXT0xNTM2CnJlZ1sw -eDEwNTBdPTkwMjQKcmVnWzB4MTA1NF09OTIxNgpyZWdbMHgxMDU4XT0yMDQ4CnJlZ1sweDEwNWNd -PTEyOApyZWdbMHgxMDYwXT04MTkyCnJlZ1sweDEwNjRdPTE2Mzg0CnJlZ1sweDEwYTRdPTB4YTAw -MGEwMDAvMHhmMDAwZjAwMApyZWdbMHgxMGE4XT0weDQwMjAwMC8weDQwMjAwMApzZ2VfdGltZXJf -dmFsdWU9NSwxMCwyMCw1MCwxMDAsMjAwCnJlZ1sweDEwYzRdPTB4MjAwMDAwMDAvMHgyMDAwMDAw -MApyZWdbMHg3ZDA0XT0weDAwMDEwMDAwLzB4MDAwMTAwMDAKcmVnWzB4N2RjMF09MHgwZTJmODg0 -OQp0c2NoX3RpY2tzPTEwMDAsMTAwLDEwLDEKZmlsdGVyTW9kZT1mY29lbWFzayxzcnZyc3JhbSxm -cmFnbWVudGF0aW9uLG1wc2hpdHR5cGUscHJvdG9jb2wsdmxhbixwb3J0LGZjb2UKZmlsdGVyTWFz -az1wcm90b2NvbCxmY29lCnRwX3Btcng9MzAKdHBfcG1yeF9wYWdlc2l6ZT02NEsKdHBfbnJ4Y2g9 -MAp0cF9wbXR4PTUwCnRwX3BtdHhfcGFnZXNpemU9NjRLCnRwX250eGNoPTAKdHBfbXR1cz04OCwy -NTYsNTEyLDU3Niw4MDgsMTAyNCwxMjgwLDE0ODgsMTUwMCwyMDAyLDIwNDgsNDA5Niw0MzUyLDgx -OTIsOTAwMCw5NjAwCnJlZ1sweDdkMDRdPTB4MDAwMTAwMDgvMHgwMDAxMDAwOApyZWdbMHg3ZDA4 -XT0weDAwMDAwODAwLzB4MDAwMDA4MDAKcmVnWzB4N2Q0OF09MHgwMDAwMDAwMC8weDAwMDAwNDAw -CnJlZ1sweDdkNjBdPTB4MDYwMDAwMDAvMHgwNzAwMDAwMApyZWdbMHgxOWMwNF09MHgwMDQwMDAw -MC8weDAwNDQwMDAwCnJlZ1sweDE5YzI4XT0weDAwODAwMDAwLzB4MDFmMDAwMDAKcmVnWzB4OGRj -MF09MHgwMDAwMDEwNC8weDAwMDAwMTA0CnJlZ1sweDE5MjVjXT0weDAxMDAzNDAwLzB4MDEwMDM0 -MDAKW2Z1bmN0aW9uIjAiXQp3eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT0yOApuaXFmbGludD0x -NzAKbmV0aGN0cmw9OTYKbmVxPTI1MgpuZXhhY3RmPTQwCm5yYXdmPTIKY21hc2s9YWxsCnBtYXNr -PWFsbApuZXRob2ZsZD0xMDI0Cm5jcnlwdG9fbG9va2FzaWRlPTMyCm5jbGlwPTMyCm5maWx0ZXI9 -NDgKbnNlcnZlcj00OApuaGFzaD0yMDQ4Cm5ocGZpbHRlcj0wCnByb3RvY29sPW5pY192bSxvZmxk -LHJkZHAscmRtYWMsaXNjc2lfaW5pdGlhdG9yX3BkdSxpc2NzaV90YXJnZXRfcGR1LGlzY3NpX3Qx -MGRpZix0bHNrZXlzLGNyeXB0b19sb29rYXNpZGUKdHBfbDJ0PTMwNzIKdHBfZGRwPTIKdHBfZGRw -X2lzY3NpPTIKdHBfdGxzX2tleT0zCnRwX3N0YWc9Mgp0cF9wYmw9NQp0cF9ycT03CnRwX3NycT0x -MjgKW2Z1bmN0aW9uIjEiXQp3eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT00Cm5pcWZsaW50PTM0 -Cm5ldGhjdHJsPTMyCm5lcT02NApuZXhhY3RmPTE2CmNtYXNrPWFsbApwbWFzaz1hbGwKbnNlcnZl -cj0xNgpuaGFzaD0yMDQ4CnRwX2wydD0xMDIwCnByb3RvY29sPWlzY3NpX2luaXRpYXRvcl9mb2Zs -ZAp0cF9kZHBfaXNjc2k9Mgppc2NzaV9udGFzaz0yMDQ4CmlzY3NpX25zZXNzPTIwNDgKaXNjc2lf -bmNvbm5fcGVyX3Nlc3Npb249MQppc2NzaV9uaW5pdGlhdG9yX2luc3RhbmNlPTY0CltmdW5jdGlv -biIxMDIzIl0Kd3hfY2Fwcz1hbGwKcl9jYXBzPWFsbApudmk9NApjbWFzaz1hbGwKcG1hc2s9YWxs -Cm5leGFjdGY9OApuZmlsdGVyPTE2CltmdW5jdGlvbiIwLyoiXQp3eF9jYXBzPTB4ODIKcl9jYXBz -PTB4ODYKbnZpPTEKbmlxZmxpbnQ9NApuZXRoY3RybD0yCm5lcT00Cm5leGFjdGY9NApjbWFzaz1h -bGwKcG1hc2s9MHgxCltmdW5jdGlvbiIxLyoiXQp3eF9jYXBzPTB4ODIKcl9jYXBzPTB4ODYKbnZp -PTEKbmlxZmxpbnQ9NApuZXRoY3RybD0yCm5lcT00Cm5leGFjdGY9NApjbWFzaz1hbGwKcG1hc2s9 -MHgyCltwb3J0IjAiXQpkY2I9cHBwLGRjYngsYjJiCmh3bT0zMApsd209MTUKZHdtPTMwCmRjYl9h -cHBfdGx2WzBdPTB4ODkwNixldGhlcnR5cGUsMwpkY2JfYXBwX3RsdlsxXT0weDg5MTQsZXRoZXJ0 -eXBlLDMKZGNiX2FwcF90bHZbMl09MzI2MCxzb2NrZXRudW0sNQpbcG9ydCIxIl0KZGNiPXBwcCxk -Y2J4LGIyYgpod209MzAKbHdtPTE1CmR3bT0zMApkY2JfYXBwX3RsdlswXT0weDg5MDYsZXRoZXJ0 -eXBlLDMKZGNiX2FwcF90bHZbMV09MHg4OTE0LGV0aGVydHlwZSwzCmRjYl9hcHBfdGx2WzJdPTMy -NjAsc29ja2V0bnVtLDUKW2ZpbmldCnZlcnNpb249MHgxNDI1MDAxZApjaGVja3N1bT0weDM2MWI5 -NTZiCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -==== diff --git a/sys/dev/cxgbe/firmware/t6fw-1.16.26.0.bin.uu b/sys/dev/cxgbe/firmware/t6fw-1.16.26.0.bin.uu new file mode 100644 index 0000000..412bac7 --- /dev/null +++ b/sys/dev/cxgbe/firmware/t6fw-1.16.26.0.bin.uu @@ -0,0 +1,9001 @@ +/*- + * Copyright (c) 2016 Chelsio Communications, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +begin-base64 644 t6fw +AAID5wEQGgAAARcCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAA8gD2QPhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAENoZWxzaW8gRlcgUlVOTUVNIERFQlVHPTAgKEJ1aWx0IFdlZCBEZWMgMjEgMDk6 +MDE6MzggUFNUIDIwMTYgb24gdm5jNC5hc2ljZGVzaWduZXJzLmNvbTovaG9tZS9maXJtd2FyZS9j +dnMvZnctcmVsZWFzZSksIFZlcnNpb24gVDZ4eCAwMS4xMC4xYS4wMAAAAAAAAAAAAAAAANbkJFxg +ANQAH/zhSOEAe/AAEAAA4QGUQOEAVyDhADC4eP///x/84UCAAAAB4QB7cAAAEAAf/8v0IAAAAOEB +nAThBQAAIoIAQOEFCAAihgBAIIIARCCGAEThBQAEAAwAAIAAAQLhAHs84QB7ROEAe+TiAAAAAAEA +AOEAe5AgAAAAAACAAOEAewAAAEAB4QB7nAAGAIgAACAAREREQuAAAADjAAST4wAIACAAAlwAAAAA +H/8TwAAAAAAf/xPEAAAAAB//E8gAAAAAH/8TzB//gAAAAAAAAAAAAAAAAADAABH/yiIaB5IQghAS +/8kT/8mTIBL/yYMgJEoAA0QBZU/xwUEEMwEEMwNlP+YS/8PAMJMgEv/DE//DhCAEMwGTIBH/wRL/ +wpIQEf/BEv/CkhAR/8EB9DEA5DES/8AC5zECFgAR/7+BEAEBX8AhAhEByRER/7wS/7ySEBH/vBL/ +vJIQYAAPEf+3Ev+7khAR/7cS/7qSEIEQEf+5wCCSERL/uJISwCCSExL/t5IQghAC8lBlL/cR/7XH +L5IQEf+0khAS/7QT/7STIMAykyET/7OTIoIiEv+yE/+ykyAjIiEU/7EEMwHJOxP/sIMwA4MUCDMR +FP+upDOTIRP/opMiYAALAAAAwDCTIRP/npMiEv+pkCCQIZAikCOQJJAlkCaQJ5AokCmQKpArkCyQ +LZAukC8gJhAgJhEiIgIS/58CKDES/5kjCgAtNzAtNzgjPQFyM/MAAgAS/5nAMC83AC83IC83QC83 +YCM9AnIz7QACABL/jcAwKDcwKDc4Iz0BcjPzEv+OwDAnNwAnNyAnN0AnN2AjPQJyM+0S/4kV/4oW +/4rAMNcgBWYBYAASBDYFAAIA0w/TDwUzDG47FAdHFAcEQ3Yx5gQ2BQUzDG877QACABL/exX/fCMK +AAInAgcEQwQ+BQUzDAdHFG878AMCABL/d8kugyCEIYUivCJ0Ow6GULRVljC0M3Qz9GP/5gBlP+Jl +X98S/2zAMgMuBQMCABL/YsAwKDdAKDdIIz0BcjPzAAIAEv9nLScAwBEBSTEASDEBAgDAABT/YwTS +MRX/Y5RQFP9iBNMxFf9ilFAU/2IE1DEV/2GUUBT/YQTVMRX/YJRQEP9gAwAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAA9DAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/AAA +H/wAAOMACfgf/AAAH/wAAOMACfgf/AAAH/wAAOMACfgf/wAAH/8LIOMACfgf/wsgH/8LIOMAFRgf +/wsgH/8LIOMAFRgf/wsgH/8M+OMAFRgf/wz4H/8TtOMAFvAf/xPAH/8z7OMAHbgf/zPsH/8z7OMA +PeQf/4AAH//M5OMAPeQgAAAAIAABauMAisggAAF4IAABfOMAjDQgAAF8IAABheMAjDggAAGYIAAB +nOMAjEQgAAGcIAABpeMAjEggAAG4IAABvOMAjFQgAAG8IAABxeMAjFggAAHYIAAB2OMAjGQgAAHc +IAAB4uMAjGQgAAH4IAAB+OMAjGwgAAH8IAAB/OMAjGwgAAIYIAACGOMAjGwgAAIcIAACHOMAjGwg +AAI4IAACOOMAjGwgAAI8IAACPOMAjGwgAAJYIAACWOMAjGwgAAJcIAACYuMAjGwgAAJ4IAACeOMA +jHQgAAJ8IAACguMAjHQgAAKYIAGWIuMAjHwgAwAAIAMdmOMCIAggAx2YIAMdmOMCPaAgAx2YIAZ/ +bOMCPaAgBn9wIAaDgOMFn3ggCAAAIAgTcOMFo4ggCBNwIAkytuMFtvggCTLAIAk0NOMG1kggCwAA +IAsAAOMG17wgCwAAIAsAAOMG17wgCwAAIAu4COMG17wAAAAAAAAAAAAAAAAf/wAAH/+AAB/8AAAf +/gAAH/+AACAAAAAAAAAAAAAAACAAO8sgADvAIABAAyAAO8AgAD9tIAA7wCAAPIMgAD79IAA+eCAA +O8AgAD4gIAA90CAAPVsgADurIAA9AyAAO8AgADvAIAA7wCAAPKoAAAAA////////D/z///D///8A +/CAAyKMgAMobIADKSyAAyhEgAMnOIADJxCAAyYwgAMmCIADJeCAAySMgAMpJIADJGSAAyO8gAMpL +IADI5SAAyNMgCCSQIAgk6CAIJLggCCSoIAgkmCAIJOAgCCTYIAgk0CAIJMggCCTAIAgkuCAIJLAg +CCNJIAgkqCAII0kgCCSgIAgjSSAIJJggCCNJIAgjPwAAAAMAAAACAAAAAQAAAAAAAAAEAAAAAAAA +AAAAAAAAAAAACgAAAAoAAAAUAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAAAAAAAAAAAAAAAAEA +AQABAAEAAQABAAEAAQABAAIAAwAEAAUABgAHAAgACQAKAA4AEQAVABkAHgAjAC0APABQAGQAyAEs +AZAB9AAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAgACAAMAAwADAAMABAAEAAQABAAEAAUABQAFAAUA +BQAFAAYABgAHAAcAAAACAAAABgAAAAoAAAAOAAAAFAAAABwAAAAoAAAAOAAAAFAAAABwAAAAoAAA +AOAAAAFAAAABwAAAAoAAAAOAAAAFAQAABwAAAAoAAAAOAAAAFAAAABwAAAAoAAAAOAAAAFAAAABw +AAAAoAAAAOAAAAFAAAABwAAAAoAAAAOAAP8AAQICAAAAAAAAAAAAAAAgCJnjIAiaRiAImaMgCJmI +IAiaRiAImUkgCJlJIAiaRiAImkYgCJlJIAiaRiAImkYgCJlJIAiZSSAImRsgCJpGIAiY4CAIl0Qg +CJe9IAiaRiAIl8AgCJd/IAiaRiAImkYgCJpGIAiaRiAImkYgCJpGIAiaRiAImkYgCJpGIAiXciAD +EFQAAAABIAMQXAAAAAIgAxYoAAAA/yADDZQAAAD/IAMQQAAAAAIgAxBEAAAAAyADEEwAAAAHAAAA +AAAAAAAgAxAkAAAAASADECgAAAACIAMQMAAAAAQgAxYoAAAA/yADDZQAAAD/AAAAAAAAAAAgAw2U +AAAAACADFigAAAAAIAMO8AAAAAEgAw74AAAABCADDwAAAAAIIAMPDAAAACAgAw8cAAAAQCADDyQA +AACAIAMPLAAAAQAgAw80AAACACADD0gAAAQAIAMPXAAACAAgAw90AAAQACADD4gAACAAIAMPmAAA +QAAgAw+kAACAACADD7gAAQAAIAMPyAACAAAgAw/YABAAACADD/AAIAAAIAMQCABAAAAgAxAQAIAA +ACADDtwAAAAQIAMO5AAAABEgAw7EAAAAACADDsgAAAABIAMOzAAAAAIgAw7UAAAAAwAAAAAAAP// +AAAAAAAA//8gAw5EAAABACADDlAAAACAIAMOYAAAAEAgAw5wAAAAICADDoAAAAAQIAMOkAAAAAgg +Aw6cAAAABCADDqgAAAACIAMOtAAAAAEAAAAAAAAAAAAAAE4AAABGAAAAPgAAADcAAAAvAAAAJwAA +AB8AAAAXAAABAQEBAQEBAQEBAQECAiAJGIggCRg8IAkYeyAJGHsgCRg8IAkYPCAJGIggCRiIIAkY +PCAJGIggCRg8IAkYiCAJGHsgCRg8IAkYPCAJGDwgCRg8IAkYPCAJGIggCRg8IAkYPCAJGDwgCRg8 +IAkYPCAJGIggCRiIIAkYiCAJGIggCRiIIAkYiCAJGIggCRiIIAkYPCAJGDwgCRg8IAkYPCAJGDwg +CRg8IAkYPCAJGDwgCRg8IAkYPCAJGDwgCRg8IAkYPCAJGDwgCRg8IAkYPCAJJ+AgCSfgIAkn1SAJ +J+MgCSfjIAknzSAJJ80gCSfjIAkn4yAJJ80gCSfjIAkn4yAJJ80gCSfNIAknzSAJJ+MgCSfFIAkn +zSAJJ80gCSfjIAknzSAJJ+MgCSfjIAkn4yAJJ+MgCSfjIAkn4yAJJ+MgCSfjIAkn4yAJJ+MgCSfj +AAICBQUICAsLDg4RERQUFxcaGh0dICAjIyYmKSksLC8vMjI1NTg4OzsAAAAAAAAAAQMREQgIEAkD +AQAAAAAAACAEpGggAVDAIABhrCABMqQgAUysIAFHUCABKZggBAZAH/+N2B//tkggAMsQH/+q5CAA +jcwgAH5MAAAAAAAAAAAgATMwIACwjAAAAAAAAAAAH/+kBB//lbQf/5NYH/+QyCAAehggAG9IIABt +oCAAwDQf/7EwIAYyOAAAAAAAAAAAIAByBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAVeg +IAE+hCAA1QggANQ4H/+8wB//ntQf/5s8IACuGAAAAAAgAQqIIAD4ICAA5RAgANrAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAACABgAAgAIzUAAAAAAAAAAAAAAAAIADICAAAAAAAAAAAIADAKCAA +EcggA1QgH//ADCAA1SgAAAAAAAAAAAAAAAAgA3ToIABSmCAAL8wgAFF8AAAAACAAXPggAFr8IABY +nAAAAAAgAGFsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAXsggBKPw +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 +UwAAACALJBBSAAAAIAskUFEAAAAgAYl8H/8rZCALJuAgCydAIAsnECALKcAf/y7MIAsqEB//HlAf +/y30IAsr0BQAAACAAAACeAAAAIAAAAaAAAAFAAAKAIAAsAAA4zCS///wAIAAsQAgCyuQH/8bxAAA +fkAf/y6kAP/AAB//LrAmAAAAAQAAACgAAAAgCyxABYAAAAYAAAAf/yq8KwAAACAAdQAf/N4AH/8s +WAf///8DgAAANQAAAANAAAAf////CA///wA///+AQAAAIAAAAAAAwAAf/y6IPQAAAB//LQSBBAEA +gQQAAAcAAAAf/yzUAAA6mBgAAAAf/xTQAAAP/wBDAAAEAAAAH/8sjCALhqAf/zLQH/8ZrAACAADh +AHoAH/8ulB//LJAf/y4oH/8q+CCAAAAf/yzsH/8ukB//HlQf/x5IIAuG0AADB4AgC4dAH/8cKAAg +AAAAQAAAAAAJAAAAMAD//Ph/wAAAAKP/uwCj/7oADQAAAOADAACD/7YAD////w//+AD/AAAAD//+ +ASALh4AgCy6AIAsusCALiBAACgAAAA8AAP//AA8f/x5cA//AAIP/wAAgC4iQIAuJAB//L3gf/zJg +H/8y8P9A8AAf/zLAH/8AcB//E9AEgAAIAEQAAP8f//8AwAAAAYDCAAAAgQD/v/////8AAACAAAAf +/x+8AAAJvA8AAAAgCy7wH/8vEB//MBQf/ysgH/8gKB//Gjgf/wCAIAaAgAAAJxAf/6noIAuQUCAL +kCAf/y90H/8aMCALMvAf/y50IAuQoCALM1AgCzOgIAs0MCALMyAgANU0IAs0ACALNJAgCzTAIAs1 +ECALNXAgANrwIADgACALkRAgC5FwIADqKB//L8j/AP8AzMzMzKqqqqrw8PDwH/8zEB//MRgAA/// +AAAn/yAA7IAgC5HgABBIAIIAAAAgAQPEIAuSUCAALLggC5cQIAuXQCALPDAgCzwAIAs8QCALPKAg +Cz0gIAs8cCALPMAgCzzwIAs+wAAAIAAAAEAAIAs/ECALlVAgC5VwIAs/QCALP5AgC5YQIAuWMCAL +PvAgC5ZgIAuVoCALldAgCz/AIAuY4CALmXAgC5gQIAuYICALl6AgC5iAIAuX4CALl7AgC5hgIAuY +8CALmLAgC5kwH/8unAAACAAAAAgGAAAP/gAAiMx/AAAA8AAAACALnCAgC5uAIAub4CALmqAgC5sw +AADgACALmaAgC5pQIAubAB//G9wgC0HQH/8riBoAAAAgC0IgIAEwGB//LqwgAw0gH/8rEB//KhAg +C0UwH/8s+B//MrAf/zIYIAudUCALRXAf/yxwAAAP8OABAAAf/OIIIAuegCALRbAgAMTwIADBtCAL +ngAgC55QH/8b/CALSHAf/x/EIAtUAOD//gAgC3oQH/8uqB//FiwgC2HwIAtigCABXpAf/yxoIAFg +qB//Gpwf/yokH/8tFB//KkwAABgQAAAWPB//LTQgBoO8H/8qxCAGg9D///H/4QBeAB//LAzhAC4A +H/8tQOEDBgDhAA4A4AUAADAAAAAD/wAAH/8qdCADEwAf/L//PAAAAAAH//+DAAAAH/8qLCABhSwg +C3iQH/8vhOAGAAAgAxLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgYAAAAAAAAD///////// +////////////H//IBB//yAQf/8fEH//HxB//x8Qf/8fEH//BmB//xIAf/8LIH//CyB//wsggBjQk +AAAAAAAAAAAAAAAAAAAAACAGNvAgBjbwAAAAAAAAAAAAAAAAAAAAACAGNCQgBjQkH//FhB//xYQf +/8WEH//FhB//xYQf/8WEAAAAACABZ2QAAAAAAAAAAAAAAAAAAAAAAgEAAAAAAAAAAAAAAAAAAAQA +AAAAAAAAgYAAAAAAABAEAAAAAAAAAoEAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAK +ABHixxPix9MPA+YxAQIAFuLFF+LGd2sGkGC0Zndj+FQSCVW/rA8UAGP/+QAAAGwQDBfivygiAu4n +uEAPmACl5BjIQA6AAFHlFMhADoAAsu4OgkAOEAPoLzC46h3IQA8IBM4HRAjvGIBAD5gAZei258AO +gAGU5xDYQA+YANbmfefAEdAMdOhg2EAMAA/07RnIQA9YCNnoG8gAEGgLhxjipQjoCuVJs0AU2AyI +CFUB51jvQA0ID8UKCUfqANggEEgCWZoa7MDYQA0ACvaWEOsUkUAPmACi7BCRQBDAAtHuHJFACnAL +tIsUZLH76ziQQBDAAqXuILBAEDAM0en4ckAOgAvA5+hyQA6ADPDnUMhADoAAhuhSyEAQSAyB6VTI +QA6AAH7tU8hADoAA0Oju4cAPWA2H71XIQA9gDe3tUchACtAOVykwuIsW51GYQBA4DKHncJaABZgB +6SggOJsV6yHJQA6AAJLqIMlAD2AImOgo00AIAAAcAAApMLgMnAHlB3IgBjAKDOIU8AAE2APZwOEv +MV3oJLlAEEAMkR3iahviaqmI6CTRQBCIB/3rK6lACAAACQAAAAAA7BWwQA+YANbrK8FAEXgMo+Du +4cAM8A+w7+7rQBXIDfPqEMhAD5gAt+oo70AKEACK63CTQA+YAKLsANhACjgG4IkaghsiRjnimO9A +D6ABEADqFbBAFBAB+SggOMCR6i/IQA9gCJjoKNNACfgPbYpf7ADYQBAYDLPtENhACjgImisgOCwK +/gy7Aeso00AJ+A9KizPsANhADoAA0epfsEAKOAiRLSA4Lgr+7t3lQBAQDKPtKNNACqgOoMDA7RDY +QA+YALrqX7BACjgIhy8gOCgK/Qj/Ae8o00AJ+A7/CglHaJJm4gDYQA+gARAAAAAAAAAA5QDYQAn4 +DgQr7BjqKO9ADoAAwe0bsEAKQANXih1j/8qKJ40YnxzqoJJADoAAwOvY70AKOAjpjxzqGshACfgN +4eyRckAOgACj64DYQArYCQfuINhACfgOlIon7BiwQA+YALPqoJJACjgMeeIA2EAPoAEQAABsEATI +PYIl4uKGwA+gARAAAAAAAOIA2EAPoAEQbBAM7GByQA6AAJHv33FADoAAgOccyEAQKAyj4h/IQBAY +DePuG8hAEHgM0e7fcUAPmAC15J9xQA+YACTt17hAEBgMc+UZsUAPKArq7xrIQA9QCKnoHshADBAN +0O0ZyEANAANY7ALswBIAAoYqEgvoE/BAD5gAn+1okMAPCAjFCKgI7RTIQBCAAojoY8lAD1AJpClm +Eig8IOgQ8kAQgAKWCYJrCANpCUJrCANoCQJriR7oMJHADQgBiekUsEAPCArFqmoqrFDpmJBAGFAB +NQgDaAkCa5odH+HTHeHU6U1xQA6AAIDoGMhADggIa44Z7N+zwA8YDv4u4rfn6oBAEGAMse+q4MAM +AAzA6ojvQA8oDq7smufAD2AH5+iwyEAPYAen7x6wQBBoDJHrLHFADoACwOUt6MAPCAjF6ZCRQA0Q +As8iLAEIOAjogJGgAIAFDSrc+22pBQgDaAkCa+RiyEAQeAzRGuG07GPIQAwQCHbu16hAEAAMnaqI +79qpQBQADYjuDojADwgKiezu4cAPYAqi6mHIQBBoDKHr7utAEEgM3e5gyEAQEAzjnaId4aPg/+HA +D2gOjuejyEAPYA7+7qHIQA9gCdnpoMhAD6ABEIg1DwIAco4cCOlHtZgICE8MiBEIOAgogANpgRPo +ANhACAAAGAAoMFPpANg//4ABCAgaFKqIDYgRtZ0NDU/qP7lADwgNza09rY2I0I3R7KnhwAw4Cqyq +iKnZfZsBsYgoZhIpZhPvOHFADPAOUO9gyUAPCA7O7mHJQBKAApbsAuzADoAAgLGI6RPwQB/QASgp +bGDpHchAEsAChugVyEAJ+A5sHuFsjTXqMrhADoAAweoWyEAOgACw7t3lQA+YAKPty+bAC/gPVuof +sEAPCA/66BawQBA4DKq6/w8PR+qgkgAMqAuP6yjvQA6AAMDtKO9ACjgII4scmrCMHM/EGuFXiRnr +dXFADxgJqSmSt+fqgEAQQAyB67+zwA8ACvrqFXFADygJqQsLQOl360APWAi6CHcCH+FIjjXqOO9A +DoAA0ewyuEAOgACw7BfIQA8oDv7u2+bAC/gPMu+o4cAQOAyRuogICEfiFPAf72gJmOxo70AQeAyh +6zjvQAzwD1DuMrBAEMAM0ecQyEAOgACQ6RHIQApAA0/iqO9AD6ABEADoMJGgAJAFAi4s+9MPbekF +CANrCcJriDVyjgfo6IbACAAABsCAtYgICE8MiBGoOCiAA2iBDQgJQWmRB+gQ2EAIAAAGwICPH+4S +cUAMEA126InsQBA4C1+pIq7d5QWIwBAADK8MVRHrVetAEAgCIuVgyEAPCAWK7dC8QA9gBVLlYchA +EBAMU4ka7RuwQA9oBdXkYshAECgM4Zxj7UnmwBCAAt3t4chAEGgM0engyEAQ0Aufj/ke4Qfv0shA +DwgJCefTyEAPYAWV5dHIQA9gCurq0MhAD6ABEADrKO9ADoAAwO0o70AKOAe+ixzqsMhACfgObQAA +bBAaKCAH5QryQBAoDNPpSO9AEBANY+S+cEAOgADB5hDKQA6AALDqFMpAD5gAU+kRyUAPmACj6xTI +QA8oDU3oCIJAD1AL3OgTykAL+A7Q7xCyQA8IDvq67u4OhsAOgABh5hrJQBBIB/7A8C8WGuo470AK +cAoX6TyoQBDwDbPuPahAECgM8+cluEAOgADB6yuGQA6AAIDuHozADygNT+3I5qAT2AhXhiLjHMhA +DhAEZpMc7h7IQBAIAtrpt+lAEHgMw+wYyUAMcAb+5hzJQA74CMDnFMlAEEgMY+0SyUAQcAxz5xnJ +QBBgDHPmFslAEIgL0+0TyUAOgABh7HflQBEYDMHnFclADoAAcO1KcEAPUAeG6B3IQBAIAnfnHslA +DwgGzK1mJhYmHeCeFuCu5hvJQA8IDOytzCwWHSwWF+kdsEAQKAyFwPAPAgDki+VADQgO+QjpR7GY +IxIe5le4QA+YAKXplZBADoAAwKOD7VK4QA9oBpam9qYz7R/JQA6AAGHrbObAEDgCM+vI70AL+A6A +6x+xQA8ICvq6qgoKR+IU8AAOoAu6KxImLRIdK7I6CDwyLBYi7du1AApoC8ssEiYswjnpErJADygO +3O4VygAJuA/cLhIbKBIljx7uAOzAGDgAOQgCa4NS6CmwQBBQDHLod+iADFALPyZSCSYWIeIU8AAH +IAs3KRoA6v/YQBB4BTkrIBbiFPAAGHAOq4tSDwIA4hTwAAtgC7ONVdpQ7BDYQA6AALDk3eVAEBAN +Re3L5sAL+A5TD64RLuwKDg5H4hTwABPQC07qKO9AESAM0ekpsEAPmAC17hWyQBCAAvHoEbJAEIgM +QaOZ6SnIQBDgDGHmEchAD5gAxOgQyEAL+A5HKyAU6lCwQA+YAHoHeQIEuwjrJNFAEOgAqisSJex8 +4cAPmACiDLsI7BDYQAo4BMopfAMuEiYtGgDp6ctAEJAFPSsgFi8K/+IU8AARuA774hSwQA+gARDa +IOs470AKOA97ZK8SJhIk0w8PAgBkYmziANhAD6ABECsSI9og7RKyQA6AAMDruJFACkABXGP/1CwS +JGXNguIU8D/r+AFXLSAg4hTwH+ugAe1j/8MAAAAA6QDYAABoBUjo6IbACAAABwDAgLWICAhPDIgR +qFgogANogQoICkHiFPAgDzABCsDw6BDYQAn4Debj4NhACfgOLCsSFOsRykAPmAA/6xfJQAn4DnEe +4BbmE7FAEQgM8Y1TBv8s7BSyQA8oDe0tFhDvG8hADPAP8O8cyUANEAEsilXpENhADoAAsOhSuEAP +KApK6B/IQA9QC6nqWO9AC/gN7O+r4cAQeAzBursLC0fvG7BAEFAHyywSEixUAo4phlKLHKPu7RGy +QA9oBjbmUshADPAP8O4pyEAQiAu77VnIQA0IA5/Y8CkSGCYSFan56xmxQA9gBmjmXMhAEDgF+Su8 +AekYyUAQcAzh7RCxQA+YAKLrGclAERAMwewRyEAPmAC17RDIQBEoDMHtEbJACkAB9CgSF+YWsUAQ +wAyx6xfIQBDIDMHsFshAEMACkekR8EAPaAaG5hbJQBHAAnUHEmqWWS8SJi4aAOr5y0AQkAU+KyAW +LQr/4hTwAAwADtvA8e8ayUAOgADh7hTKQAn4DHaLHOoRskAQQAxF67GpQApAAmkpEhUsEiEKCk/k +DY7AD2AJqelcyEAQmAXcHN+9KxIhDEwBDLsCK1YICQ1G7RzJQAn4DUkqIAfsOO9ACjgOn+IUsEAP +oAEQAAAqIAfsANhACjgOyGWs5ysSI9og7ADYQA6AANDrspFACkAA0WP9pgAA7xDYQAn4Dhza0O8Y +ykAKQAJJLxIo6giOwAn4DryKJ+wRsUAQYAyx6qCSQAo4CfriqO9ACnAI1I0l7BDYQBAQDTLk3eVA +DoAAsOSo70APmACi7cvmwAv4DXoPrhG67g4OR+IU8B/qWAs+JhIasU8GTzgvJALiANhAD6ABEIon +ixwsEhHqoJJACjgJ4+Wo70AKcAi9JRYn7lWwQA6AANHqGchADoAAsOpY70AQEA3F7BrIQA8oDk7u +2+bAC/gNYe+v4cAQUAxhuv8PD0flF7JAEIgHb4YZDwIADwIAsWYmVALvG7BACfgNx9ww6ie4QAo4 +DlZj/nYAAABsEAgoIAfqIrBAEAAMk+v/2EAMEAiA6QmIQA4IBroqIBaZEugUyEAQ0AS6BQts6ijv +QAogDGMoEgTr/9hADRAGuhrfRRnfWiyiSumfs8ANCAasJqJJCWYB6WjvQA0IBkYd31Qt0IAMhxEK +dwjvw2/AEbgC3ex6s0APgA3UBN0I7dKQQA8YD/jv+7UACKgL3C5yOe/m5QAIUA/+KCAWKRYB6t7Y +QBDgBLjpMLlAEFgLs+u8kAANIAip6ijvQAogDBIoIBQsIAQEiAjoCYagCFgCDOkk0SAJ4AwpH98n +Ht8h6BKwQBCAApbtILBAEDgLsuyCb8AMcApQ6GPIQBB4Aojo3eHADKALsOy74cAPYA3U7WHIQA+A +CITsu+tAEAgCiOtgyEAPaAiE6P7nwBCAAoPuYsggBWgCWuUA2CAAeAEEsEptqQUIA2gJAmvrT5fA +ECANkgy7Eatr67CRIAUIAgmIMesQyEAQEAxj5izJAAWIAhjjANhADYAMSKNM0lDsectAD6ABENog +6zjvQA+YAMTtWO9ACjgLHOKo70APoAEQAOoo70AOgADB64iRQApAACVj/9EAAAAAAOYA2EAJ+A6c +2iDrwdhADoAAwe0Q2EAKQAAdY/+vAAAA6CTRQAn4Dv2KJ9yQ6xDYQA+YANTqoJJACjgFreWo70AJ ++A9SizDiFPAABfACqyR2OeJY70APoAEQ2iDrEbBACgALF2P+utog7GjvQAoADIeLEIgxDKwRrLvj +qO8/+iAAeOoo70AOgADA7WjvQAoADGGjo6NM0lDsectAD6ABEACNNY80Ht7W7emAQA6AAILvSorA +DDAM8KrM6YjowBA4DLPvD4PAD6ACGAD/Gu675UAPGAz87s6QQAzQDdDsypFAD2gL6w29LA3MKKy7 +Y/4QANog7BDYQA6AANDrgpFACjgP42P+xwAAAOtPl8APmACi7LvhwA6AAMCra+uwkUAKOAMy4ljv +QBAYAsTsectAD6ABEAAAAAAAAGwQCOkluEAQOA2CKjEF6hXIQA6AAaToCIIAC/AOqSwgcuIU8AAL +mAO86SS5QBAQDNIa3o3nkNhADwgGyOlJ7kAOCAwNCmYILmI67IhugA8QC34MjArrabNAFNgMzAy7 +AesUyEANCA1LLqJKGN6XZOGo6IKzwBJIDPro++UADOgPj+kk0SAOWAspGt6A6BSwQBDwDLLvJrFA +EUgLkh7edu6AyEAOgADS7YLIQA6AAMavmei74cAPCAn56YPIQA9gC8vrgchAECAMkeoC7MAQgAKI +6BPwQA6AAKDrFbBADoAEwOyXyEAQgAKD7BZuwA6AANTslshAD0gL2+mQkkAYUAE7CANoCQJr7qZu +oAEIBCuIFO4A7MAPCAnLqYjogJIgAGgECwvZDG2ZAggCayghKSsgBCkhKOiBkEAOgALS6AiOwBMI +BNvoKcIACXgIiR/eX+wA2EAQ8Ayi7BDIQBAgDLHsEshADwgNWO0RyEAOgAHu7QDYQA6AAMHrsJLA +CjgITwUOR+dpyyAGoAJe4gDYQA+gARAAAAAAAOIA2EAPoAEQAAAvISgoJSnrFLBAEAAM0u4w2AAG +cAiPH9467LrJQA6AAZgpthvvuMlADwgJje4EbsAPYAnpH948KbYZGd4+L/KNKrYfKrYg6LHKQA9o +Df3pvMlAD2AN7e29yUAJ+A+E2iDrOO9AD5gAxO1Y70AKOApB4qjvQA+gARDaIOvB2EAOgADA7RDY +QAo4D0pj/9AA6wDYQAn4DizaIOwA2EAOgADZ64iRQAo4D0Nj/7IAAADqKO9ACgAKS2P+LYon20Dt +SO9ADoAAwOqgkkAKOATT4qjvQA+gARAA2KDqKcJACfgOzyolKeio70AJ+A8vAAAAbBAG6CW4QA6A +AZTrgdhAEIAMwu8nuEAPmACk7sHYQA+YAEUM62XvD4IADmAOmI0iKhYADwIA6I5twA4ICL3qfm3A +DwgHzwh3CChyOgr6CuqrtSAMaAdIKXI5DQY+6pXlAAv4D6nsKbBAEFAMsgy7DOIU8AAJ+Atr7Sy4 +wBJwDaLTD++hkAAMEAitKjABKSIY7y7QwA6AAIHvENgAC+ADqh/d6iwgOB3d6ew8gEAOgASx6FnI +QA9YDc/oMahAD5gA+Oy/58AQOA3C7x5twA9gDf3tVshADCALoO0kqkAMAAzC4LvhwA8ADKwMuwLs +ILFAD2AN/euNbcAPYAi47VTIQBA4C9LsVchAD2AI+OhQyEAQSAvC6CKqQAygDdDs3eDAEAAM8u5Y +yEAPYAzc7dptwA9gCLjoUshADwgPj+xTyEAOgACH6ADYQA9gD4+YV59R77ptwBAIArkrJhiYW5la +7wLswBIAApUJEmruU8lAEIACoy5cUO1SyUAOgACXCgNpDkJrCgNoDgJr6XnLQA0AATaPKS4gOKb/ +7ynIAAWgA+4ECEfiFPAgBFACWOIA2EAPoAEQ2iDraO9ACjgM1u7B2EANcAt62iDsELBAD5gAs+1I +70AKOAms4qjvQA+gARAAK/wY6ijvQA6AAMHtcNhACjgOtWP/ztog61jvQAo4C1fiqO9AD6ABEIki +wKQKmQLpIshACfgPsgDrLbFADEANkADRBAD8Ggy7AustyUAJ+A5zjRCKJ+wA2EAPmAC96qCSQAo4 +BDniqO9AD6ABEAAAAOoo70AKOAlPY/9EAGwQDOcgsUAOgAFk7SWrQA6AAbjsNLBAD5gAg+UTyEAQ +OA3y5Q7yQA+YAJPjMrBAECgNUu8PgkAPSAzcB8tl4wOCgBwgDmUqIgIoFgDngNhADhgEeiaAAegQ +yAAZiAPGnxKTFZwUnhiZFxjdROaVbcAQEAJU5R7IQA8IBc+oVepglEAQIALU7R3IQA8YBq+WHIcd +JlI6ihyJHukbyAAO+At26qu1QBHIDJUKmQHumO9ADRgCiSuCSh3dRtMPZLLx7d+zwBJIDMjtyeUA +FzAP3OMpsEAQUAzymRHgE/HAD2gPP+4WyAAM+As/JhoA5//YQBB4BTYrIBbiFPAADMgOex3dQBzd +PosW6RewQBHADeLqFLBAELgMYuq4yEAOgADw77nIQBAYDHnmushAECAMme4+gEAOgARg57fIQA9Y +DO3sGshAD1gP5u8ZyEAQ2Azi7rvIAAqgC5oc3Scb3SfpFbBAEEgMYR/dKI4a6RiwQA9gBpYY3STt +ILFAD2AObu/u60AOEAbpjxeJFiYgB4rw7ZXIQBBIDHLulshADAAGYupm4MAPKAqK6CKqQA9gCmru +BoLAD2AKyuqQyEARIAui6GbgwA9gCLjokshAEAAMguaq60AQOAti553IQBBwDHHqlMhAEEgLouiI +4cAMoAZg6HfrQA8ABsbnkchAD2AKauqTyEARAAKP6ZCQoACAAgQqTP5tqQUIA2gJAmsoIBTTD9MP +CEhk6CTRIA/QCyjqG7BADogAkOpZy0AQoAU5KyAWLAr/0w/iFPAAEHgOyy0iF7Hd7SfJQA0AATOP +KS4gOKP/7ynIAA9AA+6GGGVhweIA2EAPoAEQAAAAAAAAAOkA2EAJ+A4s2iDrOO9ACjgMC2SuV2AB +AiogB+wA2EAKOAvkZa5cYAKPAACKGGSglOYVsEAQIAzB6gjfwBBIDPHqK9NAEDgMsazt7hqwQA9o +CMnotMhAD5gAou0ryUAPYA9v7SCxQA9gDv7vFrBACjgKiBjcoysaAOpZy0AQaAU7KyAWLAr/fLle +jiktIDij7u4pyAADYAPthhcqIhApITXmZLBADoAAsesYyEAOgADznxPpgdhAD0gGlgppZeYUyEAJ ++A1TiifsSO9AEAAMseqgkkAKOAb86hfIQBDYDOLppLBACfgPTQAqIAfsOO9ACjgLgug4bMAJ+A+S +AAAAAADqKO9ACjgIbejnbMAJ+A+MKyBOZLzMB6sCmyLaIOxI70AQAAyx7ROwQAo4CKDiqO9AD6AB +ENog68HYQA6AAMHtENhACjgNqmP/0Nog6xOwQAo4CkziqO9AD6ABEIsS2iDtHbBADoAAweu4kUAK +OA2fY/+nLyA7ZPBv2iDrF7BAECAMweYI38AQMAzx5ivTQAo4CkDqG8hADoAAgCgmG+gr00AJ+A38 +2iDrEbBACgAIm2P9/Ion20DtSO9ADoAAwOqgkkAKOAMj4qjvQA+gARAA6ijvQAo4CDlj/hAqIAfs +OO9ACjgLRWP95okX5hawQBAADHnuD4LAEDgNogj/EO5myEAPKAeH6iCwQAwACKLuJKpADwAIqOge +sEAPYAeH6KrhwA9gB8fnYMhAERALcu1lyEAPYAio6GHIQBA4DNLrd+tAD2AL/utkyEAQSAvy52LI +QA74DODrKbBAEDgLcuttyEARAAK97dWpQA8oC+vukJJADKAHcOx34MAPmACeq9jogJDAD2APf+9j +yEASIAWO7U6XwBAwDMEM2hGqmuzAkMARuAeo4hTwP+eoAgRt2QUJA2gMAmtj/OSLEtog7BDYQA6A +ANDrspFACjgNSGP+Su3p6MAJ+A+8CY0MDUgUbYkFCQNpDEJrjhbpsJDAD2gMhK7e6OCQv+U4Agwv +zP5t+QUJA2oIgmtj/JMAAGwQBugluEAQoA3y6q9vQA6AAbTv85AACWgOuCwgTimiSh7cCbDM7C7Q +wA0IAKnu77PAEkgM2u7W5QAH4A/tDw9H7yTRIA8gCy8X3A4uIHMpIh3s/9/ADoAA0e7hkEAPoAIe +7g6EQA+gCA0MjAPuI9PADygImOyZ5UAPWAiN6S3JQA4ADbiKInynBC8gTsr7facK6Sy4wBJwDYJ5 +gx7MbCogFOsisEAYOAsaZLGQ4gDYQA+gARAAAAAAAAAA7CewQA74D9MNrQGdIurAk0AKMApP495v +QA0AAjoooAADiAooghAtCgTsp7hAD5gAuuoo70APoAAYZa/giSdkn58qmRTKqIqZZK+VKKAAA4gK +KIIQwNPsp7hAD5gAuuoo70APoAAYZa/hY/90AAAAAOoA2EAJ+A/UwGApIBSzmekk0UAJ+A8KANog +61jvQAo4CYviqO9AD6ABEAAAAAAAAO4luEAQOA3S7QyCAAugDr4FC0fiFPAgC8gCW+MQyEAQMAzj +DMgRqoovojriFPAgB/gCTxjbmgjICumps0AU2AyI6J/lAAdID4ntKYBAESAL0hjbt+w5b0APAAmp +6d3rQBEQC5LoILBAD2ANje3wyEAQSAvS7fPIQA9gCcnp8shADoAA0unob0APCAiI7vXIQA9gCNjo +8chAEMACz+kC7MAOgACQsZnsE/BAH9ABKe2pyz/zuAILiifbQO1I70AOgADA6qCSQAo4Akhj/lva +IOto70AKAAe4Gttw60HYQAn4Dg+KJ8Cx6qCSQAo4CinrwdhADoAAwe4gsEAOgADR6dhvQA6AAIHv +qO9AD5gAoufwyEAPCA6O6fLIQA9gDo7u8chACjgMmOIA2EAPoAEQjyLrEchADQAGT+IU8D/vaAJb +iifrANhADoAAweqgkkAKOAXDl6DtELBAEAAMshzbd+yiyEAOgADB7dawQA8IC4vto8hAD2ALy+uh +yEAJ+A2uANtQ6ijvQAo4CSVj/ZsAAADuM7BACfgOj9og68iRQA6AANLsENhACjgMd+sRsEAJ+A+K +AABsEAQqIBTjSO8gAQALKoon2zDsANhAD5gA0+qgkkAKOAIF4qjvQA+gARCMInPONBvbLS2ySsrZ +H9tA7rmwwBP4DP/v6+VAEOAJ/uok0UAeAAsa6ijvQAoAB2pj/7AAAAAAAMjG4gDYQA+gARDaIOvB +2EAOgADB7RDYQAo4DFXiANhAD6ABEAAAbBAO5B3IQBA4DeLlD/JAD5gAs+8fyEAMcA1Q7g6CQBnA +Ai3qMJFAD5gAkeoQ8kAPmACBCYJrCgNpCUJrCgNoCQJr6xHwQA6AAJOZHQgSaugcyEAPmACx57ew +QBGgC4KML+MQ2EAPmABr6HflwA6AAaQMemXrEMlAGLgCLSsgTykgTbG7CwtH6y/QgBPIC7ktIAXi +FPAAEkgOrYwix6PtELEAD8AFyu3SsEAQyAzy4hTwABSQDv0vEhDtHbBAEEAM/xna5hja7+3UkEAN +EAQfmB4Y2uPu7+HADwgDzqkzCP8IKTI66/u1AA8gC9kqMjnrpOUADsgPuuUpsEAQUAzC4BXxwA9o +DFziFPAAC0gLXCgaAOn/2EAQkAVYKyAWDwIA4hTwABkADpsY2vcsIDgb2vTEkuw8gEAOgACi7Ivn +wA9YCsnoANhAECAMluhHyEAQKAyG6UnIQBB4DMIZ2uvsRchAEDAMxuhKyEAREAuCnEsc2ufpiOtA +ESALkuhCyEAPYAnJ6UTIQBAADIIZ2uEIiBHsJ7hAD2AImOhByEAQOAuSGNrMDCxA6szgwAygCZDo +zOtAEEgLgudIyEAPAAnJ7EDIQBHIDcLpANhAD2AImOhDyEANAA6XjGnsRMlAEEAMhuzMbkAPAAmp +6ELJQBBQDIboRclAEHAMgedDyUAPYAnJKUYQ6ALswBLAApQJEmqJZ+IU8AAJuAuXH9qzCr4CD+4C +nkbtYNhADogAwO05y0AQkAVcKyAWKAr/4hTwABIIDouKKSwiGSsgT6Wq7MGQQBHADZLsKclAF/gC +uyskT+opyAAOCAPpjR9l0cLiANhAD6ABEC8WES0WEu4TyUAPmACi61jvQAo4CcTuE7FAEJAM0e8R +sUANcAeajh9l78yKJ+wdsEAQgAyx6qCTQAo4BJ/iANhAD6ABEAAAAOIU8B/4uAGM6RDYQAn4Dw/q +KO9AEMACvuwQ2EAKOAubY/+6wUN02QwtIDrA/+4TyQAP2A792iDrWO9ACjgIOuKo70APoAEQAO7R +2EAIAAAGwOEoEhArIQnaIOyHsEAPCA++5LvhwBBADNjvu+tAEBAM6OO760AKOAgZ4gDYQA+gARAA +AAAAAADugdhACfgPxgq5AplG6GDYQA6IAMDoOctAEJAFXCsgFioK/+IU8AAM6A6rix9ksR+Kaohn +wMCqeueI6MAQSAy26GfIQBAwBXqxu4lliGaaaqnKqHzrachAEDAFfLGqmmXsZshAEEgMgisgOKWI +6CnIAAiQA+uJJyqZFMuni5ntEslADQADOxnaSSiwAAmICu8RyUAQgAyILhYT6ijvQBA4DcvtMNhA +D6AAGC4SE+0SsUAQiAzxiyLHo+IU8B/zWAW652ewQBGgC4KJL8DB6EHYQA9IB4cJeGXsH8hACfgM +weoo70AKOAX7Y/43iifbYOqgk0AKMAWc4qjvQA+gARAALxYRLRYS7hPJQBA4DaLsANhACjgJLe4T +sUAQkAzR7xGxQA5gDCraIOwQ2EAOgADQ6+KRQAo4CzNj/hoqIAfsWO9ACjgI82P9tAAAAAAAAADv +EclAEDgMou0SyUAQgAyx7hPJQBBoDMHqoJNACjgEHi4SE+0SsUAPmABq7xGxQAn4DrEvFhEtFhIu +FhPqKO9ACjgF0O4TsUAQkAzR7xGxQAn4DtXaIOsA2EAOgADA7TDYQAowDzgrIAXuE7Ef3MgOS2P9 +kS8WES0WEu4TyUAQOA2i7FjvQAo4CM7uE7FAEJAM0e8RsUAJ+A5FAABsEAwlFgXlDvJAECgNYuw0 +sEARoAvS6TjvQBB4DHLvJ7hAD5gAg+3M5cAOgAE0B8Nl7w+CABwIDjYqIgIpFgLngNhADhgESiaQ +AekSyAAZcAPGnxTsFshAEBACVJUeFdnIFtmy7hjIQBAgAtTqUJRADwgFz6ZV7R3IQA8YCa+ZHIcd +JlI6jxyJHukbyAANOAt27/u1QBHIDOUP7gHp6O9ADRgCjhbZohrZttMPJmJKF9mf6q+zwA0QDrYn +ckkNAz7qfuUAFugPp+wpsEAQUAyy7hPIQA9oC8voEcgACwALOy0aAO7/2EAQeAU9KyAW6BHIAAtQ +Dusd2bfrKLtAECAMaBzZs+oE2EAQMAzx6zuAQA6AAHDnl8hAD1gMvewZyEAPWAe65xrIAAqQC28a +2Z4f2aLmGLBAEIAC2OuQkkAPYA587JltQA9gDv7vqW1ADhAJFiYgB4eABiZA73flQA8ABqYGdwIK +dwLnkMhAESALcg4GQwhmEOZ360AREAti55TIQBBIDHKXnexm60AQAAxy5pLIQBB4DGLmlchAEHAM +YQh3Eedm60AQOAty5pHIQBBIC2IHB0rogJJADwAHx+6WyEAPYAZ25pPIQBfwAqTtEPFAEgACmesS +8SAAaAIEbakFCANoCQJrKCAUCEhk6CTRIBF4CyjqG7BADogAkOpZy0AQkAU5KyAWLAr/4hTwABJA +DsvIPY4pLSA4o+7uKcgAEWAD7Y8YZfID4gDYQA+gARAAAADuANhACfgOZOkfyEAPmACi6zjvQAo4 +CIeIEekfsEANcAjqYAEtAAAA6R/IQBA4DaLsANhACjgIXIgR6R+wQA5wCEpgAtMAhhjTD2RgtSb6 +gOYr00AQgAL47xDyQBEAAunuEvJAEDAMcY2HioToEchAEDAM6K1955jIQA9oCnrqhMhAEGAFfegR +yEAQCALuixGPGu62yEAQSAzhjBbtt8hAD5gAou/u60AQeAzS75jvQAo4BvWIESYaAOpZy0AQaAU2 +KyAWJwr/d7lWiikpIDijquopyAADGAPpji8tITTvENhAECAMyO8YyEAOgACzmxXtQdhAD0gM3A7N +ZewWyEAJ+A1NiieZH+xI70AQEAyx6qCSQAo4A2rYoOkfsEAJ+A8wKiAH7DjvQAo4B/HoEbBACfgP +mgAAAADqKO9ACjgE3egRsEAJ+A+VKyBOZLzPB6gCmCLaIOxI70AQEAyx7RWwQAo4BRDiqO9AD6AB +ENog68HYQA6AAMHtENhACjgKGmP/0Nog61jvQAo4BrziqO9AD6ABEIsU2iDtHbBADoAAweu4kUAK +OAoPY/+nJiA7ZGB/KvqA6ivTQA+YAPntEPNAEDAMwesS80APmACi7JjIQBB4DNLriO9ACjgGq+ob +yEAOgACw6yvTQAn4DcvaIOsTsEAKAAUIY/3HiifbQO1I70AOgADA6qCSQAowD4/iqO9AD6ABEAAA +AOoo70AKOASlY/3MKiAH7DjvQAo4B7Fj/a0mIAeHgO6WyEAMMA7g6O7gwAwABmLvf+VADwAGpub/ +60AREAti6v/rQBBwDHHvkMhAEAAMou8kqkAPYAbG5pLIQBB4DMLslchAEDgLYuwpsEAPCAqK7yew +QA9gDu/snchAD2AHp5eR7pTIQBBIC8LmBojAEKgL7+/wkkAPAAbG5szrQA74DGDvF8hADygPb6/q +7JPIQBIAAqrs2O9AExAFrSfMEHejXwwDaAsCa44XLuEFr+ztgJJAEgACzOjY70ATuAXNLUz+DNYR +pobrkJDAE4gHbOIU8D/lUAIEbdkFCANpC0JrY/yZixTaIOwQ2EAOgADQ67KRQAo4Ca5j/iLu3OjA +CfgPngytDA1OFG3pBQwDaguCayz8QKnd7dCSP/xwAQ7AYQ5mDG1pBQwDaw3Ca2P/eAAAAO7Y6MAJ ++A+JAAAIzQztSO1AD5gAyG2JBQwDaAsCa+zwkMAPaAiEqd3t0JC/4PgCCC6M/tMPbekFDANpDUJr +Y/wJAAAAAAAAAGwQBugluEAQOA0ywEPjA4JAG/gIGCggImSAdOoo70AKMA0S7hDYQBtIASoqICEY +2EbsM+GAAtgD+qgzKTI6bpNOKzI5ZLBI7+/YQA6AAMDvr+VADoAA0O7+60AOgACQ7iHSQBAADKLp +EMhADoAA8OkRyEAOgADp6RLIQAo4AkgkNjniANhAD6ABEAAAAAAAAOIA2EAPoAEQbBAEFNhaFtg2 +5CLjwBP4DGYiIpvlQ2xADAAEPu9E4MAMAAZg5ADYQA8oAkLmVOfAD2ACI+Qi60APoAEQbBAEiifr +OO9AD5gAxOqgkkAKOAKJ4qjvQA6AALLrotBAD6ABEAAAAGwQCuUM8kAQKA2i6Ce4QA+YAJPpEMhA +D5gANOwUyEAPmABJ6AiCIABwCArB0+IU8AAZ2A7ajiIW2AZl4sHrMGxADwgP6Kb/7xPIQA8ICsir +quoWyEAQIAKTjhaGEy7iOo8W5mu1ABUwC54v8jkG9wHnFcgAFMAPb+pCsEAQ2AtS5aXlwBBQDGLn +ANlAD2gLWugZyEAQMAe31aCHKdMPB2YM4hTwAAu4C1YqGgDs/9hAEHgFWisgFugZyAAMCA7LikLi +FPAADKALpYwp60CwQA6AAKDtFLBAEBgMhKXM7CnIQAxwDrDuEchAD5gAeO4+a8AOEAMNJyAHGdgE +7u+zwAwQB3Dt/WvADxgHl+d7tUAQKAyR6O+AQAwADuDv/+DAD1gK7emQkkAPKAf354frQBCAAoTq +d+sgALgBA7A6bakFCANoCQJr60CwQBBIDMLAgJgSFtfGFNe/6BGwQBAoDJEf1+vqKqlAD2gOXOeX +yEAMEA12r92eluCq4cAQgALo7zxrwBB4Aojuk8hAD4AIhO4gsEAQCAKI7dC8QA9oCIPoZOfAEDgL +guSSyEAPYA/+75TIQA9oDdXtO2vAD2AK2uqVyEAPCA6O6AiIwBAIAqPurutADwgIyO6RyEAPYAjY +mJAmIBSjYyMkFOOo7wALGAKriBbp/9hADogAcOOJy0AQeAVXKyAW4hTwAAvYDpuIEuKI70APoAEQ +AAAAAOkYyEAPmACi61jvQAo4BteIGekYsEANcAd6YADFAAAA6RjIQBA4DaLsANhACjgGrIgZ6Riw +QA5wBtpgAZwb14+HQ+sUsEAPKAe3mRjoGchADQAFi95w7CmwQA+YALTlrejAECgM8e1CyEAPmACi +pczsKchAD5gA1ew470AKOAIO6RiwQBBIDIGPFi4aAOr5y0AQaAVeKyAWJgr/drktwKHqFMhACfgN +mYon7DjvQBAADLHqoJJACjgBz8Cy66LQQA+YAErqorBACfgPjNxQ6ie4QAo4BlWIGekYsEAJ+A/C +AAAAjBRkwJXiANhAD6ABEN2Q6ijvQA6AAMHriJFACjgIh2P/3YonC41H6qCSIASQAy2MFesQ2EAP +mADT7MCSQAowDhfqEshAEAAMtOwpsEAJ+A4GixXsPOHAD5gAoqy77BDYQAowC8zjM5BACfgOiWXM +xeIU8D/mEAFaLiAg4hTwH+W4Ae5j/34qIAfsWO9ACjgGLYgS4ojvQA+gARCKJ+sQsEAPmADD6qCS +QAo4AZniANhADoAAsuui0EAPoAEQ2zDsANhAD5gA0+eI70AKMA3060jvQA+YAMPtWO9AD5gA5+oS +yEAQKAzx6ijvQAo4AbrrQLBACfgN79og7BDYQA6AANDrgpFACjgITGP+8wBsEAQjIAAkCu10MQsi +IQPiLJBAD6ABEACEIYYgwILk6YBAEBgMIuZFisAMMANg5gaDwA9oCJilM+WRa8APoAIYAGYa5ASO +QA8YA2PlPpBADygCUuM6kUAPaAJSBCQsBDMooyLRDwAAAGwQBh7XJo076VjvQBA4DLPlr2rAD5gA +QukQyEAQOAsi70mqQBFAC8TlYshAEDgMpBXW+Oe76MAMoAIg7t3lQBEAAqqsfO7wkkAPCALC7mPI +QA9gAlLiYMhADoAA4us3yEAPYA3N7DvBQBIAAiPsYJFAEQACs+07yEAO+AzQ7a3lQBhQAD4LA2gM +AmvrYJNADgAJbylMQAkDaQtCay6hBewo70AOgABRrejrYJCABtgKg8Ak7XjvQAoABhfpOLBAEEgM +8+s3sEAQAAzUoqKlrOjd4cAQGALM7czrQBBQDKPsYchADQAJKx7W7qeq7wiPwAzwD/DqOshAEAgC +iOCI4cAPKA7p7jjIQA9gD4+fOY0QHtblDQ1HDN0Rrt2S0OIA2EAPoAEQLqEF0w+t6Owo7wADAAqD +v/8PRRTpyO9AGFABNQkDaguCaylBLGWQSsew7qWoQA8oC7+svKa7renpkJDAEBgCJeuwkx/6UAuc +7szowAn4D0Ic1swMnALsZMhAD6ABEAAAAAAA7izowAn4DyXuLOjACfgPoKaYKIwwC+owLkIX7rvo +wBCoDeMS1sAObkEC7gou4psOuywuQTAiQTEA7hEOIgKrIuKBwEAM+AIg4oDAQAn4D3lsEArAoOUM +8kAQEAyC6ye4QA+YAJPsGMhAD5gANOeY70AOgADA6wuCQA4YASgqFgUsFgQpFgIrFgMY1qce1nIV +1nDstOHADwgN6w7dCO0ayEAQsA3SBUQI7xpqwA6AD+/vF8hAELgE7eoo70AKIAMuGNaa6hfIQA0g +B7pgAB4AAAAAAAAAZmMM6f/YIBlIARYvIBbTD+IU8AAUOA6fKlJK0w8PAgDstmrADQAKeutZsMAT ++AzMDLsB6xnIQA0QCvsd1mYt0IDuSrNAEbgC3e1N7UAQUAzBrT223ezLtUAT0AfeK0I5DLsB6xDI +QA0QCUsscQzpd7BAEIAN9+kRyAAJyAiMZPCZ4hTwP/vYAV+Nc2TQTI4VZeEd5hGwQBA4DPHqKO9A +D5gAt+0TsEAPmADD5v/lwBAADOHvEchAC/gPOxjWZuao7z/6CAB6YAJGAADrANhACfgPZOsA2EAJ ++A+MihfAsesVyEAVWAWawNDtFchAFQgFmttw6ijvQA+YAMPtGLBACiABUueo70AOgADx7xjIQA6A +AOHuo8hACfgPd4pzZKBDjRTsENhADoAAsA3LOGSwgIgR5hewQA+YAKLreO9AD5gAw+4Y70AQGAzR +6GblwBAgAvHmEchACiAB59ag6NNqwAn4DqCLF+oA2EAQSAebecMBwKHuENhADoAAwArsOOoUyEAN +eAns23DqKO9AD5gAw+0YsEAKIAJw7xDYQA6AAHHnGMhAD5gAeu+jyEAJ+A90AIsQHNX6GtXziSDt +cLBAEDgL4u/PacAX+AJj5bCRQA8ICYntDYhADKAO4O2zyEAPCA7O6WnrQBB4At3pschAD4AN1OkY +sEAQEALd7+7rQA9oDdPusMhAD1gK3OqyyEAOCAr5iBLogJIgAKgCAyo8/ulY70AYUAE6CANoCQJr +Kzz+DLsRq1ubECggFCwgBNMPo4jiFPAgB8gCDAgJR+kk0SAJMAwpiXGIcugWyEAPmABb6CzJAAkg +AhnnANhADYgDqadmKiAWKwr/DwIA5knLQBBwBLraIOsRsEAKIAKojBhlwMfiANhAD6ABENog6xGw +QAogAqItIBYuCv/ormmf6jgI7WP9LI8YZf/XKXAQ6ijvQA+YALfsOO9ADoAAgemfl8AOgADQ6Y3m +wAogAHriANhAD6ABENog68HYQA6AAMHtENhACjgG3GP/uosT6ijvQA6AAMHruJFACjgG12P/pSwg +Fi0K/+IU8B/7yAjc2iDrEbBACiACgeIA2EAPoAEQixAMbBGsu+sQyEAJ+A79jXDoJNEf+XAArdog +7ADYQAowChzmY5BACfgPHIon2zDtOO9ADoAAwOqgkkAKMAxX4qjvQA+gARDaIOsZsEAKAAHG6xCw +QAn4DtDaIOyI70AKAAM1iXHsq+HAEDAMgatV56jvP/ZwAHnbUOoo70AOgADA7YjvQAoAAw6np2P+ +soonwLLsWO9AD5gA0+qgkkAKIAB3K3AQ4hTwP/KoAVspcBUJCEVkjkcd1ZvreahAEIgNpy9xDIwn +q6ruDN/AD2gP3+3FqUARAALM7szlQA8QCKjugpJAEJACiKzcD+g5qHvswJDAEQACu+q470ATAAXL +D+owHNWHLqEB6WuCQBAAC9rsu+PAELgMwiuymwDdEe3u60APaA/PC/8sr+6oX+7xwEAM+A7g7vDA +QAn4DcWLE9og7BDYQA6AANDrspFACjgGemP+MQAAAAAAAADtuujACfgPoGwQCuU+uEAPmACF6Se4 +QBAQDLLlF8hADoAAo+gTyEAPEAVV6QmCQA4IBVsc1UXpEchAF/gC1ObCacAPmACJ7JvhwBQADczp +kmnADzgO1aa76xjIQBG4AszrurNAD4AMxK7O7uKQQA8YCZjoGLAAChAL6+mbtUARyAyICYgB24Dn +iO9ADQgDWCxiSh/VLGTBBe//s8ASSAzmiRPs/9hADygI/ugWyAAHgA/+KCAWCQlH6xLIAAkIDsgr +MA8Y1Rke1ULsJGnADQgE+y8hBw8PSgz/EQj/Ai/mLI0gCN0R6DCRQA9gDa3t7cpAEDgMoewA7qAL +SAJZbakOCANoCANpB4JrBwJrB0JrwICYFegkuUAQMAzR6SS4QBCoDeLqENhAEEgLwqSI5O7goAjI +AgnAkOgk0UAPCAyM6NPQQA9gDOzp0NBAD2AMrOzRyEAPmAC36mnIwBAIDIMpJBTkMrBADoAAYOQs +yQAKUAIYZoFipl+CGC8mOeIVsEAPoAEQ2iDrOO9AD5gAxO0TsEAKOAEC4qjvQA+gARDaIOvB2EAO +gADB7RDYQAo4Bgtj/9AAAAAAAOgA2EAJ+A7J6xGwQA+YAKKlzewQ2EAQEALd67iRQAo4BgFj/6aZ +FO0ZyEAPmACi7RDYQBfwArnsNqhAD1gLvewQyEAKIAHXZKD22iDrELBACiABpekUsEAQSAzR6jDY +QAn4DqidGeXY7yAHcAJZiRLoMJEgAHgBBLBMbckFCANoCQJrwOAuFgWHEgzYEah3Y/7IiTDoJNEA +BwACqYoYghXlqctAD6ABEAAAiifrpalAEDgMwekM38ARAAKqCakBqbnpkJDAGNABPAgDawgDaQeC +awfCa+cS8UAQ+AWY0w/rSO9ADoAAwO1I70AKMAtn6hXIQAn4DmgA64jowAn4D+HqKO9AD5gAt+xI +70AKAAJFiDEMqxELewjmqO8/9QgAeOoo70AOgADA7UjvQAoAAh+mpqZfghgvJjniFbBAD6ABEIsR +2iDsENhADoAA0OuykUAKOAW0Y/5ziifAse1I70AQEAzB6qCSQAowC0eNGeoVyEAJ+A8WAADqKO9A +D5gAt+wA2EAKMAj+s1uMGIIV68nLQA+gARAAAGwQBOn5aMAOmAKg6irqQBCwDbPo2WjAD6ACEqmp +57lowA8QBrvsZuHADoAAwalmp2fkd7dAEDgMk+DN8MAVwAznqGbomJBAEQgEZOjgyEAQEAyznpOW +kuh4z0APYAvb6zLIQA+gARAAH9SKr68p8rcAsQQAzRoNmQIp9rce1IYMLRGu3S7Sug4OXwDuEQ6Z +AiVyuCnWuuhQyEAQEAzz5YHIQA+gAhLmgMhAD6AEDOh4z0APYA9P7zLIQA+gARAAAGwQChnUdQkp +CiiSf+IYyEAPmABC4InvQA6AAGHmGshAD6AFBukUyEAPkAVQ4sZowBdwAvIa1Gsc1GIY1GYb1Gns +R+HADpgC0O1E6kAOgAYw7xXIQBP4DJmrS6h3rEzsFshAFcgMh6pE5Eu1QBf4ApnrF8hADDAJkOkZ +yEAM8AiA6ETlQAgAABwAihrrANhADvgPzwxVA+MG2EANAAZqmxotcrgEXgEO3QGdEAEAaAYzYGg+ +1OoYsEAQOAyx6DCWQBAwDMHoGchADxAPM+z/4cAPmADor8zvRGjAD6ACGKLI6Iu1QBAoDNGvzO// +38APoAkGD5kD6UTlQA+gABhj/5+JGYoUsZkJCUPpr8vAD6ABEAAAAGwQBBTUNeRPs8AQAAwyJTog +5CNowA9oA0MFNSjaMKRU4ka3QAqIDDLAsO+Oa0AO+A+PCKgD7D7hwA8oAoKv7ungsEANAAkSHNQm +GtQY5//fwA6AAGDpDY7ADoAA8ayqqlptCF9/J0xk0FwJ6jAsorcoQrgMmQzgue9AEdAFmChCtgD5 +GgeZAwiYAShGtiziAgwMX+jisEAPoAIb7JnlQA+gDAYMmQLgmeHADPAIgAmIAijmAuIS7UAQCAK7 +6qCTQA0AAUJj/5kM6jDsp89ACfgP5gAA6jjvQAogArziANhAD6ABEGwQBOYpqEAQqA2S5wDYQBCg +DYLnJNFADoAAQeSZ4MAPCAaG5zDQQA9gBpboM9BAD2AGRpYxFdOs5FnIwA+gARBsEAQW0+8V08vT +D6YiBTUCJSaAJCKAZ0ALbQgFKCKAZ4ACY//z0Q8AbBAEE9PmIjaKY//8AAAAAGwQBOgluEAQOA1S +ijXk39/ADoAAMuUFgiAAaAMo4gDYQA+gARAAiCkZ09rqK8gACAgIqAlZCeqQr8AXYAuZ4hTwAARw +C6mKIuIU8AAEIAIK6ijvQAowCD2LIgO6AWSvvIonBLsBKyYC6qCTQAowAgbjWmtADQACKiigAAOI +CiiCEMDU7Ke4QA+YALrqKO9AD6AAGGWv4YknZJ+BKpkUyqaKmWSvdyigAAOICiiCEMDT7Ke4QA+Y +ALrqKO9AD6AAGGWv4WP/VgAA6gDYQAn4D9bqKO9ACjAILisgIuyo70APmACi7LvowAowCW7qWO9A +DoAAsewA2EAKMAtOiyLjuuUf+uAPOy4gB+oo70AOgADB5L/lQA6AANDvIshADBAL4Ou/kUAKOASN +4gDYQA+gARDaIOsiukAKMAlaKiAFwYN4oQ1oqCeLIuO65UAJ+A8SACkgOsC/e5np2iDrANhADoAA +wO0g2EAKMAihY//X2iDrANhADoAAwO0g2EAKMAgWY//CAABsEAod01HsNrBAEQgNkos36u/YQBBY +DILtzOVADygJqekh0kAPaAvL6SmwQBBgCLjiANhAD6ABEC4gBeMQ8EAPmACB6BLwQBA4DVLoGMhA +DvgPTesVyEAOgAAy5QWCQB6IAx7rK8gACGgIuRrTaApaCeugr8AXYAuq4hTwAAS4C7qLIuIU8AAE +aAIL6ijvQAowB86LIgO6AWSvlIonBLsBmyLqoJNACjABl9ug41NrQA0AAloosAADiAooghDqKO9A +EDgNy+1A2EAPoAAY66jvQA54DjqJJ2SfVSqZFIuZyqlkv0sosAADiAooghDqKO9AEDgNy+0w2EAP +oAAY66jvQA54Djpj/ycAAAAA6wDYQAn4D9HqKO9ACjAHvCsgIuyo70APmACi7LvowAowCPzqWO9A +DoAAsewA2EAKMArciyLjuuUf+pgPOy4gB+oo70AOgADB5L/lQA6AANDvIshADBAL4Ou/kUAKOAQb +4gDYQA+gARDaIOsiukAKMAjoKiAFwYN4oQ1oqCeLIuO65UAJ+A8JACkgOsC/e5np2iDrANhADoAA +wO0g2EAKMAgvY//X2iDrANhADoAAwO0g2EAKMAekY//CAABsEAQc0xEpMBaLNAlZFOy75SAImAEJ +7u/fwA0IAlkd0wvkXmogAbgECWmVJ4za79uwQBBwB8us/+IU8AAJgAv7KCAGDwIAKIz/CAhH6CbQ +QA0ABsjiANhAD6ABEIza6duwQBBwB8usmeIU8AAIaAubKiAGsKoKCkfqJtBADngNioknjCIrmRQO +zAHsIshADQAM64uZKLAABIgKKIIQ6ijvQA6AANPst7hAD6AAGOIA2EAPoAEQAAAAAAAAAOkisEAQ +OAyi6qCTQA8oCenpIshACjABGsmsKKAABIgKKIIQwNTsp7hAD5gAuuoo70APoAAYZa/hiSdkn1oq +mRRkoGSKmWSvTyigAASICiiCEMDT7Ke4QA+YALrqKO9AD6AAGGWv4WP/Ltog6zjvQA+YAMTtWO9A +CjAIouIA2EAPoAEQ2iDrOO9AD5gAxO1Y70AL+A874gDYQA+gARAAAADrANhACfgPNOoA2EAJ+A+Z +iDci0vUJiBGoImP+xog3ItL1CYgRqCJj/ukAAAAAAABsEATRDwAAAGwQBBfSrxbSrx3SrO4pqEAQ +AAyyGtJh5TfIQBBAC8Lk7utADwgLi+oyyEAPYA7e6Ce4QA6AAZDpM8hADoAAIu42yEAOgACQ6TXI +QA9gCyvrMchADBAPgOgogEAPCA8P6HbnwA9gDPzmMMhAD2AM3Ow0yEAPoAEQAGwQBB3SkesnuEAQ +AAyiF9JE5zLIQA6AAFDlNchAEEALkuM1akAPmABjHNKI5ZhqQA8ICorrLoBAFAANM+sLgkAPWAzt +7GDIQA8ICwvrmetAEbgCc+WZ60APgAd06WTIQBf4AofqeutADwgIyOphyEAXwAKImGMY0joCBGaV +ZuNnyEARgAJW5kbswA+AAzTka8hAEEgLkulqyEAPmAAn0w/oAOzAGDgBMwUCa9EPAAAAbBAGHdJo +7oZqQA8IC7KtsyoyfxnSTeigsEAOgABArpmpueYQ2EANAAMoLDJ47zuzgAYoCJxl8ScsNnwvMnkv +NnvZQAnkFgECAJSgCeQWwIniFPAABogIgi8ye8HA7TVqQA0ACJ8iMnwqIQSOIOoLhMAQoAgvJDZ8 +5DvLwAgAAAwAAAAAAC42fO2v5UAX+AKLCP8C7yTAIADIAQsiMnywzO87s8ANAAJCycxj/7oAAADq +KO9ACjALB2WgzCohBOoJhIAAcAMKyZbRDwAAAAAAAOoo70AKMAr40Q8AAAAAAADqKO9ACjAKtdEP +2iDrANhACjALgtEPLiz46ti0QA+gAh7ga/DADvgPzwy7AwuqAerYzEAK0A7jJDZ8JDZ76j+zwAn4 +DyAV0dTTD9MPL1BIZPBoWZwMWGpvKFBI0w9kjxdYamTIrhXSGilSVrCZ6VbJwA0ABclYadpj/vwA +AAAAAOxRakAOgAC07jyzwBPQDKPqEMhAF8gC0upQ2EAK0Aiz6j+zwAn4DrcrMnviPMvADngDm+I7 +y8APoAEQHNIHLMKuccaN5ljQwAn4D4oAWGnk6lbJwAn4D6FsEAQU0gAZ0froHmlADwgLsqS0I0J/ +qYiouGQwTIoweKkCKkJ7HNHzKzEE6k/LwA8oCssqNQTqOO9ACjAKuM+mKTEE6Q2EgABIAwnJ0dEP +AOo470AKMAqq0Q8AAAAAAADqOO9ACjAKZ9EP2iDrANhACjALNNEPAADjT8vAD6ABEGwQBOn/38AN +AADziCIJOQMJiAEoJgKKJ+qgk0AKMAAK45ppQA0AAioooAADiAooghDA1OynuEAPmAC66ijvQA+g +ABhlr+GJJ8uUKpkUyqeKmcmsKKAAA4gKKIIQwNPsp7hAD5gAuuoo70APoAAYZa/h0Q8AAAAAAOoA +2EAJ+A/V0Q8AAGwQCOimaUAXQAJS5OtpQAxwBVDrKuHADwgFxahVpKTrq2lAEAgDlOhas0ATOA2Z +LQqA7LCWgA/IC5goUjlkge4T0YCtTxnRkZsR5wtpQA+YAIzsEPFAD6ACEugQyEAOgABh7BDwQA+g +BgaWE6enC0Jrqa6eFQsCa5cU6QDvwA74D38HZgOWEgjCa+gS80AOgAB05vlpQAgAADKKmcmtKKAA +A4gKKIIQLQoD7Ke4QA+YALrqKO9AD6AAGGWv4ClCWi0KgK1PZJEELPDkjhUMywnoGWlADxgL66a7 +irKoyOiAv8ANCAJqLvDl6hDYQA6AAJDqFbBAD1AJyumZ4sARuAjoCpkKKZ0WKZwUKZJV7gDYQA6A +AIEIyAPoCIbADQABGQiLCej01sAPGAurprutSsCQKaTljLDoWrNAF/gD/C/w/+IU8AAE+Av4KFI5 +53+XwA6AD5/nB4bADQAIyOIU8AAEIAiXLMz4rUnqFLBAEAgCjuiV1sAKMAoz6hOwQA+YACrsErBA +DQAAuosiDLsBmyKKJ+qgk0AKKA+LyawooAADiAooghDA1OynuEAPmAC66ijvQA+gABhlr+GJJ2Se +/SqZFGWu1OoA2EAJ+A7TjBGLEAwDawwDagvCa+sS8kAPoAEQAADoQZhAEAgM4SiMgO+H1sAQAAzR +DgNpDgNoDUJr7RLwQA+gARDAsQvLA+sLhsAOgACA6/TWwA8QC7vo9dbADxgL66a77gDYQAn4DwkL +A2sLA2oMwmvsEvJAD6ABEGwQBBjQ2gIDRwwzEagzKzIgirEKEmvgCvHAD6ACICCnABnQ9yiwAAmI +CiiCENwg7SDYQA+gABjiMMpAD6ABEABsEAQY0MoCA0cMMxGoMysyIBnQ6yiwAIqxCYgK6ICxQA6A +ANIKEmvgCvHAD6ACIOwo70APoAAY4jDKQA+gARAAAAAAAGwQBFmh4RLQ9RPQ7wwCACkiggmKbAOo +CoiEC4AAY//rbBAIkhSTFe5IkEAQAAyE6T1oQA74DLDoEshADygKsuoTyEAMcAiI6kSQQA0IDVjt +JahAEBgM8QmMCCzAAOoRyEAMAAaAD98I7/CQwA8gDEzryO8ADeAJ/O8Q2EAOgADQBv04C98L6/iQ +QA8YDb2CFamK7hDIQA6AAMLjKJBADoAA8OIkkEAIAACGAAAAAAAA7vGQQA9oBeXv6O9AEAgCiO4H +gEANAA74jRSGEy3RBSKgAKbW5CLkQBIAAmbrKO8ABwAJYggGQOIQ2EAOgADQBi04C9IL6yiQQA8Y +Db3jENhADoAAIOcLaEAPUAJz4xWwQBAADWmnJ+Nm5EAVAA13BiML4ziQQA8YAmKsfI7Q6wLswA9I +Dl6eIAMIZoLQsarpkZAf+2gLUu4q6MAOgABx6tDIQA6AAGDlsbBAD2gJUul25sAQAAwrCGgIBeUI +5bHIQBA4BeUiLAHisMgAAmgD/BXQbosSEtCzBbUB4hWwQA8oCyvojeHAEAgC7+2760APYA5e7iDI +QA+AAsHrQMhAD6ABEIsQ7RGwQAn4D0QAAADtK+jACfgPIAAW0FCFFcAg5gLswA8gBVyxIuUT8EAf +0AEiHdBVhhIa0JvtbeVAEAgCv+0VsEAPYAvb4sGQQA8ICYjiEu1ADygGpuvQyEAPYAaW5kDIQA+g +ARAAAAAAAADqEchAD5gA2uvo70AJ+A5i7cvowAn4DkRsEASFJelg2EAOgACFA5g55eSGgADAAiW1 +RAQET7FICAhPA4Q5DEQRpCLRDwyIEagi0Q8AbBAEhiUjIB8PAgDm6IaAAOgCJrWGBgZPDGYRBiYI +JmADaWES5wDYQAgAABcmIFPoANg//4gBBgYXFKdnDXcRtYnq8WhADPAJkOxc4cAPCAnJqSmpeeKQ +sEAQCAyZ7YFoQA8IDsXsN+HADDgDPKeXoyLrIZBAEMAFl5dDmkDsQchAD5gAJetCyEAPoAEQl0Od +QJ5BkkLiWO9AD6ABEAAAAGwQBOIwkkAQQAJSAgNqBYJrAgNpBUJrAgNo5RLwQA6AAiDRDxLQSgPo +MATuMAWxMJMglCGVIhLQRhPQC4QgBDMCkyAS0ETAMCg3QCg3SCM9AXIz8xLQQcAwkyDHLxPQPwMj +AxLQP4QgBDQBlCAS0D2EIAQ0AZQgEtA8hCAENAGUIBLQOoQgBDQBlCDHL8AxAyMDEtA3hCAENAGU +IGP//AAS0DWDIAMTFA8zEZMgEtAywDAjJgBX/9sQ0DGRAJIBkwKUAxHQL4IQAeowohEB8DHAQATk +FgACABHQK4IQIxoAAyICkhAR0CjAIZIQBOQxhAODAoIBgQAA0jAAAgABIwAQ0CORAJIBkwKUAxHQ +IYIQAeowohEB8THAQATkFgACABHQGYIQIyoAAyICkhAR0BnAIZIQBOQxhAODAoIBgQAA0zAAAgAB +MwAQ0BSRAJIBkwKUAxHQEoIQAeowohEB8jHAQATkFgACABHQB4IQI0oAAyICkhAR0ArAIZIQBOQx +hAODAoIBgQAA1DAAAgABQwAAXJQBXZQCXpQDX5QAAgAAQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyQAV2QAl6QA1+QAFMAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACclAAdkAGdlAKelAOflAQIlAUJlAYKlAcL +lAACAABDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnJABnZACnpAHHZADn5AEeJAF +eZAGepAHe5AAUwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANyUAB2QAd2UAt6U +A9+UBASUBQWUBgaUBweUCAiUCQmUCgqUCwuUAAIAAEMAAAAAAAAAAAAAAAAAAAAAAAAAAADckAHd +kALekAsdkAPfkAS0kAW1kAa2kAe3kAi4kAm5kAq6kAu7kABTAAAAH//MDADSMRD//goAAAAAAB// +zFQA0zEQ//4KAAAAAAAf/8ycANQxEP/+CgAAAAAAAPQwCgAAAAAA9DAKAAAAAAD0MAoAAAAAbBAG +6SKwQBAYDFPlhYfADggEGeg5YiAIiAQl6iliQA8IBMWoRChCOgpaCuqrtSAJSAZIKUI5FsKM6pvl +AAjYD6nqILBAFBgMxuIU8AAEYAvK7BDYQA6AANTpANhAE9gMhukRyEAO+A//7xDIQA6AAODqEshA +DoAA8KWF6ljvQAooDBvAwO1A2EAOgADg7wDYQA6AAIDoEMhAD5gAuugRyEAPmACl6BLIQAooDBDA +lhrCby0gBosi6UnLQA6AAMHqMshAEAgC3e0m0EAPYAvLmyLiANhAD6ABEMDA7UDYQA6AAJDpEMhA +DoAA4OkRyEAOgADw6RLIQAooC/3AkxrCWy0gBosi6UnLQA6AAMHqMshAEAgC3e0m0EAPYAvLmyLi +ANhAD6ABEAAqIAbuBWJADoAAge4yyEAPYA+J7yLIQBAIAqoqJAbiANhAD6ABEAAA4gDYQA+gARDa +IOwQ2EAQwAK17WDYQAowAwfiANhAD6ABEAAAbBAG6zjvQA+YAOTvWO9AD5gAou0csCAAaAIn7SCw +QAgAAAUAlhDscNhACigLcuKo70APoAEQAABsEASFI+gkqEAQAAwyFMIt6uJiQAwQBVDoeYTADwgF +taRU6ojlQA0AASMJiAIoJQTiT7PAD6ABEB3CJONOs8AQIAuyH8IiLkJ/4jDIQAxgDLfjIchAEPAD +/69f7yDIQBAIAl7lT8vADygL2+JOy8APYAvLKyUE4ljvQA+gARAAAGwQBIIj4gKCQA+gARAAAABs +EAwbwg8qMgMospbmurVADHAJrwmICAmIEQhmCOxisEAQOA2SHcH/KWQH6QiCQA4IDJws0krutLLA +DQgMrCzSSQ7MAewXyEANCAjMizUMhxENdwjvX2FADGgLsesYyEAS+AK77nqzQA+AC7QEvQjvj+PA +F/AC3e/7tQAJSAveLnI57+zlAAjwD/7mGshADHAOUO8wkiALsAJe5QDYIAEAAgQqTP7pyO9AGFAB +Og8DaAkCaylgB+kIgkAQGAyjLjIQ5RnIQA6AAPDuJoPADoAAUeZvl8AMMA7u7l7nwA9QD2XlGLBA +F/ACZAxmEabGLFww7GXIQBBQDMGMwOVnwUASAAJVlWPozOHADvgOUeVo0kAPYAzL7GHIQBA4DMOc +b+wysEAQMAxTnG2VbuCF4cAMkAyg5czrQAwYBa3i/+HADwAFpePu4cAPYA9f7+thQA9gDv7v62FA +D2AM/JxoHMG66SWAQA9gDv7uZMhADwAFpeyLYUAPYAXFnGLlYMhADoAAUJVsLyAUhRmk/+15y0AM +cA/w7yTRIAqYDC/iWO9AD6ABEADqaO9ADoAAweuIkUAKMAJlBQhHaIIx2mDrOO9AD5gAxO1Y70AK +KA1P4qjvQA+gARDaYOvB2EAOgADB7RDYQAowAlkFCUdpks2KZ4qu4qDIQAn4D8YFC0dpsrtj/+oA +AADsANhACfgOPOMcyEAQOAw2JfrA4xTIQBBIDCPuNalAEQAC8+8WyEAPKAVf7hDIQBCgCvOl7uUS +yEARAAIikjnsReHAEgAC7u4VyEAPaA9fCP8yLxYDLzUU4xywAAjACeJoXG+OFaJfL/zg7xHIAARQ +C/7vyO8gAhACBChM/m2JBQIDaA8Ca48WDwIADwIA6jOwQBAIDO/oZ7BAEDgNlugUyEAQIAr/rl7v +E8hAFwAC7u4RyEAMEAiQ7hWwQBAIDFHiFPAABfgI5S8SBuXxyEAPmAAljhNk4H+PFI/+1SDi8LBA +CfgN2Nog6xewQAvwDSHiWO9AD6ABEALqDApPFNMP6MjvQBhQAT8CA2kIQmuIEgrJCA9PDOiAkKAA +gAIPLvz+bekFCANqCYJrghKIFulnuEAPaAqlqiLvhKBAEDgM5u4UyEARAAIi4oHIQBAYDKPpCIJA +DngIT+8SsEAQMAzhwCDi5MBAEgAC/5/h7+DIQAn4D2iPEI4UDyIM4unIQAn4DuGCEo4WIixA4uHI +QAn4D0UAAGwQFuwQ2EAPmADV5hjJQBAYDJPpGshADoAAoOkWyUAPmABn7qjvQA+YAPrpi4BADAAF +meUeyEAPmACF6xzJQA9YC7zrH8hAD1gIXOWo70AOgALA7CDYQA9YD4zvGclAD1gFjOUQyUAOgAGA +5UXowA9YDrjrVejAEAAMg6Ps7BfJQBf4AlWs/OUSykAQgAJX5R/JQAxwCIDswJFAD2gL+OwVyUAP +aAvr7iewQBA4DcKn/6OI53iQQBCAAojrFMlAEHgCu+XwkUAPgAu06xHKQBEAAu7uEMpADBAMwOwZ +yAAaUAF57DCRQBEAAubuH8lAD5gAnOkR8UARAAJfB1JqCQJqBxJqKTAZK2wY6mHRQA+YAHvun5fA +DSAC6QmfCesQyEAX6AL/7g6AQA+AD/Gv7u7ikEAQmA1T7hftQAwAD+AH/wjvEslADAAPUC8WHusY +yEAQ8AyxD18I72vQQA8gD27n+JFAEKgB/hnA1QkAZgcSaufwkkAQyA2TZLQnnRLnHchAEIACdw1f +EeoRskAQyAxR7xzIQBAYDbjvHclADoAA4adV6XiQQA9oC5vpH8lAELgMge2470AQQAJV6xvJQA9Y +Db7tEclADxANu+3dl8AX+AK76wuAQA+ADdGtu+4zsEAQEAK76x3tQAwAC7Ctu6uq6hLKQBDADNHq +KO9AD5gAvOyAkUAKYAmIjB2aG+sSsEANAAJ8HcCpGcCq6cDIQBDwDJHAqOrByEAQQAKM7QLswBg4 +ATkIEmrtEbJAEIACleyY70ANGAprZdRg7hywQA0oBNRk4giUFukfsEAQgAyh7BXIQBFgDIEoFhqq +mSkWE+0bsEAQ6AzhixXqELJAEKgMwe7d6MAL8A9eKhIg7BWxQBBADLHtHbFAC/APWY0W7ADYQBEA +DKEPAgDr2O9ACigG2S8SGir2ACgSGmSCSykSG2SSX+sSsUAQmAyhKRIeKBIiq6qqmSoSG6mICqsJ +672XwBf4AqrqCoBAD4ALsauqsqrogpBAERgB+h3AcOyM4cAOgACQrGztAuzAF8ACzLGZ7BPwQB/Q +ASkuEh3rJ6hAEOAM8eogsEARCAzB6RZgQA+YAN7s/+DADKALsOiq4cAPCAvL6orrQA9gD7/qYchA +D2APn+9gyEANAAFOG8BaKTAZihAPAgALmQKZoOMWsUAQ4AzhH8BR6hSxQA6AALHpGbFAD2gO5O3u +6MAQCALM7szowBCIDOGqmeofsUAQgAKZ6XHIQA9YDsvp7uDAEHAMwe9UYEAPYA7+7nDIQBC4DJHj +boJADQAB/CmcEAlCagpSagkCagoSagnCagrSagmCagqSahzAOq/u41PIQBAADLLtKqlAEMAMMe8p +sEAUAA3u7LvrQA+YACjrUMhADwgNDe4+6MAPaA8/71LIQA9gDe3tUchAD6ABECz8IOnI70ANCAhd +ZbJHZEEiwPDvHclADoAA4O4RyUAOgADQ7RLJQA6AALDrHslADoAAkCkWG+sfsEAQgAzRLhIg6RKy +QA74DPANuwjq5KBADygP/u8UyEAQCAyO6xPJQBAoC97tE8hAEAgCuwm5COyZ4cAPCAvLD90IC4gI +6OHIQA9oCproquxAEgAC3erkwAAX0AnYC5sMZLL8q47iFPAAGCAL7S8SLC8WGi4SIsnibekFCANo +DAJrKBIg6IGwQBAgCqiriOIU8AAZiAjYKRIgmJFkoVwqEhrooMhACfgNsooZ6xqwQAvwB0ErEhvT +Dw8CAOoWyUAOaApL6xKxQBCYDKEpEh4oEiKrqqqZqYjogpBACfgN3QAAAADqa9BAEYACn+yY70AN +AAZdLRIhZdEkZU7cLRIQ6xyyQBB4DMHrGslADoAAoOodyUAOgACQ6RHJQA6AAIDoEslADoAA8O8e +yUAOgADgLhYbrczsE8lACfgNHwAAAAAAAADtEshADoAA4O4dyEAJ+AvWAJkX7BXIQA6AAODuG8hA +DoAA0O0dyUAOgACw6xHJQA6AAKDqEslADoAAgOgeyUAOgADwLxYbmRfsFchAEEgMoesasEAL8AcH +7xGyQBFgDJHqFslADoAAgOiQyEAOEAh/6xKyQBEIDKHTD3uhKCwSHWXCnOoSskAPmAC6C6oM76rh +wBAoDJHTD+gVsUAYUAE6CAJqCRJq7B+wQBCADNGtzOwTyUAJ+Axm7hSwQBEADPHAgOj0wEASAALu +7vHIQA6AAIDu8MhACfgOhQDA8O8byEAOgADg7h3JQA6AANDtEclADoAAwOwSyUAOgACw6x7JQA6A +AKAqFhvsH7BAEIAM0S4SIC/6wK3M6uSgQA8oD/7vFMhAEAgMju0RskAQCAK87BPJQA8IC8sLiAit +zO3lqEAQCALM6OHIQA8IDMztEchAD2gKyg/dCOiq7EASAALd6uTAAA8wCdgLzAzLxKyO4hTwAA9A +C+0vEiFt+QUIA2gJAmsoEiAPAgAoggEMiAjiFPAAEFAI2CkSICiWASoSICqpBGSg6d+A7hWxQBCg +DMErEhOuzu4VyUARCAzh7RyyQA9oC7SsXO0ayUAPaAvr79DIQBf4ArvrFshADVgDmy8SHWTw0uwV +yEAQAAyB6BjIQAn4CtsAAADqH7BAEIAMsSkSLCkWGquq6hPJQAn4CwiPEw+IDOjhyEAJ+A0BKRIs +6RrJQAn4DTQAACoSLCoWGgjdDA1PFNMP6cjvQBhQAT8IA2kJQmsuEiLTD+8UsEAPaA7+rcnv8JDA +GFABPg8DagmCaykSIIgU7browBAgCvmqiCiMQOiRyEAOYA4vY/43iBQrEiAojEDoschACfgMzOgU +sEARAAyR7wDYQA6AAKDqlMBAEgACiOiRyEAOgACg6JDIQAn4DvQuEiArEiLp5ahAECAM0Qy7Eejh +yEAPaAq6rZ3oquxAEgAC3erkwAAGcAnYZLxxq47iFPAf4iAJ7WP/PCgSIe8VsUAYcAE4iRcPA2sJ +wmuZF+sVsUAQoAyhq6srFhWqWuoVyEAJ+A1VAI0bixXqELJAD2gNzewVsUAL8A3KKhIg7BWxQBAA +DLHtHbFAC/ANxmP9W44RLxIgDogM6PHIQAn4DhIACN0MDU8UbfkFCANoCQJrKBIh7xSwQA9oCPit +WSmcEO/wkMAYUAE4DwNpCUJriBQNyQypiCkSICiMQOiRyEAJ+A4EiBQqEiAojEDoochACfgN9AmI +DOjhyEAJ+A8vbBAM4xXIQBA4DaLlC/JAD5gAY+MzsEAQKA1S7THYQBAQDILrGshADBAKoOODgCAA +YAgF4hTwABzYDtVlgtwqFgYDRwjou17ADoAA0C0WCe2bXsAPCAvq5xjIQA8IB8oIdwgNuwgrFgfp +GrBADQAA44gVKIATCAhAmBlkkNKOGY0YKnI6iReu3bTd6Zu1ABTQC9oocjkrGgDpj+UAFGAPmOpi +sEAQ2AtSBaU2BawM6CqwQBAwB8vVoIwp6yK6QBEYDZIMiAzrmejAEyAFWO2aXsANGAL5KyAHCwtB +DbsJKLHuCY02DYgMKLXuLiAi6SpewA6AAIHu3u5AEFgMsu4i0kANAAfeKZJ/AJEE4IjwwBf4Ap7o +j5fAD6AJCam7CLsCmyoMuAziFPAAF4gLWCkaAOv/2EAQYAVZLCAW0w97yUfvHMgAC2AJpWAA1QAA +AAAA7BWwQA14ApMswBlkzx7rFbBAD5gAouxI70AL8AXj5qjvQA6AANHtGshACfgPA9vA7CrIQAn4 +D54rIAfux17ADpgC0A29Ha7eKOK36hDYQA+gAhwAqhp6iCYcvmEMuxGsu4ywKOK47KzlQA6AAJHs +nOeAAdAFiurI70AIAABKAAAZvl4MyAkMiBGp2amIKI0KKIzI6Y6uwBdoC+gogfEJ7gHqENhAEPgF +jmACo4ix6AiPwA6AAOHoqOVADoAA0AjtOA3KAWSiiIpi7xzIAASYCaUYvlfpGrBAEBgM5uju5UAN +AARp22DpKbBAD5gAxOWq6MAPmADV6mLIQA+YAKKlmekpyEAKKAhmKxoA6nnLQBBoBVsrIBYsCv98 +uS/A0e0ayEAJ+A32nhufHOsVsEAPmACi7EjvQAvwBZyPHOao70AQWAzh6qKwQAn4D5zcUOonuEAK +KAyvY//CAAAAAAAAAOoo70AQUAzR6SmwQA+YALbjHLBAD5gAxOgQkUAPmADlpZnpKchAD5gA8+gQ +yEAL+AzyKSAUjGDboKSZ6STRAAJwAqzrectADogAoOz/2EAQiAVaKyAW0w/iFPAABvgOy+IUsEAP +oAEQAAAAjRpk0WfiANhAD6ABEIsW6ijvQA6AAMHruJFACigOx2P/3Ri+EeYgsEAQSAzS5BDYQBBY +DOLon+DADwgMyqw87snIQA9gD0/tyMhADoAC4O/HyEAQOA3y7sPIQBBAC0IdvfjtwshADBAL8O8v +gEAPCAsL6v/gwA9gBLToa+tAD2AEhOTEyEAPCAaG5I9dwA6AAIPrxshADoAAsOvFyEAPYAaG5sHI +QA9gD0+fwCskFOujkEAJ+A8lZbxl4hTwP+MQAVUpICDiFPAf4rgB6WP/NCogB+xY70AKKAxb4hSw +QA+gARAAACogBeIU8D/4oAEKiyLAwgy7AusiyEAJ+A8FKiAHH73V7ejowAwQCqDoItJADxAP+i7x +7q3uLvXuLiAizOuLKesqyEAIAAAuAAAAH73LL/J/jCvg+e9ADoAA0eDd8MAX+AL+7d+XwA+gDw+v +zA3MApwqwMHrr5FADoAA0Ooo70AKKA51iBpljpfqKO9AD5gAxOsVsEAL8AUY4gDYQA+gARCLFtog +7BDYQA6AANDrspFACigOaGP+YwBsEBSDJ+M+sEAKwA75WY7uKDIa5ajvQA+YAGvkANhADRgNGCky +Gucw2CAgcAIJKjIa4hTwIBrYBAorMhriFPAgGoADCywyGuIU8CAhKAcMLTIa4hTwICMQCA0uMhri +FPAgBIAFDi8yGutG2CAEKAYPwVQoMhuxiOg7yQAaqAtYKTIa5QLbICQQBwkqMhriFPAgG3gICiwy +yeQ6yUARKA2z5DvJQA74D9ft0NhADygM3Ow5zMAQYATb4gDYQA+gARClOy4KbuIwkUAPmACi7Cjv +QAqQDkQevX8OAGgCAmsCAmsCAmsCAmviEvBACfgPzQAAwKXsl13ADoADsO06sUAKyAPlJzIa6Tey +wA6AAPHpHclAF9ACd+dP5sATMAxz7xzJIADYAAnbYO3WXcAPmACl7ADYQArIBVEpEh2rmSgyZukd +ySAA4AAI22DtRl3AD5gApewA2EAKyAVJKRIdC3cI6TLNwBDgDKEnNtMkNhvkOslADRgK6umlXcAO +gARQ6DOYQBMgDOPuPMzAExgMs+s7zMAOgACh6j7MwBMoDNPtPczAExAMw+w6zMAQGAzZ7JKwQBA4 +DDLlg8JAEAgMueqCwkAQAAyZ4z6wQBCAAqGZoC2mAyymAuuhyEAOgACD7BRdwA6AA7DtOrTAFlgM +4+88tMAWaAxT6D7MwA6AAKXlEMhACsgDpCQUIiQUIyQUJCQUJSQUJiQUJyQUKCQUKSQUKuoTXcAQ +GAPT6xCQwBGwDe3uHtJAEbgN/e8f0kARqA3d7R3SQBAIDIroschAEAAMmumwyEAQEAzK7LLIQBAY +DKrqs8hADoAAwuwR0kAOgACR6RvSQA6AD4/oHNJAEQAC8egQ0kARgAKB6fKwQBAIDK/qgchAD5gA +oumCyEAQAAy/64DIQBAYDP/vg8hACmANpi0WFywWFioWFOsVyUASgAKR6pKwQBMAArHqsshAEAgM +yeyxyEAQAAzZ7bDIQBAYDJnps8hAEBgDQyhJKu4A2EAOgADx7BCQwA+YAKLogZBADoAA0Oj95sAK +AAGcLkkq4hTwIBAgAA7oS6JAD5gAousQksARgALB7gDYQA6AAPHogZBADoAA0Oj95sAKAAGPKUkr +4hTwIA3IAAnaIOsQkUARgALB7TOYQA6AAOHt2JJACnALGy4yz9og7A5cwA6ABrTu4ZBADoAA0e4/ +zMAKmAMwKjbQ4gDYQA+gARAAAADsjVzADoAApesD2EAKyAM9LzIb6EbYQA+YAKLo/+pADoAAs+8+ +yUAKGA3t5zrJQA6AAVTrRthACfgMqwAAAAAA7JxcwA+YAKLtANhACpgDGCo2HOIA2EAPoAEQAAAA +AADiANhADvgPn+k8yUAPoAEQ7OtcwA6AAKXrA9hACsgDIeoo70AOgADA7ubYQA6AAdGlNuto70AK +kA1v2iDraO9ACpAPjGP8XQDsG1zADoAApesD2EAKyAMTLDIbLQpkDcwo2iDsxJLADoAAsew+yUAK +GA3DwVTrRthACfgMCQAAAOxKXMAOgACl6wPYQArIAwUpMmDlMbLAENgM4+oo70AOgACK0w/u7uPA +D2gFlQhVLO/u4cAOgAC17j7JQAoYDa/rjttACfgLvuw5XMAOgACl6wPYQArIAvMpMmHlN7LAENgM +8+oo70AOgACK7//jwA9oBZUIVSzv/+HADoAAtu8+yUAKGA2eY/+2AAAAAAAAAOpLwkAJ+A5H6ijv +QAoAA0fiANhAD6ABEOpKwkAJ+A38KzJg7JdcwA+YAKLuRthADoAA0e676kAKmALCKjbU4gDYQA+g +ARAAAGwQChW8cIYnKBwQ5m6wQBAIDKXqgchAEBAMlemCyEAQAAy164DIQBAYDFWVg+kpu0AQWAyy +5UCoQA6AAKTsQahAENgL0uqa60AQOABLYAAB2pDo1VzAEIAAGwTUEehE60AIAAAHAMBAHrxZ7DPA +QBBgDYLvLbhADHALoOpVXMAOgACQ6TLAQA8ICIjgu+HAD2APj+wFXMAPYAv76jPIQA9gC+vrMMhA +DoAApesD2EAKyAKnGbxJKjwQ0w/rEJJAD2AJlOkyyEAOgAOD6BDSQA6AAMboEdJAEOAN8e8S0kAQ +6A3h7hPSQBDwDdHtFNJAEPgNkekV0kAKwAd46jaRQBHQArLsYNhACsAHdBu8Nh28Nhi8Mhm8M+kw +0kAOgAbw7z7RQA6AA+ouNCToP9FADoAIxuw80UARMAKj7T3RQA6AAcDrMdJADvgP3+010kAQGAO2 +67iWwArAB2DqNpNAEIACsewB2EAKwAdcCF8Q7ATYQBDoDObpMtpADoAB0ek50MAOgACi6jbQwA6Q +ArLrN9DADoAApe000kAOgAOw7DXSQA+YANXsEVzAD2AP/u8x0cAPgAj46DDRwA+ACIjoP9DAD4AI +iOg+0MAOgACC6DjQwArIAl7qWO9ACmAI+uSo7wAByAN65STYAAI4A+p9T1fiFPAABXADxHlPbXFP +eSJcyiI0S+Iz0kAPgAIoIjRKIjQi4gDYQA+gARArYh4qPFLrC47ACmAI2eWikMAWCAHk62yTwBfg +DcalOuqgkUAKYAjFBaUIfUen7GGYQBAIA7alOuqgkUAX6AK77M27wApgCK+lpWP/iAAApTrqoJFA +CmAIXKWlcUeFpTrqoJFACmAIT6WrK7zKKzRL6zPSQA+AC7jrOtDADoAAIOsy0kAPoAEQ2iDsYLLA +EwgM1u9mssATOAyWpTvuYphADoACgO7olEAQgAK76RDIQA8oCIToEchACmAIUqWlY/8cAGwQBIgw +7YDYQA0ADjiKJy6pFCj6wOylqUAQQAxK7uGYQBBYDLrvoJJAFQAC7uj/5QAFmAvsr8zswJCAB0gI +SytNASu8oO6kwQAHWAu84hTwAAe4CMubqBy7luj6X0APmACU7ADswBJwAv0JAmsJAmsJAmsJAmsJ +AmsJAmsJAmsJAmsJAmsJAmsZu6PoQshAEAAM4p9F6UDIQA6AAPro+V9ADwgOjuhEyEAPYA7+7kHI +QA0AAzTqSJJAD5gAs+7ek0AOgAHA7knIQA6ACNXtQMFACsAGyo8iyvviANhAD6ABEAAAAOLA2EAP +oAEQiDHpMrBADngBuGWfE4ozZa8O7QDYQAn4DwvaIOtI70AOgADK7TDYQAoACoviANhAD6ABEAAA +AADkuO9ADoAAwOyryEAJ+A8nBM4MDv4MLu0BLuzg7qjIQAn4DxMo/EDoqMhACfgPCABsEBSJJyMW +HCYWG+grsEAQcAyZ6ijvQA74D+/uGMBAD5gAwuKY70AQWAAYKsIRgqeCLsNjJhQZJhQY6hrJQBBg +DTQjFBrpGclAEGgN9O8b0UAO+A9/6E64QA+YALLoHNFAEBgDYuZskkAQeA2E6B3RQA6AADApsuri +FPAgBngAB2SQzOhg2EAQwALhDwIA0w/taO9AGLAAOOrguEAUAA39sd3u4ZAADFAO+tcw7BjJQA0A +BMUcu0YrEBubEOocuUAOgAPT6hHIQA6AA+PpHblADoADsOkSyEAOgACl7xq5QArIAY7rSO9AEMgM +oewQkUAKYAdW7BixIANYAQofux0uChAPAgDq8LBAEQAC0erQyEAQCAyf6dHIQBAQDI/o0shAEBgM +/w8CAO/TyEAYsAA+79C4QBAADeSxRO3RkEATWAjv4higQA+gARAAZZ801zDrvJBAEAgCM+ZskD/4 +yAVTY/9IaHCVB3UJAlUKKVLqyJixmOhazsAJ+A+FKxwY6lSYQA6AAMbqrJZACsAGR+oasUAQwAKx +7ADYQApgBsopUursGLFACfgPzO3/38AQMAfvwNFk34srEhkPAgArsvvsGMkgAKgAC+rI70AKmAFi +LRIZLPr/LNb760DYQBDIDKHtEJNADoAAwO4g2EAKYAs7KxIc7ajvQBGAAsHqGLFACmALFi4SG2Tv +OCoSGOwfXkAOiA+07QDYQAqYASsvEhkiGQjq+8/AD6ABEAAAAAAAAO3/38AQMAevwNFl3xJj/mls +EB4WusuFJykcENMP5V6wQBAADMbskMhAEAgMtuuRyEAQEAym6pLIQBAYDIbok8hACsAMAVmL9hy6 +1+5I70APmAB77TjvQA+YAGrqQ+HADoAApeMSy0AOgAOwo1PvPrdACsgBHi8yvukA2CAbSAIP4hTw +IBFgA18tMr/iFPAgEUgDTcCk7ExeQA6AA7DvPLdAFdgM4+kA2EAV0AzT6T/PQBXoDIPoEMhACsgB +DOoo70AOgADA7kDYQBAYA7PuPs9ADvgP3+0wzMAXQAK76xHLQApgCFDqWO9AEYgMse3/38AO+A/v +7DOYQA6AAPHsw6hACpAOJukA2EANKAQULTLC6RDLIAKwAA3bcO1oXkAPmACm7ADYQArIAmvuObdA +FhAMY+tm6MAQOAHOJlJgwKXsuV5ADoADsO1o70AKyADo7UjvQA+YAKLsKF5ADoAGtOtr6kAKmADN +KjbE6ijvQApgCwwrFhUtFhfsFslADoAA4eoUyUASgAJB7BCRQA+YAKLrEJLADoAA0OdBsEAQEAxk +5rLIQBAADITosMhADoAAYuexyEAQGAxE5LPIQA6AAHHkANhAC/gPAycUeyQUeiQUeSQUeCQUdyQU +diQUdSQUdCQUcyQUcuYR08ATgAKh7TOYQA6AD4/oHNPAFAAC3egQ08ATuA397x/TwBOwDe3uHtPA +E6gN3e0d08AT+ALB7MGQQBAIDNrtwchAEBAMuuvCyEAQAAzq7QDYQBMAArHuwMhAEBgMqurDyEAO +gADh6ijvQAv4DuArXQIusAUPAgAPAgDqDtogHdAFDi8yuenQ2EAQeAHPKFAl4hTwABtgCJjs8NhA +EYAM4ao77QHYQA+YAKLsANhAD1gN7O4A2EAKkArn4gDYQA+gARAAAAAAAADimO9AD6ABEB26IOgn +sEAOgABg7OFeQA6AAKXp0rBAEQAC4eiOsEAQAAw94+DIQBAIDP3v4chAEZAMMeniyEAQGAzd7ePI +QA6AAJOoM+k+z0AOgAOw7zy3QBXQDNPoPbdAFdgM4+gQyEAKyAB0FboJJhQ6JhQ5JhQ4JhQ3JhQ2 +JhQ1JhQ05hPTQA6AAOHmEtNAEBgDg+kQ2EAOgA+/7TOYQA6AAKLqEdNAF0AC3ekb00APmACi6xDT +QBGAApHrHNNAFAACiOsQkkATsA3I7B7TQBOoDfjvHdNAE7gNiOgf00ASAALx55CwQA+YAM/n8MhA +EAgMiejxyEAQEAx55/LIQBAYDJnp88hACnAIGy4yv9og7FjvQA6ABrTu4ZBAD5gA1O4/z0AKmAAw +KjbA4gDYQA+gARAdudSIJ+xNXUAOgACl6dKwQBEAAuHojrBAEAAMPePgyEAQCAz97+HIQBGQDDHp +4shAEBgM3e3jyEAOgACTqDPpPs9ADoADsO88t0AV0AzT6D23QBXYDOPoEMhACsgAKu37XUAQGAPj +6R+TwBQAAu7pkZFAE7AN/u8e00ATuA2O6B/TQBOoDe7uHdNAEBAMreqSyEAQCAy965HIQBAADM3s +kMhADoAAsCsUMisUMysUNCsUNSsUNisUNysUOCsUOesa00AOgADB7BvTQBAYDN3tk8hADoAAouoR +00AOgA+fKRQ86RDTQBGAApHtkLBAEgACoe2gyEAQCAzJ7KHIQBAQDLnroshAEBgMmZmj6ijvQApg +CiorFiktFissFirqGMpADoAAgewfk8APmACi7cGSQBGIArzu0rBAEIgCzO/RsEAQAAxd5bDIQBAY +A1PvschAEFAKle6yyEAQGAzd7bPIQA6AAODpkZBADoAA0OmN5sAL+A4fKFkK4hTwIAhgAAjaIOwQ +kMAQWAr17gDYQA6AAJHrH5PADoAA0O/xkEARiAK7753mwAv4DhIoWQsPAgAPAgDiFPAgBuAACOWW +XUAPmACi6xCSQBIAAsHtM5hADoAA4e3YlsAKcAeaLjK/2iDsWO9ADoAGtO7hkEAPmADU7j/PQAqQ +D68qNsDiANhAD6ABEO0A2EAOgADg6ijvQBAYA7PiUJFAFwACu+wo70AKkAoN6ijvQA6AALDsBdhA +CsAEveIA2EAPoAEQwMDisJfAD5gAouso70AKkApS6ijvQA6AALDsBdhACsAEs+IA2EAPoAEQL1Kz +6ijvQA74D4zo/+VAD5gAtO9Tz0AKYAhU6RDYQAn4CqTqWsBACfgO9AAAAOpbwEAJ+A8kbBAEgyeD +PigyGmSBAigyGmiHCOIA2EAPoAEQAMCY6TrJQA6AAEbaQOswkUAKYATPjCcuyRToDN/ADoAAUO3F +qUAQQAy87uGYQBBYDGzvwJJAFQAC7uj/5QAEuAvtr93t0JCABlAItii9Ae6AlkAPmACe6cTBAAYQ +C+3iFPAABnAI3p7IGbkKH7kjGLkh6QDswA+YAJsJAmsJAmsJAmsJAmsJAmsJAmsJAmsJAmsJAmsJ +AmvvsshAEAAM0uiwyEAQgALq7rXIQA6AAMrukV1ADwgNje60yEAPYA3N7bHIQA0AARuJIiS1EOqx +wUANAANJ2iDsb1xADpgOuO0A2EAKkA9GKjYcJTYb4gDYQA+gARDkUNhADoAAp+o6yUAJ+A8K2iDt +MNhACgAIBmP/wttg5cvIQAn4D1EAC94MDv4MLu0BLuzg7sjIQAn4Dzwo/EDoyMhACfgPMQBsEAgY +uPYcuPbpgrBAD5gA0ukSyEAQCAyo6hHIQBAADLjrEMhADoAApeiDsEAOgAOw6BPIQArADzfpKbtA +EFgMsoxB6kDYQBDYC9LqmutAEDgAS2AAAdqQ6OxcQBB4ABsE1RHoVetACAAABsBQG7jJ7DPAQBBg +DfLuLbhADoAAYOmdXEAMcAqg6TPIQA8ID4/gquHAD2AO/uYywEAPYArq7C1cQA9gCrrqMMhADoAD +sOpQ2EAKwA8X6jCRQA6IAI7rEJFAD2AIhegyyEAOgAPz7xDRQA6AAMbvEdFAEGAN4e4S0UAQaA3R +7RPRQBBwDZHpFNFAEHgNgegV0UAKwAPoKjwW4iqTQA6AAMbrKO9ACsAD5BW4phm4ph64oh+4o+8w +0kARMAKj7j/RQA6ABtDtPtFADoAIhug80UAQQAK06T3RQA6AAcDlMdJADvgPn+k10kAOgANa5TTS +QArAA9HrGO9AEbACo+wB2EAKwAPNJjRH5j3QwA74CNXtNtDAD4AMaOw80MAPgAzI7DvQwA+ADMgs +NErqQrBADoAAsOsy0kAOgACY6TPSQBAYDOTvRLBADgABWsztzPuIRcyH4qPYQAgAACcA2yDpENhA +EoACo+k+0MAOgADG6T/QwArAA7Dio9hADoABkOcB2EAQ4AKB6Q+OwAz4DpCv7ucz0kAPgApo6oLQ +QA6AAFDlMtJAD4AKqOqB0EAPgAqoKoQA6kuoQBBQC1Tmg9BAECgL0edIqEAQSAuEqlXsR6hAEDAL +pKh360WoQBAgC4Ssqu8SqEAQIAvBq4jiH9FAEDALsaqIrcztF6hAEBgLoah3p1Wq/+IQqEAQCAuh +rbur7qoi7R6oQBB4C6GlIqL/r8yq3a7MrczsDo7ADPgNwK3Mrt3tDY/ADoAAIK3M7DnQwA+ADMjs +ONDAD6ABEABsEAbApey0XEAOgAOw7SjvQArADpLpKbtAEFgMsoxB6kDYQBDYC9LqmutAEFgAS2AA +BQAAAADakOiCXEAQeAAbBNUR6FXrQAgAAAbAUBu4I+wzwEAQYA3y7i24QA6AAGDpM1xADHAKoOkz +yEAPCA+P4KrhwA9gDv7mMsBAD2AK6uzCXEAPYAq66jDIQA6AA7DqUNhACsAOcSo8EOtAkMAOiACO +6FjrQA6AAMboMshACsADTio8FuIqk0AOgADG6yjvQArAA0kZuAsYuAkcuAsfuAfvP9FADoAG4O4+ +0UAO+A/f7TXSQA6ACLbrPNFAETACo+w90UAQgAK06DDSQA6AAcDpMdJADoADmuk00kAKwAM26jaT +QBEAArTsAdhACsADMiY0R+1CsEAScAKj60CTQA74COjuNtDADoABwO090MAPgA3Y7TzQwA+ADdjt +O9DAD4AN2O060MAKwAMjikPA8O8y0kAOgAGY6TPSQA0AAprbIOo+0cAOgADG6jCSwA6AAIHoP9HA +CsADGMCo6QLYQAgAAAcAwKDnFJBADoADKukPjsAM+AyQr8zmc9BAD4AIaOhy0EAQwAJa5TPSQA+A +CIjocdBAD4AFWOUy0kAPgAiI7UWpQBB4C2TocNBAEHALVOIX0EAQoAuE4kCpQBAQC7GmVedBqUAQ +GAvhrYjvQqlAEJgL1K67pyLmTKhAEGgLdK3/7kuoQBBQC9SnZq7d50ioQBBIC+Sud6137kapQBC4 +C9SnZqZVpSKi/6+IroitiKyIq4joDI7ADPgLgKuIrLvrC4/ADoAAIKuI6DnQwA+ACIjoONDAD6AB +EGwQBO5BuEAQAA30LzQALjQB7EO4QBAQDdTtMtBAEdACsuwz0EAQMAKj6EW4QBAgDZTpNNBADoAA +xug10EAKwALPGLeRGreSHreOH7eO7zDRQA+YALXuP9BADoAG0O0+0EAOgAHA6j3QQA6ACJbpPNBA +ELACo+gx0UAOgAOa6TTRQA74D4/oNdFACsACvOo2kkAPmAC27AHYQArAArjiPpBAD6ABEAAAAGwQ +BCgiHNsw7EjvQA+YANXqKO9AD6AAGOKo70APoAEQbBAEiiBloFgdt38LPhGu3S3Sf+wQ2EAQGAyi +DEw3Dcgs6N3qQAwQCqDnJcBAD2AKau3M6MAQCAK468/fwA9YCMvrquVADwgJmOlZ60APYAo66iPI +QA9gCJjoJMBAD6ABEI8jG7dpDw9BC/4Rq+stsn/svrPAEOgILdjA7ADYQBDoCCjAwCy2f+y+y8AI +AAATAADZwOwA2EAS4AQpctEcjiGa4I8gLbJ9nvGcIOwhyEAX+ALd7b3LwAn4D1AYtxoojR6o6Hih +HOq/y8AOAAIfzakpsn1qkhQqsnvqv8vACAAADgAA7L/LwA14Dp/qILBACfgPrxm3DIghKZ0eqenp +iejADoAAwAnIOOi+y8AJ+A+PAAAAbBAE5dNbwA6AAGHkKO9ADoAAI+ZG50AIAAAGsCIoUn/lUJbA +F7gHhtEPAABsEAQDBV/kIrFADEACOAIiDwQiCoQm5UTqQBAIDCIKRBGkItEPAAAAbBAEKiISIyAH +6uiDQA6AAEPjA4IgB/gBCArIUeIU8CAIIAEIHLch6o2CQA6AA7DqUNhACsANYxu22+29WsAPCArD +q6opojoNPQrt27UgByADSSyiOe3L5QAGyA/cHLcTiSAftxPvtchADoADgOi3yEAOgADg7rjIQBA4 +C4LutshADoAB6O6zyEAPCA2J7JnrQBCQDMLptMhAD2ANTe2xyEAMoAiA6YxawA8ICMjtjFrADBAM +yO2yyEAPCAzM7LnIQA9gCJiYsB+2+y4iEuSpy0APmACy6iCxQA9gDv7uIslACmANtAUPR2jyIIon +wLHsANhADoAA0eqgkkAKIA0M4qjvQA+gARAAAAAAAOIA2EAPoAEQKxoAC6oC6iLJQAn4DvsAACwq +AAyqAuoiyUAJ+A72jSLI3AUOR2jiHeIA2EAPoAEQKzwY6ijvQA6AAMDtMNhACigHXWP/24wn6Qzf +wBCgCozvwJJAEEgMrAn/Ae/wkMAQgAKI6MTBQBeAAqrqychAEZAF+o4gK8EVHba26O7hwA6AAPGq +uurJyEAPYA7+nqGdoOxMWsAOgAAg7KLIQA+gARCOIOwMWsAOgADx7ZpawA6AACDtoMhADwgOjuyi +yEAPYA7+7qHIQA+gARAAbBAYFLa3Gba14hDIQBAQDMLsEspAEAgM0u0UykAQGAyyKxYj6RbIQA6A +AIHoF8hADoAA8+8ZyEAOgACg6hXIQA6AAPvvEclADoAAp+odyEAOgACJ6B/IQA6AAJjpHshADoAA +tuscyEAOgADU7RrIQA6AAMXsG8hADoAA3O0SyUAOgADN7BPJQA6AAL7rFMlADoAAn+kVyUAOgACE +6BTIQBAADOLqGVrADoAAIpIY6hXKQA6AACoiFhAStoqFFo8VJlF+J1F/5v/qQBEgDLEsEiKvf+8P +gsAPmACu4/7jwBegDPKO4CVSPi0SI6/u70C8QA+gABWOFwbuKCwSJK5+7RKyQAwwDuDoJbfADxgO +Po7gL0CB6hbJQA+YALqo7uoTskAPoAAVjhgG7igsEhaufu0UskAMMA7g6Ca3wA8YDj6O4C9AguoX +yUAPmAC6qO7qErJAD6AAFY4ZBu4oLBIXrn7tFrFADDAO4Ognt8APGA4+juAvQIPqGMlAD5gAuqju +6hSyQA+gABWOGgbuKCwSGK5+7RexQAwwDuDoKLfADxgOPo7gL0CE6hnJQA+YALqo7uoWsUAPoAAV +jhsG7igsEhmufu0YsUAMMA7g6Cm3wA8YDj6O4C9AheoayUAPmAC6qO7qF7FAD6AAFY4cBu4oLBIa +rn7tGbFADDAO4Ogqt8APGA4+juAvQIbqG8lAD5gAuqju6hixQA+gABWOHQbuKCwSG65+7RqxQAww +DuDoK7fADxgOPo7gL0CH6hzJQA+YALqo7uoZsUAPoAAVjh4G7igsEhyufu0bsUAMMA7g6Cy3wA8Y +Dj6O4C9AiOodyUAPmAC6qO7qGrFAD6AAFY4fBu4oLBIdrn7tHLFADDAO4Ogtt8APGA4+juAvQInq +HslAD5gAuqju6huxQA+gABUuEhAG7igsEh6ufu0dsUAMMA7g6C63wA8YDj6O4C9AiuofyUAPmAC6 +qO7qHLFAD6AAFS4SEQbuKCwSH65+7R6xQAwwDuDoL7fADxgOPo7gL0CL6hDKQA+YALqo7uodsUAP +oAAVLhIS5u7qQBEADMEoEiWufu0fsUAMMA7g6I+zwA8YDj6O4C9AjOoRykAPmAC6qO7qHrFAD6AA +FS4SE+bu6kARCAzBKBIlrn7tELJADDAO4OiAtEAPGA4+juDrqO9AFGgN9OoTyEAQ+AyhqO7rEchA +D6AAFS4SFObu6kAQCAzBKBIlrn7tEbJADDAO4OiBtEAPGA4+juDrqO9AFHAN9OoSyEARAAyhqO7r +E8pAD6AAFS4SFebu6kARGAzBKBIlrn7uDoLAEBgM0eiCtEAPGA4+juDmqO9AFHgN9OYSykARCAyh +qO7raO9AD6AAFY4RKRISLRIVLBIU4iCQwBCYDLHvFbBAEIACROoUykARKAyB67CRQBCAAszv8JFA +EIAC3eiAkMAQgAKZ6RLJQBBgDJHoFcpAEIgMge0VyUAQeAzR7xXIQBCADPHsFMlAEHAMwesTyUAQ +aAyx7/CRQBCAAt3swJFAEIACiOuwkUAQgAKZ6RzIQBAwDJHrHchAEDgMsegRyUAQWAyB7B7IQBBA +DMHtH8hAEEgM0e8QyUAQUAzx7MCRQBCAAojoG8hAEIAC3e0ZyEAQgAL/7xrIQBAgDPHsGMhAEIAC +u+sXyEAQQAKZ6RbIQBf4Av/vFMhADlgND4sQ7BKwQBAYDJvoE7BAEBAM2++wsEAQCAzrrJmm3aru +qP+fsJ6xnbLps8hAD6ABEGwQBCkiFQIkAuUgkUAO+Aiw6QmGQA6AA4cCmgjroNFAD2gMmOqhkQAF +0AyY6wDYQArAAKvsRbFAEKAMtARIAgHUBAy7GO3N4cAOgACT7ULJQA6AAKLrQ8lAGIgAOo6EDk5s +7oTIQBAgAogPAgDTD9MPbZok6YSwQBCAAoiKgYuC6QnzQBAYDMgKSmwLS2wMTGyZgJqBm4Kcg9tQ +6kjvQAv4DpEbtQyJQYhCj0PpCfNAEAAMpAhIbA9PbApKbJpAn0OYQplB5BDwQA+YAITjEvBADoAA +m+sC7MAYOAA5CBJq0Q+4zOsA2EAKwAB9wCLoSO9AGogAMomEioWLhukJ80AQOAzI6grzQBBADNjr +C/NAEEgM6OwM80AQUAz47Q3zQBBYDCgOTmwPT2wCQmyZhJqFm4bsh8hAEQACiJ2AnoGfgpKD2kDr +WO9AC/gOZtpQ7IPYQAn4DtkAbBAGKSIV6CSxQA+YAFIJSgjpCYZADoAEcOl36MAQOAVKKIwBKFYU +6lXJQA9oCnXqoJGAChALdNsw7HjvQArAAC3AItMP6FjvQBqIADKJhIqFi4bpCfNAEDgMyOoK80AQ +QAzY6wvzQBBIDOjsDPNAEFAM+O0N80AQWAwoDk5sD09sAkJsmYSahZuG7IfIQBEAAoidgJ6Bn4KS +g+ZQkUAPmACl62jvQAv4DjkHSwzrEcggBoANS9pgpzTkEMhAD5gAe+MA2EAPmACE6BDzQA6AACIK +wmsIA2oKgmsIA2kKQmsIA2jqEvBAD5gAhW0qTImEioWLhukJ80AQOAzI6grzQBBADNjrC/NAEEgM +6OwM80AQUAz47Q3zQBBYDCgOTmwPT2wCQmyZhJqFm4bsh8hAEQACiJ2AnoGfgpKD2lDraO9AC/gO +Eupo70AQCAIz53CUwBIAAkToSO8/+4ANJ4sQjBHqPeHAD5gApqvb7czowAq4D+HRD9sw7EjvQAq4 +D97RD6c8nBDjANhACfgP1AAAAGwQBBi0uhm0uBq0thO0uZMjmCKZIeogyEAOgACwKyYV6yTJQA+g +ARBsEAbeIOTgsUAPmADEG7Sp50ewQA+YAKfvWpfADoABg+NFsUAPmAAj536wQBGABY8YtKcI+Arq +E8hAEAAMiJwSnhEKgAAAAJMQ6rW2QA+YAMXrKO9ACsAEzWSmNyNGFeIA2EAPoAEQK+ISC5tS7hHI +QA14DrsatI+TEOso70APmADF6qe0wArABMFkpewatInrKO9AD5gAxeqptMAKwAS7I30F4zCUQA04 +BHoatILrKO9AD5gAxeqrtMAKwAS05gjbQA0wDyoatHvrKO9AD5gAxeqttMAKwAStZKc3GrR26yjv +QA+YAMXqr7TACsAEqOIU8CBICABqKzDlwVjiFPAALxAEW2m3LCU05esQsEAOgAAg60XJQA+gARAA +AAAAAJMQ6r21QA+YAMXrKO9ACsAEl2Snh+sQsEAOgAAg60XJQA+gARAAAJMQ6ru2QA+YAMXrKO9A +CsAEjWWvANoQ67DYQApgCXvrENhADoAAMOqz5sANAAG6ihLraO9ACsAAR8ipHLRTjREMrDYs1hdl +M3TtELBADoAAIO1FyUAPoAEQLkBuZO62kxDqsbTAD5gAxeso70AKwAR2Za6h2hDrYdhACmAJY+sQ +2EAOgAAg6rLmwA0AAUqKEuto70AKwAAvLH0DKsUoZSMc7RCwQA6AACDtRclAD6ABEJMQ6rO3QA+Y +AMXrKO9ACsAEYWSi/xq0Kuso70APmADF6q+1QArABFxlrjnaEOtQ2EAKYAlJ6xDYQA6AACDqsubA +DSgEyooS62jvQArAABUsQG/iFPAAKbgBvGSlL+tQ2EAQGAyh7NDYQApgCSbiqO9AD6ABEJMQ6rm3 +QA+YAMXrKO9ACsAERGWustoQ6yHYQApgCTJkonUrQG7iFPAgQTgAa4oS62jvQAq4D/4sQhYKzDYs +RhbrELBADoAAIOtFyUAPoAEQkxDqt7dAD5gAxeso70AKwAQwZKJqGrP46yjvQA+YAMXqobdACsAE +KmWuTNoQ6+DYQApgCRhkog+KEuto70AKuA/nK30CKrUU6xCwQA6AACDrRclAD6ABEJMQ6rm2QA+Y +AMXrKO9ACsAEGmSiWxqz4uso70APmADF6qW3QArABBRko7Uas93rKO9AD5gAxeqjtkAKwAQPZa3e +2hDrcNhACmAI/WShoStAbmS3mxqz0+xo70AQEAyx6q+2wArABAVlpsUrQG/AyAy7AitEb+sQsEAO +gAAg60XJQA+gARCTEOq/t0APmADF6yjvQArAA/lkohYas8HrKO9AD5gAxeqhtkAKwAPzZa1v2hDr +YNhACmAI4WShMitAbmS3FBqzt+sSsEAPmADG6q+2wArAA+lkpy4rQG8sCv0MuwErRG/rELBADoAA +IOtFyUAPoAEQkxDqt7ZAD5gAxeso70AKwAPdZKHVGrOl6yjvQA+YAMXqq7VACsAD12Si+BqzoOso +70APmADF6qu3QArAA9JkrBEas5rrKO9AD5gAxeqjtMAKwAPMZav7GrOV7GjvQBAQDLHqrbXACsAD +x2WknIsRK7ISC5lSZJAKaJIH4hTwIBAgA1mMEevCyUAOgAAg40XJQA+gARAAkxDqt7VAD5gAxeso +70AKwAO3ZKGFGrOA6yjvQA+YAMXqqbVACsADsmWsadoQ6yDYQApgCJ/KrBqzd+xo70AQEAyx6q+2 +wArAA6llrEfrINhAEBgMoezQ2EAKYAiA4qjvQA+gARDiANhAD6ABENoQ6/DYQApgCI9kr+qKEuto +70AKuA9e7HKYQA6AACDqxcFAEAAMsetFyUAPoAEQANoQ6xHYQApgCINkr7otQG5k1YQpQG/iFPAf +3vAB6eIU8B/esAH5ihLraO9ACrgPSy5CFwruNi5GF+sQsEAOgAAg60XJQA+gARDaEOug2EAKYAhx +ZK9xL0BuZPTbihLraO9ACrgPPihBNOIU8AAPcAmo66DYQBAYDKHs0NhACmAIUOKo70APoAEQ2hDr +UdhACmAIYWSvMYoR7BKwQA+YALTtaO9ACmAH5+sQsEAOgAAg60XJQA+gARDaEOuQ2EAKYAhVZK8C +KUBuZJSEGrMr7GjvQBAQDLHqr7bACsADXWWihitAb8Ag7RCwQA6AAMHtRclAD2ALy+tP0sAPoAEQ +2hDrENhACmAIQ2SuvBqzG+xo70AQEAyx6q+2wArAA01lqtbrENhAEBgMoezQ2EAKYAgk4qjvQA+g +ARAAAAAAAIoS62jvQAq4DwXiFPAgGCAFCuL/38APoAEQ2hDrgNhACmAILesQ2EAOgAAg6rLmwA0A +AlosQG5kw+8aswiLEuxo70AKwAMzZaKvLUBvwOgO3QItRG9lLjHvELBADoAAIO9FyUAPoAEQihHr +SO9ACmAII2WvnCsw5WP6DtoQ6wHYQApgCBVkrgEoQG5kg1OKEuto70AKuA7iKUIY6xCwQA6AACDr +RclAD0gJqelIyUAPoAEQ2hDrMNhACmAIB2StyRqy3uxo70AQEAyx6qW1wArAAxDjLlpADggASosR +K7ISC8lRyJlokgfiFPA/+TADWY4R473lQA6AACDt4slAEAAMwexFyUAPoAEQZS187xCwQA6AACDv +RclAD6ABEIoS62jvQAq4Dr7qRMNAEAAMISJGFeIA2EAPoAEQ5XSYQA6AALDsCNhAFAACVepY70AK +uA4BihLrWO9ACmAIQysw5cDEDLsC6jHWwAxwC7DrNdbACfgJEC0w5e4g2EAQEAyh7t3rQA+YALbt +NdbACrgOpCsw5eo01sAJ+Ajq6hKwQAqwA6kvMOJ/qRrqErBACrADpuyo70AQIAO36hKwQArAAtVk +oe7selpADoAAousD2EAKwAjZ4v/fwA+gARAaspfsaO9AEBAMseqntcAKwALJZa4gixErshILyVFo +kQpokgfiFPA/8HgDWR6yagO9Ae4RsEAPYA3twCDt4slAEAAMwexFyUAPoAEQAAAA65DYQBAYDKHs +0NhACmAHkuKo70APoAEQ2hDrQNhACmAHo2SsOhqyeuxo70AQEAyx6qW1wArAAqzjGFpADgAMWosR +K7ISC+lRyJlokgfiFPA/7LgDWY4R473lQA6AACDt4slAEAAMwexFyUAPoAEQGrJo7GjvQBAQDLHq +r7XACsACmmWtYosRK7ISC5lSaJEKaJIH4hTwP+qIA1ktfQXvhlpAFAAC3ezVvsAQCAwh77/rQA6A +AOHvIslAD2AM7OzV1sAOgAAg40XJQA+gARAAAOuA2EAQGAyh7NDYQApgB17iqO9AD6ABECN9BSM8 +gCsw5cDBDLsCCwtH6zXWwAn4B1kaskPsaO9AEBAMseqntcAKwAJ1ZazQixErshIL6VFokQpokgfi +FPA/5fgDWR2yRQO8Ae0RsEAPYAzcLNYS6xCwQA6AACDrRclAD6ABEAAA7AjYQA6AALCmdupo70AK +uA1z6hKwQA6AAVDraO9ACmAHsysw5QW7Auox1sAMcAuw6zXWwAn4BtIrMOXAyAy7AgsLR+s11sAJ ++Aa/AAAAAADrcNhAEBgMoezQ2EAKYAcq4qjvQA+gARDrAdhAEBgMoezA2EAKYAck4qjvQA+gARDr +oNhAEBgMoezA2EAKYAce4qjvQA+gARDrkNhAEBgMoezA2EAKYAcY4qjvQA+gARDrgNhAEBgMoezA +2EAKYAcS4qjvQA+gARDrIdhAEBgMoezA2EAKYAcM4qjvQA+gARDrEdhAEBgMoezA2EAKYAcG4qjv +QA+gARDrYNhAEBgMoezA2EAKYAcA4qjvQA+gARDrcNhAEBgMoezA2EAKYAb64qjvQA+gARDrYNhA +EBgMoezQ2EAKYAb04qjvQA+gARBsEAQkIhDTD2RAbikwECowEesyuUAPCAmJCpkC6jO5QA8ICYkL +mQLsOrlADwgJies5uUAPYAmp6ji5IAI4AAkIqhELqgLrO7lADwgKigyqAgiqEQuqArGq6ibJIAEw +AAkpIhLrXVlAEFABCQubASsmEixABS0KlX3BT+IA2EAPoAEQLjAULzAV6Da5QA8IDo4P7gLvN7lA +DwgOjgjuAgjuEQ/uAu0I2D/9wAAOLyISePcr7CxZQA6AAKXrA9hACsAH7+IA2EAPoAEQ2kDrYNhA +CnAKquIA2EAPoAEQAACMJ+oM38AQoAqc6MCSQBBIDLwKiAHogJDAEgACmenEwUAWAAK768nIQBBY +BYsuwRWr65vJGLFq6bjvQA6AAPToAOzAGDgAPwkCaygwF+o2uUAQoA1j5TW5QBAADJLul1lADoAA +xO/5WUAPCAaG77LIQA9gBlbusMhADwgGhuiZ4cAPYAam7JnrQA8IBobpschAD2AGhua0yEAQQAJT +5RHwQBDAAusOEmoqIhKJIg2qAuoiyUAOcA352iDtMNhAD6AAH2P+zQBsEAYoIAQpChh5gQfiANhA +D6ABECoiEuQgsQALCAP6L0Bu7FnYQBngAS8rQAV8sdvsx1lADoAAou0gsEAOgAOw7kCwQArAB6Ta +QOsQ2EAOgADS7SXSwApwCmDiANhAD6ABEMCl7AdZQA6AA7DuNrBAEFgL8+g/uUAQAAzS6BDIQArA +B5UkIhjoLLBAEFgLw+pmWUAOgACw6UqwQBA4DFSsiOgsyEAOgADQ5V6wAACgAkntTslAD2AOqe5K +yEAIAAAHK0Ieq1rrMJJACrgMZilQBCtQBepWuEAPCAmJ706xQA9gCbnoV7hADwgJie47qEAPYAmp +7PRZQA8IBYnoxFlAD2AFha/u7k7JQBAADNToVeVADoADsOVTkEAO+A+M6FXlQA6AAKXvWO9ACsAH +a+0jsUAQWAvDK0IeKlwwrczsI8kf9lAOqx+xO45K7+7lQA+YAKLuSshACnAFktog6wDYQA6AAMDt +INhAChAIIeIA2EAPoAEQAAAAAAAAAOkjsUAQWAuD6ijvQA6AALDsANhADoAA0qmI6CPJQAoQCBXi +ANhAD6ABEAAAbBAGHLEj5CewQAxwBlDqUNhADoADtOUP8kAQAAzS5EShQBAoDOPkEMhACsAHQYgi +ZYCoKCAHGbC363tYQAwQCIDsheHAECgMo6lVKVI6JKwf5ETtQA8YC7jru7UABDgLSSlSORyww+ud +5UATyAm52NDsAOzAGDgBNAgCa+4bWEAQgAK96SCwQBEAAsPq08hAECAMg++aWEAPmACi79DIQA8I +CYnu0shAD2AJlOnRyEAPoAAY5FnLIAEgAgaKJ8C67ADYQA6AANrqoJJACiAG8+Ko70APoAEQAAAA +AOIA2EAPoAEQ2iDtSO9ADoAAwOuIkUAKKAFR4gDYQA+gARAAAGwQBOj/38APoAIXCFgDCDgCCEgD +qGioIgIiGKIy0Q8AbBAEAHEEBDgDCFgDqGioIgIiGKIy0Q8AbBAEBDgD4HnvQA8oCIUISAOoaKgi +AiIYojLRD2wQBAVIA+B570APKAiDCFgDqGioIgIiGKIy0Q8AAAAAbBAEIyIQKDAFJAqS6SKxQBJA +CEjtCNhAEgAAyXifOHCfF+r7WEASwAD5CpoBKiYS4gDYQA+gARAAAMCl7KtYQA6AA7DtMLBACsAG +3CswbmmxBSwwBXTBB+IA2EAPoAEQ2jDrENhADoAA0u0l0sAKcAmT4gDYQA+gARAAAAAAjCfoDN/A +EKAK/O7AkkAQSAy8CO4B7uCQwBIAAv/vxMFAFgACu+vJyEAQWAXrKcEVq5ubyRywUum470AOgACk +7ADswBg4ADoJAmuPIh6wjeggsEAQkAwy6iZYQA74D5/ptMhADoAAxOqwyEAPCAiI7rLIQA9gCMjo +schAD2AD0+MiyUAOeAV/2iDtMNhAD6AAHuIA2EAPoAEQAGwQBBOwg+Mi60APoAEQAABsEAbmJ7hA +EBAMghywG+cisUAQgAxS5gaCQA4QCujtcVhADwgKxqyqKKI6DW0K7du1IBTwBUgrojkYsFfttOUA +FIAP2+eHgEAQSAzy5xDIQA8YB4fncLVAEFAM4u/u6MARgAK34hTwABDAC74rIBYtCv99sRUqIAfs +ANhACiAOuByv/u3/2EANEAY6GLALG7AFJiIS7xCwQBCoDJLrQshAEEgMoupGyEAMIAZq6v/hwA8I +BmbmRVhAD2APb6p6p5nmJVhAD2APb+9HyEAQOAuy726CQBDQC/Km7uYgsEAUAA3u6ZCTQAygC7Ds +u+HADwgPD+ho60APaA7n6GbhwBGAAu7vblfAD2AO/u5FyEAOgADl6ETIQA9gBubmQchAD2AL++tA +yEAOgARg5kPIQBGAAqrqKchADvgOgOklyQAMUAiEG6/kKUwg6wDswA74CKAJAmsJAmsJAmsmRCDq +QdJADoAAYCZEJ+ZG0kARQAL05kXSQBCIDJXmRNJAELAMgulL00AQIAyj6E/TQA+ACZjpStNAD4AI +iOhO00APgAmY6UnTQA+ACIjoTdNAD4AJmOlI00APgAiI6EzTIAbAAArpoFhAEMACgwgCahiwEA8S +aulC00AO+A+vKkQz6EHTQA6AD//vQNNAECAMoyZEI+pH00APgAlo6ULSQA+ACKjoRtNAD4AIiOhF +00APgAiIKEQ06wDswBIAAvQPAmspIAcJCUErIBYMmRGsme6Zy0AQeATbKiAH7APYQAogDhuKNGig +J4onwLTsANhADoAA1OqgkkAKIAXrKyISLPp/DLsBKyYS4gDYQA+gARAer+ktIhIO3QLtIslACfgP +ywAAAAAA6ijvQAogDlnsx1fADWgOCmAANI9eGK/asf/vXshAD2APj+9D00APgA/470LTQA+AD/jv +QdNAD4AP+O9A00AJ+A8tAAAAAAAA4gDYQA+gARDaIOwQ2EAQwAK27VDYQAooAC/iANhAD6ABENog +7BDYQBCQArbtANhACigAKOIA2EAPoAEQbBAO5BHJQA6AAMLsEdJADoAAsesb0kAOgADgLhQiLhQj +LhQkLhQl7hbSQA+YAKTuF9JAEHgNc+4Y0kAQOAxS7hnSQBBwDYPuGtJAEGgNk+kd0kAOgA9v5hDS +QBGAApHoHtJAEHAMVeYc0kARAAKB5x/SQA+YAGPtgLBAFvAMde2QyEAQCAzI7JHIQBAQDLjrkshA +EBgMiOiTyEAKwACUWYCJHK+b7zKwQBAIDOPtMLBAEBgMg+sSyUAPmABK6lDYQA6AA7ToEMhACsAF +sdpQ6zjvQA6AAMDtENhACpABwWWgn2Rw/GhwVisSEu2zV8APmACk7ADYQArAByB7e0Acr4XuWrXA +D5gA1+9btcAW4Ay16xDIQA6AAKXpXbXADoADtOkRyEAKwAWawLDqU5hADoACwOqgksAKuAqeYABD +AByvdu1atcAW2Azl71y1wBboDLWbEIowmhGJMekSyEAQGANl6DKwQBNAAmboE8hADoADtOgzsEAO +gACl6BTIQArABYTNZsAgx+/ApexGV8AOgAO07SjvQArABX7RD+oA2EAPmAC24hDJQApoDXTToOKo +70ANAAEq7jCpQAn4D84AAAAAAADqELFAD5gA1usRsUARgALB7gDYQApoDTxlP9Zj/6ONIOz0V8AO +gACl60PYQArABWdj/4wAbBAGLCISKgqO6SOxQBDgAfwoMQupiOgjyUAOgACQKSYR4pjvQA+gARAv +Ihgv8HR68VkoIAUarz3p41fADQAFCI05KzEL6szlQBCIDKLsIskAAhgF2S0iE6vd7SPJAANgA5xk +oJ6OrH3nIYir6wDYQA6AAMDtINhAD6AAGMCQKSYR4pjvQA+gARAAAADiANhAD6ABEMCi7HJXwA6A +A7DuILBACsAFPSoiECmgBSsKlXuR2esQ2EAOgADC7CXSwApwB/biANhAD6ABEMOw7aCwQBAoDers +EMhADoAApexxV8AKwAUtLSIS6QDYQA74C+/pIclADygN7S0mEuKY70APoAEQAADqKO9ACnADVcCQ +KSYR4pjvQA+gARAAAABsEAgtIhIPAgDo6NgAD1gD/S8iGCrwdOIU8AAO6AiKKSAFG67/5/9WwA0I +DPnluNhAD2ANve0iyQAniALdLjEKJDAgJgol7g6MwA74D4zu45BADFAEQOju5QAT8Ahaw7HoLLBA +DoACwufZ60AOgACg6SLJQA6AAnGuiOgsyEAQkAR0dkEKe0EH4hTwAClgDsTtMLtAEIAMoi4wMS8w +Muqgu8APCA2NDt0C7jO7QA8IDY3vppBAD2AN/QDwBAjdEQ7dAu0PhkAPkA7R6uXhoCSQDi4F9QKV +ERyu1OoQyEAOgAOw6lDYQArABOUYrtAZrtAvIhgogpjv9LvAFFAMmaWF6LjYQA8IBZWlleUhyUAQ +KA3l6anYABh4Do/qudgAGDgInuIU8AAX+Aiu65nYIBe4AQ7iFPAAIZAOvu5A2AAGEAh04hTwAAXQ +CGQrMEDtMbjAEeANw+gyuMAR6A3z6T67QA8IC4vozOHAD2AL2+0zuMAPYAz87z+7QA8IDIzou+HA +D2AMnOi760AQYAyV6LvhwA8IDIzvzOtAD2AL2+ogsUAPaA3L7pnrQBk4AA0tohJ80QgNzwxm8AIs +phIsohPTDw8CAHvBCAy4DGaAAiumE+lcyEAR+ARkw6HiFPAACdAIpOsi2AAQUAh04hTwABc4CLQs +EBBlwwviANhAD6ABEC0wI8DxDf05LVRB7RDRH/nYDmQoMCF/h77tM7jAEfgN8+w8u0ASAA2z6TG4 +wBHoDaPkMrjAEfANg+i74cAPCAyM6szrQA9gC5vou+HADwgMjOjM60APYAtL6LvhwA8IDIzvzOtA +D2AL2wy5DOogsUAZEAAJLaISfNEIDc8MZvACLKYSLKITe8EIDLgMZoACK6YTKzA4LDA57Tq7QA8I +C4sMuwLsO7tADwgLiw27Aui74cAQYAylDLsC6eVWwBAIArvrJslAD2AK6ppc6VvIQAn4DyMAAAAA +AOww2EAMOAjc4hTwH+vQD4wqMCQrMCXsNrpADwgKiguqAus3ukAPCAqKDKoCCKoR66rrQBAgAp7q +nufACfgNSwArMCHiFPAAFTABiywwJC0wJe42ukAPCAyMDcwC7Te6QA8IDIwOzAIIzBENzAJlwnwr +MEwsME3tPrjADwgLiwy7Auw/uMAPCAuLDbsCCLsRDLsC6iCxQA0QBassohjiFPAAEngLvCtWEug5 +uMARqA3j6cJWwA6AAKDqVclAEaAN0+lbyEASQA3z6lPJQBGwDZPqOrjADwgNjej/4cAPYA3t7je7 +QA9gD4/oO7jADwgPj+jd4cAPYA+v6d3rQA8ID4/o3eHAD2APj+9UyUAPYA3t7V3IQAn4DgYsMDgt +MDnuOrtADwgMjA3MAu07u0APCAyMDswCCMwRDcwC66BWwBAIAswsJhbrW8hACfgN0cCl7GBWwA6A +A7DoIrFAEAAM1egQyEAKwAQQKiIQ7SKxQA6ABODvM7jAEfgNQ+w8u0ASAA2z6DG4wBHoDZPlMrjA +EfANY+i74cAPCAyM6czrQA9gC4vou+HADwgMjObM60APYAtb6LvhwA8IDIzkzOtAD2AL++7d60AP +aAnL7SLJP+qQADktohJ80QgNzgxm4AIsphIsohPiFPAf6cAIvAy/DGb9LSumE+IA2EAPoAEQKTA4 +KjA56zq7QA8ICYkKmQLqO7tADwgJiQuZAgiZEQqZAug9VcAQCAKZKSYWmFuKV+sw2EARAAKT0w/q +rrBAGFAAOwkDaAoCa+IA2EAPoAEQAAAAACkiEQ8CAA8CAGSQtImXDwIADwIAiZ7pkJNADoAAtuow +kkAYUAE7CgNpCUJr4gDYQA+gARAAAOX/38AJ+AtxHK24LzAw6DG7QA6AAKLpMrtADoADsOj/4cAP +mADe6P/rQBAADOXoM7tADwgPj+n/60ARAA2T6RDIQA8ID4/o/+tACsADtOIA2EAPoAEQAAAqJhHl ++O9ACfgPRQAAKiIQKKAFKQqV4hTwH+EwCJjAsiskZesQ2EAKcAZn4gDYQA+gARCJ9ysxC4mev7sL +S0vpkJNADngE22P79QAAbBAGiicmIAcoqRQFC0fkrrBADBAGYOOpsEANCAwo4hTwIBAQAlscrYjo +ILBAD5gA8u6isEAOgACR6lDYQBfwAtvtnefADoADsOgQyEAKwAOK7OdVwA6AAKXtMLhADoADsO4g +ucAKwAOEG6z87d9UwA8ICsbTD6uqK6I6DW0K7du1IAtwBEssojnty+UACxgP3O8gsEASAA2SGK0G +5ie4QBBAC1Lo/+GgCeABCeIU8CAJIAIJ7QDYIAjgBQ4nIQfmKYBADoAA5OYGgkAPAAmp4GbhwA9g +D+/vschADKAHcOZV60APCAfH5o5UwA9gB5fmsshAD2AHh5ew51VVwA6AAJDpt8hAEQACy+m1yEAP +CAiN57bIQA9gBXXltMhADoADUOWzyEAOgACSAwNpDEJrAwNoDAJr5XnfwA9gCJjouchAEgACmwQD +aAkCawQDawnCawQDagmCaysiEi6mOeeG38ASQAJC5rNVwBLABEsjIhKnOSqSJ+Wd08ARMAzJnKAr +kibAgOqxyEAXAAIz6JbKQA+YAKPol8pACsABO8Cl6wPYQA+YAMbtOO9ACsADMy8iEsDh5P/owA6A +ANAP7Thk36slJAXqKO9ACsABL+IA2EAPoAEQ7UK4QAn4DuTjANhACfgOPu0o2EAJ+A7UAAAAAI8i +y/ztKO9ADoAApexxVcAOgAOw6RDYQA+YAI/vmOfAEAAM4ugQyEAKwAMX4gDYQA+gARAsIEAIzBDs +MMhACfgN+I8wK2wY6ijvQA6AAMHucFXADHgP+O8g0MAOgADU7jDIQAogDUvvIrBACfgPmQBsEAYp +IgcsIAfTDyiZFOUKhsAMEAvADwIA5pmwQA0AD3guIEHiFPAgB6ACWuy04cAOAA+uwFDtANhADoAA +NBisb9MPDwIAqEQvQjriFPAACOgLPx+saw+/CulJs0AU2Az/D5kB6pjvQA0IAPll4TwYrHknIQft +KKhAEAAMkh+s3OC+4cAMAAvC76bIQA8AC6vuANhAD2AN7e6nyEAPCAmJ7qXIQAygB3DvBlTAD2AN +/e+iyEAPCAfH7aTIQA9gB7ftQNhADoAD4O6jyEAPYAnZ6aHIQA9gB4fnoMhAEQACugYDaQtCawYD +aAsCa+hY4cAOgACSCYgCmKnaIONJy0AO+An37yXQQArAAMjiANhAD6ABEADmANhACfgPCSogQAiq +EOpgyEAJ+A8Gg54tMAQoMAXlNrhADwgNjQjdAuM3uEAPCA2N75hUwA9gDV0I3RED3QIP3QEj3Gfl +mNhAD4ADNOM0kEAJ+A7ZAAAA6QDYQAn4DvQAAACPImTwUu0o70AOgACl7PlUwA6AA7DpENhAD5gA +j++Y58AQAAzi6BDIQArAAp3iANhAD6ABEO4o70ASQALN69eSwA+YAPbrS+1ACsABliwgB+wLgkAJ ++A6kjWArvBjsyFTADHgN2O0g0MAPmACi7GDIQA+YANPsENhACiAMy+8isEAJ+A+EbBAGiSftJ7hA +EAAMYiMhByiZFO0LgkAPCAaG4wOIwBBIDOnsM+HADQANGB+r9QUJR+y84aAIGAJZr8wqwjrpH1cg +BggESgm5CujJs0AU2AyZwETlEFTAD2AGRumK5QAFIA+Y5qHIQBIIDfLoD1dADoADkOiiyEAMAAjS +6aPIQA8ACKjpKKhAD2ADg+Uz60AOgACA46DIQA4ACx/A0B+sVeilyEAPCAML6KfIQA9gCTnvpshA +D2AJ+Zmk7hDxQBEAApoJQmsOA2gJAmvtINhADwgLjQ27Apup2iDkyctADvgJl+kl0EAKwABR4gDY +QA+gARAAAAAAAADuANhACfgPLwAAAI8iZPBH7SjvQA6AAKXs81TADoADsOkQ2EAPmACP75jnwBAA +DOLoEMhACsACO+IA2EAPoAEQKiBACKoQ6uDIQAn4DvcAAO2Y2EAJ+A9RiOArvBjqKO9ADoAAwe/C +VMAMeAiI6CDQwA6AANTv4MhACiAMbO8isEAJ+A+PAAAAbBAEjirv77BAD5gAsu0SVMAOgADA7SvI +QBEAApLp8MhADoAA0u8pyEARwAKO6CjIQA+YAK7p78hADvgJiOgl0EAKIAqx4gDYQA+gARAAAABs +EAQbrBHqPKhAE/gMuxyr7eRh2EAQgA2T5QDYQBEYB7p8oRvaIOtY70APmADD7UjvQApwBBDiANhA +D6ABEAAAaJFMaJIpaJQJwEDlANhACfgP1XyhzXuryuo470AKcARB1aDkANhACfgPvQAAAAAA5GHY +QBA4BMp7owJgAAHAQOo470AKcARZ5QDYQAn4D5jqOO9ACnAEbeWo70ANAAJKwKXsrldADoADsO0x +sEAKwAHn5ADYQAn4D24AAAAAAADkwNhACfgPYGwQBCkwE+WP2EANAAaZaJEH4gDYQA+gARCEJ4RO +wKXsrVdADoADsO0xuUAQKAOE7YLSwBCQDePug9LACsAB0upEmEAQwAKz7DG5QApwBIKlO+wyuUAQ +KAOk6qCWwApwBH3aIOtI70AKcAXh4gDYQA+gARCEJ4RO7FxXQA6AAKXtMblADoADsO1C0EAQkA3j +7kPQQArAAbwrPBjsMblAEBADpOqolMAKcARrpTvsMrlAEBgDpOqolkAKcARm4gDYQA+gARAAAAAA +bBAE5SOYQA+ACzgjVFfrVtHADoAEQ+RV0cAOgACH6FTRwA6AAJDpU9HADoAEoOpS0cAPoAEQAABs +EASPOMCl7CpXQA6AA7Du+O9AEIAN0+/vg0AKwAGaKTAQDwIA6rlXIAE4AQlokmdplBQoMgYion8J +iBEIIggoIAUpCpV5gW/iANhAD6ABEOo470AKcAY46XDYQA14DsqLp4u+LLKODJ1W7H6JQBD4CdnA +037QFSu9AuwA2EAKcAX/4gDYQA+gARAAAABY5ZbiANhAD6ABEIs2KqJ/CbsRq6rrANhACnAFJOIA +2EAPoAEQAAAAAAAA7IdXQA6AAKXrA9hACsABb9og6yDYQApwBC3iANhAD6ABEAAAbBAEKCIOIyw4 +c4kH4gDYQA+gARCLLoiz3EDtWO9AD5gAouuwlsAPoAAYjCLtJbhADngNzGTf1I4uc+nXY//MAGwQ +Fh6rX+MbyUAQOA2y5RjJQBDYDPHl/9tAD5gAlOkeyEAOgAAx4xHJQBAoDH/v/6hAECAMj+rirEAT +4AvO7BnJQAwQC7DrF8lADAAL/+sVyUAQ2Ayx5/eBQA+AA4zopIBADAAMi+wcyUAR6AvL7BTJAAB4 +A1gPCEnoEMlACAAAByUWEO29uUAQwAyR7RDQQBD4DLsrFhLpCYbAEIgHoy/hg9MPqv9/OwIqFhnp +FskgPCACCYoiDwIADwIA4hTwIEIIAXrtANhADQAFB+0TyUANAADH6jjvQApwCKXlANhADoAAYC8S +HOp470APmAC07jDYQA6AAMLv7OfACnAIjaamwI/kHchAEpgJaAZEFORBkEAIAABLAAAoEhRkh38p +EhuJlX2WpSsSFOoQ2EAQkAzB6hPJQA+YANHqOO9ACnAIwmanp+sw2EAOgABQCrU6ZFeR5B3IQA6A +A2AGRBQmEhcfqnsMahGvqiyiOuIU8AA/GAtMHKp3DGwK66mzQBTYDMzqHMhADygLy9qw5rjvQA04 +DNst8koPAgDor1ZADTgKDe75sMAT+AyIjB7o6+UAPHAPjikgFCoWCwnJZOkk0SA9oAwp7RyxQBDI +DIHA8+g46MANAADN4hTwAD5QBY9kUIOJHdMPyJFkUGPbYOoo70AOgADD7YHYQApwCMruELFADTAC +Re1JVkAOgADw76LIQBCoDLGfo++kyEAPCAwO76XIQA8ACyvtPetAD2ALy+2gyEAPCAy17E1WQA9g +C8vrochADoAApevB2EAKwADHKBIW4hTwIDlQAljAIIkc5JnLQA+gARAqEhNkoEGLG+oo70AOgADD +7YHYQApwCKoZqpUcqsPuFLFAEAANse6kyEAQkAzRnaXsu+DAD2AMw+ygyEAPYAub66HIQBDAAmoo +EhUvEhAPAgACiBDoGchADwgPD+8ayEAOKAj3HKpiKgoA6hXIQA6AALLrFshAD2AMwywWD9tg6ijv +QA6AAMPtgdhACnAIjCYSG4kVjxaGZegbsUANCAy5HKqijR/r/9tADAgOZOuiyEAQIAyI7aDIQAwI +C2HsochADAgNYuY8gUAPAA095e7gwA8ADEziu+DAD2AM7O1JVkAPYAvb7aPIQA9gC8vrpchADJAI +gJik7/+XwBDAAmrvFshAEAgCmekVyEAOeAcv22DqKO9ADoAAw+2B2EAKcAho7DDYQA6AAdjuKFZA +DwgFtekZsEAQeAyx66DIQA74D7/roshAEFAMgeujyEAPmAD66/iRQA+YAKLpANhAD2AImOn0yEAP +YAWF6fXIQA9gDuXu8chACnAIUu72VkAOgADAnBGcEpwT7BTIQBB4DPGfoOyiyEAQQAKx7KTIQBDA +AmrspchADvgP3+2jyEAPYA7l7qHIQBCAAtHqFJBAENgM4ewckEAKcAbk6BDYQA+YAJrqiefAD5gA +WukfyUANIAZaJBYg6xDYQA6AAKDlEcpAD1AKm+MYyEANaAhKE6pQjBrlsVZADrAAsOQYsEAQ4AzR +6TDYQA6AAILuENhAEEgM8erY70APYARU7kRWQA9YCt7j3eDADoAAUO/d60APWAip6B7JQA9YC67s +3OtAD2AN2+0ayUAPYAvL6x3JQAgAANIAAAAAAADm24JAEHgM4eb4gEAMCA1m5gyBQA8IDQ3pzOHA +DwgIyOyI60AMCAxl5LvhwA8ADPzriOtADAgLaOq74MAPYAzc5p2BQA9gCMjsELhADwANve2760AM +sA1g7qDIQA8IDU3riOtADAgLZ+m74MAPAAyM7W5VQA9gDNztochAD2AIuOylyEAOgACy62FWQA9g +CLiYpJujHKoS7KLIQAn4DfUAmaGUoJ6inqOepO6lyEAOgADQnaadp52oLaYJLxIesVXmqJIAFCAI +9dtg6ijvQA6AAMTtgthACnAH4OtZ4cANAAYlKxId4hTwIAv4AQXrmetADvgP7+OZ60AOeAp3LBIb +7MCxQBBgDLyZoZup5KDIQA6AAICYouimyEAQCAzx76PIQBAQDOHupMhAEBgM0Z2n7KXIQBAgDMHs +qMhACfgPf+0csUAQ0AzBG6nnDJkC65nrQA0ACO3u/9/ADQACZ5mhlKCeop6jnqTupchADoAA0J2m +naedqO2pyEAJ+A9BAAAvEhss8hct8hYu8hUo8hsr8hom8hmZoZ6mlqLro8hAEdgLb+2nyEARyAu/ +6KTIQBHAC4/sqMhAEdAL/+SgyEAPCAsL4IjhwA9gBrbmpchAD2APj++pyEAJ+A7kAAAAAADr/9/A +DQACR5mhlKCbopujm6TrpchADoAAgJimmKeYqOipyEAJ+A63LxIbK/IUhvwo8hgt8hCZoeuoyEAR +0AvP6KTIQBHAC+/to8hAEBAMgeSgyEAR2Avf5qfIQBHIC//ooshAECAMYeamyEAPCA4O7szrQA8I +Dw/sqchAD2AN/e2lyEAJ+A5XLhIcLBIaG6mdZOBz7JnrQA74D+/rmetADQACR5mhlKCeop6jnqTu +pchADoAA0J2mnaedqO2pyEAJ+A4bLhIbIhYi7eKxQBCYDM7o7bBAEMAMvubusEAQeAwu7+SxQBCI +DO6eop2jnKSbpZimlqefqZmhlKCSqOISskAJ+A3ZAAArEh3H3+uZ60AOgADA45nrQA0AAfeZoZSg +naKdo52knaWcppynnKjsqchACfgNqACZoeSgyEAOgACAmKKYo5ikmKaYp+ioyEAQCAzx76XIQBAY +DOHuqchACfgNewAAAADlEbJAEEAMMeQQskAJ+AnBJRIRwJLnlefACfgJ1wAAAOpQ2EAOgAG87OVV +QA+YANPuOO9ACrgPR2P4ZAAAAAAA6hmxQA6AALCbEZsS6xPIQA9oCqPrFMhADPAKoOoXyEAKcAXB +JBYgJRYh4xjIQA1YDfqKF+sA2EAKcAWyJBYgJRYh4xjIQAn4C8crEhJluHlj+CRY5bvIpxypQyzA +gGTAZioSGQo6DAoKT+oXyEAKcAWu6R+xQA5YB8qKF+sQ2EAKcAWg6R+xQAn4C2oAAAAA5gPYQAn4 +B/zaMOsUsUAQkAzB7RjvQApwBq5j+ELaIOwesEAQ2Ayx7RixQAogBEjiqO9AD6ABEAAaqSjrFNlA +CqgGCSwaAOsU2UAPYAzK6iJVQAqoBglj/3faIOvB2EAOgADA7RDYQAogCUlj/66aHOsA2EAJ+Agx +KxIX2iDsANhAD5gA1Ou4kUAKIAlAY/+M6ijvQAvoBElj+ESNHoon7ADYQA+YAL3qoJJAChgO0dKg +ixzkuctAD6ABEAAAAAAA5UDYQAn4CDlsEAQUqQTkT7PAEAAMIhOpAgQiDOMi60APoAEQbBAMGKjT +Gaj+KoKh6Za0QBcwA4gogOEJqhGqmX+HDiSdAeRAlEAIAAAOAAAAACSdAyRMgBmouShBKeIU8AAI +WAiYGqhn6gDswA+YAJEJAmsJAmsJAmsJAmsVqOrrSapAEcgN0hmo6hqo6Ow8VEAOgACE7BbIQBA4 +DeTqEshAEAAM8ukQyEAOgACS6RnIQAwQDuDo/+HAD2ANXe0YyEAPYAU/6P/rQA8IDg7lG8hAD2AL +6+8RyEAPYAvL6xTIIASwAwOJRyqZFOyQkkANAAgaLZIJi8DuDN/ADoACWO7O5UANAARNbQgsfbE5 +79C4QBA4DZ3smeHAEXAEXy/BBandrvgojEDq2O9AEKAFje2o70ANAAFKY//MAAAAAADv2ujACfgP +7OkA2EAPaArbCp045tjvQA4AA33aQOsY70AOgADE7SDYQAoYCrrRDwDtANhACfgPguoak0AR0AKy +7GDYQAq4A3Jj/1oAAADCdu5osEAOgACl7HpUQA6AA7TvKbtAD5gA1u4OgsAKuA6FimgPAgAPAgAK +j1d38WmKRy6hFesM38ARAAKqC6sBq+vtYJCAA6AKtu+gsEANAALNffEkLNAA0w91wRwp0AfosJDA +DwgJyand6tjvQBEgBY3tqO9ADngNyu376MAOgACgC6045tjvQA14BE1j/3EAAO7a6MAJ+A/cLCA5 +Cg1DfcmMjiAI7hEOPgLua8hAD6ABEAAAAAAAAADu3ejACfgPjGwQBOgluEAQOA2iKQoUDwIA6g6C +AAjwDpiJImWQ5SwwAR2nzezm4cAQUAG8KyBOZbFlrWYvYjriFPAgCGgCTx+nxw/vCutps0AU2Az/ +D7sB57jvQA0AD8so0koeqE3TD2SAuu7vs8ASSAyd7pvlAAV4D+kvIBQPT2TvJNEgB1gLLx+oWu4k +qkAMEAjA7TOwQBAIC7PqKYBAERALou11yEAPAAmp63TIQBBIC9Ltc8hADwgICOvUVEAPYAiY6O7r +QBAADJLoG1PAD2AO/u5wyEAPYAq66JnhwA6AALLqcshAD2AJuZlx6ALswBDAAqcKEmoFDkfracsg +BBgCXuIA2EAPoAEQ2iDrOO9AD5gAxO1Y70AKIANK4qjvQA+gARDaIOvB2EAOgADB7RDYQAogCFNj +/9DaIOtY70AKIAT24qjvQA+gARAAAADrANhACfgPBCvsGOoo70AOgADB7SDYQAogCEdj/50AAOoo +70AL6ANPKiAH7DG4QAn4DwqKJ9tA7UjvQA6AAMDqoJJAChgN1eKo70APoAEQAMC4C5sC6yLIQAn4 +D2MAAABsEAboJbhAEDgNYuc470APmACz6UHYQA6AADPmBoIADpgOmAUIR+UmU6AAsAIIjCLsauHA +DQAHzOIA2EAPoAEQLSIdZdG9iCcMTRHriLBADvgMoO+AkkAQqAvo6vrlQBBYDJjqEchAEKAKyKru +7uCQgA74CLmdEqvarczshMEADwgLrsl56bjvQA0AAXTsErBAGFABNAcDaAkCa4rwDKoI4hTwABBA +COrq8MhACfgPgqWqLaI6btMdHac/DW0K7KmzQBTYDN3oDlPADoAA8e3O5QAA+AXc2iDsENhAEMAC +tu0w2EAKIAf74gDYQA+gARAAjCAdp4Pv4shAEBgMm+s9U8APCAyM7eDIQA9gDDyc4SiCfx+nM+0T +U8APgAmYqYjo48hAEIACnu8C7MAOgACAsYjpE/BAH9ABKIkgm+id5uiZ4cAOgAHA7OfIQA9gCTmZ +6e8muEAQOAyS7SKwQA74DLDjqctADoAAgemQkkAQCAL/6N3rQBAgCsntIshAEAgMie8m0EAPKAu5 +67CQwBGAAszslMBAFoACiOiRyEARkAW4LpEFH6eqqOjokchAEAAMkhKnL5+C4oDIQA8ICYnjmetA +DoAAIOmByEAPoAEQAB+noIkgEqcmn4LigMhADwgJieOZ60AOgAAg6YHIQA+gARDaIOtY70AKIARc +4qjvQA+gARAYp5TpqNhACAAAMAAYpu4pUiCIhOmXuEAOgACg6RDIQA+gABjqELBAEBgMkQqZDOiI +U8ANcAD5K4KC6RPIH/5wA/tj/fwAAAAAAAAA65jvQA6AAMDsi8hACfgN0uvq6MANAANHCk0UuN7u +TuXAD5gAh+m470AYUAE+CANoCQJriRGqeA1MDOmQkMAYUAE8CANpCUJrjRKMEQrdDK3MLMxA7PDI +QAn4DYaOES7sQO7wyEAJ+A15AAAAbBAG6CW4QBA4DcLuq1LADHAKUO0Q2EAOgAGU7AyCABFoDpji +FPAgDygCCo8iDMcRDncI6bDYQA4IDm8ocjrv6lKAERALmA/PCut5s0AU2Az/D7sB5rjvQA0QAUso +4kocp08PAgBkgc7vxrbAEkgMng8CAO+b5QAOAA/56SS5QBA4DYMqFgIImGToJNEgD7gLKBmnQ4Ug +iDbtYshADoAA9O4UU8APCAWF7mDIQA9gBfWVYSXCGuu5UsAPgAiC6YjlQBCAApaoVeVjyEAOgAKA +6wLswBGAAlMJEmqYZxmmkZlm5RDzQBEAAoYIwmvr8e7AEYACVgWCa4gg7mDJQA8ICIjtYslAD2AI ++OhhyUAQGAxTLMIY7WCSwA+ABVilzOxjyUASgALG6wLswA6AAlAMEmopZhblZ8lAEIACwwwDaQ1C +awwDaA0CaywwAe4IUsAOgAFY7B2AAAVoAfzlY8pAEDgNguwzsEAQAAzy6WLKQBAICzPlMNhAESAL +kuj/4cAMAAiC6ojgwA9gD1/vYcpAD2AI6OhgykAQCANW6/HswBSAAlUFAmsFAmvjacpAEDgNguxo +ykAQSAviG6b75t/hwAwQCIDk7uHADwgICO+h2EAPYA7+7+7rQA9gCYnuZspADoAAgOhlykAPYAm5 +6WTKQA6AAJvpecsgBQgCWuIA2EAPoAEQ6YDYQAn4D+wvIh1k/hgWpuHnqNhACAAA09og6zjvQA+Y +AMTtWO9ACiAB6+Ko70APoAEQ2iDrwdhADoAAwe0Q2EAKIAb0Y//Q2iDrWO9ACiADl+Ko70APoAEQ +AAAAAAAA6wDYQAn4DezaIOvIkUAOgADb7BDYQAogBudj/5sAAADqKO9AC+gB74oSHKbD7RDYQAn4 +DfyKJ9tA7UjvQA6AAMDqoJJAChgMdOKo70APoAEQAAAZpg8YphQpkiCIhOmXuEAOgACg6RHIQA+g +ABiJEe0Q2EAQEAyh7mBSwA9oB5fsELBADWgENytigpwQ6hLIH/4QA/tj/S5sEAiOJwxMEaw8JuEV +6wzfwBEAAu7r7uVAEBAMgg5uCO7gkMAPmACs5hPIACSgCezvp7hAEDgNwuagkkAPmABa7AyCQBfw +An/r85BADQAAyOIA2EAPoAEQ6xLIACNgCeYepeYMyhEOqggoojotfAjiFPAAIygL2Bil4QjICuup +s0AU2AyIKhYB5hDIQA8oC4vmuO9ADSAFSyniShqmgdMPZJP96Ka2wBJIDM7TD+jL5QAfgA+MKSAU +Cflk6STRICIICykbpdjuNLBAEAAMohml4OxnUsAOgAH46KrhgAYwAJ7tzVHADoAAQutiyEAQOA0y +72PIQA6AAHPvUahAD2AOeupRuEAMAAMy7mHIQA8AA6PuJKpAD2ADk+NgyEAMAAqh7QDswBAYDDXt +YJFAGDgANA0Ca+NoyEAPCApq6SmoQBA4DYLvachADoAAsOtlyEAOgAP66AiCQA8ICUnqmetADwgI +COjo60APYAn56WbIQA9gCMiYZI4RKyEJ6ijvQA6AAMDn6ctADoAA0O5RqEAPCAtL77vrQAogAvXi +ANhAD6ABEIgQiIDsBFLADoAIkeiIh8AQCALn7q7rQBDoCJjuYchAF/gCl+xgyEAPgAmR6WLIQAgA +AC0A6RCwQBA4C/IYpjTvD4jAEAgMmQz/Ee5hyEAPYA+P72DIQA+ACZWZYown7gzfwBEAApzumeVA +EKgL7BimI5kUqe/uFchAEDAMkx6mICiCGukp7UAQSAzM7kKQQA8oCempiO/wkMAPCA7OrsynSehj +yEAQEAKZ7JnhwBAoDIHumejAEDgH/AjMDOx+4cANAAQJDOgI6WCRABEYCY8M/wwPShRtqQUMA2gJ +AmvpFLBAD2gMp6b6KqwQ0w/pkJDAGFABPAkDaQpCa4ogCKoRpuwYpgDoxMhADoAA8ei/UcAOgACU +78bIQA9gCZrpxchAEBgMpSiCGOYC2EAOgACQ71VRwA+ACqiqiOjHyEAQgAKs7wLswBEAAsyxmewT +8EAf0AEpHKXvKFAL51q4QBAwDJMuUAgEiBDmd+DADygJye5c7UAPYAeH7miAQA8ADBzsGVHAD2AJ +yemqyEAQUAyT7x5RwA8ACHjod+tAEEgNhew1sEAPKAnJ7IjgwA8oDPzrpshAD2AIyOiNUcAPYAeH +56nIQAxADuDnNLBAEBgMNeanyEAPAA6O7lawQA9gCenod+VADwAIk+jcUcAPYAeHLqYMKaYO6Hfr +QBAgDJXnqMhAEAgNdemvyEAQKAz176vIQBA4DMXsrcgABUAB9yumEukyUcAOgACC7RLIQBAADOLt +gdhAEDgNwu2jyUAOgADz7aFRwA8IDo7sLIBAD2AO/u6hyUAPAAys5x6AQA9gDNzsoMlAEoAC2ukA +7MAQCAvF6SSqQBg4ADgNAmvsqclAEEgL8uOoyUAQOA2yHaWf5ujhwA8ID0/rC4JAD2APj+C74cAO +gAGK65vrQA9gD4/vpslADoAAgOilyUAPYAvbK6YUjBGKJ+1XuEAQEAyxK8Y57ADYQBEAAqqk3evY +70AKGAs/4qjvQA+gARAAAABkfg5teQUMA2oJgmtj/f3aIOvB2EAOgADB7RDYQAogBZviANhAD6AB +EAAAAAAA5srowAn4C2yOE+5m6MAJ+AuSAAAAAAAA6hHIQA6AALDmEMhACfgLrOvIkUAPmACi7BDY +QAogBYniANhAD6ABEJ0X6ijvQAvoAJHtF7BACfgLtQAAAAAAAGwQBugluEAQOA3y7jDYQA6AAZTv +D4IADlAOmAUIR+UM36AAuAIIiiLr6lDADQAHauIA2EAPoAEQAIgn64iwQA8IDcTngJJAEKgLaOV6 +5UAQWAyY6hDIQBCgCsiqZuZgkIAMuAi5nRGr2q3M7ITBAAzIC6bJOem470ANAAF07BGwQBhQATQD +A2gJAmuKcAyqCOIU8AAOAAhqmnDjuO9ACfgPiAz6EauqLaI6btMdHaSNDf0K7KmzQBTYDN3o8lHA +DoAAse3E5QAA8AXc2iDsENhAEMACv+0w2EAKIAVK4gDYQA+gARCMIJtC7R1QwA8IDIztQMhAD2AM +7OxByEAQGAyTKIJ/7zhQwA+ACZipiJhD7wLswBCAApTvkVHADoAAgLGI6RPwQB/QASiNIJ9I6XdQ +wA6AAYDpRshADwgNjehHyEAPYA3tnUntJrhAEDgMkowiLqY56ZCSQBAIAt3rzOtAECAK+ewiyEAQ +CAyJ7SbQQA8oDVnt0JDAEYAC/++UwEAWgAKI6JHIQBGgBdgqkQUbpITsILBADoAA0Kio6JHIQA6A +ACDtgshADwgMjOuAyEAPYAzs7IHIQA+gARCMIMDQ63dQwA6AACDrgMhADwgMjO2CyEAPYAzs7IHI +QA+gARDaIOtY70AKIAGt4qjvQA+gARAAAAAAAOOY70AOgADQ7YvIQAn4DiLraujADQADQwpNFLjc +7EzlwA+YAIPpuO9AGFABPAgDaAkCa4kQqjgNTAzpkJDAGFABPAgDaQlCa40RjBAK3QytzCzMQOxw +yEAJ+A5KiBAojEDocMhACfgOPQAAAGwQBiwgBxSkHQwMQe7RUMAPCAPMpDMoMjoOzgou4pvkMNhA +GigDGC0yOe7b5UAR0AntH6TF6ExQwA6AAMDpANhAEAAMoukQyEAOgADV6RLIQA6AAe7oEchAChgN +qyQ2OeIA2EAPoAEQ2iDryJFADoAA0+wQ2EAKIATK4k/fwA+gARAAAGwQBiggcMBU5M9TAAQgAdgr +IAcLC0Htn1NADwgDy6QzKTI6Db0KLdKb5CCwQBtYBBksMjntyuVAEwAJ3OtI70AKcAh77BDYQA6A +ANDuENhADoAA8OjZUMAOgACQ6RHIQA+YALrpEshAD5gApOgQyEAKGA2EKiBwKwr75TnLQA8oCroq +JHDiANhAD6ABEAAAAOIA2EAPoAEQ2iDsENhAEMACu+1A2EAKIASd4k/fwA+gARAAAGwQBCsgBxSk +hBijzu38U0AMEAuw5E+zwA8IA8uoMygyOg29CqtE7du1QBqgAhgsMjntyuVAEkgJ3OtI70AOgADA +7SDYQA6AAOLvAdhACrgHIB+kcukgsEAPCAiE6aLIQA6AACHvoMhAD2ACKJKh4gDYQA6AAOLuOctA +D6ABENog7BDYQBDAArvtINhACiAEduJP38APoAEQbBAWLzAQwHfsmlNADoAA0eYA2EANEAYP4hTw +IEtQAQ9o8gziANhAD6ABEAAAAAAAKiAHBQlH6RDKQAwQCqDqEcpAGNACKSsgBeIU8CBkOAhLLiBy +4hTwAGPgA+7qKO9AChgPruIU8CBIIAF6iyLiFPAgR9ABey4SIRmjjOo1sEAQgAzC6h7IQA8ICM6p +iOgcyUAOgAGYDKll6IqzQBC4AqrrFshAD4AKpO9IkEAQIALa7RDJAGE4C/gZpDMoEhwJ6QroibNA +FbgMmemL5QBgcA+Y7imwQBBQDPLgGPHAD2gP7+geyUAT8AWP7CK6QBEYDZIMmQziFPAgZcAAaSwg +Bx+jfe/wl8AMEAzAD8wJKMHuCY82D4gMKMXuLCAinxcM/GTsItIgZTAAbBmjcimSf48r4JnvQA6A +AIHgiPDAF/gCnOiPl8APoAkJqf8I/wKfKikSHg74DNMP4hTwAGP4C5gsIhDstchAEcAN4hmkCBik +CO4+gEAOgAT35rfIQA9YB+/umOfAEHAM8e+4yEAQAAyS76hTQA9gCHjotshADoAA4u65yEAQgAyB +6JnhwA6AAOHuushAERAL4ulvU0APYAiY6LHIQBEgC4Lv7utAEDgN8u6yyEAQOAvi5rvIQA9gCJjp +KahADAAP8ui0yEAMoA7g6PxTQA8ADs7q/+DAD2AJ6emzyEASAAKb6P/rQBCAAoPTD++wyEAYUAE6 +CANoCQJrjzAYoy3TD+iwyQBKOAKvKxIcKiAUKRIeLbY5pKrqJNFADQABme0psEAQ8AzhLCA4rt3t +KcgAWOAD7C8SIOIU8CBXcAJf4gDYQA+gARAAAAAAAOknuEAQiA3zKCAFKiIC73uAQAwQCZDpEcog +NlgIWO6Y7yBQ8AF6DJoRDKoIKKI6KxYd7xvIQA6AAZrva1MAUhALmA/vCuups0AVuAz/DwIA6hzJ +QA8oC/vvuO8gUXgAayjCShmjsNMP6xrIIFKgCkjrybDAFjgM6dMPDwIADrsB6rjvQBBYDIHrEckg +UeAAayYkOy0lKSYkTiYkTyYmGy0mFy0mGC0mGSYmHS0kcyYkcCYkciYkcZoZ7iqpQBCgDbPrKNNA +EKgNk+kp00AMMAiA6CrTQBBIDJPpI8JAEDAMs+siwkAQYAyT6SzQwBBYDLPrJcJAEEAMg+gpwEAQ +gAyz6yjCQBBQDIPoJMJAEGgMg+gt0MAQiAyD6CXJADYYBefrKLtADvgPrOMTykAPKAqu6qyWwA6A +AJLpt+VAEOAJm+4IiEAOgACR6JjnwA+ACempiA6IEQiqDOmRU0AOgADk7r7lQA6AADHuPufAD5gA +tu7WU0APWAvpCukuCu4sCTk5rpkeowLYYOc358AX4AI65+jnwBCgDeLpq+lAD2AIuAk5HOskw0AP +CAMDpO7pJcNADwgJCuOD60APYAiY6C/IQBDoDIEuJBTjIMlADoACkOMTskANMAW46z6wQBBQDPHo +KbBADwAHjugsyEAPYAfX5/fIQBA4DXLrFMlAEFgMouj4yEAQQAuC6vnIQAwQCnDr6VJADwgKCuog +sEAPYAiomfPm9chAD2AIuOj0yEAPYAu66HlSQA8ICorr9shADoAAs+tB2EAPYAq66x/IQAwAB3Lq +8chADwAHp+h360AOgACg6hXJQA6AAYYoFh+X8BeifZfy5iTRQBGAAv+JOR6i4dMP66JTQA2wBFkn +IAcPAgAHB0EnfBTq5lJAD6ACF+dCU0APoAkN6z+wQA9gCbkppjTrFslAD5gAp+kXyUAPmACfCgNp +CUJrCgNoCQJrKCIVKiEo7xjIIC54AAhZds3pJbFADoAAwewYyUAOgACw6xvJQBf4AqrqGclAD4AJ +likWGusI2EARyA3C6mjvQA6ABNDvaO9ADoAAguwOgEAPKAyM7t/mwBHADeIMujjq/+tAD5gAtujs +5UAOgAGg7g2AQA9YC8rsAthAD5gApu3K58APmACW7H9SQA6AANDrGLBAD2AKuur/60AMAAri6onn +wBDYDIHqILBADAAO4+wQyEARAAK77YjhwA6AAMHp7utAD2APj+0RyEAPYA7+7O7hwA6AAPTv7utA +DoAA0O4SyEAOgADw7gDYQAoYC8LsENhADoAA0O/NUkAPmAC66iCwQA6gAJDpEMhADoAA4ekSyEAO +gACA6BHIQAoYC7brqO9AEKAM0eogsEAO+A+P6BDIQBCwDMEuISTvJapADIAN0OwMiEAPCA197QDY +QA9gDNzsEshADwgPD+/u60AOgADB7hHIQA74D//uodhAChgLodug6iCwQA74D8/sEMhADoAAkJkR +KCEiKSEJ7QDYQA6AAezgiOHADvgP/+iZ60AOgADB6RLIQAoYC5MdorDuGbFAEMAMgel6UkAPmAC6 +6iCwQA74D8/sEMhAENAMwe8VsUAQIA2Z5YjhwA8IDp7tANhAD2AM3Oju60APYAn54v/gwA8ACRns +EshAD2APn+/u60AOgADB7hHIQA74D//u4dhAChgLeB6h2i0SFw8CAO3ky0APmACaBwNrCcJrBwNq +CYJrjzAPAgDiFPAAF+ACr+glsUAQ4AyhKRIf6anLIAdIAAgbojgaon/rsrVAEAAMgiqi/ai77Seo +QA8IC5urquocyEAQYA2S6azQQBA4DXLnp9BAEEgMw+ypwEAQqA3i7qXRQBCADPPvqMJADoAB5O2n +wEAQaA2y7ydSQA6AANHrrdBADPAMwOyjwkAQiAxz7B3IQBBgDP/orslAEIgMse2pwkAPgAd27qXQ +QA6AANGn/++myUAOgADg7//YQApwBjiPHIwdLfAV52DYQA6AAuDm9NFADwgMjO6j0EAPAA1N7czr +QBCAAtrtGchADoAA0eag0EAPYAzc7KHIQAgAABMAAAAAAAAA7RDYQA6AAHAuEh1k4GwvIDooCg/i +FPAAFqAIjyowVykKQAqZDCkWEuoo70AQSAyx7RDYQA6AAODv/9hAEEgLwuwTyUAKcAYU6yW5QBCY +DMEmJBTmoNBADoAA0ejM4cAPAAtL7LvrQBCQDMHso9BAD2AL2+uhyEAQMAJ3iicboYOKrusA7MAQ +eAyRCgJrCgJrCgJrCgJrCgJrCgJrCgJrCgJrHqFjLBIdJ+ZJKSQF7SfRQA0AArwvIDrAj3jxHhmh +pCgwUAmICiiCECs8UOoo70ASuA3D7SDYQA+gABgFCkfiFPAgHbgCWuIA2EAPoAEQ2iDrOO9AD5gA +xO1Y70AKGA0F4qjvQA+gARAFC0frEMpAGPgCKyogBcHU4hTwABCoCNriFPAgBBAISi4gcn7vd+oo +70AKGA1aZaB/jyJl8HopIBSIMKSZ6STRQBLoAKgqIAcYoTcKCkEMpxEIdwgrcjriFPAgHdgESx2h +6A2tCux5s0AVuAzd7cvlAB0oD9woIHHsOO9AD5gAou6u2EAPmADU6ObnwA6AAPHuaO9AChgNEykK +BCl2OSoSIOIU8CAaoAJa4gDYQA+gARDaIOs470APmADE7VjvQAoYDNLiqO9AD6ABEAAAAO8YyEAO +gACk7H1RQA6AArrtILBACrgHl+8YsEAOgADR7iqpQAn4CR3cMO1I70AOgADg66CSQA6AAPHqKO9A +ChgM9SsSH7S76x/JQAn4DOUAKBIhF6HFwOPqcL3AD6ACGO5w00APoA4NDgdH66jvAAGwBafo61FA +DvgPnwl5A+mq5UARCAyR6KtRQA8YCYkolpsZobUK6gIKCkfqkNXADQgJK2ShlcGD6B/IQA6AAOHu +FclADoAAsOsUyUAOgAGj6h/JQAn4CdoAKSEj6RjJQAq4BVqwrOwZyUAOgACw6xrJQA6AAKHqG8lA +CfgKOhehlSjik+kKjsAX6Ax3qogJiBGod8eP6CXJQBFAC3fnKMJACfgJnMSA6BLJQAn4DTYAAC4g +ce8QsUAPmADD6a7YQA+YAKLulufAD5gA1O5o70APCA/Pr7vvENhAChgMsi0SEO3UkEAJ+AaJAAAA +iScumRQvnCDnkJNADQAPHo6ZiHAp+sDp+eVADoAAsOeN6MAWQAKI7YvnwA0ABi6ZFIjwfoFWLeAA +wZTiFPAABHAIncGF4hTwAAQgCI3BlnnResGIeNF1wZl50XDBinjRa+n1qEAQIAyBLeAHKRYFCJkI +7N3hwBIAApkN7gjt6O9AEeAFnu7Y70AOeAqNybjC7S2wAH7RNYm+wLDpfejAFkACmQ2bOWW/5y4g +Tuth2EAPmADW7r3nwAgAABUAjRXt7ejACfgPwgAAAAAAAO0h08AJ+A0eZK5x6RDYQAgAAAbAkBih +TS6C0seuCu4BDp4C7oLNwAn4DlYAAAAAAO4A2EAJ+A8R2iDrOO9AD5gAxO1Y70AKGAwz4qjvQA+g +ARAAAAAAAADiANhAD6ABECsSIdog7BDYQA+YAN/ruJFACiABOGP8dyoWHOsA2EAJ+AXRKxIh2iDs +ENhADoAB2uu4kUAKIAEvY/+ciifbQOwA2EAPmADU6qCSQAoYBsPiqO9AD6ABEADrANhACfgFvNog +68HYQA6AAMHtANhACiABIWP/Yoon20DsANhAD5gA1OqgkkAKGAa04qjvQA+gARAAAAAAAAAA6ijv +QAoYC8lj9NyKJ9tA7UjvQA6AAMDqoJJAChgGqeKo70APoAEQAMDB66iRQA6AANTqKO9ACiABCWP8 +hSsgBeIU8D/doAELjBbA0g3MAuwiyEAJ+AulAJ4q7+jvQAn4A38AAAAAAADqJ7hAEDgMgR+gQ+oK +gkAPaAmM6SLSQA8QD/ou8e6o7i717iwgIszIiynrKshACAAAKx+gOS/yf40r4PnvQA6AAOHg7vDA +F/gC/O7vl8APoA8Pr90O3QKdKsDB66+RQA6AANDqKO9ACiAA42P7IQAAbBAEG6CKGKDe67K1QBAA +DJIogo2rmemZ4cAOgACwqYjrJNFADoABkOkl0EAPmACi64TRQAvgDg3RDwAAbBAEGaCTijIpkn8J +qhGqmeyWuEAOgACw6JKwQA6AAOvuldBADvgP3uzPl8APmACp7JbQQA8oCNjokshAC+AN/OIA2EAP +oAEQbBAE1CDqOLBACnAEyRigZhKgfiiCkylAB+tNuEAT+AwiqojpiOHAEAgM46gi7iPCQBAIDfPu +KcBAEKgN1O0l0UAQYA2k6izQQBA4C8TsJ8BAF/gC/+st0EATkA3C6SfQQBBYDLPqalBADvgPn+sl +yUAQUAyD6CjCQA6AANDqq7BADoABhO0pwkAOgAHg6S7JQA9QDf7oJdBAD2AM3Owi08APgAu2q6rq +JslAD6ABEABsEAiTE5QUkhXoFbBAEBgMQemHuEAQAAwkiILTUOIChsAMEAmQ6RHIQA4YCFjlEMhA +DRgFMuUF8kANAAyyjBTiJ+LADoAAYOx34cAPCAzM7BLIQAgAACoAlbCmSeUQ2EAOgAAzK5wQ6hWw +QApwBSZmo1kmbDDiFPAABFgIdqRpKJAQaYPsZV/bihWKp+MM38AQEAzh7aWpQBBADErroJJAEFgM +muykoUAPKAM7o93t0JCAHdAISa5FrszspMEAHfgLXY8TiRTK8sqQ6pjvQBAQDIHTD+lI70AYUAE6 +DwNoCQJrhbAPAgAPAgCoVeIU8B/7QA7VLjxA7rDIQAn4D18AAAAAAOoVsEAQCAKy4xDIQAq4AS7j +qO9ADZAHSmQiLAIiCewi4cAPmAB0pCLlQJFACAAAF+IU8CANYAMJJ3ww5VCTABBICCcpcBBkkMbi +FPAgCJgBCWmS2ylwEWSRVeIU8CALUAEJZz/SjxEZn3DTDwz3Eal3KHI6DwIA4hTwIByoBEgcn2sM +/ArrebNAFNgMzAy7AeW470ANGAhLLZJKZNNRH6As7pmwwBOQDP/v6+UAGhgP/okV6JS5QBAgDKEI +qGTolNEgG7AMKNtQ4w6GwA+YAMTqFbBAECAM0e8Q2EAKGAtBixDrC4bADoAAxOx5yyAMUAILihWN +FIqn7ADYQA+YAL3qoJJAChgFquKo70APoAEQKXARyZRokTTr2N+/+OAAc+IU8B/4oAizY/85ihXs +WO9AECgMt+0A2EAOgADg7wDYQApwBGLjqO9ACfgPz4oV63WwQApwBFfjqO9ACfgPvQApcBHJlGiR +NOzY37/2YABz4hTwH/YgCMNj/umKFexY70AQKAy37QDYQA6AAODvANhACnAETuOo70AJ+A/PihXr +dbBACnAEQ+Oo70AJ+A+9AOoVsEAQKAy37FjvQApwA/njqO9ACfgOnooV63WwQApwA+7jqO9ACfgO +jAAAAAAAAOp8sEAKcAPlL3AR0w/pqO9ADQABr2jxN+3Y37/x4ABz4hTwH/GgCNNj/lken9GKFS7i +jYt17FjvQA6AANGp7u8C2EAKcAQq46jvQAn4D80AihXrdbBACnAEHuOo70AJ+A+6AAAAAAAA6wDY +QBAoDKHs39hACrgCF+/Y38APmAA65gDfwBNoBPqIQAaIAehAyEAJ+A30AAAA4gDYQA+gARDjANhA +CfgN4ceU4hTwH+64DprjELBAECgMoevB2EAOgADA7QLYQAoYD6mKFesTsEAQIAzB7TjvQAoYCpTi +qO9AD6ABEAAAAADiANhAD6ABEACKEAoKR2mieoUVhVcn+sDtValAEEAMReJQkkAQWAyVBycBp93t +0JCAClAISYoU6FShQA8ICsqaEqpJqojoVMEACmALnYsTyb2MFMnJ6UjvQBhQATwLA2gJAmvqErBA +EAAMkg8CAKqZ4hTwAAwoCNmLQJkg5rvlQA6AACDrQMhAD6ABEIxA5szlQA6AACDsQMhAD6ABEAAA +5JjvQA6AANDtq8hACfgL4gCOE+Ta6MANAAWejBQKSBTuiJBAD5gAXu7M5cAPmADU6QDYQA0AAUzl +EPBAEAgCme0S8EAXoAjJhRMsEgQKVQjtMJDAD2gMjOkA2EANAAFM5RDxQBAIApntEvFAF6AIyY0S +Ct0MrT0t3EDtsMhACfgLcAAAAAAAAOMQsEAQKAyh68HYQA6AAMDtENhAChgPUWP+ngAAAAAA6wDY +QAn4DHyLEYoV7ADYQA6AANTruJFAChgPSOMQsEAJ+A56AAAAAOqY70AL4ApPY/yCi5DiANhADoAA +wOxbyEAPKAtr65DIQA+gARCOE+Ta6MANAAPOjxQKSBS4heX/5cAPmADU0w/l6O9AGFABPwUDag2C +a4UTKRIEClUICJkM7XCQwBhQATkFA2sNwmuLEgq7DKt7K7xA6yDIQBAADLTmu+VADoAAIOtAyEAP +oAEQi0AsfECcIOa75UAOgAAg60DIQA+gARBsEAQoIAXNi4oni6wtqRTpoJNAEEgM6uy4lMAQMASb +zMLI3Mjq2iDrANhAC+AMTNEPHZ8SH58T6f/fwBBAArrpoMhADoAAgOgnyEARMAevKNJ9H58Mm4Gf +oy7SfZ6iLNJ/693LwBAIAszs38vAD6ABEC/SgOvxyEAQEAPtnqMs0oCcoinSguvQzEAQCAKZ6dLM +QA+gARAAAGwQBByeoBue+izCkCuyjqPMCcwRrLspsRrA8u0A2EAYcAQZ7brBQAgAAAkAAGiTEC6x +Gg/uAg4OT+66wSAAgAMO2iDrANhAC+AMH9EPHJ7p686rwBAADKvrqujACnAEFGP/3QBsEDIqIAfo +MU7AD5gAsw8CAOsWykAMEAqg6/BOwA8IA8qoMygyOuwo70AOgASa6hHJwA8YC7rru7UAgpALmCky +OQuZAeeY7yCCYABpjUgVntHqwE7ADvgPv+3ygQAFOAANLRww6gLswA+YAGoNEmrtSbBAEGAM5C4W +E+0eyEAQeAyk6hbJQBBoDPTvFMlAEHAMhOgVyUAQgAz07x/IQBCIDIToEMlAEJAMpOoRyUAQmAzU +LRYS5gLswBBYDOTuF8lAEwAC0Q0SaisWGysWHCsWHSsWHisWHysWICsWISsWIisWIykWLOwTycAS +QAz17xnJQBJIDOXuGslACAAAXAAAAAAAAOrx7MARgALRDQJrDQJrj0kvFhSOTS4WFY1MLRYW6vHs +wBBYDIToF8lAEwAC0Q0Caw0CaysWISsWIisWIykWLOwTycASQAyl6h/JQBJIDIUoFiDHvysWIysW +IusRykARgAKh6xCSwApwA9AvUXnTDw8CAOao7wB0MAr6L1GEf6IMKFGFr4jiFPAAc5gMiljkBeZP +36B44ABq6ijvQApwA9wlUYSlpeMXyiB5uAFlGJ4EJkIaH54a40ixQBEwDMEennLv8LVADoAA0epG +sUAQuAy06xLIwBRwDO6vX+oTyMAPCA+fr+7t6sFAEMgMdOXByEARWAv07xDIwBCgDOQcnmXrEchA +D5gA1eoSyEAMOAno6RHIwA6AAKXpEMhADygIjugUyMAOgACw6BPIQAw4DuzuGspACrgEDepQ2EAO +gACw7HVOwA+YANPpRU7AD5gA5+kRyEAMcAgg6BXIwA+YAPboEMhACrgEASkKAe4A2EAOgAjA7Hzl +QA+YAL7snOfAD1gLuey760ARUAzB7yDYIFQgAgwpFjQiFivtoNhAF+gCjOgA2EAPUAyN6BPLQA6A +ANAtFjIZncIAhATA0ek55UAOgACg6trnwA9YCZ0HPRgKmQLiM06gUtgAaQN6UyoWNeIU8ABMYACW +BlpQ6hbIwAwICGToF8iASjACxigiMdMP0w8IiEHoGMiASfgBRgbJQekZyIBKoALWKiIx0w8KKkHp +ENhADoABgOh45UAOgADw75/nwA9YCIkI/wLiFPAgUAgAbx+eGO8Wy0AOgACQKRY3BslQCfgTCYgC +4hTwIE+gAGjv903ADoAAgCgWOC8WOQbfUA/5Ew+ZAuIU8CBPOABp6IBOwA6AAJApFjooFjsG6FAI +/xMI/wLiFPAgTtAAb+kgTsAOgADwLxY8KRY9BrlQCfgTCYgC4hTwIE5oAGgsFirv503ADoAAgCgW +Pi8WPwAkBBmd9S0WV+IUycAOgAHg6hbJwA6AAMHkFcnADoAC8OSA2EAOgACg4gDYQA+YAIrvf+VA +D5gA2uLC58APWA/87y/rQA8oCZPpyefAD1gK/u4I2EAPYAkp7/xNwA9YCJTpYNhADoAAROuU58AS +MAyR60xNwA8oD/Pvz+fAD2AEhOgXsMAPYA8v40KKwA9YDf7uHLNADygLtueZ4cAPYAra7RaxwA8I +CGjpiOtAD2AEpAc5GOqsTcAPYASEAcQE6ADZQA8ADa0N/xPrqOfAEkAMoekJgkAMKAtn5JnhwA8A +C+voROtADwgKCgr4E+lJ60APYAq66pnrQBGwDKEE9BPkIuHAEZgMse2q60ARuAzR6xrIwA9gBITq +metAEkgMoe674cAPYA39Bz8Y7UTrQA8ACjoK+BPtF7HADwAPj+qZ60APYA8v64jrQA74Dy/iEMhA +EdAMseIUscAPYASE6BSzQAwwDdDtGcpAEcAMoe//38APYA397RLIQA9gC+vqmetAEfAMoe4ds0AR +2AzR7YjhwA9gCbnqmetAEcgMoesVsMAPYA3t6RHIQA6AAODqiOtAEZAMoemoTcAPAAtr6ETrQBH4 +DIHtROtADwAKmuuq60AOgADQ6YjrQA9gBKTrHLJAD2AEhOQbyMAPmACl5BWxwAoYBkYrEjXtGrJA +DAAIagFkBOYPhsAMOA486O7gwA6AAJAHPBjv/9/AD1gJj+gXTcAMUAzA6BDIQA8IDQ3su+DADwgM +bOyZ60ASWAzB7bvrQAzYDTLsEshADwANTe7d60AOgADB7bvrQA6AAOLrmetADoAA0Ouo70APmACl +6RHIQAoYBibsENhAEUgMYegRsMAOgADQ7//fwBM4C+LpELDAD5gAuu8QyEAPmACl7hzIwA74D//u +EchADwgJCemI60AOgADk6BLIQAoYBhTA5u//38APmAC66gDYQBIgDNHqEchADvgPz+wQyEAPmACl +7RLIQA6AAMHtANhAChgGB8DB6BKwwA6AANDvHLDADvgP7+8SyEAPmAC67hDIQA+YAKXugNhADvgP +/+gRyEAKGAX7KxJK7qDYQA74D5/pEMhADvgP/+i94MAPgAy07czrQA8ADUvsEchAD2AL2+wQ2EAO +gADQ6xLIQA+YALrqWO9AChgF6u7A2EAO+A//66jvQBF4DNLs/9/ADoAAoOwQyEAOgADB6hLIQAwo +DdjtHcjADwgNDe0RyEAPmACl7QDYQAoYBdouIWHtHbDADvgP/+n/38AO+ADA6RDIQAy4C+Tk7uHA +DPgN0OwQ2EAPYAvL6xHIQA9gDe3tEshADoAA7u0A2EAPmAC66ljvQAoYBcfs/9tAEhgMsQDEBAc/ +GO8PikAMmA227x7IwA8IC2vs/uDAD2ALy+7d60AOgADB7gHYQA74D//rEshAD5gAuu0RyEAO+A+v +6hDIQA6AANDqWO9AChgFsuMA2EAO+A9/7//fwA+YALrtANhAEnAMwe0RyEAO+A/v7hDIQA6AANDs +yopADoAB4uoSyEAOgADB6ljvQAoYBaLsENhADoAA0O5B2EAO+A//6P/fwA6AAJDpEchAD5gAuukS +yEAPmACl6BDIQAoYBZbB5u//38APmAC67JxMwA6AAKDqEshADvgP3+wRyEAPmACl7RDIQA6AAMHt +ANhAChgFiewQ2EAOgADQ7oHYQA74D//oANhADvgPn+kQyEAPmAC66RLIQA+YAKXoEchAChgFfemo +70ANKAz24hTwIC44AgbiFPAgMuABBuIU8CAyoAUGIxYY4xnJQBMAArHnsshAE/gCYZezl7SXtSe2 +Bie2Bye2CCe2CSe2Cie2Cx2b0Byb0eqQkkAQQALp65GYQBFYDIHnEJHAFAACu+sRy0AQCAJm65CT +QA0gBGgYnB3pGMpADwgCheNo70APCA/l5ixPQA9gD4/vEMnADoAAhOgi60APmAD54h/IwA6AAIMP +AgDiANhAG/AAOO3wyEASeAyR6fHIQA+YAJ7mAuzAEgAC7gkSasKY6fXIQBKIDJEoElDo9shADwgI +sui3TMAPYAmJnPTometAEAgCIuMwl8APmACD6ffIQA+YAJfoEPJAF4ACd+io70ASAAL/6BLyQBIA +AqrpEPFAD5gAi+gS8UASAAK77xZMwA6AAJLuGLJADoAAcOcYyUAOgABw4/C1wBaIDP/vGslAEAgD +vg8CAOMZyUAWQAL767CWwA+YADsPAgDjMJfAHGgAOe3gy0ASeAyB6OHLQA6AAqjmAuzAD5gAn+kT +8EASAAL/6HOQQBAIAnfs5MtADwgCuOrly0ASgAyR6ebLQA6AAJFuhAHAkCgSUQiZEQKZAulETMAP +YAiYLuxA4hCSwA9gCJjo58pAD5gAk+IQ8UAPmACL6BLxQBGAAiHiEPBAEgACM+kS8EASAAK7JxIo +53GYQA6ABDTiFrJAEgACdylBKu4TsYANKAEJnXCcchqcLh+cEejgsEAOgAC4m3PvdchADoAAkupa +60APCAiI6nTIQA9gCJiYceYC7MAQwAKXCRJq4zKQQBEAAneIQOIU8AANeACoKSABAJkyACQE7Umx +QBDADMTpCobAENAMtOoeykAQCAxSDcwY6waKQAwQDMDsHcpADQABii9CFBmbjQ/IU+n/5UAX8AKI +CPU42nDrrIFADoAA0evgsEAOgAPw7kDYQAqwDoodmz7AlOsdskARcAzB7QDswA+YANoNAmsNAmsN +Amsem5wAvRHoz09AD2AN1uiiyEAPYA3t7aDIQBBAAvTvEfBAEIAC6g4SaihCFOWmyEAPkA3A7a3R +QAw4CIzorNFAECAC4y8SJy72OSkkAOIA2EAPoAEQAAAAKCIuCJhQKBZHwJDpFsifthAAxgYKUeoY +yJ+2SANGKCIx0w/oCoBAD5gAnugYgEAPWAmvCYgC6BnIn7WgANbm6oJACfgGtOkQ2EAOgACA4hTJ +wAwwCtDqr5fADoAAIOoA2EAPUAipApo44hSxwBSYCYrAgegXyMAJ+A+SAAAA4hTwH/TgARmdcB+b +O+xyyEAQ0AyE6HXIQBAADL7od8hADoABqOpzyEAOgACQ6LvhwA9gD/XvdMhADoAA8ul2yEAPYAv7 +63HIQBAQAjPneJJACfgOTykSJ+OZy0AOgACEKCQA4gDYQA+gARApFjMiFivt+O9ADoAAoOoUy0AP +WA2+7RLLQAn4BYcpIjIJCVPpFctACfgFpQDAgOgWy0AOgADw7xfLQAn4BgPA8O8Yy0AOgACQ6RnL +QAn4BhDAkOkay0AOgACA6BvLQAn4Bh3AgOgcy0AOgADw7x3LQAn4BirsGspADoAA8O8ey0AOgACQ +6R/LQAn4BjQAAAAAGJrCKhYw6ADuwBOAAjEDgmvjANhAFoAMouMfykAWiAyC6BDKQA8IA+XqH8lA +DoAAJOgAT0APCAqF4qrrQBEwDCHqH8jAD5gAqegg2EAPYAOD4xDJwA+YADYPAgDmCk5AHWgAOO2g +yEASeAyR6aHIQA6AAPDmAuzAD5gAngkSauIUycARgAwhKRIv4iCQwA+YAILiEMtADoAAIQnyOemR +kEAPCA+56R/KQBKIDJHspMhADwgCguL/60ASgAwh76VPQA9gCfnipshAEgAC7udwl8APmAAn74LY +QA9gCfnpp8hAD5gAk++lyEAXgAIz6RDxQA+YAPvoEvFAEgACu+IQ8EASAAKq7xLwQBKgDCEnEjHj +g9hACfgMRMDB7QDYQA6AAerpNE9ADvgP/+sET0AOgACA6xDIQA+YALrpEchAD5gApegSyEAKGAP8 +H5s47f/ZQA74D+/sc09AD5gAuuwSyEAPmACl7RHIQA6AAMHuEMhADoAA0O7B2EAKGAPv7BDYQA6A +ANDvwk9ADoAB7uj/38AOgACQ6RHIQA+YALrpEshAD5gApegQyEAKGAPj6ajvQAn4CbTAwe0A2EAO +gAHq5iGzQA74D//oANhAD5gAuun/38APmACl6RDIQAwIBmjoEshADwAG5uYRyEAKGAPT7BDYQA6A +ANDuwdhADvgP/+j/38AOgACQ6RHIQA+YALrpEshAD5gApegQyEAKGAPH7BDYQA6AANDu4dhADvgP +/+j/38AOgACQ6RHIQA+YALrpEshAD5gApegQyEAKGAO76ajvQAn4CRIALUEW70mwQBC4C+TvEsnA +DQgAUhya9OhOsEAQiAy06kKxQBBoDJSWGZ8YmhPrEchADoAApekVyEAOgAK46BfIQA6AAJDpEshA +DoAAgOgUyEAOgADw7xDIQA6AAPDvFshACrgAg+MXyj+JSAFmIhIm7hOxwA74CZ7s6d/ADoAAMOwh +0EAJ+ArZAAAAAADpANhACfAPtCsSUdrA7aTYQA6AAMDruJFAChgKtOJP38APoAEQAAAA6lDYQBEw +DCHsvE5ADoABuOMXykAKuABpLhJT5iHQQA74D5TjANhACfgKgQAAAAAA6lDYQBEwDCHsDE5ADoAB +uOMXykAKuABdLhJT5iHQQA74D5TjANhACfgKUQAAAAAA7HtOQA6AAKXvTbBAEGAMlOkQyEAOgAK4 +5hLIQBKQDIHoEchACrgATeIU8D+CiAFm4xfKQAn4DyRsEAosIAcYmcAPAgAMDEHu+01ADwgGzKhm +KGI6LQoD7s7jwA6AAZXu67UAGCgLmCtiOQ8CAA67Aeq470ANEA/LKzADF5py7MBOQA4YAIsvQhQP +hVOVF+z15UAMOA/84hTwIA0IAw/AUC1BKhuZsOkbTUAOgADi74DYAAkwAQ3vo8hAEAAMgpelHZp9 +6aLIQA8ICIjuiOtAEAgMk5ihGJmm66DIQA9gCdnppMhAEMACmugC7MARAAKqCRJqslWJQOIU8AAJ +cACpKTABAJkyACQE50mxQBDADPTpDYbAENAMtJ0aB/8Y5zGwQAyQDrDuGMhADBAP8O8ZyEANAAF9 +KEIU0w8IyVPsiOVAF/ACmQmHOO0Q2EAOgADk66yBQA6AA/DrILBACrAM2x2ZjxiZ9OsZsEAQQAyR +7QDswA+YANrtEvBAEFAMwQ0Caw0CawCyEe/ETkAPYAIp76LIQA9gAoLioMhAEEAC5O4R8EAQgALa +DRJqIkIU56bIQA+QCMDordFADDgCLOKs0UAQIAL1wCDvactADoAA5O4w0EAPoAEQAOIU8B/4yAEd +m6AdmavoSrFAEAAM8pilmKfo/+HAEAgMg+miyEAPYA/v76HIQA6AAfjvo8hAD2AI2OikyEAOgADw +76bIQBAQAlXqqJJACfgO0MAg5WnLQA6AAJTpMNBAD6ABEBmaKegxsEAPmAC66BbIQBCwDPTvFchA +EVgL5O4UyEAOgADc6RHIQA6AAMjsEshADoAA4u0QyEAOgADB77FOQA6AANDqiO9AChgC0ukXsEAO +gADk7WFOQA6AAPDsFLBAD5gAuu0QyEAOgADQ7RHIQBAwDKHgzOHADoAA0OwQ2EAPYAnJ6RLIQAoY +AsLlEshADoAAwe0A2EAO+A//7gDYQA+YALruEchAEDAMoe8QyEAOgADm7wDYQAoYAraLFe0A2EAO +gAHg5RawQA6YD//rbItADwgLa+sSyEAPmAC67BHIQA7gAKDqEMhADoAAwepY70AKGAKnwMHtANhA +DoAA4O8g2EAOgACA6BDIQA+YALroEchAD5gApegSyEAKGAKdHJlV5fDYQAn4DT8AAADrANhACfgN +BNog68iRQA6AAdXsANhAChgJueJP38APoAEQaLMqwZZ5sRXGuusx0EAO+A6a5QDYQAn4DWUAAAAA +6enfwA74Cd7tMdBACfgP6C00AOIA2EAPoAEQAGwQGC0gBxeY3Q0NQe/dTEAPCAXNp1XoWrNAEEAM +tA/fCi/ym+v3gSAQIAZILlI5Fpm+7+zlAA+wD/4oYY4ZmObt/9/ADQgCmOoQkwAE2AAL6SLswBGA +AqEKEmqOSe4eyEAQgAy06x/IQBCYDPTvEslAEIgMpOoQyUAQkAyE6BHJQBBoDKTqFMlAEHAMhOgV +yUAQeAz07xbJQBBgDLQrFhPpIuzAEFgMtOsXyUATAAKhChJqLBYlLRYbLRYcLRYdLRYeLRYfLRYg +LRYhLRYi7RPKQBIYDPbvGclAEiAM5u4ayUAIAABSAAkAaAoCawoCa45JLhYUi00rFhXpAOzAEGAM +pCoWFuwVykAQWAyE6BfJQBMAAqEKAmsKAmstFiEtFiLtE8pAEhgMhugfyUASIAz2LxYgLRYjLRYi +7RHKQBGAAqHrEJLACmgOoylhbywSJeuo7wAHoAqaKmF67WurwBBwBquq3eIU8AAG+AzbwGDrILBA +DhABF+0A2EAOgADk7wPYQA+YAKzsaO9ACrAL3x+ZSelMsEAQsAvU60qxQBP4DP/rp8hAELgL5O6j +wEAQaAyE6KLIQBDIDOTpo8hAEEgMlO2iwEAQwAyE7YVNQA6ACMDom+DAD2AOzumJ7UAQAAzC6ajI +QA9gCGjopMhADoAAke6lyEAPaAz866nIQA9gDNzsoMhADoAAtCogBogiK1Y56TDQQBAIAqrqJtBA +D2AImJgi4gDYQA+gARDaIOvYkUAOgADA7WDYQAoYCRniT9/AD6ABEAAALUEW5kmwQBC4C+TrFMpA +DRAA1xyZLOtOsEAQiAyU6EKxQBBoDPSWGJgT6xfIQA6AAKXvFchADoACuOkRyEAOgADw7xLIQBEg +DJHpGchADoAAgOgQyEAOgACQ6RTIQA6AAIDoFshACrAOuioSJOwVskAN8AtKACQE5zGwQBAADLIW +mInuRLFADvgJ3u0x0EAPmACs7EqxQA6AANHoSbFADDgP7Obu5UAQwAxk7/6XwAyQAsDsrIFAD1AH +/u5A2EAOgAPwCGYY5gaCQAqwC30ZmDDpAOzADoAAg+mo70AYOAA4CQJrGZiRAGgR4g9MQA9gCILi +oshAD2AImOigyEAQQAL07xHwQBCAAuoOEmotQhQsCmIspB3npshADDgN3O2s0UAOgAC061nLQA6A +ACDrMNBAD6ABEAAAAAAAAO0A2EAOgADm74TYQA+YAKzsaO9ACrALWxiYxuxBsUAT+AyInKMrQhCb +oilCE5mlL0IS76TIQBDQDNTtrchAEGgM5O6nyEAQsAvk7qLAQBBgDMQemNacpuxJsEAQeAyU6anI +QBC4C7Tro8BAEHAM9O+oyEAPAA2M7a/IQA6ACLDpSLFAEAAM0uyM7UAQyAz07K7IQA6AAMbo3ejA +D2AJaemqyEAPYA+/76vIQA9gDe3toMhADoAAoSsgBokiLFY56jDQQBAIArvrJtBAD2AJqZki4gDY +QA+gARAAAAAAAAAA7NpMQA6AAKXvTbBAEGAMtOsQyEARIAyR5hHIQA6AArjpEshACrAOQy0SJOwV +skAN4A2tY/4iAABsEAoFCEfmOO8gBmACCIki0w/NkikwGGSQfeIU8CAEaAEJaJMPaJQl4gDYQA+g +ARAAAAAAACU8GOtY70APmACi7DjvQAv4CZJkoHxmr9kal6QdmDErokrt37PADQgIWyyiSe3L5QAL +0A/cLiAUDk5k7iTRIAxgDC6KJ9tA7ADYQA+YANTqoJJAChAN9+Ko70APoAEQAAAAAOs4kUAPmACi +7DjvQAv4DrBj/5zaIOU4kUAPmADD61jvQAv4DcgrMBhps4Rj/3EAACwwGOIU8D/6yARcY/90jzgt +MRbjObBAELgL4+/lgUASyAAPHJhr6W6wQBCIDIbvYrFAEGgMtpMYmBHrFchADoAApe8TyEAOgAK4 +6RfIQA6AAPDvEshADoAAkOkUyEAOgACA6BDIQA6AAIDoFshACrAN8WAAIgAAAOx1TEAOgACl722w +QBBgDJbpEMhADoACuOMRyEAKsA3ngycn+sDrNalAEEAMw+0wkkAQWAyj59flQA6AAPCnu+uwkIAE +QAjKKDkUDE4RrOquiOg0wQAEWAuryWvTYOnI70ANAAF0bUkFAwNoCQJritAPAgAPAgCuquIU8AAF +YAi6mtDjyO9ADQAE9S80GC80Ge870UAO+A+/6zfIQAn4DjLaIOvB2EAOgADA7RDYQAoYCAXiANhA +D6ABEAAAAAAAAOoo70AL4AMLY/5snzvjqO9ADngLlcDD7DjRQAn4D7IA7LvowA0AAzYLQxS4OOhI +5cAPmACW6sjvQBhQATgJA2kKQmsLaQgDSAzqcJDAGFABOAkDagqCawvpDKl5KZxA6dDIQAn4D18A +KnxA6tDIQAn4D1MAbBAOHpgKLCAH6CW4QBMAC34mTALqM7hADBAMwOcXgCAAeAgI4gDYQA+gARAA +AACNIuUVyEAOEAidLyAWKAr/6hPIQBDoBI8sFhEFC2zqKO9ACgADriwSEe5fS8ANIAKKHZf0GpcC +LdCADMsRqrst3DfvurNAD4AN1A1tCbLd4hTwABKwC98flvoPzwrpubNAFNgM/+sUyEAPKAn55Zjv +QA0QBEkookrTD2SB/+zusUASSAya7JvlAA+gD8kdl97rEshADhAGxyowIC8K7eIU8AAT2Aj6KArs +4hTwAA4ACIrAnnmhCisK7uIU8AAbwA66wMDsGchAEQACo8DQnRgZl87oLLpAEGAMshyXS++gsEAQ +uAvSHpfK7M+2QA8ICAjp/+VAD2ANje4A7MAPYA397RrIQA9oDMvsbO1ADoAA0Q3OYOIU8AARmAjs +wMAtIBbu/9hAEQAC8+8byEAQ0ATtnB3q+O9AC9gPQNug6ijvQAoAAzmMHS8hBxiXtOkrS8AMoA/w +DP8R7upLwA9gD4+fkI0gDs4K7uCwQA6AAMDuk8hADwgNjeyVwEAPYA3W7ZHIQBCAArPrEPFAEIAC +qeoS8UAQGAyB6J/IQA4IDbfewCggFAhIZOgk0SARWAwoixUnTP4MehHqF8hADHALsJsWH5eV3VDs +ANhAD5gAv+sQ8kAQCALM7RLyQB+gBCyNFixcQA8CAOsA2CAG+AJd7RuwIACgAgTtEPNAEAgCu+wS +80AXoAh7wJCPGNMPZfDfiBmPF6hYpf+FGuWAyUASAAL/5fjvQA0AAc4al32IGg9mEeqI60AOgADg +6BrIQAn4D4SKMdvw6RHIQBAQDEPkLMkADPACGsBQ6RHIQA2IC7qla4wU0pDryctAD6ABEADtAthA +EgACo+0ZyEAJ+A5S2iDrwdhADoAAwe0Q2EAKGAc12iDrOO9AD5gAxO0VsEAKGAIg4qjvQA+gARCb +FOkA2EAJ+A2+AADryJFAD5gAouwQ2EAKGAcnY//GiicuFhCZEeqgkkAOCAx+wLLtSO9AChAMuYsY +LhIQ6ajvQA14AkuNEO1QyUAOgADA7FLJQAn4DxIoICwDAmbtBuzADwAISCjm4A0AaOEU8EAJ+A2A +AByXQYk46wRLwBEAAtPtGMhAEYACo+wB2EAPKAnJ7BnIQA9gCbnpEMhACfgNiSywAOIU8AAK6AOM +LAoAL7AB4hTwAAvYA4/AkA+eEQ7MAmfNrmR8g2AAzQAdlyQclyEBE2kNQGcpICwswt7gme9ADoAA +geyJh8APoAgI6YjlQA6AAP/iFPAABlAPjy4wEOIU8AAMwAP+DAlC4hTwIAZgAQkonP7vENhADoAA +4Oj+5sAJ+A3UAAAAAADuEMlAD5gAousSsEAL4AHr7hCxQAn4DcUA2iDn+O9AD5gAv+xI70AL4ANZ +6jGwQA+YAFoMWxGre+kRsD/yaAB66ijvQA6AAMDtSO9AC+ADMaWsrGyNFIIR7NnLQA+gARDaIOs4 +70AKaAy2ZHuyHZbw4BTyQA6AACDtBO7AD6ABENog68KRQA6AANDsENhAChgGv2P+JAAAAOwIgMAO +gADx6IuXwA6AAODo/ubACfgNHxqWX4ka6pnrQA6AAODpGshACfgNCsCy7UjvQAoAAIGJEe4QsUAJ ++A1dCwFo7TuoQBAwDOMNDz8ODj8LAGsMCEQPMmnqHsgABPgJj+wQ2EAJ+A6EAACJouIU8AAFaAA5 +CcoUCxFqCxBpCg5J6ejvQAxADfAJkmjqENhAEDAH2cCgevcM6ajvQAgAABQAAAAAAO8Q2EAOgACQ +Cvk47BzIQA5wA/mMMtog6xDYQA6AANDsDI/ACmgMXYwc6f/fwAn4DiMelrgtMgQPAgAPAgB+0Qfu +ENhACfgMRy8xCmny8e4A2EAJ+Aw5jDLqKO9ADoAAsOwMj8AKaAxM6h6wQBBgDLLs/9/ACfgNzx6W +qC0xDn7ZDuo/qEAJ+A9NAAAAAAAAAOIU8B/t0AGfnBzuDopACfgPdQAAbBAEjScMThHrKO9ADvgM +8OrVqUAQQAyN7NCSQBBYDC3m1KFADygP/K+q6qCQwBJwBIKo6Q5mCObUwUASyAeayTriOO9ADQAB +hOOI70AYUAE0AgNoAwJrKcIADpkIepF7mcDIXgrqMCq2F+KI70APoAEQAADiiO9AD6ABEOgo70AO +gADA7NvIQA54DcVj/+QAAAAAAOip6MANAAMzCUoUuK3tTeXAD5gAI+eI70AYUAE9AgNoBwJrCTII +CkYM4/CQwBhQATYCA2kDQmsJ6gyq+iqsQOrAyEAJ+A+LAC38QO3AyEAJ+A9/AGwQBOtI70APCA/F +7CGwQA+YAILuDN/AECgL0uw54cAPKA7iCcIIDtoI41TowBIAAqrp/+jAEXgFosn/DEYRpiZ2oyjJ +RW1JBQIDaAsCa+KBsEAPoAEQAAAAAAAA4sjvQA+gARDtIujACfgP0QKnDAdFFNMP47jvQBhQATUC +A2gDAmurcwVJDOLgkMAYUAE5AgNpA0Jr4oGwQA+gARAAAABsEAQpMBUsIgcCKALrDN/ADFAJkOrA +kkANAAvF7DiwQBAADEOOOe0g2EAQWAxT5ASIQAywB8TsBoLADAAO7u7d6MAQSAvjp2bkQJbAD6AC +He2CSsAMOAfA5InCQA+gBwfncErADxgGduZukEAM8ARA5ojCQA8oDNzmBo7ADygFdew4yEAPaAVl +5TfIQA0ACoTrrOVADQgICSShBS0wEaxMrt0NnQmy3Q0NTyLcEKIy7MCQwBGAAlLtjMIAC0gJxeI4 +70AQYAzS7YjJQA+gARAAAAAAAObEoUAQqAvc5ciwQBBYDCzsTuHADygPuq/d7dCQgApQCFKl4q5m +5sTBAAqwCy3JNslEAzIC41jvQBhQATQCA2gDAmuCoA4iCOIU8AAL4AjSkqDTUAbqMOaHyUAJ+A7t +ACShBSI8QOmAkMAPKAe6p0frENgACCAKc9ogCgNoCQJr5IiqQBAIDFKKI+leScATUAVUJIYRjCEd +leOqSuTM6MAQEAxS7CHIQBFIBUosghCaI+nM5UAQCAJV5SLIQA9gDLztzOtAD5gAI+yAyUAPoAEQ +LIIQHZXU5SLIQA8oDJzqI8hAD2AMvO3M60APmAAj7IDJQA+gARAA5rxJwBCoBFQighAGIgIihhDi +OO9AD6ABEC+CEAn/AQv/Ai+GEI0gLhoA5gxJwA9gDe2dICKCEAYiAiKGEOI470APoAEQAAAA4jjv +QA6AAJDpjMJAD6ABEARaDOqgsEAPmAAj6ojJQA+gARAAAAAAAOMo70AOgADQ7cvIQAn4DuDkIujA +CfgO/OXc6MANAAMzDE0UuNbmRuXAD5gAI+dY70AYUAE2AgNpB0JrDDIIDUYM4/CQwBhQATYCA2oD +gmsM7Qyt/S3cQO2gyEAJ+A6PAC78QO6gyEAJ+A6DAGwQDNpQ5BfIQBAADFPiHMhAD5gAhu4csEAP +mAD35QWIQA74D9DlGMhAD5gAI+VfkEAQOAzu7V3lQBAADDei1+blqUAQAAxG6QzfwBEAAu4J6QGp +aedwkkASAAKZ7HjvAAzgCZeYFJ8TmhWeEp0RGZR56geGwA+AC1TsduHAEGAMUalmGZR1nBDud+HA +EDgLVal3lxYXlHnrGshADKAFUOxV4cARAAKS6RnIQA9gBXXlG8hADoAAcOUsqEAIAAA5AAAelVUu +4IAu7DfsarNAD4AO5A7dCC3cBuIU8AAHgAvcLBIGK2I5LMKbDLsB5LjvQA0ADkuLEeNV5cAQEAyh +7VjvQBAADMGku+uwkUAL4AMup1eLHIwY6hqwQA+YANruJ7BAD2gDU+8csEAQgAKUCt0I5e7owBBY +DIHuJ8hAEAAM/+hAyEAQCALd7EPIQBBIDIHu1EjADwgPj+5CyEAPYA/970HIQBhQAToIA2gJAmsr +shXsJ7BADgACa8rLLiEMLWY57RewH/nYCeOPE4IUl/CUIOIA2EAPoAEQAAAosQCxiOiwwEAJ+A/V +KSEMBZkMZZBRixSKE+SwyEAPmAAt56DIQA+gARAAAAAAAADrANhACfgPHIsV7BDYQBBgDKHruJFA +ChgE5Y0UjBPk0MhADvgPJOfAyEAPoAEQAADmfOjACfgOZB+UQugpqEAQiA2i6yW5QBCgDZIuIRao +rKuZqVmqSqirrJyomCxFC+mywUAQ2AT+jhSMEyilEeTgyEAPmAAt58DIQA+gARCJFO+IlcAQGAwh +L6USlJCXIOLY70APoAEQAGwQBIon6CjvQA6AALDpoJJADQAGdRaUJOI5qEAQiA1D6TW5QBCgDXPl +NqlAEGALw6JKqXesd6Q0okmnqqJyKjUT55rBAAToCGUiRRkqMBXtOahAEIgNw+I470ANAAfaKzAU +rcysu6s7K7wy64XJQA+gARAAAAAAAO2lqUAQQAxa7wzfwBBYDCrmpKFADygP+a/d7dCQwBK4BFIM +ThEF7AgOZgjmpMFAEogHzck84jjvQA0AAaTjWO9AGFABNAIDaAMCa4yQDwIADswIfcFxnJDjWO9A +CfgPQdIw64XJQA+gARAtLNjtSsFACfgPY9Mg66vIQAn4DyIA5drowA0AAzMKTBS4xuZG5cAPmAAj +51jvQBhQATYCA2gHAmsKMggMTQzj8JDAGFABPQIDaQNCawrmDKb2JmxA5pDIQAn4D5UAKvxA6pDI +QAn4D4kAbBAEJiAH5atLQA6YAnAHZx0oIBaldSNSt+CJ70AOgACRAJIacjg/GJOfDGYRqGaKYChS +uAolAeWV54AAYAWC4FLhwA+gARCEYeQEj8AOgAAx4gDYQA8oBEIEMjgCUgHgIuHAD6ABEBOTlQiC +CQwiEaNzoyIiLQrjIq3AFogLIuMi5UAPoAEQAGwQBCogB+xYSMAOmALgDq4dKyAWrOwowrbgue9A +DoAA0eRIS0APoA0N4tdIgAM4BdgYk3oIuRDsr+HAD2AJk6j/mfMowrd40EeD8gMDX+nysEAO+A+P +CNgDCDMBA9MC4DPhwAzwCZADmQKZ8ijCuAjYAijGuAjqMKTpC7MJDDMRo5mimSiWdoPxAwNfyDFY +AfDRDwCk6Qu6CQyqEaqZKZ0KKJHR44jowA6AAKAKiDXokcXAD6ABEABsEAQnIAfmpktADpgCgAh4 +HSkgFqaGI2K34JnvQA6AAKEApRp1ODYYk08MdxGod4JwKWK4AlIB4qLngAAwBZXRD4tx6wuPwA6A +AKHrW+VADoAAkAupOOki5UAPoAEQHpNHCZ0JDN0Rro6u3S3dCu7SrcAWiAvNLdHVDswBfcsM4gDY +QA+gARAAAAAAAOKo70APoAEQbBAE4gDYQA+gARAAbBAG7Ce4QBAQDIIdlB8aky3sDIJADgAMeC3Q +gAzGEQpmCO5qs0ARuALdDU0ULdwC4hTwAAbAC94ekyQPAgAOzgrrabNAFNgM7g67Aee470ANAAxL +L6JKGZOp0w9k8Jbpn7PAEkgMiumL5QAEWA+YKiAUCkpk6iTRIAWYDCorIATs/9ggAYAICwUMR2jC +HYon20DsANhAD5gA1OqgkkAKEAlr4qjvQA+gARAAAOIA2EAPoAEQKyAsfLHNiTHtMrBAD5gAt+0s +yQADeAIZ4wDYQA2ACNnjactACfgPsNog6zjvQA+YAMTtWO9AChAOr+Ko70APoAEQ2iDrwdhADoAA +we0Q2EAKGAO4Y//QAOsA2EAJ+A8868iRQA+YAKLsENhAChgDsWP/tAAAAAAA6ijvQAvYDrlj/0Wd +EOoo70APmAC37NjvQAvgACiJMeyr4cAQAAzRq3vjqO8/+9gAedog7ADYQAvgAAOjo2P/Z2wQBBOT +SCMyrwMiDOJi7UAPoAEQbBAK70KwQA6AALHlEchAEEACdO4470APmAA27hLIABL4CH8ek1MVkyzj +EMhADvgPj+Ap70AOgADA7BTIQA+gBgvmE8hADoAAwAhmA4nxi/CbkIrwKP3+mBaZoZzx7PDIQBPw +DIjj77PADoAAIO8VyEAOgACx7UKwQA8ICJioM+kysEAOgACg70CpQA9oDX3tuubAEIgLhOoXyEAP +KAlp6TLIQBA4DJPlQsFADQAMmI+cLZkU6JCTQBBIDKno+OjAFkAC/+jy58ANAApNmhhlIEyKGOUQ +S0ANAAOKGZLiKKAACYgKKIIQ5c9KQA6AANPsp7hAD5gAuuo470APoAAY7UWpQBCIC7TqGMhAE4gH +28wrjxhl/7fsMrBACAAAbBmS0SggAAmICiiCENsg6jjvQBA4DcLtQNhAD6AAGOxFqUAQiAu04qjv +AAp4C8uLNy25FMjd6rmwQAgAAA0AAAAAAAAAwKDqGMhACfgPaeoA2EAJ+A9c70HBQAn4DzeMMszE +ZSBaZaBXGJNxfIBH6sjvQAqwBuTAIOz/38APmAC66jjvQAoYADntMrBAEBgMwYtC7czrQBAwDKHs +MshAECgMkZmxJ6aBK6aAmULiQsFAD6ABEAAAfsckx+0OzAGcMooTiUHsqutAEDAMgeoyyEAQKAzx +n5AphoEkhoCfQYsXwMDsQcFADgAKO40Usd3tFMggAHAELY9C7m1KQAn4DjKOQHTpWI8X4xCwQA0A +BT8YkliJEe0SsEAO+A//6gLbQA6AAOHqmupAD6ACE+Du8MAWAAzND+4DqogOzAEs1sAogrYakjkM +mRGqmYqSCgpfAKoRCogC6JLIQA+gARAA0Q+PQHTxqdpA63jvQApoCfzAse9CsEAJ+A2QjDJlzull +rz6IGGWPOWP+3ixBEI0RH5ImG5I46ALbQA8IDs2v7ujd6kAQAAzxq9sI+RAJzAKc4ymyuOwQ2EAP +oAIfAMwa4hTwH/nwD5yK4goKX+nisEAO+A//D88DD6oBCsoC4KrhwAzwCZAKmQKZ4iiyuQjIAii2 +uQnqMBqSEo8QqtoP/wkM/xGvqiqtCymmJYjhCAhfZI7t6hGwQAoAAJFj/uIAbBAIBmQJDEQRpDTj +EMhAEAAMxBuSEB2R/O4Q2AAN2AjEE5KE5wDYQA6AAKDqFMhADpgCgOhY6kAPCAnFrZnpEshAD6AC +EuDp8MAPoAIWq4joE8hAD6AFDuURyEAO+A+vCpUDi8GOwJ6wjcCb0efByEAX8AOs58DIQBPwDKop +Mn/rQLBADoAAIOmq4cAOgABgqpnsl7BAD2gLS+iSsEAOgACh6RXIQA9QBrrqybBAEGAM3OWI5UAQ +oAq86JLIQBGAAuzu3ujAFkAC3e7S58ANAAirZSBCyawZkhQooAAJiAooghDA0+ynuEAPmAC66hWw +QA+gABjNL2Wv140SjhOMEY3QLuK47c3lQA6AAIHtjeeABDgF7GAARxmSBCggAAmICiiCECwgB+oV +sEAPmACy7UDYQA+gABiJFYmXK5kU4qjvQA0AAOvqmbBACfgPiwAA6gDYQAn4D4HqANhACfgPdmXQ +UI5AdOlqiRCKESiSwOv/38AQGAzxC6oDCogBKJbAL/K2iBKJggkJXwCZEQn/Au+CyEAPoAEQiRKJ +kYgR6QmPwA6AAPHpiOVADoAAwAj8OHzQrmVvq4wUsczsFMg//SAELOxAsEAOgABw46FKQAn4DpTR +DwAAAOTISUAOgAAh7NhKQA6AAKTtWO9AD5gAe+sC2EAKsAgLjxDtAttADvgPn+1d6kAPoAIW4Cjw +wBYADO8JiAOn3QjuAe7wzMAPCA7FpO4t0raP4g8PXwD/EQ/dAu3iyEAPoAEQAABsEAQUknYoQmYj +Qm6iiAmIEagz6ijvQApoCUQfkWwckX7uAttADwgNwq/d7i7qQBAADJ2uzOvJt0ANAAJ5yaPoxrcA +AOgNuonSCQlfAJkRCYgCmNKKN+qgkUAKEAm/0Q+CNyIsEOoo70AL4A8saKED0Q8AAOoo70AL4A9I +EpJZC6gRqCLKrQzqMCsihYuwsKKsu+oo70AKsA22KkKY6xDYQA+gAhIAuxoLqgLqSM1ACrAN49EP +wKfrENhAChAKdywif+wjzEAPoAEQAABsEAQTkkUjMn+iMtEPAAAAbBAE4gDYQA+gARAAbBAE5PNK +QA6YAlAFIigYkTukJORLtUAOgAFfA1UMqCJ1RRgDNAkMRBGkIiItC+IgqcAPoAEQAAAAAAAA4qlJ +QA+gARBsEAbs8kpADoAA0uozuEAOgACQ6P/fwA+YAFLoVtFADoAAIOJbwUANEAdawO/uEMhADyAE +OikwCB+SI+IU8CANkAspD58Kj/AK8ACGMwaHQup470AMcAZg62jvQAqwBIEckhjnXNBADoAA0uZd +0EAQOAuK6FfAQAgAAXyJM+IU8CALkAhZ7VfRQAgAAWqKM+oQyEAIAAFgizNuuAfirt/ACAABUypQ +B+oKgkAKiANo7EBKQA6AANLqVtFACAABOAAAizPrVtFACAABLIsz4hTwIAkQBAtoti/qgNggAaAF +C2i3LO6Q2CABSAgL4hTwAAggDusvUCDAhO1V0EAPYA+P71DSQAgAAO/tVdBACAAA5ylQIAqZAulQ +0kAIAADZAACLM+tbwUAIAADNjjPuWsFACAAAw+jNs8AUAAycjzMAkASo/+//l8APkAiA6P/lQBQQ +DIwPDxkN/zfo/+XADoAPjwj/Nu9T0kAIAACLiDPoXMhACAAAgelSukAQGAyzm1nrW8hADoAA4e/A +tEANAAJJAPEE4O7wwBf4Aqnu75fAD6AKCqq6DqoC6lrIQAgAAEfrWshACAAAPwCIM+hYwEAIAAA0 +G5HBijMpUAerqyuwgC4K++6Z5UAPCAvr65nrQA6AD7wLmQEKmQLpV9BACAAABsYquDPiFPAf8eAO +QylRG4sQHpEXKsKAALEE71O6QA+gCA4AoAQICBsNiDcI/zbvU9JADgAGKS3CfRyRdetaqUAQsA2l +H5Gh7czlwA6AD9/oAttAEyAE2i1QBw0NQQjdHK/fL/KbwY8KiAx49SkekJYKrwkM/xGu3q/uLu0L +LuFQDsg2C4g3C4gsCLgc6FvBQA+gARDRDwAOyDYLiDcLiCwIuBzoW8FAD6ABEMCv6hDIQAn4D14A +AAvNLA29HO1bwUAPoAEQAABsEAzoJLhADoAA0+sQ2EAOgADw6ldIQA+YAGPlCYagESgCCOUeyEAX +8AJ557fnoAjIAgkuIAfTDw4MQY8i5WDYQA4IDn8rICELGULoUNhADhAFmZgcKSAX7gDYIA3wAgnv +YNhADoAAkewLhsAMcA7g7LXhwA+YAI6qVenY70APWAjp6PnnwBHQDIUfkQ7TD+kdyAAS6AuYD78K +61mzQBW4DP8PAgAPuwHquO9ADRAEyyggFKSI6CTRQA0AA37qILBADoAA4OlwSUAOgADw6RDIQA6A +AcjsEshADoAA0O0RyEAOgADB7QDYQAoQCeItCgOOYOIU8AAQuAKuKyAh6xjtQA6AAPfiFPAAFLgF +j8p/3UDqJ7BADoAPwewA2EAPKAvL6yHSQA+YALTqoJJAChAGkOKo70APoAEQAAAAAAAAAOIA2EAP +oAEQKSAF4hTwIBPIAQniFPAgE8gHCeIU8CAZ8AgJZZ7MHJDrLsJ/ZOY4KcJ9i5GIkJiwjpCb4Z+Q +n5Eown+wiCjGf+sgsEAX+APJ687LQBfAArmbJy8kIC8kIerRSUAOgADQ7STRQA6AAOguJAUtJBft +K8FAEIACW+0qwUAL6AkMHJETHZBtHpET66jvQBAADPLqWO9AC+gIwYUnJVwQ6ljvQAvgDdPiFPAg +KAABCiggIenv2EAPmACi6YjlQA+YALPoIdJAC/gO0BqP9u0w2EAJ+A4dLyA5wLHvvubACfgOPQDa +IOs470APmADE7R6wQAoQC6XiqO9AD6ABEAAAizCZFesLhqALIAIJ7ie4QBAQDMLuC4JADigJLAy5 +EaqaKKI64hTwICt4A0gZkJUJuQroqbNAFbgMmemM5QAqyA+YKSAUiDCkmekk0QAruAKoihXiFPAg +L2gCWuIA2EAPoAEQAOIU8CAJYAEJ4hTwIApQAgniFPAgHyADCeIU8CAhEAQJx8UM+VDoENhADoAA +sO9w2EAOgADlDP47CYs47hzIQA5oButj/zkAAOsA2EAJ+A202iDryJFAEGgM0ewQ2EAKGACBY/8a +KCAH6SCwQBBIDOLuqMhAEFgM8u+pyEAQQAvi71xHwA8IDInoC4JAD2AM3OyhyEAPCAsL7CS5QA9g +Dr7vmetAD2AO/ummyEAOgALw76PIQBBgDLHpi0fADAAIgu6kyEAPAAyM7ppHwA9gC8vuoshADoAA +wOylyEAPAAio66fIQA9gCJiYoCwkFIsd61nLQAn4DV8AKArxCLsB6yHSQAn4DWMAAGS+nAO3C+6Z +SEAPmABj7hjIQAgAAWIAAOL470APoAEQ6yewQAn4DczoK7BAEEgM8njxCcCS6SLIQAn4Dt8uCvHu +vuVADoAA9A/uAi4kIQwLRwy+EaruL+I64hTwICS4A08YkCwIuArv6bNAFbgMiJ4X6PvlACP4D4+K +IByQR+wQyEAOgADQnREpYAPA4e8A2EAOgADA7RjYQA8ICUnpEshAChAJCBqPZC8K8esmuEAQOAzB +6CKwQA6AAJHuIbpADoAA0+3Jy0AQCAK76ybQQA9gCJjoIshADygO/u4h0kAPYA5e7iHSQAn4DjEA +AIsn5riwQA74DIDlsJJAEKgL6+hY5UAQWAzLmBao7u7gkIAgOAhsKbkUDEcRpnynmem0wQAf+AvO +yTfZMOto70ANAAE0bUkFCQNoCwJrLFIAB8wI4hTwACEwCOycUIlgCQlHZJGBBpcL62RIQA+YAFbr +G8hACAABF8DLfKFHuGbiFPAABwAIdipgCGSgpWihdGii6WijZGmp3oljbpPeaZPbjifvDN/AEQAC +3u8A2EAPKA397+TBQBIAAt2d6e3oyEAJ+A+8jyeNIOkmuUAQEAzi7/ShQA6AAKXpEMhAEEAMwehj +sEAOgACw6BHIQAqwBZ6IY+gm0UAJ+A+GiWPpKMBACfgPfByQG4tjKiAHrLwswIAtCvvtquVADwgM +7Oyq60AOgA/MDKoBC6oC6ifQQAn4D06LYwuKQuoZyEAMcAuw6xrIQAqwAnKOGe4s0EAQUAzR7S3Q +QBA4C8rsJ8BACfgPHwDqr0bADoAA0+8A2EAJ+AxE6iDYQA6AArjsG7BACrAFeRqO8rhVd1FZLVAI +aNEhaNgOwIt42dmJU+km0UAJ+A/ni1PrK8FACfgP3QAAAAAAAOwhukAQAAzmiFPpAN/ADoAP0e3M +5UAPKA6e6O7rQA6AANLuYMhAD2AM3Owh0kAJ+A+lwNMrIRtksK0uIAcODEHnENhADoAAg+geyEAJ ++Amf4hTwH+EgA/+JYCgK/AjoAe8A38APYAiJ75nlQA6AD/HoJ9BADoAAiO+/5UAPYAnJ6WDIQA9g +D4/vIdJACAAADAAAAAAAAIlg6QyGwAn4C97qWO9AC+AMsBWPwQuoEahVZKDCDOowK1KFi7Cwpay7 +6ljvQAqwCx4cj8Mqwn/rENhAD6ACFQC7GguqAurPy8AKsAtKY/q9AAAZj7wbj4MuIAfnJrlAE/gM +mSUhGuj/2EAMEAzg6bvlwBIIBIfpqkfADpgCgAjIHJgUqYgogpvBnweZDHmFGRiOookUB3cJDHcR +qJmnmSmdC+mQqcAIAAAHGY8GCbs2Bbs3BbgsCFgc6CvBQAn4Du0AKcKAjpGLkJvgiJCegZ+Qn5Er +woKwu+vCzEAJ+AnGwKfrENhAChAHuSxSf+xTzEAJ+AodK7wY6ijvQA6AAMHtMNhAChAPSNog6zjv +QA+YAMTtWO9AChAKM+Ko70APoAEQ5imwQBBAC4LmyMhAEFgMcufJyEAQAAxSn8XnaEbADwgDC+OI +60APCAaF7WbrQA6AADTmwchAD2AIeOf3RsAPYAV15cbIQAwABuLoxMhADoACUOXDyEAPAAiJ48ZG +wA9gCDjjwshADwAGpujHyEAPYAZ2lsAvJBTtqctACfgKEgCKJ9tA7UjvQA6AAMDqoJJAChAEteKo +70APoAEQ2iDryJFADoAA0+wQ2EAKEA8W6sRGwA6AANPsT9/ACfgKCJ+75sjvQAn4DC7m7OjADQAD +QwxOFLjo6EjlwA+YAJPraO9AGFABOAkDaQtCa4sWrDkOSAzrsJDAGFABOAkDaguCa44WDHgMqO4u +7EDuUMhACfgL5IkWKZxA6VDIQAn4C9cAbBAEiScoIAbTDyuZFCqcIO2ZsEAX+AKI6AiGwA0AB0vo +JtBADQAAyOIA2EAPoAEQ7KLYQA0ABK0r0AB8uT/vDN/AEKgL6epPl8APKA/67KvhwA74D4Cv7u7g +kMAREASDq9vp0JFAEIACu+gwkUARaAe+aEEIbakFCANoCQJr2iDrENhAC9gMEeIA2EAPoAEQ6CbQ +QA54CUhj/+IN7Qws3PAMTBS4ywurNm25BQgDaAkCa6PYDEoM6fCQv/4YAQqwrW3ZBQgDaQlCa2P/ +sAAAAGwQBIgy2iDsN7hAD5gAs+0w2EAPoAAY4qjvQA+gARAAbBAE4gDYQA+gARAAbBAKwKXsAEfA +DoADsOUFhsAPmACF6A3yQAqwBHHAoOcgsSAkyAJV6ijvQAp4A8fnGMhAD5gAWu4M38ANIAoaj6fm +9KFAEKgLv+3wkkAQQAzP7t7lQBBYDJ+uu+4VyEAPCA7E67CQgCPoCMms6q5m5vTBACRIC6vJOenI +70ANAAF0bUkFAwNoCQJritAPAgAPAgCuquIU8AAlcAi6mtDTwI1Q0w/o1uHAEEAMge6NRsAPYAZk +5jHIQBBAC/PvWMBAE4ANiC7if7aG4GnvQA9oDe3tD4ZAD4AO1uDk8KAguA4uBPQC5BHIQA6AAKXs +nEbADoADsOgQyEAO+A+P6BLIQAqwBDeUXu8xukASQAJFJFYSJFYT5DCSQAxgD/DvUNGgF+ABD+IU +8CAXoAIP6kiQQAqwAlMcjrgvUFDuQbhAEAAN1OoQyEAOgAOw6lDYQAqwBCTApewbRsAOgAOw7Tio +QBBAC+XvXLBACrAEHSZSEidcSOIU8AAe8Ah26ie4QBAQDILqCoJADhgA6BiNjgypEaiZK5I66hTI +IBc4BUscjYoMrArrmbNAFNgMzOyz5QAWiA/LKyISHI3Ljinri4BAEFAM0usWyEAPGAvLK7KQDt0M +6xfIQBGAArviFPAAFHgLvSsgFiwK/3yxFSogB+wA2EAKEAwuGI1z7P/YQA0YBtoWjYEXjXsvIhKO +FooX76+AwBBIDLLq7uHADwgPb+/MRcAPYA7+6zbIQBCoDJKrq++cRcAPYA7+qpnnMshADBAN5q/d +7jfIQBQADd3vBNhAENAL4p8z7a3owBAADPLg7uHAEYAC3e7d60AO+A5w7TXIQBA4C9Lm9utADoAA +pe6lRcAPCA+P5jTIQAygDdDq/+tADwgNze8xyEAPYA3t7TDIQBGAArvrKchAEYACmeklyQAPGAhz +5BDyQBEAApMJgmsEA2kJQmsEA2gJAmsWjUqJXukz00AQsAyy6z/TQA6AAOAuNCfuM9JADoAA0O01 +0kAOgADQ7TTSQA6AAOAuNCLuNtJAD4ALuOs+00APgAmY6TLTQA+AC7jrPdNAD4AJmOkx00APgAu4 +6zzTQA+ACZgpNDDmAuzAEkACkwkSao0YJlISLdIRiWbtO9NAD4AO2O4600APgA7o7jnTQA+ADugu +NDjtX8hAD4ALmOk300APgAe45zXTQBA4DGbrNtNAD4AHeOc000AQOA3y5jPQwA+ABmjmMtDAD4AG +aOYx0MAPgAZo5jDQwAwQD/ArIBYM/xEI/wjq+ctAEHgEyyogB+wD2EAKEAuMyVKIWMiOj1nA4J5b +mPCGWJ9hnlieWYkYHI4P7pGxQBAADNLvlLFAEJgMmekQyEAOgACl6F6wQA6AA7DoEchACrADduqZ +38AOgAAg6lXQQA+gARAAAADtN7BAD5gAteoo70AQMAzD7v/fwAqwAaPtqO9ADWAPSupQ2EAOgAOw +7H9FwAqwA2XB1uoo70APmAC17DjvQAoQCzfiANhAD6ABEAAAAAAAAOoo70AKEAux6E1EwA1oBppg +ABQAixTaIOwQ2EAOgADV67iRQAoQDZWMWGXPxI8vFo3i5lvIQBEAAtXt8MhAEcAC4p5Yn1mdL+IA +2EAPoAEQiDcPAgAPAgApiRTVMOcYyEANAAt5I4IJ5DCSQAn4DFTt6NhACfgPbuOY70AOgACg6vvI +QAn4C7Dk/9/ACfgL7Oy66MANAANDCksUuL/vT+XAD5gAg+nI70AYUAE/CANrCcJriRWqOAtGDOmQ +kMAYUAE2CANoCQJrixUK7wyvuyu8QOvQyEAJ+AtchhUmbEDm0MhACfgLTwDApexLRcAOgAOw7VCw +QAqwAx9j/uKLFNog7BDYQA6AANDrspFAChANW2P/EwAAAADjqO9ACfgPTGwQBCggBMGYeYEH4gDY +QA+gARDaIOs470APmADE7VjvQAv4DpXiANhAD6ABEAAAAGwQCsCl7KlFwA6AA7DlBYbAD5gAhegN +8kAKsAMCwKDnILEgIagCVeoo70AKeAJY5xjIQA+YAFruDN/ADSAD2o+n5vShQBCoC7/t8JJAEEAM +z+7e5UAQWAyfrrvuFchADwgOxOuwkIAgyAjJrOquZub0wQAhKAuryTXpyO9ADQABNG1JBQMDaAkC +ayrSAA6qCOIU8AAicAi6mtDTwI1Q0w/o1uHAEEAMge6mRcAPYAZk5jHIQBBAC/PvWMBAE4ANiC7i +f7aG4GnvQA9oDe3tD4ZAD4AO1uDk8KAduA4uBPQC5BHIQA6AAKXstUXADoADsOgQyEAO+A+P6BLI +QAqwAsnnOJNAEYgNk+ReyEASQAKl6lLJQBGAAkPqU8lADGAJkOlQ0aAVIAUJ6njvQAqwAOUcjVEv +UFDuQbhAEAAN1OoQyEAOgAOw6lDYQAqwArYtMQjslEXADoAApe5YqEAOgAOw71ywQAqwAq/qJ7hA +EBAMshiMJeoKgkAOEAuLDKkRqJkskjrqFMggFKAFTByMIAysCuuZs0AU2AzM7LPlABPwD8srIhIc +jGAuIgnri4BAEFAM0usWyEAPGAvLK7KQDt0M6xfIQBGAArviFPAAEdgLvSsgFiwK/3yxFSogB+wA +2EAKEArDGIwI7P/YQA0YAEoWjBYXjBAvIhKOFooX76+AwBBIDLLq7uHADwgPb+8WRMAPYA7+6zbI +QBCoDJKrq+/lRMAPYA7+qpnnMshADBAN5q/d7jfIQBQADd3vBNhAENAL4p8z7a3owBAADPLg7uHA +EYAC3e7d60AO+A5w7TXIQBA4C9Lm9utADoAApe7+R0APCA+P5jTIQAygDdDq/+tADwgNze8xyEAP +YA3t7TDIQBGAArvrKchAEYACmeklyQAMeAhz5BDyQBEAApMJgmsEA2kJQmsEA2gJAmsWi9+JXukz +00AQsAyy6z/TQA6AAOAuNCfuM9JADoAA0O010kAOgADQ7TTSQA6AAOAuNCLuNtJAD4ALuOs+00AP +gAmY6TLTQA+AC7jrPdNAD4AJmOkx00APgAu46zzTQA+ACZgpNDDmAuzAEkACkwkSaoYYJmIRLyAH +5jvTQA+AB2jnOtNAD4AHeOc500APgAd4JzQ45l/IQAwQD/ArIBYM/xGo/+r5y0AQeATLKiAH7APY +QAoQCjLJUohYyI6KWcCQmVuYoItYmrGZWJlZiBgcjLzugbFAEAAM0u+EsUAQmAyI6BDIQA6AAKXm +XrBADoADsOYRyEAKsAIc6ZnfwA6AACDpVdBAD6ABEAAA6njvQAqwAD3bUO3/38AO+A/P7qjvQBKA +DfXqKO9ACrAAR2StOi0KFuoo70APmAC17DjvQAoQCd/iANhAD6ABEOoo70AKEApb6OdHQA1oC9pg +ABQAixTaIOwQ2EAOgADV67iRQAoQDD+MWGXPyo8vFoyS5lvIQBEAAtXt8MhAEcAC4p5Yn1mdL+IA +2EAPoAEQiDcpiRTVMOcYyEANAApZg4kkPDDnOJNACfgMuAAAAADt6NhACfgPdOOY70AOgACg6vvI +QAn4DBDk/9/ACfgMTOy66MANAANDCksUuL/vT+XAD5gAg+nI70AYUAE/CANrCcJriRWqOAtGDOmQ +kMAYUAE2CANoCQJrixUK7wyvuyu8QOvQyEAJ+Au8hhUmbEDm0MhACfgLrwCLFNog7BDYQA6AANDr +spFAChAMCmP/KADjqO9ACfgPXWwQCuUGhsAQgAzi7hjIIB+gAlYpMDDEcuIU8AAf4AWX6ijvQAp4 +ARXlqO9ADRgJmounL/rA5rShQBCoC9vusJJAEEAMy+/v5UAQWAybr93vFchADwgPxO3QkIAhKAjJ +DPoID2YI5rTBACF4C63JN8lF6cjvQBhQATQDA2gJAmsq4gAPAgAPqgjiFPAAIrAI2prg08CNUNMP +6NbhwBBADIHugkTAD2AGZOYxyEAQQAvz71jAQBOADYgu4n+2huBp70APaA3t7Q+GQA+ADtbg5PCg +HfgOLgT0AuQRyEAOgACl7JFEwA6AA7DoEMhADvgPj+gSyEAKsAGHLiIQlF4p4AUqCpXiFPAAGlgI +qeonuEAQEAyy6gqCQA4QCivt47FAEKAMzg3MDOhPRiAU2AEc7D9GQA8ICcqomS6SOuoUyEAPGAzK +7Mu1IBLwBU4rkjnstOUAEpgPyysiEhyLL44p64uAQBBQDNLrFshADxgLyyuykA7dDOsXyEARgAK7 +4hTwABAAC70rIBYsCv98sRUqIAfsANhAChAJkhiK2Oz/2EANGAUaForlF4rfLyISjhbpJbFAEDgM +oe+vgMAQSAyy6u7hwA8ID2/v8kdAD2AO/ptGqpnv0kdAD2AO/qur50LIQAwQDeav3e5HyEAUAA3d +7wTYQBDQC+LvQ8hADvgOcO2t6MAQAAzy4O7hwBGAAt3rsJNAD2AN7e1FyEAQOAvS5vbrQA6AAKXu +20ZADwgPj+ZEyEAMoA3Q6v/rQA8IDc3vQchAD2AN7e1AyEARgAKZ6SXJQBGAApPrKcgACvgIdOkQ +8kARAAK0C4JrCQNpC0JrCQNoCwJrJjAwZGEXjV7tQ9NADoAA8O9D0kAQQAyR70fSQBCwDOLuT9NA +DoAA8O9C0kAQOA1y70bSQBCIDJnpS9NAD4AO6O5O00APgA3Y7ULTQA6AAPDvRdJAD4AN2O1B00AP +gA7o7k3TQA+ADdjtQNNAD4AO6O5M00AOgADw70TSQA+AC5jrStNAD4ALuOtJ00APgAu4K0Q46V/I +QAwQB3ArIBYMdxGod+p5y0AQeATLKiAH7APYQAoQCQDJUohYyI6LWcCgmluYsIxYm8GaWJpZLTAw +yN7umd/ADoAAIO5V0EAPoAEQhhgiYhEoYhTiIZBADvgJ+eJhyUAQCAKI6GTJQA6AACDvVdBAD6AB +EAAA6ijvQAoQCTnoxUZADWgPimAAJcCx60DSQA74CJHpQdJACfgO2osU2iDsENhADoAA1eu4kUAK +EAsZjFjKweIA2EAPoAEQ2iDrWO9AD5gAw+3o2EAKEAim4gDYQA+gARAAjy8Wi2TmW8hAEQAC1e3w +yEARwALinlifWZ0v4gDYQA+gARCINymJFOU470ANAA/J44mwQAn4DOnpDYZAEYgN4+xlR0AOgACl +7yCwQA6AA7DuDoTACrAAt9og6zjvQA+YAMTtWO9AC/gNq+IA2EAPoAEQHItKKCIY6lDYQA6AA7Dt +ILBAEAAMZe6Eu8AQAAz+5hDIQAqwAKfiANhAD6ABEOOY70AOgACg6rvIQAn4DAjk/9/ACfgMROza +6MANAANDCksUuL3tTeXAD5gAg+nI70AYUAE9CANrCcJriRWqOAtGDOmQkMAYUAE2CANoCQJrixUK +/Qytuyu8QOvgyEAJ+Au0jxUv/EDv4MhACfgLpwCLFNog7BDYQA6AANDrspFAChAKxmP+sQDjANhA +CfgL8WwQCiggBMFo5QqGwA0AAPh2gQfiANhAD6ABECgiEMSy7ojvIB84AloqMDDoGMgAH5gFq+oo +70AKcA/N5ajvQA0YCyqLpy/6wOa0oUAQqAvb7rCSQBBADMvv7+VAEFgMm6/d7xXIQA8ID8Tt0JCA +INAIyaz6r2bmtMEAITALrck2yUTpyO9AGFABNAMDaAkCa4rgDwIAD6oI4hTwACJwCNqa4NPAjVDT +D+jW4cAQQAyB7g5GQA9gBmTmMchAEEAL8+9YwEATgA2ILuJ/tobgae9AD2gN7e0PhkAPgA7W4OTw +oB24Di4E9ALkEchADoAApewdRkAOgAOw6BDIQA74D4/oEshACrAAPy4iEJReKeAFKgqV4hTwABoY +CKnqJ7hAEBAMsuoKgkAOEAor7eOxQBCgDM4NzAzoykUgFbgBHOy6RUAPCAnKqJkukjrqFMhADxgM +yuzLtSAS8AVOK5I57LTlABKYD8srIhIcieeOKeuLgEAQUAzS6xbIQA8YC8srspAO3QzrF8hAEYAC +u+IU8AAQAAu9KyAWLAr/0w98sRUqIAfsANhAChAIShiJj+z/2EANGAR6FomcF4mXLyISjhaKF++v +gMAQSAyy6u7hwA8ID2/vjkVAD2AO/utGyEAQqAySq6vvXkVAD2AO/qqZ50LIQAwQDeav3e5HyEAU +AA3d7wTYQBDQC+KfQ+2t6MAQAAzy4O7hwBGAAt3u3etADvgOcO1FyEAQOAvS5vbrQA6AAKXuZ0VA +DwgPj+ZEyEAMoA3Q6v/rQA8IDc3vQchAD2AN7e1AyEARgAK76ynIQBGAApnpJckACxgIdCk8MOkQ +8kARAAK0C4JrCQNpC0JrCQNoCwJrJjAwZGEYjV7tQ9NADoAA8O9D0kAQQAyR70fSQBCwDOLuT9NA +DoAA8O9C0kAQOA1y70bSQBCIDJnpS9NAD4AO6O5O00APgA3Y7ULTQA6AAPDvRdJAD4AN2O1B00AP +gA7o7k3TQA+ADdjtQNNAD4AO6O5M00AOgADw70TSQA+AC5jrStNAD4ALuOtJ00APgAu4K0Q46V/I +QAwQB3ArIBYMdxGod+p5y0AQeATLKiAH7APYQAoQB7jJUohYyI6LWcCgmluYsIxYm8GaWJpZLTAw +yN7umd/ADoAAIO5V0EAPoAEQhhgiYhEoYhTiIZBADvgJ+eJhyUAQCAKI6GTJQA6AACDvVdBAD6AB +EAAAAOoo70AKEAfx6EFFQA1oD4pgACXAsetA0kAO+AiR6UHSQAn4DtmLFNog7BDYQA6AANXruJFA +ChAJ0YxYZcxEjy8WiiXmW8hAEQAC1e3wyEARwALinlifWZ0v4gDYQA+gARDaIOtY70APmADD7ejY +QAoQB1fiANhAD6ABEIk3KpkU1TDoGMhADQAPquOZsEAJ+AzvHIoRLjAx6g2GQA6AA7DqUNhAEAAM +8u4OhMAKqA9x2iDrOO9AD5gAxO1Y70AL+Axl4gDYQA+gARAcigQoIhjqUNhADoADsO0gsEAQAAxl +7oS7wBAADP7mEMhACqgPYeIA2EAPoAEQ45jvQA6AAKDqu8hACfgMEOT/38AJ+AxM7NrowA0AA0MK +SxS4ve1N5cAPmACD6cjvQBhQAT0IA2sJwmuJFao4C0YM6ZCQwBhQATYIA2gJAmuLFQr9DK27K7xA +6+DIQAn4C7yPFS/8QO/gyEAJ+AuvAIsU2iDsENhADoAA0OuykUAKEAmAY/65AOMA2EAJ+Av5bBAE +7CSxQBCYDLIFA0fsu+igADgCA2SwjiwgBx2IrQ8CAAwMQQzKEa2qLaI6DwIA4hTwIAQ4Ak0fiKcP +zwruqbNAFNgM/+/t5UATiAn+GYipH4l86CeoQBAADMIViKgeiMLl0shADoAASOTTyEAOgABS7r7r +QAygCIDu1chADwgIyOjO4cAPYAz87NTIQA9gCJjo0MhAD2AOXp7RJCIUJaY5C0QIJCYU4hTwIAfg +AlPiANhAD6ABEAAAAIgiZIEP4hTwIAagAlOJJw8CACeZFO+QkkANAA9HKpIJjPDjDN/ADoAC6uPz +5UANAAL6esEnKKAAfoEhJPEFK6AHo0nsu+HAEgACmauq66jvQBEgBZrquO9ADngNm+UA2EAPaA2s +DVo45thFQA4ABapgALYAAOSr6MAJ+A/cACTxBauro00t3EDquO8ACEgJ28qpesEn6KC4QBA4DZoP +AgAPAgDsmeHAELAE6Kmq66jvQBGgBdrquO9ADngNmwrLDAtaOGSgY42gK6AH0w8NjVfsu+HAFVAI +7Yiidomg4gDYQA+gARDkq+jACfgPzIonwLHsANhADoAA0eqgkkAKCA6n4qjvQA+gARAAAAAA6gDY +QAn4Dw/aIOvIkUAOgADS7BDYQAoQCQVj/tqK8St8ECv1BOswkMAXgAKq6vHIQBGYBbos8QWOIO02 +REAOgAAgqsrq8chADwgOjuaiyEAOgADx7aDIQA9gDv7uochAD6ABEI4glqLthURADoAA8eju4cAO +gAAg7aDIQA9gDv7uochAD6ABEOS66MAJ+A73bBAWF4lAJ3JG4h3JQAxwCFDle7FAEOgMJ+Z4skAQ +4AyX6RfJIE9YAgiJNyiZFOMcySBT8ABog5kuEh0u4hAr4AUsCpXiFPAAV0AIyy8SHY/y4hTwIFP4 +AX/p47FAEKAMjgmIDOIU8CBN0AEYKhIciqzrINhADvgP7+QzuAARGAP6DigDLTBELzBFpDrpNrjA +DwgNje/d60AQeAyq7ze4wA8IDY3p3etAEOAMkeiq5UAPCA2N793rQBC4DPGq3a1dAPAEsN3qlMlA +D5AN0e9J38AM8A3Q7ZvCQBAYAo0IKBLomsIAUhAI9y/6tOIU8ABRuAj54hTwIFF4AG2w2Ojc5UAR +GAmNbQgP6c+XwA+YANzpzOVAEGgJnesg2EAJ+A/pAA/dEcHg6S1EQA6AAKHsb0RAEBgCjego7UAO +gADQ6YnlQA+YAP3sjOVAD1gJmuys58APWA+e6YDYQA+YAO3szkRAD1gOyRmI6e+uREAPYA7+6Ynl +QA8oDMjsrOfAD1gJmu/Y70APKAj46KjnwA9YD5vvQNhAD2AM/Op8skAPWA2PDt0CDcwC4hTwAEvY +C8oqci0MzQ8K2gqKoCmhAuwVyEAPCA3t7RbIIE5IAGlYCMTrfbJAEDAMway7ibbqmeHAEAgMiwmp +KKmIKRIcjxUolhOOtu1wREAPCA+P67SwQA8IDArq7upAD2AM/A3MAq676xTIQA6AAJAvEhwMngIO +DUfu8skgStgBfR6ItiwSHe7qskAQAAzfLMIQDt0M7MC7wA+ADtbtD4YgSfgOLusUsEAQMAKMAIEE +AOca6rjhwA9gB38IdwKXEesSyEAOgACl7BDIQA6AA7DsOURACqgOBSoSHImsKwoC65nrQA6AAMHn +rshAD2AJyemsyEAO+A/vLxIcL/Eq4xnJQA0gDe8jFhmkPQ4qA+YayUAOgACwmx0Wh27qHMhAEOAM +kep3Q8ASAAKNmB7qH8hAEcACjegZyEAQmAyZKRYTGYiM6RXJQAgAAY0ALBIYo/PiFPAAGmgOPGSz +RY8biN8o9n+O3i72fuwSsUAQeAyh7h2xQBCYDPEYiALowMhAEIgMge7gsEAPgA/178PIQBCgDLEf +h1ro7uHAD4AIhejCyEAPYAvr68HIQA6AAJDqAuzAEIAC7LGZ7hPwQB/QASkqEhIoEhDAcO+myEAQ +iAyR6afIQA0ADAju/UPAD5gAaqmr5KiTQBHAArvrG8lADoAAJOkA2EAQyAzx6W3IQBDQDLEZhzks +8EQj8EUo8Ebv97jADwgMjOPM60AQ4Awx6XfkQA8IDIzozOtAEOgMgeo+sEAOgACQ53+ZQBCgDDPj +a8hADwgMjOiAsEAPYAz87GrIQA8oCrrqachADoAAoOpsyEAPYAjo6GjIQA+YAPTnEfBAEAgCme8T +8EAfoAUpLxIbJmxA5ECQwA+YAHLiJJAf+xAO9CoSHSqgBwoKQSgSHCkSEBaHCy+BKgyqEaaq6f/o +wBCgDJHpqctADPAP8O+KwkANGAHvLBIQKxITCswRrLsrFhMnEh0ncAfnB4JADoAAJOL+5cAPCATH +pkTq7+HAEdAMhCn8LwlJFOkUyQAwkAuYG4eq6EmzQA8YCbcpkrfphOUAL+APmCoSHCehKy4WEOQS +yUAPCALu5yFEQA9IAnLvEclADoAAwOqssEAOgACA4hjJQA8gAnLoL8vAEZgNfewuy4AGMAHq7N6w +QBBoDLGP3+wcsEAPKAvL78zlQA6AAOHr6+fAD1gMzuIbyEAPYAvL5xrIQA0QAsuJGSgSFRqHaAlC +augT8UAQ4AzxGYfvjt0v8hQoktMPXwzu/+XADygIqOiTzcAPaA7+7t3IQA0AAY6E3wT0CO7esEAQ +OAX0LuwBlN+e3iwSHC4SF+vdsEAOgADw6sywQBDADIEA4ASlueiPl8AX+AKZ6QnxQA74D+3piOXA +DygK6urMyEANCAyY4xDYQAgAAC0qEheL3SgSGACgBKW5sJnpCfFADoAA8OIbyEAPSAiY5xrIQA0I +CSjAMCoSGIwZHoan46rowA6AAPDpquXAD5gAjKP3DncL6BHyQBD4A3cHkmqL3ejI70AQCAL/61fl +wBB4DC3nu+jAEHAMTevdyEANAAEronLi38hAEDAFcrFElN56+bxj/KmIGooe6hDKQA6AAJDpH8lA +F/gCiOgWyUAOAAI4Y/ymACoSFumRkEAQwALL6R/JQA9YC+zrEMof5HgIqSsSHywSIOgXsUAMAAuw +6x7JQA8YC8sisgAuEhgAgAQFLwjv/5fADoAAkOPu6MAPkA/x5h6xQA9IDv7uGMhADQAFrgPqCOxm +5EAQqAzhLGwIDMgC7qrkQA8gDuPoEfNAD5gATgTSaoKw4lTlwBBAAu7kIujAD5gAjOKwyEANAAFy +h2OPYqdH52PIQBA4BUcv/AGfYnrpxI4Y6xCyQBDADIHu6efAEPAM4akz6R+xH/m4DjhkLy/rELJA +EPAMoesbsEAPIAq6jKMstn+Kouq+y8AJ+Au7AAAqEheL3SwSGACgBKW5sJkJCRkJzDbvANhADnAH +bOMA2EAJ+At44xDYQAn4C3AtEh3u1LFAEJgM3RuHYw7dDCzdQHyzBR6HYX3rEioSHesA2EAOgADA +7SDYQAv4DX0lEh3lV7hAEBAM9eUFgkAOGADfHoYrDF0Rrt0o0jriFPAgGbAFSBiG3QhYCu/Zs0AV +uAyI6PTlABkAD48pEh0nkhIWhmcHh0DmduPAEEgMqeZgtUAQUAyZ6pnowBGAArbiFPAAEqALuSsS +HSuwFiIK/3KxDyoSHcDA6qe4QAoQBMpkoystEh0fhhkYhnGO2SzSFe5GyEAQkAy9rm4GzAjqtkLA +DCALuup54cAPCAtr65nrQA6ABDDjQ8hAD2AJqePXqEAMEAWWCFUI70LIQBQADVXo2qlADoAA9elH +yEAMoAMw6XBCwA9oBVbgiOHAEYACVejQsEAPYAWF5UXIQBGAAszlj0HADwgDw+mJ60APCAiI6UTI +QA9gCPjoQchAD2ADU+NAyEARgALu7tnIQA74DrDs1ckADzAItCkSGe0w2EARAALE6ZCTQBhQAD0J +A2gMAmsrEh3uENhADoAA0O1D0kAOgADQ7ULSQBDgDNHuQNJAELAMm+q3uEAQgAzL6U/TQBBwDI3o +Q9NAD4AJmOlO00AQiAzM7EvTQA+ACZjpTdNAD4AIiOhC00APgAmY6UzTQA+ACIjoQdNAD4AOyO5K +00APgAiI6EDTQA+ADujuSdNAD4AO6C5EOOzfyEAMEAqgHIW3K7AWDKoRrKrvqctAEIgEKyoSHcPA +6qe4QAoQBDwrEhxksH2JuGSQeO0dsUAQSAwrwPCfu+kgyEAQgAzdiLgs0hHigchAEKAM7e+4yEAO ++Amp77nIQBAIAszs0clAEAgC7u7UyUAOgAAg6rXQQA+gARAAAADqHbFACnALeZoX6hzJQA4ABgot +Co7qHbFAEOAMsew470AKEAPu4gDYQA+gARApEh0pkhAokhEqkhTogZBAEOAMIeiRyUAQCAKq6pTJ +QA74CfkvJAXiANhAD6ABEAAAAADqHbFAChAEXWStpGAAVYqn6zjvQA+YAMTqoJJACggPeYwXjcAI +3RHtTetAD5gAOu2hyEAQQAu668jAQAn4BY0A4wDYQAn4BYQrfBjsENhAEOgMoe0UsUAKEAY1LxIc +LhITLvYTKBIciIjIhuIA2EAPoAEQKhIdLBIcja8eho/uy8hAEQACnOnQyEARwAK6m8jtychADoAA +IOmvyEAPoAEQK1wY7BDYQBDoDKHtUNhAChAGH2P/rcDA6WHYQAn4BuwtEh0chn7oHLFAEMAMnepQ +2EAOgAOw7+CwQBAADN3ulLvAEAAMiOgQyEAKqAvO4gDYQA+gARAAACtcEuwQ2EAQ6Ayh7QDYQAoQ +Bglj/1UAAO3Y2EAJ+A6hixTn/9/ACfgG2MDA6SDYQAn4BoAAAAAAbBAWKyAE4h3JQA0AAWvB2XvS +BMHofroH4gDYQA+gARAXhlEnckYFD0fle7FAEOAMJ+IXyUARQAxn4n2xIE7YAg+JNyiZFOMcySBT +cABog5kuEh0u4hAr4AUsCpXiFPAAVsAIyy8SHY/y4hTwIFN4AX/p47FAEKAMjgmIDOIU8CBNUAEY +KhIciqzrINhADvgP7+QzuAAQ2AP6DigDLTBELzBFpDrpNrjADwgNje/d60AQeAyq7ze4wA8IDY3p +3etAEOAMkeiq5UAPCA2N793rQBC4DPGq3Q1dCADwBC3c/+qUyUAPkA3R70nfwAzwDdDtm8JAEBgC +jQgoEuiawgBRgAj3L/q04hTwAFEoCPniFPAgUOgAbSjc/+jc5UAQuAmN6c+XwA+YANzpzOUf/6AF +nQ/dEcHg6W5BwA6AAKHsoELAEBgCjego7UAOgADQ6YnlQA+YAP3sjOVAD1gJmuys58APWA+e6YDY +QA+YAO3sAELAD1gOyRmF/e//QcAPYA7+6YnlQA8oDMjsrOfAD1gJmu/Y70APKAj46KjnwA9YD5vv +QNhAD2AM/Op8skAPWA2PDt0CDcwC4hTwAEugC8oqci0MzQ8K2goqogApoQLsFchADwgN7e0WyCBO +CABpWAXY632yQBAwDMGsu4m26pnhwBAIDIsJqSipiCkSHI8VKJYTjrbtsUHADwgPj+u0sEAPCAwK +6u7qQA9gDPwNzAKuu+sUyEAOgACQLxIcDJ4CDg1H7vLJIEqYAX0ehcosEh3u6rJAEAAM3yzCEA7d +DOzAu8APgA7W7Q+GIEm4Di7rFLBAEDACjACBBADnGuq44cAPYAd/CHcClxHrEshADoAApewQyEAO +gAOw7HpBwAqoCxkqEhyJrCsKAuuZ60AOgADB567IQA9gCcnprMhADvgP7y8SHC/xKuMZyUANIA1v +IxYZpD0OKgPmGslADoAAsJsdFoSC6hzIQBDgDJHquEDAEgACjZge6h/IQBHAAo3oGchAEJgMmSkW +ExmFoOkVyUAIAAGLACwSGKPz4hTwABpYDjxks0OPG4jfKPZ/jt4u9n4vEhMsEhIuEh0YhRfowMhA +EIgMgY7g6xSxQA+AD/Xvw8hAEHgMoeju4cAPgAiF6MLIQA9gC+vrwchADoAAkOoC7MAQgALssZnu +E/BAH9ABKSgSEhmEZC8SEOmGyEAQiAxxl4fnANhADQAMPyoSEe4/QMAPmABoqorkiJNAEcACquob +yUAOgAAk6QDYQBDIDPHpbchAENAMsRmETizwRCPwRSjwRu/3uMAPCAyM48zrQBDgDDHpd+RADwgM +jOjM60AQ6AyB6j6wQA6AAJDnf5lAEKAMM+NryEAPCAyM6ICwQA9gDPzsashADygKuuppyEAOgACg +6mzIQA9gCOjoaMhAD5gA9OcR8EAQCAKZ7xPwQB+gBSkvEhsmbEDkQJDAD5gAcuIkkB/7EA70KhId +KqAHCgpBKBIcKRIQFoQfL4EqDKoRpqrp/+jAEKAMkempy0AM8A/w74rCQA0YAY8sEhArEhMKzBGs +uysWEycSHSdwB+cHgkAOgAAk4v7lwA8IBMemROrv4cAR0AyEKfwvCUkU6RTJADBgC5gbhL/oSbNA +DxgJtymSt+mE5QAvsA+YKhIcJ6ErLhYQ5BLJQA8IAu7nckHAD0gCcu8RyUAOgADA6qywQA6AAIDi +GMlADyACcugvy8ARmA197C7LgAYwAers3rBAEGgMsY/f7BywQA8oC8vvzOVADoAA4evr58APWAzO +4hvIQA9gC8vnGshADRACa4kZKBIVGoR8CUJq6BPxQBDgDPEZhQSO3S/yFCiS0w9fDO7/5cAPKAio +6JPNwA9oDv7u3chADQABboTfpPTu3rBAEDAF9LHulN+e3iwSHC4SF+vdsEAOgADw6sywQBDADIEA +4ASlueiPl8AX+AKZ6QnxQA74D+3piOXADygK6urMyEANCAxY4xDYQAgAAC8AACoSF4vdKBIYAKAE +pbmwmekJ8UAOgADw4hvIQA9ICJjnGshADQgIyMAwKhIYjBkeg7zjqujADoAA8Omq5cAPmACMo/cO +dwvoEfJAEPgDdweSaovd6MjvQBAIAv/rV+XAEHgMLee76MAQcAxN693IQA0AASuicuLfyEAQMAVy +sUSU3nr5vGP8q4gaih7qEMpADoAAkOkfyUAX+AKI6BbJQA4AAjhj/KgAKhIW6ZGQQBDAAsvpH8lA +D1gL7OsQyh/kiAipKxIfLBIg6BexQAwAC7DrHslADxgLy4KwLhIYAIAEpS/v/5fADoAAkOPu6MAP +kA/x5h6xQA9IDv7uGMhADQAFbqPq7GbkQBCoDOG4bNjA7qrkQA8gDuPoEfNAD5gATgTSaoKw4lTl +wBBAAu7kIujAD5gAjOKwyEANAAFih2OPYqdH52PIQBAwBUex/59ieunFjhjrELJAEMAMge7p58AQ +8AzhqTPpH7Ef+egOOGQvNesQskAQ8Ayh6xuwQA8gCrqMoyy2f4qi6r7LwAn4C8MAACoSF4vdLBIY +AKAEpbmwmQkJGQnMNu8A2EAOcAfM4wDYQAn4C4DjENhACfgLeC0SHe7UsUAQmAzdG4R5Dt0MLN1A +fLMFHoR3fesSKhId6wDYQA6AAMDtINhAC/gKkyUSHeVXuEAQEAz15QWCQA4YAN8eg0EMXRGu3SjS +OuIU8CAZsAVIGIPzCFgK79mzQBW4DIjo9OUAGQAPjykSHSeSEhaDfQeHQOZ248AQSAyp5mC1QBBQ +DJnqmejAEYACtuIU8AASgAu5KxIdK7AWIgr/crEPKhIdwMDqp7hAChAB4GSjKy0SHR+DLxiDh47Z +LNIV7kbIQBCQDL2ubgbMCOoYQ0AMIAu66nnhwA8IC2vrmetADoAEMONDyEAPYAmp49eoQAwQBZYI +VQjvQshAFAANVejaqUAOgAD16UfIQAygAzDp0UNAD2gFVuCI4cARgAJV6NCwQA9gBYXlRchAEYAC +zOXgQ0APCAPD6YnrQA8ICIjpRMhAD2AI+OhByEAPYANT40DIQBGAAu7u2chADvgOsOzVyQAPMAi0 +KRIZ7TDYQBEAAsTpkJNAGFAAPQkDaAwCaysSHe4Q2EAOgADQ7UPSQA6AANDtQtJAEOAM0e5A0kAQ +sAyb6re4QBCADMvpT9NAEHAMjehD00APgAmY6U7TQBCIDMzsS9NAD4AJmOlN00APgAiI6ELTQA+A +CZjpTNNAD4AIiOhB00APgA7I7krTQA+ACIjoQNNAD4AO6O5J00APgA7oLkQ47N/IQAwQCqAcgs0r +sBYMqhGsqu+py0AQiAQrKhIdw8Dqp7hAChABUisSHGSwfYm4ZJB47R2xQBBIDCvA8J+76SDIQBCA +DN2IuCzSEeKByEAQoAzt77jIQA74CanvuchAEAgCzOzRyUAQCALu7tTJQA6AACDqtdBAD6ABEAAA +AOodsUAKcAiPmhfqHMlADgAFyi0KjuodsUAQ4Ayx7DjvQAoQAQTiANhAD6ABECkSHSmSECiSESqS +FOiBkEAQ4Awh6JHJQBAIAqrqlMlADvgJ+S8kBeIA2EAPoAEQ6h2xQAoQAXRkrahgAFmKp+s470AP +mADE6qCSQAoIDJCMF43ACN0R7U3rQA+YADrtochAEEALuuvIwEAJ+AWhAAAAAADjANhACfgFlCt8 +GOwQ2EAQ6Ayh7RSxQAoQA0svEhwuEhMu9hMoEhyIiOIU8D+pmAF4KhIdLBIcja8eg6Xuy8hAEQAC +nOnQyEARwAK6m8jtychADoAAIOmvyEAPoAEQAAArXBjsENhAEOgMoe1Q2EAKEAM1Y/+twMDpYdhA +CfgG9C0SHRyDlOgcsUAQwAyd6lDYQA6AA7Dv4LBAEAAM3e6Uu8AQAAyI6BDIQAqoCOTiANhAD6AB +EAAAK1wS7BDYQBDoDKHtANhAChADH2P/VQAA7djYQAn4DqGLFOf/38AJ+AbgwMDpINhACfgGiGwQ +DCciEAUIR+547yAyQAJY6ijvQApwCCjlqO9ADTAAeoqn6zjvQA+YAMTqoJJACggMQI1Q7hVDQA8I +D40PTwLvochAE4ANZy7if+hmkEAPmAA64InvQA9oDe3tD4ZAD4AO1uDk8KAxqA4uBPQClhCUEew0 +Q0AOgACl6wPYQA74D5/pEshACqgIsi4iEOReyEAQQAujKlUIK+AFLAqV4hTwAC5QCMuNImXTMejj +sUAQoAz+CP8M6yDYICtQAR8qIhItcG8eghzqie1ADAAKqOvc5UAQUAHtC50BDaoCLSAHDQ1B71FC +QA8IC82uuy6yOu0ayEAPGA/97/u1ICoQCk4usjkUglTv5uUAKaAP/gSkCiRCkJoXmxjkQJNADRgH +jC0wRC8wRe42uMAPCA2ND90C7ze4wA8IDY3u3etAELgM4gjdEQ/dAg7dNqTU7ymwQBBQDOIP7gzi +FPAAEzALTisgFigK/+wdyEAQ8ASL7RzIQBA4DaLsANhAChAAqIwd7RywQA0oAhrqYJJAEYACk+kQ +8kAOgADxCoJrCQNpCkJrCQNoCgJrKCIW72DSQBCIDOcfgevua9NAD4AL2Ohv00AQcAyV6WPTQA+A +CIjobtNAD4AK6Opq00APgAmY6WLTQA+ACqjqadNAD4AJmOlh00APgAiI6G3TQA+ACZjpYNNAD4AI +iOhs00APgAqo6mjTQBMAAobuX8hADoAAoOpXyUANCAzMKmQjKmQiLWQn62bSQA+AC7jrZdJAD4AL +uOtk0kAQyAyz6BnIQBKAApaZFOkwk8ANEASb6lbJQA9IC73rZclAE0AC4+4R8EASwAKGCBJqLjIZ +693owA9oDr7uOclADRAJPi4yG66+7TqxQBAwBb6x3S42Gy02GsDgIyEH6StBQA6ABIDoY8hADxAN +7uiqQUAMoAMw7J/nwA6ABpDp3ePADwgDw+ggsEAPYAOD6RqwQBB4At3jYMhAD4AN1OOlQkAPCAuI +72LIQA9gC72bYetlQkAPGAk5KZKbgxfru0JADygJuQozEePuQUAPYAk5C5kCCWtBqzMbgZYjMIDr +iOtAENALspln40PowA8ICwvoZMhAD2ALO+tlyEAQSAyy62bIQA0AAQwYgqmPFLHsCMwCnPAuIhWk +v58ppO4uJhXrJrlAEEAMwSkK/+3Jy0AQiASbKiAH7EjvQAoID/rAoCxyFCtyEelYsEAQCALM7HTJ +QBAIArvrcclADvgJiehV0EANAAQZjVmaW5nQjlid4epYyEAOgAAg6lnIQA+gARCdHOwdyEAPmACi +60jvQAoQADaMHe0csEANaAhqj1jTD2TyHOIA2EAPoAEQ3qBlzqoYghUrIQfuxUFADoAE0O1jyEAQ +AAySHYFU7hqwQA9YD87ok+HADKALsO9iyEAPCAvL7VDYQA9gC9vrYMhAD2AD05Nh42BCQA8YDo4u +4puIF+OmQkAPKA4+CogR6OlBQA9gDo4D7gLjKqlADBAL5quIG4FEKICA7mfIQA8IAwPoSOjAD2AJ +uelkyEAQSAyy62bIQA9gA4PjZchACfgOygAAAAAA7QDYQAn4DLQuUhYD6worshxksGvp6ORAD0gL +vetlyUAQQAKI6BHxQBLAAuYOUmooUhYJiAqOgAvuDJ6ALlIWCegKiIDr3ejADQACKAntC4PTo7Pu +0rBAEDAFs7Huk9Pu0shACfgNowAAAGTg9S5SF+pWyUAQCALu7lfJQBDAApnuANhADXANbSNSFuk7 +48AQSAyBi7DiHshADAAD4Ogy48APSAu9myAiUhYJIgviKJBADyAIg+IR8kAQQAKICJJq4xbIQBCw +DDUJMwqCMAsiDJIwI1IWCTgKiIDr3ejAEAgC7uIesEAOAAV44h7IQA0AA6MoUhcpnBjqVslAEAgC +iOhXyUAOgAAwixmIFiK8GOIesEAPWAuC6xnIQA54Bw1j/jcAAAAAAADjENhADoAAsetWyUAJ+A/U +AAAAAAAJPQuI04PSqLjoFchAEDAFuLEz49LIQBAoDIHo08hADmAKzGP9+cCx61bJQAn4DxeOLx+B +/O9byEARAALF7ODIQBHAAtKdWJ5ZnC/iANhAD6ABENog61jvQA+YAMPt6NhACggPHeIA2EAPoAEQ +ixraIOwQ2EAOgADc67iRQAoQAYJj/YeJNyyZFOU470ANAAXs45mwQAn4CjIAAByB4ykiGOpQ2EAO +gAOw7SCwQBAADIXulLvAEAAM/ugQyEAKqAcw4gDYQA+gARAAAOT/38AJ+AnOixraIOwQ2EAOgADQ +67KRQAoQAWhj/SEA4wDYQAn4CdhsEAwqIATBiOUJhsANAAD6eKEH4gDYQA+gARAnIhDueO8gMjAC +Weoo70AKcAZy5ajvQA0wADqKp+s470APmADE6qCSQAoIComNUO65QUAPCA+ND08C76HIQBOADWcu +4n/oZpBAD5gAOuCJ70APaA3t7Q+GQA+ADtbg5PCgMXgOLgT0ApYQlBHs2EFADoAApesD2EAO+A+f +6RLIQAqoBvwuIhDkXshAEEALoypVCCvgBSwKleIU8AAuMAjLLSICZdM26OOxQBCgDP4I/wzrINgg +KygBHyoiEi1wbx6AZeqJ7UAMAAqo69zlQBBQAe0LnQENqgItIAcPAgANDUHv5UBADwgLza67LrI6 +7RrIQA8YD/3v+7UgKdgKTi6yORSAne/m5QApaA/+BKQKJEKQKhYHKxYI5ECTQA0YCRwtMEQvMEXu +NrjADwgNjQ/dAu83uMAPCA2N7t3rQBC4DOII3REP3QIO3TYE1AjvKbBAEFAM4g/uDOIU8AATKAtO +KyAWKAr/7B3IQBDwBIvtHMhAEDgNouwA2EAKCA7wjB3tHLBADSgBSupgkkARgAKT6RDyQA6AAPEK +gmsJA2kKQmsJA2gKAmuJXu9g0kAQiAznH4A0LmQ76WPTQBCwDILob9NAD4AJmOli00APgAro6mrT +QA+ACIjobtNAD4AKqOpp00APgAiI6G3TQA+ACZjpYdNAD4AIiOhs00APgAmY6WDTQA+ACqgqZDju +X8hADoAAoOpXyUANCA78KmQjKmQiLWQn6GCSwA+AC9jrZtJAD4ALuOtl0kAPgAu462TSQBDIDLPo +GchAEoAClpkU6TCTwA0QBkvqVslAD0gLvetlyUATQALj7hHwQBLAAoYIEmouMhnr3ejAD2gOvu45 +yUANEAruLjIbrr7tOrFAEDAFvrHdLjYbLTYawOAjIQfpvz/ADoAEgOhjyEAPEA3u6D8/wAygAzDs +n+fADoAGkOnd48APCAPD6CCwQA9gA4PpGrBAEHgC3eNgyEAPgA3U4zpAQA8IC4jvYshAD2ALvZth +6/lAQA8YCTkpkpuDF+tAQUAPKAm5CjMR43NAQA9gCTkLmQIJa0GrMxt/3yMwgOuI60AQ0AuyKWYH +40PowA8ICwvoZMhAD2ALO+tlyEAQSAyy62bIQA0AARwYgPIvEgSx7AjMApzwLiIVpL+fKaTuLiYV +6ya5QBBADMEpCv/tyctAEIgEmyogB+xI70AKCA5CwKAschQrchHpWLBAEAgCzOx0yUAQCAK763HJ +QA74CYnoVdBADWAFWY1ZmluZ0I5YneHqWMhADoAAIOpZyEAPoAEQnRzsHchAD5gAoutI70AKCA5+ +jB3tHLBADWgIeo9YZfwVii8bgMzrW8hAEQACheigyEARwAKSmViaWZgv4gDYQA+gARDeoGXOjx6A +Vxt/n+gnqEAOgASQ6WPIQBAADDLpaT/ADoAA1egIiMAPWA/L72LIQA8IC4Ptu+tADwgIyOkasEAP +YAiYm2EbgEjoYMhADxgJ6SmSm44X68pAQA8oCbkK7hHuDj/AD2AJ6QuZAusqqUAMEAiWqO4Yf4Yu +4IDpZ8hADwgLC+5O6MAPYAOD42TIQA9gC+vrZchAEEgMsutmyEAJ+A6xAAAAAADtANhACfgMnC5S +FgPrCiuyHGSwa+no5EAPSAu962XJQBBAAojoEfFAEsAC5g5SaihSFgmICo6AC+4MnoAuUhYJ6AqI +gOvd6MANAAIoCe0Lg9Ojs+7SsEAQMAWzse6T0+7SyEAJ+A2IAAAAZOD1LlIX6lbJQBAIAu7uV8lA +EMACme4A2EANcA1tI1IW6TvjwBBIDIGLsOIeyEAMAAPg6DLjwA9IC72bICJSFgkiC+IokEAPIAiD +4hHyQBBAAogIkmrjFshAELAMNQkzCoIwCyIMkjAjUhYJOAqIgOvd6MAQCALu4h6wQA4ABXjiHshA +DQADoyhSFymcGOpWyUAQCAKI6FfJQA6AADCLGYgWIrwY4h6wQA9YC4LrGchADngHDWP+NwAAAAAA +AOMQ2EAOgACx61bJQAn4D9QAAAAAAAk9C4jTg9KouOgVyEAQMAW4sTPj0shAECgMgejTyEAOYAkc +Y/35wLHrVslACfgPF9og61jvQA+YAMPt6NhACggNaOIA2EAPoAEQAIsa2iDsENhADoAA3Ou4kUAK +CA/MY/2QAIk3LJkU5TjvQA0ABfzjmbBACfgKNByALSkiGOpQ2EAOgAOw7SCwQBAADIXulLvAEAAM +/ugQyEAKqAV74gDYQA+gARDk/9/ACfgJ1Isa2iDsENhADoAA0OuykUAKCA+0Y/0tAAAAAAAA4wDY +QAn4CdlsEAQlIQXpIqhAECALYsCA7FXhwBAADELmb5fAF/gCmekiwEAPCAbGpkTlROjACAAANAAA +AAAAAOUlqEAQIAtihCDpb5fAEAgCVeUFjsAPCAnJqUTlJcBAERAEVgxXEQdEDAQAaAiFYOQE7L/+ +YA4lIiEFCSIRolLRDyglBeUA2EAJ+A/bAAAAbBAEiyeLvtow67CRQApACoeMJy7JFCj6wO3FqUAQ +QAy87uGYQBBYDEzvwJJAFQAC7uj/5QAFGAvtr93t0JCABcgItCi9Ae6AlkAPmACe6cTBAAWwC+3i +FPAABhAI3p7IGX7DH37cGH7a6QDswA+YAJsJAmsJAmsJAmsJAmsJAmsJAmsJAmsJAmsJAmsJAmvv +sshAEAAM0uiwyEAQgALq7rXIQA6AAMruLT7ADwgNje60yEAPYA3N7bHIQA0AAduJIiO1EOqxwUAN +AAGJ4gDYQA+gARAAAAAA4sDYQA+gARDaIO0w2EAL4A3G4gDYQA+gARAAAAAAAADrSO9ADoAA0O3L +yEAJ+A9cC94MDv4MLu0BLuzg7sjIQAn4D0go/EDoyMhACfgPPQBsEAaMJy7JFOoo70AO+AyA7cWp +QBBADCzu4ZhAEFgMvO/AkkAVAALu6P/lAAhgC+2aEK/d7dCQgAlACCsrLQErvKDuxMEACVALveIU +8AAJsAjbm8gcfnyNHOtJPsAPmACS7ADswA6ABvYJAmsJAmsJAmsJAmsJAmsJAmsJAmsJAmsJAmsJ +AmvrIshAEAAMihx/iOlYPsAOgAXu6SDIQA6AAJHsJMhAD5gAze2c58AOgAC66IjhwA9YDs/uJchA +D2AIuOghyEANAAci5yrIQA+YALPtK8hAEYACou6I2EAOgAWG7iDBQA6ABP7sAdhAD1gPyO8pyEAK +oAmm20DqIJDAEAAMMewB2EAKoAmh6iCRwA+YALXsAdhACqAJneogksAPmAC27GDYQAqgCZmJMsie +4gDYQA+gARDiwNhAD6ABENow6yjvQA6AAMrtMNhAC+ANYuIA2EAPoAEQAAAAAAAA4rjvQA6AANDt +y8hACfgO6ALeDA7+DC7tAS7s4O7IyEAJ+A7UKPxA6MjIQAn4DskAbBASHH4wGX4u5SewQA6AAKXr +A9hADoAAg+o24cAQgALR5V6wQBAADOnu0MhAEAgM+e/RyEAQEAzp7tLIQBAYDJmmVenTyEAV2Azl +6F7PQBXgDPXmXbdAFdAM1eYQyEAKqASFLgr/LhQg7hzSQA6AAILoEdJADoAA8e8b0kAOgACAKBQi +KBQjKBQkKBQlKBQmKBQn6BjSQBAYA9XoGdJAFAAC3ega0kATqA397x3SQBOwDe3uHtJAE7gN3e0f +0kARAAKB7ICwQBGAApHskMhAEAgMuOuRyEAQEAyo6pLIQBAYDIjok8hADQAMdBl99w8CAO2QsEAS +AAKh7aDIQBAIDMnsochAEBAMueuiyEAQGAyZKaYD6ijvQApADoMtFhcqFhTsFslADoAAkesVyUAQ +GANF6xCSwBKAAsHvwLBAEFAKpO+wyEAQEAzc7bLIQBAIDOzuschAEAgCqu4A2EAOgADQ6p3mwBAY +DMzss8hAD5gAouwQkMAL4AJ5KEkKaIBv70ugQA+YAKLrEJLAEYACwe4A2EAOgACR7/GQQA6AANDv +nebAC+ACbShJC2iASdog6xCRQBGAAsHtU5hADoAA4e3YlsAKUAv6KVK/2iDrRthAD5gA0+zbPcAQ +CAKZ6V/PQAp4BA/qUMzAD6ABEAAAAOpKwEAJ+A+M6kvAQAn4D7JsEASDJ4M+7Hw+wA6AAKXrA9hA +CqgEGCgyyX2PCikyzsyUKjIaZKAf7Aw+wA6AAKXtOrFADoADsO4+tMAKqAQN4v/fwA+gARCMICsg +PwyNR+C74cAPCA2N7AyGwA9gC9vqPJPAD2ALy+s9yUAKSAi36jzXwA6AAMDsMMrADoAAsewxysAP +mACi6zrJQAv4Dq/aIOwJPcAOgAa07QDYQAp4A+AuMsnqPMlADoAAIO+A2EAOgADS7TrJQA9gDv7u +OczAD6ABEAAAAGwQBIcnK3kU6HiwQA74DNDpdalAEFgMp+xwkkAQCAO77czlQBUAArvtqD2ABCAL +uayZ6ZCQgAQQCIoqjQHqoJZAD5gAaOt0wUAT+Aep4hTwAARYCJoqdggbfWXs5z3AD5gAdusA7MAO +gAD6BwJrBwJrBwJrBwJrBwJrBwJrBwJrBwJrBwJrBwJr42XIQBAADOKUZJ1g7GLIQA8IDo7v7utA +D5gAJu5hyEAPoAEQAAAA4gDYQA+gARDmqO9ADoAA8O97yEAJ+A+UCJUMBcUMJV0BJVzg5XjIQAn4 +D4ApzEDpeMhACfgPdQBsEAjqJ6hAEDALku4hqEAQAAvC6DOoQBAQC2PlJahAECALsu8jqEAQEAvS +qGalu6/drsyqmecwqEAQCAujrcysu6p3q5nAoOoR0EAOgACw6xDQQBAgCyOpd6dm5zWoQA6AAJDp +EtBADoADiugT0EAQMAtTpyKmIqUi6BGoQBAAC1EmMQeoVaYi5AeOwAz4BkCnZqYipSLiBo7ADPgF +IKUiplUFBV+lIuICjsAPoAEQAGwQCOgzuUAQkA1D5hfIQBA4DHKlNiVsEOhE4cAQcAx36ETrQAqg +DlJZTkcoMBUsMBbt79hADoAPn+43uQAHkA6Y7wzYAAdQDtwP7gHiFPAgBvgOXigwEikwEw8CAAiI +EesWyEAPYAiY6hXIIAYYC0jscT7ADoAApesD2EAKqANlLXKzwJHp2utAEDgB7Sp2s+oY70AQsAKz +7AHYQAqgCEDrANhAEDgN5uMQsEAW0Ayn6BGwQBbYDJftZrhADoAA8eoz6MAOgADA6n21wA9oCJjo +3eHAD1AMj+P75sAPYA3t7RTIQBMgCcuJE+gSsEAW4Ay37gDYQA6AADDriOjAD2gJqenz5sAPUA6P +c+A6ZNHf6xawQBAoDKEdfNHsANhACqgEt40Uq93tfs3ACAAAXeyOPcAOgACl6wPYQAqoAzbiANhA +D6ABEACOFMvq7C49wA6AAKXrA9hACqgDLtsQ6nOYQA6AAcDqqJLACqAIDesWsEAQKAyhHXy57ADY +QAqoBJ+PFKv/L3beKWAEKXa2KGAF6nO3QBBgAYjiFPAABugD6iRM8G5DNStgEQ27EeasPcARYAe0 +LVABDd0RKVAA49jvIANYAQlok05olTOlNQNEDG5DCC1QAQ3dEX1L3clAwKXs6z3ADoADsO1I70AK +qAMJ4gDYQA+gARAAAAAAAAAA4hTwIAagCF3acOtY70AKeACfY/+2AAAA4hTwIAUgDF3acOtY70AK +eAClY/+eadgv7GjvQA6AAKXrA9hACqgC9Y4UZO+G6ijvQA6AALDtUpBAD5gAwe4XsEAKeAH+Y/9r +6lDYQA6AA7Ds6T3ACqgC6eIA2EAPoAEQAACDJxx9kupQ2EAOgAOw4z6wQAqoAuIoMsl9jwopMs7M +lCoyGmSgZOyoPcAOgACl7TqxQA6AA7DuPrTACqgC12P+5QAAAAAA6lDYQA6AA7DseD3ACqgC0eIA +2EAPoAEQ6lDYQA6AA7DsKD3ACqgCy+IA2EAPoAEQwLDqc5hADoACwOqgksAKoAfNY/6CjCArID8M +jUfgu+HADwgNjewMhsAPYAvb6jyTwA9gC8vrPclACkgHcMCx6jzXwA6AANDtMMrADoAAwe0xysAP +mACi7DrJQAv4DWjaIOyEPMAOgAa07QDYQAp4ApguMskqNhzvgNhADoAAgug6yUAPYA7+7jnMwAn4 +DiYAbBAK7KU9wA6AA7ClNeZTuEAQOAxy6VK4QBfgAqXoUbhAEAANSuN+sEAQCA2q51C4QA8ICYng +iOHADwgEhOmI60APYASk6GbrQA6AAKXkRJfAD5gA1+5I70AKqAKOKzIa4hTwIBbgATsuMh3iFPAA +DLgObmRCMcBg5xnIQA6AANDrGMhACAAAROsA2EAOgACE6YDYQBjAADiit+6ouEAR4A13sarrsZAA +JsAOfsGB7xTIQBA4B4wsCgwJZgK0yqrd4hTwAAjgCU2tWiigBOuluEAQMA36LKAH7qSUQA8ICIjo +/+HAD2ALi+/M60AM8Auw7AyOoAIgAQvpCNggA2ACC++kkD/8IAML74HYIAPgBQvo0NggBWAHC+ng +2AAEIAiL6l08gAV4CJvuuZbAD2AKpu6m5sAJ+A+ILzD82uDrANgABegOz23JE6O/7qS8QBPgDf+x +quuxkAAgwA7vwILoZutACfgPWgAA7kDYAASQC8kOZgLsEshAEEACuusRyEAJ+A89AAAAAADpAthA +E5AI/OikkEAPYAaW6BXIQAn4DyDrqbhAEEAN6h988gjuEe9m60APYAvr6xjIQAn4DwIAACkKgOlm +60AQIAKK6BbIQAn4Du0afOjqZutACfgO4gAA4hTwAARQDtTnGbAABOADJiQagOXf2CAIWAIHaHch +4gDYQA+gARDApezNPMAOgAOw7WjvQAqoAh/iANhAD6ABEIMngz7ApexdPMAOgAOw7TqxQAqoAhgo +MhriFPAgCpgCCCkyGmiTaioyGminZCsyGmi4Xi0yGuysPMAOgACl6wPYQAqoAgziANhAD6ABEMCl +7Fw8wA6AA7DuSO9ACqgCBeIA2EAPoAEQwKXs+zzADoADsO0YsEAKqAH/4gDYQA+gARAAAAAAAADm +ANhACfgPRAAAwsDiFPAf+jAPxsDU4hTwH/ngD9biFPAACxgDFi4yGuIU8CAKwAgOjxLaMA8CAOsR +sEAYsAE/7K2/wBAADduxquuxkAAU0A7N5RWwQAgAAV+DJxx8oupQ2EAOgAOw4z6wQAqoAeAoMhpo +gj0pMhpolDctMhrsqTzADoAApesD2EAKqAHY4gDYQA+gARAAAC0yGuxJPMAOgACl6wPYQAqoAdHi +ANhAD6ABEMKg4hTwH/ToD6bAtOIU8B/0mA+2eGct7RawQBDQDMMmPQEmbIDt1LggDjgEDO1u18AI +AAAaGHx54hTwH/VQBYZj/rQAACY9ASZsgKU6hRKLEexY70AKoAabghSkOuVt18AOgADE6yiQQAqg +Bpa8K+oymEAOgADE6qSUQAqgBpKCFSo9AuqolEAOgAHA6ySQQAqgBo0rLBTqMphADoAAxOqolUAK +oAaIKywY6jKYQA6AAMTqrJVACqAGgysyYGSw5sDE7DrJQA6AACDiO8lAD6ABEIISpTqLEewo70AK +oAZ6wcDlFbBAEAgD0+oymEAUAALd4t3XwBRAAqrrVJBACqAGcaQ07QHYQA+YAMUPAgAPAgAPAgDr +SO9AGLAAPe3EuEAQQA2rsbvswZAACZAOrS4yGmjnEi8yGmj4DMAlIjYa4gDYQA+gARArXBTqMphA +DoAAxOqolUAKoAZbK1wY6jKYQA6AAMTqrJVACqAGVoIU6kjvQA6AAMTrKJBACqAGUrwr6jKYQA6A +AMTqpJRACqAGTSsyYMu14gDYQA6AAMbsOslAD6ABEC0yZ8Ag4jvJQA6AAOTuOslAD4AN0e0wysAP +gA7Rrt3tMcrAD6ABECIyZ8D27zrJQA+AAiHiMMrAD4AIIagiIjZh4gDYQA+gARAoYP7iFPAf8bAL +2OpQ2EAOgAOw7OA8wAqoAUziANhAD6ABEAAA6v/fwBAwB/7AoWSr3mP8fer/38AQMAd+wKFkqx5j +/G3q/9/AEDAH3MChZK1c7P8/QA6AAKXrA9hACqgBOuIA2EAPoAEQAAAA6//fwBAwB63AsWS+xOxv +P0AOgACl6wPYQAqoATDiANhAD6ABEAAAAGwQDuQKjsAM+AhA7QDYQBCgAsHtwNBADoAAsOvB0EAO +gADg7sPQQBCwC7OqiO7C0EAOgAOq6hfRQBCoC6Orquw0qUAQmAuz2SDnOKlAELgLI6y77TKpQBCI +C8OnIu89qEAQcAtzrczuMKlAEHgL06f/rt3nPKhAEFgL4+YSyUAQyAtjp+6v7q7drcysu+caqEAQ +WAvRq6qqIqYiJjEalBStd6YiqCKnIukTySAGIAJE5BvtQA6AAODkHIJADoAAoKU36HjvQBiIATwt +gQDu4ZBAEBACiKraCykUDwIAbZkf6YCoQBAIC7jsgqhAEBgL2O7kkEAQQAKIqpmpuanJqdoP6BEI +Tgxk4Aanjy/wAKr6CghfyYFtCAkKCk+qigoIX8iEY//vAAAA4gyPwAzwDSCsK63MDAxfDLsILPr/ +DKwD6wuOwAzwDMB8uQQucAHK7+og2EAQAA3X7Lk/QA6AA7DuSO9ACqgA0+IA2EAPoAEQZEBcpTfA +gOoA2EAJ+A+OAAAocADiFPAgHsAOCC8KguIU8AAfaAj4KQqG4hTwACAQCJjqeNhADoABt+X/2EAS +MASoLAqI4hTwAA64CMgtConiFPAAFUgI2OIA2EAPoAEQ4g+PwAzwCCCvLqj/Dw9fr+4fepIODk/i +FPAAG2gI/qU3Y/9bJBIT0w/kR7BAEKgNk+ROsAAYWA5ZKHAI4hTwABgACFgtMBIuMBMI3REO3QLi +FPAAF2AJ2y4xCy8xDADuEQ/uAmXgmC8xDSgxDgD/EQj/AmXwiSgxDykxEACIEQmIAmWAeikxESox +EgCZEQqZAmWQayowJuIU8AAgaA5aKzAn4hTwICAQAlssMChlw/cuMCll4/EvMCpl8+soMCtlg+Up +MCxlk98qMC1lo9krMC5ls9MsMC9lw80uMDBl48cvMDHiFPAgHggBXygwMuIU8AAdsA5YwZjiFPAA +HWAL2ezjP0AOgACl6wPYQAqoAHXreJBAEYACoewB2EAKoAVU2kDrEJNACngAkeSo70ANcAyqiqYP +AgAPAgDiFPA/9dADOotG4hTwIBeYAwuMRuIU8D/1MARcLTELLjEMAN0RDt0CztouMQ0vMQ4A7hEP +7gLN7C8xDygxEAD/EQj/AmXwDigxESkxEgCIEQmIAmSDL+yxP0AOgACl6wPYQAqoAFHrSO9AEJgM +oe1470AQcALD7hKxQApwCxniANhAD6ABECQSEw8CAA8CAORHsEAQqA2T5E6wAAwYDlkocAjiFPAA +C8AIWCkwEiowEwiZEQqZAuIU8AALIAmbKjAmdakpK3AELHAF7Xa4QA8IC4sMuwLsd7hADwgLiw27 +Agi7EQy7AuIU8AAJoAIb7G8+QA6AAKXrA9hACqgAK+t4kEAQwAKh7AHYQAqgBQraQOsYkUAKeABH +46jvQA0ICaqMpsCx6LjvQBgwAwzAgMDQCL04ZN2HjjbiFPA/7BADXuwuPkAOgACl6wPYQAqoABcq +EhPrOO9ACnAK++IA2EAPoAEQJBITJEIHHHrZ6lDYQA6AA7DkTrBACqgADCgwFeIU8AAFmA5YKTAW +Kgr+4hTwAAUoDqkrMBcsCsAMuwHiFPAgBKAOWy4wEi8wEwjuEe/u60AOgALXftt7LzAmdfF1KQoQ +DwIA6HjvQBigADnqiLlAEEANuOiBkAASIA6r2kDsBNhAEMACt+3/38AO+A/v7xDYQApwDRniANhA +D6ABEAAAAAAAAOw7PkAOgACl6wPYQAqgD+XiANhAD6ABEOzqPkAOgACl6wPYQAqgD9/iANhAD6AB +EOyaPkAOgACl6wPYQAqgD9niANhAD6ABEKU3Y/vtAAAA6zjvQBCYDKHsSO9AD5gA1e4SsUAKeAE8 +4gDYQA+gARDrOO9AEJgMoexI70APmADV7hKxQAp4AAniANhAD6ABEOs470AQmAyh7EjvQA+YANXu +ErFAC/gMO+IA2EAPoAEQ7Kg+QA6AAKXrA9hACqAPueoYkkAQ0AK37GDYQAqgBJgqcBjiFPA/3wgC +WusA2EAQmAyh7BiRQBFAAtHuErFACnAOveIA2EAPoAEQKzELLDEMALsRDLsCZbutLDENLTEOAMwR +DcwCZcueLTEPLjEQAN0RDt0CZduPKDERKTESAIgRCYgCZYuA4hTwP9voAQjsdj5ADoAApesD2EAK +oA+WKhIT60jvQApwCnriANhAD6ABEAAAAAAAAOpQ2EAOgAOw7MU+QAqgD4viANhAD6ABEOyVPkAO +gACl6wPYQAqgD4UWeRofebDuM9hAEYACwe4R0MAQEAyG6MLIQBAADKbqwMhAEAgMlunByEAQGAxm +lsPuENDAEfgNkekV0MAR8A2h6hTQwBHoDbHrE9DAEeAN0S0UQigwJuYQ2EASAALh6QDYQBCYDKHl +iOjAEEAC1Ohp5sAPmAC96RDIQAv4CmbiANhAD6ABEAAA6P/fwBAwB6vAgWWKkmP9r2wQCB56Lykx +DyowLCswLe3SPkAOMAR56KrhwA74D/vrqutADoABYewUPUARcATaG3om52I+AAUQCLodePfiFPAA +DkAI2h56IuIU8AARyAjq4gDYQA+gARAAizQn4ovox7VADDgKsOmo70AQOAHaD6kBqYgJiBGod+IU +8AARIAKbKzA34hTwICegAQtotsF2ub4pMEIqMEMImRHqNNhAD2AJqXqZqiowRCswRQiqEetE2EAP +YAq6e6mW2iDrOO9AD5gAxO1Y70AKeAGR4gDYQA+gARAAAAAAAOk+ukARgA2D6zSwQBF4DSPoiOHA +DwgJiesKg8APYAkp4qjvIABgAQniFPA/+mAGWSkwMQmIAuIU8B/58A7YJTA0KDA1CFURCFUCaFEH +4hTwP/k4AlUmMEYtMEfkOLjADwgGhg1mAu05uMAPCAaG6IY9QA9gBkbpHj1ADwgGhg1mAghoAeIU +8B/3gAiYGHndGXj7CGgB4hTwH/b4CJh9pwIPogEowpck4ouiiAmIEahE4hTwABBAAJsqMQrqFshA +DLAKoOIU8CAP0AI64hTwAA+QDKfaQOsWsEAKeAGp7BDYQA6AANDqzebADoAAsA3LOOqk58ANcAhL +JjBGKDBHKjBI5TS7QA8IBobpNbtAD2AGhug5uMAPCAaG6FXhwA9gBqbpVetADwgGhuhm60AIAAGU +iDQpwpcVeRPi67RADDgKgKqZ6jS7QA8ICZmpIuoVyAAFuAKYLjAyLzAzJyoj6yLaQA8IDo7sTeHA +D2AE/u3QlsARsALk7EjvAAcwC+1kosLtY9gAB5gIasP66hXIQBMIBPrApey5PUAOgAOw7RWwQAqg +DsDiANhAD6ABENog6zjvQA+YAMTtWO9ACngBeuIA2EAPoAEQANpw6zqoQAp4AWzpENhADoAAsOqb +5sAOgACAC5g46qfnwA5oC/hj/YfrMJJAD5gAou5Y70AL+A194gDYQA+gARDsCD1ADoAApe06qEAO +gAOw7iCxQAqgDqElMQoFC0vqFbA/+VgCO+IU8B/5GAy32iDrWO9ACngBUO0Q2EAOgADACtw46qLn +wA5oApzqFbBACfgO/gAAAAAA6lDYQA6AA7Dslj1ACqAOjeIA2EAPoAEQLjBWLzBXCO4RD+4C4hTw +H+eADn4vMFgoMFkI/xEI/wLiFPAf5uAOv8PW2iDt2JBAEQACs+5Y70AL+AvY4gDYQA+gARAYeLKY +Fhx5U4dH7zy7QA6AAKXoPbtADoADtOd+sEAPmADS6T67QA8ID4/o/+tAEfgNg+j/4cAVUAzn5hDI +QA9gD5/lEchADwgPj+j/60AKoA5mKzBGLDBHDwIA7Ti4wA8IC4sMuwLsObjADwgLiw27Aui74cAP +mACn7LvrQApwCKVkrDcqcpAPAgDiFPAgC9gCCuIU8CALmAMKLDA8LTA97j67QA8IDIwNzALtP7tA +DwgMjA7MAgjMEQ3MAug1u0ARoA3znBAlMEbmN7jAD5gA0upQ2EAOgAO06Ti4wA8IBYXmVetAEDAM +4eY5uMAPCAWF7JE9QA9gBZXo/+HADwgFhej/60APYAVl5RHIQAqgDjYpMDQqMDUImREKmQLiFPAg +CdgBCeIU8D/cmAJZGHkL7xawQBHgDbPsPbtAENgL5O0+u0APmACk7w+KwA8IC4vo7uVAD2ALy+w/ +u0APCAuL7+7rQA9gC9vuDo7ADwgLi+02k0APYAvL7ADYQApwDSriANhAD6ABEC0wV8Cl7E88QA8I +Dd3t2JBADoADsO0UyEAKoA4RjRQqMFYNTAzt1pMf6OAOaq06LqAgL6AhCO4RD+4C4hTwH9eoDn4v +oCIooCMI/xHo/+tADpACguIU8B/W4A6PY/3+jXDuebtAEhAN8+zNPEAOgACl60PYQAqgDfriANhA +D6ABECwwPC0wPQ8CAO4+u0APCAyMDcwC7T+7QA8IDIzodrRAD2AM7AjMEQ3MAuIU8B/0KA7IaKMF +LQoDLXaQ7Jw8QA6AAKXrQ9hACqAN5eIA2EAPoAEQ2kDsPLtAEjAN0+49u0AOgACy6D67QBI4DfPo +3eHADwgMjO7M60ASQA3j793rQBJIDfPozOHADwgNje7d60AR+A3j6MzrQA8IDY3ozOHAD2AN/e82 +k0APYAzs7vjvQApwB/PiANhAD6ABEB94qS7yQCLxfun/w8AQCALu7vDIwA9gApIi9X7iANhAD6AB +EAAAbBAEBQZH5Q/yQBDADDLs2TxADoAApe0gsEAOgAOw7iKwQAqgDbaKIuQg2EAO+A+N6KjlQBB4 +AeroIshACAAAHAAAAMmhWUud7P/fwA+YALrqKO9ACggE8ywgB40iJfrA7AyCQA0IBhJl0Vkddx3v +aDxADwgLzK27LrI6D88KL/0E7/axIApYAk4usjkYdyzv6uUACegP/u/RO8APmACa6ADswA6AAOgJ +AmsJAmuMIJ+i7qPIQA74D5DoITvADwgNjOigyEAPYA1N7aHIAAfACJoZeG4JyQKZpIw+5LnLQA0A +AOzaIOswsUAPoAAciifsfDvADoAAQO1sO8AO+A//7qCSQA0ABDrkpMFADygOXu+gyEASAALunqju +qchAEEACuuQnyAAIuAutLcJ9GXe6m9GZoyjCfZiiL8J/683LwBAIAv8vxn+ULpQvJCYQJCYRJCYS +JCYTJCYUJCYVJCYWJCYXJCYYJCYZJCYaJCYb5CzJQA6AAKXsZDxADoADsO3D2EAKoA1eJCQEJCQF +lCIkJCAkJCEkJCIkJCOUKZQqlCuULCQlGuQrwUAPmACj6wDYQA6AAMDtINhACngBXeIA2EAPoAEQ +aGIc4gDYQA+gARDaIOvIkUAOgADS7ADYQAoIB4lpYuKLJy+5FO6wkkAQSAyrBe4B7uCQwBCAAv/v +tMFAF4ACquq5yEASwAXqH3ghLLEViSAYduKqwuK5yEAPCAmJ6CDIQA6AAMHvIshAD2AJyZkh4gDY +QA+gARAowoDrgchAEBAD/J+jLsKAnqItwoLrwMxAEAgC3e3CzEAJ+A7pjCDpwDxADoAA0evcOsAO +gAAg66DIQA8IDIzposhAD2AM3OyhyEAPoAEQAGwQBIw1DElRypNokQfiANhAD6ABENog6zjvQA+Y +AMTtWO9ACngCPOIA2EAPoAEQG3b8Gnf2K7Kf7I2KwBQ4DKqtuwm7Eauqiacfdt7olKFAECAM4+/u +5UANAALIjZkvoAbu18hADoAAsezb0UAX+ALP7KbQQAvQBHriANhAD6ABEAAAAO0A2EAJ+A/WbBBM +GXc3JRaK7Ce4QBRQDIHnMLBAF/gCVNZQ7AyCQAxwCIDpd+UgCigCCIkiGHZm7VOQQA4IDkkH1jnt +RjrADwgKzKiq6hvMQBHQDKqza+sZzEAPGA3c7du1ABBAC7orEosrsjkNuwHrGMxADQgM6y+CShp2 +49MPZPGk6q+zwBJIDJjTD9MP6pvlAAyoD6ksIBQPAgAMTGTsJNEgDeAMLOgwkSAAoAEEsErpEJFA +GFABOggDaAkCayIWhOsQkUAQEAOh6qCRQAqgAEnYoOoczEANCAF66xCRQA6AAKPsiO9ACqAJucl/ +KxKI7DiQQA+YAKLtaO9ACgAPtuuo70AIAAAKAAAAAAAA6BCRIACgAQSwSum470AYUAE6CANoCQJr +2iDsANhADoAA8O0ysEAQGAzj7FjhwA6AAGCou+YQyEAKAA9jLBKLiicrEonryctAD5gA1OqgkkAP +mAC07ADYQAoADHviqO9AD6ABEIgnL/rA64iwQBBYDJjugJJAEKgL2O4XzEAPKA7+LhaFrt3t0JCA +BvAIuexO4cAQoAqYLhaGq+qumemEwQAGuAutyT/JTem470AYUAE0AwNoCQJrKhKH6qCwQBQwDOEF +VgIOqgjiFPAAB/AI2i0Shw8CAJrQ47jvQAn4DkeIFBl3ZgiIVwmICiiC8C0SiuoUtEAQgAKx7Be5 +QA+gABjoHLRACfgOyAAAAAAAAADiANhAD6ABENog68HYQA6AAMDtENhACggGr+IA2EAPoAEQ2iDt +GbRAEMACvOwA2EAKCAao4gDYQA+gARAAAAAA6ijvQAvQAa9j/jzrANhACfgOAQAAAAAA45jvQA6A +AKDqi8hACfgNr+va6MANAANTCk8UuP3tTeXAD5gAg+m470AYUAE9CANoCQJrKRKFqjgPTgzpkJDA +GFABPggDaQlCay4Shi0ShQruDK7dLhKHLdxA7eDIQAn4DxIvEoUoEocv/EDvgMhACfgPAQBsEAYo +IHLqJbhADoAAQOmA2EAO+Axg6YjrQA6AAVToItOAB+gIWudrOcAOgAEy5bDYQBIQB6PiFPAABDAI +OuOQ2CANEAsK4hTwAAQYCFriFPAgBKgJCuIU8AAOkAg6wLniX9/AEEAHutEPAADiSO9AD6ABEOoo +70AKWApp2iDrANhACggBHCwgcuIU8CAR+AIMHnYHIyQF7uK1QBAADPItcpqv7gnuEa7dj9cu/CAG +7gHk9MFAEgAC7p75nvgk1AWPImTxeOoluEAJ+A+ViCJlj4vqKO9AC+gBhmWv58Ca6SXQQA6AAKqL +ImW/ceoo70AL6AFeZa/NLSAGjCLjJdBADoAAqe3RkEAOgADh7SbQQA9gDOzsIshACfgPRgAAAIkn +KJkUwLDukJJAEYAC+e2ZsEANCA6og/DvN+jAFkACM+c758APKANu52HYQA0ABg2I4H2BVizQAOlR +2AAGQAhc4hTwAAYACJzogdgABcAIfOmR2AAFgAiM6KHYAAVACJziFPAABQAIjCnhBSzQB5kQo5ns +zOHAEgACmazd7NjvQBHIBZ3tyO9ADngKjO3S2EANAAHLLLAAfcFpjL7AsOz+6MAWQALMDss5Zb/n +LSBO3EDtfOfACAAAT4wQ7NzowAn4D8UAjSJl3nTqKO9AC+gBbWWu0C8gBu4isEAOgACM6CXQQA6A +AKzv8ZBADoAAge8m0EAPYA6O7iLIQAn4DkMAAAAAAOwh08AJ+A3+iSJlnizAqCokBeqA2EAJ+A4k +E3UpDwIADwIAKzJK4hTwAAeAC1vtdLLAEkgMw+3L5QAHAA/cLiIV7CmoIAXYAA7aIO0A2EAOgADg +7//YQApYCbQsISPtANhADoAA4e8g2EAPmAC66ijvQApYCa3Am+k5yMAQMA2C7yKwQA6AAbHrJdBA +DoABoeiBkEAOgACx6CbQQA9gD7/vIshACfgNli4gBxx1Fu8iukAMEA7g5CLSQA8QDs4t4e6v3S3l +7ikgImSQYyrCg48r4KnvQA6AAIHgiPDAF/gCqeiPl8APoAoKqv8I/wLvKshACfgNewAA7UjvQAn4 +DhbaIO0A2EAOgADh7yDYQApYCYbpYNhACfgPYtog68HYQA6AAMHtYNhACggFrmP9cQCLKesqyEAJ ++A03AAAAAAAAbBAEiz8Ydk6JPpmw7D6wQBHAAmPkejnADoAAUOKa6MAOgABw68HIQBZAApnlP8hA +D1gHqeU+yEARQAc0LYJ9HHWHltGcPyuCfZs+KoJ/0nDmjcvAEAgCquqPy8APoAEQJIKA5kHIQBAQ +AyiSPy+CgJ8+LoKC0nDmgMxAEAgC7u6CzEAPoAEQAGwQBIoix43qKYPAEIAB6gioAegiyEAPoAEQ +AMmRWUkt66jvQBAQDMLqKO9ACqAGHNEPAABsEASJJ+icsEAOgAJT5kLYQA6AAnXikJNADoAAsOKJ +6MAWQAKI6YvnwA6AAjnksthADQAEu2AAEIq+wLDqLOjAFkACqgyrOcuxLLAA0w/TD3PJ5C2wENMP +DwIA6r+5QBbICE11oQV2oQJ3qcvqKO9AC/gPteuo70AJ+A/P0Q8AAGwQBOgM38AQOAxCJUwg6FXl +QA6AADDjRMFAEgACVZVJ5UjIQA+gARBsEAQoIHB8hxoqIAeLIOoqgEAKeACHyaLiqO9AD6ABEAAA +AADiANhAD6ABECsgcCwK9wy7ASskcOKo70APoAEQbBAEFXVBIlJ/5gDYQA0AAoIiUn2EIYkgmUCI +IJSBliGWICNSf+M/l8AXwAIi41/LwA+gARAiUoCEIYkgmUCIIJSBliCWISNSguM/l8AXwAIi41LM +QA+gARAAAABsEAboJbhAEDgNsuzsOcAPmADj7SewQA6AAHDrC4JADQAMGAUIR+rQkyAIGAIIGXRU +5ts5wA8IB8updy9yOga2CumlOMAQIANm5maxAAtoC08vcjnm/OUACxAPbx90X+0gsEAQOA2y6cLI +QBAYDVPlw8hAEIACnOjV4cAMAAuy6rvgwA9gBVTlwchAD2AL++vAyCAKwAJY7jCRIACwAQSwSujo +70AYUAE6CANoCQJrjSDAMOpQ2EAOgAK47Do5wAqgCrcsIAQkdjnTD+0luEAOAACczNFkMJziOO9A +D6ABEC/CuWXfPOjHt0ANCArv7IGwQA+YAKyPgC/GAC2CACzWASeGASeGACmiuSmc/ymmuekgsEAX ++AOo6a7LQBfAAtidJyckIOch0kAJ+A76jNzAkOrP6MAWQALMD8k57LLYQA1wDulgABQAAACPnsCQ +76bowBZAAv8G+TlkntEmkAB8aedknsjiANhAGFABNAMDaAkCa9EPiScadM7rANhADvgPz+yQyEAQ +QAKJ6yfIAAcYC5oedWwq4rcSdMeYoZKTL+K3n5It4rnSMOjnz0AQCALd7enPQA+gARAAiiLAznrA +C47SZeD5x/EPqgGaImSgitog6zjvQA+YAMTtWO9ACgANx+Ko70APoAEQAIugjbGIsJjQj7Dt8chA +DoAAwOywyEAWwAKL7LHIQBhQATQIA2gJAmsZdKcsvMjiFPAABigLyR91SCzyvRl0jZvBmbEo8r2Y +sC3yv+v9z0AQCALdLfa/j6DjANhAEAAM0ur46MAWQAL/6PPnwAn4DlwrvBjqKO9ADoAAwO1I70AK +CASOY/9eHXU0ItK6H3U1mCGfky7Sup6SLNK80jDo2s9AEAgCzOzcz0APoAEQKMK67IGwQA+YAKyP +gJ/AjYCc0ZeAl4Eporywmemsz0AJ+A5YAAAAAOsQyEAKoAgm66jvQBAQDMLqKO9ACggBe4oi6xCw +QAn4Du8ZdRgvksDr8chAEBgD2Z2xLJLAnLAoksLrkMzAEAgCiOiSzMAJ+A87AABsEAguIAQmChjl +C4aADzgIbusVyCAH+AILKzAQ6BDYQA6AAsvu0tgAILgIy+8j2AAjIAjr5mLYAAsQCPvoANgADOgI +a5gWwMDqJ7hAECgMkcDQ0w/qCIIgCQACCesisEAQAAxinRQdc4PoZuHADhgKG++uOMAPCAvIrbsu +sjoPjwov/QTv9rEAG6ALTi6yOe/t5QAbSA/+7tg7QBCAAp3vM7hADAAIouXnO0APYAZk5dLIQBAo +DFHm0chADwAIqO/TyEAPYAjo6NDIIB64AlXoMJEgAHgBBLBKbakFCANoCQJrwDAoIATkuctADQAM +mMjG6ijvQAp4APOJFg8CAA8CAGSQB+oo70AKeADU4jjvQA+gARDqJ7BAEBAMg+iLh8ANGA8aFnTI +GXNqCMxT6DiQQA+YAPPpAOzAFwACNuYS8EAQgAKT7xHwQA+YAOPuE/BAGFABPAgCagkSauq7OMAP +CAbcv2QERBTmq9PAEAgCROSv08AJ+A6ohieJbCZsMOIU8B/2yAhpK5zIZL7OwOHuFMhACAACewAA +AIwV4hTwIAVwAgzsENhADoAA0e0WyEAJ+A6YLiAFZe80ZT8xiScfc/nmANhADvgPf+eQyEAQQAKJ +5ifIABuICZ9gBAGPFeIU8CAHqAIPwGHmFshACfgOWQAAAO8ysEAOgACl7Ek4wA6AA7DmJbhAEAAM +0uYQyEAMeA/47xfIQAqgCZ2IF8J24hTwAAugCHjCm+IU8AAJsAiYwq3iFPAACjAIqMOy4hTwAAdQ +CLjiANhAD6ABECkgImSQRy4gBxxzGO4OgkAOgADw7yLSQA8QDs4t4e6p3S3l7ikgImSS8yvCg+C5 +70AQWAzy4IbwwBf4Aqnmb5fAD6AKCgr/CAb/Ai8mCiggICwgBcCUCYgC6CDSP/fIAlwICkPiFPA/ +93AKWoonwLArJCDqoJFACgALTsDALCQU7CXQQAn4DtIAAI0nyN7qKO9AC/gNLOoo70AL+A5cKSAF +6IDYQA0ABUkuICAI6ALoINI/9zACWQgPQ+IU8D/22ApfiifAsCskIOqgkUAKAAs5wMAsJBTsJdBA +CfgOv9og6zjvQA+YAMTtWO9ACnAPP+IA2EAPoAEQAI0nZNBn6CDSQA6AAPDvIdJADoAA5+4l0EAJ ++A6H2iDrOO9AD5gAxO1Y70AKcA934gDYQA+gARDaIOs470APmADE7VjvQApwD1ziANhAD6ABENog +6zjvQA+YAMTtWO9ACnAPq+IA2EAPoAEQAAAWdCEmYrlkYfobdB4psreNkY+QL9YALpIA7eHIQA6A +AMAslgAslgEqsrkqrP8qtrnqILBAF/gDueq+y0AXwAJp5ifIQAn4D1TaIOwA2EAPmADU64iRQAoI +A2PaIOs470APmADE7VjvQAoADHSMImXOII0UZN4b2iDrANhAC9AAk+IA2EAPoAEQAAAAwKXsMDjA +DoACuO4470AQAAzS7z+5QAqgCQ4oMB/C4+IU8AAIoAjowvTiFPAACFAI+MJl4hTwAAgACGjaIOsg +2EAKAADH7ADYQA6AAIHoFshACfgLuNog6yDYQAoAAJBj/+IAjSeK3I+hjqCe8IagLdww72HIQA6A +AODuoMhAFsACiu6hyEAYUAE0CANpCUJrH3M1JqzI4hTwAAW4C28Zc9Ymkr0fcxuaYZ+hLpK9nqAo +kr/qnc9AEAgCiCiWv4jQwDDtiejAFkACiOmD58AJ+AvXHXNiCApRra3pJ7hAFAAN3SwK++yZ5UAP +CA3t7M/YQA9gCdkMmQHoKMBAD2AJqekn0EAJ+AvhG3O8L7K3HnMWmPGeky2yt52SKrK56LfPQBAI +Aqrquc9ACfgLh4Yp5irIQAn4DSraIOs470APmADE7VjvQAv4DdziqO9AD6ABEBlzqiaSwOphyEAQ +GAP5n6EuksCeoCiSwuqQzMAQCAKI6JLMwAn4D0kbc6ApsrqNkY+Qn9COkO3hyEAOgADAnJCckSqy +vLCq6rzPQAn4Dgkac5Yuorodc5aY4Z2TK6K6m5Imorzoqs9AEAgCZuasz0AJ+ArvbBAE2CCJgBdy +5oqR7g06QA+YACPmkLBAD5gANOagyEAPmABF65CwQA8IBcKlleIIO0AWQAJV6rHIQA6AAGDmkMhA +FkACqdMP5pHIQBhQATQFA2gDAmt6cy4vIn2Z8Z6RLSJ9nZAsIn/pLcvAEAgCzCwmf4uAwCDovOjA +FkACu+yy58APoAEQACwigOnByEAQEAOym5EqIoCakCYigukgzEAQCAJmJiaCg4DAIOg26MAWQAIz +5jLnwA+gARBsEASFIONYlMAPaAQlwCDkMufAD6ABEABsEAQqICArCvPTD+uq5UAOgABA6iDSIAEo +AgNpMRvs39hAEMAB6gysASwkIOoo70AL+A1KLSAgZNBp0Q/jENhAF9AB+i4K/uoo70APKA7q7iDS +QAv4DUwoIAccceHpIrpADBAIgOQi0kAPEAjIL4Huqf8vhe7pIrpAFBgM7Ior4OnvQA0AA2ngO/DA +F/gC2eDd8MAX+AK7raoLqgLqKshACfgPjIon6qCRQAoACh8kJBTkJdBAD6ABEIsp6yrIQAn4D20A +bBAEKiAFwIh6gzflANhADQAEeiogIMBB46nrAAEoBTrpINIgBGACA+oo70AL+A0a6ijvQAv4DPgq +ICAKCkFqo17RD9og6zjvQApwDbhlr/AqIAVj/7SLJ2W/txtyaiyyf+m9s8ANAAq8jpGIkJjgj5Ce +8ZWQlZEtsn8t3P8ttn/rILBAF/gDyevOy0AXwAKpmiclJCDlIdJACfgPegAAAOoo70AL+AzP5CXQ +QA+gARDqKO9AC/gNAi4gBxxxmO8iukAMEA7g5SLSQA8QDs4t4e6v3S3l7ukiukAUGAy8jyvgue9A +DQACGeBI8MAX+AKp4KrwwBf4Aoiq/wj/Au8qyEAJ+A8njCnsKshACfgPHQApsoCOkYiQmOCPkJ7x +lZCVkS2ygrDd7bLMQAn4D1YAAGwQDOQdyEAQOA2S5RrIQBCADWPqM7hADoAA2+obyEAMEAmQ6R7I +IBOQCQbuANgAFJgI1i4WCI8iwIDoF8hADhACX+IU8CAOkAIGwKCaHIkeGHFW7JXhwBBgDMGoVStS +OqxMtMziFPAAE4ALyxxyuQycCizNBOtZs0AQsAzMDLsB57jvQBAgDZLtDDpADRAFS+sWyEANCAsJ +LoJK0w/TD+nQtsANCAruL4JJ6fvlAA0YD58qIBQKSmTqJNEgGaAMKuIU8CASIAgGHnE+G3FAHHH0 +7BnIIAgAAgaIG+hzyEAQAAyC63DIQBBQDPHqozlAEIACl+pyyEAPCAiI7w+GwA9gCIToccggFggC +X+gwkSAAeAEEsEptqQUIA2gJAmvAgOkwsEAX+AKkDKoRqnrroJEAD1gCqWhiHysgBOwdsEAQKA3S +7FnLQA4AAJvM0WSDEuKI70APoAEQLhAU6B/IQB7ICC7sANhADoAA0OoUsEAOgADg72g6QA6AAIDv +EMhADoABYOYSyEAOgADw6BHIQAoACqmLHiu8FOscOUAPoAIbwJEAmRrrYDlAD2AJuem0y0AQeAyB +jBkMA2kKQmsMA2gKAmvuHLBAEGgM0a7d7R3IQAn4D2cvEBTiFPA/9+gIX4oeKqwU6to5QA+gAhrA +kQCZGuqZ60APmACM6eTLQBAwDKEIA2sKwmsIA2oKgmuHFudwkkAJ+A7FGnFAiTSINwqZAekUyEAM +MAiI6BTRP/DgCFjAwewp00AOgAC36xzIQAn4Dg4tIBSk3e0k0UAJ+A5z2iDrwdhADoAAwO0Q2EAK +CAGbjhjTD9MPZOGt2iDrOO9AD5gAxO0asEAKAAqqjyLM/IgXyIjaIOsA2EALyA7J4gDYQA+gARAA +2iDrENhAC/gPDeoo70AKcA5UiRoJCUfiFPAgCjgCCcCh6hjIQAn4DXjaIOsQ2EAL+A7R6ijvQApw +Dklj/9MA6wDYQAn4DaTrHrBAD5gAou0Q2EAOgADA7USQQA9QDJ3ruJFACggBc2P/XwAAAAAA6ijv +QApwDjJkoSCMImTNr2P/RwAnIAcuIAQdcLfnLIBAEAAM8grMEA3MAuj94cANCAeenKTvWjhADoAD +kJmn76bIQA6AAOTv2jhAD2AO7Z6l6qCSQA6AAOPvAOzAGDgAPgoCayogB+2wOUARAALL6SioQA6A +AHLuQDpADBAKoO62yEAPCAoK5HflwA9gCantmetAD5gArNMP6bTIQBhQATcDA2gKAmvqANhAEgAC +u+rG0EAQIAKU6R3IQAn4DXIAixjoJ7BADQAHu9yQ6xDYQA+YANTqgJNAC/gOVuio70AJ+A04AAAA +AOoo70ALyAxBY/zEjCeIzCzMMOIU8B/1kAjILYzIZN6nwOHuF8hACfgOVtog6zjvQA+YAMTtGrBA +CgAMGOKo70APoAEQLyAF4hTwP/bACF/Agugl0EAJ+A7O3JDrENhAD5gA1OqAkkAKAAa26KjvQAn4 +DMGKJxtxHOwA2EAO+A/f7aDIQBBAAprsJ8gABbALqx9xwizyH+nByEAT4AK/m6Mi8h+Soi7yIdKA +6f/JQBAIAu7u8cpAD6ABEAAAAAAAAOM1OEAQGALk7h3IQBBAC+LspMhADBAJcOCZ4cAPYAs/66rI +QA9gDp7rK7BAEEgMkumsyEAOgACR663IQA9gDj7jJLlADoAAs+6oyEAOgALg7qfIQA9gC73rpchA +DwADg+sTOEAPYAOT66bIQA6AAJCZqeOryEASAAK66STRQAn4DAcScZUtIiIccY+Z0ZyjKyIim6Iv +IiTpIspAEAgC/y8mJOKI70APoAEQAABsEAgdcRHsMLBAF/gCpOoTyEAQOA2y6hLIQBAQDJLtR5BA +DygM3OwVyEAMEAuw6xTIQA4ADHkZcAXsUDhADwgHy6l3LnI66CS4QA8YDMvsy7UABtAL3ityOQy7 +Adqw5rjvQA0ADStkgIItkkofcIZk0KHv/7PAEkgM6e/r5QAEsA/+KCAUmhcISGToJNEgE/AMKIkV +HHCr7bo4QA4AC2kFD0foMJEgBzgCX+pPl6AAoAEE0w/paO9AGFABOggDaAkCa8CAihOJFQyqEapm +ZZFDizDiFPAADBgCq+wSsEAPmAAo7HnLQA+gARAAAC0gFKTd7STRQAn4D53aIOs470APmADE7Vjv +QAoAC4riqO9AD6ABEADaIOvB2EAOgADA7RDYQAoIAJNj/88AAADrANhACfgPLIsU7hDYQA6AAMDo +7ObAD5gAouu4kUAKCACJY/+njxTboO/0kUAOgADh7xw3wA+gAh/g7vDAD5gAnezu60AOgADS7vTL +QBhQAD0JA2gLAmvmoJJACfgPGAAAjicl+sDq5alAEQAC3uXV5UAQSAyO5RHIQBCgCr6lpexJ4cAQ +gAKI6OnIQA9oC5vou+xAEgACVevkwQANyAlYaJs+qJoqrPDrFsgACiALpeto7yAA8AEEsE5t6QUI +A2kLQmuK0S/ZBKqa7xbIQBeAAqrrFrAAECgIWurRyEAPmACKZb6yYAFQjxQZcEvv9JFADoAA4e8J +N8APoAIf4O7wwA+YALbs7utADoAA0u70y0AYUAA9CQNqC4JriRPplJBAEQACZukSyEAJ+A57LyAH +7SCwQBAgDcIeb5DrSDfADAAJ8uja4cAPAAmp7pnrQA0IARwrZgIdb4npYMhADoAAw+9A2EAOgAPg +7mPIQA9gD/rvYchAEIAClu0A7MAYOAA8CQJrLSAH7D43wA6AAKLvYJJAEEALsu7NOEAMEA3Q7mbI +QA8IDQ3tu+tAD5gAn+Sq5cAPYAvL0w/rZMhAGFABOgMDawnCa44SwCDi9tBAECAC7tKA7nnLQA+g +ARAAAADqKO9AC8gLI+oXsEAJ+A16CFsMC08U0w/qaO9AGFABPwgDaAoCa4gRC2oID08M6ICQoACA +AQ8u/P9t6QUIA2kKQmuIEe/UoEAPaAq5qogojDDo0chADmgGP4sRwODu1MBAEgACu+vRyEAOgACA +69DIQAn4DUcKiAzo6chACfgORJlg62LIQBCgDcLkK7BADoAAM+RpyEAPYAM642HIQA6AAOHjwzfA +DwAMjO7M60AMEA7w7GfIQBBAC8Lg7uHAD2AEPeRmyEAOgAJA5GPIQA9gDOzjzOtAEEgM4u5oyEAO +gAAwk2WcZOMk0UAQEAwhsyIidjniiO9AD6ABEIgRKIxA6NHIQAn4Df5sEARoQwpoQlbiANhAD6AB +ECggBrCICAhH6CbQQA54DsiJIiwwAceu69/YQA8oCanpIshAGMgDHHvJzdog6wDYQAvIDQDiANhA +D6ABENog6zjvQApwDTDiANhAD6ABEADaIOswkUAKcA0T4gDYQA+gARAAAGwQBOYPN8AOmAJwByco +2iCmduVlt0AKUA5PZECY6We3QAz4DqDraLdAFcgMxugQ2EAPoAIT4IjwwA74D/8PjwPl/eVADygM +z+xpz0APKAu/62jPQA8oDu/g7uHADygPn+9nz0APYA3t7yU4QA8ICgTsvTbADxALM+wu4cAPCAvL +r+6sfKy77eDIQBBIA7vpZ7dAFeACu+q4z0APmADE6rfPQA+YAKLpiOtAD5gAs+hnz0AKUA4F3SDu +OO9AD5gA9OpA2EAOgAKw7LM4QAqgBUTiANhAD6ABEGwQCCcWAOxjOEAOgAKw7SjvQA+YAOPoWOHA +EIgMkekVyEAPCA8E6RLIQBCADKHqFMhAD2APj+oRyEAPYA/26kDYQAqgBTEZbq/nuzbADoAA4exC +OEAOgADQ6v/fwA0ACxRoQQfirt/AD6ABEC86IA8vKKf0qf8DOQkMmRGvmegUsEAQKAzx6xKxQA+g +AhPg7vDAEFADmeeQlMAPCA/v6/vmwA0ADtgsQrfo8DhAD1ALv+uQxcAPYAzO7EfPQBAoDKEqldXo +lMrADQAN5WlRlIoU6xWwQAqgCrfA2OwA2EAKoAZ2LTro7ADYQAqgBoHtcK/AD5gAouy470AVuAzk +6zjvQAp4CX3iANhAD6ABEAM7CeA570AOmALw7y/qQA+gCA4KiAOn9Oy74cAVuAzkqf+r/wjuAe5H +z0AQUAP/LPZk7fXFwA0ACKXiFPA/+MABVYoU6xWwQAqgCpfA2OwA2EAKoAZVLTro7ADYQAqgBmHu +R7dAD5gAou0A2EAPmADL6zjvQAp4CV3iANhAD6ABEChCtwrrAwuIAShGty2V1eyUysAOeAKl4hTw +P/XQAVbqKO9AD5gAs+1wr8AQIAzB7ke3QAp4CU3iANhAD6ABEMpi4hTwP/SAAVbqKO9AD5gAs+wU +sEAKeAlE4gDYQA+gARAAAAAA6ijvQA+YALPsFLBAClAOHeIA2EAPoAEQbBAGKTACZJFgaJFD4q7f +oABAAgnRDwAAIjAG6IM3wA6YApAJKR2piCiCmyQwBeMzsEANCAAYwKTsqjfADoACsO0o70AKoASt +4q7fwA+gARAiMAbmMjfADpgCcOcn6EAQOA1D6ijvQBBACzOmduVlt0AKUA1/ZDCY6We3QAz4DqDr +aLdAFcgMxugQ2EAPoAIU4IjwwA74D/8PjwPl/eVADygMz+xpz0APKAu/62jPQA8oDu/g7uHADygP +n+9nz0APYA3t7yg3wA8ICgPssDbADxALROwu4cAPCAvLr+6sfKy77eDIQBBIA7vpZ7dAFeACu+q4 +z0APmADD6rfPQA+YAKLpiOtAD5gAtOhnz0AKUA01wKTs9jfADoACsO0o70APmADk7zjvQAqgBHXi +ANhAD6ABEMCk7LY3wA6AArDtKO9AD5gA5O8470AKoARsZEBP4hTwP/egAVTaIOs470AKcAwd4gDY +QA+gARAqMAbrN7hAEBgNw+00uEAQKA3j7zKwQBAYDJOZECgxCZgRKTEK6RLIQAv4DxniqO9AD6AB +EADaIOs470AKcAxX4gDYQA+gARAAAGwQBBJvOSIgKCI0CCI0CSI0CuI70EAOgAAg4jLQQA+gARAA +AGwQBOIA2EAPoAEQAAAAAABsEAQmIhDTDw8CAOUA2EANAANG6CGxQBPADXIabyUZbiltCBsjkp8i +ooeoVKQz6TPhwBAIAlWjIucm0UAQOAVlY//d0Q8AAABsEATiJahAD6ABEABsEAYVbfDkANhADoAA +YO5yN8AOgABw7BDYQA+YAJPpEMhADoAAMO7uq8AIAAAywKDsaO9ACqAJ3Y8R7BDYQBAQDOHrM+tA +D2AHp6b25VGQQBAIAkTiJJAgAaAJBABABA4IG3+H5osgaLAzKlAwAKEEAMka7hLIQA+QCZDqEchA +FXgJueKu38APoAEQAIsQ47HIQA6AACDnsMhAD6ABEN1A6iDYQA6AALDsIDfACqAEBOKu38APoAEQ +bBAEBABoyFoDImDkBOzAD6ABEADjIuBAD6ABEGwQBOV/NsAOmAKACCgoqFUuUrrpVLdAEDAEPsiR +0Q8A6kDYQA6AArDs/jbAD5gA0u8470AKoAPt41rPQA+YAKLrOO9ACngIxxZu0dMPJmAo5ADYQA14 +DJbqKO9AD5gAw+tI70AOgADQ7lS3QAp4CFuxRHZJ4mP/pGwQBOonuEAQEAyCHG1T0w/qCYJADgAK +aO4VNcAPCAvJrLsssjoOngru67UABUALTOUPhsARyAzb5xU1wAwABqLqZuDAF/gCpO7Y5QAEQA/t +LCEH7TKwQBAADJIebUrugshADwgOyu6DyEAPCAmJ7Y2HwAygDMDszOHADwgNDelJ60APYAbW6YHI +QA9gBsbpgJFAD2AGduaAyEAakAIvKDwQ4gDYIABoAQRtqQUIA2gJAmvkuctAD6ABENog6zjvQA+Y +AMTtWO9ACgAI3OKo70APoAEQK5wY6ijvQA6AAMHtSO9ACgAN5mP/zwAAhiflDN/AEKgLpuxgkkAQ +SAwm42ShQA8oBVylrexJ4cAQgAIi4mnIQA9oA5PoM+xAEgAC3eNkwQAFIAnSaJs5opoqrPDmgJFA +EeAHreho7yAA8AEEsE5t6QUCA2gIAmuKwQ8CAKqa48SgQBeAAqp9oXXqwchAD5gAKmQwR+S5y0AP +oAEQAt0MDUoUbakFAgNpBkJrCk8MrYoqrBDoUJCgAHgBD7D+bekFCANqCoJr78SgQA9oAtkCUggi +LDDiwchADngLz8Ag4sTAQBIAAoWYwJjB5LnLQA+gARAAAAoiDOJpyEAJ+A9ZIlxA4sHIQAn4D4sA +AGwQCOIVyEAQgAyx5xY2wA+YAJfmFbBAD5gAJpsXmRSnZufnNcAIAAALAABkUIHNLCpigAo4AeVf +l8AXiAiEiRRkkFSakOIA2EAPoAEQAIwXZMBMDeowHmzOLuI5wPUPLzcP7igO3QgtFgYMAgDpcrRA +EDgMoehsNMAPKAmpCYpsCKgKiIQLgAAM6jCLFgy7DGux1mP/mQAA4gDYQA+gARDqKO9ACpgKbGP/ +hAAAAAAA7RWwQA+YAOPsczbAD5gA9OoQyEAOgAC46hDYQAqgAzHiv9/AD6ABEGwQBAXqMBZsrChi +OcCVCSk3CYgoFG1MqFVgABAGqAqIhAuAAAnqMAlZDGqREwwCACpCggo6AQqKbGUv32mm3NEP0Q8A +AAAAAGwQBBNtYeb1NcAQQAJS6vU1wBEYByMrYn2VsZojKWJ9mSIoYn/lbcvAEAgCiOhvy8APoAEQ +L2KA5fHIQBAQA+aeIy1igJ0iLGKC5WDMQBAIAszsYsxAD6ABEAAAbBAEE21K5t41wBHAAlLqIzXA +ERgHIytifZWxmi8pYn2ZLihif+Vty8AQCAKI6G/LwA+gARAvYoDl8chAEBAD5p4vLWKAnS4sYoLl +YMxAEAgCzOxizEAPoAEQAABsEAgYbNoabe4rgqHpqLRAFHAMqiiN5iiA4eqkukAPCAubq5nqFchA +EJAB+CqdASqsgOoUyEAIAAAMK50DK7yAmxSMFeIU8CALKAE85MjvQA6AADDiANhADoAAcOatNcAI +AADNAAAAAOdbwUAQOA3FI1Q57c/YQA+YAKXtzOVADvgPv+tW0UAPYAzC7FfQQAqIAo+KV4qux88s +pvvsqs/ADoAE4O6mz0AQGAPaLNUKLNULJ6a+LNUq7NvCQBAgA7rnrszAFQACu+uozsAQIAOa66nO +wBegApnprc/AEGgN9eyizUAQYA3l6a7PwBAADNUcbbaTEJ0R4hLIQA6AA7ToYLxADoAApegTyEAK +oAKsK2CAADAECwsbf798jBXiIZBAEAgCM+RBkAAEIAg8H2yPHm2kKPKXJeKIqDgJiBGoVedY00AQ +IAyBLuKIL/KXKYAM6VzQQBBoDYivT+hd0EAOqA2M6FrBQA8ID5+v7i5WEClggAAgBAkNG+IU8B/3 +WAP9bQgPsSIAIAQJChviFPAf9sAD+mP/6QDApezINcAOgAO07TjvQAqgAoVj/23RDwBsEATpDN/A +EAAMgukp5UANAAST0w9tCC9zgTzqMLhAEDgNww8CAOzM4cARcARKKiEFrDOpqyu8QOc470AQoAWz +43jvQA0AAUdj/8cAAAAAAOo36MAJ+A/s7QDYQA9oDjgO0zjiOO9AD6ABEABsEAQZa/Yca/QWa+nn +AthAEEgM4uczyEAQWAzy7jjIQBCgDVLmMshAEDgNgu85yEAQAAyi6yioQA8ABYXoDYJADAAIguqI +4MAPCA0N5UXrQA9gC9vlN8hAD2ANyuUA2EAPCAqK5TXIQA9gCJjtNshAD2ALy+s0yEAOgACz6DDI +QA9gCrqaMSUkFOIwk0APoAEQAAAAbBAEJCAi5sw3QA6AAFHjK7BADQACdCZifwBhBOBV8MAX+AJk +5V+XwA+gBgamMwUzAuMqyEAPoAEQiCnoKshAD6ABEABsEATlyzdADoAAQSVSf+BZ70AQSAwy4Ebw +wBBYDCIAUATmb5fADvgPfwdmAwYmAeIy6MAPaANj4kLnwA+QAzGjItEPAGwQBugluEAQOA3i01Du +CoIgBiAIWOspsEAQWAzy4hTwAAWgDr+MJyzBFMGQ4hTwAAUoC8kda40MrBGtzC3COsBh5QDYIAUY +A00Za4gJqQroybNAFNgMmemN5QAEaA+Ym9jv2chAEEALcuZZN0AMAAni4KjhwA8ACanoCTdAD2AH +h+YgsEAPYAlp6dDIQBCgDZKV1eh360APYAiGmNbn1MhADwgGhucQ2EAOgAKA6NPIQA8ACYnndzdA +D2AJeenXyEAOgACT59LIQA9gBpaW0SUkFCnGOQMKR+IU8CAE4AJa4gDYQA+gARCLImSwsgMMR2nC +dIknLpkULZwg7hDIQA0ACZ6KmRRs5OcM38ANAAqa46LYQAgAAAdkoJmL0Ofe5UANAAN6erEv76C4 +QBA4DZoPAgAPAgDsmeHAEPAEPy/RBamqrvgojEDsqO9AESAFiurI70AOeA0cCrwMDFo4ZKBTjqLT +D3Tpr+IA2EAPoAEQ76zowAn4D9yKJ9tA7ADYQA+YANTqoJJACgABmeKo70APoAEQAAAAAOoA2EAJ ++A9pwMHrqJFADoAA0+oo70AKAAv3Y/83jBCK0QfbAeuwkMAQgALM7NTAQBeAAqrq0chAEVAFui7R +BR9rVIIgquqa0eSiyEAPCAKC76DIQA9gAmKSoeIA2EAPoAEQgiCUou+kN0APCAKC76DIQA9gAmKS +oeIA2EAPoAEQbBAG6CW4QBA4DcLBkw8CAOwMggAJSA6YLSIC6gDYQA4IA50TawsMxxEDdwgucjri +FPAgDqgGThhrBwjICuZ5s0AU2AyICGYB62jvQA0IDEYpMkriFPAgDIgGSR1siuw5sMAXEAzd7cbl +AAvwD9zB6u0psEAOgADw6iCwQA7wAMDtLMhADoAAkOkRyEAMgA3Q7BDIQA8IDX3tEshADoAAwe0A +2EAKAASN6Hc0wA6AAJDqILBAD5gAupkQKIBw7BDYQA6AANDvyzdADoAB7ukSyEAPAAgY6BHIQAoA +BIDAltog5imoQA+YALbtENhADoAA4Ol5y0AOgA//7GjvQApQD24tIBXvANhADwgMhu8k0UAOgATg +7qPQQA8ADU3tENhAD2AM3O+g0EAPYAzcLKYBKwoG6znIwA6AAaQqJAUFDkdo4gwvIDrAj+IU8AAG +8AiP4gDYQA+gARAFCUdpkvGJJyeZFO6QkkANAAeXi5kVbEbmDN/ADQANK+bv5UAOgAJKjODLsnvB +MO2wuEAQOA2bDwIADwIA7JnhwBD4BE0j4QWpuw84CCiMQO2470ARYAWL69jvQA54DQ0LzQwNqzhk +sISPsnXxiebv5UAOeAtrYAB0AAAAAAAAAOO96MAJ+A/U6wDYQAn4D4naIOvB2EAOgADB7WDYQAoA +C1/qANhACfgPWgAAAAAAAOao70AJ+A482iDryJFADoAA1uwQ2EAKAAtV6gDYQAn4DzKKJ9tA7ADY +QA+YANTqoJJACgAA5+Ko70APoAEQiuEsfBDs5MBADygLbuuwkMAXgAKq6uHIQBF4Bbot4QWPIMAh +qtrq4chADwgPj+WiyEAPYA8vn6HuSjZADoAAIO6gyEAPoAEQjyCVou75NkAOgAAh7qDIQA8ID4/i +ANhAD2APL++hyEAPoAEQAABsEAToIrpAEDgNUhdqdeUFgkAPaAg46CLSQA8QBXUkUe6jRCRV7uMi +ukAUGAy36hDYQBBYDJLgue9ADQACI+Cq8MAX+AKz4LvwwBf4AqqrmQqZAukqyEAPoAEQAIwp7CrI +QA+gARAAAGwQBCggBtog6I+XwA6AALHoJtBAC8gISuIA2EAPoAEQAAAAAGwQBBNqS6Mi4iCwQA+g +ARBsEAgYa8WSFOYUsEAPmAAmqGZgAAPLX80tKmKACjkB5V+XwBeQCJTiANhADQACV2AAFQAAAAAA +AOoo70AKmAfoY//VAAAAAADqcMhAD6ABEOIA2EAPoAEQ7RSwQA+YAOPs+jdAD5gA9OoQyEAOgAC4 +6hDYQAqgAKniv9/AD6ABEGwQBBZrpaYmJWKAx38HNwMHVQEFRQIlZoAMAgDRDwAAbBAEKSEE5yCw +QA74D4/jW+1ADoAAoe674cAPCAnJqXfjCYRAD2gHt+d8l8APoAIZ5nCwQA+gCgoAkAQIqAMGqgHq +A/FAD6ACGehm5UAPoAgECGYC5nDIQA0AAZUlIQLNRiwhA7FdDQ1P7SLAQBDIBNziOO9AD6ABELBe +LiUC4jjvQA+gARDA8C8lBeI470APoAEQAGwQBMBR4iCwQBAgC0IMRBGkIgNUFA5EEQQiDOMEhEAX ++AMi4EnvQBH4DCIAVRoAQAQFIgHiAvFAD6ABEGwQBCchBCgiANMP5n+XwAzwCTfsnOHADwgFxqWF +6SXAQA9oDMUMAGgqIQPtENhADGALMA2zYAoKRuwA2EAYmA4TDJsRC1sMCwBpDcNhbz4T6//fwBBI +CJbIoXOhIgmSEaIy0Q8nIQSxmQkJT+klwEASiAR5sHYMZRGlhWP/wgAA6ZThwA8IDseujqQ0BF8U +Dv8RD+4M5ASEQBfgAu7p4LBAD6ACFADYGguPAw+ZAQmIAujgyEAQKAuS6CCwQAn4D6csJQXpANhA +CfgPrGwQBIgzDwIACIhXb4QFKSICZZAp6iewQA+YALTtSO9ADoAAwOU0sEAQKAwz6qCSQAoAAAba +IOs470APoAAV4gDYQA+gARAAAGwQBOgo70APCArF4jjvQA74DMDthahAD5gANOuEoEAQCAzo4lTo +wA8oDMis2ewl4cAPaAur6LvsQA9oCloF4gjigchAEgACmeuEwEASCAWSyqCqJXWTQMhObUkFAgNo +AwJrhYEriQSqVXlRb+WByEAPmAAlyLDRDybMQJaB5oDIQA6AACDihMBAD6ABEA0iDOKByEAJ+A+8 +ApcM50vtQA+YAFPTD+tE6MAYUAE7AgNoBQJrpzPiwJDAGFABNAIDaQNCa+2EoEAPaAJ6osIiLEDi +gchADngKLWP/nAAizEDigchACfgPkQBsEAYTavOSEOgQsEAOgABQ5B82QA6AAHDmQNhADoAAkeCJ +70APCAi4qETgmPDADoAAIOgRyEAIAAAbAAAAlxqxVeZvl8ARAAJE4zKQQA0ADfYvMbYsQlrgWe9A +HwgEHy1CVmTP2Rpp1uvfn8AQCAztK7I+6q+zwBAADP2f4O/QsEAPCAubq6orQlie8eLRyEAX+AJ8 +4tDIQBf4ArvrSMnAF/gDjedKycAX4AKI4oHEQA0AAeeLEecQ2EAPoAIV4HfwwAvIBzfpENhACfgP +dS5NAS7sgCzg5i3M6A0NR+Ln1qAAwAYtGGq86NjjwA74D/8vhrsvhrMs4ObbIAvkFgECAB5pzS3i +ggDBBOAv8MAPoAIc6f/fwA+gCAkJiAMI3QEP3QIt5oIL5BZj/4cC5BYBAgAbacEqsoKNEcfvDt0D +jhDA8ef358APoAIe7arlQA+gDAcMqgIqtoIC5BbRDwAAbBAK6ie4QBAQDILuyTZAD5gAku9A2EAO +gABA6gqCQA4AC1jjeTZADxgLquyANUAPCAvrrr4t4fKsvCfh8+YZNkAPSA397xDYQA0ICN3uFMhA +DyALx+oTyEAQqAMr6RLIQBGgAiIlIrejue4I38ATcASViFGKUA8CACqGAClSAOiRyEAOgACA6FDI +QA8oDuXoUchAEDgNrunpq0ARwAuO6gqCQBJYBJgPeQMMmQumnijidqOZlYCZUOhRyEAQCAJE5ebL +wBUICNTAkIoU56PHwA2IARniANhAD6ABEA93Awx7CyK9FSIsNCUit2P/gxhpwpsQGWjQ4hrIQBQA +DYjr7DRADwgCyqki6SqzQBG4Aojrq+PAD4AIhOIWyEAQEAKI4hqwQBMAB4kpEgYrspspkjkLmQHr +mO9ADQANSSjgdZkV7BnIQA0ABIjuEchAD5gAue0YyEAPmACu7OyxQAvIBf7sGbBAECgMse0YsEAQ +CAzh7KjhwA6AAPGou+mo70AIAAAQAOkA2EAJ+A+sAMCQKuB0mRedGOwZyEANAAKqnhHstzVAD5gA +ru3ssUALyAXMiRfsGbBAEEAM0e8Q2EAQCAzhqamLEIoWGGkAKaY56OzJQAn4DtUn5fPiANhAD6AB +EB1phS3QgIsTihLt15NADoAAweu4kUAPgA3U7dKQQAoACVbiANhAD6ABEACPEC4it6P/leGeUO9R +yEAO+A+U5SfPQAn4DqcAbBAEGmlHG2lF7BDYQA+gAhLvOeDAD6AIDOewvcARgA1r6AiGwA74D+8O +jgPkRufADygFeOXF58APmABH5rDTQBEwBDXgPfDADygH5+oq48APYAfX6avNQAxwB3DnsNXADQAA +xMl/0Q8AAAAA4vI1QA14D2cvItLHPgP/AQ/PAu8izcAPoAEQGGkoJYLSx54JVQHlgs3AD6ABEAAA +bBAEE2nwEmnw0w8oMhocae/qILhADoAAkOuPl8AZAAE4Cq0KDN0KLdG26ZGQQA4AAS2xqgq6AQoK +RyokANEPABxovyzCoO01tsAOgACwqsrpquHADoAAwKra7QDYQAv4DzjtILhAENAM4+7vl8AQCALd +Dt0B7SDQQA+gARAAAABsEAQVadOCWRhp0xZp0+n/3cANAAoC52DYIAXwAQLk/DUgAUACAuIU8CAG +mAMC4hTwIAfABAJoJU9oJiOCWrAiklri/9/AD6ABECliqiNCgAkZWCmciulPy8ANCABjl1kqCmQs +YqodaXuHWsCwm1ntzOtAD2gCeuxqzgAGqAqnon7uWshAD6ABEC9iqu8fiUAOgAImAv8c51nIQBCg +A//v8JFADoAAKgL/LO9AzEAJ+A+yKWKqKioA4xDYQA6AACHiWchADygJieNayEAPYAmp6WrOQA+g +ARAsYqqLWuIQ2EAOgACi6lnIQA8oDJzsas5AEAgCu+tayEAPoAEQLmKq4lqwQA6wAPDo7uVADoAA +1O1ZyEAPYA7+7mrOQBAIAiKSWuIQ2EAPoAEQI2KqglrA9e9ZyEAPKAOT42rOQBAIAiKSWuIQ2EAP +oAEQAAAAAADocZBADoAAIehayEAPoAEQwJOZWS5iquJasEAOsADw6O7lQA6AANTtWchAD2AO/u5q +zkAQCAIiklriENhAD6ABEAAAAGwQBOTNM8AOgAAxJEDh5ASAQA6AACDkMubAD6ABEAAAbBAEG2iS +FWjdF2iRI7Aw7ik0QA6AAEDv79/ADvgP3+hA2EANAADjsDLisNNAD6ABEA8CAOwQ2EAbGAA46lCv +wBdgC5XAYeiwvcAPoAIU4xDYQBAwB6nAYADJGgkJRwiSAQIyOeqI70ARSARiDZID4ojlQA+gAgbi +iOtADwAC9uJ7zUAMcAiA6LDVwA0AAZrJjLFE53SQQBAQAlXRDwAAAAAAAADjENhADXgOmGAAAcAw +KOLSD4gBCDgC6OLNwAn4D9MAAGwQBOggsEAQGAxSFmfa7AozwA6AALDlBYJADQAGaAtaEaamKWJ/ +J2J+cpkrcnkwgyErZn8rZn6YMIQgL2J9k0GbIOshyEAX+AL/723LwA+gARAAAAAAAADiFPAABFgI +J3KRHoohmKCMIClifZrBmyHrIMhAF/gCmelty8APoAEQ0Q8tzR6trX2BNehvy8AOAAOlz4IuYn1q +4i2EIS9ie+9vy8AQAAyCmECFIJRRmyDrIchAF/gCPuNty8APoAEQAOtvy8ANeA0FhCGIIJhAhSAj +Yn2UUZsg6yHIQBf4AjPjbcvAD6ABEI0hLs0erq4O3gwOvTjtbsvACfgPaGwQBCMhBBVnYuN0hMAP +KANTBDMC4yTAQA+gARBsEAQaZ+IrLf7rvLPAEBgMgiqif8ec6YjlQA8IC5urqguAAOKo70APoAEQ +AGwQBIgwFmfWiYGLQOyAsEAT+AxmnJDlJ7BAEAAMqOm74cAQEAxzq2bpochADoAA0J2A7YHIQBf4 +AnfnMshAF/gCVZUn7UPAQA0AAPXiaO9AD6ABEAAAACMgGiQ86O0r0UAMcARA6f/foACYBiQVaMIF +RQopVrMpVrsjIBriaO9AD5gAfQfkFgECABpn0yiiguA570AOgADB4NvwwA+gAhMAzBoJzAMMiAEL +iAIopoIH5BbRD2wQBBRnJ6Qkk0AMAgDRDwBsEAgYaKGSFOYUsEAPmAAmqGZgAAPLX80tKmKACjkB +5V+XwBeQCJTiANhADQACV2AAFQAAAAAAAOoo70AKmATEY//VAAAAAADqcMhAD6ABEOIA2EAPoAEQ +7RSwQA+YAOPsuDRAD5gA9OoQyEAOgAC46hDYQAqYDYXiv9/AD6ABEGwQBBpnpBZoluPv38AOgABw +0w8kYq4AAgApotADmQEpptAYZ7rnjMnACpgHnFlDaBVojR1nUQgsEAxMAg3MAixmrhtohSe2hCpS +HRRm/eYXNEAOgAAg55UzwA0ABHoTaIIrcqUqUuKrKwm7EauqLjKALWCAACAEBO4BDQ0b7jDMQBCI +Af0sohvIxusQ2EAKgATYLVIdsSLjMJjAFjAH0sc+H2hyLvKCA+4B7vLMQApQA0PRDwAAAABsEATA +QATkFgECABZndCViguAp70AOgACB4DfwwA+gAhLgiPDADvgPnwmIAwhVAQdVAiVmggTkFtEPAABs +EAQaZtQeZ5flOMhAEAAMsuY5yEAQOA2S7BiwQA8ICATtKKhADwgLi+c6yEAPYAjo7DvIQA6AAiDs +MNhADBAPkOIzyEAMAAmS4jCTQA8ACanoNshAD2ALy+sxyEAPCA8P6BsywA9gDf3oMshAD2AJqekw +yEAPYA3t7TTIQA+gARAAAABsEATsJ7hAD5gAo+0Q2EAQAAyy7kDYQA6AA/DsLIBACpgJ+R1mrBhn +ER5oM+0A7MAPmACaCQJrCQJrCQJrKSAHLyEICQlB7qLIQA8ICQnp/+tADoAAsOKgk0APYA+P76DI +QBCAApoEA2kJQmsEA2gJAmvrptFAD6ABEAAAbBAEHGgfH2aI6iCwQBA4DYIWZoYZZpDoquHADAAI +guqH4MAPYAql6jHIQA9gB5eXMOYC7MAQQAJz5xPwQA8IC8UtIQjvNMhADoAAIOI3yEAPCA4I7t3r +QBdAAuvuNchAD2ANzZ02BABm7DjIQBaAArvrOchAEYACI+NW7MAPoAEQAAAAbBAElzYbZp4fZmfr +WuHADwAJFO4YsEAOgADT7jfIQA8IDILtFjLAD2AM3OpfM8APYAmp7zLIQA6AAYiYM+wxyEAQUAyB +6DnIQBBIDPGfOOlp60APYAuy6zTIQA9gCamZNRlmTpkw7QLswBFAAiMCEmriMJNAD6ABEAAAAGwQ +BBhnriWCf8CQ5o2zwA0ABFWKYYxgnKCLYJqxmWCZYSeCf7B3J4Z/jiGW4J5hImYAJiYB5miUwA+Y +ACPjaO9AGFABNAIDaAMCa+Jo70APoAEQACaCgIVhimCaUIdglXGZYZlgL4KCsP/vgsxACfgPuwAA +bBAEBQZHaWJNGGePhScqgn/lUJNADoAAkOKNs8ANAAQ6hyGLIJtwiiCXoSkmACkmASaCf9MPsGYm +hn+NUZLQnSHlIMhAFkACwuJRyEAYUAE0AwNoDAJr4gDYQA+gARAAIoKAjyGHIJfwhiCfYZkhmSAu +goKw7u6CzEAJ+A/BAABsEAQs+sDqJahAEAAMguIjsEAPmABy7EvhwA8oDMesquqgkMAR4ASCLXkE +qLmr3e10wEARuAeayTXJQ9Iw44jvQBhQATQCA2gDAmuJcAuZCOKI70ATCASp6XDIQA+gARDAoOpz +yEAPoAEQCKkM6browA0AAyMJSxS4ve1N5cAPmAAj5ojvQBhQAT0CA2gGAmupMgtODOPAkMAYUAE+ +AgNpA0Jrqs/v8JDAD5gAKO9wyEAPoAEQIsxAknDiiO9AD6ABEAAAbBAMkhvkF8hAD5gA4+UZyEAQ +OAyC5hjIQBAQDbPnHMhAEBgNk+iAkkAPmAB16B3IIB1oAgsiCgLsAdhAEHgCqewUyEAPgAqkhRwM +JhGmVeyhkEAQaAxhDM0Rre3oDN/AECgLNghmAZYapjYmbEDq2O8AJVAJbe/I4cAPmAD67LjvABcA +DouJoYqg6lDIQA9ICZfpUchAEEACP+MR8EAQQALVDRJqivON8Ql3DKqa6d3owBAQDD/t8chAEDAF +mrEzmvOT8uUQyEAOgACR7Z3nwA6AAIDpwpBAD1AI2eib58ANEA7IhRDjUJFADRAOJ4QX70ThwBAI +AqviFPAAFoAJShhlqMDQ6BXIQBCAAojoFshADoAA8G0IFwABMAAAMSAMFyANAQABMQACAAACMCAM +AYwdiRoswQWpye625EASAAKZ6mjvAAg4CZaMoOPW48ANAAcM7HjlwA8gDD3oYMhAEEACauYR8kAQ +QALMDJJqhqMpogDv8ZBAEBAMygaGCOh36MAPaAmJ6aDIQBA4BYYszAGWo+yiyEANCAFXZNC14ziR +QA6AANDoFrAABZABw+gC7MAPmACTCRJqCRJqCRJqjKFkwG0MeTbj1uPADyAMPelgyEAQgAJq5hHw +QBBAAswMEmqGpYihsf+mlumI6MAQIAzK6KHIQA9oB5fmpchAEDAFlrHM7KTIQA0ACkdk0GTjOJFA +EDAMge0VsEATCAHD6ALswA+YAJMJEmoJEmoJEmrA0Img0w8PAgBkkE/qsZBADQAGx3SrZGP+ygAA +7GrowAn4DvntENhACfgPZ4wV7ADswA+YAJPpEvBACAAAMgAAAAAAAO0Q2EAJ+A+67QDswA+YAJPp +EvBACAAAHImhs7jpi+bACfgPqAAAAADpEvBACfgPH+kS8EAJ+A+I7/PiwA6AAI/r4tBADxgDg+ND +7UAQCAL/oyLvUcBAEAgCIhlmwBRlKR5lJ4scihuMFJyz6qeoQBAADDrsAjHAD1gO9J6y6D3hwAyg +CqDsquHAD2AN0u2xyEAPYArKmrApkn/iFPAADjAD+Y0YZtG8hBscZq3ukTHADBAK1uRKqUAQSAyU +rKrqoLxAEEgMge23yEAPYA7j7rTIQA8IBATomejAD2gIqOm2yEAPYASE5LXIQA+gARCEF5sS4xHI +QA6AANDvROHAEAgCq+UQyEAS0AVK6xLIQA+YADrvE8hAD5gAWw8CAG0IKu685EAPmAD76sjvQBEQ +BWyMoGXAmIyhsd3jM5BADgAM7LP75bjvQBDIBUNj/8uKEerK6MAJ+A/c7wDYQAn4DtyLEg3cCay7 +Y/0Fv5rqSu1ADQgECYMcIuwQ4zCSQBhQAToCA2gDAmuHGQurCeMQ2EAQEAIq6JCRQA9oB5foFMhA +DQABhywSBw8CAA/MEey86MAOgACQDJM57xDYQA6AANAD/Thl3A3vANhACfgOkI0QDHg26NHIQBBA +AvrvEfFAEEAC3Q1SaoyjiaAIdwysjOiZ6MAQEAw66aDIQBAwBYyxM5yj46LIQAgAADuNEAx/Nu/R +yEAQgAI64xHyQBBAAt0NkmqMpYihD3cMrPzviOjAECAMOuihyEAQMAX8sTOcpZOkgxMYZaCDMOgQ +sEAPKAODk4CPoGX8F4mhs1jpi+bACfgMEBpkq+8YsEAQWAzRFGY87BmwQBBgDLHvboJAEEgM3aTu +LuCA77fIQA9gCqPqtMhAD2gNze22yEAPaAzs7LXIQA+gARAA49rowAn4C1biINhADoABgOgUyEAJ ++AsYbBAE5CmwQBBgDDIEMwwDA0gjJR/jIcJAD6ABEGwQBCkiByqSDOiUoUAOgAAg5ZCSQBGAAknk +q+jAFkACquui58ANAAp4KpIJ5tDYQA0ABcrDfM02K6AAd7FNaLUydrkLLKAQaMFBdrkCaMI7LaAH +7ADYQA+YAKXTD+vY70AL+ArGK1kEilHJtmWvxmAAGQAALKAQacjGYAAOAAAAAAAAAOoA2EAJ+A/k +49LYQA0AAcItIABz0RmOLsAg7k/owBZAAu4P4jllL+fiANhAD6ABENsg6kjvQAvwD2/iqO9ADngN +KmP/4gAAAOoA2EAJ+A9cbBAEBQZHaWJeiyfsTOHADvgM0Om1qUAQQAyL6rCSQBBYDHvutKFADygN +2q2Z6ZCQwBH4BIeshazu7rTBQBIYB1nJM8lBbUkFAwNoCAJrhaAPAgAPAgCsVeIA2EATYASV5aDI +QA+gARDiANhAD6ABEMAg4rvIQA+gARAAAAAAAADolejADQAC8wVHFCZ8CAZGNuI470AYUAE2AgNo +CAJrBTIIB0gM49CQwBhQATgCA2kDQmsFyQyp2emQkMAOgAAg6aDIQA+gARDr0JDADoAAIOugyEAP +oAEQbBAE6TjvQA6AA7DrM8hAEAAMsuiBMMAOgADE5Ce4QA+YAKToMshADwgLi+jRMMAPYAvL6zHI +QAwABELjoTDADwAEpOvnMMAPYASElJDjAOzAEIACOQMCawMCawMCa+0nuEAOgABC4HzhwBBAC4Li +kJDAD2AMvOVE5cAMEA3Q5ZCSQA8IDQ3tiOtAD5gANeyWyEAPYAi40w/olMhAGFABNAoDaAMCawYO +Bu5W0EAPoAEQAAAAbBAE6iW4QA6AAFvmnjNADoAAuOcQ2EAOgAEy5ADYQBIoB6PiFPAABJgIOuOQ +2CAHOAsK4hTwAASoCFriFPAgBTgJCuIU8AAIKAg6wIniX9/AEFgHitEPAAAAAADiSO9AD6ABEOoo +70AKUAiZ2iDrANhAC/gPTCkgcuIU8CAK0AIJG2Q3IyQF67K1QBAADMIqYpoMuwgJuxELqggsogft +DN/AEQACvA27AeTEwUASAAK7K8YJK8YIJKQFjCLjazNADQAJzOoluEAJ+A+DjSJl33nqKO9AC9gP +smWv58Dq7iXQQA6AAKqPImX/X+oo70AL2A+LZa/NKSAGiCIjJAXpkZBADoAAqekm0EAPYAh46CLI +QAn4DzmLImW/L+oo70AL2A/NZa+dLSAGjCLqwNhADoAA7O4l0EAQCALd7SbQQA9gDHzsIshACfgP +BACPImX++dqw6yXQQAn4DvQAKDJK6mSygAbYC1gpMknqm+UABoAPqS0iFewpqCAFWAAN2iDtANhA +DoAA4O//2EAKUAgcLCEj7QDYQA6AAOHvINhAD5gAuuoo70AKUAgVwJsvIAbuIrBADoABoek5yMAO +gAGB6CXQQBAIAv/vJtBAD2AOfu4iyEAJ+A54KiAHHGN/6yK6QAwQCqDkItJADxAKyimh7quZKaXu +KSAiZJBYL8KD4PnvQBBYDLLgffDAF/gC6e3fl8APoA4OrrsNuwLrKshACfgOYgDaIO0A2EAOgADh +7yDYQApQB/LpYNhACfgPctog68HYQA6AAMHtYNhACgAEGmP+cACIKegqyEAJ+A4nAABsEATiILvA +D5gAQuI460ANAADS6EDTwA+gARAA2kDrANhAC/gOyCpAcAw5EQk5AgqZAulA08APoAEQAABsEAaG +JycgB+weMMAMcAhQ6BDIQBBwDGbnB4JAG+ACKOIU8AAJIAk84hTwIAu4AgTiFPAACngLPCkiByqZ +FGSgCisgBuqZsCAM0AEL2iDrQNhAC/gP3cio4gDYQA+gARAAAI026ymoQBAYDMMNDUPku+HADDAM +wOvM4cAPYAvb7AHYQA9gC8sMuwKbYC0gBW7Yay4gcn7vZeoo70AL+A8yZaB8LyAF6SKwQBqgCB8o +IHJ+j0nrETNADgAGie0BM0APCArHq6orojoNfQrt27UgDBAESyyiOe3L5QALuA/c3GDtINhADoAA +4O8g2EAPmAA66ijvQAv4Du/A5C42OY8QaPI8iifbQOwA2EAPmADU6qCSQAv4CVviqO9AD6ABEADa +IOs470APmADE7VjvQAv4DqviqO9AD6ABEAAAAAAAAOIA2EAPoAEQ6jjvQAqYB18cZI/rqO8/9ogC +SuIU8CAF+AIK4hTwP/YIBSriFPA/9cgDSuoo70AKmAc74gDYQA+gARDaIOsg2EAL+A+PZa7HLDwQ +7BDwQA+YALbrEvBACfgO7Y0xDc1T4hTwIARgAQ2OMu6Oh8AOgAP34hTwH/OQDv7aIOuA2EAL+A9/ +Za6IKDwQ6BDxQA+YAPbvEvFACfgOrmSuZomg6YmHwA6AAsriFPAf8sgOyR1jaIyi4hTwH/JgDtyP +Ium/l8AO+A+O6SbQQA8oD4/vIshACfgOMo4z4hTwH/AgAb7qKO9ACpgHHuIA2EAPoAEQ2iDrOO9A +D5gAxO1Y70AKmAbP4qjvQA+gARArfBjqKO9ADoAAwe1A2EAKAANuY/63bBAIGWRJiCCTFJQVlRbm +F8hADoAAsOsSyEAPmACi6RDIQA6AANLrE8hADoAAkuiI4cAPmACx6YjrQA+YAMnoEchAC/gPVtEP +bBAE4gDYQA+gARAAbBAG4xDIQBKAArfsWO9AEdgNouYnsEAPmACW7BLIQA6AANHpEchADvgMgOoK +gsARAAJW6FXlQA8ICsqqOuqokkAIAAArAAAsYRXuoJFAEdgNguro70AQCALdpc/v8JDAEAgCiOgr +0wAIYAn+6ajvQBAIDPrpEfFAD5gAywxSaukR8EAPSA/0DBJqg6LvschAEBgM6uihsEAPaAT07Djv +QBCAAruu/u6jyEAPaAj46KHIQBAwBf6xPOyiyD/8WAEUGGQG7CmoQBEgC/IaYqDrJ7hAEAAMUuQR +sEAQOAvi5hCwQBEQC5LrK4BADwgFheQDgsAMoA7g6pnrQBAADGbpcshADwAOzuR2yEAPAAOD4//r +QBAoAk3jVTJAD2AFVOVxyEAPYAzs7HPIQA8AC6voTjJADygGhu90yEAQSAzy733IQA9gBrboXjNA +D2AGhuZwyEAQEAxhlnXjAuzAEgACJwISatJACNgC6HLJQA+gARAAAAAA7OrowAn4DvRsEATtjTNA +DoABges+4cAQSAU4wZVzm3et7Ysn6PIyQA74Dz8DSQPvs6hAEBgMq6juiLLooMhADAAP/u//4sAQ +EAzL7v/jwBAQDILv9ZlADoAA4OrByEAU0AzP7rLIQBLADK3us8hADygImOgiyEAX+ALM7PrNQBf4 +Aqrq2MnADoAA8e6zwEANAAG60Q8AAADrOO9AD5gAouwisEAKmANy0Q8q3QEpoF4rnOgLC0fiOO8g +AJgGKxxjkwy8CiPGsyPGuymgXt3gDeQWAQIAGmKlKKKCAJEE4OvwwA+gAhkA/BoCzAMMiAELiAIo +poIN5BbRDwAAbBAELCAHHWHxDAtB7x8xQA8ICsutqiiiOg+/Cu/7tSAFkARILqI57+3lAAU4D/4f +Yf3uJ6hADwgFC+v+MUAOgABg5tfIQBCAC0Pr0shAEAAMkubVyEAOgAOwm9PllTJAD2AEVOswkUAM +oA7g6JnhwA8IDs7l1shAD2AEVOTUyEAMAAXC6lXgwA6AAETl7utAD2AJSenRyEAPYA7+7tDIQBEA +Ap0LA2kJQmsLA2gJAmuIJ+sw2EAOgADA5KnLQA6AANPqgJJAC/gII+Ko70APoAEQiSLIluIA2EAP +oAEQ2iDsANhAEMACu+1A2EAKAAKA4gDYQA+gARBsEATlJKBADvgMQOQk5UAQCAxi7DjhwBIAAkSo +VeUkwEAPaAOG4yHIQBCYBUMoIQWjg5Mh4jjvQA+gARDiOO9AD6ABEGwQBOsnsEAQAAziwNLqDN/A +DoAA8+ju4cAQoAqb6LCSQBBIDGvqrDFADygIqOiAkMARgAKZ6bTBQBaAAmbmuchAEHgFhiyxFQ8C +AKbGJrYJ6mDIQBCAApbogzNAD2AO/u5hyEAOgADC6GLIQA8IC4Xsu+tAGFAAPQQDaAkCa+tlyEAN +AAJjiTiOOe0A2EANAAEpnTuZ4I84nvEtNggtNgnqOO9ACpgGBdog62jvQA6AAMPtMNhAC/gPhNEP +bBAE6kcyQA6YAsAMLCiqyiiitusQ2EAPoAIT5UcxQA+gCwvv1jIAA1gFuB5hagg4EOwt4cAPYAiE +rt2Y0y6it36wTInSCQlf6NKwQA74D+8OvgMOmQEJuQLgmeHADPAIgAmIApjSLqK4Dr4CLqa4Duow +pcgDOQkMmRGpiK+ILoZ2idEJCV/Iluoo70AL4A/f0Q+lywM9CQzdEa27K70KKrHR5KrowA6AANAN +qjXqscXAD6ABEAAAAGwQBOeVMUAOmAKACCgop4ckcrfpENhAD6ACEwCWGnZINxRhPgwjEaQzgjAq +crgCYgHikueAADgFptEPAIkx6QmPwA6AAIHpaeVADoAAUAmFOOUi5UAPoAEQHGE2AzsJDLsRrIys +uyu9CuyyrcAWiAurK7HVDKoBe6sJ4gDYQA+gARAAAOKY70APoAEQbBAE6iK6QBEYDZIfYTPqmejA +DoAA4eTwl8ANAAXpLCAHDAxBBMwJK8HuCb02DbsMK8XuKiAi6truQBBYDLLqItJADQAFKinyfwCR +BODs8MAX+AKK7M+XwA+gCAiou+wpsEAPYAvLmyoMuAxzgzHiANhAD6ABEAAAKSAF4hTwIAQIAQmK +IsCyC6oCmiLiT9/AD6ABEIspmyrsuO9ACfgPzCsgB+2o6MAMEAuw6CLSQA8QCEssge6tzCyF7iog +ImSgRinyf+CZ70AQWAzC4O3wwBf4Aort35fAD6AICKjMDcwCnCraIOwQ2EAQ+AK77QDYQAoAAbDi +T9/AD6ABEAAAAOJP38APoAEQiinqKshACfgP1QAAbBAOLiIQKOAFKQqV4hTwADGgCJiLImW2eiwi +Ehdg2O7xMUAMEAzI7s3hwA8IDKycFa7d7RbIQAgAAr0AAAAAiReJkekJj8AOgACB6gDYQA8oCZoJ +ijgKygFkpcrtV9JADoAAhehQ0kAOgADA7FPSQA+ACdgpVCbsUdJAD4AJmOlV0kAPgAmY6VTSQA6A +AMDsUtJAEcAClOkR8EARQAKF6BPwQA6AAKAqVE8sVE4sVELsWtNADoAAkClUTClUQOlY00AOgACA +KFRN6FHQwBCwDJLoWdNAEHAMwyxUM+lf00AQaAyD6FfTQA+ACZjpXtNAD4AMyOxS00APgAmY6V3T +QA+ACIjoVtNAD4AMyOxR00APgAiI6FXTQA+ADMjsUNNAD4AJmOlc00AQmAzD6TWxQA+ACIjoVNNA +EKAMgypUQ+pb00AQCAKpDIgIKjYV6VfQwBCQDKPoW9DAD4AJmOlW0MAPgAiI6FrQwA+ACZjpVdDA +D4AIiOhZ0MAPgAmY6VTQwA+ACIjoWNDAD2gKyugA2EAQgAitKlAhLAqADKoCKlQhKkIZ7FiRwA0Q +BxooNhboN8lAD0gKrepVyUATQALkDkJqDFJqKTITKEIZ6t7owBDQDNSqmekzyUAPaAio6EnJQA0Q +DDguQhuuru5LyUAQMAWusd3tSslADoAA0BhhJeknqEAOgASgKlYDGmBl6QmIwBBgDPHt3uLADwgJ +yeogsEAPYAmp7CYwQA8IDu7sUshAE3gC7u5O7UAPCASK6VDIQA9gBE4kVgHkMTFADxgPjy/ymxxh +eCkSBeR3MUAPKA9PGGCq79GQQA9gCfnsmetAD2APT+lXyEAQqAxC71TJQAwQDJbvKbBAENALkgyI +CBxgS+9WyEAUAA2IC0QIC/8I4JnhwA9oCIvsqutAEYACiOpUyEAPYAiY6FXIQBGAAv/vKchAEYAC +RCQmFSsgFiwK/+5py0AQeATLKiAH7BuwQAv4DrLsM7FAEJAMs+IU8AAU4AjLKiAHCgpB7BIwQA8I +BsqnZi1iOsG+6hzIQA8YDsru67UAFkgLvS1iOe7V5QAV8A/t7iexQBBIDKItMhKJN+hQksAQMAyx +6BjIQBCYDIMvmRQrspDo3ejAEEgMSe7d5cANEAMfLzIX6SqwQA+YAO2tu+sdyEAPEA//6pnowBGA +AqvqG8hADyAPT+/wk8ATUAepLCAWKSAH6gLbQA6AD4/gye8f5jAIjJkZCpkdGmAKmRSqmekayEAV +uAyZwKEAqhriFPAAEigFqYwZ7MzhwBBQDIGnzOwXyEAQAAzMKIK47KzlQA6AAJHsnOef4wgFiurI +70AJ+Axznx6dH+0QyUAPmACi6xuwQAv4Dr0tEhDuH7BAEHAM8esdsEANeAd64gDYQA+gARAkMhYP +SgqKoA9MC+zIkEANAAfKCto2KlYV7BHyQBLAApUJkmooMhMkMhaqiOgzyUAPGAT0jkAK7gyeQCQy +Fg9MCozA6t7owA0AAkwPTguP443ir6/v48hAEDAFr7HdneLtANhACfgNfwAAAOkA2EANCATEKDIX +0w8PAgDpNslAEAgCiOg3yUAQwAL/6QDYQA0IAS7kNrFADAAMkO9K48AQQAzRKqIA7cjjwA9ICq4q +hgAkMhYPRAvkSJBADyAN3OQR80AQQALdDdJqKDITJDIWCogI6DPJQA8YBPQtQgAK3QwtRgAkMhYP +SAooggAK7gztkZBADgAFyOoYsEANAAP0KDIX6QDYQBDAAv/pNslAEAgCiOg3yUAOgABA6KiRQA+Y +AJ3siufADAAMkOoYyEAOeAbOYABsAAAAAADkENhADoAAkek2yUAJ+A/UAAAAAAAPTguE44/ipKTk +48hAEDAFpLH/7+LIQAn4DHzkANhACfgNz4k4y5KLOcCgmjuZsIw4m8HqOMhADoAAIOo5yEAO+AmJ +6DXQQA+gARAAAAAAAADAkO2Y70AJ+Aw87ZnfwA6AACDtNdBAD6ABEMCB6DbJQAn4DsqLHNog7BDY +QA6AAd7ruJFACgAALOIA2EAPoAEQAAAYX2aKFAzJCQyZEaiqqpkpnQopnMjqnq7AF2gLiSmR8QqI +AeoQ2B/RsAmYixzaIOwQ2EAOgADQ67KRQAoAABriANhAD6ABEAAcYPkpIhjqUNhADoADsO0gsEAQ +AAyD7pS7wBAADP7oEMhACpgFzIk4ZJ2hizmZsIw468HIQA6AAKCaOOo5yEAOgAAg6jvIQA+gARAA +AAAAAOIA2EAPoAEQbBAE6Q4wQA6AAYHmENgABPALOAs6EampLJJY0w9kwMIeXzbrJ7BADxANRK6u +6DjhwA8YDe3n1ZlAEEAC++JO4cAUyAzH7deZQA9gCOjukZhAD2AIhe/AyEAUAALu7LPIQBbwDe7s +SC/AEwAC3e2yyEASwAzZ73nNQBTQDPfg6e9AD2AIyOizwEAQEAyy7dGQQBAIAv/ves1AD6AMBu2Y +ycAPYAvL6yLIQA+gARDB9eIU8B/7AAs/GGC2CDgKKIJ/6jjvQA+YALLsANhAD6AAGIkiADEEAGoa +CpkC6SLIQA+gARAtnQHl39HADoAAcOfd0cAS8A3N59zRwA+YAIcI5BYBAgAdX6Au0oIAwQTgbPDA +DvgP/w/PAw/uAQ7MAizWggjkFi886A8PR+IU8D/3kAYvHmB8Dv4KJ+az5+vPQAn4DuEAbBAEiCcb +XvznDN/ADoAApOWEoUAPmABi5ICSQBBIDCjphalADygEdORAkMASAAJV5YTBQBYAAiLiichAEEAF +QqKSkonrAOzAD5gAUu5A2EAYOAA6BQJrjWCTIuwAL8APCA2N7CDIQA9gDe3tIchAD6ABEABsEATI +MdEPAIgn5wzfwBCgCmjlgJJAEEgMOAdVAeVQkMAQgAJm5oTBQBeAAjPjichAEWgFUyqBFYsg6b4u +wA6AAMGjquqJyEAPCAuL5KLIQA9gC8uboemgyEAPoAEQjCDkMshADoAA0esOLsAPCAyM6zDIQA9g +DNzsMchAD6ABEGwQBGQggWQwfmRQeygiAhpepuQJhsAQ+ALT7U3tQA4ABqjsKi7ADwgIyQqICCqC +OgycCuzLtUASyAfaK4I5Hl6x7LrlQBJYCcvvKi7AD5gAiu4A7MAYOAE9CAJrk6PtUMhAEAAMgp+i +El6Z4qDIQA8ICIjioJFAD2AIjeihyEAPoAEQAAAAAADiANhAD6ABEOtIkUAPmACi7ADYQAv4D0vi +ANhAD6ABEGwQBBte/BVelSYgB+eILsAOgAOA6DPIQBAADIKXMufoLsAOgACU5iaAQA8ICIjqZuDA +D2AImOgxyEAPYAZ2ljDlAOzAEIACYwYCawYCawYCaywgByohCAwMQeDM4cAOgADQ6UEwQA9gCsrp +NshAD2AKuuo0yEARAAIjBANpAkJrBANoAgJrIjxA7TDSQA+gARAAAABsEASIUOJnsEAPmACiwLDo +hJBAEQACIuhQyEALwA232zDtSO9AD5gAyuoo70ALwA0sglCqIuJQyEAPoAEQAAAAbBAI7N8uwA+Y +ALPqNbBAEDgMgu4M38AQGA2T5RLIQA6AAFDlEMhAEKgL2OkRyEARAAKI7ojlQA6AAJGo2Oyq5UAS +AAKI6pXmgAoYCYPqSJBAC8ANzuoULsASAALE6wQuwA6AAtDtQ8hAEoAClOtCyEANCAI1KzAftbvq +AuzADwgLy+wT8EAM8AuwjBEeXjUdXjKjuOx74cAPUA3OrLztQslAEIACzOxDyUAYUAE3CANoCQJr +iBCktbJ5qYjoEMhAEoACVR1ezS4wH4w16hDYQA6AALCn7u4/0UAPKAzc5zK4QA9QC8rqOO9AC7gL +mg+vEenUL8AQUAL/Dw9H7BKwQBAwB3/ckNow7RjvQBCAArXuKO9AC/gPq4gg6xCxQBAADNHpKqlA +EDgL4uzqL8APCA+I62qCQA9gD/3vQchADKAO4O8wLsAPCA7OrKrqoLxAEEgMwuJgLsAPYA7+7kDI +QA8ICQnsUshAD2gKputTyEAPYAmp6VHIQA9gAiiSUOLY70APoAEQAAAAAAAA7TvowAn4Dr3pE8hA +D5gAsu1470APmABa6jjvQAvADVCJE+UC7MAOgACgsarpE/BAH9ABKowQ7n4twBMAAlTuRslADoAB +0O1HyUAQGALM7BDIQAn4DuYAAGwQBOP/38AQOAxChE4jRvvjSs/ADoAEoOpGz0AQGAOUI5UK45vA +QA6AAIAoRr4jlSrjm8JAECADVOhOzMAVAAJlJkbo5knOwBegAlUlRv0lRv7jQs1AD6ABEAAAAAAA +AGwQBMBRAyQsAyIuAlI5pCLRDwAA//8BA/8C////AAAAAAAAAAAEBAgAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAIANWXCADVikgA1ZAIANWQCADVkAgA1ZAIANWQCADVkAgA1ifIANYVyADVkAg +A1ZAIANWQCADVkAgA1ZAIANWQCADV8QgA1dcIANWwyADVqYgA1aRIANWewMBAAIAAAAAIASYACAE +mcIgBJsjIASYACAEmxsgBJsHIASYACAEmAAgBJgAIASYACAEmAAgBJgAIASYACAEmAAgBJgAIASY +ACAEmvcgBJrnIASYACAEmAAgBJgAIASYACAEmAAgBJgAIASYACAEmAAgBJgAIASYACAEmAAgBJgA +IASYACAEmAAgBJmwIASYACAEmaogBJmqIASYACAEmaogBJmqIASayyAEmaoAAAAAAAAAAAAAAAAg +BK3AIASsICAEsFYgBLAOIASv0SAEr44gBK9pIASsfCAEr0MgBK8DIASupiAErkwgBK4AIASt2wAA +AAAAAAAAAAAAACAFJWwgBR6YIAUeNCAFGzAgBRY4AAAAAAAAAAAgBR54IAUecCAFHnAgBR5wIAUe +eCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR54IAUecCAFHnAgBR5wIAUecCAFHnAgBR5w +IAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAg +BR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAF +HnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR54IAUe +cCAFHnAgBR5wIAUeeCAFHnAgBR5wIAUecCAFHnggBR5wIAUecCAFHnAgBR54IAUecCAFHnAgBR5w +IAUeeCAFHnAgBR5wIAUecCAFHnggBR5wIAUecCAFHnAgBR54IAUecCAFHnAgBR5wIAUeeCAFHnAg +BR5wIAUecCAFHnggBR5wIAUecCAFHnAgBR54IAUecCAFHnAgBR5wIAUeeCAFHnAgBR5wIAUecCAF +HnggBR5wIAUecCAFHnAgBR54IAUecCAFHnAgBR5wIAUeeCAFHnAgBR5wIAUecCAFHnggBR5wIAUe +cCAFHnAgBR54IAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR5w +IAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnggBR5wIAUecCAFHnAgBR5wIAUecCAFHnAg +BR5wIAUecCAFHnAgBR5wIAUecCAFHnggBR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAF +HnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUe +cCAFHnggBR5wIAUecCAFHnAgBR54IAUecCAFHnAgBR5wIAUeeCAFHnAgBR5wIAUecCAFHnAgBR5w +IAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAg +BR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAF +HnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUe +cCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR54IAUecCAFHnAgBR5wIAUecCAFHnAgBR5w +IAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAg +BR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAF +HnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHnAgBR5wIAUecCAFHngAAAAAAAAAAAAAAAAgBR7RIAUf +aSAFIw4gBSL8IAUi4SAFIs8gBSKuIAUinCAFInsgBSJqIAUiTyAFIj4gBSIjIAUiEiAFIfcgBR7I +IAUh3CAFIcsgBSGwIAUhniAFIYMgBSFqIAUhRyAFIWogBSFHIAUhNSAFIRogBR7IIAUeyCAFHsgg +BR7IIAUhCSAFHu0gBR7IIAUeyCAFHsggBSDoIAUgzCAFIL4gBSCnIAUeyCAFIJQgBSB2IAUgYyAF +IEUgBSAyIAUgHyAFIAwgBR/5IAUf7CAFH9ogBR+5IAUfqCAFH40gBR97IAUfTiAFHxgAAAAAAAAA +AAAAAAAgBSXDIAUl0SAFJ9AgBSelIAUnmiAFJ48gBSeEIAUneSAFJ24gBSdjIAUnWCAFJ0ogBSc8 +IAUnHiAFJukgBSa9IAUmsCAFJpEgBSaDIAUmdSAFJmEgBSZWIAUmPSAFJjIgBSWtIAUmCSAFJfsg +BSXtIAUl4gAAAAAAAAAAAAAAACAFYe4gBV9WIAViCCAFYe4gBV9WIAVfViAFX1YgBWIIIAVh7iAF +Ye4gBWHuIAVfViAFYe4gBWHuIAViACAFYgAgBWH4IAVh+CAFYeYgBV9WIAVh5iAFYeYAAAAAAAAA +ACAFYhggBWAOIAViMCAFYhggBWAOIAVgDiAFYA4gBWIwIAViGCAFYhggBWIYIAVgDiAFYhggBWIY +IAViKCAFYiggBWIgIAViICAFYhAgBWAOIAViECAFYhAAAAAAAAAAACAFYkAgBWA+IAViWCAFYkAg +BWA+IAVgPiAFYD4gBWJYIAViQCAFYkAgBWJAIAVgPiAFYkAgBWJAIAViUCAFYlAgBWJIIAViSCAF +YjggBWA+IAViOCAFYjgAAAAAAAAAACAFx5AgBcSwIAXDGCAFwJwgBb64IAW60CAFvCggBbzgIAW6 +QCAFv4wAAAAAAAAAAAAAKhgAAEAAAABAAAAAAAAAACoEAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAgBefKIAXnPiAF5+IgBefKIAXnPiAF5z4gBec+IAXn4iAF58og +BefKIAXnyiAF5z4gBefKIAXnyiAF59ogBefaIAXn0iAF59IgBefCIAXnPiAF58IgBefCAAAAAAAA +AAAgBefyIAXnViAF6AogBefyIAXnViAF51YgBedWIAXoCiAF5/IgBefyIAXn8iAF51YgBefyIAXn +8iAF6AIgBegCIAXn+iAF5/ogBefqIAXnViAF5+ogBefqAAAAAAAAAAAgBfIQIAXyACAF8iggBfIQ +IAXyACAF8gAgBfIAIAXyKCAF8hAgBfIQIAXyECAF8gAgBfIQIAXyECAF8iAgBfIgIAXyGCAF8hgg +BfIIIAXyACAF8gggBfIIAAAAAAAAAAAlKAMPCBKlqIOOk5IAAAAAIAX9YCAGAFogBgDoIAYA1SAG +AMIgBf1gIAX9YCAF/WAgBgCvIAX9YCAF/WAgBgCXIAYAdiAGAH4gBf1gIAX9YCAF/WAgBf1gIAX9 +YCAF/WAgBf1gIAX9YCAF/WAgBf1gIAYAYiAF/94AAAAAAAAAACAGHmggBh4OIAYegCAGHmggBh4O +IAYeDiAGHg4gBh6AIAYeaCAGHmggBh5oIAYeDiAGHmggBh5oIAYeeCAGHnggBh5wIAYecCAGHmAg +Bh4OIAYeYCAGHmAAAAAAAAAAACAGIM0gBiAeIAYg5SAGIM0gBiAeIAYgHiAGIB4gBiDlIAYgzSAG +IM0gBiDNIAYgHiAGIM0gBiDNIAYg3SAGIN0gBiDVIAYg1SAGIMUgBiAeIAYgxSAGIMUAAAAAAAAA +ACAGIKUgBiA2IAYgvSAGIKUgBiA2IAYgNiAGIDYgBiC9IAYgpSAGIKUgBiClIAYgNiAGIKUgBiCl +IAYgtSAGILUgBiCtIAYgrSAGIJ0gBiA2IAYgnSAGIJ0AAAAAAAAAACAGIqogBiIeIAYiwiAGIqog +BiIeIAYiHiAGIh4gBiLCIAYiqiAGIqogBiKqIAYiHiAGIqogBiKqIAYiuiAGIrogBiKyIAYisiAG +IqIgBiIeIAYioiAGIqIAAAAAAAAAACAGItIgBiI2IAYi6iAGItIgBiI2IAYiNiAGIjYgBiLqIAYi +0iAGItIgBiLSIAYiNiAGItIgBiLSIAYi4iAGIuIgBiLaIAYi2iAGIsogBiI2IAYiyiAGIsoAAAAA +AAAAACAGQyogBkMIIAZDIiAGQyogBkMIIAZDCCAGQwggBkMiIAZDKiAGQyogBkMqIAZDCCAGQyog +BkMqIAZDGiAGQxogBkMSIAZDEiAGQxAgBkMIIAZDECAGQxAAAAAAAAAAAAAAAAMAAAACAAAAAQAA +AAAAAAAEAAAAAAAAAAAAAAAAUlYAAAAAAABAJAAAAAAAAD9QYk3S8an8P/AAAAAAAAA+sMb3oLXt +jRAAAABjb25maWd1cmF0aW9uIGZpbGUgcGFyc2VyIGZvdW5kIGFkZGl0aW9uYWwgY29uZmlndXJh +dGlvbiBhZnRlciBbZmluaV0KAAAwAAAAZmNvZQAAAAB2bmljX2lkAHZsYW4AAAAAdG9zAGV0aGVy +dHlwZQAAAG1hY21hdGNoAAAAAG1wc2hpdHR5cGUAAGZyYWdtZW50YXRpb24AAABzcnZyc3JhbQAA +AABmY29lbWFzawAAAABjb21wYWN0AGJhc2ljdmlydHVhbAAAAABnbGJfa2V5AGdsYnZmX2tleQAA +AHBmdmZfa2V5AAAAAGlkeHZmX2tleQAAAHN5bm1hcGVuAAAAAHN5bjR0dXBlbmlwdjYAAABzeW4y +dHVwZW5pcHY2AAAAc3luNHR1cGVuaXB2NAAAAHN5bjJ0dXBlbmlwdjQAAABvZmRtYXBlbgAAAAB0 +bmxtYXBlbgAAAAB0bmxhbGxsa3AAAABoYXNodG9lcGxpdHoAAAAAbGFuAHdhbgBjbHVzdGVyAG1h +bnVhbAAAdHBfcGlvAAB0cF90bV9waW8AAABuaWNfdm0AAG5pY191bQAAbmljX3VtX2lzZ2wAbmlj +X2hhc2hmaWx0ZXIAAG9mbGQAAAAAcmRkcAAAAAByZG1hYwAAAGlzY3NpX2luaXRpYXRvcl9wZHUA +aXNjc2lfdGFyZ2V0X3BkdQAAAABpc2NzaV9pbml0aWF0b3JfZm9mbGQAAABpc2NzaV90YXJnZXRf +Zm9mbGQAAGZjb2VfaW5pdGlhdG9yAABmY29lX3RhcmdldABwb2Zjb2VfaW5pdGlhdG9yAAAAAHBv +ZmNvZV90YXJnZXQAAABpc2NzaV90MTBkaWYAAAAAaXNjc2lfaW5pdGlhdG9yX2NtZG9mbGQAaXNj +c2lfdGFyZ2V0X2NtZG9mbGQAAAAAdGxza2V5cwBjcnlwdG9fbG9va2FzaWRlAAAAAHBwcABkY2J4 +AAAAAGIyYgBzb2NrZXRudW0AAABjZWUAaWVlZQAAAABhdXRvAAAAAGFuX2RpcwAAcGRsaXRlX2Rp +cwAAIAMdJAAEAAAAAAQAAAQAAP8CAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAP8CAAAAAAAAAAAAAAABAAL/AgAAAAAAAAAAAAAAAAAC/wIAAAAAAAAAAAAAAAAA +FgAAAAAAAAAAAAAAACAFufgAAAAAIAW5WCAFtsggBbXYIAWXoCAFLdwgBRWYIAUUYAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAACAELiAgBDswIAQ7MCAEOzAgBEqQIARmyCAEdQAgBH8IIAQq1CAEKCwg +BBvkIASW5CAEGZwgBBaAIAUUMCAFEuQgBQvgIAQ7MCAFCuAgBQkcIAUISCAGOjwgA5a0IAP7UCAF +1BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAACAEDZAAAAAAAAAAAAAAAAAgA1XcAAAAAAAAAAAAD//zAAAAAAAAD/MAAAAA +AAAA8wAAAAAAAAAzAAAAD/////8AAAAAAAAAAAAAAAAAD//zAAAAAAAAD/MAAAAAAAAA8wAAAAAA +AAAzAAAAD/////8AAAAAAAAAACAGJNwgBiQYIAZN2CAGJAQgBiREIAYjNCAGJMQgBiMUIAZNwCAG +I/D/GDBgYAAAAAABAgMAAAAAAAAAAAAAAAAgBcgwIAQsaCAAjJgAAAAAIAP+yCAEAHwgBAAMIAQA +mCAD/uwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAP/iAAAAAAAAAAAAAAAADAxMjM0NTY3 +ODlhYmNkZWZBQkNERUYAAAAAAAAAAAAAQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZn +aGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLwAAAAAAAAAAAAAAAAAAAAAgAEs4AAEAACAA +SxwABQABIABLBAADAAUgAErkAAcAAGOCU2MAAAAA////////AAAABAQIAAQECAAEBAgABAQIAAQE +CAAHQwAAAAAAAAAAAAAhAAkAgQBBACEACQAhAAkAgQBBAIEAQQCBAEEAgQBBACEACQCBAEEAIQAJ +ACEAEQCBAEEAgQBBACEACQCBAEEAIQAJACEACQEBAEEAgQAhAIEAIQAQEGEBAQCBAQEAgQMCAQAE +AAAAAAAAAAAAAAAAAAPoAAAAZAAAAAoAAAABECBAAAAAAAAAAAAAAAAAAAQAAgABAACAAEAAIAAQ +AAggQIAAAAAAAAAAAAAAAAAAIAMNlAAAAAAgAxYoAAAAACADDZgAAAABIAMWzAAAAAIgAw2gAAAA +BCADDagAAAAIIAMNsAAAABAgAxbUAAAAICADDbQAAABAIAMNwAAAAIAgAw3MAAABACADDdgAAAIA +IAMN6AAAIAAgAw30AABAACADDgAAAIAAAAAAAAAAAAAAACocAAAqPAAAKlwAACp8AAAqAAAAEAAA +ABAAAAAqAAAAEAAAAAAAAAAqGAAAAAgAAAAIAAAAAAAAAAAAAAAACAcEAwoJAgAAAAAAAAAAAAAR +ABAADgAPABQAFAAKAAcAHwAAAAAAAAAAAAAAAAAAAAAAHgAAACgAAAA8AAAAeAAAAB4AAAAiAAAA +KAAAADAAAAA8AAAAUAAAAHgAAADwAAAAHgAAACgAAAA8AAAAeAACAAEAAwAFAAAABAAAAAAEAgYB +BQMHAAAAAAAAAAAAAAECAwQFBgcICAkJCgoLCwAAACIAAAAwAAAAAAAAAAAAAAAeAAAAIgAAACgA +AAAwAAAAPAAAAFAAAAB4AAAA8CAFy6ggBctgIAXKOCAFyNggBciQAAAAACAFyMAAAAAAAAACAAAA +BAAAAAgAWWVzADAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5egAAAABub25lAAAA +AGFsbAAqAAAAZGlzYWJsZWQAAAAAZW5hYmxlZAAweAAATkEAAFYwAABWMQAAVjIAAFYzAABWNAAA +VjUAAFY2AABWNwAAVkEAAFZCAABWQwAAVkQAAFZFAABWRgAAVkcAAFZIAABWSQAAVkoAAFZLAABW +TAAAVk0AAFZOAABWTwAAVlAAAFZRAABWUgAAVlMAAFZUAABWVQAAVlYAAHBvcnQAAAAAcHJvdG9j +b2wAAAAAZ2xvYmFsAABmdW5jdGlvbgAAAABmaW5pAAAAAHJlZwBmaWx0ZXJNb2RlAABmaWx0ZXJN +YXNrAAByc3NfZ2xiX2NvbmZpZ19tb2RlAHJzc19rZXltb2RlAHJzc19nbGJfY29uZmlnX29wdGlv +bnMAAHNnZV90aW1lcl92YWx1ZQB0c2NoX3RpY2tzAAB0cF9wbXJ4AHRwX3BtcnhfcGFnZXNpemUA +AAAAdHBfcG1yeF9mbGFncwAAAHRwX25yeGNoAAAAAHRwX3BtdHgAdHBfcG10eF9wYWdlc2l6ZQAA +AAB0cF9wbXR4X2ZsYWdzAAAAdHBfbnR4Y2gAAAAAdHBfbXR1cwB0cF90Y3B0dW5pbmcAAAAAdHBf +dGltZXJyZXMAdHBfdGltZXJ2YWxzAAAAAHRwX2JhY2tvZmZ2YWxzAABzY2hlZF9pb3F0eF9icF9w +cmlvcml0eQBwbF90aW1lb3V0X3ZhbHVlAAAAAG1lbWZyZWVfY29uZmlnAABtYwAAbnZmAHd4X2Nh +cHMAcl9jYXBzAABuaXFmbGludAAAAABuZXEAbnFwY3EAAAB0cF9zcnEAAG5ldGhjdHJsAAAAAG5j +cnlwdG9fbG9va2FzaWRlAAAAbnZpAHJzc252aQAAcnNzbnNlY3JldAAAbmV4YWN0ZgBucmF3ZgAA +AGNtYXNrAAAAcG1hc2sAAABuZXRob2ZsZAAAAABucm91dGUAAG5jbGlwAAAAbmZpbHRlcgBuaHBm +aWx0ZXIAAABuc2VydmVyAG5oYXNoAAAAdHBfbDJ0AAB0cF9kZHAAAHRwX2RkcF9pc2NzaQAAAAB0 +cF90bHNfa2V5AAB0cF90bHNfbXhyeHNpemUAdHBfc3RhZwB0cF9wYmwAAHRwX3JxAAAAaXNjc2lf +bnRhc2sAaXNjc2lfbnNlc3MAaXNjc2lfbmNvbm5fcGVyX3Nlc3Npb24AaXNjc2lfbmluaXRpYXRv +cl9pbnN0YW5jZQAAAGlzY3NpX21heF9zZ2UAAABwcG1fbWF4X3pvbmVzAAAAcHBtX3pvbmVfcmFu +Z2UwAHBwbV96b25lX3JhbmdlMQBwcG1fem9uZV9yYW5nZTIAcHBtX3pvbmVfcmFuZ2UzAGZjb2Vf +bmZjZgAAAGZjb2VfbnZucAAAAGZjb2VfbnNzbgAAAGZjb2VfbmZjYgAAAGRjYgBkY2JfYXBwX3Rs +dgBkY2JfZGNieF9wcm90b2NvbAAAAGh3bQBsd20AZHdtAGRlYm91bmNldGltZQAAAABhbl9hZWNf +dGltZQBmZWMAYWVjX3JldHJ5X2NudAAAAHNwZWVkAAAAdmVyc2lvbgBjaGVja3N1bQAAAABTZXNz +aW9uVHlwZQBPRk1hcmtlcgAAAABJRk1hcmtlcgAAAABEYXRhRGlnZXN0AABIZWFkZXJEaWdlc3QA +AAAARXJyb3JSZWNvdmVyeUxldmVsAABJbW1lZGlhdGVEYXRhAAAARGF0YVBEVUluT3JkZXIAAERh +dGFTZXF1ZW5jZUluT3JkZXIASW5pdGlhbFIyVAAATWF4Q29ubmVjdGlvbnMAAE1heFJlY3ZEYXRh +U2VnbWVudExlbmd0aAAAAABJbml0aWF0b3JOYW1lAAAASW5pdGlhdG9yQWxpYXMAAERlZmF1bHRU +aW1lMldhaXQAAAAARGVmYXVsdFRpbWUyUmV0YWluAABNYXhCdXJzdExlbmd0aAAARmlyc3RCdXJz +dExlbmd0aAAAAABNYXhPdXRzdGFuZGluZ1IyVAAAAFRhcmdldE5hbWUAAFRhcmdldEFsaWFzAFRh +cmdldEFkZHJlc3MAAABUYXJnZXRQb3J0YWxHcm91cFRhZwAAAABBdXRoTWV0aG9kAABTZW5kVGFy +Z2V0cz1BbGwAQ0hBUF9BAABDSEFQX0kAAENIQVBfQwAAQ0hBUF9OAABDSEFQX1IAAERpc2NvdmVy +eQAAAE5vcm1hbAAATm9uZQAAAABDUkMzMkMAAENSQzMyQyxOb25lAE5vbmUsQ1JDMzJDAENIQVAA +AAAAQ0hBUCxOb25lAAAATm9uZSxDSEFQAAAATm90VW5kZXJzdG9vZAAAAElycmVsZXZhbnQAAFJl +amVjdAAATm8AADUAAABDSE5ldCAxLjAwAAAAAAAMAAAAAAEAAXwADAEAAAAAEAAAABQgBmz4AAAD +BQ5AAAAAAAAQAAAAKCAGcAAAAAMwDlAAAB/8AAAf/AAAH/8z8B//M/AgBoOAIAaG8CAJNDggCTQ4 +IAoAACAKgAAgCoAAIArmgCAGg9AgAAAAIAMAACALACAAAEAAAACABwAAgAQAAIAAIAt7EAAACADh +AY4AAAGRDIAAAAAgC3rw///z/yALeqAgC3swH/8UEAAAuO4AADQAAAC07gAAtP8AALQAAAC4AB// +LuQgCwBQIAMQeCALe1AgC3uQFaAAAAAAg/0gAw7YIANRvAABQUoAAQFuAACD/yADDzgf/zFQAMAA +ASALe6AgCwCQIAMQiCALAgAgCwIwKMAAAEAAAAIgAw+EKKAAAIAAAAIgCwMgH/8uEB//LrAAAP// +4QAAAAEAAAAoAAAAawAAACADDwAgCwNQEAAAAO4AAAADYAAAIAt8MCADSwggC3xQAAAnECADU3Qg +C3ygIAsDoEAAAAAgAxDIIAsEIAPgAAAgAwAgH/8uYB/84gAf/y104QMGAP/f///f////AAEACgLm +AunhAv4AIAMAMOEABgAAAgAA//3//wCYloAAD0JArWU0XTuayf87msoAAARMAB//LsAAAK8A4QEO +AAAAiPcAIAAAAT8BQAAsY0gAB6EgH/8tFCALfNAgC30wCAAAAB/84uQgA12MH/8urCALBFAgCwWA +IAsEgA88AAAgCwUQIAPrICAD7QQgCwXgDwAAACALBkAf/wfgH/8GEB//CNAgCwawIAsG8CALBzAg +Aw0gIAMS8CADEnAgC37AIAMSUCALfvAgC32gIAt+ACALfmAf/y8E4AAAACAAS1gf/zAUAP///yAL +fxAgCwfAIAsIICALCHAgCwfwIAO6qAAIAAAgA7/AH/8uoCALCgAgBoCAIABIPAAP/AAf/xo4H/8b +kAAAMAAgCwpAIAsK0CALC3BVAAAADgAAACALf7AgAxNoAAAIBh//LpwgCwugIAsMgAAAD/4f/y68 +IAsNECALDOAAAPAAIAt/0CALDTAgCw2QIAsNwCALDiAgCw5wIAsPMCALf/AgCw7QIAN4MCADkfwg +Cw+QIAsP0CALEEAgCxCQIAuAwCADmNggA560IAuAgCALEUAgCxDQIAsRsCALEhAgCxKAIAaGsCAL +EwAgCxNA7/////f///8gCxOgIAsT8CALFsD9////IAsUUCALFMAgA6E4IAsVICALFYAgCxXgIAsW +MCALFnAgC4EQIAMTYAAQQAAgAxL4DAAAAIEAAAAEAAAIH/8IQB//CUAgAxYAH/8IID/////P//// +IAsXIB//CPwf/y6kIAsXYCALF6AgC4EwIAsYIH///6sAAJxO///QTQAA0aT//y5cIAsYoCALGGAg +CxfgH/8IPAAQSAAgAxL8H/8IOAAAIAAgAxYAH/8IoCALGOAgA8OcIAsZkCADTEAgC4HAIAuBUCAL +gaAgA8e4A//QAAAAD/8AAQAAIAuC0B//GyAAQAAAABAMAIP/0AAgC4JAIAN4ACALgwAf/y90IAsb +UCALG5Af/y0gIAuDgCALG8AgCxvwIAscECALHEAgCxyAIAscwCALHTAf/y74IAseQCALHYAATEtA +IAPDVCALHdAgCx6ABAEACCADo8AgCx8AIAsesCALIQAgC39wIAPdMCALf0AP9oAAIAshYCALg7Ag +AFz4IABeeCAAWvwgCyEwIAsicCALIZAgAFicIAsiICALIqAgCySQAACOAiALJQAgCyVQIAsloCAL +JMAgCyXwA4AAAB//MWAgCyZAIAsmkP/3//8gCyeAIAPX9CALKEAgCykAIAPcICAD1ewgA8O8IAPb +VCALKUACAAAAIAspgAAAF3AgAxC0IAuEoCALhFAgC4QwIAP9eCALhAAgC4SAIAMQRCADEJQgCypg +IAsqsB//LUAgCyrQIAsrAOEAXgAgCysgH/8sDCAGgXQgCytQH/8rKOEAfgAf/y1QH/8uuAAA8/8E +AAAAFAAAACAEBxgqAAAAIAssAB//L3AgC4VwIAAiOCALhUDgAAYAH/ziCOAACgwf/x2AIAsskAAA +nEDgAAoAH/8eEOAADYAAnAAA4QAuACALLXAgCy5QIAsuICALhmAgCy3wH/8enCALLbAAAwTA4QMC +AOD//gDhAI4AH/8WLAAAloAAAJZAIAaDgAAAlqAAAJZg4QMALAADAADhAHoAAAHgAOEBkgAAAeMA +BgAAACAEHdj4AAAAAf//5wABQAAgAACAAAAQAB//LQTPAAAAHAAAAB//KzjhAZoAABAAAB//L6Ag +AxBMIAMQXCADEFQgAxBkgAAAAx//LrT//P//H/8VzH////8f/OIEH/8V3B//Flwf/xX4IAY0+CAE +LiAgC4nAIAuKACALijAgC4pwIAuKoCALiuAgC4sQIAuLUCALiXAAD/////8AAP/wAAAf/y6MH/8y +YB//KlQgBDswIAuMcCALjKAgC4wQIAuLsB//HJgf/xsMH/8cOB//HpgAAAnWAAD/gAAAPAAAACMn +IAsvYAAAkBAAAJEAAACQIAAAkRD/+///AAQAAOEB4sCQAADw/P8AwAIAACD+/wDAIAsvsCALL/AA +APgAAAMBCAADAVCP////AAMBDCALMEAgCzCQIAswwCALMQDhAO4AgAH//4AA//+AAQAA4QDeAAAB +ERQAARMAAAMDCAADAgAf/y1E///gAP/+//8AAPwAH/8u1AABwAAAAAwAAAMDBAABERAf/y7MIAuN +AAAgEACAABAAAAMBBP//wAAAAP/+AAAlgAADAwAf/y084P3iwB//K6gf/x4sIAuNUCALjYAgC42g +AAD//SALjTAgAwCIAAD/8yALMVAAACowAAD/+AAA/48AAFK1AABICgAAj4IAAI+GAAA4AAAAj4oA +AOM/AACDrgAA//EgCzFwAAAQQP//z78gC43AAAASACALMaDhAy4A4QMyAP7////hAwEIIAsxwCAD +AJAgCzIgIAsx8ACAAAAgC43g///mACALjrAAAP/7H/8rrAAA5/8AABgAAAD+/wAA/8AAAP8/AAD5 +/wAA//cgC44QIAuPACALj1AgC4+wIAuOcCALMtAgCzKQIAsyYAAAwAAgC4UAIAuEwAAADLwgCzXQ +IAMBQCALNjAgCzYAIAs5ICALOOAgCzigIAs4YCALOCAgCzfgIAs3kCALN1AgCzcAIAs2sCALNnAg +C5LAIAuS8CALkyAgC5NgIAuToCALk9AgCzpQIAs6ACALOWAgCzmgAACAwgAAGyEf/ys8IAs6gCAL +lAAgC5RAIAuUYAD/wAASAAAAIATNaCALlRAgC5TQAACgAGAAAAAf/y8oIAuWkCALOqAgCzrQAAAc +ICALOwAgCztgH/8tiCALO6AgCzswIAs9UAAAf6YgCz3gIAs9cCALPhAgA0HYIAs9oCALPnAgCz5A +IANDGCALPqAgA0iIIAuXcCALQBAgC5nAIAtBMCADEuAgC0BgIAtBUCALQMAgAxOEAAASDyALQZAg +BPdE//9AACALnEAgC0JgIAtC4CALQzDhAZGsAAGRrL////8gC0NgCwAAACAE/bAgC0PQIAtEQCAL +RLAgC0TgIAucgCALnQAgBIDwIAMQhCALnbB///8PIAtGAMAAAAAf/y1w/AD//+EAlgDhAJoAAAAJ +/+EAngAAALAAH/8vPCADAYAgC0ZA4QAOAOEAEgD/4DgAA/+ADgBz/4ADAAAAADj//xMAAAARAAAA +H/wAACALRoAgC56wAAGUjwABlM8gAwGgH/8eZCADBiAgC0bAIAtHACAGf3AgC0cwH/8sXB//FKQf +/yzcIAMHEAAEFAAf/x10H/8b/B//HWzhAFoAAgGwAB//FcQgC02gIAtN8CALTlAf/y8QIAtPIB// +LFgAP///H/8cFB//LQwAAP+XAAD+1f//q5Mf/y6YFLAAAIAAAATCAAAOFqAAAAXcAQAgoAAAP/AA +ACOgAAAD/wAAF5AAAMAAAAEgC0+QIAtP0CALUCAgC1BgIAtQsCALUPAf/y+EAgAAECALUzAf/y0k +IAtUQCALhaAgC1TQAAD+ACALo6AbAAAAAAUAAjrAAAAgC1UQIAVFsCALpGAgC6PwIAukMCAFTCgg +C6PQ//9//yALVUD//8H////fzwAA4AD//5//IAtVcCALVaD//98wH/8rQCALVdAf/xYwAAD/3+ED +KgD//+3/H/8rtCADB5AgC1YAIAMH8CADCFAgC1YwIAaDsCAGg7ggC1ZQAAGQ+P/8+H8gC1aQIAtX +ACAGgEQAABOIIAtXMAADAAIf/x4oIAtXsCALV2AgC1fgIAV/eB//K6ThAxAE4QMSUCALpPABMBjA +AAGGoAF9eEACYloABfXhACALWEAgC1ggIAulMCALWGAgC1jgIAtYoCALWSAgC1mgIAtZ4CALpXAg +C1lA4QMABOEDADAf/yu4AAQF7uEDAQThAeIAH/8eTAAB///hAZ4AAAGfNAABnzggC1ow/7///x/8 +3gAf/xZEAAUABB//LsQf/x5UH/8eWAAAiQYAAIkUIAgAAB//LRAgCE6wIAgGYCAIjwAgCAVQIAgC +ICAIAzAgCARAIAgBEB//L0Af/yroH/8cMCAGgIQf///wH/8pSB//LCAgAWjE///3AOEAdgAgAxDA +IAujcCALqsAf/y5MIAthkCAGhdAgBoZ6IAaGcCALZCAUkAAAQAAABAAAUAAgC2SQIAtkwCALYpAg +A5hwIAti0CALYzAAAI/+IAtjgCMoFQAD/wAfIAtj4CALrCAgC6sgIAuroP/oD/+//w8A//8PAAAQ +gAAgC2UwIAY0sN6tvv8gBbfoIAMIsAHIAAbhAZng4QESACALenAgC3rAAAB+UAAAfkAAAH4YIAXE +sCADFjAgAxY0IAMWKCADFjggAxZEIAMWTCALaKDhAZoE4QGaCOEBmgwAAwAGH/8eSABRAAYgC2nw +IAtqIB//HxAgC2pQIAtqgCADFNAgAwjgIAtqwCALaxANAOAA4P8H/wgA4AAFAMAACQBgAAUAoAAA +AzAAAA4AAADgAAD/AP///w///wAAgAP//3/8AABwAP//D/////AAAAAPGyALpKD//7//AP8AAAAD +LBwAAywYIAMVAOEDDgDhAxIEIAuxYCALsTAgC7DQIAuxECALsYAgAwkgIAMJgAADEhAgC2tQBAAA +AQQAADEf/xWoBIAAAfsP/34+PgAPIAukwAADDQgAAw0cAAMNIOEDJgAAAwogAAMKHAADCgjhAwoU +AAA/4OEDEgAAALmT///v/+EDRgAEAACBBAAAsTMhaMFj5sTwM5tlxdg9eaIgAwngAAST4CADCkAg +C2vQIAtroCALbAAgBoCUIAtsMCADClAgC2yAAAD+wSALbQAgC20wIAtswCALbaAf/y24AB6EgAAA +GMQAAAjgAAMSBAADEhQAAwg0AAMqHAADKjwAAypcAAMqfCALrlAgC6ygIAus0CALrQAgC61AIAMU +wCALrFAgC61wIAuuMAAAdTAgC62gIAut4CALsAAAAwh4AAMIAB//KcwgC6+gIAuvwCALrrAgC7Ag +IAuwQP//Y+8AAywAIAuu4CALrxAAAywEIAuvQCALr3AAAyw8IAuwYAAA/+8gC24QIAux0CALsiAg +AwrAIAuxoCADCyAgAwuAIAML4CADDEAf/xnMgA8AAN///gDgAAEA4QHiQCAGhCDhAeKQH/8vRAAA +MYDAAAAGAABcSAAAKUAgBifQIAtwsCALcJAgC3BwH/8WVIAAAEThAFYA4QBW4OEAXnAgC3DgIAtx +ACALcTAf/y1IIAuyYAAAMUQAAGRMAAA5hB//FVQAADGEAABcTAAAKUQgC3FgIAtxkCALccAAAD4E +HQAAAB//L2wgBoG0ADAAACADE9QgC7NgIAu0ECALspAgC7LQIAu0kCALs7AgC7MQH/8sZB//Lxgg +C3IwIAYtbB//MhAf/zBQH/8zpB//M7wf/zPUH/8zqB//M8Af/zPY7f///wACYlr/5///bf///wAa +QQAAGkGA/+W+fwAAGhoAlAAA8AAAAAADCQQgC3Jg4QM6ACADDKAf/xxIIAMNAB//HFAgC3KA4AAN +kCALctDiAAAAIAqAAB//FPAAABxgH/8rGB//LIif////IAu38L//8P8f/xbYH/8t9CALdWAgC3Yw +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 +AQUFAT4PBQUBLgSBgQEbAgEBAA4CgQEBLgKBgQAOAgABAA4CgQEADgIBAQEaAYGBAQ4CAQEAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4CgQUAAAAAAAAAAAAAAAAAAAAAHgIBAQAAAAAAAAAA +cwAAAH0AAACHAAAAkQAAAAAfAAAAAAAAAQAAAAAAAAACAQAAAAAAAAQCAAAAAAAABhQAAAAAAAAH +EgAAAAAAAAgDAAAAAAAAChUAAAAAAAAPEwAAAAAAABAEAAAAAAAAIAUAAAAAAABABgAAAAAAAIAH +AAAAAAAAwBYAAAAAAAEACAAAAAAAAgAJAAAAAAADABcAAAAAAAQACgAAAAAACAALAAAAAAAMABgA +AAAAABAADAAAAAAAGAAaAAAAAAAgAA0AAAAAAEAADgAAAAAAgAAPAAAAAADAABoAAAAAAOAAGwAA +AAABAAAQAAAAAAGAABwAAAAAAcAAHQAAAAAB4AAeAAAAAAIAABEAAAAABiF6AAAABQAAAAQAAAAE +AAAAEgAAAAQAAAAbAAAAFgAAAAAAAAABAAAAAQAAAGwAAABsAAgbMgAAAAYAAAAEAAAADAAAABEA +AAAEAAAAHQAAABQAAAAAAAAAAQAAAAEAAABwAAAAcAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiH/AAAABwAAAAIAAAACAAAAEQAAAAQAAAAeAAAA +GgAAAAAAAAABAAAAAQAAAHQAAAB1AAAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAw1AAAAAAgAAAABAAAACgAAAAgAAAAFAAAAHQAAAB0AAAAAAAAAAwAAAAEAAAB4AAAA +eQAMNQAAAAAIAAAAAQAAAAoAAAAIAAAABQAAAB0AAAAdAAAAAAAAAAMAAAABAAAAeAAAAHkAAAAA +AAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOThwAAAAJAAAAAQAA +AAYAAAAGAAAAAgAAAB4AAAAeAAAAAAAAAAEAAAABAAAAfQAAAHoAAAAAAAAAAAAAAAAAAAAJAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDZkAAAACgAAAAwAAAAJAAAAEQAAAAQAAAAdAAAAHQAA +AAAAAAABAAAAAQAAAAAAAAB+AAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAML5MAAAAJAAAAAwAAAAoA +AAAXAAAABgAAAB8AAAAcAAAAAAAAAAEAAAABAAAAYQAAAHMADDUAAAAACQAAAAMAAAAKAAAACAAA +AAUAAAAdAAAAHQAAAAAAAAADAAAAAQAAAGEAAABzAA05awAAAAoAAAADAAAABgAAABoAAAAPAAAA +HQAAAB0AAAAAAAAAAwAAAAEAAABkAAAAZAANu6AAAAAKAAAAAwAAAAYAAAAJAAAABQAAAB0AAAAd +AAAAAAAAAAMAAAABAAAAZAAAAHEADj3VAAAACgAAAAMAAAAGAAAAHAAAAA8AAAAdAAAAHQAAAAAA +AAADAAAAAQAAAGYAAAByAA62vgAAAAsAAAAEAAAACQAAABsAAAAHAAAAHQAAAB0AAAAAAAAAAQAA +AAEAAABmAAAAdwAPQkAAAAALAAAABAAAAAkAAAACAAAAAQAAAB0AAAAdAAAAAAAAAAMAAAABAAAA +ZgAAAHcAD7xSAAAACwAAAAQAAAAJAAAAIQAAAAgAAAAdAAAAHQAAAAAAAAABAAAAAQAAAGsAAAB4 +ABA2ZAAAAAsAAAAEAAAACQAAABEAAAAEAAAAHQAAAB0AAAAAAAAAAQAAAAEAAAAAAAAAfitnI4MY +ag0FCykAAAAAAAAAAAAAGGoPBgspAAAAAAAABQEdAAUCHQAFAx0BAAAAAAAAD/8AAAD/AAAJ2wAA +D6UAAAmZAAAAmQAAAAAAAAAAD/wP/A/4BfwP8A+0D+AFtA/ACZQPgAAADwAAAAwAAAAPwAAADsAA +AA+AAAAOgAAADwAAAA4AAAAMAAAAAQAAAAABOIAAAGgqAABOIAABhqAAAYagAAII1QACCNUAAAAo +AAAAMgABBGoAAGgqAABKZwABhqAAAYagAAII1QACCNUAAAAoAAAAMgABWzgAAGgqAABQIAACCNUA +AYagAAII1QACtnEAAAAmAAAAMgABKZ4AAGgqAABNKQACCNUAAYagAAII1QACtnEAAAAmAAAAMgAB +BGoAAGgqAABKZwACCNUAAYagAAII1QACtnEAAAAmAAAAMgABdAYAAGyBAABUAQACiwoAAgjVAAKL +CgACtnEAAAAeAAAALQABRYUAAGyBAABRYQACiwoAAgjVAAKLCgACtnEAAAAeAAAALQABIVoAAGyB +AABO6gACiwoAAgjVAAKLCgACtnEAAAAeAAAALQABBGoAAGyBAABMlwACiwoAAgjVAAKLCgACtnEA +AAAeAAAALQABhqAAAG+bAABWzgACiwoAAgjVAAKLCgADDUAAAAAeAAAAKAABWzgAAG+bAABUdQAC +iwoAAgjVAAKLCgADDUAAAAAeAAAAKAABOIAAAG+bAABSPAACiwoAAgjVAAKLCgADDUAAAAAeAAAA +KAABHBgAAG+bAABQIAACiwoAAgjVAAKLCgADDUAAAAAeAAAAKAABbREAAHLjAABXYwADDUAAAosK +AAKLCgADDUAAAAAbAAAAIwABS+EAAHLjAABVYQADDUAAAosKAAKLCgADDUAAAAAbAAAAIwABMDkA +AHLjAABTZQADDUAAAosKAAKLCgADDUAAAAAbAAAAIwABGNIAAHLjAABRiAADDUAAAosKAAKLCgAD +DUAAAAAbAAAAIwABe8wAAHZfAABaPgADDUAAAosKAAKLCgADDUAAAAAZAAAAIwABXCYAAHZfAABY +VgADDUAAAosKAAKLCgADDUAAAAAZAAAAIwABQV4AAHZfAABWgQADDUAAAosKAAKLCgADDUAAAAAZ +AAAAIwABKmoAAHZfAABUwAADDUAAAosKAAKLCgADDUAAAAAZAAAAIwABESoAAG+bAABP3QACCNUA +AgjVAAKLCgADDUAAAAAeAAAAKAABFwQAAGyBAABOIAACiwoAAosKAAKLCgADDUAAAAAbAAAAIwAB +KYEAAHZfAABUrQAEH74AAuEHAAKLCgADDUAAAAAVAAAAHgABFdMAAHZfAABTAQAEH74AAuEHAAKL +CgADDUAAAAAVAAAAHgABBGoAAHZfAABRYQAEH74AAuEHAAKLCgADDUAAAAAVAAAAHgABJUMAAHoS +AABWKAAEn7YAAuEHAAKLCgADDUAAAAAVAAAAHgAAAAAAAAAyAAAD6AAAACgAAE4gAAAAAAAD0JAA +mJaAAA9CQACYloAAABwgAAAASwA9CQAAA9CQAJiWgAEBAAADAwICBQUEBAcHBgYAAAAyAAAD6AAA +AGQAAMNQAAAAAAAD0JAD0JAAAExLQAPQkAAAABwgAAAASwA9CQAAD0JAI8NGAAMCAQAHBgUECwoJ +CA8ODQwAAAAyAAAD6AAAAAoAAAH0AAAAAAAAA+gAmJaAAA9CQACYloAAABwgAAAASwA9CQAAA9CQ +AJiWgAMCAQAHBgUECQkICAsLCgoAAAAAAAAAAAAAAAIAAAAEAAAAAAAAAAAAAQACABwAGwAWABUA +HgAdABgAFwAMAAsAEAAPACAAHwAaABkAFAATAAoACQAOAA0AEgARAAgABwAGAAUABAADAAEAAgAA +AAQAAAAAAAAAAAAAMAQAADAQAABZ3AAAWoAAAFqEAABaiAAAWowAAF6gAABepAAAXqgAAF6sAABe +sAABlDAAABAkAAAQMAAAEDwAABDcAAARDAAAESgAAHssAAB7NAAAezwAAeKMAAHmjAAB6owAAe6M +AAHyjAAB9owAAfqMAAH+jAAAjcwAAI6AAAB+dAAAj9wAAZFYAAGScAAAj/wABBMcAAQTGAAEExAA +AHfgAAB35AAAd/QAAHgEAAGcPAABEHQAARCEAACUCAAAmFwAAJYMAACWFAAAliAAAJYsAACWxAAA +0CgAAJAIAAMI3AADSNwAAwjkAANI5AABkFQAAGAcAAGg2AABkJAAAHfgAAB35AAAd/QAAHgEAAB4 +2AAAeOAAAHj0AAUAeAAFCHgABRMIAAGUBAAB48AAAefAAAHrwAAB78AAAfPAAAH3wAAB+8AAAf/A +AAGUDAAAMACf//9AAAAwCJ///0AAAZQQH//n/wABlDQAAAAQAAGUCB//4/8AAZQ4AAAAEAAAEChg +////AAAQLGD///8AABA0Afxf/wAAEDgB/F//AAAQQAAEAAAAABEQAP///wAAERQA////AAB7KAB9 +/+IAAHswf//u/wAAezgAAAABAAB7QH//7v8AAHwkAH3/4gAB4ogACAAAAAHmiAAIAAAAAeqIAAgA +AAAB7ogACAAAAAHyiAAIAAAAAfaIAAgAAAAB+ogACAAAAAH+iAAIAAAAAI3I////8AAAjdD////w +AAB+cH+//38AAH54f7//fwAAfgACwAAAAAGRVAH///8AAZGcAf///wAAj9gDf///AACP+P////8A +BBMUAAAABwAEEwwAAAAKAAB33AAAAAcAAHf0/////wAAeAQAAAADAAGcODnBv/kAAJAEAAAAPgAB +EHgBjAYAAAEQfAGMBgAAARCIAAAAAAAAlAQACd/gAACUEAAJ3+AAAJhUAAAB/wAAmFgAAAH/AACW +CAAAAAAAAJYcAP///wAAliQA////AACWKAD///8AAJYwAP///wAA0CAAAAAPAADQJAAAAA8AAwjY +AAAAAwADSNgAAAADAAMI5AAAAAMAA0jkAAAAAwABkFAAAAD/AAGg1AAAAYMAAZCMADgAAAABkJgA +OAAAAAUAdAAAAC8ABQBwAAAALQAFCHQAAAAvAAUIcAAAAC0ABRMEAAAAPwAAAAAAAAAAIAMW/CAI +0pggAxcAIAjlkCADFwwgCOSYIAMXGCAI5DwgAxcsIAjjOCADFzggCOKEIAMXUCAI4RggAxdgIAjf +yCADF2wgCN6oIAMXdCAI3nwgAxeIIAjeUCADF5ggCN4YIAMXpCAI3PggAxesIAjczCADF8AgCNyg +IAMX0CAI3GggAxfcIAjavCADF+QgCNn4IAMX9CAI2OggAxgAIAjXyCADGBAgCNawIAMYICAI1YQg +Axg4IAjSQCADGEwgCNH4IAMYXCAI0PwAAAAAAAAAACADGGAgCNCwIAMYZCAI0DAgAxhsIAjP+CAD +GHQgCM/AIAMYgCAIz4ggAxiEIAjPUCADGIwgCM8YIAMYlCAIzuAgAxigIAjIMCADGLQgCM6oIAMY +uCAI0GggAxjAIAjOcCADGMwgCM44IAMY1CAIzgAgAxjcIAjNyCADGOQgCMqoIAMY7CAIzXQgAxj4 +IAjNaCADGQAgCM0wIAMZCCAIzPggAxkQIAjMwCADGRwgCMyIIAMZJCAIzFAgAxbUIAjIXCADGSwg +CMf4IAMZNCAIx8AgAxk8IAjHiCADGUwgCMdQIAMZWCAIxxAgAxloIAjG2CADGXAgCMagIAMZeCAI +xmggAxmAIAjGPCADGYwgCMYQIAMZmCAIxdAgAxmwIAjFpCADGcwgCMV4IAMZ3CAIxUwgAxnsIAjF +ICADGfwgCMT0IAMaDCAIxMggAxocIAjEnCADGiwgCMRwIAMaOCAIxEQgAxpEIAjEGCADGlAgCMPQ +IAMaXCAIwmggAxpgIAjAiCADGmwgCL+IIAMagCAIv1AgAxqEIAi/GCADGoggCL7gIAMajCAIvqwg +AxqcIAi+RCADF5AgCL0kIAMaqCAIvQggAxqsIAi8tCADGrwgCLxgIAMaxCAIvDQgAxrMIAi8CCAD +FuAgCOjIIAMW6CAI5+ggAxbMIAjnKCADFvQgCOZsAAANAB//AAAf/wAYH/8UECAIAQAf/x0gIAtH +gAAKAADhBBIA4QQCAOED/gD/wf//ABAAAEIHCAACAAAA//+A7gAA8AAAABUAUAAAAAYAAAAABgAA +EPAA8AAAMAAAwAAAQDBCAAEAAACABAAB4AAAAIDACAABAEQg+OD//3AA/+CAMwABDw8AAAAgAAAA +MAAAABAARoAAAAEf/wDAAAARAIIAAAHAAAQAAAAP/1////8gAAAAIAtHoBAAAAAgC0fQAAQTACAL +R/Af/x2gIAtIEB//HMggBoPQH/8vECALn5DhAHYAIAufACALn0AgC0gwH/8faB//HvDhAZoAAAGe +DOEBngAAAZ6sH/8fcB//G/wAAf//AAGfTAABn5wAD0JA4QB6ACALSMAgC0kQIAtJcAAA//8///// +IAtJ0CALSkAgC0qAIAtKwCALSwAgC0tAIAtLgCALS8AgC0wAIAtMQB//ARAf/x0kH/8dkCADE/Ag +AxOQ/wD//wAMAACAAAAfgAAAPx//K7gf/xYs4QDOAERERESIiIiIzMzMzB//Lzgf/x0QH/8cmOEB +DgAAAEAA4QCOAAAAgADMiEQAH/8GEB//HZQf/y8gAAAIACALTMAgC00gAAALAAAACsAgC6CAIAtM +gCALoBAgC5/Q4QAuAAQAAAAf/xZU4QBWAAQBgACIAAEA//GBAAABgAAgCAAAIAgRVAAAElDhAZIA +AAMAAAACAAAAfwBAAIIAgAABAAAAwQDAH/8cnB//L0DhAA4A//8j/wAAyAAQIAEg4QB+ADwAAAD/ +/7//UGjoR5IAAADwAPAA37//+yAAAAR/9///gAACAP7/////9/9/AAB+GP//8AAQARABIAEgAQAA +fkAVFRUVISEhIRAQEBDhAY4AAAD+fwQEAYCAAAAA4P/+ACAICyQA/wD/AEAAQP//P/8gC6EwIAuh +YP8P////wP//IAug8CALoZAf/xxIH/8sFB//LhAf/x4QIAtOoB//Hpgf/xwUAAD//YAPAAAf/ywE +IAuigOMAAgDi//8AIAtO4CAI5mwAQAAAIEAAAACAAAAggAAA0AAAACALocAgC6JQAAAQACADDUwf +/zFQH/8tOB//ATAf/y6wIAujUCALUTAgC1GwIAtSICALowAgC6LAIAujIB//LVAgC1KwAAAoAAAA +P/8AAMAAAAQAAOEAMgAf/x48//AAByALpiAgC6XQH/8BYB//AaAf/wHgH/8bkAAAe2Af/OIACAAA +AB//K6Qf/xXE4QL+AOEDvgDhAz4A4QN+AOEB4gDhAJIA4QESAP//8P8AAZwIAAGcBAABAAX/8AAA +AGAAACALpnDhAZoE4QGaCOEBmgwgC1pwIAta0B//AmAf/xz8H/8cEB//Lzz/8P//IAMR6B//GhAA +AH5MIAtcQOEAigAgC1tAIAtboCALXAAf/xacH/8yYB//LyQf/ysQH/8tBCALXHAgC1zwIAuooCAL +XKAf/y0sIAtdcCALXTAgC6cgIAtd4CALXiAgC15gH/8s3CB//gAgC6mQH/8qEN/AAAAgC6jwIAup +MB//LOz/gAAA///gACALXqAgC17QIAum0CAGgIQgAxH0H/8vFCALXxAf/yxIH/8bEB//Krwf/x+Q +IADE8B//ulAf/7mQH/8uvB//u2QAABOIAgCCEAIAAhAAACAAAgAAEAAaAAAA+saI8AAAAB//LTwf +/xU4H/8rRB//FhjhAwIAIAaAGAAA/98AAP/3IAtgIB//AnAgC1+wIAtfgCALX1AgC1/gIAZ/cH// +//8gC2BwIAtgQCALYKAf/x5QH/8cKCALpZAAAPgAIAMUAB//FmgAPDw8H/8aoB//LqwgCAx0IAaA +YCADFBAf/xZcH/8U6P//x/8f/xvMIAuoUCALp/AgC6qAIAthQCALqiAgC6nwIAtg0CALqlAgC6eA +H/8caB//HGAf/yqIH/8qhB//K7QgC2VQIAtloB//K7AgC2YQH/8C8B//K0AAACcQIAtmQB//Kjwf +/xyoH/8cpB//AxAf/yuoH/8uuCADDbQgAxA0H/8DMB//HiwgC2awH/8rUB//K1Qf/ytYH/8rjB// +K4gf/yuEH/8rgB//K3wf/yt0H/8rZB//K2gf/ytsH/8r2B//A2AAAEADH/8VVB//HEQAD//wIAtm +8B//BBAf/y9UIAtnUB//HVggC2egH/8dLCALZ9AgC2gAH/8EIAAAJYAgC2gwIAtocB//GtQf/xow +H/8EQB//HEAf/xrYH/8aLB//BEggC2kwIAto4B//HYD//wAAA+f8GCALaVAf/wRQH/8sGCADDhjz +////IAMOICADDiwgAw44IAMOCA////8gAxRAIAtpsCAIEUT//+3AIAgQ5P//7iAgCA90///vkCAI +DqQgCA9s///wYP//AAEAAf/+AARwFAAEcCgABHAgAARwPAAA/wAABHAsAAD/gAAAj4AgCAaUIAgG +hB//BKDS8an8P1BiTUAkAAAABACEAPAAAEIHyADCB8gAAAQAgM8P6AAABAKAAAQBAAAAfwEAAQRq +IAgGFCADFZAABAJAIAMVYAAEAkQAAB+fAAQCSAAAFvgABAJMAAQCUAAEAlQABAJYIAMVMAAAHD// +/w//AAQCAB//FggF9eEA4ADwAAAEAgQABAII/w//PwACCNWgte2NPrDG9z/wAAAAAmJaAAYagP8/ +//8ABAIMIAuyQAEABEAABAIQfz93/wAEAhQHAAAAAAGGn4//AA8ABAFAAAQBROBw//8ABAFIAAQB +TPBw//8ABAFQAAQBVAAEAVgABAFcAAQBYAAEAWQABAFoAAQBbAAEAXAQEAAAAAQBdAAEAXgABAF8 +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 +DbMJGUDp6OfAENAMke0808APWAt/KzR96D7TwA0AAikvEiPvP9PAERAM4e4w1EARCAzR7THUQBDA +DLErNIIoIX3pANhAEKgBqBv0xCk0eSk0eOm/xUAIAAAHZMHUF/S9LHJk5HvKwA0IARzqEslADoAA +MBr0uSqioikiYqo6CaoRqpkqkRwPqhEqlRwtIX/qC47ADQAL3SySGikWEeq470ANAAl8LRIRmhrq +H8hAEQACseo4kEAQWAzt7hnIQBCQC93tHchAC5gJ6eoZyUAQiAyR6BywQA2QAKqNGeSR0cAQaAyx +6JPBQBDoDPHlkclAEEAMweycyEAQgAzp75/IQA6AAMHrksFAEoANua3/rlXtm8hADzgLyyuUUChw +fesLhsAQCAIzq0TvHckAAYgD+Oue0cAIAAAsGvRCCro26RHJQAzwCqDqnMFACfgPWwAACgpP6RHJ +QAn4D04AACuQXixyZKtmDwIA4hTwH/g4C8PqGclAEJAMoeVxysAQgAzhJHZm5nfKwA6AAdDqEskA +AagK7cCi7Cd4wA6AALDt6O9AC8AInikhfRL0a+gSsUASWAzyCWlACY85LyZL4q7fwA+gARAsIX0r +cksMbEDiGbFAD1gLyut7yMAPoAEQZY4TKSGCZZ4NJyGA6z27wBQIC4ItMH7oGIBAD1gLf+s908AP +WA2O7T7TwAn4DjZlvVhlzVVkfZcqFhItFiQZ9FAvFiUuFiYilZsrlZ3sn8VACfgNTisSGmW+JCwh +gmXOHmV+Gx70Rik0ee/jrkAUqAveKTR4KeWf6eLJwA9oDf3t7cVACfgN/Bj0OyiCZWSAee8A2EAO +gADQ7gDYQA6AAMDiANhADoAAgOQA2EAOgABg6gDYQA6AAFDlE8lADoAAcOcSykAOgACw6xnJQA6A +AHDqGMlADoAAsOYTykAOgACg5BDJQA6AAGDkANhADoAAUOgRykAOgACA6B3JQAn4C54AAOIZsUAP +oAEQ7wDYQA6AANDuANhADoAAwOQA2EAOgACQ6RjJQA6AAIDoEcpADoAAUOUTykAOgACg6hnJQA6A +AGDmEspADoAAoOQQyUAOgABg5ADYQA6AAFDsHclACfgMp2wQBBjz29MPIoF7wDXmANgAAYAFMhfz +qSlyf8qS5BB4wA+YAFZtCBUmRPAqcn/lUZBAF/gCquRBkEAQOAdaY//jI4F9eT8cej8ZK4F+zbMs +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 +u4/s28tAEBADzOzcy0APoAEQAABsEAQbuSTqw10gApABAmgiauKRkEANAAhJ5BDYIACQAiJgADMA +aWQDpaiXgHJLKNow60jvQAugCjLkQZAgAIgBBmli4KWp55DAQAn4D+Klq+ew0EAJ+A/Y0Q8AACyy +oSmihqPMCcwRrJloYXdoYn5pZOWlnefQyEAPoAEQGbk6qTkpkO1oQDfiQZBADQAG2XJDnGP/wgAA +AAAssqEpooajzAnMEayZ5EGQIADYAQZoYh1oZCTiFPAf+7gLJGP/mGWfTmP/kqWY54DQQAn4D+ml +muegwEAJ+A/fpZvnsMhACfgP1QClnOfA0EAPoAEQpZ3n0MBAD6ABENEPAAAAAAAAAAAAACADFlAM +wAAGIAY88CADFlQIwAAMIAY88CADFlg8wAAQIAY8OCADFlwGwAA4IAY+WCADFmAIwAA8IAY88CAD +FmQCwABAIAY+WCADFmgIwABEIAY88CADFmwIQABMIAY9gCADFnAIQABQIAY9gCADFnQoQABcIAY9 +gCADFngoQABwIAY9gCADFnwoQACEIAY9gCADFoAoQACYIAY9gCADFoQoQACsIAY9gCADFogoQADA +IAY9gCADFowoQADUIAY9gCADFpAoQADoIAY9gCADFpQQQAD8IAY7UCADFpgQQAEMIAY7UCADFpwQ +QAEcIAY7UCADFqAQQAEsIAY7UCADFqQQQAE8IAY7UCADFqgQQAFMIAY7UCADFqwQQAFcIAY7UCAD +FrAQQAFsIAY7UCADFrQIQAF8IAY9gCADFrgIQAGAIAY9gCADFrwIQAGEIAY9gCADFsAQQAGIIAY9 +gCADFsQQQAGQIAY9gCADFsgIQAGYIAY9gE5vIHNwYWNlIGluIEREUiEKAAAAAAAAAAAAAAAAAAAA +aHdfYmNtNTQ4Ml9jZmdtZGlbJXVdIHNldHRpbmcgdHlwZSAldQoAAAAAAAAAAAAAcmVtb3ZlIG11 +bHRpY2FzdCBtYWMgWyV4OiV4OiV4OiV4OiV4OiV4XSBmcm9tIFRDQU0KAAAAAAAAAAAAAAAAAGlw +djZfam9pbl9ncnA6IGlkICV1LCByZWZfY250ICV1CgAAAAAAAAAAAAAAAAAAAGRoY3A2X3RpbWVy +X2NiOiByZXNlbmRpbmcgREhDUDZTT0xJQ0lUIGFnYWluCgAAAGRoY3A2X3RpbWVyX2NiOiBzZW5k +aW5nIERIQ1A2UkVRVUVTVAoAAAAAAAAAAAAAAGRoY3A2X3RpbWVyX2NiOiBzZW5kaW5nIERIQ1A2 +UkVORVcgcmVxdWVzdAoAAAAAAGRoY3A2X3RpbWVyX2NiOiBzZW5kaW5nIERIQ1A2UkVCSU5EIHJl +cXVlc3QKAAAAAGRoY3A2X3RpbWVyX2NiOiBESENQNlJFUExZIHJjdmQsIHN0YXRlICV1CgAAAAAA +AGZhaWxlZCB0byByZW5ldy9yZWJpbmQgZGhjcHY2IGFkZHJlc3MKAAAAAAAAAAAAAHR5cGUgJXgs +IHhpZCAleCwgdHlwZV94aWQgJXgKAAAAaXB2Nl9tdWx0aWNhc3RfcXVlcnlfdGltZXJfY2Igbm9k +ZV9pZCAlZAoAAAAAAAAAaXB2Nl9nZW5lcmFsX3F1ZXJ5X3RpbWVyX2NiCgAAAABhZGQgbXVsdGlj +YXN0IG1hYyBbJXg6JXg6JXg6JXg6JXg6JXhdIGluIFRDQU0KAABjaG5ldF9pcHY2X2RhZF9jYjog +aGFuZGxlICV1LCBhZGRyX2lkICV1LCBhZGRyIHN0YXRlICV1CgAAAAAAAAAAaXB2NiBwcmVmZXJy +ZWQgYWRkciBbJTA0eCAlMDR4ICUwNHggJTA0eF0KAAAAAAAAU3RhcnRpbmcgYWRkciB2YWxpZGl0 +eSB0aW1lciBmb3IgJXUgc2Vjb25kcwoAAAAAVmFsaWRpdHkgZXhwaXJlZCBmb3IgYWRkcl9pZCAl +dQoAAAAAAAAAAAAAAAAAAAAAc2VuZGluZyBpcHY2IGVjaG8gcmVwbHkKAAAAAAAAAABjaG5ldF9p +cHY2X3JzX291dHB1dDogbDJkZXZfZmMgMHgleAoAAAAAAAAAAAAAAABjaG5ldF9pcHY2X25zX291 +dHB1dDogbDJkZXZfZmMgMHgleCwgZmxvd2NfaWQgMHgleCwgdmxhbiBmbGFnIDB4JXgKAAAAAAAA +AAAAAAAAAGNobmV0X2lwdjZfbmFfb3V0cHV0OiBsMmRldl9mYyAweCV4CgAAAAAAAAAAAAAAAGNo +bmV0X2lwdjZfbWxkdjJfcmVwb3J0X291dHB1dDogbDJkZXZfZmMgMHgleAoAAGdhdGhlcl90YXNr +c190b190eF9saXN0OiB0YXNrIGluIHVzZSBbJXVdCgAAAAAAAGdhdGhlcl90YXNrc190b190eF9s +aXN0OiBpZHggWyV1XSwgdGFzayBmaWQgWzB4JXhdLCB0YXNrIHN0YXRlIFsweCV4XSwgdGFzayBj +b25uIFsweCV4XSwgdGFzayBmZmxhZ3MgWzB4JXhdLCBjb25uIGZpZCBbMHgleF0sIGRkcCBbJWRd +CgAAAAAAAAAAAGdhdGhlcl90YXNrc190b190eF9saXN0OiB0YXNrIFsweCV4XSwgc3RhdGUgWzB4 +JXhdIG9uIGNvbm4gWzB4JXhdIG5vdCB2YWxpZCB0byBnYXRoZXIsIHNraXBwaW5nCgAAAAAAAAAA +AAAAAAAAAABnYXRoZXJfdGFza3NfdG9fdHhfbGlzdDogdGFzayBbMHgleF0sIHN0aWxsIHF1ZXVl +ZCBvbiB0eCBwZW5kaW5nIGxpc3QuIFJlbW92aW5nIGl0LgoAAAAAAAAAAAAAAABnYXRoZXJfdGFz +a3NfdG9fdHhfbGlzdDogY29ubl9mYy0+Zmxvd2NfZmxhZ3MgWzB4JXhdLCBsaXN0X2VtcHR5IFsw +eCV4XSwgYWRkX3Rhc2tfY291bnQgWzB4JXhdCgB0b190eF9saXN0OiBubyB0YXNrIHRvIGNsb3Nl +IGZvciBjb25uIFsweCV4XSwgYmFpbGluZyB0byByZWNvdmVyeSBzdGF0ZSBbMHgleF0KAHNldF9k +aWdlc3Q6IHVwbHN1Ym1vZGU6JXgKAAAAAAAAYXV0aGVudGljYXRlX3RhcmdldDogS0VZX0NIQVBf +UkVTUCAtIFsweCV4JXgleCV4JXgleCV4JXhdCgAAAAAAAGF1dGhlbnRpY2F0ZV90YXJnZXQ6IEtF +WV9DSEFQX1JFU1AgLSBbMHgleCV4JXgleCV4JXgleCV4XQoAAAAAAABhdXRoZW50aWNhdGVfdGFy +Z2V0OiBJbmNvcnJlY3QgcGFzc3dvcmQKAAAAAAAAAABDSEFQX0M6IGRpZ2VzdCBleHBhbnNpb24g +ZXJyb3IKAENIQVBfTjogVGFyZ2V0IHVzZXJpZCBtaXNtYXRjaAoAQ0hBUF9SOiBkaWdlc3QgZXhw +YW5zaW9uIGVycm9yCgBpU0NTSSBTZWMtcGFyYW1zIHJlY2VpdmVkIGhhdmUgZXJyb3JzISEKAAAA +AAAAAABUYXJnZXQgbW92ZWQgdGVtcC4gY29ubiAleCwgc2VzcyAleAoAAAAAAAAAAAAAAABMb2dp +biBGYWlsZWQhIS4gY29ubl9mYyBbMHgleF0sIHNlc3NfZmMgWzB4JXhdLCBzdGF0dXNfY2xhc3Mg +WzB4JXhdCgAAAAAAAAAAAAAAAFByb3RvY29sIEVycm9yIGNiaXQgJWQgdGJpdCAlZCBjc2cgJWQg +bnNnICVkCgAAAHJlY3Zfbm9waW46IGN0cmwgdGFzayBhbHJlYWR5IHBlbmRpbmcKAAAAAAAAAAAA +AG9mbGRfcnhfZGF0YTogYWllZSwgaXNjc2kgY29ubiBbMHgleF0gZm9yIHNlc3MgWzB4JXhdLCB0 +eXBlIFsweCV4XSB0cmFuc2l0ZWQgaW4gdG9lIG1vZGUuIEtpY2tpbmcgcmVjb3ZlcnkgCgAAAABv +ZmxkX3J4X2RhdGE6IGNvbm4gdGlkIFsweCV4XSwgcnhfZGF0YS0+c2VxIFsweCV4XSwgcnhfZGF0 +YS0+bGVuIFsweCV4XSwgcnhfZGF0YS0+c3RhdHVzIFsweCV4XQoAAAAAAAAAAAAAAAAAAAAAb2Zs +ZF9yeF9kYXRhOiBjc2sgeyBpZCBbMHgleF0sIGNzb2NrX29mZnNldCBbMHgleF0sIGRsZW4gWzB4 +JXhdIH0KAAAAAAAAAAAAAAAAAABhY3RfZXN0OiB0Y2JfZmMgWzB4JXhdLCBmbG93Y19pY29ubl9m +bGFncyBbMHgleF0KAAAAAAAAAAAAAAAAAAAAYWN0X2VzdGFiOiB0Y2JfZmMtPmZsb3djX2J1ZiBb +MHgleF0sIHRjYl9mYy0+Zmxvd2NfdHlwZSBbMHgleF0gdGNiX2ZjLT5mbG93Y19zdGF0ZSBbMHgl +eF0sIG5wYWdlcyBbMHgleF0sIGZsb3djX3RwX3NuZF9tYXggWzB4JXhdCgAAAAAAAAAAAAAAAAAA +YWN0X2VzdGFiOiBhdGlkIFsweCV4XSwgdGlkIFsweCV4XSwgb3AgWzB4JXhdLCByY3ZfaXNuIFsw +eCV4XSwgc25kX2lzbiBbMHgleF0sIGNzb2NrLT5mbG93Y19zdGF0ZSBbMHgleF0sIHRjcF9vcHQg +WzB4JXhdLCB0Y2JfZmMtPmZsb3djX2lkIFsweCV4XSAKAAAAAAAAAAAAAAAAAGNza19mYy0+Zmxv +d2NfY3NvY2tfY29va2llIFsweCV4XSAKAAAAAAAAAAAAAAAAAG5ldF9sMmRldl9maW5kX2J5X2Fk +ZHI2OiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBsMmRjLT5scG9ydCBbJXVdLCBsMmRfZmMt +PmZsb3djX2lkIFsweCV4XSwgYWRkciBbJTA0eDolMDR4OiUwNHg6JTA0eF0KAAAAAAAAY2huZXRf +cXVldWVfeG1pdDogZmMtPmZsb3djX2lkIFsweCV4XSwgYnVmX2xlbiBbMHgleF0sIGJ1ZmZlcmVk +IFsweCV4XSwgZmlmby5udW1fYnl0ZXMgWyUweF0KAAAAbmV0aWZfZG9fZGhjcHY2OiB3ci0+cGFy +YW0udmxhbmlkIFsldV0sIGwyZGV2X2ZjLT5mbG93Y19uZXRfbDJkZXZfdmxhbmRldiBbMHgleF0K +AAAAAAAAAAAAAAAAAAAAbmV0aWZfZG9fZGhjcHY2OiBpcHY2IG5vdCBlbmFibGVkCgAAAAAAAAAA +AAAAAAAAZGhjcCByZXNwIHRvIGRyaXZlcgoAAAAAAAAAAAAAAABsM2luNl9kZXZfY29uZmlnOiB3 +ci0+cGFyYW0udmxhbmlkIFsldV0sIGwyZGV2X2ZjLT5mbG93Y19uZXRfbDJkZXZfdmxhbmRldiBb +MHgleF0KAAAAAAAAAAAAAAAAAABsM2luNl9kZXZfY29uZmlnOiBpcHY2IG5vdCBlbmFibGVkCgAA +AAAAAAAAAAAAAABuZXRfbDNpbjZfZGV2X2NvbmZpZzogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4 +XSwgYWRkcmVzcyBhbHJlYWR5IHVzZWQgYnkgcG9ydCAlZCwgYWRkcl9pZCAlZAoAAABuZXRfbDNp +bjZfZGV2X2NvbmZpZzogIGFkZHIgWzB4JTA0eCUwNHglMDR4JTA0eF0sIHJlZl9jbnQgWzB4JXhd +IGluIHVzZQoAAAAAAAAAAGwzaW40X2Rldl9jb25maWc6IHdyLT5wYXJhbS52bGFuaWQgWyV1XSwg +bDJkZXZfZmMtPmZsb3djX25ldF9sMmRldl92bGFuZGV2IFsweCV4XQoAAAAAAAAAAAAAAAAAAG5l +dF9sM2luNF9kZXZfY29uZmlnOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBhZGRyZXNzIGFs +cmVhZHkgdXNlZCBieSBwb3J0ICVkCgAAAAAAAAAAAAAAAAAAAG5ldF9sM2luNF9kZXZfY29uZmln +OiAgYWRkciBbMHgleF0sIG1hc2sgWzB4JXhdLCBndyBbMHgleF0sIHJlZl9jbnQgWzB4JXhdIGlu +IHVzZQoAAAAAAAAAAAAAAAAAAGwyZGV2X2ZjIFsweCV4IF0gRmFpbGVkIHRvIHN0YXJ0IHRpbWVy +IGZvciBpcHY0IGRhZAoAAAAAAAAAAAAAAAB3cmhfY2huZXRfaWZjb25mOiBsMmRldl9mYy0+Zmxv +d2NfaWQgWzB4JXhdLCBsMmRldl9mYy0+Zmxvd2NfdHlwZSBbJTB4XSwgaWZjb25mX3dyLT5zdWJv +cCBbMHgleF0KAAAAAAAAAAAAAAAAAAAAd3JoX2NobmV0X2lmY29uZjogbDJkZXZfZmMtPmZsb3dj +X2lkIFsweCV4XSwgdW5rbm93biBzdWJvcCBbMHgleF0KAAAAAAAAAAAAAAAAAAB3cmhfY2huZXRf +aWZjb25mOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCByYyAlZAoAAAAAAAAAAAAAAAAAbmV0 +aWZfaXBfY29uZmxpY3RfdGltZXJfY2I6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIGV4cGVj +dGluZyB0aW1lciBoYW5kbGUgWyVkXSwgYnV0IGdvdCBoYW5kbGUgWyVkXSBleHBpcnkKAG5ldGlm +X2lwX2NvbmZsaWN0X3RpbWVyX2NiOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBpbmRldmN0 +eHQtPnN0YXRlIFslZF0sIGluZGV2Y3R4dC0+cmV0cnlfY250IFslZF0KAAAAAAAAAABuZXRpZl9p +cF9jb25mbGljdF90aW1lcl9jYjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgaW5kZXZjdHh0 +IFsweCV4XSwgaW4gZnJlZSBzdGF0ZQoAAAAAAAAAAABjbWRoX2NobmV0X2lmYWNlOiBmYyBbMHgl +eF0sIGZjLT5mbG93Y19pZCBbMHgleF0sIGZjLT5mbG93Y190eXBlIFsweCV4XSwgcCBbMHgleF0s +IGxlbjE2IFsldV0sIGxvYyBbMHgleF0KAAAAAAAAY21kaF9jaG5ldF9pZmFjZTpsMmRldl9mYyBb +MHgleF0sIGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIGwyZGV2LT5mbG93Y190eXBlIFsldV0s +IGwyZGV2X2ZjLT5mbG93Y19uZXRfbDJkZXZfZmxhZ3MgWyUweF0KAAAAAABjbWRoX2NobmV0X2lm +YWNlOiByMlswXToldSByMlsxXToldSwgc3Vib3A6MHgleAoAAAAAAAAAAAAAAAAAAAAAY21kaF9j +aG5ldF9pZmFjZTogbDJkZXZfZmMtPmZsb3djX25ldF9sMmRldl9mbGFncyBjaGFuZ2VkIGZyb20g +WyUweF0gdG8gWyUweF0sIHJjIFslZF0KAAAAAAAAAAAAY2huZXRfbDJkZXZfdXBfbWJfY2I6IHJj +IFslZF0sIHBvcnQgWyV1XSwgc3RhdGUgWyV1XSwgY29va2llIFsweCV4XQoAAAAAAAAAAAAAAABk +aGNwX3Byb2Nlc3NfY2I6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIGRoY3R4dC0+c3RhdGUg +WyUweF0sIGRoY3R4dC0+cnRyeV9jbnQgWyV1XQoAAAAAAAAAAABkaGNwX3RpbWVyX2NiOiBESENQ +RElTQ09WRVIgc2VudCwgYnV0IG5vIHJlcGx5IGZyb20gYW55IHBvc3NpYmxlIHNlcnZlciBvbiB0 +aGUgbmV0d29yay4gUmV0cnlpbmcgYWdhaW4KAAAAAAAAAAAAZGhjcF90aW1lcl9jYjogbDJkZXZf +ZmMtPmZsb3djX2lkIFsweCV4XSwgc2VuZGluZyBESENQRElTQ09WRVIgZm9yIGRoY3R4dCBbMHgl +eF0gb24gcGlkIFslZF0KAAAAZGhjcF90aW1lcl9jYjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4 +XSwgREhDUE9GRkVSIHJlY2VpdmVkIGZvciBkaGN0eHQgWyV4XSBwaWQgWyVkXQoAAAAAAAAAAAAA +ZGhjcF90aW1lcl9jYjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgIERIQ1BBQ0sgcmVjZWl2 +ZWQgZm9yIGRoY3R4dCBbJXhdLCBwaWQgWyVkXQoAAAAAAAAAAAAAZGhjcF90aW1lcl9jYjogbDJk +ZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgZGhjdHh0LT5pcGFkZHIgWzB4JXhdCgAAAAAAAAAAAAAA +AAAAAABkaGNwX3RpbWVyX2NiOiBzdGFydGluZyB0aW1lciBmb3IgbGVhc2UgWyV1XSBzZWNvbmRz +CgAAAAAAAAAAAAAAZGhjcF90aW1lcl9jYjogbGVhc2UgdGltZSBvZiBbJXVdIHNlY29uZHMgZXhw +aXJlZCwgc2VuZGluZyByZW5ldyByZXF1ZXN0CgAAAAAAAABkaGNwX3RpbWVyX2NiOiBsMmRldl9m +Yy0+Zmxvd2NfaWQgWzB4JXhdLCBubyByZXBseSBmcm9tIGRoY3Agc2VydmVyLCB0aW1pbmcgb3V0 +CgAAAAAAAAAAAAAAAAAAAABhdXRoX25lZ29fc2VjdXJpdHk6IHNlbmRfZmxhZyBbMHgleF0sIGF1 +dGhfcG9saWN5IFsweCV4XQoAAAAAAAAAYXV0aF9uZWdvX3NlY3VyaXR5OiBLRVlfQ0hBUF9SRVNQ +IC0gaGFzaFsweCV4JXgleCV4JXgleCV4JXhdCgAAAGF1dGhfbmVnb19zZWN1cml0eTogS0VZX0NI +QVBfUkVTUCAtIGhhc2hbMHgleCV4JXgleCV4JXgleCV4XQoAAABhdXRoX25lZ29fc2VjdXJpdHk6 +IEtFWV9DSEFQX1JFU1AgLSBlcnJvciBlbmNvZGluZyB0byBoZXgKAAAAAAAAYXV0aF9uZWdvX3Nl +Y3VyaXR5OiBLRVlfQ0hBUF9SRVNQIC0gZWxlbiBbMHgleF0KAAAAAAAAAAAAAAAAAAAAAGF1dGhf +bmVnb19zZWN1cml0eTogS0VZX0NIQVBfQ0hBTCAtIGVycm9yIGVuY29kaW5nIHRvIGhleAoAAAAA +AABhdXRoX25lZ29fc2VjdXJpdHk6IEtFWV9DSEFQX0NIQUwgLSBlbGVuIFsweCV4XQoAAAAAAAAA +AAAAAAAAAAAAbG9nb3V0X3RpbWVkb3V0OiBsb2dvdXQgcmVxdWVzdCB0aW1lZG91dCwgcG9zc2li +bGUgbmV0d29yayBpc3N1ZXMuIEZvcmNlZnVsbHkgYnJlYWtpbmcgcGF0aCBmb3Igc2VzcyBbMHgl +eF0KAAAAAHBpbmdfdGFyZ2V0OiBwaW5nIHRpbWVvdXQsIGtpY2tpbmcgcmVjb3ZlcnkgZm9yIHNl +c3MgWzB4JXhdCgAAAABjc29ja19mYWlsZWQ6IGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2tf +ZmMtPmZsb3djX3N0YXRlIFsweCV4XSwgc2Vzc19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBzZXNzX2Zj +LT5mbG93Y19zdGF0ZSBbMHgleF0sIGV2dCBbMHgleF0KAAAAAAAAAAAAAABjaG5ldF9maW5kX2lw +Nl9sMnRfZW50cnk6IGZpbmQgcHJlZml4IG1hdGNoIFslMDR4ICUwNHggJTA0eCAlMDR4XQoAAAAA +AAAAAAAAAAAAAE5vIHJvdXRlciBjb25maWd1cmVkLCBsMmRldl9mYy0+Zmxvd2NfaWQgMHgleAoA +AApSb3V0ZXIgbGlmZSAldSBleHBpcmVkLiBkZWxldGluZyByb3V0ZXIgWyUwNHggJTA0eCAlMDR4 +ICUwNHhdCgBVc2luZyByb3V0ZXIgWyUwNHggJTA0eCAlMDR4ICUwNHhdIHRvIHJlYWNoIFslMDR4 +ICUwNHggJTA0eCAlMDR4XQoAAAAAAAAAAAAAAAAAAGwydGVudCBbJTB4XSwgbDJ0ZW50LT5pZHgg +WyVkXQoAcmMgWyVkXSwgY3NrX2ZjIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0KAAAA +AAAAAAAAAAAAAAAAAGNzb2NrX2FsbG9jOiBzcmNfYWRkcjoweCV4LCBkc3RfYWRkcjoweCV4CgAA +AAAAAGNvbm5lY3Rpb24gb3ZlciBpcHY2LCBsMmRldiBmbG93Y19pZCAweCV4CgAAAAAAAGNza19h +bGs6IEludmFsaWQgbDJkZXY6MHgleAoAAAAAY3NrX2FsazogbmV4dDoldSwgaWR4OiV1LCB1c2Vk +OiV1LCBzcG9ydDoldQoAAAAAY3NvY2tfYWxsb2M6IGNzb2NrX3NyY19hZGRyOjB4JXgsIGNzb2Nr +X2RzdF9hZGRyOjB4JXgKAAAAAAAAAAAAAGNzb2NrX2FsbG9jOiB0eF9jaCBbMHgleF0sIGxwb3J0 +IFsweCV4XSwgY29va2llIFslMDh4XQoAAAAAAAAAAABjc29ja19hbGxvYzogYXZhaWxhYmxlIFsl +dV0sIG5jc29jayBbJXVdLCBwb3M6YXRpZCBbMHgleF0sIGNza19mYyBbMHgleF0sIGNza19mYy0+ +Zmxvd2NfaWQgWzB4JXhdLCBzcG9ydCBbJXVdCgAAcmVjb3ZlcnlfdGltZW91dDogc2VzcyBpZCBb +MHgleF0gc3RhdGUgWzB4JXhdLCByY291bnQgWyVkXSwgZmxhZ3MgWzB4JXhdCgAAAAAAAAByZWNv +dmVyeV90aW1lb3V0OiBzZXNzIGlkIFsweCV4XSBpbiBsb2dvdXQsIGFib3J0IHRoZSBjb25uZWN0 +aW9uCgAAAAAAAAAAAAAAAAAAAHJlY292ZXJ5X3RpbWVvdXQ6IHNlc3NfZmMtPmZsb3djX2ZvaXNj +c2lfc2Vzc19mbGFncyBbMHgleF0sIGNvbm5lY3Rpb24gcmVxdWVzdCBwZW5kaW5nLCBiYWlsaW5n +IG91dAoAAAAAAAAAAAAAAABmb2lzY3NpOiBSZWNvdmVyeSB0aW1lZCBvdXQgYWZ0ZXIgWyV1XSBy +ZXRyeSwgYmFpbGluZyBvdXQKAAAAAAAAVENQIGNvbm4gZXN0YWJsaXNobWVudCBmYWlsZWQgJWQK +AAAAAAAAAAAAAAAAAAAAZGlzY292ZXJ5X2RhdGE6IHNlc3MgeyBpZCBbMHgleF0sIGZsYWdzIFsw +eCV4XSwgYnVmZmVyZWQgWyV1XS4gfQoAAAAAAAAAAAAAAAAAAABkaXNjb3ZlcnlfZGF0YTogc2Vz +cyB7IGlkIFsweCV4XSB9LCB1bHB0eGNoIFsldV0gbm8gY3JlZGl0cyBhdmFpbGFibGUsIHJlc2No +ZWR1bGluZyByZXF1ZXN0LgoAAABERFAgZXJyb3IgWzB4JXhdLCBhYm9ydGluZyBjb25ubiBbMHgl +eF0KAAAAAAAAAAByeF9kYXRhX2RkcDogUmVzcG9uY2UgcmVjaWV2ZWQgZm9yIHRhc2sgWzB4JXhd +IHdoaWxlIGludmFsaWQgdGFzayBvciBjb25uZWN0aW9uIHN0YXRlLiB0YXNrIHN0YXRlIFsweCV4 +XSwgY29ubiBzdGF0ZSBbMHgleF0sIGNvbm4gZmxhZ3MgWzB4JXhdCgBpaGRyOiBSZXNwb25jZSBy +ZWNpZXZlZCBmb3IgdGFzayBbMHgleF0gd2hpbGUgaW52YWxpZCB0YXNrIG9yIGNvbm5lY3Rpb24g +c3RhdGUuIHRhc2sgc3RhdGUgWzB4JXhdLCBjb25uIHN0YXRlIFsweCV4XSwgY29ubiBmbGFncyBb +MHgleF0KAAAAAAAAAABpaGRyOiBJbnZhbGlkIHRhc2sgc3RhdGUgMHgleCBmb3IgdGFzayAweCV4 +LCBpdHQgWzB4JXhdLCBvcGMgWzB4JXhdCgAAAAAAAAAAAAAAAEludmFsaWQgb3Bjb2RlIDB4JXgg +aW4gY3RybCBwYXRoCgAAAAAAAAAAAAAAAAAAAEREUCBlcnJvciBbMHgleF0sIGFib3J0aW5nIGNv +bm5uIFsweCV4XQoAAAAAAAAAAGlzY3NpX2NtcDogb3BjOjB4JXgsIGluIGRhdGEgcGF0aAoAAAAA +AAAAAAAAAAAAAGlzY3NpX2NtcDogUmVzcG9uY2UgcmVjaWV2ZWQgZm9yIHRhc2sgWzB4JXhdIHdo +aWxlIGludmFsaWQgdGFzayBvciBjb25uZWN0aW9uIHN0YXRlLiB0YXNrIHN0YXRlIFsweCV4XSwg +Y29ubiBzdGF0ZSBbMHgleF0sIGNvbm4gZmxhZ3MgWzB4JXhdCgAAAGlzY3NpX2NtcDogSW52YWxp +ZCB0YXNrIHN0YXRlIDB4JXggZm9yIHRhc2sgMHgleCwgaXR0IFsweCV4XSwgb3BjIFsweCV4XQoA +AAAAAAAAaXNjc2lfY21wOiBvcGM6MHgleCwgaW4gY3RybCBwYXRoCgAAAAAAAAAAAAAAAAAAaWRh +dGE6IHRpZDoweCV4LCBvcDoweCV4LCBsZW46MHgleCwgc2VxOjB4JXgsIHN0YXR1czoweCV4LgoA +AAAAAHByb2Nlc3NfdG1mX3Jlc3BvbnNlOiBidWZmZXJlZCBbMHgleF0sIGlzdGFza19mYy0+Zmxv +d2NfYnVmLT5zY2hlZF9ub2RlLm5leHQgWzB4JXhdLCBpc3Rhc2tfZmMgWzB4JXhdLCBpc3Rhc2tf +ZmMtPmZsb3djX2lkIFsweCV4XQoAAAAAAAAAAAAAAAAAAHByb2Nlc3NfdG1mX3Jlc3BvbnNlOiB3 +ciBvcCBbMHgleF0sIHRtZiBvcCBbMHgleF0KAAAAAAAAAAAAAAAAAAB0bWZfcmVzcDogZmxvd2M6 +MHgleCwgaWQ6MHgleCwgc3RhdGU6MHgleCwgeWllbGQ6MHgleAoAAAAAAAAAAAAAdG1mX3Jlc3A6 +IHRfdGFzazoweCV4IGZyZWVkLgoAAABzY3NpX2NtZF9yZXNwOiBmbG93YzoweCV4LCBpZDoweCV4 +LCBzdGF0ZToweCV4LCB5aWVsZDoweCV4CgAAAAAAZGF0YV9pbl9yZXNwOiBmbG93YzoweCV4LCBp +ZDoweCV4LCBzdGF0ZToweCV4LCB5aWVsZDoweCV4CgAAAAAAAHJldHVybl9wZW5kaW5nX3Rhc2s6 +IGNvb2tpZSBbMHglMDh4XSwgWzB4JTA4eF0KAHJldHVybl9wZW5kaW5nX3Rhc2s6IGRlbGF5IHBy +b2Nlc3NpbmcsIGNvbm4gZmxhZ3MgWzB4JXhdCgAAAAAAAAByZXR1cm5fcGVuZGluZ190YXNrOiBE +b25lIHNlbmRpbmcgdGFzayBlcnJvciB0byBob3N0LCB1bHB0eGxlbjE2IFsldV0KAAAAAAAAAAAA +AHJldHVybl9wZW5kaW5nX3Rhc2s6IGRlcXVldWUgdGFzayBbMHgleF0sIHN0YXRlIFsweCV4XSBm +cm9tIHR4X2xpc3QKAAAAAAAAAAAAAAAAcmV0dXJuX3BlbmRpbmdfdGFzazogYWxsIHRhc2tzIHJl +dHVybmVkLCByZWNvdmVyeSBzdGF0ZSB0cmFucyB0byBbMHgleF0KAAAAAAAAAABjbGVhcl9kZHBf +bWFwOiBpc3Rhc2tfZmMgWzB4JXhdLCBpc3Rhc2tfZmMtPmZsb3djX2lkIFsweCV4XSBidWZmZXJl +ZCAldQoAAAAAAAAAAGNsZWFyX2RkcF9tYXA6IGlzdGFza19mYy0+Zmxvd2NfaXRhc2tfbnBwb2Qg +JXUsIG5wcG9kICV1LCBwcGRhZGRyIFsweCV4XQoAAAAAAAAAY2xlYXJfZGRwX21hcDogYWxsIHJl +dHVybmVkIHRhc2tzIGRkcCBjbGVhcmVkLCByZWNvdmVyeSBzdGF0ZSB0cmFucyB0byBbMHgleF0K +AAB3cmhfZm9pc2NzaV9ub2RlOiBub2RlX3dyLT5mbG93aWRfbGVuMTYgMiBbJXhdCgB3cmhfZm9p +c2NzaV9jaGFwOiBpZF9sZW4gWyV4XSwgc2VjX2xlbiBbJXhdCgAAAAB3cmhfZm9pc2NzaV9jaGFw +OiB0Z3RfaWRfbGVuIFsleF0sIHRndF9zZWNfbGVuIFsleF0KAAAAAAAAAAAAAAAAc2Vzc2lvbl9i +bG9jazogc2Vzc19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBzZXNzX2ZjLT5mbG93Y19zdGF0ZSBbMHgl +eF0sIGNvbm5fZmMtPmZsb3djX2lkIFsweCV4XSwgY29ubl9mYy0+Zmxvd2Nfc3RhdGUgWzB4JXhd +LCBjc2tfZmMtPmZsb3djX2lkIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0KAAAA +AAAAAAAAAAAAAAAAc2Vzc2lvbl91bmJsb2NrOiBzZXNzX2ZjLT5mbG93Y19pZCBbMHgleF0sIHNl +c3NfZmMtPmZsb3djX3N0YXRlIFsweCV4XSwgY29ubl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjb25u +X2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0sIGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2tfZmMt +PmZsb3djX3N0YXRlIFsweCV4XQoAAAAAAAAAAAAAAAAAc3RhcnRfbG9nb3V0OiBTZXNzLWlkIFsw +eCV4XSBhbHJlYWR5IGxvZ2dpbiBvdXQuCgAAAAAAAAAAAAAAAAAAAHBlZXJfY29uOiBjc2tfZmMg +PT4gZmxvd2lkIFsweCV4XSwgZmxvd2NfYnVmIFsweCV4XQoAAAAAAAAAAAAAAABhbGxvY19zZXNz +OiBsb2dpbl9yZXRyeSBbJWRdLCByZWNvdl90aW1lb3V0IFslZF0KAAAAAAAAAAAAAAAAAAAAZm9p +c2NzaV9jdHJsOiBzdWJvcCBbMHgleF0sIHNlc3NfdHlwZV90b19lcmwgWzB4JXhdLCBzZXNzX3R5 +cGUgWzB4JXhdCgAAAAAAAAAAAABmb2lzY3NpX2N0cmw6IHJlY2VpdmVkIGJsb2NrZWQgZnJvbSBk +cml2ZXIsIHRyaWdnZXJpbmcgcmV0dXJuIHRhc2tzIG5vdy4KAAAAAAAAAFdBVENIRE9HX2Rpc3Bh +dGNoIGNhc2UgdG8gYXZvaWQ6IENvdW50ZXJfd2F0Y2hkb2cgJXUgQ291bnRlcl9zY2hlZCAldSAK +AAAAAAAAAAAAV0FUQ0hET0c6IGRldmljZSBzaHV0ZG93bgoAAAAAAABXQVRDSERPRzogcG9ydFsl +dV0gcGF1c2Ugd2F0Y2hkb2cgdGltZW91dAoAAAAAAABXQVRDSERPRzogYnlwYXNzIHRpbWVvdXQK +AAAAAAAAAFdBVENIRE9HOiBGTFIgLSBub3QgaW1wbGVtZW50ZWQgeWV0CgAAAAAAAAAAAAAAAFdB +VENIRE9HOiB0ZW1wZXJhdHVyZSBvZiAlZEMgZXhjZWVkcyB0aHJlc2hvbGQgb2YgJWRDCgAAAAAA +AAAAAABmaWx0ZXI6IHBvcmdyYW1taW5nIHRpZCAldSAobGUgdGNhbSBpbmRleCAldSkuLi4KAAAA +AAAAAAAAAAAAAAAAZmlsdGVyOiByZXF1ZXN0aW5nIGNvbXBsZXRpb24uLi4KAAAAAAAAAAAAAAAA +AAAAY2huZXRfaXB2Nl9saW5rX2NoYW5nZV9ub3RpZnk6IGwyZGV2X2ZjIFsweCV4XSwgc3RhdHVz +ICV1CgAAAAAAAGwyZGV2X3NlbmRfcG9ydF9ldmVudDogd3IgWzB4JXhdIHBlbmRpbmcgb24gcG9y +dCBbJWRdLCBjdXJyZW50IHRyeSBbJWRdCgAAAAAAAAAAaHdfY2ltX3RzY2hfY2hfY2xfcmF0ZV9t +YXhfcmVzb2x1dGlvblsldS8ldV06IGNhcHBlZCBkZWZpY2l0X2luY3IgZnJvbSByZXF1aXJlZCAl +dSB0byAldTsgcmF0ZSAldSAoZWZmICV1KSBkZWZpY2l0X21heCAldQoAAAAAAABDYW5ub3QgZ2V0 +IGNsYXNzIFsldS8ldV0gcmF0ZS9wZXJjZW50ICV1LyV1IHdpdGggY29uZmlndXJlZCBncmFudWxh +cml0aWVzLiBDaGVjayBjb25maWcgZmlsZQoAAABkY2J4X2llZWVfY21kaFsldV0gd3JpdGUgb25s +eSBwZXJtaXR0ZWQgb24gbG9jYWwgY29uZgoAAAAAAAAAAAAAZGNieF9pZWVlX2NtZGhbJXVdIGNh +bm5vdCB3cml0ZSAldSBhcHBzIChNQVg6ICV1KQoAAAAAAAAAAAAAAAAAAGRjYnhfaWVlZV9jbWRo +WyV1XSByZXF1ZXN0aW5nIERDQl9JRUVFX0NNRAoAAAAAAGRjYnhfaWVlZV9jbWRoWyV1XSB1bmtu +b3duIGZlYXR1cmUgd3JpdGU6ICV1CgAAAGRjYnhfaWVlZV9jbWRoWyV1XSB1bmtub3duIGZlYXR1 +cmUgcmVhZDogJXUKAAAAAGNhbm5vdCBhbGxvY2F0ZSBvZmZsb2FkZWQgZmlsdGVyIGNvbm5lY3Rp +b24KAAAAAGNhbm5vdCBhbGxvY2F0ZSBvZmZsb2FkZWQgZmlsdGVyIElQdjYgY29ubmVjdGlvbgoA +AAAAAAAAAAAAAAAAAABkaXNwYXRjaF9kZWZlcnJlZF9jbGFzc19jbGFzc19zaGFwaW5nWyV1OiV1 +XTogbGlzdF9lbXB0eQoAAAAAAAAAbG9vcGJhY2sgYnVmZmVyIGdyb3VwWyV1XSBpcyBkaXNhYmxl +ZAoAAAAAAAAAAAAAaW52YWxpZCBidWZmZXIgZ3JvdXBbJXVdIGNvbmZpZ3VyYXRpb246IG10dSAl +dSBsd20gJXUgaHdtICV1IGR3bSAldQoAAAAAAAAAAAAAAABmYyAldSB2ZiAldSBnb3QgaXZmPTB4 +JXgscmFuZ2U6ICUjeC0lI3ggKCV1LyV1IHVzZWQpCgAAAAAAAAAAAAAAVkkgJXUgY2Fubm90IGdl +dCBSU1Mgc2xpY2U6IE5vIG1vcmUgc2xpY2VzIGF2YWlsYWJsZSAodXNlZCAldS8ldSkKAAAAAAAA +AAAAAAAAAABwZm4gJXUgdmZuICV1IHdpdGggcG9ydCBtYXNrIDB4JXggY2Fubm90IGFjY2VzcyBw +b3J0ICV1LCByZXQgJWQKAAAAAAAAAAAAAAAAAAAAAHBmbiAldSB2Zm4gJXUgY291bGQgbm90IGFs +bG9jYXRlIHZpaWQsIHJldCAlZAoAAHBmbiAldSB2Zm4gJXUgY291bGQgbWFwIHZpaWQgIDB4JXgg +dG8gZmxvd2MsIHJldCAlZAoAAAAAAAAAAAAAAABwZm4gJXUgdmZuICV1IGNvdWxkIG5vdCBhbGxv +Y2F0ZSB1d2lyZSBmdW5jICVkIG1hYyBhZGRyLCByZXQgJWQKAAAAAAAAAAAAAAAAAAAAAG1paV9p +bml0WyV1XTogYWNhcHMgMHgleAoAAAAAAAAAbWlpX2ZvcmNlX3NwZWVkWyV1XTogcmNhcHMgMHgl +eAoAAAAAAAAAAAAAAAAAAAAAbWlpX3Bkb3duWyV1XTogcG93ZXJkb3duIGVuICV1CgBwb3J0X2Nt +ZF9oYW5kbGVyOiB1bmtub3duIHUuZGNiLnR5cGUgMHgleAoAAAAAAABwb3J0WyV1OjB4JTAyeDow +eCUwMnhdOiB1bmtub3duIGFjdGlvbiAweCV4CgAAAABwb3J0WyV1OjB4JTAyeDoweCUwMnhdOiB1 +bmtub3duIHJlYWQgYWN0aW9uIDB4JXgKAAAAAAAAAAAAAAAAAAAAY3BsX2Vycl9ub3RpZnk6IHRp +ZCAldSBjcGwgMHglMDh4JTA4eAoAAAAAAAAAAAAAY3BsX2Vycl9ub3RpZnk6IHRpZCAldSBjcGwg +MHglMDh4JTA4eCAweCUwOHglMDh4CgAAAAAAAAAAAAAAAAAAAGNwbF9lcnJfbm90aWZ5OiB0aWQg +JXUgbGVuICV1CgAAc2NzaV9hYm9ydDogRW50ZXJpbmcgQWJvcnRfdGFzaywgYnVmZmVyZWQgWyV1 +XQoAc2NzaV9hYm9ydDogcmMgWzB4JXhdIHJlZiB0YXNrIG5vdCBvdXRzdGFuZGluZwoAc2NzaV9h +Ym9ydDogaWRhdGEtPm9wIFsweCV4XSwgZmxhZ3MgWzB4JXhdLCBmdW5jIFsweCV4XSwgbHVuX2lk +eCBbMHgleF0KAAAAAAAAAABzY3NpX2Fib3J0OiB3ci0+aXFpZCBbMHgleF0sIGlzdGFza19mYy0+ +Zmxvd2Nfc2dlX2lxaWQgWzB4JXhdLCBpc3Rhc2tfZmMgdGFzayBmbGFncyBbMHgleF0KAAAAAABz +Y3NpX2FicnQ6dGFzayBmbG93Y1sweCV4XSwgdG1mX2xpc3RfZW1wdHk6CgAAAABzY3NpX2Fib3J0 +OiBjb25uIFsweCV4XSwgY21kc24gWzB4JXhdLCBzZW50X2NtZHNuIFsweCV4XSwgbWF4X2NtZHNu +IFsweCV4XSwgaXR0IFsweCV4XQoAAAAAAAAAAABzY3NpX2x1cjogRW50ZXJpbmcgTFVSIGhhbmRs +ZXIsIGJ1ZmZlcmVkIFsldV0KAABzY3NpX2x1cjogaWRhdGEtPm9wIFsweCV4XSwgZmxhZ3MgWzB4 +JXhdLCBmdW5jIFsweCV4XSwgbHVuX2lkeCBbMHgleF0KAAAAAAAAAAAAAHNjc2lfbHVyOiB3ci0+ +aXFpZCBbMHgleF0sIGlzdGFza19mYy0+Zmxvd2Nfc2dlX2lxaWQgWzB4JXhdLCBpc3Rhc2tfZmMg +dGFzayBmbGFncyBbMHgleF0KAAAAAAAAAHNjc2lfbHVyOiBjb25uIFsweCV4XSwgY21kc24gWzB4 +JXhdLCBzZW50X2NtZHNuIFsweCV4XSwgbWF4X2NtZHNuIFsweCV4XSwgaXR0IFsweCV4XQoAAAAA +AAAAAAAAAGRjYnhfYXBwbHlfYXBwX2NmZ1sldV1ORVcgQVBQIFRMViAKAAAAAAAAAAAAAAAAAGRj +YnhfY2VlX2ZlYV9zbVsldV0gRmVhdHVyZVsldV0gRkVBVFVSRV9MSU5LVVAKAGRjYnhfY2VlX2Zl +YV9zbVsldV0gRmVhdHVyZVsldV0gU0VUX0xPQ0FMX1BBUkFNRVRFUlMKAAAAAAAAAAAAAABkY2J4 +X2NlZV9mZWFfc21bJXVdIEZlYXR1cmVbJXVdIEZFQVRVUkVfTk9fQURWRVJUSVNFCgAAAAAAAAAA +AAAAZGNieF9jZWVfZmVhX3NtWyV1XSBGZWF0dXJlWyV1XSBGRUFUVVJFX1BFRVJfTk9UX0FEVkVS +VElTRV9EQ0JYCgAAAAAAAAAAAAAAAAAAAABkY2J4X2NlZV9mZWFfc21bJXVdIEZlYXR1cmVbJXVd +IEZFQVRVUkVfUEVFUl9OT1RfQURWRVJUSVNFX0ZFQVRVUkUKAAAAAAAAAAAAAAAAAGRjYnhfY2Vl +X2ZlYV9zbVsldV0gRmVhdHVyZVsldV0gRkVBVFVSRV9VUERBVEVfT1BFUl9WRVJTSU9OCgAAAABk +Y2J4X2NlZV9mZWFfc21bJXVdIEZlYXR1cmVbJXVdIEZFQVRVUkVfUEVFUl9VUERBVEVfT1BFUl9W +RVJTSU9OCgAAAAAAAAAAAAAAAAAAAGRjYnhfY2VlX2ZlYV9zbVsldV0gRmVhdHVyZVsldV0gRkVB +VFVSRV9HRVRfUEVFUl9DRkcKAAAAAAAAAAAAAABkY2J4X2NlZV9mZWFfc21bJXVdIEZlYXR1cmVb +JXVdIEZFQVRVUkVfQ0ZHX05PVF9DT01QQVRJQkxFCgAAAAAAZGNieF9jZWVfZmVhX3NtWyV1XSBG +ZWF0dXJlWyV1XSBGRUFUVVJFX1VTRV9MT0NBTF9DRkcKAAAAAAAAAAAAAGRjYnhfY2VlX2ZlYV9z +bVsldV0gRmVhdHVyZVsldV0gRkVBVFVSRV9VU0VfUEVFUl9DRkcKAAAAAAAAAAAAAABkY2J4X2Nl +ZV9mZWFfc21bJXVdIEZlYXR1cmVbJXVdIEZFQVRVUkVfRkVBVFVSRV9ESVNBQkxFRAoAAAAAAAAA +ZGNieF9jZWVfZmVhX3NtWyV1XSBGZWF0dXJlWyV1XSBGRUFUVVJFX0VSUk9SX0NIQU5HRQoAAAAA +AAAAAAAAAGRjYnhfaWVlZV9wcm9jZXNzWyV1XSByZWNlaXZlZCBCV3MgZG8gbm90IGFkZCB1cCB0 +byAxMDAhCgAAAAAAAABXQVJOSU5HOiByZWNlaXZlZCBBcHAgVExWIGNvbnRhaW5zIG1vcmUgdGhh +bkZXIGNhbiBoYW5kbGUgKG1heDogJXU7IHRsdiBjb250YWluczogJXUKAAAAAAAAAAAAAABkY2J4 +X2llZWVfcHJvY2Vzc1sldV0gc3VidHlwZSAlI3ggcmVtX2Z0X2NoYW5nZWQgJXUgc21fY2hhbmdl +ICV1CgAAAAAAAAAAAAAAAAAAAGRjYnhfaWVlZV9wcm9jZXNzWyV1XSBzdWJ0eXBlIHVua25vd24K +AAAAAAAAAAAAAGRjYnhfcGFyc2VfcGt0WyV1XSBlcnJvciAlZAoAAAAAaXB2Nl9hZGRfcHJlZml4 +X2luX2xpc3Q6IG5vZGUgZm91bmQgMHgleAoAAAAAAAAAaXB2Nl9hZGRfcHJlZml4X2luX2xpc3Qs +IG5vZGUgbm90IGZvdW5kCgAAAAAAAAAAY2huZXRfYXJwX3VwZGF0ZV9jYWNoZTogYXJwIGlwNCBl +bnRyeSBmb3VuZCAKAAAAY2huZXRfYXJwX3VwZGF0ZV9jYWNoZTogYXJwIGlwNiBlbnRyeSBmb3Vu +ZCAKAAAAY2huZXRfYXJwX3VwZGF0ZV9jYWNoZTogYm90aCBpcDQgYW5kIGlwNiBhZGRyIGNhbm5v +dCBiZSBudWxsCgAAAGNobmV0X2wydF91cGRhdGU6IGwydF91cGRhdGUgcmVxdWVzdCBzZW50IGwy +dGVudCBbJTA4eF0sIGwydGVudC0+aWR4IFslZF0sIGwydGVudC0+dmxhbiBbJWRdCgAAAGNobmV0 +X2lwdjZfcmFfaW5wdXQ6IEludmFsaWQgUkEKAAAAAAAAAAAAAAAAAAAAAGlwdjYgUkEgcmN2ZAoA +AAByb3V0ZXIgbm90IHByZXNlbnQgaW4gb3VyIGxpc3QuIGFkZGluZyBpdAoAAAAAAABJbnZhbGlk +IG9wdGlvbiBsZW5ndGggJXUgaW4gU0xMQSBvcHRpb24KAAAAAAAAAABHT1QgU0xMQSBvcHRpb24g +aW4gUkEsIGxlbiAldQoAAEludmFsaWQgb3B0aW9uIGxlbmd0aCAldSBpbiBwcmVmaXggb3B0aW9u +CgAAAAAAAEludmFsaWQgb3B0aW9uIGxlbmd0aCAldSBpbiBtdHUgb3B0aW9uCgAAAAAAAAAAAElu +dmFsaWQgcGFja2V0IHdpdGggJXUgZXh0cmEgYnl0ZXMKAAAAAAAAAAAAAAAAAG1sZDYgcXVlcnkg +cmN2ZAoAAAAAAAAAAAAAAAAAAAAAY2huZXRfaXB2Nl9tbGQ2X3F1ZXJ5X2lucHV0OiBJbnZhbGlk +IE1MRCBxdWVyeQoAVW5zdXBwb3J0ZWQgcXVlcnkgdmVyc2lvbi4gb25seSBtbGR2MiBxdWVyeSBz +dXBwb3J0ZWQKAAAAAAAAAAAAAHF1ZXJ5IHJlc3BvbnNlIGRlbGF5ICV1IChpbiAxMG1zIHVuaXQp +IAoAAAAAAAAAAGFscmVhZHkgYSBnZW5lcmFsIHF1ZXJ5IHBlbmRpbmcgaW4gJXUgKDEwbXMpCgAA +AERlYnVnIHRoZSBjb2RlLiBncnBfbm9kZSBtdXN0IGJlIHByZXNlbnQKAAAAAAAAAGFscmVhZHkg +YSBtdWx0aWNhc3QgcXVlcnkgcGVuZGluZyBpbiAldSAoMTBtcykKAGlwdjYgZWNobyByZXEgcmN2 +ZAoAAAAAAAAAAAAAAAAAREhDUHY2IHBhY2tldCB0eXBlICV1LCBvcHRzbGVuICV1IHJlY2VpdmVk +CgAAAAAASW52YWxpZCBkaGNwIHN0YXRlICVkCgAAAAAAAAAAAABJZ25vcmUgREhDUHY2IG1zZyB4 +aWQgJXgsICBkaDZjdHh0LT54aWQgJXgKAAAAAABFcnJvciBpbiBESENQdjYgb3B0aW9ucyBwYXJz +aW5nLiBJZ25vcmluZyBtc2csIGkgJWQsIG9wdHNsZW4gJWQKAAAAAAAAAAAAAAAAAAAAAERIQ1Ag +ZmFpbGVkLCBzdGF0dXNjb2RlICVkLiBJZ25vcmluZyBhZHZlcnRpc2UKAGljbXA2IGNoZWNrc3Vt +IHZhbGlkYXRpb24gZmFpbGVkLCBvciBlcnIgcmN2ZGlnbm9yaW5nIGljbXA2IG1zZyAldSwgZGxl +biAldQoAAAAAbmV0aWZfcHJvY2Vzc19kaGNwOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBw +cm9jZXNzaW5nLCBvcHRfbGVuICV1CgAAAAAAAAAAAABjaG5ldF9kaGNwX3JlY3Y6IHZsYW5pZCBb +JXVdLCBsMmRldl9waWRfZmMtPmZsb3djX25ldF9sMmRldl92bGFuZGV2IFsweCV4XSwgbDJkZXZf +ZmMgWzB4JXhdCgAAAABjaG5ldF9kaGNwX3JlY3Y6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0s +IGRoY3R4dC0+c3RhdGUgWyVkXSwgbWFsYWNpb3VzIGRoY3AgcmVjdiBmb3Igbm8gcmVxdWVzdAoA +AAAAAAAAAAAAAAAAZGhjdHh0LT5zdGF0ZSA6ICVkCgAAAAAAAAAAAAAAAABsMmRldl9mYy0+Zmxv +d2NfaWQgWzB4JXhdLCBCYWQgREhDUCBjb29raWUgcmVjaWV2ZWQsIGFib3J0aW5nCgAAbGxkcF9y +eF9wa3RfaGFuZGxlclsldV0gZHJvcCBwcmUtaW5pdCAoY291bnQgPSAldSkKAAAAAAAAAAAAAAAA +AHRjcF9yZWxlYXNlX3RpZDogdGlkIFsweCV4XSwgZmxvd2MgZmxhZ3MgWzB4JXhdLCBidWZmZXJl +ZCBbMHgleF0KAAAAAAAAAAAAAAAAAAAAdGNwX3JlbGVhc2VfdGlkOiBzaXplb2YodGNiX2ZjLT5m +bG93Y19pY29ubikgWyV1XSwgYnl0ZXMKAAAAAAAAAGFjdF9vcGVuX3JwbDogYXRpZCBbMHgleF0s +IHRpZCBbMHgleF0sIHRjYl9mYy0+eyBpZCBbMHgleF0sIHN0YXRlIFsweCV4XSwgdHlwZSBbMHgl +eF0gfSwgY3BsX29wIFsweCV4XSwgc3RhdHVzIFsweCV4XQoAAAAAAAAAAAAAYWN0X29wZW5fcnBs +OiBjc2tfZmMtPnsgaWQgWzB4JXhdLCBzdGF0ZSBbMHgleF0sIGNzb2NrX2ZsYWdzIFsweCV4XSB9 +IAoAAAAAAAAAAABhY3Rfb3Blbl9ycGw6IHJlY3ZkIG5lZyBhZHZpY2UgWzB4JXhdCgAAAAAAAAAA +AABzZW5kX2Fib3J0X3JwbDogY3NrX2ZjLT5mbG93Y190eXBlIFsweCV4XSwgY3NrX2ZjLT5mbG93 +Y19pZCBbMHgleF0sIHRpZCBbMHgleF0sIHVscHR4Y2ggWyV1XSwgYnVmZmVyZWQgWyV1XQoAAAAA +d3JoX29mbGRfdGNwX2Nsb3NlX2Nvbl9yZXBseTogdGNiX2ZjLT5mbG93Y19pZCBbMHgleF0sIHRj +Yl9mYy0+Zmxvd2NfdHlwZSBbMHgleF0sIGxlbjE2IFsldV0sIGxvYyBbJXVdCgAAAAAAAAAAAHdy +aF9vZmxkX3RjcF9jbG9zZV9jb25fcmVwbHk6IHJwbC0+b3BfVGlkIFsweCV4XSwgcnBsPnN0YXR1 +cyBbMHgleF0sIHJwbC0+c25kX254dCBbMHgleF0sIHJwbC0+cmN2X254dCBbMHgleF0KAAB0Y3Bf +YWJvcnRfcnBsX3JzczogdGlkIFsweCV4XSwgc3RhdHVzIFsweCV4XQoAAAB0Y3BfYWJvcnRfcmVx +X3JzczogdGlkIFsweCV4XSwgc3RhdHVzIFsweCV4XSwgZmxvd2NfY3NvY2tfZm9pc2NzaV9zdGF0 +ZSBbMHgleF0KAG9mbGRfYWJvcnRfcmVxX25lZ2FkdlsldV06IHdyIDB4JTA4eCBjcGxfYWJvcnRf +cmVxIERFTElWRVJFRAoAAABob3N0X3dyWyV1XTogd3IgMHglMDh4IGNwbF9hYm9ydF9yZXEgc3Rh +dHVzIDB4JXgKAAAAAAAAAAAAAAAAAAAAcGt0c2NoZWRfY2xfcmxbJXU6JXVdOiBtb2RlIHwgdW5p +dCB8IHJhdGUgMHglMDZ4IG1pbiAldSBtYXggJXUgcGt0c2l6ZSAldQoAAAAAAABwZiAlZCwgdmYg +JWQgc2VjcmV0IGtleV9pbmRleCAlZCwgVkYgc2VjcmV0IDB4JXgKAAAAAAAAAAAAAAAAAAAAcGFy +YW1fY2huZXRbMHgleDoweCV4XTogY2huZXQgMHgleCByZWFkICV1IHBmICV1IHJldCAlZAoAAAAA +AAAAAHBhcmFtX2RtYXFbMHgleDoweCV4XTogZG1hcSAweCV4IHJlYWQgJXUgcGYgJXUgcmV0ICVk +CgAAAAAAAAAAAABSU1NTRUNSRVRLRVk6IHJzc3NlY3JldCB0YmwgYmFzZSAlZCwgcnNzbnNlY3Jl +dCAlZAoAAAAAAAAAAAAAAAAATUNbJXVdIGluaXRfc3RhdGVfbWFjaGluZSAweCUwMngKAAAAAAAA +AAAAAAAAAAAATUMgaW5pdGlhbGl6YXRpb24gbm90IGNvbXBsZXRpbmcsIE1DIGN1cnJlbnQgaW5p +dCBzdGF0ZSBpcyAweCUwMngKAAAAAAAAAAAAAAAAAABJbml0aWFsaXppbmcgSUJNIEREUjM0TE1D +CgAAAAAAAEREUiBpbml0IGNvbXBsZXRlLCBiZWdpbm5pbmcgY2FsaWJyYXRpb24KAAAAAAAAAERE +UiBjYWxpYnJhdGlvbiBzdWNjZWVkZWQKAAAAAAAATUNbJXVdIF9od19tY19pbml0X21jCgAAAAAA +AAAAAABfaHdfbWNfaW5pdF9tYzogZXJyb3IsIHJldCAlZAoAAHBoeTogZmFpbGVkIHRvIGFsbG9j +YXRlZCBtZW1vcnkgZm9yIHBoeSBmdyBmaWxlLCByZXQgJWQKAAAAAAAAAABod19sZV9maWx0ZXJf +Y3R1cGxlOiB0dXBsZSAldSBub3Qgc3BlY2lmaWVkIGJ1dCByZXF1aXJlZCBmb3IgbWFzayAweCV4 +CgAAAAAAAAAAAGh3X3RwX3RjcF9zZXR0aW5nc193OiB0aW1lcl9ycyAldXVzIHRpbWVzdGFtcF9y +ZXMgJXV1cyBkZWxheWVkYWNrX3JlcyAldXVzCgAAAAAAaHdfdHBfdGNwX3NldHRpbmdzX3c6IGRh +Y2tfdGltZXIgJXV1cyBtc2wgJXV1cyByeHRfbWluLG1heCAldSwldXVzIHBlcnNfbWluLG1heCAl +dSwldXVzCgAAAAAAAAAAaHdfdHBfdGNwX3NldHRpbmdzX3c6IGtlZXBfaWRsZSxpbnR2bCAldSwl +dXMgbWF4cnR0ICV1dXMgaW5pdHNydHQgJXV1cyBmaW53YWl0Ml90aW1lciAldXVzCgAAAAAAaHdf +dHBfdGNwX3NldHRpbmdzX3c6IGNhcHBpbmcgZGFja190aW1lciBmcm9tICV1IHRvICV1AAAAAAAA +AAAAAGh3X3RwX3RjcF9zZXR0aW5nc193OiBjYXBwaW5nIG1zbCBmcm9tICV1IHRvICV1AGh3X3Rw +X3RjcF9zZXR0aW5nc193OiBjYXBwaW5nIHJ4dF9taW4gZnJvbSAldSB0byAldQAAAAAAAAAAAAAA +AABod190cF90Y3Bfc2V0dGluZ3NfdzogY2FwcGluZyByeHRfbWF4IGZyb20gJXUgdG8gJXUAAAAA +AAAAAAAAAAAAaHdfdHBfdGNwX3NldHRpbmdzX3c6IGNhcHBpbmcgcGVyc19taW4gZnJvbSAldSB0 +byAldQAAAAAAAAAAAAAAAGh3X3RwX3RjcF9zZXR0aW5nc193OiBjYXBwaW5nIHBlcnNfbWF4IGZy +b20gJXUgdG8gJXUAAAAAAAAAAAAAAABod190cF90Y3Bfc2V0dGluZ3NfdzogY2FwcGluZyBrZWVw +X2lkbGUgZnJvbSAldSB0byAldQAAAAAAAAAAAAAAaHdfdHBfdGNwX3NldHRpbmdzX3c6IGNhcHBp +bmcga2VlcF9pbnR2bCBmcm9tICV1IHRvICV1AAAAAAAAAAAAAGh3X3RwX3RjcF9zZXR0aW5nc193 +OiBjYXBwaW5nIGluaXRfc3J0dF9tYXhydHQgZnJvbSAldSB0byAldQAAAABod190cF90Y3Bfc2V0 +dGluZ3NfdzogY2FwcGluZyBpbml0X3NydHRfaW5pdHNydHQgZnJvbSAldSB0byAldQAAaHdfdHBf +dGNwX3NldHRpbmdzX3c6IGNhcHBpbmcgZmlud2FpdDJfdGltZXIgZnJvbSAldSB0byAldQAAAAAA +AGZpbHRlck1vZGU9JSN4IGlsbGVnYWw6IHNlbGVjdHMgJWQgYml0cyAobWF4ICVkKQoAAAAAAAAA +AAAAAAAAAABsZSBjb25maWd1cmF0aW9uOiBuZW50cmllcyAldSByb3V0ZSAldSBjbGlwICV1IGZp +bHRlciAldSBhY3RpdmUgJXUgc2VydmVyICV1IGhhc2ggJXUKAAAAAAAAAAAAAABsZSBjb25maWd1 +cmF0aW9uOiBuZW50cmllcyAldSBjbGlwICV1IG5vcm1hbCBmaWx0ZXIgJXUgaGkgcHJpb3JpdHkg +ZmlsdGVyICV1IHNlcnZlciAldSBhY3RpdmUgJXUgaGFzaCAldSBuc2VydmVyc3JhbSAldQoAAAAA +AAAAAGh3X3NnZV9xdWV1ZV9iYXNlX21hcFsldV06IGV4Y2VlZGVkIG51bWJlciBvZiBlZ3Jlc3Mg +cXVldWVzLCAldQoAAAAAAAAAAAAAAAAAAAAAaHdfc2dlX3F1ZXVlX2Jhc2VfbWFwWyV1XTogZXhj +ZWVkZWQgbnVtYmVyIG9mIGluZ3Jlc3MgcXVldWVzIHdpdGggZnJlZWxpc3QgYW5kIGludGVycnVw +dCwgJXUKAAAAaHdfc2dlX3F1ZXVlX2Jhc2VfbWFwWyV1XTogZXhjZWVkZWQgbnVtYmVyIG9mIGlu +Z3Jlc3MgcXVldWVzLCAldQoAAAAAAAAAAAAAAAAAAABFcnJvciwgVG90YWwgUlNTIFNlY3JldCB0 +YWJsZSBhbGxvY2F0aW9uICVkID4gMTYKAAAAAAAAAAAAAAAAAAAAY2ZfcGFyc2U6IGZpbGUgbWVt +dHlwZSAweCV4IG1lbWFkZHIgMHgleCBtYXBwZWQgQCAlcDoKAAAAAAAAAAAAAGNvbmZpZ3VyZWQg +d2l0aCBjYXBzIG5ibXxsaW5rIDB4JTA4eCBzd2l0Y2h8bmljIDB4JTA4eCB0b2V8cmRtYSAweCUw +OHggaXNjc2l8Y3J5cHRvIDB4JTA4eCBmY29lOjB4JXgKAAAAAAAAAAAAAABuZXQgVkkgYWxsb2Nh +dGlvbiBmYWlsZWQgZm9yIGZjX2lkICV1IHdpdGggZXJyb3IgJWQKAAAAAAAAAAAAAAAAbmV0IFZJ +IG1hYyBhZGRyZXNzIHByb2dyYW1taW5nIGZhaWxlZCBmb3IgZmNfaWQgJXUgd2l0aCBlcnJvciAl +ZAoAAAAAAAAAAAAAAAAAAABuZXQgVkkgcnhtb2RlIHByb2dyYW1taW5nIGZhaWxlZCBmb3IgZmNf +aWQgJXUgd2l0aCBlcnJvciAlZAoAAAAAbmV0IFZJIHJzcyBpbmRpcmVjdGlvbiB0YWJsZSBwcm9n +cmFtbWluZyBmb3IgZmNfaWQgJXUgZmFpbGVkIHdpdGggZXJyb3IgJWQKAAAAAABuZXQgVkkgcnNz +IGNvbmZpZyBjb21tYW5kIGZhaWxlZCBmb3IgZmNfaWQgJXUgd2l0aCBlcnJvciAlZAoAAAAAbmV0 +IFZJIGNvbW1hbmQgZmFpbGVkIGZvciBmY19pZCAldSB3aXRoIGVycm9yICVkCgAAAAAAAAAAAAAA +AAAAAHByb2dyYW1tZWQgSFcgdGFnbSBbMHglMDh4XSwgSFcgcGdzeiBmYWN0b3IgWzB4JTA4eF0s +IEZPaVNDU0kgdGFnbSBbMHglMDh4XSwgcnRhZ20gWzB4JTA4eF0sIG1heHN6X2JpdHMgWyV1XSwg +c3pfYml0cyBbJXVdLgoAAAAAYmFzZSBbIDB4JTA4eF0sIGxsaW1pdCBbMHglMDh4XSwgdWxpbWl0 +IFsweCUwOHhdLCBzaXplIFsldV0sIG1heF90eHN6IFsldV0sIG1heF9yeHN6IFsldV0sIGlvc2l6 +ZSBbJXVdCgAAAAAAAAAAAG5wcG9kcyBbJXVdLCBpZHhfbWFzayBbMHglMDh4XSwgaWR4X2ZpcnN0 +IFsldV0sIGlkeF9sYXN0IFsldV0sIHNjc2lfcGxkX3NpemUgWyV1XSwgQUxJR04oc2NzaV9wbGRf +c2l6ZSwgMTYpIFsldV0sIHBwZF96b25lcyBbJXVdLgoAAAAAAAAAAAAAAAAAAGZvaXNjc2lfaW5p +dDogaW5pdF9kb25lOiV1LCBmb2lzY3NpX250YXNrczoldSwgZm9pc2NzaV9uc2VzczoldSwgbmNz +b2NrOiV1LCBuc3BvcnRzOiV1LCBmb2lzY3NpX25pbml0OiV1LCByYzolZAoAAAAAAAAAAAAAAAAA +AAAAY2hfY2xfcmF0ZVsldS8ldV06IGNhcHBlZCBjbGFzcyByYXRlIGZyb20gcmVxdWVzdGVkICV1 +IHRvIGNvbmZpZ3VyZWQgKGVmZmVjdGl2ZSkgY2hhbm5lbCByYXRlICV1CgAAAAAAAAAAAAAAAAAA +AENhbm5vdCBnZXQgY2xhc3MgWyV1LyV1XSByYXRlICV1IHdpdGggY29uZmlndXJlZCBncmFudWxh +cml0aWVzLiBDaGVjayBjb25maWcgZmlsZQoAAAAAAAAAAAAAAAAAAHBrdHNjaGVkIGNoYW5uZWwg +JXUgc2V0cyBzcGVlZCAoZnJvbSAldSkgdG8gJXUga2JwcwoAAAAAAAAAAAAAAABuZXRfbDJkZXZf +bm90aWZ5OiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBwb3J0IFslZF0sIGV2ZW50IFsweCV4 +XSwgdWxwdHhjaCBbJXVdLCBjbGFzcyBbMHgleF0sIHZwcmlvIFsweCV4XSwgdmlkIFsweCV4XSwg +dmlfcmVhZHkgWyV1XQoAAAAAAABuZXRfbDJkZXZfbm90aWZ5OiBwZ2lkIFsweCV4XSwgcHJpbyBb +MHgleF0sIGNoIFsweCV4XQoAAAAAAAAAAAAAWyV1XSB1bmFibGUgdG8gZXhlY3V0ZSBpbnRlcm5h +bCBEQ0JfSUVFRV9DTUQKAAAAcG9ydFsldV0gcHR5cGUgJXUgbGFuZSAldTogcnhjZmcgPSAlI3gK +AAAAAAAAAAAAcG9ydFsldV0gcHR5cGUgJXUgbGFuZSAldTogdHhjZmcgPSAlI3gKAAAAAAAAAAAA +dHhfY29uZmlnIHNwZWVkIDB4JXggcGxsX3NlbCAlZCBid19zZWwgJWQKAAAAAAAAcG9ydFsldV0g +bGluayBkb3duICgldSkgKGxzdGF0dXMgJSN4KQoAAAAAAAAAAAAAcG9ydF9yZXNldCBmb3JjaW5n +IHBvcnQlZCBmb3Igc3BlZWQgMHgleAoAAAAAAAAAcG9ydCBpbml0aWFsaXphdGlvbiBmYWlsZWQK +AAAAAABod19pMmNfdHJhbnNhY3Rpb246IG5kYXRhICV1IGFkZHJfb3AgMHgleCBkYXRhWzBdIDB4 +JXggZGlmZiAldQoAaHdfaTJjX3RyYW5zYWN0aW9uOiBuZGF0YSAldSBhZGRyX29wIDB4JXggZGF0 +YVswXSAweCV4IGRpZmYgJXUgZHBvcyAldSBjb250ICV1IGZhaWxlZCB3aXRoIGVyciAlZAoAAAAA +AAAAAAAAAAAAAGkyYyB0cmFuc2FjdGlvbiBmYWlsZWQgdG8gY29tcGxldGUKAAAAAAAAAAAAAAAA +AGkyYyBlcnJvciBjYXVzZWQgYnkgbW9kdWxlIHVucGx1ZwoAAAAAAAAAAAAAAAAAAHNlbmR0byBw +ZW5kaW5nOiB3cl9wZW5kICVwIGZvciBwb3J0ICV1LCB3YW50IHRvIHNlbmQgdG8gcG9ydCAldQoA +AAAAAAAAAAAAAAAAAAAAcG9ydFsldV0gdXBkYXRlIChmbG93Y2lkICV1IHJjICV1KQoAAAAAAAAA +AAAAAAAAcG9ydF9zZXRfbG9vcGJhY2sgcG9ydCAlI3ggY3VycmVudCAlI3ggbW9kZSAlI3gKAAAA +AAAAAAAAAAAAAAAAAHBvcnRbJXVdIHNwZWVkIHVwZGF0ZTogJSN4CgAAAAAAcG9ydFsldV0gYmVn +aW5uaW5nIGRlYm91bmNlCgAAAABRU0ZQIG1vZHVsZSB1bnBsdWcgLSByZWluaXRpYWxpemluZyBy +eF9sb3MgIHRvIDB4ZmYKAAAAAAAAAAAAAAAAZ3Bpb19xc2ZwX21vZHVsZV91cGRhdGU6IGNoYW5n +ZWQgcnhfbG9zIGZyb20gMHgleCB0byAweCV4CgAAAAAAAGdwaW9fcXNmcF9tb2R1bGVfdXBkYXRl +OiBjaGFuZ2VkIHR4X2RpcyBmcm9tIDB4JXggdG8gMHgleAoAAAAAAABkaXNhYmxpbmcgdHggJSN4 +IHJ4ICUjeAoAAAAAAAAAAHBvcnRfbGlua19zdGF0ZV9oYW5kbGVyWyV1XSBwb3dlcmluZyBkb3du +CgAAAAAAAHBvcnRfbGlua19zdGF0ZV9oYW5kbGVyWyV1XSBwb3dlcmluZyB1cAoAAAAAAAAAAHBv +cnRfbGlua19zdGF0ZV9oYW5kbGVyWyV1XSB1bmtub3duIHN0YXRlIChzdGF0ZSA9ICUjeCkKAAAA +AAAAAABwb3J0X2xpbmtfc3RhdGVfaGFuZGxlcjogU29tZXRoaW5nIHdlbnQgdGVycmlibHkgd3Jv +bmcuIHJldCA9ICVkCgAAAAAAAAAAAAAAAAAAAGxlIGNvbmZpZ3VyYXRpb246IGhhc2ggcmVnaW9u +IHRvbyBsYXJnZSB0byBlbmFibGUgc2VydmVyIHNyYW0KAABsZSBpbml0aWFsaXphdGlvbjogbmVu +dHJpZXMgJXUgcm91dGUgJXUgY2xpcCAldSBmaWx0ZXIgJXUgYWN0aXZlICV1IHNlcnZlciAldSBo +YXNoICV1CgAAAAAAAAAAAABsZSBpbml0aWFsaXphdGlvbjogbmVudHJpZXMgJXUgcm91dGUgJXUg +Y2xpcCAldSBmaWx0ZXIgJXUgc2VydmVyICV1IGFjdGl2ZSAldSBoYXNoICV1IG5zZXJ2ZXJzcmFt +ICV1CgAAAAAAAAAAAAAAaHdfdHBfaW5pdDogdGNiIHJlZ2lvbiAoc3RhcnQgMHglMDhzIHNpemUg +JXUpIG11c3QgYmUgaW4gZmlyc3QgMjU2TUIgb2YgTUEgbWVtb3J5CgAAAAAAAAAAAAAAAAAAaHdf +dHBfaW5pdDogcGdtbmd0IHJlZ2lvbiAoc3RhcnQgMHglMDhzIHNpemUgJXUpIG11c3QgYmUgaW4g +Zmlyc3QgMjU2TUIgb2YgTUEgbWVtb3J5CgAAAAAAAAAAAAAAaHdfdHBfaW5pdDogVFAgcGdtbmd0 +IGluaXRpYWxpemF0aW9uIGRpZCBub3QgY29tcGxldGUKAAAAAAAAAAAAAHRsc19rZXlfc3RhcnQ6 +MHgleCwgdGxzX2tleV9zaXplOiVkCgAAAAAAAAAAAAAAAGJ1Zm1faW5pdDogbiAldSBidWZsbDY0 +aW50X3NpemUgMHgleAoAAAAAAAAAAAAAAGJ1Zm1faW5pdDogbm90IGVub3VnaCBtZW1vcnkgdG8g +YWxsb2NhdGUgaW50ZXJuYWwgYnVmbGw2NCBidWZmZXJzCgAAAAAAAAAAAAAAAAAAYnVmbV9pbml0 +OiBub3QgZW5vdWdoIG1lbW9yeSB0byBhbGxvY2F0ZSBidWZsbDY0IGJ1ZmZlcnMKAAAAAAAAAG1l +bV9pbml0X2J1Zjogbm90IGVub3VnaCBtZW1vcnkgdG8gYWxsb2NhdGUgZmxvdyBidWZmZXJzCgAA +AAAAAABtZW1faW5pdF9idWY6IG5vdCBlbm91Z2ggbWVtb3J5IHRvIGFsbG9jYXRlIHRjYl9jYWNo +ZSAob2ZmZXJlZCAldSB0cnlpbmcgdG8gdXNlICV1IGF2YWlsYWJsZSAldSkKAAAAAAAAAAAAAAAA +AAAAbXBhcnRpdGlvbl9vdGhlcnM6IHN0YXJ0IDB4JTA4eCBzaXplICV1ICh1bnVzZWQgJXUpCgAA +AAAAAAAAAAAAAG1wYXJ0aXRpb25fb3RoZXJzOiBfbToleCBfc2l6ZTolbGQgZGV2LnRwLnRsc19r +ZXlfc2l6ZTolbGQgCgAAAABtcGFydGl0aW9uX290aGVyczogc3RhcnQgMHglMDh4IHNpemUgJXUg +KHVudXNlZCAldSkKAAAAAAAAAAAAAAAAbWVtX2luaXQ6IEVEQyBvdmVyY29tbWl0dGVkIGJ5ICVk +IGJ5dGVzCgAAAAAAAAAAbWVtX2luaXQ6IG5vdCBlbm91Z2ggbWVtb3J5IHRvIGFsbG9jYXRlIGZs +b3cgdGFibGUKAAAAAAAAAAAAAAAAAGN4Y25pY19kZXZpY2VfaW5pdDogY3hjbmljIFsweCUweF0s +IGN4Y25pYy0+ZmlsdGVyIFslMHhdCgAAAAAAAABwb3J0X2luaXRbJXVdOiBwb3J0IHR5cGUgc2V0 +IHRvIDEwRwoAAAAAAAAAAAAAAABwb3J0X2luaXRbJXVdOiBwb3J0IHR5cGUgc2V0IHRvIDI1RwoA +AAAAAAAAAAAAAABwb3J0X2luaXRbJXVdOiBwb3J0IHR5cGUgc2V0IHRvIDQwRwoAAAAAAAAAAAAA +AABwb3J0X2luaXRbJXVdOiBwb3J0IHNwZWVkICVkIG5vdCBhcHBsaWNhYmxlIHRvIHRoaXMgY2Fy +ZAoAAAAAAAAAcG9ydF9pbml0WyV1XSBwdHlwZSAweCV4CgAAAAAAAABQb3J0WyV1XTogVW5rbm93 +biBTR01JSSBzdWItdHlwZSAlI3gKAAAAAAAAAAAAAABQb3J0WyV1XTogVW5rbm93biBCVF9YRkkg +c3ViLXR5cGUgJSN4CgAAAAAAAAAAAABwb3J0X2luaXRbJXVdOiBwb3J0IHR5cGUgMHgleCBpcyBu +b3Qgc3VwcG9ydGVkCgBtcGFydGl0aW9uX2luaXQ6IG1vdmVkIHBtcnhfc3RhcnQgZnJvbSAweCUw +OHggdG8gMHglMDh4IHRvIG1ha2Ugcm9vbSBmb3IgTEUgSEFTSCBhbmQvb3IgVFAgVENCcwoAAAAA +AAAAAAAAAAAAAAAAbXBhcnRpdGlvbl9pbml0OiBtb3ZlZCBwbXJ4X3N0YXJ0IGZyb20gMHglMDh4 +IHRvIDB4JTA4eCAoRURSQU0pCgAAAAAAAAAAAAAAAAAAAABFUSBwZm4gJXUgdmZuICV1OiBkZXN0 +cm95aW5nIGVxaWQgJXUgd2l0aCBwZW5kaW5nIFdSKHMpIChudW1fYnl0ZXMgJXUgYW5kIGZsYWdz +IDB4JTA4eAoAAAAAAAAAAABsMmRldl9mYy0+Zmxvd2NfaWQgWyV1XSwgbDJkYy0+cGZuIFsldV0s +IGwyZGMtPnZmbiBbJXVdLCBsMmRjLT5scG9ydCBbJXVdLCBsMmRldl9mYy0+Zmxvd2lkIFsldV0g +bDJkYy0+dHhfY2ggWyV1XSwgZGV2LnZwZC5wb3J0dmVjIFsleF0KAAAAAAAAAABwb3J0dmVjIFsl +dV0KAAAAbDJkZXZfdmlfZnNtOiBtYiBbMHgleF0sIGRlZmVycmVkLCBzdGF0ZSBbMHgleF0sIHBv +cnQgWzB4JXhdCgAAAGwyZGV2X3ZpX2ZzbTogdmlpZCBbMHgleF0gcG9ydCBbMHgleF0sIG1hYy1p +ZCBbJTAyeDolMDJ4OiUwMng6JTAyeDolMDJ4OiUwMnhdLiAKAAAAAAAAAAAAAAAAAAAAAGwyZGV2 +X3ZpX2ZzbTogc2dlX2VxaWQgWzB4JXhdLCBzZ2VfaXFpZCBbMHgleF0sIHNnZV9lcWNyIFsweCV4 +XSwgcnNzX3N6IFsweCV4XQoAbDJkZXZfdmlfZnNtOiBsMmRldl9mYy0+Zmxvd2NfbmV0X2wyZGV2 +X210dSBbJXVdLCBtYl9zY3JhdGNoIFsweCV4XSwgcG9ydCBbMHgleF0KAAAAAAAAAAAAAAAAAAAA +bDJkZXZfdmlfZnNtOiB2aWlkIFslZF0sIHZpX2ZjLT5mbG93Y192aV9mbGFncyBbMHgleF0KAAAA +AAAAAAAAAGwyZGV2X3ZpX2ZzbTogcGZuIFsweCV4XSwgdmZuIFsweCV4XSwgbDJkZXZfZmMtPmZs +b3djX2lkIFsweCV4XSwgbHBvcnQgWzB4JXhdLCB2aWlkIFsweCV4XSwgZmxhZ3MgWzB4JXhdCgAA +AAAAAABsMmRldl92aV9mc206IEVycm9yIGZyZWVpbmcgVkksIHJjIFsweCV4XQoAAAAAAABsMmRl +dl92aV9mc206IHBpZCBbMHgleF0sIHZpaWQgWzB4JXhdLCBtYl9sb2MgWzB4JXhdLCBtYl9vcmln +WzB4JXhdLCBsMmRldl9mbGFncyBbMHgleF0sIHJjIFsweCV4XQoAAAAAAAAAAAAAAAAAcGZuICV1 +IHZmbiAldSB2aWEgY29tbWFuZAoAAAAAAABjb25maWd1cmF0aW9uIGZpbGUgcGFyc2VyOiBzcGVl +ZCB2YWx1ZSBjYW4gb25seSBiZSAxMCwyNSw0MC4gTm90IGFwcGx5aW5nIGl0CgAAAGNvbmZpZ3Vy +YXRpb24gZmlsZSBwYXJzZXI6IGFlY19yZXRyeV9jbnQgdmFsdWUgJWQgaXMgbm90IHdpdGhpbiB0 +aGUgYWxsb3dlZCBsaW1pdCBvZiAxIHRvIDI1NC5EaXNhYmxpbmcgaXQuCgAAAABmZWMgb3B0aW9u +IGluIGNvbmZpZyBmaWxlIGlzIGRlcHJlY2F0ZWQKAAAAAAAAAABjb25maWd1cmF0aW9uIGZpbGUg +cGFyc2VyOiBhbl9hZWNfdGltZSB2YWx1ZSAlZCBpcyBiaWdnZXIgdGhhbiBhbGxvd2VkIGxpbWl0 +LkNoYW5naW5nIGl0IHRvIDEwMDAwIG1zLgoAAAAAAAAAAAAARGVwcmVjYXRlZCBjb25maWcgb3B0 +aW9uIGZvdW5kIGluIGNvbmZpZyBmaWxlLiBJZ25vcmluZy4uCgAAAAAAAGNvbmZpZ3VyYXRpb24g +ZmlsZSBwYXJzZXI6IHBsIHRpbWVvdXQgdmFsdWUgaXMgdG9vIGxhcmdlLCBjaGFuZ2luZyBmcm9t +ICV1IHRvICV1dXNlY3MKAAAAAAAAAAAAAHNjaGVkX2lvcXR4X2JwX3ByaW9yaXR5OiBoYXMgJXUg +ZW50cmllcyBvbmx5LCByZXF1aXJlcyAldSBlbnRyaWVzCgAAAAAAAAAAAAAAAAAAdHBfYmFja29m +ZjogcGFyc2VkICVkIGluc3RlYWQgb2YgJXUgZW50cmllcwoAAAAAdHBfdGltZXJ2YWxzOiBwYXJz +ZWQgJWQgaW5zdGVhZCBvZiAldSBlbnRyaWVzCgAAdHBfdGltZXJyZXM6IHBhcnNlZCAlZCBpbnN0 +ZWFkIG9mICV1IGVudHJpZXMKAAAAdHBfbXR1cyBoYXMgJXUgZW50cmllcyBvbmx5LCByZXF1aXJl +cyAldSBlbnRyaWVzCgAAAAAAAAAAAAAAAAAAAHRwX210dXNbJXVdIGlzICV1IGJ5dGVzIHdoaWNo +IGlzIG5vdCBzdXBwb3J0ZWQKAGh3X2NpbV90c2NoX3RpY2tfaW5pdDogVElDSyVkLCB2YWx1ZSAw +eCV4LCByYXRlICV1IGticHMKAAAAAAAAAABpbnZhbGlkIHRpY2sgZ3JhbnVsYXJpdHkgJXUga2Jw +cyBvciBncmFudWxhcml0eSB2YWwgbXVzdCBiZSA8ICV1CgAAAAAAAAAAAAAAAAAAAFRpY2sgZ3Jh +bnVsYXJpdGllcyAldWticHMKAAAAAAAAY29uZmlndXJhdGlvbiBmaWxlIHBhcnNlcjogc2dlIHRp +bWVyIHZhbHVlWyVkXSBpcyB0b28gbGFyZ2UsIGNoYW5naW5nIGZyb20gJXUgdG8gJXV1c2VjcwoA +AAAAAAAAZmlsdGVybWFzayAweCV4IGlzIG5vdCBlcXVhbC9zdWJzZXQgdG8vb2YgZmlsdGVybW9k +ZQoAAAAAAAAAAAAAAGNsaXAgZW50cnkgZGVsZXRpb24gZmFpbGVkIGF0IHBvcyAldSwgcmV0ICVk +CgAAAGh3X2xlX2NsaXBfaGFuZGxlcjogcmVtb3ZlZCBwb3M9JXUgKD1pZHggJXUpCgAAAGh3X2xl +X2NsaXBfaGFuZGxlcjogYWRkaW5nIHRvIHBvcz0ldSAoPWlkeCAldSkKAHBoeV9pbml0OiBwb3J0 +ICV1IHdpdGggdGhlIHR5cGUgJXUgIGhhdmUgcmV0ICVkCgAAAAAAAAAAAAAAAAAAAABod19tYWNf +YWVjX2NvbXBsZXRlWyV1XSBvbiBsYW5lcyAlI3ggKHNpZ2RldCAlI3gpLCB0eF9sYW5lcyAlI3gK +AAAAAAAAAAAAAAAAAAAAAGh3X21hY19tdGlwX2VuYWJsZTogcG9ydCVkLCBwdHlwZSAweCV4LCBz +cGVlZCAweCV4LCBmZWMgMHgleAoAAABod19tYWNfaW5pdF9wb3J0WyV1XSwgcHR5cGUgMHgleCwg +c3BlZWQgMHgleCwgbGFuZXMgMHgleCwgZmVjIDB4JXgKAAAAAAAAAAAAAAAAAG1vZHVsZVsldV06 +IHBvcnQgbW9kdWxlIGluc2VydGVkIGFuZCByZWFkeQoAAAAAAG1vZHVsZVsldV06IHBvcnQgbW9k +dWxlIHJlbW92ZWQKAAAAAAAAAAAAAAAAAAAAAG1vZHVsZVsldV06IHVua25vd24gbW9kdWxlIGlk +ZW50aWZpZXIgMHglMDJ4CgAAAG1vZHVsZVsldV06IGV4Y2VwdGlvbiBjYWJsZSBmZWMgYWJpbGl0 +eSBvZiBwb3J0IDB4JXgsIG9mIGNhYmxlIDB4JXgKAAAAAAAAAAAAAAAAbW9kdWxlWyV1XTogdW5z +cGVjaWZpZWQgZXh0ZW5kZWQgY29tcGxpYW5jZSBjb2RlIDB4JTAyeAoAAAAAAAAAAG1vZHVsZVsl +dV06IGZlYyBhYmlsaXR5IG9mIHBvcnQgMHgleCwgY2FibGUgMHgleCwgY29uZmlnIDB4JXgKAABt +b2R1bGVbJXVdOiBmZWMgYWJpbGl0eSBvZiBjYWJsZSAweCV4CgAAAAAAAAAAAABtb2R1bGVbJXVd +OiBncGlvICV1IHRyYW5zIDEwRyAweCUwMnggMUcgMHglMDJ4IChsZW5ndGggJXUpIGNhYmxlIDB4 +JTAyeCAobGVuZ3RoICV1KSBtb2R1bGVfdHlwZSAweCUwMngKAAAAAAAAAAAAbW9kdWxlWyV1XTog +Z3BpbyAldSB0cmFucyAxMEcgMHglMDJ4IDFHIDB4JTAyeCAobGVuZ3RoICV1KSBjYWJsZSAweCUw +MnggKGxlbmd0aCAldSkgbW9kdWxlX3R5cGUgMHglMDJ4CgAAAAAAAAAAAGN4NF9jcl9tb2R1bGVf +cnhfbG9zWyV1XTogcnhfbG9zIGNoYW5nZWQgdG8gJXUKAEREUiBpbml0IGNvbXBsZXRlLCBiZWdp +bm5pbmcgY2FsaWJyYXRpb24KAAAAAAAAAE1DIGNhbGlicmF0aW9uIGZhaWxlZDogREZJIGluaXQg +bm90IGNvbXBsZXRpbmcKAE1DIGNhbGlicmF0aW9uIGZhaWxlZDogREZJIGluaXQgbm90IGNvbXBs +ZXRpbmcKAE1DIGNhbGlicmF0aW9uIGZhaWxlZDogUGh5IGluaXQgQ2FsaWJyYXRpb24gZGlkbid0 +IGNvbXBsZXRlLgoAAABNQyBjYWxpYnJhdGlvbiBmYWlsZWQ6IFBoeSBpbml0IENhbGlicmF0aW9u +IEVycm9yZGlkbid0IGNvbXBsZXRlLjB4JXgKAAAAAAAAAAAAAE1DIGNhbGlicmF0aW9uIFBhc3Nl +ZDogTm8gUGh5IGluaXQgQ2FsaWJyYXRpb24gRXJyb3IgSXQgZGlkIGNvbXBsZXRlLgoAAAAAAAAA +AAAATUMgaW5pdGlhbGl6YXRpb24gZmFpbGVkOiBEaWRuJ3QgZ2V0IGFsbCBEUDE4cyBsb2NrZWQK +AAAAAAAAAAAAAE1DIGluaXRpYWxpemF0aW9uIGZhaWxlZDogRGlkbid0IGdldCBib3RoIEFEUnMg +bG9ja2VkCgAAAAAAAAAAAABNQyBpbml0aWFsaXphdGlvbiBmYWlsZWQ6IFNMRVdfRE9ORV9TVEFU +VVMgbmV2ZXIgdG9nZ2xlZAAAAAAAAAAAcGZuICV1IHZmbiAldSBGU00gc3RhcnQKAAAAAAAAAABw +Zm4gJXUgdmZuICV1IEZTTSBjb21wbGV0ZQoAAAAAAGZscl9wZnZmX2ZzbVsldToldV06IHVua25v +d24gc3RhdGUgJXUKAAAAAAAAAAAAAGh3IHBmIGJpdG1hcCAweCUwMngKAAAAAAAAAAAAAAAAJnZm +aWRfYml0bWFwWzBdIDB4JTA4eDoweCUwOHg6MHglMDh4OjB4JTA4eAoAAAAAJnZmaWRfYml0bWFw +WzRdIDB4JTA4eDoweCUwOHg6MHglMDh4OjB4JTA4eAoAAAAAYWZ0ZXIgdmZpZCBmaXh1cCBodyBw +ZiBiaXRtYXAgMHglMDJ4CgAAAAAAAAAAAAAAJnZmaWRfYml0bWFwWzBdIDB4JTA4eDoweCUwOHg6 +MHglMDh4OjB4JTA4eAoAAAAAJnZmaWRfYml0bWFwWzRdIDB4JTA4eDoweCUwOHg6MHglMDh4OjB4 +JTA4eAoAAAAAdGltZXIgcXVldWUgJXUgbG9zdCBhIHRpY2shIG5leHQgJXAgbGFzdCAlcCBudW1l +ICV1CgAAAAAAAAAAAAAAAGZscl90aW1lcl9zdGFydDogZmxvd2NfaWQgJXUgJXAgYnVmICVwCgAA +AAAAAAAAAE1BQzogUExMcyBkaWRuJ3QgbG9jawoAAAAAAAAAAAAAaHdfbWNfcHJlcF9tYzogbWMg +JWQsIG1vZGUgJWQsIGRlbnNpdHkgJWQsIHdpZHRoICVkLCBzaXplIDB4JXgsIG51bV9jaGlwcyAl +ZCAKAABwY2llOiByZWFkIGZyb20gc2VyY2ZnIHBjaWVfaXBfdXJfbWF4ZnVuYyAweCV4IHBmYml0 +bWFwIDB4JXgKAAAAcGNpZTogbnBmICV1IChwZmJpdG1hcCAweCUwMngpIG52ZiAldSAocGYgMC4u +NyAweCUwOHglMDh4KSB2ZnN0cmlkZSAldQoAAAAAAAAAAABod19tYWNfcHJlcDogZXJyb3IsIHJl +dCAlZAoAAAAAAGh3X2dwaW9fcHJlcDogZXJyb3IsIHJldCAlZAoAAAAAaHdfbWNfc2V0X2Nsa19j +Zmc6IGZvcmNlX3Jlc2V0ICVkLCBjdXJyX3N0YXRlICVkLCBzaXplICV1CgAAAAAAAE1DIENMSyBz +ZXR0aW5nIGZhaWxlZDogUExMX01fTE9DSyBuZXZlciB0b2dnbGVkCgAAAAAAAAAAAAAAAAAAAABm +YWlsZWQgdG8gZmluZCB0aGUgJWMlYyBWUEQgcGFyYW1ldGVyCgAAAAAAAAAAAABmYWlsZWQgdG8g +cGFyc2UgdGhlICVjJWMgVlBEIHBhcmFtZXRlcgoAAAAAAAAAAABtZW1fcHJlcDogZXJyb3IsIHJl +dCAlZAoAAAAAAAAAAGZhaWxlZCB0byBzdWNjZXNzZnVsbHkgZmluZCBDaGVsc2lvIFZQRAoAAAAA +AAAAAHZwZF9wcmVwOiBlcnJvciwgcmV0ICVkCgAAAAAAAAAAc2VyY2ZnX3ByZXA6IGVycm9yLCBy +ZXQgJWQKAAAAAABsb2cgaW5pdGlhbGl6ZWQgQCAweCUwOHggc2l6ZSAldSAoJXUgZW50cmllcykg +ZndyZXYgMHglMDh4IHBjaWVfZncgMHglMDh4CgAAAAAAAFBJIGVycm9yIGZsb3dpZF9sZW4xNiAw +eCV4LCBhcHBfdGFnIDB4JXgsIHJlZl90YWcgMHgleCwgcGlzYyAlMDR4ICUwNHggJTA0eCAlMDR4 +CgAAAAAAAAAAAAAAAAAAAGZsb3djICV1IChTR0UgZXFpZCAldSkgKEVUSENUUkwgcXVldWUpIGV4 +cGVyaWVuY2VkIGEgUENJIERNQSBSRUFEIHdvcmsgcmVxdWVzdCBlcnJvciAoaW5ib3VuZCBxdWV1 +ZSAldSkKAAAAAAAAAABmbG93YyAldSAoU0dFIGVxaWQgJXUpIGV4cGVyaWVuY2VkIGFuIHVuZXhw +ZWN0ZWQgUENJIERNQSBSRUFEIHdvcmsgcmVxdWVzdCBlcnJvciAoaW5ib3VuZCBxdWV1ZSAldSkK +AAAAAAAAAAAAAAAAZmxvd2MgJXUgZXhwZXJpZW5jZWQgYW4gdW5leHBlY3RlZCBQQ0kgRE1BIFJF +QUQgZXJyb3IgKGluYm91bmQgcXVldWUgJXUpCgAAAAAAAABnYXRoZXJfdGFza3NfZm9yX3RtZjog +aWR4IFsweCV4XSwgdGFzay1pZCBbMHgleF0sIGNtZC1pZCBbMHgleF0sIGFjdGl2ZSB0YXNrcyBb +MHgleF0uIGNvbm4taWQgWzB4JXhdLCBjbWQgY29ubi1pZCBbMHgleF0sIHRhc2sgY29ubi1pZCBb +MHgleF0KAABnYXRoZXJfdGFza3NfZm9yX3RtZjogSW52YWxpZCB0eXBlIFsweCV4XSwgYmFpbGlu +ZyBvdXQuCgAAAAAAAAAAZ2F0aGVyX3Rhc2tzX2Zvcl90bWY6IHRhc2sgaWQgWzB4JXhdLCBzdGF0 +ZSBbMHgleF0sIGxpZHggWzB4JXhdLCBjb29raWUgaGkgWzB4JTA4eF0gOiBsbyBbMHglMDh4XQoA +AAAAAAAAAAAAAAAAAGdhdGhlcl90YXNrc19mb3JfdG1mOiByYyBbMHgleF0sIFsweCV4XSB0YXNr +IGdhdGhlcmVkIGZvciB0bWYgdHlwZSBbMHgleF0gcHJvY2Vzc2luZy4KAAAAAAAAAAAAAHNjc2lf +ZGF0YV9vdXQ6IGNvbm5fZmMgWzB4JXhdLCBzdGF0ZSBbMHgleF0sIHNlc3NfZmMgWzB4JXhdIGlu +IHJlY292ZXJ5LiBTa2lwcGluZyBpc3Rhc2tfZmMgWzB4JXhdIGZyb20gVFguCgAAAABzZW5kX21z +Z19wbGQ6IGZjIHsgaWQgWzB4JXhdLCBmbGFncyBbMHgleF0sIGJ1ZmZlcmVkIFsldV0uIH0KAAAA +c2VuZF9tc2dfcGxkOiBzZXNzIHsgaWQgWzB4JXhdIH0sIHVscHR4Y2ggWyV1XSBubyBjcmVkaXRz +IGF2YWlsYWJsZSwgcmVzY2hlZHVsaW5nIHJlcXVlc3QuCgAAAAAAc2VuZF9hYm9ydF9yZXE6IGNz +a19mYy0+Zmxvd2NfdHlwZSBbMHgleF0sIGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCB0aWQgWzB4 +JXhdLCB1bHB0eGNoIFsldV0sIGJ1ZmZlcmVkIFsldV0KAAAAAGh3IHJlZ2lzdGVyIG9wZXJhdGlv +biBub3QgY29tcGxldGluZywgcmVnIDB4JTA4eCBtYXNrIDB4JTA4eCB2YWx1ZSAweCUwOHggKHJl +ZyAweCUwOHgpCgAAAAAAAAAAAE1ESU8gQ0w0NTogZmFpbGVkIHRvIHNldCB1cCBNTUQgYWRkcgoA +AAAAAAAAAAAAAE1ESU86IGZhaWxlZCB0byB3cml0ZQoAAAAAAAAAAAAATURJTyBDTDQ1OiBmYWls +ZWQgdG8gc2V0IHVwIE1NRCBhZGRyCgAAAAAAAAAAAAAATURJTzogZmFpbGVkIHRvIHJlYWQKAAAA +AAAAAAAAAABtaWlfYWR2X2ZjWyV1XTogcmNhcHMgMHgleAoAAAAAAG1paV9hZHZfc3BlZWRbJXVd +OiByY2FwcyAweCV4CgAAbmV0aWZfc2V0X21hYzogbDJkZXZfZmMtPmZsb3djX25ldF9sMmRldl9t +YnMgWzB4JXhdCgAAAAAAAAAAAAAAAHJlbW92aW5nIG1hYwoAAABub2RlLT5ncnAgWyUwNHggJTA0 +eCAlMDR4ICUwNHhdLCBub2RlX2lkICV1LCByZWZfY250ICV1CgAAAAAAAAAAREFEIGZvciBhZGRy +IFslMDR4ICUwNHggJTA0eCAlMDR4XQoAAAAAAAAAAAAAAAAAY3BsX3R4X3BrdDogdmxhbmlkIFsw +eCV4XQoAAAAAAABjcGxfdHhfcGt0OiB2bGFuaWQgWzB4JXhdCgAAAAAAAGZsb3djX2lkIFsldV0g +bDJkZXZfZmMgWzB4JXhdIGFscmVhZHkgcmVjZWl2ZWQgUkEsIG5vdCBzZW5kaW5nIFJTCgAAAAAA +AAAAAAAAAAAAZmxvd2NpZCBbJXVdIGwyZGV2X2ZjIFsweCV4XSBObyBJUHY2IHJvdXRlcgoAAAAA +c2VuZF9jbG9zZV9yZXE6IGNza19mYy0+Zmxvd2NfdHlwZSBbMHgleF0sIGNza19mYy0+Zmxvd2Nf +aWQgWzB4JXhdLCBjc2tfZmMtPnRjYl9zdGF0ZSBbMHgleF0KAAAAc2VuZF9jbG9zZV9yZXE6IGNz +a19mYy0+Zmxvd2NfdHlwZSBbMHgleF0sIGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCB0aWQgWzB4 +JXhdLCB1bHB0eGNoIFsldV0sYnVmZmVyZWQgWyV1XQoAAAAAAG9mbGRfdGNwX2RvX2FjdGl2ZV9j +bG9zZTogY3NrX2ZjIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIGNza19mYy0+dGNi +X3N0YXRlIFsweCV4XQoAAAAAAG9mbGRfdGNwX2RvX2FjdGl2ZV9jbG9zZTogY3NrX2ZjIFsweCV4 +XSwgY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIGNza19mYy0+dGNiX3N0YXRlIFsweCV4XQoAAAAA +AG9mbGRfdGNwX2Rpc2Nvbm5lY3Q6IHRjYl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2tfZmMtPmZs +b3djX2lkIFsweCV4XSwgY3NrLT50Y2Jfc3RhdGUgWzB4JXhdCgAAAGRlY29kZV9iYXNlNjRfc3Ry +aW5nOiBkbGVuIFslZF0KAAAAAAAAAAAAAAAAAAAAAGRlY29kZV9oZXhfc3RyaW5nOiBkbGVuIFsl +ZF0KAAAAZm9pc2NzaV92YWxpZGF0ZV9sb2dpbl9zdGFnZTogLSAxCgAAAAAAAAAAAAAAAAAAYXN5 +bmNfcGR1OiBsb2dvdXQgcmVxdWVzdGVkIGJsb2NraW5nIHNlc3Npb24KAAAAYXN5bmNfcGR1OiBz +ZXNzL2Nvbm4gZHJvcCByZXF1ZXN0ZWQgYmxvY2tpbmcgc2Vzc2lvbgoAAAAAAAAAAAAAAGNwbF90 +eF9wa3Q6IHZsYW5pZCBbMHgleF0KAAAAAAAAcmVpbml0IGxpbmstbG9jYWwgYWRkcmVzcwoAAAAA +AABuZXRfbDJkZXZfZmluZF9ieV9hZGRyOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBsMmRj +LT5scG9ydCBbJXVdLCBsMmRfZmMtPmZsb3djX2lkIFsweCV4XSwgbDJkYy0+aW40X2Rldi5pbl9h +ZGRyLmFkZHIgWzB4JXhdLCBhZGRyIFsweCV4XQoAAABuZXRfbDJkZXZfbXR1X2NvbmZpZzogbDJk +ZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgbXR1ICV1CgAAAAAAAAAAbmV0aWZfZG9fZGhjcDogd3It +PnBhcmFtLnZsYW5pZCBbJXVdLCBsMmRldl9mYy0+Zmxvd2NfbmV0X2wyZGV2X3ZsYW5kZXYgWzB4 +JXhdCgBjcGxfdHhfcGt0OiB2bGFuaWQgWzB4JXhdCgAAAAAAAGVuY29kZSBoZXggc3RyaW5nOiBk +bGVuIFslZF0KAAAAY2huZXRfZmluZF9sMnRfZW50cnk6IGRhZGRyIFslMDh4XSwgWzB4JTA4eF0s +IGxvY2FsIG5ldHdvcmsgWyVkXQoAAAAAAAAAAAAAAAAAAABsMnRlbnQgWyUweF0sIGwydGVudC0+ +aWR4IFslZF0KAHRjcF9zZW5kX2FvcGVuX3JlcTogY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIGNz +a19mYy0+Zmxvd2Nfc3RhdGUgWzB4JXhdLCBidWZmZXJlZCBbJXVdLCByZXNfY250IFsweCV4XSwg +aXFfaWR4IFsweCV4XQoAAAAAAAAAAAAAdGNwX3NlbmRfYW9wZW5fcmVxOiBjc2tfZmMtPmZsb3dj +X2lkIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0sIG5vIHZhbGlkIGwydF9lbnR5 +LiBEZWxheWluZyBhbm90aGVyIHJldHJ5IGZvciAxIHNlY29uZHMuCgAAAAAAAAAAAAAAAAAAYW9w +ZW5fcmVxOiBod19sZV9maWx0ZXJfY3R1cGxlIGZhaWxlZAoAAAAAAAAAAAAAb2ZsZF90Y3Bfc2Vu +ZF9hb3Blbl9yZXE6IGNwbF9yZXEtPkZpbHRlcl9oaSBbMHglMHhdLCBjcGxfcmVxLT5GaWx0ZXJf +bG9fRkNvRU1hc2sgWzB4JTB4XSwgY3R1cGxlc1swXSBbMHgleF0sIGN0dXBsZXNbMV0gWzB4JXhd +CgBsYWRkcl9yZXQ6IGwyZGMuYWRkciA6MHgleCwgc3JjX2FkZHI6MHgleAoAAAAAAABpdHRfdG9f +dGFza19pZHg6IHRhZyBbMHglMDh4XSwgaGkgWyV1XSwgbG8gWyV1XSwgbm1hc2tiaXRzIFsldV0s +IHRhc2tfaWR4IFsldV0KAFdBVENIRE9HOiBObyB0ZW1wZXJhdHVyZSBzZW5zb3IgYXZhaWxhYmxl +LgoAAAAAAFdBVENIRE9HOiBBY3RpdmF0aW5nCgAAAAAAAAAAAAAAV0FUQ0hET0cgLSBFbmFibGUg +YWN0aW9uICV1IHRpbWUgJXUKAAAAAAAAAAAAAAAAV0FUQ0hET0cgLSBEaXNhYmxlIGFjdGlvbiAl +dQoAAABXQVRDSERPRzogRGUtYWN0aXZhdGluZwoAAAAAAAAAAHBvcnRbJXVdIHNldCBQQVVTRSBQ +QVJBTVM6IHBwcGVuICV1IHR4cGUgJSN4IHJ4cGUgJSN4CgAAAAAAAAAAAABtcHNfbGlua191cFsl +dV0gYWNhcHMgJSN4ICg4MDIuMyAlI3gpICsgbHBhY2FwcyAlI3ggPT4gJSN4CgAAAAAAaXB2Nl9o +YW5kbGVfbGlua19kb3duIGZsb3djX2lkIDB4JXgKAAAAAAAAAAAAAAAAaXB2Nl9oYW5kbGVfbGlu +a191cCBmbG93Y19pZCAweCV4CgAAAAAAAAAAAAAAAAAAZm9pc2NzaSBjb25uX2ZjIFsweCV4XSwg +Zmxvd2Nfc2NoZWRjbCBbMHgleF0sIGluZ19jaCBbMHgleF0sIGVncl9jaCBbMHgleF0KAAAAAABs +MmRldl9ub3RpZnkgd2l0aCB1bmtub3duIGZsYWcgWzB4JXhdCgAAAAAAAAAAAABJbnZhbGlkIHJh +dGUgJXUga2Jwcywgb3V0IG9mIGNvbmZpZ3VyZWQgZ3JhbnVsYXJpdHkgcmFuZ2VzCgAAAAAARENC +WDogc3VtIG9mIHJhdGVzIG9uIGFsbCBjbGFzc2VzIG11c3QgYmUgMTAwIChhY3R1YWw6ICV1KQoA +AAAAAHJpX3dyX2luaXRbJXVdOiBtc3MgJXUgaXMgbm90IDgtYnl0ZSBhbGlnbmVkCgAAAGNvcmVf +cHJvZ3JhbV90Y2I6IHRpZCAlI3ggdF9zdGF0ZSAlI3ggcmN2X2FkdiAweCUwOHggcmN2X3NjYWxl +ICUjeCB0eF9tYXggJSN4IHJjdl9ueHQgJSN4IGF0aWQgJSN4CgAAAAAAAAAAAAAAAAAJb3B0MCAl +I3gleCBvcHQyICUjeCBpcHY2ICUjeCBmbGFnc190aW1lciAweCUwOHgKAAAAAAAAAAAAAAAAAAAA +b2ZsZF9jb25uZWN0aW9uX3dyOiBjb25uZWN0aW9uIHdpdGggNS10dXBsZSBscCAweCUwNHggZnAg +MHglMDR4IGxpcCAweCUwOHglMDh4IHBpcCAweCUwOHglMDh4IGZpbHRlciAweCUwOHggZXhpc3Rz +IEAgTEUgaW5kZXggJXUKAAAAAAAAAAAAAAAAAAAAb2ZsZF9jb25uZWN0aW9uX3dyOiBjb25uZWN0 +aW9uIHdpdGggNS10dXBsZSBscCAweCUwNHggZnAgMHglMDR4IGxpcCAweCUwOHggcGlwIDB4JTA4 +eCBmaWx0ZXIgMHglMDh4IGV4aXN0cyBAIExFIGluZGV4ICV1CgAAAAAAAABvZmxkX2Nvbm5lY3Rp +b25fd3I6IGNvbm5lY3Rpb24gd2l0aCA1LXR1cGxlIGxwIDB4JTA0eCBmcCAweCUwNHggbGlwIDB4 +JTA4eCUwOHggcGlwIDB4JTA4eCUwOHggZmlsdGVyIDB4JTA4eAoAAAAAb2ZsZF9jb25uZWN0aW9u +X3dyOiBjb25uZWN0aW9uIHdpdGggNS10dXBsZSBscCAweCUwNHggZnAgMHglMDR4IGxpcCAweCUw +OHggcGlwIDB4JTA4eCBmaWx0ZXIgMHglMDh4CgAAAAAAAAAAAAAAAEVRIChmcmVlc2xpc3QpIHBm +biAldSB2Zm4gJXU6IGZsaWRfYSAldSBmZXRjaCBidXJzdCBtYXhbJXVdICV1ICgldSBieXRlcykg +PiAyOAoASVFGTElOVCBwZm4gJXUgdmZuICV1OiBpcWlkICV1IHRvbyBsYXJnZSAobWF4ICV1KQoA +AAAAAAAAAAAAAAAAAElRRkxJTlQgcGZuICV1IHZmbiAldTogaXFpZCAldSBub3QgYWxsb2NhdGVk +CgAAAElRRkxJTlQgcGZuICV1IHZmbiAldTogZmwwaWQgJXUgdG9vIGxhcmdlIChtYXggJXUpCgAA +AAAAAAAAAAAAAABJUUZMSU5UIHBmbiAldSB2Zm4gJXU6IGZsMGlkICV1IG5vdCBhbGxvY2F0ZWQK +AABJUUZMSU5UIHBmbiAldSB2Zm4gJXU6IGZsMWlkICV1IHRvbyBsYXJnZSAobWF4ICV1KQoAAAAA +AAAAAAAAAAAASVFGTElOVCBwZm4gJXUgdmZuICV1OiBmbDFpZCAldSBub3QgYWxsb2NhdGVkCgAA +SVFGTElOVCBwZm4gJXUgdmZuICV1OiBmbDFpZCAldSBpcyB2YWxpZCBidXQgbm90IGZsMGlkICV1 +CgAAAAAAAElRRkxJTlQgcGZuICV1IHZmbiAldTogZmwxaWQgJXUgaXMgdmFsaWQgYnV0IGhlYWRl +ciBzcGxpdCBmZWF0dXJlIGlzIG5vdCBlbmFibGVkCgAAAAAAAAAAAAAAAAAAAEVRIHBmbiAldSB2 +Zm4gJXU6IGNyZWF0aW5nIEVUSCBlcWlkICV1IHdpdGggcGVuZGluZyBXUihzKSAobnVtX2J5dGVz +ICV1IGFuZCBmbGFncyAweCUwOHgKAAAAAAAAAEVRIHBmbiAldSB2Zm4gJXU6IGNyZWF0aW5nIENU +UkwgZXFpZCAldSB3aXRoIHBlbmRpbmcgV1IocykgKG51bV9ieXRlcyAldSBhbmQgZmxhZ3MgMHgl +MDh4CgAAAAAAAEVRIHBmbiAldSB2Zm4gJXU6IGVxaWQgJXUgdG9vIGxhcmdlIChtYXggJXUpCgAA +AEVRIHBmbiAldSB2Zm4gJXU6IGVxaWQgJXUgbm90IGFsbG9jYXRlZAoAAAAAAAAAAGRjYnhfcG9w +dWxhdGVfY3RybCBjb2RlIGluY29tcGxldGUKAAAAAAAAAAAAAAAAAHZpX3RjYW1fcmF3IGlkeCAl +dSBtYWMgMHglMDR4ICUwOHgKAAAAAAAAAAAAAAAAAHBvcnRfYmxpbmtfbGVkX3Jlc3RvcmUKAAAA +AAAAAAAAcG9ydF9ibGluazogYmxpbmtkdXI9MHgleCBibGlua19yZWZjbnQKAAAAAAAAAAAAcG9y +dF9ibGluazogCWJsaW5rX3JlZmNudD0weCV4CgBwb3J0X2JsaW5rOiAJYmxpbmtfcmVmY250PTB4 +JXgKAG1paV9hbnJlc3RhcnRbJXVdOiBhY2FwcyAweCV4CgAAcG9ydF9jbWRfaGFuZGxlcjogdW5r +bm93biB1LmRjYi50eXBlIDB4JXgKAAAAAAAAcG9ydFsldToweCUwMng6MHglMDJ4XTogbDFjZmcs +IGludmFsaWQgcmVxdWVzdCwgcGNhcHMgMHgleCBhY2FwcyAweCV4IHJjYXBzIDB4JXgKAAAAAAAA +AAAAAAAAAAAAUmV0dXJuaW5nIHN1Y2Nlc3MgYXMgdGhlIGxpbmsgc3RhdHVzIHVwZGF0ZSBpcyBw +ZW5kaW5nCgAAAAAAAAAAAHBvcnRbJXU6MHglMDJ4OjB4JTAyeF06IGwxY2ZnLCBwY2FwcyAlI3gg +YWNhcHMgJSN4IHJjYXBzICUjeCBtY2FwcyAlI3gKAAAAAAAAAAAAcG9ydFsldToweCUwMng6MHgl +MDJ4XTogbDFjZmcsIG1kaSBpc3N1ZSBwY2FwcyAweCV4IGFjYXBzIDB4JXggcmNhcHMgMHgleAoA +AAAAAABwb3J0WyV1OjB4JTAyeDoweCUwMnhdOiBsMWNmZywgY2Fubm90IGZvcmNlIG11bHRpcGxl +IGZlYyhzKSwgcGNhcHMgMHgleCBhY2FwcyAweCV4IHJjYXBzIDB4JXgKAABwb3J0WyV1OjB4JTAy +eDoweCUwMnhdOiBsMWNmZywgY2Fubm90IGZvcmNlIG5vL211bHRpcGxlIHNwZWVkKHMpLCBwY2Fw +cyAweCV4IGFjYXBzIDB4JXggcmNhcHMgMHgleAoAAAAAAAAAAAAAAAAAYmFkIEZsb3dDICVkIG9u +IGVzdGFibGlzaGVkIGNvbm5lY3Rpb24KAAAAAAAAAAAAZXRoX2Zsb3djX2hhbmRsZXJbMHgleF06 +IGZsYWdzIDB4JTA4eCBudW1fYnl0ZXMgJXUgc2NoZWRjbCAweCV4IC0+IDB4JXgKAAAAAAAAAAB0 +YXNrX2lkeF90b19pdHQ6IHRhc2tfaWR4IFsldV0sIGhpIFsldV0sIGxvIFsldV0sIG5tYXNrYml0 +cyBbJXVdLCBzd190YWcgWzB4JTA4eF0sIHBwb2RfaWR4IFslZF0KAAAAAAAAAAAAAAAAAAAAc2Nz +aV9jbWQ6IHJlY2VpdmVkIFRNRiBvcCBbMHgleF0gZnVuYyBbMHgleF0gb24gY29ubiBbMHgleF0g +dGhyb3VnaCBjb21tYW5kIHBhdGguCgAAAAAAAAAAAAAAAAAAc2NzaV9jbWQ6IGNvbm5fZmMgWzB4 +JXhdLCBzdGF0ZSBbMHgleF0sIHNlc3NfZmMgWzB4JXhdIGluIHJlY292ZXJ5LiBTa2lwcGluZyBp +c3Rhc2tfZmMgWzB4JXhdIGZyb20gVFguCgAAAAAAAAAAAHNjc2lfcmVhZDogY29ubl9mYyBbMHgl +eF0sIHN0YXRlIFsweCV4XSwgc2Vzc19mYyBbMHgleF0gaW4gcmVjb3ZlcnkuIFNraXBwaW5nIGlz +dGFza19mYyBbMHgleF0gZnJvbSBUWC4KAAAAAAAAAABzY3NpX3dyaXRlOiBjb25uX2ZjIFsweCV4 +XSwgc3RhdGUgWzB4JXhdLCBzZXNzX2ZjIFsweCV4XSBpbiByZWNvdmVyeS4gU2tpcHBpbmcgaXN0 +YXNrX2ZjIFsweCV4XSBmcm9tIFRYLgoAAAAAAAAAZGNieF9jb250cm9sX3NtWyV1XSBDT05UUk9M +X0xJTktVUAoAAAAAAAAAAAAAAAAAZGNieF9jb250cm9sX3NtWyV1XSBDT05UUk9MX1VQREFURV9E +Q0JYX1RMVgoAAAAAZGNieF9jb250cm9sX3NtWyV1XSBDT05UUk9MX1BFRVJfTk9UX0FEVkVSVElT +RV9EQ0JYCgAAAAAAAAAAAAAAAGRjYnhfY29udHJvbF9zbVsldV0gQ09OVFJPTF9VUERBVEVfT1BF +Ul9WRVJTSU9OCgAAAAAAAAAAAAAAAAAAAABkY2J4X2NvbnRyb2xfc21bJXVdIENPTlRST0xfUFJP +Q0VTU19QRUVSX1RMVgoAAABkY2J4X2NvbnRyb2xfc21bJXVdIENPTlRST0xfQUNLX1BFRVIKAAAA +AAAAAAAAAABkY2J4X2llZWVfdmFsaWRhdGVbJXVdIGVycm9yIChvdWkgJSN4IHN1YnR5cGUgJSN4 +IGxlbiAlI3gpCgAAAAAAZGNieF9jZWVfdmFsaWRhdGVbJXVdIGVycm9yCgAAAABjaG5ldF9sMnRf +dXBkYXRlOiBsMmRldl9mYyBbMHgleF0sIGwyZGV2X2ZjLT5mbG93Y19pZCBbJXVdIGwyZGV2X2Zj +LT5mbG93Y19mbGFncyBbMHgleF0sIGludGYgWzB4JXhdCgAAAAAAAAAAAAAAY2huZXRfbDJ0X3Vw +ZGF0ZTogbDJkZXZfZmMtPmZsb3djX2lkIFsldV0gYWxyZWFkeSBzY2hlZHVsZWQKAAAAAGNobmV0 +X2wydF91cGRhdGU6IGluIGRlbGF5ZWRfcHJvY2Vzc2luZywgbDJ0ZW50IFslMDh4XQoAAAAAAAAA +AABESENQdjYgUkVQTFkgcmVjZWl2ZWQgc3RhdGUgJXUKAGRoY3AgcmVwbHkgcmVjZWl2ZWQgaW4g +d3Jvbmcgc3RhdGUgJWQKAAAAAAAAAAAAAHVua25vd24gc2VydmVyaWQuIElnbm9yaW5nIGRoY3Ag +cmVwbHkKAAAAAAAAAAAAAHJlY2VpdmVkIHJlcGx5IHdpdGggZGlmZmVyZW50IGFkZHJlc3MuIGln +bm9yaW5nIGRoY3AgcmVwbHkKAAAAAABESENQdjYgQURWRVJUSVNFIHJlY2VpdmVkCgAAAAAAAGRo +Y3AgYWR2ZXJ0aXNlIHJlY2VpdmVkIGluIHdyb25nIHN0YXRlICVkCgAAAAAAAGlnbm9yaW5nIHJj +dmQgYWR2ZXJ0aXNlIHByZWZlcmVuY2UgJXUKAAAAAAAAAAAAAHByZWZpeCBub2RlIDB4JXgsIHZh +bGlkX2xpZmV0aW1lICV1LCBjdXJyZW50X3RpbWUgJXUgZXhwaXJlZCwgZGVsZXRpbmcgaXQKAAAA +AAAARGVsZXRlZCBwcmVmaXg6IDB4WyUwNHggJTA0eCAlMDR4ICUwNHhdCgAAAAAAAAAAU3RhcnQg +REhDUHY2IHRvIGdldCB0aGUgaXAgYWRkcmVzcwoAAAAAAAAAAAAAAAAATm8gZGhjcCwgZGhjcCBz +dGF0ZSAlZCwgYWRkciBzdGF0ZSAlZAoAAAAAAAAAAAAAcGluZyByZXEgcGF5bG9hZCB0b28gbGFy +Z2UgJXUuIElnbm9yaW5nIHJlcS4KAAAAUlIgcmN2ZAoAAAAAAAAAAGNobmV0X2lwdjZfcmRfaW5w +dXQ6IEludmFsaWQgUmVkaXJlY3QKAAAAAAAAAAAAAGNobmV0X2lwdjZfbmFfaW5wdXQ6IEludmFs +aWQgTkEKAAAAAAAAAAAAAAAAAAAAAGlwdjYgTkEgcmN2ZAoAAABjaG5ldF9pcHY2X25hX2lucHV0 +OiBEdXBsaWNhdGUgYWRkcmVzcyBkZXRlY3RlZCEKAAAAAAAAAAAAAAAAAAAATkEgaW4gcmVwb25z +ZSBvZiBOUwoAAAAAAAAAAAAAAABjaG5ldF9pcHY2X25zX2lucHV0OiBJbnZhbGlkIE5TCgAAAAAA +AAAAAAAAAAAAAABjaG5ldF9pcHY2X25zX2lucHV0OiBJbnZhbGlkIE5TIGlwdjZoLT5wbGVuICV1 +CgBpcHY2IE5TIHJjdmQKAAAAY2huZXRfaXB2Nl9uc19pbnB1dDogRHVwbGljYXRlIGFkZHJlc3Mg +ZGV0ZWN0ZWQKAAAAAAAAAAAAAAAAAAAAAGNobmV0X2lwdjZfbnNfaW5wdXQ6IHNvbWVib2R5IHRy +eWluZyB0byB1c2Ugb3VyIGFkZHJlc3MKAAAAAAAAAABjaG5ldF9pcHY2X25zX2lucHV0OiByZXEg +Zm9yIGFkZHIgcmVzb2x1dGlvbgoAAABIb3AgYnkgSG9wIG9wdGlvbgoAAAAAAAAAAAAAAAAAAHBy +b2Nlc3NfZGhjcF9vcHRzOiByb290IHBhdGggbGVuIFslZF0gYnl0ZXMKAAAAAG5ldGlmX3Byb2Nl +c3NfZGhjcF9vcHRzOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBNU0dfVFlQRSBbJWRdLCBk +aGN0eHQtPnN0YXRlIFslZF0KAAAAAAAAAAAAAGljbXBfcmVjdjogbDJkZXZfZmMtPmZsb3djX2lk +IFsweCV4XSwgcGlkIFsweCV4XSwgaWNtcCB0eXBlIFsweCV4XQoAAAAAAAAAAAAAAAAAYXJwX3Jl +Y3Y6IGlwaWQgWzB4JXhdLCBpbl9hZGRyLmFkZHIgWzB4JXhdLCBzaXAgWzB4JXhdLCByaXAgWzB4 +JXhdLCBhcnBfb3AgWzB4JXhdCgAAAAAAAAAAAAAAAAAAY2huZXRfYXJwX3JlY3Y6IGlwIGNvbmZs +aWN0IGRldGVjdGVkCgAAAAAAAAAAAAAAY2huZXRfYXJwX3JlY3Y6IHBpZCBbJXVdLCB2bGFuIFsw +eCV4XSwgYXJwIG9wIFsweCV4XSwgc2lwIFsweCV4XSwgcmlwIFsweCV4XQoAAABjaG5ldF9pcHY2 +X3JlY3Y6IHZsYW4gZXh0cmFjdGVkLCB2bGFuaWQgWyV1XSwgbDJkZXZfZmMtPmZsb3djX25ldF9s +MmRldl92bGFuZGV2IFsweCV4XQoAAAAAAAAAAABJbnZhbGlkIGRhdGEgbGVuZ3RoIGRsZW4gJXUs +IHBhY2tldCBpbmRpY2F0ZXMgJXUgYnl0ZXMKAAAAAAAAAAAAVW5rbm93biBJUHY2IG54dCBwcm90 +b2NvbCAldQoAAABjc29ja19mcmVlOiBzaXplb2YoY3NrX2ZjLT51LmNzb2NrKSBbJXVdLCBieXRl +cwoAAAAAAAAAAAAAAAAAAAAAY3NvY2tfcGVlcl9jbG9zZTogY3NrX2ZjLT5mbG93Y19pZCBbMHgl +eF0sIHRjYl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2tfZmMtPmZsb3djX3N0YXRlIFsweCV4XSwg +dGNiX2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0KAAAAAABjc29ja19wZWVyX2Nsb3NlOiBjc2tfZmMt +PmZsb3djX2lkIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19zdGF0ZSAgWzB4JXhdCgAAAAAAAAAAAHRj +cF9jbHNfYWJydF9ycGw6IHRjYiB0aWQgWzB4JTA2eF0sIGZsb3djX3R5cGUgWzB4JXhdLCBjcGxv +cCBbMHgleF0gZmxvd2Nfc3RhdGUgMHgleAoAAAAAAAAAAAAAAENhbm5vdCBnZXQgY2hhbm5lbCBy +YXRlICV1IHdpdGggY29uZmlndXJlZCBncmFudWxhcml0aWVzLiBDaGVjayBjb25maWcgZmlsZQoA +AAAAcGt0c2NoZWRfY2hfcmxbJXVdOiBjaGFubmVsIHJsIG5vdCBhdmFpbGFibGUgaW4gY29uanVu +Y3Rpb24gd2l0aCBmbG93IHNoYXBpbmcKAABwa3RzY2hlZF9jaF9ybFsldV06IHJhdGUgJXUgbWF4 +ICV1CgAAAAAAAAAAAAAAAABwa3RzY2hlZF9jbF93cnJbJXU6JXVdOiB3ZWlnaHQgJXUKAAAAAAAA +AAAAAAAAAABlcV9wYXJhbXNbMHgleDoweCV4XTogZG1hcSAweCV4IHJlYWQgJXUgcGYgJXUgZXFp +ZF9hcGkgJXUgcmV0ICVkCgAAAAAAAAAAAAAAAAAAAGh3X21hX2FkZHJfdG9fbWVtX3R5cGVfb2Zm +OiBNQSBhZGRyZXNzIDB4JTA4eCBpcyBub3QgbWFwcGVkCgAAAABod19tYV9hZGRyX3RvX21lbV90 +eXBlX29mZjogTUEgYWRkcmVzcyAweCUwOHggbWFwcyB0byB0eXBlICV1IG9mZnNldCAweCV4CgAA +AAAAAG1lbV9tYWxsb2NfdGVtcDogZmFpbGVkIHRvIGFsbG9jYXRlICV1IGJ5dGVzLCByZXR1cm5p +bmcgTlVMTAoAAABtZW1fbWFsbG9jOiBmYWlsZWQgdG8gYWxsb2NhdGUgJXUgYnl0ZXMsIHJldHVy +bmluZyBOVUxMCgAAAAAAAAAAbGUgY29uZmlndXJhdGlvbjogcmVxdWVzdGVkICV1IHRjYW0gZW50 +cmllcyBidXQgb25seSAldSBhdmFpbGFibGUgKG5maWx0ZXIgJXUgbnNlcnZlciAldSBuaHBmaWx0 +ZXIgJXUKAAAAAAAAAAAAAGxlIGNvbmZpZ3VyYXRpb246IHRjYW0gcmVnaW9ucyBtdXN0IGhhdmUg +bXVsdGlwbGUgb2YgNjQgZW50cmllcywgbmZpbHRlciAldSBuaHBmaWx0ZXIgJXUgbnNlcnZlciAl +dQoAAAAAAAAAAAAAAABod190cF90Y3BfdHVuaW5nczogdHVuaW5nIGZvciBjbHVzdGVyIGVudmly +b25tZW50CgAAAAAAAAAAAAAAAAAAaHdfdHBfdGNwX3R1bmluZ3M6IHR1bmluZyBmb3IgTEFOIGVu +dmlyb25tZW50CgAAaHdfdHBfdGNwX3R1bmluZ3M6IHR1bmluZyBmb3IgV0FOIGVudmlyb25tZW50 +CgAAaHdfdHBfdGNwX3R1bmluZ3M6IG1hbnVhbCB0dW5pbmcKAAAAAAAAAAAAAAAAAAAAX2h3X2Np +bV9mbGFzaF9tZW1jcHk6IG1lbWNweVggc3RhcnQKAAAAAAAAAAAAAAAAX2h3X2NpbV9mbGFzaF9t +ZW1jcHk6IGRzdCAweCUwOCBvZmZzZXQgMHglMDh4IHNpemUgJXUsIHdpZHRoIG9mICV1IGlzIG5v +dCBzdXBwb3J0ZWQKAAAAAAAAAAAAAAAAX2h3X2NpbV9mbGFzaF9tZW1jcHk6IG1lbWNweVggZW5k +CgAAAAAAAAAAAAAAAAAAY29uZmlndXJhdGlvbiBmaWxlIHBhcnNlciBlbmNvdW50ZXJlZCBlcnJv +ciBAIGxpbmUgJXU6CgAAAAAAAAAAAEhPU1QgUEFHRV9TSVpFIFsweCUwbHhdIHRvbyBzbWFsbCwg +bWluIFsweCUwbHhdIHJlcXVpcmVkCgAAAAAAAABwYWdlIHNpemUgWyVsdV0gbWlzbWF0Y2gKAAAA +AAAAAFBBR0Ugc2l6ZSAlbHUgdW5zdXBwb3J0ZWQsIGRkcCBkaXNhYmxlZAoAAAAAAAAAAEhvc3Qg +cGFnZV9zaXplICVsdSwgZGRwX2lkeCAldQoAdGxzX2JtX2luaXQ6IG1lbV9tYWxsb2MgZmFpbGVk +IQoAAAAAAAAAAAAAAAAAAAAAZGNieF9pZWVlX2NvbnN0cnVjdFsldV0gZXRzICV1IHBmYyAldSBh +cHAgJXUKAAAAZGNieF90aW1lb3V0WyV1XQoAAAAAAAAAAAAAAAAAAABkY2J4X3J1bl92ZXJzaW9u +X3NtWyV1XSBEQ0JYX1ZFUl9TVEFURV9SVU5fSUVFRQoAAAAAAAAAAAAAAAAAAAAAZGNieF9ydW5f +dmVyc2lvbl9zbVsldV0gRENCWF9WRVJfU1RBVEVfUlVOX0NFRQoAZGNieF9ydW5fdmVyc2lvbl9z +bVsldV0gRENCWF9WRVJfU1RBVEVfUlVOX05PTkUKAAAAAAAAAAAAAAAAAAAAAE1BQyBmYWlsZWQg +dG8gcmVzeW5jIHR4CgAAAAAAAAAAcnhfY29uZmlnIHNwZWVkIDB4JXggcGxsX3NlbCAlZCBid19z +ZWwgJWQKAAAAAAAAcG9ydFsldV0gbGluayB1cCAoJXUpIChzcGVlZCAlI3ggYWNhcHMgJSN4IGxw +Y2FwcyAlI3gpCgAAAAAAAAAAAHBvcnRfaHNzX3NpZ2RldFsldV06IGhzc19zaWdkZXQgY2hhbmdl +ZCB0byAweCV4CgAAAAAAAAAAAAAAAAAAAABwb3J0WyV1XSBpbml0aWFsaXppbmcgS1IKAAAAAAAA +AENhbGN1bGF0aW9uIG91dCBvZiBib3VuZHMgZnVyaW5nIGluaXQ6ICUjeCAlI3ggJSN4CgAAAAAA +AAAAAAAAAABsZSBjb25maWd1cmF0aW9uOiBoYXNoIG1vZGUgcmVxdWlyZXMgYXQgbGVhc3QgMTYg +ZW50cmllcywgbmhhc2ggJXUKAAAAAAAAAAAAAAAAAGxlIGNvbmZpZ3VyYXRpb246IGhhc2ggc2l6 +ZSAldSBtdXN0IGJlIG11bHRpcGxlIG9mICV1LCBuaGFzaCAldQoAAAAAAAAAAAAAAAAAAAAAQWRk +aW5nIG1hdGNoLWFsbCBjbGlwIGVudHJ5IEAgbG9jIDB4JXgvJWQKAAAAAAAAaHdfc2dlX21hbWVt +X2luaXQ6IGVuY291bnRlcmVkIGVycm9yICVkCgAAAAAAAAAAX2h3X3RwX3BnbW5ndDogdHhfcGFn +ZV9tYXggJXUgcnhfcGFnZV9tYXggJXUgcHN0cnVjdHMgJXUgc2l6ZSAldQoAAAAAAAAAAAAAAAAA +AABtcGFydGl0aW9uX290aGVyc190b3RhbDogZGRwICV1IGRkcF9pc2NzaSAldSBzdGFnICV1IHBi +bCAldSBycSAldSBycXVkcCAldSAtPiAldQoAAAAAAAAAAAAAAAAAAABfbXBhcnRpdGlvbl9iYW5r +c19tY1g6IG5iYW5rc19wbXR4ICV1ICgldU1CKSBuYmFua3NfcG1yeCAldSAoJXVNQikgbmJhbmtz +X290aGVycyAldSAoJXVNQikgbmJhbmtzX2Z3ICV1ICgldU1CKQoAX21wYXJ0aXRpb25fYmFua3Nf +bWMxOiBuYmFua3NfcG10eCAldSAoJXVNQikgbmJhbmtzX290aGVycyAldSAoJXVNQikgbmJhbmtz +X2Z3ICV1ICgldU1CKQoAAAAAAAAAX21wYXJ0aXRpb25fYmFua3NfbWMwOiBuYmFua3NfcG1yeCAl +dSAoJXVNQikgbmJhbmtzX290aGVycyAldSAoJXVNQikKAAAAAAAAAAAAAABtZW1fbWFsbG9jX2lu +dGVybmFsOiBmYWlsZWQgdG8gYWxsb2NhdGUgJXUgYnl0ZXMsIHJldHVybmluZyBOVUxMCgAAAAAA +AAAAAAAAAAAAAGh3X2VkY19iaXN0WyV1XTogYmlzdF9jbWRbMHglMDh4XSBhZGRyIDB4JXggbGVu +IDB4JXgKAAAAAAAAAAAAAABod19lZGNfYmlzdFsldV06IGRvbmUsIGVuY291bnRlcmVkICV1IGVy +cm9ycyBvbiBmaXJzdCBhbmQgJXUgZXJyb3JzIG9uIHNlY29uZCBhdHRlbXB0ICgldWdicHMpCgBt +ZW1faW5pdF9jYWNoZXM6IGNhY2hlX3NpemUgJXUgZmxvd2NfYnVmX3RjYl9jYWNoZV9zaXplICV1 +IGJ1ZmxsNjRfY2FjaGVfc2l6ZSAldQoAAAAAAAAAAAAAAAAAAABtcGFydGl0aW9uX3BtdHg6IG0g +MHglMDh4IHNpemUgJXUKAAAAAAAAAAAAAAAAAABtcGFydGl0aW9uX3Btcng6IG0gMHglMDh4IHNp +emUgJXUKAAAAAAAAAAAAAAAAAABtcGFydGl0aW9uX2VkYyAobm8gZXh0bWVtKTogbSAweCUwOHgg +c2l6ZSAldQoAAABtcGFydGl0aW9uX2VkY19lc3RpbWF0ZTogaHcgbW9kdWxlcyByZXF1aXJlICVk +IGJ5dGVzIGluIEVEQwoAAAAAVGVtcGVyYXR1cmUvVm9sdGFnZSBTZW5zb3I6IENvcmUgY2xvY2sg +JXUgPiAldTsgY2FwcGluZyB0byBzdGF5IGluIGNvbXBsaWFuY2Ugd2l0aCBoYXJkd2FyZS4KAAAA +Y2huZXRfYnllOmwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIGwyZGV2X2ZjLT5mbG93Y19wY2ll +X3BmbiBbMHgleF0sIGwyZGV2X2ZjLT5mbG93Y19wY2llX3ZmbiBbMHgleF0sIHBvcnQgWzB4JXhd +CgAAAAAAAAAAAAAAAABjaG5ldF9ieWU6dmxhbmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCB2bGFu +ZGV2X2ZjLT5mbG93Y19wY2llX3BmbiBbMHgleF0sIHZsYW5kZXZfZmMtPmZsb3djX3BjaWVfdmZu +IFsweCV4XSwgcG9ydCBbMHgleF0KAAAAAAAAAGZvaXNjc2lfY29yZV9ieWU6IGFjdGl2ZSBzZXNz +X2NudCAlZAoAAAAAAAAAAAAAAGh3X21hY19hZWNfY29tcGxldGVbJXVdIG9uIGxhbmVzICUjeCAo +c2lnZGV0ICUjeCksIHR4X2xhbmVzICUjeAoAAAAAAAAAAAAAAAAAAAAAYWVjX2ZzbVsldV0gOiBz +dGF0ZSBTVEFSVCAoc2lnZGV0ICUjeCkKAAAAAAAAAAAAYWVjX2ZzbVsldV0gOiBUcmFuc2l0aW9u +aW5nIHRvIFRSQUlOSU5HX0xPQ0FMCgAAYWVjX2ZzbVsldV0gOiBUcmFuc2l0aW9uaW5nIHRvIENP +RUZfU1RBVFVTX1VQQURURQoAAAAAAAAAAAAAAAAAAGFlY19mc21bJXVdIDogdHJhbnNpdGlvbmlu +ZyB0byBUUkFJTklORwoAAAAAAAAAAGFlY19mc21bJXVdIDogVFJBSU5JTkdfQ09NUExFVEUKAAAA +AAAAAAAAAAAAAAAAAGFlY19mc21bJXVdIDogUmVtb3RlIGZhdWx0IHdoaWxlIHdhaXRpbmcgZm9y +IGxpbmsgc3RhdHVzIDB4JXgKAABhZWNfZnNtWyV1XSA6IFJlbW90ZSBmYXVsdCBjbGVhcmVkIHdo +aWxlIHdhaXRpbmcgZm9yIGxpbmsgc3RhdHVzIDB4JXgKAAAAAAAAAAAAAGFlY19mc21bJXVdIDog +RE9ORQoAAAAAAAAAAAAAAAAAYWVjX2ZzbVsldV0gdGltZWQgb3V0IHRyYWluaW5nIEZTTV9TVEFU +RV8wIDB4JXgsIF8xIDB4JXggXzIgMHgleCBfMyAweCV4LCBMaW5rIFN0YXR1cyAweCV4CgAAAAAA +YmVhbl9mc21bJXVdIDogc3RhdGUgU1RBUlQgKGNvdW50ID0gJXUpCgAAAAAAAAAAYmVhbl9mc21b +JXVdIDogZW50ZXJpbmcgc3RhdGUgV0FJVF9TSUdERVQKAAAAAAAAYmVhbl9mc21bJXVdIDogZW50 +ZXJpbmcgc3RhdGUgTlhQX0hBTkRMRQoAAAAAAAAAYmVhbl9mc21bJXVdIDogTUFDX1BPUlRfUENT +X0RFQlVHJWRfUk8gMHgleAoAAAAAYmVhbl9mc21bJXVdIDogZW50ZXJpbmcgc3RhdGUgV0FJVF9D +T01QTEVURQoAAAAAYmVhbl9mc21bJXVdIDogc3RhdGUgRE9ORQoAAAAAAABiZWFuX2ZzbVsldV0g +OiBmZWMgbG9jYWwgMHgleCwgcmVtb3RlIDB4JXgsIG5lZ290aWF0ZWQgMHgleAoAAAAAYmVhbl9m +c21bJXVdIDogc3RhdGUgUkVTVEFSVDEKAABiZWFuX2ZzbVsldV0gOiBzdGF0ZSBSRVNUQVJUMgoA +AGJlYW5fZnNtWyV1XSA6IHN0YXRlIFJFU1RBUlQzCgAAYmVhbl9mc21bJXVdIFRJTUVPVVQ7IHN0 +YXRlICV1IGV0aF9zdGF0dXMgJSN4IGJlYW5fc3RhdHVzICUjeCBQQ1NfREVCVUcwX1JPICUjeCBo +c3Mgc2lnZGV0ICUjeCByZXRyeV9jbnQgJXUKAAAAAGh3X21hY19saW5rX3N0YXR1c1sldV0gaW50 +X2NhdXNlIDB4JXgsIGxpbmtfc3RhdHVzIDB4JXgKAAAAAAAAAABwb3J0ICV1IGNoYW5naW5nIHNw +ZWVkIHRvIDFHCgAAAHBvcnQgJXUgbmVnb3RpYXRlZCB1bnN1cHBvcnRlZCBzcGVlZCAlI3gKAAAA +AAAAAGJlYW4vYWVjIGNvbXBsZXRlIChyZXRyeTogJXUpCgAAcG9ydFsldV0gcmVzZXR0aW5nIEtS +CgAAAAAAAAAAAABwb3J0ICV1IG5lZ290aWF0ZWQgdW5zdXBwb3J0ZWQgc3BlZWQKAAAAAAAAAAAA +AABwb3J0ICV1IG5lZ290aWF0ZWQgcHR5cGUgMHgleCwgdHhfbGFuZXMgMHgleCwgcnhfbGFuZXMg +MHgleCwgZmVjIDB4JXgKAAAAAAAAAAAAAGJlYW4vYWVjIGNvbXBsZXRlIChyZXRyeTogJXUpCgAA +TUM6IEdQTyAweCV4LCBSTE8gMHgleAoAAAAAAAAAAABwZm4gJXUgdmZuICV1IGNvbXBsZXRlIGlt +bWVkaWF0ZQoAAAAAAAAAAAAAAAAAAABiYWQgbWFpbGJveCBjbWQ6IHBmbiAweCV4IHZmbiAweCV4 +OyBvcGNvZGUgMHgleCA+IExBU1RDMkUgMHgleAoAbWFpbGJveCBjbWQgbm90IHlldCBzdXBwb3J0 +ZWQ6IHBmbiAweCV4IHZmbiAweCV4OyBvcGNvZGUgMHgleAoAAGJhZCBtYWlsYm94IGNtZDogcGZu +IDB4JXggdmZuIDB4JXg7IG9wY29kZSAweCV4IGlzIHZhbGlkIHBvc3QgZGV2aWNlIGluaXQgb25s +eQoAYmFkIG1haWxib3ggY21kOiBwZm4gMHgleCB2Zm4gMHgleDsgb3Bjb2RlIDB4JTAyeCByYW1h +c2sgMHgleCBjbWQgcmFtYXNrIDB4JXgKAABiYWQgbWFpbGJveCBjbWQ6IHBmbiAweCV4IHZmbiAw +eCV4OyBvcGNvZGUgMHglMDJ4IGxlbjE2IDB4JXggdmVyc3VzIGV4cGVjdGVkIGxlbjE2IDB4JXgK +AAAAAAAAAABpbnN1ZmZpY2llbnQgY2FwcyB0byBwcm9jZXNzIG1haWxib3ggY21kOiBwZm4gMHgl +eCB2Zm4gMHgleDsgcl9jYXBzIDB4JXggd3hfY2FwcyAweCV4IHJlcXVpcmVkIHJfY2FwcyAweCV4 +IHdfY2FwcyAweCV4CgAAAAAAAAAAAGluc3VmZmljaWVudCBjYXBzIHRvIHByb2Nlc3MgbWFpbGJv +eCBjbWQ6IHBmbiAweCV4IHZmbiAweCV4OyByX2NhcHMgMHgleCB3eF9jYXBzIDB4JXggcmVxdWly +ZWQgcl9jYXBzIDB4JXggd19jYXBzIDB4JXgKAAAAAAAAAAAATUM6IFRha2luZyBQSFkgb3V0IG9m +IHJlc2V0IChGUEdBKS4KAAAAAAAAAAAAAAAAZG93bmxvYWRfc3JhbTogZXJyb3IsIHJldCAlZAoA +AABkb3dubG9hZF90Y2FtOiBlcnJvciwgcmV0ICVkCgAAAGh3X3Bvd2VyX3ByZXA6IFZERD1OT05F +IGJ1dCBWQ1M9JWQKAAAAAAAAAAAAAAAAAGh3X3Bvd2VyX3ByZXA6IHVuc3VwcG9ydGVkIGV4dGVy +bmFsIGFkanVzdGFibGUgcG93ZXIgcmVndWxhdG9ycyBWREQ9JWQsIFZDUz0lZAoAaHdfcG93ZXJf +cHJlcDogdW5zdXBwb3J0ZWQgVkREPSVkCgAAAAAAAAAAAAAAAAAAaHdfcG93ZXJfcHJlcDogdW5z +dXBwb3J0ZWQgVkNTPSVkCgAAAAAAAAAAAAAAAAAAaHdfcG93ZXJfcHJlcDogaTJjIHdyaXRlIGVy +cm9yLCBWREQ9JWQscmV0PSVkCgAAaHdfcG93ZXJfcHJlcDogdW5zdXBwb3J0ZWQgVkREPSVkCgAA +AAAAAAAAAAAAAAAAaHdfcG93ZXJfcHJlcDogaTJjIHdyaXRlIGVycm9yLCBWQ1M9JWQscmV0PSVk +CgAAaHdfcG93ZXJfcHJlcDogdW5zdXBwb3J0ZWQgVkNTPSVkCgAAAAAAAAAAAAAAAAAAZXh0bWVt +IGNsayBtb2RlICVkLCBleHRtZW0gJXUsIHJlZl9jbGsgJXUKAAAAAAAAdXAgY2xrIG1vZGUgJWQs +IHJlZl9jbGsgJXUsIGRldi5jbGsudXAgJXUKAAAAAAAAY2xrIG1vZGUgJWQsIHJlZl9jbGsgJXUs +IGRldi5jbGsuY29yZSAldQoAAAAAAAAAVlBEIHJlZ2lvbiBpcyB0b28gc21hbGwgKFNFUkNGR19T +Ul9QRk5WUERTSVpFIDB4JXgpCgAAAAAAAAAAAAAAAGNmX3ByZXA6IGVycm9yLCByZXQgJWQKAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAACCAAABIAAAAAAAAAAAAAAAggAAAQAAAAAAAAAAAAAAAIIAAADAAAAAAAAAAAAAAACA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgIAAAAAAAAAAAAAA +AAAAAAAAgAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAABAAAAABAAAAAAAAAAAAAAAAMAAAAA +AAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAIAQAwAAAAAAAAgAAAAAAAAAAAIAAAAAAAAAAAAAAAAA +IAAAAAAAAAAAAAAAAAAAAAEAA4AAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAIAOAAAAAAAAA +AAAAAAAAABACgACAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AABAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAgAACgAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAA +AAAAAACAAAIAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAABAAMA +AAAAAAAAAAAAAAAAAAKDAAAAAAAAAAAAAAAAABACgAAAAAAAAAAAAAAAAAAwAAMAAAAABAAAAAAA +AAAAMAMDAAAAAAQAAAAAAAAAADAAAwAAAAAAAAgAAAAAAAAwAAMAAAAAAAAAAAAAAAAAMAWDAAAA +AAAACAAAAAAAADAFgwAAAAAAAAAAAAAAAAAwBIMAAAAAAAAIAAAAAAAAMASDAAAAAAAAAAAAAAAA +ADADAwAAAAAAAAgAAAAAAAAwAwMAAAAAAAAAAAAAAAAAOAMDAAAAAAAAAAAAAAAAADgFgwAAAAAA +AAAAAAAAAAA4BIMAAAAAAAAAAAAAAAAAOAADAAAAAAAAAAAAAAAAADQGggAAAAAAAAAAAAAAAAA8 +A4IAAAAAAAAAAAAAAAAAPAADAAAAAAAACAAAAAAAADwAAwAAAAAAAAAAAAAAAAA8BIMAAAAAAAAA +AAAAAAAAPAUDAAAAAAAAAAAAAAAAAD0EAwAAAAAAAAAAAAAAAAA8A4MAAAAAAAAAAAAAAAAALAAC +AAAAAAAAAAAAAAAAACwFggAAAAAAAAAAAAAAAAAsBQIAAAAAAAAAAAAAAAAAEAaAAAAAAAAAAAAA +AAAAABAGgoAAAAAAAAAAAAAAAACADoIAAAAAAAAAAAAAAAAAkAeCgAAAACAAAAAAAAAAAIAHggAA +AAAgAAAAAAAAAAAQBwKAAAAAAAAAAAAAAAAAEAcCgAAAAAAAAAAAAAAAABAHAoAAAAAAAAAAAAAA +AAAQBgIAAAAAAAAAAAAAAAAAEAYCgAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAABwIAAAAA +IAAAAAAAAAAAEBeDAAAAAAAACAAAAAAAABAXgwAAAAAAAAgAAAAAAAAQAAAAAAAAAAAAAAAAAAAA +EAYDgAAAAAAAAAAAAAAAAAAOAwAAAAAAAAAAAAAAAAAQBgNAAAAAAAAAAAAAAAAAEAYDAAAAAAAA +AAAAAAAAABAGAAAAAAAAAAAAAAAAAAAABgOAAAAAAAAAAAAAAAAAAAYDAAAAAAAAAAAAAAAAAAAO +AgAAAAAAAAAAAAAAAAAADgIAAAAAAAAAAAAAAAAAEAYCAAAAAAAAAAAAAAAAABAGAoAAAAAAAAAA +AAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC +AAAAAAAAAAAAAAAAABADAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////8AAAAA +AAAAIAAAAADAAAAAAAAAAAAAACAAAAAA4AAAAAAAAAAAAAAgAAAAASAAAAAAAAAAAAAAAAIAAAAA +AAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAEhAAAAAAAAAAAAAAAAAAEBIAAAAAAAAAAAAAAAAAAA +AgAAAAQABAAAAAAAAAAAAIFAAAAAAAAAAAAAAAAAAAaAAAAEAAAAAAAAAAAAAACAAEAAAAAAAAIA +AAAAAAAAgAAgAAAAAAACAAAAAAAACIAAAAAAAEAAAAACAAAAAAEAQAAAAAAAAAAAAAAAAAABAEIA +AAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAIQIAAAAAAAAAAAAAAAAAACDAIAAAAAAAAAAAAA +AAAAAIUCAAAABAAAAAAAAAAAAACAQgAAAAAAAAAAAAAAAACAgEIAQAAAAAAAAAAAAAAAgIBCAAAA +AAAAAAAAAAAAAAIAIgAAAAAAAAAAAAAAAAAAgEEAAAAAAAAAAAAAAAAAgAAhAAAAAAAAAAAAAAAA +AACAQYAAAAAAAAAAAAAAAACAgEGAAAAAAAAAAAAAAAAAAgAhAAAAAAAAAAAAAAAAAAAQIIAAAAAA +AAAAAAAAAAACJQCAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAIiABIAAAAAAAAAAAAAAAACI +hICAAAAAAAAAAAAAAAAACIgEgAAAAAAAAAAAAAAAAAiIBIAAAAAAAAAAAAAAAAAIogCAAAAAAAAA +AAAAAAAACKIAgAAAAAAAAAAAAAAAAAijAIAAAAAAAAAAAAAAAAAIowCAAAAAAAAAAAAAAAAACKSA +gAAAAAAAAAAAAAAAAAikgIAAAAAAAAAAAAAAAAAEpIDAAAAAAAAAAAAAAAAABKIAwAAAAAAAAAAA +AAAAAASjAMAAAAAAAAAAAAAAAAAEiATAAAAAAAAAAAAAAAAAAAkBgAAAAAAAAAAAAAAAAAIMAIAA +AAAAAAAAAAAAAAAAiATAAAAAAAAAAAAAAAAAAIgEgAAAAAAAAAAAAAAAAAILAIAAAAAAAAAAAAAA +AAAAioCAAAAAAAAAAAAAAAAAAAuAgAAAAAAAAAAAAAAAAACMAIAAAAAAAAAAAAAAAAACIBCAAAAA +AAAAAAAAAAAAAgoAgAAAAAAAAAAAAAAAAAIKgIAAAAAAAAAAAAAAAAAACQKAAAAAAAAAAAAAAAAA +AAEBAAAAAAAAAAAAAAAAAAABAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAA +AAAAAAAAAAAAgRAAAAAAAAAAAAAAAAAAAIEIAAAAAAAAAAAAAAAAAACBBAAAAAAAAAAAAAAAAABJ +gYAAAAAAAAAAAAAAAAAAQYEAAAAAAAAAAAAAAAAAgAABAAAAAAAAAAAAAAAAAAAAgYAAAAAAAAAA +AAAAAAAAgADAAAAAAAAAAAAAAAAAAIAAoAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAgYAA +AAAAAAAAAAAAAAAAAIGAgAAAAAAAAAAAAAAAAACJgIAAAAAAAAAAAAAAAAAAiYDAAAAAAAAAAAAA +AAAAAAGCAAAAAAAAAAAAAAAAAAIBgAAAAAAAAAAAAAAAAAACAYCAAAAAAAAAAAAAAAAAAEGBgAAA +AAAAAAAAAAAAAAIBgYAAAAAAAAAAAAAAAAACCYGAAAAAAAAAAAAAAAAAAgGBAAAAAAAAAAAAAAAA +ACAAAAAAAAAAAAAAAAAAAAAQAAACAQAAAAAAAAAAAAAAEAAAAgAAAAAAAAAAAAAAABAAAAAAAAAA +AAAAAAAAAAAAgADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////wAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAACACSAAAAAAAAAAGzABAAIAAAAAAIAJIAAAAAAAIAAbkAEoIgAAAAAAgA +kgAAAAAAAAABswAQACAAAAAAAAAAAAAAAAAAAAHLABAAIAAAAAAIAAAABQBEAcOAACsBEAAgAAAA +AAAAAAAAAAAAAAABywAQACAAAAAAAAAAAAAAAAAAAAHLABAAIAAAAAAAAAAAAAAAAAAAAcsAEAAg +AAAAAAAAAAAAAAAAAAABywAQACAAAAAAAAAAAAAAAAAAAAHLABAAIAAAAAAAAAAAAAAAAAAAAcsA +EAAgAAAAAAAAAAAAAAAAAAABywAQACAAAAAACAAAAAUARAHBgABLABAAIAAAAAAIAAAABQBEAcGA +AEsAEAAgAAAAAAAAAAAAAAAAAAABywAQACAAAAAAAAAAAAAAAAAAAAHLABAAIAAAAAAIAAAABQBE +AcGAAEsAEAAgAAAAAAAAAAAAAAAAAAABywAQACAAAAAAAAAAAAAAAAAAAAHLARMCIAAAAAAIRyAB +BAAAAVoAAWkDIBIiQAAAAAhHIAEEAAABWgABaQIjEiBAAAAACAAAAAUARAHBgABLARMCIAAAAAAA +AAAAAAAAAAAAAcsAEAAgAAAAAAhHIAEBBlDBWCAAyQIgEiJAAAAACAAAAAUARAHBgABLARMCIAAA +AAAIRyABAAZQIVrAAQkDIBIiQAAAAAgAAAAFAEQBwYAASwETAiAAAAAACAAAAAUARAHBgABLABAA +IAAAAAAIAAAABQBEAcGAAEsAEAAgAAAAAAgAAAAFAEQBwYAASwAQACAAAAAAAAAAAAAAAAAAAAHL +ABAAIAAAAAAIAAAABQBEAcGAAEsBEwIgAAAAAAgAAAAFAEQBwYAASwETAiAAAAAABcUSugFYQGmL +KkXxJKMSIAAAAAAFxRK6BVvAaYkqRbEkUxIgAAAAAA3FEqIFWEBpiypF8SSjEiAAAAAADcUSogFb +wGmJKkWxJFMSIAAAAAANxRKiBVhAaYsqRfEkoxIgAAAAAA3FEqIBW8BpiSpFsSRTEiAAAAAADcUS +ogVYQGmLKkXxJKMSIAAAAAANxRKiAVvAaYkqRbEkUxIgAAAAAAnEEKABAEBIAgBFsTRjEiAAAAAA +CcQQoAVYQEmBKkWxNWMSIAAAAAAJxBCgBVhASYEqRbE1YxIgAAAAAAHFELgBWEBJiypFsSVjEiAA +AAAAAKEQiAUAQKwIAAWpAVMSIAAAAAAJwBCQBVhAAYkqRUkBYxIgAAAAAAnAELgFWEABiEpF8QCj +EiAAAAAAAcAQuAVaQAGKSkWxAFMSIAAAAAABwBC4BVpAAYpKRbEAUxIgAAAAAAHAELgFWkABikpF +sQBTEiAAAAAAAcAQuAVaQAGKSkWxAFMSIAAAAAAJoBCQAVpAAYpKRbEAUxIgAAAAAAHAEIAFWEAB +iypFKQBjEiAAAAAAAcAQgAVYQAGLKkUpAGMSIAAAAAABwBCABVhAAYsqRSkAYxIgAAAAAAhHIAEE +AAABWAABaQMgEiBAAAAACIEAAAEAQqwDoAWpAVMSIAAAAAAIAAAAAABQIADAAOsAEAAgAAAAAAgA +AAABAFDAACAAqwAQACAAAAAACAAAAAAAUCAAwADrABAAIAAAAAAAgQAABQBCrMACBakAUxIgAAAA +AAoBQAAAAAAMAgABoQETUiEAAAAAAAAAAAAAAAAAAAHLABAAIAAAAAAAoRCIBQBArAoABIkAUxIg +AAAAAAgAAAAFAEQBw6AEaQGjEiEAAAAACAAAAAUARAHBgABLARMCIAAAAAAIAAAAAABQIADAAOsA +EAAgAAAAAAgAAAAFAEQBw4AB6wAQACAAAAAACAAAAAUARAHDgAHrABAAIAAAAAAAAAAAAAAAAAAA +AcsAEAAgAAAAAAAAAAAAAAAAAAABywAQACAAAAAACAAAAAAAUCAAwADrABAAIAAAAAABwBC4BVpA +AYpKRbEAUxIgAAAAAAAAAAAAAAAAAAABywETAiAAAAAAAAAAAAAAAAAAAAHLABAAIAAAAAAIAAAA +BQBEAcGAAEsAEAAgAAAAAAgAAAAAAFAgAMAA6wAQACAAAAAACAAAAAAAUCAAwADrABAAIAAAAAAI +AAAAAABQIADAAOsAEAAgAAAAAAgAAAAAAFAgAMAA6wAQACAAAAAACAAAAAEAUMAAIACrABAAIAAA +AAAJxRMiAUpEaQpARZElYxIgAAAAAAHAEQABUkQAg6pFqQBjEiAAAAAACcARAAVSRABDqkWpAGMS +IAAAAAABwBCAAVpEAYKKRakAUxIgAAAAAA3AAAAFWEBhiSpF8QGjEiAAAAAAAAAAAAAAAAAAAAHL +ABAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAgAMAAEAAAAAAAAAQETEiAAAAAAAEcwAAEBkAFbgAQBAGAyIEAAAAAARzAABQGA +AVuABAEAYDIgQAAAAAADAAABAFAFWYAEAQBjEiNAAAAAAAMAAAQAAAVZgAQBAGMSI0AAAAAAAAAA +AAAAAAAAAAEBExIgAAAAAAAgUAAEAAAAAgAAAQATEiMAAAAACGAgAIQAAAAAAAADABAAIAAAAAAA +oCAAgAAAAAAAmAEBExKgAAAAAAhgAAAEAEIAwgICAQFjEmEAAAAACcAAAAUhwAGCBkQBABMSIAAA +AAAIAGAABAAAAAIAAAABEAAgAAAAAAgAYAAEAAAAAgAAAgAQACAAAAAAAAAAAAAAAAACAAACABAA +IAAAAAAMCBSABQUAAAOApgEQUxNgAAAAAACAAAABAEIAwgIEAQBTEmAAAAAACEAAAAUAUAAAIAQB +AFMSIwAAAAAAoAAAAAAAAAAAAAEBExIgAAAAAAwAAAAFQgABgEUEAQNgEiAAAAAAAAAAAAAAAAAC +AAADARAkIAAAAAAAIFAABAAAAAAAAAEBExIgAAAAAAhgIACEAAAAAAAAAwAQACAAAAAAAKAgAIAA +AAACAAABARMSoAAAAAAIYAAABABCAMICAgEAYxJgAAAAAAgAYAAEAAAAAgAAAgAQACAAAAAACACA +ABQAAAAAAAABABMmOAAAAAAIAIAAFAAAAAIAAAMAEAAAAAAAAAgAgAAUAAAAAAAAAQATJjgAAAAA +CACAABQAAAACAAADABAAAAAAAAAMAAAABbIAAYJNBAECAAIgAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJwAAAAlpGAgSLAgECYxIgAAAAAAHAAAACGkACBIsCAQJj +EiAAAAAADAh0gEIEgAAqAC4BMHMSIAAAAAAMCHSARAAAACoAIAExExIgAAAAAAgCEKAEAAAAAACA +AQATEiAAAAAACAIQoAQAAAAAAIABABMSIAAAAAAECHQARQCAAAOARAExYxIgAAAAAAXIFAABBIAA +AyBOATBzEiAAAAAAAcgQgAVaQAICSkQBM2MSIAAAAAANyHQARlpAAYBKRAEwUxJgAAAAAAXIdABC +GkgBgEpEATBTEmAAAAAACEcAAAQAAAACAAABABASIAAAAAAIRwAABAAAAAAAAAECIBIgAAAAAABH +IAECA5DhW4AEAQBgEiJAAAAAAEcgAQIDkOFbgAQBAGASIkAAAAAARyABAgOQ4VuABAEAYBIiQAAA +AAgAIAECAEIAAaBEAQBjEmAAAAAACAAgAQIAQgABoEQBAGMSYAAAAAAIACABAgBCAAGgRAEAYxJg +AAAAAAAAIAGFQQAAgmBEAQHjEmAAAAAACAAgAYVBAAACYEQBAeMSYAAAAAAJwCABhVJAAIGgRAEA +YxJgAAAAAAAAAAAGAEIAAaBEAQBjEmAAAAAACAAAAAVBAACCYEQBAeMSYAAAAAAAAAAABUEAAABg +RAEA0xJgAAAAAAHAAAAFUkAAgaBEAQBjEmAAAAAACACgAYQAAAAAAEQBABMSYAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAEXAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFtnbG9iYWxdCnJzc19nbGJf +Y29uZmlnX21vZGU9YmFzaWN2aXJ0dWFsCnJzc19nbGJfY29uZmlnX29wdGlvbnM9dG5sbWFwZW4s +aGFzaHRvZXBsaXR6LHRubGFsbGxrcApwbF90aW1lb3V0X3ZhbHVlPTIwMApyZWdbMHgxMDA4XT0w +eDQwODEwLzB4MjFjNzAKcmVnWzB4MTAwY109MHgyMjIyMjIyMgpyZWdbMHgxMGEwXT0weDAxMDQw +ODEwCnJlZ1sweDEwNDRdPTQwOTYKcmVnWzB4MTA0OF09NjU1MzYKcmVnWzB4MTA0Y109MTUzNgpy +ZWdbMHgxMDUwXT05MDI0CnJlZ1sweDEwNTRdPTkyMTYKcmVnWzB4MTA1OF09MjA0OApyZWdbMHgx +MDVjXT0xMjgKcmVnWzB4MTA2MF09ODE5MgpyZWdbMHgxMDY0XT0xNjM4NApzZ2VfdGltZXJfdmFs +dWU9NSwxMCwyMCw1MCwxMDAsMjAwCnJlZ1sweDEwYzRdPTB4MjAwMDAwMDAvMHgyMDAwMDAwMApy +ZWdbMHg3ZDA0XT0weDAwMDEwMDAwLzB4MDAwMTAwMDAKcmVnWzB4N2RjMF09MHgwZTJmODg0OQp0 +c2NoX3RpY2tzPTEwMDAwMCwxMDAwMCwxMDAwLDEwCmZpbHRlck1vZGU9c3J2cnNyYW0sZnJhZ21l +bnRhdGlvbixtcHNoaXR0eXBlLHByb3RvY29sLHZsYW4scG9ydCxmY29lCmZpbHRlck1hc2s9cHJv +dG9jb2wKdHBfcG1yeD0zMAp0cF9wbXJ4X3BhZ2VzaXplPTY0Swp0cF9ucnhjaD0wCnRwX3BtdHg9 +NTAKdHBfcG10eF9wYWdlc2l6ZT02NEsKdHBfbnR4Y2g9MAp0cF9tdHVzPTg4LDI1Niw1MTIsNTc2 +LDgwOCwxMDI0LDEyODAsMTQ4OCwxNTAwLDIwMDIsMjA0OCw0MDk2LDQzNTIsODE5Miw5MDAwLDk2 +MDAKcmVnWzB4N2QwNF09MHgwMDAxMDAwOC8weDAwMDEwMDA4CnJlZ1sweDdkMDhdPTB4MDAwMDA4 +MDAvMHgwMDAwMDgwMApyZWdbMHg3ZDQ4XT0weDAwMDAwMDAwLzB4MDAwMDA0MDAKcmVnWzB4N2Q2 +MF09MHgwNjAwMDAwMC8weDA3MDAwMDAwCnJlZ1sweDE5YzA0XT0weDAwMDAwMDAwLzB4MDA0NDAw +MDAKcmVnWzB4MTljMjhdPTB4MDA4MDAwMDAvMHgwMWYwMDAwMApyZWdbMHg4ZGMwXT0weDAwMDAw +MTA0LzB4MDAwMDAxMDQKcmVnWzB4MTkyNWNdPTB4MDAwMDQxYzAvMHgwMDAwMzFjMApbZnVuY3Rp +b24iMCJdCm52Zj0xNgp3eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT0xCm5pcWZsaW50PTgKbmV0 +aGN0cmw9OApuZXE9MTYKbmV4YWN0Zj04CmNtYXNrPWFsbApwbWFzaz0weDEKW2Z1bmN0aW9uIjEi +XQpudmY9MTYKd3hfY2Fwcz1hbGwKcl9jYXBzPWFsbApudmk9MQpuaXFmbGludD04Cm5ldGhjdHJs +PTgKbmVxPTE2Cm5leGFjdGY9OApjbWFzaz1hbGwKcG1hc2s9MHgyCltmdW5jdGlvbiIyIl0KbnZm +PTE2Cnd4X2NhcHM9YWxsCnJfY2Fwcz1hbGwKbnZpPTEKbmlxZmxpbnQ9OApuZXRoY3RybD04Cm5l +cT0xNgpuZXhhY3RmPTgKY21hc2s9YWxsCnBtYXNrPTB4NApbZnVuY3Rpb24iMyJdCm52Zj0xNgp3 +eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT0xCm5pcWZsaW50PTgKbmV0aGN0cmw9OApuZXE9MTYK +bmV4YWN0Zj04CmNtYXNrPWFsbApwbWFzaz0weDgKW2Z1bmN0aW9uIjQiXQp3eF9jYXBzPWFsbApy +X2NhcHM9YWxsCm52aT0yOApuaXFmbGludD0yMDIKbmV0aGN0cmw9MTE2Cm5lcT0yNTYKbnFwY3E9 +MTIyODgKbmV4YWN0Zj00MApucmF3Zj0yCmNtYXNrPWFsbApwbWFzaz1hbGwKbmV0aG9mbGQ9MTAy +NApuY3J5cHRvX2xvb2thc2lkZT0xNgpuY2xpcD0zMjAKbmZpbHRlcj00OTYKbnNlcnZlcj00OTYK +bmhhc2g9MTIyODgKbmhwZmlsdGVyPTAKcHJvdG9jb2w9bmljX3ZtLG9mbGQscmRkcCxyZG1hYyxp +c2NzaV9pbml0aWF0b3JfcGR1LGlzY3NpX3RhcmdldF9wZHUsaXNjc2lfdDEwZGlmLHRsc2tleXMs +Y3J5cHRvX2xvb2thc2lkZQp0cF9sMnQ9MzA3Mgp0cF9kZHA9Mgp0cF9kZHBfaXNjc2k9Mgp0cF90 +bHNfa2V5PTMKdHBfdGxzX214cnhzaXplPTE3NDA4CnRwX3N0YWc9Mgp0cF9wYmw9NQp0cF9ycT03 +CnRwX3NycT0xMjgKW2Z1bmN0aW9uIjUiXQp3eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT00Cm5p +cWZsaW50PTM0Cm5ldGhjdHJsPTMyCm5lcT02NApuZXhhY3RmPTE2CmNtYXNrPWFsbApwbWFzaz1h +bGwKbnNlcnZlcj0xNgpuaGFzaD0yMDQ4CnRwX2wydD0xMDIwCm5jbGlwPTY0CnByb3RvY29sPWlz +Y3NpX2luaXRpYXRvcl9mb2ZsZAp0cF9kZHBfaXNjc2k9Mgppc2NzaV9udGFzaz0yMDQ4CmlzY3Np +X25zZXNzPTIwNDgKaXNjc2lfbmNvbm5fcGVyX3Nlc3Npb249MQppc2NzaV9uaW5pdGlhdG9yX2lu +c3RhbmNlPTY0CltmdW5jdGlvbiI2Il0Kd3hfY2Fwcz1hbGwKcl9jYXBzPWFsbApudmk9NApuaXFm +bGludD0zNApuZXRoY3RybD0zMgpuZXE9NjYKbmV4YWN0Zj0zMgpjbWFzaz1hbGwKcG1hc2s9YWxs +Cm5oYXNoPTIwNDgKdHBfbDJ0PTQKcHJvdG9jb2w9ZmNvZV9pbml0aWF0b3IKdHBfZGRwPTIKZmNv +ZV9uZmNmPTE2CmZjb2VfbnZucD0zMgpmY29lX25zc249MTAyNApbZnVuY3Rpb24iMTAyMyJdCnd4 +X2NhcHM9YWxsCnJfY2Fwcz1hbGwKbnZpPTQKY21hc2s9YWxsCnBtYXNrPWFsbApuZXhhY3RmPTgK +bmZpbHRlcj0xNgpbZnVuY3Rpb24iMC8qIl0Kd3hfY2Fwcz0weDgyCnJfY2Fwcz0weDg2Cm52aT0x +Cm5pcWZsaW50PTQKbmV0aGN0cmw9MQpuZXE9NApuZXhhY3RmPTQKY21hc2s9YWxsCnBtYXNrPTB4 +MQpbZnVuY3Rpb24iMS8qIl0Kd3hfY2Fwcz0weDgyCnJfY2Fwcz0weDg2Cm52aT0xCm5pcWZsaW50 +PTQKbmV0aGN0cmw9MQpuZXE9NApuZXhhY3RmPTQKY21hc2s9YWxsCnBtYXNrPTB4MgpbZnVuY3Rp +b24iMi8qIl0Kd3hfY2Fwcz0weDgyCnJfY2Fwcz0weDg2Cm52aT0xCm5pcWZsaW50PTQKbmV0aGN0 +cmw9MQpuZXE9NApuZXhhY3RmPTQKY21hc2s9YWxsCnBtYXNrPTB4MQpbZnVuY3Rpb24iMy8qIl0K +d3hfY2Fwcz0weDgyCnJfY2Fwcz0weDg2Cm52aT0xCm5pcWZsaW50PTQKbmV0aGN0cmw9MQpuZXE9 +NApuZXhhY3RmPTQKY21hc2s9YWxsCnBtYXNrPTB4MgpbcG9ydCIwIl0KZGNiPXBwcCxkY2J4Cmh3 +bT02MApsd209MTUKZHdtPTMwCmRjYl9hcHBfdGx2WzBdPTB4ODkwNixldGhlcnR5cGUsMwpkY2Jf +YXBwX3RsdlsxXT0weDg5MTQsZXRoZXJ0eXBlLDMKZGNiX2FwcF90bHZbMl09MzI2MCxzb2NrZXRu +dW0sNQpmbGFncz1hbl9kaXMKW3BvcnQiMSJdCmRjYj1wcHAsZGNieApod209NjAKbHdtPTE1CmR3 +bT0zMApkY2JfYXBwX3RsdlswXT0weDg5MDYsZXRoZXJ0eXBlLDMKZGNiX2FwcF90bHZbMV09MHg4 +OTE0LGV0aGVydHlwZSwzCmRjYl9hcHBfdGx2WzJdPTMyNjAsc29ja2V0bnVtLDUKZmxhZ3M9YW5f +ZGlzCltmaW5pXQp2ZXJzaW9uPTB4MTQyNTAwMWMKY2hlY2tzdW09MHg3YTUwNjQ2YQoAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbZ2xvYmFsXQpyc3NfZ2xiX2NvbmZpZ19t +b2RlPWJhc2ljdmlydHVhbApyc3NfZ2xiX2NvbmZpZ19vcHRpb25zPXRubG1hcGVuLGhhc2h0b2Vw +bGl0eix0bmxhbGxsa3AKcGxfdGltZW91dF92YWx1ZT0xMDAwCnJlZ1sweDEwMDhdPTB4NDA4MTAv +MHgyMWM3MApyZWdbMHgxMDBjXT0weDIyMjIyMjIyCnJlZ1sweDEwYTBdPTB4MDEwNDA4MTAKcmVn +WzB4MTA0NF09NDA5NgpyZWdbMHgxMDQ4XT02NTUzNgpyZWdbMHgxMDRjXT0xNTM2CnJlZ1sweDEw +NTBdPTkwMjQKcmVnWzB4MTA1NF09OTIxNgpyZWdbMHgxMDU4XT0yMDQ4CnJlZ1sweDEwNWNdPTEy +OApyZWdbMHgxMDYwXT04MTkyCnJlZ1sweDEwNjRdPTE2Mzg0CnJlZ1sweDEwYTRdPTB4YTAwMGEw +MDAvMHhmMDAwZjAwMApyZWdbMHgxMGE4XT0weDQwMjAwMC8weDQwMjAwMApzZ2VfdGltZXJfdmFs +dWU9NSwxMCwyMCw1MCwxMDAsMjAwCnJlZ1sweDEwYzRdPTB4MjAwMDAwMDAvMHgyMDAwMDAwMApy +ZWdbMHg3ZDA0XT0weDAwMDEwMDAwLzB4MDAwMTAwMDAKcmVnWzB4N2RjMF09MHgwZTJmODg0OQp0 +c2NoX3RpY2tzPTEwMDAsMTAwLDEwLDEKZmlsdGVyTW9kZT1mY29lbWFzayxzcnZyc3JhbSxmcmFn +bWVudGF0aW9uLG1wc2hpdHR5cGUscHJvdG9jb2wsdmxhbixwb3J0LGZjb2UKZmlsdGVyTWFzaz1w +cm90b2NvbCxmY29lCnRwX3Btcng9MzAKdHBfcG1yeF9wYWdlc2l6ZT02NEsKdHBfbnJ4Y2g9MAp0 +cF9wbXR4PTUwCnRwX3BtdHhfcGFnZXNpemU9NjRLCnRwX250eGNoPTAKdHBfbXR1cz04OCwyNTYs +NTEyLDU3Niw4MDgsMTAyNCwxMjgwLDE0ODgsMTUwMCwyMDAyLDIwNDgsNDA5Niw0MzUyLDgxOTIs +OTAwMCw5NjAwCnJlZ1sweDdkMDRdPTB4MDAwMTAwMDgvMHgwMDAxMDAwOApyZWdbMHg3ZDA4XT0w +eDAwMDAwODAwLzB4MDAwMDA4MDAKcmVnWzB4N2Q0OF09MHgwMDAwMDAwMC8weDAwMDAwNDAwCnJl +Z1sweDdkNjBdPTB4MDYwMDAwMDAvMHgwNzAwMDAwMApyZWdbMHgxOWMwNF09MHgwMDQwMDAwMC8w +eDAwNDQwMDAwCnJlZ1sweDE5YzI4XT0weDAwODAwMDAwLzB4MDFmMDAwMDAKcmVnWzB4OGRjMF09 +MHgwMDAwMDEwNC8weDAwMDAwMTA0CnJlZ1sweDE5MjVjXT0weDAxMDAzNDAwLzB4MDEwMDM0MDAK +W2Z1bmN0aW9uIjAiXQp3eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT0yOApuaXFmbGludD0xNzAK +bmV0aGN0cmw9OTYKbmVxPTI1MgpuZXhhY3RmPTQwCm5yYXdmPTIKY21hc2s9YWxsCnBtYXNrPWFs +bApuZXRob2ZsZD0xMDI0Cm5jcnlwdG9fbG9va2FzaWRlPTMyCm5jbGlwPTMyCm5maWx0ZXI9NDgK +bnNlcnZlcj00OApuaGFzaD0yMDQ4Cm5ocGZpbHRlcj0wCnByb3RvY29sPW5pY192bSxvZmxkLHJk +ZHAscmRtYWMsaXNjc2lfaW5pdGlhdG9yX3BkdSxpc2NzaV90YXJnZXRfcGR1LGlzY3NpX3QxMGRp +Zix0bHNrZXlzLGNyeXB0b19sb29rYXNpZGUKdHBfbDJ0PTMwNzIKdHBfZGRwPTIKdHBfZGRwX2lz +Y3NpPTIKdHBfdGxzX2tleT0zCnRwX3N0YWc9Mgp0cF9wYmw9NQp0cF9ycT03CnRwX3NycT0xMjgK +W2Z1bmN0aW9uIjEiXQp3eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT00Cm5pcWZsaW50PTM0Cm5l +dGhjdHJsPTMyCm5lcT02NApuZXhhY3RmPTE2CmNtYXNrPWFsbApwbWFzaz1hbGwKbnNlcnZlcj0x +NgpuaGFzaD0yMDQ4CnRwX2wydD0xMDIwCnByb3RvY29sPWlzY3NpX2luaXRpYXRvcl9mb2ZsZAp0 +cF9kZHBfaXNjc2k9Mgppc2NzaV9udGFzaz0yMDQ4CmlzY3NpX25zZXNzPTIwNDgKaXNjc2lfbmNv +bm5fcGVyX3Nlc3Npb249MQppc2NzaV9uaW5pdGlhdG9yX2luc3RhbmNlPTY0CltmdW5jdGlvbiIx +MDIzIl0Kd3hfY2Fwcz1hbGwKcl9jYXBzPWFsbApudmk9NApjbWFzaz1hbGwKcG1hc2s9YWxsCm5l +eGFjdGY9OApuZmlsdGVyPTE2CltmdW5jdGlvbiIwLyoiXQp3eF9jYXBzPTB4ODIKcl9jYXBzPTB4 +ODYKbnZpPTEKbmlxZmxpbnQ9NApuZXRoY3RybD0yCm5lcT00Cm5leGFjdGY9NApjbWFzaz1hbGwK +cG1hc2s9MHgxCltmdW5jdGlvbiIxLyoiXQp3eF9jYXBzPTB4ODIKcl9jYXBzPTB4ODYKbnZpPTEK +bmlxZmxpbnQ9NApuZXRoY3RybD0yCm5lcT00Cm5leGFjdGY9NApjbWFzaz1hbGwKcG1hc2s9MHgy +Cltwb3J0IjAiXQpkY2I9cHBwLGRjYngsYjJiCmh3bT0zMApsd209MTUKZHdtPTMwCmRjYl9hcHBf +dGx2WzBdPTB4ODkwNixldGhlcnR5cGUsMwpkY2JfYXBwX3RsdlsxXT0weDg5MTQsZXRoZXJ0eXBl +LDMKZGNiX2FwcF90bHZbMl09MzI2MCxzb2NrZXRudW0sNQpbcG9ydCIxIl0KZGNiPXBwcCxkY2J4 +LGIyYgpod209MzAKbHdtPTE1CmR3bT0zMApkY2JfYXBwX3RsdlswXT0weDg5MDYsZXRoZXJ0eXBl +LDMKZGNiX2FwcF90bHZbMV09MHg4OTE0LGV0aGVydHlwZSwzCmRjYl9hcHBfdGx2WzJdPTMyNjAs +c29ja2V0bnVtLDUKW2ZpbmldCnZlcnNpb249MHgxNDI1MDAxZApjaGVja3N1bT0weDM2MWI5NTZi +CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +==== diff --git a/sys/dev/cxgbe/firmware/t6fw_cfg.txt b/sys/dev/cxgbe/firmware/t6fw_cfg.txt index 0027ee3..c21c288 100644 --- a/sys/dev/cxgbe/firmware/t6fw_cfg.txt +++ b/sys/dev/cxgbe/firmware/t6fw_cfg.txt @@ -1,63 +1,12 @@ -# Chelsio T6 Factory Default configuration file. +# Firmware configuration file. # -# Copyright (C) 2014-2016 Chelsio Communications. All rights reserved. -# -# DO NOT MODIFY THIS FILE UNDER ANY CIRCUMSTANCES. MODIFICATION OF THIS FILE -# WILL RESULT IN A NON-FUNCTIONAL ADAPTER AND MAY RESULT IN PHYSICAL DAMAGE -# TO ADAPTERS. - +# Global limits (some are hardware limits, others are due to the firmware). +# nvi = 128 virtual interfaces +# niqflint = 1023 ingress queues with freelists and/or interrupts +# nethctrl = 64K Ethernet or ctrl egress queues +# neq = 64K egress queues of all kinds, including freelists +# nexactf = 512 MPS TCAM entries, can oversubscribe. -# This file provides the default, power-on configuration for 2-port T6-based -# adapters shipped from the factory. These defaults are designed to address -# the needs of the vast majority of Terminator customers. The basic idea is to -# have a default configuration which allows a customer to plug a Terminator -# adapter in and have it work regardless of OS, driver or application except in -# the most unusual and/or demanding customer applications. -# -# Many of the Terminator resources which are described by this configuration -# are finite. This requires balancing the configuration/operation needs of -# device drivers across OSes and a large number of customer application. -# -# Some of the more important resources to allocate and their constaints are: -# 1. Virtual Interfaces: 256. -# 2. Ingress Queues with Free Lists: 1024. -# 3. Egress Queues: 128K. -# 4. MSI-X Vectors: 1088. -# 5. Multi-Port Support (MPS) TCAM: 336 entries to support MAC destination -# address matching on Ingress Packets. -# -# Some of the important OS/Driver resource needs are: -# 6. Some OS Drivers will manage all resources through a single Physical -# Function (currently PF4 but it could be any Physical Function). -# 7. Some OS Drivers will manage different ports and functions (NIC, -# storage, etc.) on different Physical Functions. For example, NIC -# functions for ports 0-1 on PF0-1, FCoE on PF4, iSCSI on PF5, etc. -# -# Some of the customer application needs which need to be accommodated: -# 8. Some customers will want to support large CPU count systems with -# good scaling. Thus, we'll need to accommodate a number of -# Ingress Queues and MSI-X Vectors to allow up to some number of CPUs -# to be involved per port and per application function. For example, -# in the case where all ports and application functions will be -# managed via a single Unified PF and we want to accommodate scaling up -# to 8 CPUs, we would want: -# -# 2 ports * -# 3 application functions (NIC, FCoE, iSCSI) per port * -# 16 Ingress Queue/MSI-X Vectors per application function -# -# for a total of 96 Ingress Queues and MSI-X Vectors on the Unified PF. -# (Plus a few for Firmware Event Queues, etc.) -# -# 9. Some customers will want to use PCI-E SR-IOV Capability to allow Virtual -# Machines to directly access T6 functionality via SR-IOV Virtual Functions -# and "PCI Device Passthrough" -- this is especially true for the NIC -# application functionality. -# - - -# Global configuration settings. -# [global] rss_glb_config_mode = basicvirtual rss_glb_config_options = tnlmapen,hashtoeplitz,tnlalllkp @@ -65,75 +14,29 @@ # PL_TIMEOUT register pl_timeout_value = 200 # the timeout value in units of us - # The following Scatter Gather Engine (SGE) settings assume a 4KB Host - # Page Size and a 64B L1 Cache Line Size. It programs the - # EgrStatusPageSize and IngPadBoundary to 64B and the PktShift to 2. - # If a Master PF Driver finds itself on a machine with different - # parameters, then the Master PF Driver is responsible for initializing - # these parameters to appropriate values. - # - # Notes: - # 1. The Free List Buffer Sizes below are raw and the firmware will - # round them up to the Ingress Padding Boundary. - # 2. The SGE Timer Values below are expressed below in microseconds. - # The firmware will convert these values to Core Clock Ticks when - # it processes the configuration parameters. - # - reg[0x1008] = 0x40810/0x21c70 # SGE_CONTROL - reg[0x100c] = 0x22222222 # SGE_HOST_PAGE_SIZE - reg[0x10a0] = 0x01040810 # SGE_INGRESS_RX_THRESHOLD - reg[0x1044] = 4096 # SGE_FL_BUFFER_SIZE0 - reg[0x1048] = 65536 # SGE_FL_BUFFER_SIZE1 - reg[0x104c] = 1536 # SGE_FL_BUFFER_SIZE2 - reg[0x1050] = 9024 # SGE_FL_BUFFER_SIZE3 - reg[0x1054] = 9216 # SGE_FL_BUFFER_SIZE4 - reg[0x1058] = 2048 # SGE_FL_BUFFER_SIZE5 - reg[0x105c] = 128 # SGE_FL_BUFFER_SIZE6 - reg[0x1060] = 8192 # SGE_FL_BUFFER_SIZE7 - reg[0x1064] = 16384 # SGE_FL_BUFFER_SIZE8 - reg[0x10a4] = 0xa000a000/0xf000f000 # SGE_DBFIFO_STATUS - reg[0x10a8] = 0x402000/0x402000 # SGE_DOORBELL_CONTROL - sge_timer_value = 5, 10, 20, 50, 100, 200 # SGE_TIMER_VALUE* in usecs - reg[0x10c4] = 0x20000000/0x20000000 # GK_CONTROL, enable 5th thread + sge_timer_value = 1, 5, 10, 50, 100, 200 # SGE_TIMER_VALUE* in usecs - # enable TP_OUT_CONFIG.IPIDSPLITMODE - reg[0x7d04] = 0x00010000/0x00010000 + reg[0x10c4] = 0x20000000/0x20000000 # GK_CONTROL, enable 5th thread reg[0x7dc0] = 0x0e2f8849 # TP_SHIFT_CNT #Tick granularities in kbps tsch_ticks = 100000, 10000, 1000, 10 - # TP_VLAN_PRI_MAP to select filter tuples and enable ServerSram - # filter control: compact, fcoemask - # server sram : srvrsram - # filter tuples : fragmentation, mpshittype, macmatch, ethertype, - # protocol, tos, vlan, vnic_id, port, fcoe - # valid filterModes are described the Terminator 5 Data Book - filterMode = fcoemask, srvrsram, fragmentation, mpshittype, protocol, vlan, port, fcoe + filterMode = fragmentation, mpshittype, protocol, vlan, port, fcoe + filterMask = protocol - # filter tuples enforced in LE active region (equal to or subset of filterMode) - filterMask = protocol, fcoe - - # Percentage of dynamic memory (in either the EDRAM or external MEM) - # to use for TP RX payload - tp_pmrx = 30 - - # TP RX payload page size + tp_pmrx = 36, 512 tp_pmrx_pagesize = 64K - # TP number of RX channels - tp_nrxch = 0 # 0 (auto) = 1 + # TP number of RX channels (0 = auto) + tp_nrxch = 0 - # Percentage of dynamic memory (in either the EDRAM or external MEM) - # to use for TP TX payload - tp_pmtx = 50 - - # TP TX payload page size + tp_pmtx = 46, 512 tp_pmtx_pagesize = 64K - # TP number of TX channels - tp_ntxch = 0 # 0 (auto) = equal number of ports + # TP number of TX channels (0 = auto) + tp_ntxch = 0 # TP OFLD MTUs tp_mtus = 88, 256, 512, 576, 808, 1024, 1280, 1488, 1500, 2002, 2048, 4096, 4352, 8192, 9000, 9600 @@ -150,6 +53,9 @@ # TP_PARA_REG0 reg[0x7d60] = 0x06000000/0x07000000 # set InitCWND to 6 + # cluster, lan, or wan. + tp_tcptuning = lan + # LE_DB_CONFIG reg[0x19c04] = 0x00000000/0x00440000 # LE Server SRAM disabled # LE IPv4 compression disabled @@ -179,301 +85,117 @@ # MC configuration #mc_mode_brc[0] = 1 # mc0 - 1: enable BRC, 0: enable RBC -# Some "definitions" to make the rest of this a bit more readable. We support -# 4 ports, 3 functions (NIC, FCoE and iSCSI), scaling up to 8 "CPU Queue Sets" -# per function per port ... -# -# NMSIX = 1088 # available MSI-X Vectors -# NVI = 256 # available Virtual Interfaces -# NMPSTCAM = 336 # MPS TCAM entries -# -# NPORTS = 2 # ports -# NCPUS = 16 # CPUs we want to support scalably -# NFUNCS = 3 # functions per port (NIC, FCoE, iSCSI) - -# Breakdown of Virtual Interface/Queue/Interrupt resources for the "Unified -# PF" which many OS Drivers will use to manage most or all functions. -# -# Each Ingress Queue can use one MSI-X interrupt but some Ingress Queues can -# use Forwarded Interrupt Ingress Queues. For these latter, an Ingress Queue -# would be created and the Queue ID of a Forwarded Interrupt Ingress Queue -# will be specified as the "Ingress Queue Asynchronous Destination Index." -# Thus, the number of MSI-X Vectors assigned to the Unified PF will be less -# than or equal to the number of Ingress Queues ... -# -# NVI_NIC = 4 # NIC access to NPORTS -# NFLIQ_NIC = 32 # NIC Ingress Queues with Free Lists -# NETHCTRL_NIC = 32 # NIC Ethernet Control/TX Queues -# NEQ_NIC = 64 # NIC Egress Queues (FL, ETHCTRL/TX) -# NMPSTCAM_NIC = 16 # NIC MPS TCAM Entries (NPORTS*4) -# NMSIX_NIC = 32 # NIC MSI-X Interrupt Vectors (FLIQ) -# -# NVI_OFLD = 0 # Offload uses NIC function to access ports -# NFLIQ_OFLD = 16 # Offload Ingress Queues with Free Lists -# NETHCTRL_OFLD = 0 # Offload Ethernet Control/TX Queues -# NEQ_OFLD = 16 # Offload Egress Queues (FL) -# NMPSTCAM_OFLD = 0 # Offload MPS TCAM Entries (uses NIC's) -# NMSIX_OFLD = 16 # Offload MSI-X Interrupt Vectors (FLIQ) -# -# NVI_RDMA = 0 # RDMA uses NIC function to access ports -# NFLIQ_RDMA = 4 # RDMA Ingress Queues with Free Lists -# NETHCTRL_RDMA = 0 # RDMA Ethernet Control/TX Queues -# NEQ_RDMA = 4 # RDMA Egress Queues (FL) -# NMPSTCAM_RDMA = 0 # RDMA MPS TCAM Entries (uses NIC's) -# NMSIX_RDMA = 4 # RDMA MSI-X Interrupt Vectors (FLIQ) -# -# NEQ_WD = 128 # Wire Direct TX Queues and FLs -# NETHCTRL_WD = 64 # Wire Direct TX Queues -# NFLIQ_WD = 64 ` # Wire Direct Ingress Queues with Free Lists -# -# NVI_ISCSI = 4 # ISCSI access to NPORTS -# NFLIQ_ISCSI = 4 # ISCSI Ingress Queues with Free Lists -# NETHCTRL_ISCSI = 0 # ISCSI Ethernet Control/TX Queues -# NEQ_ISCSI = 4 # ISCSI Egress Queues (FL) -# NMPSTCAM_ISCSI = 4 # ISCSI MPS TCAM Entries (NPORTS) -# NMSIX_ISCSI = 4 # ISCSI MSI-X Interrupt Vectors (FLIQ) -# -# NVI_FCOE = 4 # FCOE access to NPORTS -# NFLIQ_FCOE = 34 # FCOE Ingress Queues with Free Lists -# NETHCTRL_FCOE = 32 # FCOE Ethernet Control/TX Queues -# NEQ_FCOE = 66 # FCOE Egress Queues (FL) -# NMPSTCAM_FCOE = 32 # FCOE MPS TCAM Entries (NPORTS) -# NMSIX_FCOE = 34 # FCOE MSI-X Interrupt Vectors (FLIQ) - -# Two extra Ingress Queues per function for Firmware Events and Forwarded -# Interrupts, and two extra interrupts per function for Firmware Events (or a -# Forwarded Interrupt Queue) and General Interrupts per function. -# -# NFLIQ_EXTRA = 6 # "extra" Ingress Queues 2*NFUNCS (Firmware and -# # Forwarded Interrupts -# NMSIX_EXTRA = 6 # extra interrupts 2*NFUNCS (Firmware and -# # General Interrupts - -# Microsoft HyperV resources. The HyperV Virtual Ingress Queues will have -# their interrupts forwarded to another set of Forwarded Interrupt Queues. -# -# NVI_HYPERV = 16 # VMs we want to support -# NVIIQ_HYPERV = 2 # Virtual Ingress Queues with Free Lists per VM -# NFLIQ_HYPERV = 40 # VIQs + NCPUS Forwarded Interrupt Queues -# NEQ_HYPERV = 32 # VIQs Free Lists -# NMPSTCAM_HYPERV = 16 # MPS TCAM Entries (NVI_HYPERV) -# NMSIX_HYPERV = 8 # NCPUS Forwarded Interrupt Queues - -# Adding all of the above Unified PF resource needs together: (NIC + OFLD + -# RDMA + ISCSI + FCOE + EXTRA + HYPERV) -# -# NVI_UNIFIED = 28 -# NFLIQ_UNIFIED = 106 -# NETHCTRL_UNIFIED = 32 -# NEQ_UNIFIED = 124 -# NMPSTCAM_UNIFIED = 40 -# -# The sum of all the MSI-X resources above is 74 MSI-X Vectors but we'll round -# that up to 128 to make sure the Unified PF doesn't run out of resources. -# -# NMSIX_UNIFIED = 128 -# -# The Storage PFs could need up to NPORTS*NCPUS + NMSIX_EXTRA MSI-X Vectors -# which is 34 but they're probably safe with 32. -# -# NMSIX_STORAGE = 32 - -# Note: The UnifiedPF is PF4 which doesn't have any Virtual Functions -# associated with it. Thus, the MSI-X Vector allocations we give to the -# UnifiedPF aren't inherited by any Virtual Functions. As a result we can -# provision many more Virtual Functions than we can if the UnifiedPF were -# one of PF0-3. -# - -# All of the below PCI-E parameters are actually stored in various *_init.txt -# files. We include them below essentially as comments. -# -# For PF0-3 we assign 8 vectors each for NIC Ingress Queues of the associated -# ports 0-3. -# -# For PF4, the Unified PF, we give it an MSI-X Table Size as outlined above. -# -# For PF5-6 we assign enough MSI-X Vectors to support FCoE and iSCSI -# storage applications across all four possible ports. -# -# Additionally, since the UnifiedPF isn't one of the per-port Physical -# Functions, we give the UnifiedPF and the PF0-3 Physical Functions -# different PCI Device IDs which will allow Unified and Per-Port Drivers -# to directly select the type of Physical Function to which they wish to be -# attached. -# -# Note that the actual values used for the PCI-E Intelectual Property will be -# 1 less than those below since that's the way it "counts" things. For -# readability, we use the number we actually mean ... -# -# PF0_INT = 8 # NCPUS -# PF1_INT = 8 # NCPUS -# PF0_3_INT = 32 # PF0_INT + PF1_INT + PF2_INT + PF3_INT -# -# PF4_INT = 128 # NMSIX_UNIFIED -# PF5_INT = 32 # NMSIX_STORAGE -# PF6_INT = 32 # NMSIX_STORAGE -# PF7_INT = 0 # Nothing Assigned -# PF4_7_INT = 192 # PF4_INT + PF5_INT + PF6_INT + PF7_INT -# -# PF0_7_INT = 224 # PF0_3_INT + PF4_7_INT -# -# With the above we can get 17 VFs/PF0-3 (limited by 336 MPS TCAM entries) -# but we'll lower that to 16 to make our total 64 and a nice power of 2 ... -# -# NVF = 16 - - -# For those OSes which manage different ports on different PFs, we need -# only enough resources to support a single port's NIC application functions -# on PF0-3. The below assumes that we're only doing NIC with NCPUS "Queue -# Sets" for ports 0-3. The FCoE and iSCSI functions for such OSes will be -# managed on the "storage PFs" (see below). -# +# PFs 0-3. These get 8 MSI/8 MSI-X vectors each. VFs are supported by +# these 4 PFs only. [function "0"] - nvf = 16 # NVF on this function - wx_caps = all # write/execute permissions for all commands - r_caps = all # read permissions for all commands - nvi = 1 # 1 port - niqflint = 8 # NCPUS "Queue Sets" - nethctrl = 8 # NCPUS "Queue Sets" - neq = 16 # niqflint + nethctrl Egress Queues - nexactf = 8 # number of exact MPSTCAM MAC filters - cmask = all # access to all channels - pmask = 0x1 # access to only one port - + nvf = 4 + wx_caps = all + r_caps = all + nvi = 2 + rssnvi = 2 + niqflint = 4 + nethctrl = 4 + neq = 8 + nexactf = 4 + cmask = all + pmask = 0x1 [function "1"] - nvf = 16 # NVF on this function - wx_caps = all # write/execute permissions for all commands - r_caps = all # read permissions for all commands - nvi = 1 # 1 port - niqflint = 8 # NCPUS "Queue Sets" - nethctrl = 8 # NCPUS "Queue Sets" - neq = 16 # niqflint + nethctrl Egress Queues - nexactf = 8 # number of exact MPSTCAM MAC filters - cmask = all # access to all channels - pmask = 0x2 # access to only one port + nvf = 4 + wx_caps = all + r_caps = all + nvi = 2 + rssnvi = 2 + niqflint = 4 + nethctrl = 4 + neq = 8 + nexactf = 4 + cmask = all + pmask = 0x2 [function "2"] - nvf = 16 # NVF on this function - wx_caps = all # write/execute permissions for all commands - r_caps = all # read permissions for all commands - nvi = 1 # 1 port - niqflint = 8 # NCPUS "Queue Sets" - nethctrl = 8 # NCPUS "Queue Sets" - neq = 16 # niqflint + nethctrl Egress Queues - nexactf = 8 # number of exact MPSTCAM MAC filters - cmask = all # access to all channels - pmask = 0x4 # access to only one port + nvf = 4 + wx_caps = all + r_caps = all + nvi = 2 + rssnvi = 2 + niqflint = 4 + nethctrl = 4 + neq = 8 + nexactf = 4 + cmask = all + pmask = 0x4 [function "3"] - nvf = 16 # NVF on this function - wx_caps = all # write/execute permissions for all commands - r_caps = all # read permissions for all commands - nvi = 1 # 1 port - niqflint = 8 # NCPUS "Queue Sets" - nethctrl = 8 # NCPUS "Queue Sets" - neq = 16 # niqflint + nethctrl Egress Queues - nexactf = 8 # number of exact MPSTCAM MAC filters - cmask = all # access to all channels - pmask = 0x8 # access to only one port - - -# Some OS Drivers manage all application functions for all ports via PF4. -# Thus we need to provide a large number of resources here. For Egress -# Queues we need to account for both TX Queues as well as Free List Queues -# (because the host is responsible for producing Free List Buffers for the -# hardware to consume). -# + nvf = 4 + wx_caps = all + r_caps = all + nvi = 2 + rssnvi = 2 + niqflint = 4 + nethctrl = 4 + neq = 8 + nexactf = 4 + cmask = all + pmask = 0x8 + +# PF4 is the resource-rich PF that the bus/nexus driver attaches to. +# It gets 32 MSI/128 MSI-X vectors. [function "4"] - wx_caps = all # write/execute permissions for all commands - r_caps = all # read permissions for all commands - nvi = 28 # NVI_UNIFIED - niqflint = 202 # NFLIQ_UNIFIED + NLFIQ_WD + NFLIQ_CRYPTO (32) - nethctrl = 100 # NETHCTRL_UNIFIED + NETHCTRL_WD - neq = 256 # NEQ_UNIFIED + NEQ_WD - nqpcq = 12288 - nexactf = 40 # NMPSTCAM_UNIFIED - cmask = all # access to all channels - pmask = all # access to all four ports ... - nethofld = 1024 # number of user mode ethernet flow contexts - ncrypto_lookaside = 16 # Number of lookaside flow contexts - nclip = 320 # number of clip region entries - nfilter = 496 # number of filter region entries - nserver = 496 # number of server region entries - nhash = 12288 # number of hash region entries - nhpfilter = 0 # number of high priority filter region entries - protocol = nic_vm, ofld, rddp, rdmac, iscsi_initiator_pdu, iscsi_target_pdu, iscsi_t10dif, tlskeys, crypto_lookaside - tp_l2t = 3072 + wx_caps = all + r_caps = all + nvi = 32 + rssnvi = 8 + niqflint = 512 + nethctrl = 1024 + neq = 2048 + nqpcq = 8192 + nexactf = 456 + cmask = all + pmask = all + nclip = 320 + + # TCAM has 6K cells; each region must start at a multiple of 128 cell. + # Each entry in these categories takes 2 cells each. nhash will use the + # TCAM iff there is room left (that is, the rest don't add up to 3072). + nfilter = 2032 + nserver = 512 + nhpfilter = 0 + nhash = 16384 + protocol = ofld, rddp, rdmac, iscsi_initiator_pdu, iscsi_target_pdu, iscsi_t10dif + tp_l2t = 4096 tp_ddp = 2 tp_ddp_iscsi = 2 - tp_tls_key = 3 - tp_tls_mxrxsize = 17408 # 16384 + 1024, governs max rx data, pm max xfer len, rx coalesce sizes tp_stag = 2 tp_pbl = 5 tp_rq = 7 tp_srq = 128 -# We have FCoE and iSCSI storage functions on PF5 and PF6 each of which may -# need to have Virtual Interfaces on each of the four ports with up to NCPUS -# "Queue Sets" each. -# +# PF5 is the SCSI Controller PF. It gets 32 MSI/40 MSI-X vectors. +# Not used right now. [function "5"] - wx_caps = all # write/execute permissions for all commands - r_caps = all # read permissions for all commands - nvi = 4 # NPORTS - niqflint = 34 # NPORTS*NCPUS + NMSIX_EXTRA - nethctrl = 32 # NPORTS*NCPUS - neq = 64 # NPORTS*NCPUS * 2 (FL, ETHCTRL/TX) - nexactf = 16 # (NPORTS *(no of snmc grp + 1 hw mac) + 1 anmc grp)) rounded to 16. - cmask = all # access to all channels - pmask = all # access to all four ports ... - nserver = 16 - nhash = 2048 - tp_l2t = 1020 - nclip = 64 - protocol = iscsi_initiator_fofld - tp_ddp_iscsi = 2 - iscsi_ntask = 2048 - iscsi_nsess = 2048 - iscsi_nconn_per_session = 1 - iscsi_ninitiator_instance = 64 - + nvi = 1 + rssnvi = 0 +# PF6 is the FCoE Controller PF. It gets 32 MSI/40 MSI-X vectors. +# Not used right now. [function "6"] - wx_caps = all # write/execute permissions for all commands - r_caps = all # read permissions for all commands - nvi = 4 # NPORTS - niqflint = 34 # NPORTS*NCPUS + NMSIX_EXTRA - nethctrl = 32 # NPORTS*NCPUS - neq = 66 # NPORTS*NCPUS * 2 (FL, ETHCTRL/TX) + 2 (EXTRA) - nexactf = 32 # NPORTS + adding 28 exact entries for FCoE - # which is OK since < MIN(SUM PF0..3, PF4) - # and we never load PF0..3 and PF4 concurrently - cmask = all # access to all channels - pmask = all # access to all four ports ... - nhash = 2048 - tp_l2t = 4 - protocol = fcoe_initiator - tp_ddp = 2 - fcoe_nfcf = 16 - fcoe_nvnp = 32 - fcoe_nssn = 1024 - + nvi = 1 + rssnvi = 0 # The following function, 1023, is not an actual PCIE function but is used to # configure and reserve firmware internal resources that come from the global # resource pool. # [function "1023"] - wx_caps = all # write/execute permissions for all commands - r_caps = all # read permissions for all commands - nvi = 4 # NVI_UNIFIED - cmask = all # access to all channels - pmask = all # access to all four ports ... - nexactf = 8 # NPORTS + DCBX + - nfilter = 16 # number of filter region entries + wx_caps = all + r_caps = all + nvi = 4 + rssnvi = 0 + cmask = all + pmask = all + nexactf = 8 + nfilter = 16 # For Virtual functions, we only allow NIC functionality and we only allow @@ -482,107 +204,81 @@ # and GTS registers, the number of Ingress and Egress Queues must be a power # of 2. # -[function "0/*"] # NVF - wx_caps = 0x82 # DMAQ | VF - r_caps = 0x86 # DMAQ | VF | PORT - nvi = 1 # 1 port - niqflint = 4 # 2 "Queue Sets" + NXIQ - nethctrl = 2 # 2 "Queue Sets" - neq = 4 # 2 "Queue Sets" * 2 - nexactf = 4 - cmask = all # access to all channels - pmask = 0x1 # access to only one port ... - - -[function "1/*"] # NVF - wx_caps = 0x82 # DMAQ | VF - r_caps = 0x86 # DMAQ | VF | PORT - nvi = 1 # 1 port - niqflint = 4 # 2 "Queue Sets" + NXIQ - nethctrl = 2 # 2 "Queue Sets" - neq = 4 # 2 "Queue Sets" * 2 - nexactf = 4 - cmask = all # access to all channels - pmask = 0x2 # access to only one port ... - -[function "2/*"] # NVF - wx_caps = 0x82 # DMAQ | VF - r_caps = 0x86 # DMAQ | VF | PORT - nvi = 1 # 1 port - niqflint = 4 # 2 "Queue Sets" + NXIQ - nethctrl = 2 # 2 "Queue Sets" - neq = 4 # 2 "Queue Sets" * 2 - nexactf = 4 - cmask = all # access to all channels - pmask = 0x1 # access to only one port ... - - -[function "3/*"] # NVF - wx_caps = 0x82 # DMAQ | VF - r_caps = 0x86 # DMAQ | VF | PORT - nvi = 1 # 1 port - niqflint = 4 # 2 "Queue Sets" + NXIQ - nethctrl = 2 # 2 "Queue Sets" - neq = 4 # 2 "Queue Sets" * 2 - nexactf = 4 - cmask = all # access to all channels - pmask = 0x2 # access to only one port ... - -# MPS features a 196608 bytes ingress buffer that is used for ingress buffering -# for packets from the wire as well as the loopback path of the L2 switch. The -# folling params control how the buffer memory is distributed and the L2 flow -# control settings: -# -# bg_mem: %-age of mem to use for port/buffer group -# lpbk_mem: %-age of port/bg mem to use for loopback -# hwm: high watermark; bytes available when starting to send pause -# frames (in units of 0.1 MTU) -# lwm: low watermark; bytes remaining when sending 'unpause' frame -# (in inuits of 0.1 MTU) -# dwm: minimum delta between high and low watermark (in units of 100 -# Bytes) -# +[function "0/*"] + wx_caps = 0x82 + r_caps = 0x86 + nvi = 1 + rssnvi = 1 + niqflint = 2 + nethctrl = 2 + neq = 4 + nexactf = 2 + cmask = all + pmask = 0x1 + +[function "1/*"] + wx_caps = 0x82 + r_caps = 0x86 + nvi = 1 + rssnvi = 1 + niqflint = 2 + nethctrl = 2 + neq = 4 + nexactf = 2 + cmask = all + pmask = 0x2 + +[function "2/*"] + wx_caps = 0x82 + r_caps = 0x86 + nvi = 1 + rssnvi = 1 + niqflint = 2 + nethctrl = 2 + neq = 4 + nexactf = 2 + cmask = all + pmask = 0x1 + +[function "3/*"] + wx_caps = 0x82 + r_caps = 0x86 + nvi = 1 + rssnvi = 1 + niqflint = 2 + nethctrl = 2 + neq = 4 + nexactf = 2 + cmask = all + pmask = 0x2 + +# MPS has 192K buffer space for ingress packets from the wire as well as +# loopback path of the L2 switch. [port "0"] - dcb = ppp, dcbx # configure for DCB PPP and enable DCBX offload + dcb = none #bg_mem = 25 #lpbk_mem = 25 hwm = 60 lwm = 15 dwm = 30 - dcb_app_tlv[0] = 0x8906, ethertype, 3 - dcb_app_tlv[1] = 0x8914, ethertype, 3 - dcb_app_tlv[2] = 3260, socketnum, 5 #aec_retry_cnt = 4 flags = an_dis - fec = none # FEC type none/rs/firecode [port "1"] - dcb = ppp, dcbx + dcb = none #bg_mem = 25 #lpbk_mem = 25 hwm = 60 lwm = 15 dwm = 30 - dcb_app_tlv[0] = 0x8906, ethertype, 3 - dcb_app_tlv[1] = 0x8914, ethertype, 3 - dcb_app_tlv[2] = 3260, socketnum, 5 #aec_retry_cnt = 4 flags = an_dis - fec = none # FEC type none/rs/firecode [fini] - version = 0x01000024 - checksum = 0x36cebfcb - -# Total resources used by above allocations: -# Virtual Interfaces: 104 -# Ingress Queues/w Free Lists and Interrupts: 526 -# Egress Queues: 702 -# MPS TCAM Entries: 336 -# MSI-X Vectors: 736 -# Virtual Functions: 64 + version = 0x1 + checksum = 0xd4ef7f0 # # $FreeBSD$ # diff --git a/sys/dev/cxgbe/firmware/t6fw_cfg_uwire.txt b/sys/dev/cxgbe/firmware/t6fw_cfg_uwire.txt index 0027ee3..65174f1 100644 --- a/sys/dev/cxgbe/firmware/t6fw_cfg_uwire.txt +++ b/sys/dev/cxgbe/firmware/t6fw_cfg_uwire.txt @@ -91,8 +91,7 @@ reg[0x105c] = 128 # SGE_FL_BUFFER_SIZE6 reg[0x1060] = 8192 # SGE_FL_BUFFER_SIZE7 reg[0x1064] = 16384 # SGE_FL_BUFFER_SIZE8 - reg[0x10a4] = 0xa000a000/0xf000f000 # SGE_DBFIFO_STATUS - reg[0x10a8] = 0x402000/0x402000 # SGE_DOORBELL_CONTROL + sge_timer_value = 5, 10, 20, 50, 100, 200 # SGE_TIMER_VALUE* in usecs reg[0x10c4] = 0x20000000/0x20000000 # GK_CONTROL, enable 5th thread @@ -110,10 +109,10 @@ # filter tuples : fragmentation, mpshittype, macmatch, ethertype, # protocol, tos, vlan, vnic_id, port, fcoe # valid filterModes are described the Terminator 5 Data Book - filterMode = fcoemask, srvrsram, fragmentation, mpshittype, protocol, vlan, port, fcoe + filterMode = srvrsram, fragmentation, mpshittype, protocol, vlan, port, fcoe # filter tuples enforced in LE active region (equal to or subset of filterMode) - filterMask = protocol, fcoe + filterMask = protocol # Percentage of dynamic memory (in either the EDRAM or external MEM) # to use for TP RX payload @@ -395,6 +394,7 @@ neq = 256 # NEQ_UNIFIED + NEQ_WD nqpcq = 12288 nexactf = 40 # NMPSTCAM_UNIFIED + nrawf = 2 cmask = all # access to all channels pmask = all # access to all four ports ... nethofld = 1024 # number of user mode ethernet flow contexts @@ -554,7 +554,6 @@ dcb_app_tlv[2] = 3260, socketnum, 5 #aec_retry_cnt = 4 flags = an_dis - fec = none # FEC type none/rs/firecode [port "1"] @@ -569,12 +568,11 @@ dcb_app_tlv[2] = 3260, socketnum, 5 #aec_retry_cnt = 4 flags = an_dis - fec = none # FEC type none/rs/firecode [fini] - version = 0x01000024 - checksum = 0x36cebfcb + version = 0x01000025 + checksum = 0xb23e8983 # Total resources used by above allocations: # Virtual Interfaces: 104 diff --git a/sys/dev/cxgbe/t4_main.c b/sys/dev/cxgbe/t4_main.c index 2a8305d..d976313 100644 --- a/sys/dev/cxgbe/t4_main.c +++ b/sys/dev/cxgbe/t4_main.c @@ -348,6 +348,24 @@ static int t4_pause_settings = PAUSE_TX | PAUSE_RX; TUNABLE_INT("hw.cxgbe.pause_settings", &t4_pause_settings); /* + * Forward Error Correction settings (bit 0, 1, 2 = FEC_RS, FEC_BASER_RS, + * FEC_RESERVED respectively). + * -1 to run with the firmware default. + * 0 to disable FEC. + */ +static int t4_fec = -1; +TUNABLE_INT("hw.cxgbe.fec", &t4_fec); + +/* + * Link autonegotiation. + * -1 to run with the firmware default. + * 0 to disable. + * 1 to enable. + */ +static int t4_autoneg = -1; +TUNABLE_INT("hw.cxgbe.autoneg", &t4_autoneg); + +/* * Firmware auto-install by driver during attach (0, 1, 2 = prohibited, allowed, * encouraged respectively). */ @@ -482,6 +500,8 @@ static int sysctl_holdoff_pktc_idx(SYSCTL_HANDLER_ARGS); static int sysctl_qsize_rxq(SYSCTL_HANDLER_ARGS); static int sysctl_qsize_txq(SYSCTL_HANDLER_ARGS); static int sysctl_pause_settings(SYSCTL_HANDLER_ARGS); +static int sysctl_fec(SYSCTL_HANDLER_ARGS); +static int sysctl_autoneg(SYSCTL_HANDLER_ARGS); static int sysctl_handle_t4_reg64(SYSCTL_HANDLER_ARGS); static int sysctl_temperature(SYSCTL_HANDLER_ARGS); #ifdef SBUF_DRAIN @@ -910,6 +930,7 @@ t4_attach(device_t dev) n10g = n1g = 0; for_each_port(sc, i) { struct port_info *pi; + struct link_config *lc; pi = malloc(sizeof(*pi), M_CXGBE, M_ZERO | M_WAITOK); sc->port[i] = pi; @@ -938,12 +959,19 @@ t4_attach(device_t dev) goto done; } - pi->link_cfg.requested_fc &= ~(PAUSE_TX | PAUSE_RX); - pi->link_cfg.requested_fc |= t4_pause_settings; - pi->link_cfg.fc &= ~(PAUSE_TX | PAUSE_RX); - pi->link_cfg.fc |= t4_pause_settings; + lc = &pi->link_cfg; + lc->requested_fc &= ~(PAUSE_TX | PAUSE_RX); + lc->requested_fc |= t4_pause_settings; + if (t4_fec != -1) { + lc->requested_fec = t4_fec & + G_FW_PORT_CAP_FEC(lc->supported); + } + if (lc->supported & FW_PORT_CAP_ANEG && t4_autoneg != -1) { + lc->autoneg = t4_autoneg ? AUTONEG_ENABLE : + AUTONEG_DISABLE; + } - rc = -t4_link_l1cfg(sc, sc->mbox, pi->tx_chan, &pi->link_cfg); + rc = -t4_link_l1cfg(sc, sc->mbox, pi->tx_chan, lc); if (rc != 0) { device_printf(dev, "port %d l1cfg failed: %d\n", i, rc); free(pi->vi, M_CXGBE); @@ -966,8 +994,6 @@ t4_attach(device_t dev) n1g++; } - pi->linkdnrc = -1; - pi->dev = device_add_child(dev, sc->names->ifnet_name, -1); if (pi->dev == NULL) { device_printf(dev, @@ -3867,8 +3893,8 @@ cxgbe_uninit_synchronized(struct vi_info *vi) pi->link_cfg.link_ok = 0; pi->link_cfg.speed = 0; - pi->linkdnrc = -1; - t4_os_link_changed(sc, pi->port_id, 0, -1); + pi->link_cfg.link_down_rc = 255; + t4_os_link_changed(sc, pi->port_id, 0); return (0); } @@ -5124,8 +5150,14 @@ cxgbe_sysctls(struct port_info *pi) } SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "pause_settings", - CTLTYPE_STRING | CTLFLAG_RW, pi, PAUSE_TX, sysctl_pause_settings, - "A", "PAUSE settings (bit 0 = rx_pause, bit 1 = tx_pause)"); + CTLTYPE_STRING | CTLFLAG_RW, pi, 0, sysctl_pause_settings, "A", + "PAUSE settings (bit 0 = rx_pause, bit 1 = tx_pause)"); + SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "fec", + CTLTYPE_STRING | CTLFLAG_RW, pi, 0, sysctl_fec, "A", + "Forward Error Correction (bit 0 = RS, bit 1 = BASER_RS)"); + SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "autoneg", + CTLTYPE_INT | CTLFLAG_RW, pi, 0, sysctl_autoneg, "I", + "autonegotiation (-1 = not supported)"); SYSCTL_ADD_INT(ctx, children, OID_AUTO, "max_speed", CTLFLAG_RD, NULL, port_top_speed(pi), "max speed (in Gbps)"); @@ -5586,12 +5618,9 @@ sysctl_pause_settings(SYSCTL_HANDLER_ARGS) if (rc) return (rc); if ((lc->requested_fc & (PAUSE_TX | PAUSE_RX)) != n) { - int link_ok = lc->link_ok; - lc->requested_fc &= ~(PAUSE_TX | PAUSE_RX); lc->requested_fc |= n; rc = -t4_link_l1cfg(sc, sc->mbox, pi->tx_chan, lc); - lc->link_ok = link_ok; /* restore */ } end_synchronized_op(sc, 0); } @@ -5600,6 +5629,97 @@ sysctl_pause_settings(SYSCTL_HANDLER_ARGS) } static int +sysctl_fec(SYSCTL_HANDLER_ARGS) +{ + struct port_info *pi = arg1; + struct adapter *sc = pi->adapter; + struct link_config *lc = &pi->link_cfg; + int rc; + + if (req->newptr == NULL) { + struct sbuf *sb; + static char *bits = "\20\1RS\2BASER_RS\3RESERVED"; + + rc = sysctl_wire_old_buffer(req, 0); + if (rc != 0) + return(rc); + + sb = sbuf_new_for_sysctl(NULL, NULL, 128, req); + if (sb == NULL) + return (ENOMEM); + + sbuf_printf(sb, "%b", lc->fec & M_FW_PORT_CAP_FEC, bits); + rc = sbuf_finish(sb); + sbuf_delete(sb); + } else { + char s[2]; + int n; + + s[0] = '0' + (lc->requested_fec & M_FW_PORT_CAP_FEC); + s[1] = 0; + + rc = sysctl_handle_string(oidp, s, sizeof(s), req); + if (rc != 0) + return(rc); + + if (s[1] != 0) + return (EINVAL); + if (s[0] < '0' || s[0] > '9') + return (EINVAL); /* not a number */ + n = s[0] - '0'; + if (n & ~M_FW_PORT_CAP_FEC) + return (EINVAL); /* some other bit is set too */ + + rc = begin_synchronized_op(sc, &pi->vi[0], SLEEP_OK | INTR_OK, + "t4fec"); + if (rc) + return (rc); + if ((lc->requested_fec & M_FW_PORT_CAP_FEC) != n) { + lc->requested_fec = n & + G_FW_PORT_CAP_FEC(lc->supported); + rc = -t4_link_l1cfg(sc, sc->mbox, pi->tx_chan, lc); + } + end_synchronized_op(sc, 0); + } + + return (rc); +} + +static int +sysctl_autoneg(SYSCTL_HANDLER_ARGS) +{ + struct port_info *pi = arg1; + struct adapter *sc = pi->adapter; + struct link_config *lc = &pi->link_cfg; + int rc, val, old; + + if (lc->supported & FW_PORT_CAP_ANEG) + val = lc->autoneg == AUTONEG_ENABLE ? 1 : 0; + else + val = -1; + rc = sysctl_handle_int(oidp, &val, 0, req); + if (rc != 0 || req->newptr == NULL) + return (rc); + if ((lc->supported & FW_PORT_CAP_ANEG) == 0) + return (ENOTSUP); + + val = val ? AUTONEG_ENABLE : AUTONEG_DISABLE; + if (lc->autoneg == val) + return (0); /* no change */ + + rc = begin_synchronized_op(sc, &pi->vi[0], SLEEP_OK | INTR_OK, + "t4aneg"); + if (rc) + return (rc); + old = lc->autoneg; + lc->autoneg = val; + rc = -t4_link_l1cfg(sc, sc->mbox, pi->tx_chan, lc); + if (rc != 0) + lc->autoneg = old; + return (rc); +} + +static int sysctl_handle_t4_reg64(SYSCTL_HANDLER_ARGS) { struct adapter *sc = arg1; @@ -6344,6 +6464,7 @@ sysctl_linkdnrc(SYSCTL_HANDLER_ARGS) { int rc = 0; struct port_info *pi = arg1; + struct link_config *lc = &pi->link_cfg; struct sbuf *sb; rc = sysctl_wire_old_buffer(req, 0); @@ -6353,10 +6474,10 @@ sysctl_linkdnrc(SYSCTL_HANDLER_ARGS) if (sb == NULL) return (ENOMEM); - if (pi->linkdnrc < 0) + if (lc->link_ok || lc->link_down_rc == 255) sbuf_printf(sb, "n/a"); else - sbuf_printf(sb, "%s", t4_link_down_rc_str(pi->linkdnrc)); + sbuf_printf(sb, "%s", t4_link_down_rc_str(lc->link_down_rc)); rc = sbuf_finish(sb); sbuf_delete(sb); @@ -7070,25 +7191,23 @@ sysctl_tids(SYSCTL_HANDLER_ARGS) } if (t->ntids) { + sbuf_printf(sb, "TID range: "); if (t4_read_reg(sc, A_LE_DB_CONFIG) & F_HASHEN) { - uint32_t b; + uint32_t b, hb; - if (chip_id(sc) <= CHELSIO_T5) + if (chip_id(sc) <= CHELSIO_T5) { b = t4_read_reg(sc, A_LE_DB_SERVER_INDEX) / 4; - else - b = t4_read_reg(sc, A_LE_DB_SRVR_START_INDEX); - - if (b) { - sbuf_printf(sb, "TID range: 0-%u, %u-%u", b - 1, - t4_read_reg(sc, A_LE_DB_TID_HASHBASE) / 4, - t->ntids - 1); + hb = t4_read_reg(sc, A_LE_DB_TID_HASHBASE) / 4; } else { - sbuf_printf(sb, "TID range: %u-%u", - t4_read_reg(sc, A_LE_DB_TID_HASHBASE) / 4, - t->ntids - 1); + b = t4_read_reg(sc, A_LE_DB_SRVR_START_INDEX); + hb = t4_read_reg(sc, A_T6_LE_DB_HASH_TID_BASE); } + + if (b) + sbuf_printf(sb, "0-%u, ", b - 1); + sbuf_printf(sb, "%u-%u", hb, t->ntids - 1); } else - sbuf_printf(sb, "TID range: 0-%u", t->ntids - 1); + sbuf_printf(sb, "0-%u", t->ntids - 1); sbuf_printf(sb, ", in use: %u\n", atomic_load_acq_int(&t->tids_in_use)); } @@ -8826,19 +8945,13 @@ t4_os_portmod_changed(const struct adapter *sc, int idx) } void -t4_os_link_changed(struct adapter *sc, int idx, int link_stat, int reason) +t4_os_link_changed(struct adapter *sc, int idx, int link_stat) { struct port_info *pi = sc->port[idx]; struct vi_info *vi; struct ifnet *ifp; int v; - if (link_stat) - pi->linkdnrc = -1; - else { - if (reason >= 0) - pi->linkdnrc = reason; - } for_each_vi(pi, v, vi) { ifp = vi->ifp; if (ifp == NULL) diff --git a/sys/dev/cxgbe/t4_sge.c b/sys/dev/cxgbe/t4_sge.c index 9be9acb..9152d9f 100644 --- a/sys/dev/cxgbe/t4_sge.c +++ b/sys/dev/cxgbe/t4_sge.c @@ -1799,7 +1799,7 @@ t4_eth_rx(struct sge_iq *iq, const struct rss_header *rss, struct mbuf *m0) M_HASHTYPE_SET(m0, M_HASHTYPE_OPAQUE); m0->m_pkthdr.flowid = be32toh(rss->hash_val); - if (cpl->csum_calc && !cpl->err_vec) { + if (cpl->csum_calc && !(cpl->err_vec & sc->params.tp.err_vec_mask)) { if (ifp->if_capenable & IFCAP_RXCSUM && cpl->l2info & htobe32(F_RXF_IP)) { m0->m_pkthdr.csum_flags = (CSUM_IP_CHECKED | diff --git a/sys/dev/cxgbe/t4_vf.c b/sys/dev/cxgbe/t4_vf.c index 4492eba..705b206 100644 --- a/sys/dev/cxgbe/t4_vf.c +++ b/sys/dev/cxgbe/t4_vf.c @@ -670,8 +670,6 @@ t4vf_attach(device_t dev) n1g++; } - pi->linkdnrc = -1; - pi->dev = device_add_child(dev, sc->names->vf_ifnet_name, -1); if (pi->dev == NULL) { device_printf(dev, diff --git a/sys/dev/firewire/firewire.c b/sys/dev/firewire/firewire.c index 0a6180a..662199c 100644 --- a/sys/dev/firewire/firewire.c +++ b/sys/dev/firewire/firewire.c @@ -1126,6 +1126,7 @@ fw_xfer_alloc(struct malloc_type *type) return xfer; xfer->malloc = type; + xfer->tl = -1; return xfer; } diff --git a/sys/dev/firewire/fwohci.c b/sys/dev/firewire/fwohci.c index ae753d5..214f8f8 100644 --- a/sys/dev/firewire/fwohci.c +++ b/sys/dev/firewire/fwohci.c @@ -55,6 +55,7 @@ #include <sys/kdb.h> #include <machine/bus.h> +#include <machine/md_var.h> #if defined(__DragonFly__) || __FreeBSD_version < 500000 #include <machine/clock.h> /* for DELAY() */ @@ -202,6 +203,7 @@ static void fwohci_task_dma(void *, int); #define OHCI_PREQLO 0x118 #define OHCI_PREQLOCLR 0x11c #define OHCI_PREQUPPER 0x120 +#define OHCI_PREQUPPER_MAX 0xffff0000 #define OHCI_SID_BUF 0x64 #define OHCI_SID_CNT 0x68 @@ -869,7 +871,7 @@ fwohci_execute_db2(void *arg, bus_dma_segment_t *segs, int nseg, static void fwohci_start(struct fwohci_softc *sc, struct fwohci_dbch *dbch) { - int i, s; + int i; int tcode, hdr_len, pl_off; int fsegment = -1; uint32_t off; @@ -895,7 +897,6 @@ fwohci_start(struct fwohci_softc *sc, struct fwohci_dbch *dbch) if (dbch->flags & FWOHCI_DBCH_FULL) return; - s = splfw(); db_tr = dbch->top; txloop: xfer = STAILQ_FIRST(&dbch->xferq.q); @@ -1045,7 +1046,6 @@ kick: } dbch->top = db_tr; - splx(s); return; } @@ -1841,6 +1841,7 @@ static void fwohci_intr_core(struct fwohci_softc *sc, uint32_t stat, int count) { struct firewire_comm *fc = (struct firewire_comm *)sc; + uintmax_t prequpper; uint32_t node_id, plen; FW_GLOCK_ASSERT(fc); @@ -1872,8 +1873,27 @@ fwohci_intr_core(struct fwohci_softc *sc, uint32_t stat, int count) /* allow from all nodes */ OWRITE(sc, OHCI_PREQHI, 0x7fffffff); OWRITE(sc, OHCI_PREQLO, 0xffffffff); - /* 0 to 4GB region */ - OWRITE(sc, OHCI_PREQUPPER, 0x10000); + prequpper = ((uintmax_t)Maxmem << PAGE_SHIFT) >> 16; + if (prequpper > OHCI_PREQUPPER_MAX) { + device_printf(fc->dev, + "Physical memory size of 0x%jx exceeds " + "fire wire address space. Limiting dma " + "to memory below 0x%jx\n", + (uintmax_t)Maxmem << PAGE_SHIFT, + (uintmax_t)OHCI_PREQUPPER_MAX << 16); + prequpper = OHCI_PREQUPPER_MAX; + } + OWRITE(sc, OHCI_PREQUPPER, prequpper & 0xffffffff); + if (OREAD(sc, OHCI_PREQUPPER) != + (prequpper & 0xffffffff)) { + device_printf(fc->dev, + "PhysicalUpperBound register is not " + "implemented. Physical memory access " + "is limited to the first 4GB\n"); + device_printf(fc->dev, + "PhysicalUpperBound = 0x%08x\n", + OREAD(sc, OHCI_PREQUPPER)); + } } /* Set ATRetries register */ OWRITE(sc, OHCI_ATRETRY, 1<<(13+16) | 0xfff); @@ -2193,7 +2213,7 @@ fwohci_rbuf_update(struct fwohci_softc *sc, int dmach) struct fw_bulkxfer *chunk; struct fw_xferq *ir; uint32_t stat; - int s, w = 0, ldesc; + int w = 0, ldesc; ir = fc->ir[dmach]; ldesc = sc->ir[dmach].ndesc - 1; @@ -2201,7 +2221,6 @@ fwohci_rbuf_update(struct fwohci_softc *sc, int dmach) #if 0 dump_db(sc, dmach); #endif - s = splfw(); if ((ir->flag & FWXFERQ_HANDLER) == 0) FW_GLOCK(fc); fwdma_sync_multiseg_all(sc->ir[dmach].am, BUS_DMASYNC_POSTREAD); @@ -2240,7 +2259,6 @@ fwohci_rbuf_update(struct fwohci_softc *sc, int dmach) } if ((ir->flag & FWXFERQ_HANDLER) == 0) FW_GUNLOCK(fc); - splx(s); if (w == 0) return; diff --git a/sys/dev/hwpmc/hwpmc_mod.c b/sys/dev/hwpmc/hwpmc_mod.c index 753b2f0..1cdc175 100644 --- a/sys/dev/hwpmc/hwpmc_mod.c +++ b/sys/dev/hwpmc/hwpmc_mod.c @@ -1432,8 +1432,8 @@ pmc_process_csw_out(struct thread *td) * save the reading. */ - if (pp != NULL && pp->pp_pmcs[ri].pp_pmc != NULL) { - + if (pm->pm_state != PMC_STATE_DELETED && pp != NULL && + pp->pp_pmcs[ri].pp_pmc != NULL) { KASSERT(pm == pp->pp_pmcs[ri].pp_pmc, ("[pmc,%d] pm %p != pp_pmcs[%d] %p", __LINE__, pm, ri, pp->pp_pmcs[ri].pp_pmc)); diff --git a/sys/dev/hyperv/include/hyperv.h b/sys/dev/hyperv/include/hyperv.h index 73b8d81..0eda9f0 100644 --- a/sys/dev/hyperv/include/hyperv.h +++ b/sys/dev/hyperv/include/hyperv.h @@ -31,17 +31,58 @@ #ifndef _HYPERV_H_ #define _HYPERV_H_ +#ifdef _KERNEL + #include <sys/param.h> +#include <sys/systm.h> + +#define MSR_HV_TIME_REF_COUNT 0x40000020 + +#define CPUID_HV_MSR_TIME_REFCNT 0x0002 /* MSR_HV_TIME_REF_COUNT */ +#define CPUID_HV_MSR_SYNIC 0x0004 /* MSRs for SynIC */ +#define CPUID_HV_MSR_SYNTIMER 0x0008 /* MSRs for SynTimer */ +#define CPUID_HV_MSR_APIC 0x0010 /* MSR_HV_{EOI,ICR,TPR} */ +#define CPUID_HV_MSR_HYPERCALL 0x0020 /* MSR_HV_GUEST_OS_ID + * MSR_HV_HYPERCALL */ +#define CPUID_HV_MSR_VP_INDEX 0x0040 /* MSR_HV_VP_INDEX */ +#define CPUID_HV_MSR_REFERENCE_TSC 0x0200 /* MSR_HV_REFERENCE_TSC */ +#define CPUID_HV_MSR_GUEST_IDLE 0x0400 /* MSR_HV_GUEST_IDLE */ + +#ifndef NANOSEC +#define NANOSEC 1000000000ULL +#endif +#define HYPERV_TIMER_NS_FACTOR 100ULL +#define HYPERV_TIMER_FREQ (NANOSEC / HYPERV_TIMER_NS_FACTOR) + +#endif /* _KERNEL */ -#include <vm/vm.h> -#include <vm/pmap.h> +#define HYPERV_REFTSC_DEVNAME "hv_tsc" + +/* + * Hyper-V Reference TSC + */ +struct hyperv_reftsc { + volatile uint32_t tsc_seq; + volatile uint32_t tsc_rsvd1; + volatile uint64_t tsc_scale; + volatile int64_t tsc_ofs; +} __packed __aligned(PAGE_SIZE); +#ifdef CTASSERT +CTASSERT(sizeof(struct hyperv_reftsc) == PAGE_SIZE); +#endif + +#ifdef _KERNEL struct hyperv_guid { - uint8_t hv_guid[16]; + uint8_t hv_guid[16]; } __packed; -#define HYPERV_GUID_STRLEN 40 +#define HYPERV_GUID_STRLEN 40 int hyperv_guid2str(const struct hyperv_guid *, char *, size_t); +extern u_int hyperv_features; /* CPUID_HV_MSR_ */ + +#endif /* _KERNEL */ + #endif /* _HYPERV_H_ */ diff --git a/sys/dev/hyperv/include/vmbus.h b/sys/dev/hyperv/include/vmbus.h index b429021..56be416 100644 --- a/sys/dev/hyperv/include/vmbus.h +++ b/sys/dev/hyperv/include/vmbus.h @@ -50,6 +50,9 @@ #define VMBUS_VERSION_MAJOR(ver) (((uint32_t)(ver)) >> 16) #define VMBUS_VERSION_MINOR(ver) (((uint32_t)(ver)) & 0xffff) +#define VMBUS_CHAN_POLLHZ_MIN 100 /* 10ms interval */ +#define VMBUS_CHAN_POLLHZ_MAX 1000000 /* 1us interval */ + /* * GPA stuffs. */ @@ -117,6 +120,8 @@ struct vmbus_chan_br { }; struct vmbus_channel; +struct vmbus_xact; +struct vmbus_xact_ctx; struct hyperv_guid; struct task; struct taskqueue; @@ -129,6 +134,36 @@ vmbus_get_channel(device_t dev) return device_get_ivars(dev); } +/* + * vmbus_chan_open_br() + * + * Return values: + * 0 Succeeded. + * EISCONN Failed, and the memory passed through 'br' is still + * connected. Callers must _not_ free the the memory + * passed through 'br', if this error happens. + * other values Failed. The memory passed through 'br' is no longer + * connected. Callers are free to do anything with the + * memory passed through 'br'. + * + * + * + * vmbus_chan_close_direct() + * + * NOTE: + * Callers of this function _must_ make sure to close all sub-channels before + * closing the primary channel. + * + * Return values: + * 0 Succeeded. + * EISCONN Failed, and the memory associated with the bufring + * is still connected. Callers must _not_ free the the + * memory associated with the bufring, if this error + * happens. + * other values Failed. The memory associated with the bufring is + * no longer connected. Callers are free to do anything + * with the memory associated with the bufring. + */ int vmbus_chan_open(struct vmbus_channel *chan, int txbr_size, int rxbr_size, const void *udata, int udlen, vmbus_chan_callback_t cb, void *cbarg); @@ -136,9 +171,15 @@ int vmbus_chan_open_br(struct vmbus_channel *chan, const struct vmbus_chan_br *cbr, const void *udata, int udlen, vmbus_chan_callback_t cb, void *cbarg); void vmbus_chan_close(struct vmbus_channel *chan); +int vmbus_chan_close_direct(struct vmbus_channel *chan); void vmbus_chan_intr_drain(struct vmbus_channel *chan); void vmbus_chan_run_task(struct vmbus_channel *chan, struct task *task); +void vmbus_chan_set_orphan(struct vmbus_channel *chan, + struct vmbus_xact_ctx *); +void vmbus_chan_unset_orphan(struct vmbus_channel *chan); +const void *vmbus_chan_xact_wait(const struct vmbus_channel *chan, + struct vmbus_xact *xact, size_t *resp_len, bool can_sleep); int vmbus_chan_gpadl_connect(struct vmbus_channel *chan, bus_addr_t paddr, int size, uint32_t *gpadl); @@ -173,6 +214,7 @@ int vmbus_chan_send_prplist(struct vmbus_channel *chan, uint32_t vmbus_chan_id(const struct vmbus_channel *chan); uint32_t vmbus_chan_subidx(const struct vmbus_channel *chan); bool vmbus_chan_is_primary(const struct vmbus_channel *chan); +bool vmbus_chan_is_revoked(const struct vmbus_channel *chan); const struct hyperv_guid * vmbus_chan_guid_inst(const struct vmbus_channel *chan); int vmbus_chan_prplist_nelem(int br_size, int prpcnt_max, @@ -182,4 +224,8 @@ bool vmbus_chan_tx_empty(const struct vmbus_channel *chan); struct taskqueue * vmbus_chan_mgmt_tq(const struct vmbus_channel *chan); +void vmbus_chan_poll_enable(struct vmbus_channel *chan, + u_int pollhz); +void vmbus_chan_poll_disable(struct vmbus_channel *chan); + #endif /* !_VMBUS_H_ */ diff --git a/sys/dev/hyperv/include/vmbus_xact.h b/sys/dev/hyperv/include/vmbus_xact.h index 62fda01..d8506b6 100644 --- a/sys/dev/hyperv/include/vmbus_xact.h +++ b/sys/dev/hyperv/include/vmbus_xact.h @@ -40,6 +40,8 @@ struct vmbus_xact_ctx *vmbus_xact_ctx_create(bus_dma_tag_t dtag, size_t req_size, size_t resp_size, size_t priv_size); void vmbus_xact_ctx_destroy(struct vmbus_xact_ctx *ctx); +bool vmbus_xact_ctx_orphan(struct vmbus_xact_ctx *ctx); + struct vmbus_xact *vmbus_xact_get(struct vmbus_xact_ctx *ctx, size_t req_len); void vmbus_xact_put(struct vmbus_xact *xact); @@ -52,6 +54,10 @@ void vmbus_xact_activate(struct vmbus_xact *xact); void vmbus_xact_deactivate(struct vmbus_xact *xact); const void *vmbus_xact_wait(struct vmbus_xact *xact, size_t *resp_len); +const void *vmbus_xact_busywait(struct vmbus_xact *xact, + size_t *resp_len); +const void *vmbus_xact_poll(struct vmbus_xact *xact, + size_t *resp_len); void vmbus_xact_wakeup(struct vmbus_xact *xact, const void *data, size_t dlen); void vmbus_xact_ctx_wakeup(struct vmbus_xact_ctx *ctx, diff --git a/sys/dev/hyperv/netvsc/hn_nvs.c b/sys/dev/hyperv/netvsc/hn_nvs.c index 8fd14a3..aa61a33 100644 --- a/sys/dev/hyperv/netvsc/hn_nvs.c +++ b/sys/dev/hyperv/netvsc/hn_nvs.c @@ -62,8 +62,8 @@ __FBSDID("$FreeBSD$"); static int hn_nvs_conn_chim(struct hn_softc *); static int hn_nvs_conn_rxbuf(struct hn_softc *); -static int hn_nvs_disconn_chim(struct hn_softc *); -static int hn_nvs_disconn_rxbuf(struct hn_softc *); +static void hn_nvs_disconn_chim(struct hn_softc *); +static void hn_nvs_disconn_rxbuf(struct hn_softc *); static int hn_nvs_conf_ndis(struct hn_softc *, int); static int hn_nvs_init_ndis(struct hn_softc *); static int hn_nvs_doinit(struct hn_softc *, uint32_t); @@ -109,7 +109,8 @@ hn_nvs_xact_execute(struct hn_softc *sc, struct vmbus_xact *xact, vmbus_xact_deactivate(xact); return (NULL); } - hdr = vmbus_xact_wait(xact, &resplen); + hdr = vmbus_chan_xact_wait(sc->hn_prichan, xact, &resplen, + HN_CAN_SLEEP(sc)); /* * Check this NVS response message. @@ -272,8 +273,14 @@ hn_nvs_conn_chim(struct hn_softc *sc) goto cleanup; } if (sectsz == 0) { + /* + * Can't use chimney sending buffer; done! + */ if_printf(sc->hn_ifp, "zero chimney sending buffer " "section size\n"); + sc->hn_chim_szmax = 0; + sc->hn_chim_cnt = 0; + sc->hn_flags |= HN_FLAG_CHIM_CONNECTED; return (0); } @@ -307,7 +314,7 @@ cleanup: return (error); } -static int +static void hn_nvs_disconn_rxbuf(struct hn_softc *sc) { int error; @@ -327,14 +334,24 @@ hn_nvs_disconn_rxbuf(struct hn_softc *sc) if (error) { if_printf(sc->hn_ifp, "send nvs rxbuf disconn failed: %d\n", error); - return (error); + /* + * Fine for a revoked channel, since the hypervisor + * does not drain TX bufring for a revoked channel. + */ + if (!vmbus_chan_is_revoked(sc->hn_prichan)) + sc->hn_flags |= HN_FLAG_RXBUF_REF; } sc->hn_flags &= ~HN_FLAG_RXBUF_CONNECTED; /* * Wait for the hypervisor to receive this NVS request. + * + * NOTE: + * The TX bufring will not be drained by the hypervisor, + * if the primary channel is revoked. */ - while (!vmbus_chan_tx_empty(sc->hn_prichan)) + while (!vmbus_chan_tx_empty(sc->hn_prichan) && + !vmbus_chan_is_revoked(sc->hn_prichan)) pause("waittx", 1); /* * Linger long enough for NVS to disconnect RXBUF. @@ -351,14 +368,13 @@ hn_nvs_disconn_rxbuf(struct hn_softc *sc) if (error) { if_printf(sc->hn_ifp, "rxbuf gpadl disconn failed: %d\n", error); - return (error); + sc->hn_flags |= HN_FLAG_RXBUF_REF; } sc->hn_rxbuf_gpadl = 0; } - return (0); } -static int +static void hn_nvs_disconn_chim(struct hn_softc *sc) { int error; @@ -378,14 +394,24 @@ hn_nvs_disconn_chim(struct hn_softc *sc) if (error) { if_printf(sc->hn_ifp, "send nvs chim disconn failed: %d\n", error); - return (error); + /* + * Fine for a revoked channel, since the hypervisor + * does not drain TX bufring for a revoked channel. + */ + if (!vmbus_chan_is_revoked(sc->hn_prichan)) + sc->hn_flags |= HN_FLAG_CHIM_REF; } sc->hn_flags &= ~HN_FLAG_CHIM_CONNECTED; /* * Wait for the hypervisor to receive this NVS request. + * + * NOTE: + * The TX bufring will not be drained by the hypervisor, + * if the primary channel is revoked. */ - while (!vmbus_chan_tx_empty(sc->hn_prichan)) + while (!vmbus_chan_tx_empty(sc->hn_prichan) && + !vmbus_chan_is_revoked(sc->hn_prichan)) pause("waittx", 1); /* * Linger long enough for NVS to disconnect chimney @@ -403,7 +429,7 @@ hn_nvs_disconn_chim(struct hn_softc *sc) if (error) { if_printf(sc->hn_ifp, "chim gpadl disconn failed: %d\n", error); - return (error); + sc->hn_flags |= HN_FLAG_CHIM_REF; } sc->hn_chim_gpadl = 0; } @@ -411,8 +437,8 @@ hn_nvs_disconn_chim(struct hn_softc *sc) if (sc->hn_chim_bmap != NULL) { free(sc->hn_chim_bmap, M_DEVBUF); sc->hn_chim_bmap = NULL; + sc->hn_chim_bmap_cnt = 0; } - return (0); } static int @@ -601,8 +627,10 @@ hn_nvs_attach(struct hn_softc *sc, int mtu) * Connect chimney sending buffer. */ error = hn_nvs_conn_chim(sc); - if (error) + if (error) { + hn_nvs_disconn_rxbuf(sc); return (error); + } return (0); } diff --git a/sys/dev/hyperv/netvsc/hn_rndis.c b/sys/dev/hyperv/netvsc/hn_rndis.c index 76dd00e..1e83fe4 100644 --- a/sys/dev/hyperv/netvsc/hn_rndis.c +++ b/sys/dev/hyperv/netvsc/hn_rndis.c @@ -233,7 +233,8 @@ hn_rndis_xact_exec1(struct hn_softc *sc, struct vmbus_xact *xact, size_t reqlen, if_printf(sc->hn_ifp, "RNDIS ctrl send failed: %d\n", error); return (NULL); } - return (vmbus_xact_wait(xact, comp_len)); + return (vmbus_chan_xact_wait(sc->hn_prichan, xact, comp_len, + HN_CAN_SLEEP(sc))); } static const void * @@ -600,7 +601,6 @@ hn_rndis_conf_offload(struct hn_softc *sc, int mtu) if ((hwcaps.ndis_lsov2.ndis_ip6_encap & NDIS_OFFLOAD_ENCAP_8023) && (hwcaps.ndis_lsov2.ndis_ip6_opts & HN_NDIS_LSOV2_CAP_IP6) == HN_NDIS_LSOV2_CAP_IP6) { -#ifdef notyet caps |= HN_CAP_TSO6; params.ndis_lsov2_ip6 = NDIS_OFFLOAD_LSOV2_ON; @@ -608,7 +608,6 @@ hn_rndis_conf_offload(struct hn_softc *sc, int mtu) tso_maxsz = hwcaps.ndis_lsov2.ndis_ip6_maxsz; if (hwcaps.ndis_lsov2.ndis_ip6_minsg > tso_minsg) tso_minsg = hwcaps.ndis_lsov2.ndis_ip6_minsg; -#endif } sc->hn_ndis_tso_szmax = 0; sc->hn_ndis_tso_sgmin = 0; @@ -839,11 +838,15 @@ hn_rndis_init(struct hn_softc *sc) error = EIO; goto done; } + sc->hn_rndis_agg_size = comp->rm_pktmaxsz; + sc->hn_rndis_agg_pkts = comp->rm_pktmaxcnt; + sc->hn_rndis_agg_align = 1U << comp->rm_align; + if (bootverbose) { if_printf(sc->hn_ifp, "RNDIS ver %u.%u, pktsz %u, pktcnt %u, " "align %u\n", comp->rm_ver_major, comp->rm_ver_minor, - comp->rm_pktmaxsz, comp->rm_pktmaxcnt, - 1U << comp->rm_align); + sc->hn_rndis_agg_size, sc->hn_rndis_agg_pkts, + sc->hn_rndis_agg_align); } error = 0; done: @@ -977,7 +980,6 @@ hn_rndis_attach(struct hn_softc *sc, int mtu) /* * Configure NDIS offload settings. - * XXX no offloading, if error happened? */ hn_rndis_conf_offload(sc, mtu); return (0); diff --git a/sys/dev/hyperv/netvsc/if_hn.c b/sys/dev/hyperv/netvsc/if_hn.c index 1731c97..8750ab0 100644 --- a/sys/dev/hyperv/netvsc/if_hn.c +++ b/sys/dev/hyperv/netvsc/if_hn.c @@ -57,6 +57,7 @@ __FBSDID("$FreeBSD$"); #include "opt_inet6.h" #include "opt_inet.h" +#include "opt_hn.h" #include <sys/param.h> #include <sys/bus.h> @@ -152,7 +153,11 @@ __FBSDID("$FreeBSD$"); sx_init(&(sc)->hn_lock, device_get_nameunit((sc)->hn_dev)) #define HN_LOCK_DESTROY(sc) sx_destroy(&(sc)->hn_lock) #define HN_LOCK_ASSERT(sc) sx_assert(&(sc)->hn_lock, SA_XLOCKED) -#define HN_LOCK(sc) sx_xlock(&(sc)->hn_lock) +#define HN_LOCK(sc) \ +do { \ + while (sx_try_xlock(&(sc)->hn_lock) == 0) \ + DELAY(1000); \ +} while (0) #define HN_UNLOCK(sc) sx_xunlock(&(sc)->hn_lock) #define HN_CSUM_IP_MASK (CSUM_IP | CSUM_IP_TCP | CSUM_IP_UDP) @@ -162,10 +167,24 @@ __FBSDID("$FreeBSD$"); #define HN_CSUM_IP6_HWASSIST(sc) \ ((sc)->hn_tx_ring[0].hn_csum_assist & HN_CSUM_IP6_MASK) +#define HN_PKTSIZE_MIN(align) \ + roundup2(ETHER_MIN_LEN + ETHER_VLAN_ENCAP_LEN - ETHER_CRC_LEN + \ + HN_RNDIS_PKT_LEN, (align)) +#define HN_PKTSIZE(m, align) \ + roundup2((m)->m_pkthdr.len + HN_RNDIS_PKT_LEN, (align)) + +#define HN_RING_IDX2CPU(sc, idx) (((sc)->hn_cpu + (idx)) % mp_ncpus) + struct hn_txdesc { #ifndef HN_USE_TXDESC_BUFRING SLIST_ENTRY(hn_txdesc) link; #endif + STAILQ_ENTRY(hn_txdesc) agg_link; + + /* Aggregated txdescs, in sending order. */ + STAILQ_HEAD(, hn_txdesc) agg_list; + + /* The oldest packet, if transmission aggregation happens. */ struct mbuf *m; struct hn_tx_ring *txr; int refs; @@ -183,6 +202,7 @@ struct hn_txdesc { #define HN_TXD_FLAG_ONLIST 0x0001 #define HN_TXD_FLAG_DMAMAP 0x0002 +#define HN_TXD_FLAG_ONAGG 0x0004 struct hn_rxinfo { uint32_t vlan_info; @@ -262,6 +282,11 @@ static int hn_rxfilter_sysctl(SYSCTL_HANDLER_ARGS); static int hn_rss_key_sysctl(SYSCTL_HANDLER_ARGS); static int hn_rss_ind_sysctl(SYSCTL_HANDLER_ARGS); static int hn_rss_hash_sysctl(SYSCTL_HANDLER_ARGS); +static int hn_txagg_size_sysctl(SYSCTL_HANDLER_ARGS); +static int hn_txagg_pkts_sysctl(SYSCTL_HANDLER_ARGS); +static int hn_txagg_pktmax_sysctl(SYSCTL_HANDLER_ARGS); +static int hn_txagg_align_sysctl(SYSCTL_HANDLER_ARGS); +static int hn_polling_sysctl(SYSCTL_HANDLER_ARGS); static void hn_stop(struct hn_softc *); static void hn_init_locked(struct hn_softc *); @@ -278,6 +303,7 @@ static int hn_synth_attach(struct hn_softc *, int); static void hn_synth_detach(struct hn_softc *); static int hn_synth_alloc_subchans(struct hn_softc *, int *); +static bool hn_synth_attachable(const struct hn_softc *); static void hn_suspend(struct hn_softc *); static void hn_suspend_data(struct hn_softc *); static void hn_suspend_mgmt(struct hn_softc *); @@ -285,7 +311,10 @@ static void hn_resume(struct hn_softc *); static void hn_resume_data(struct hn_softc *); static void hn_resume_mgmt(struct hn_softc *); static void hn_suspend_mgmt_taskfunc(void *, int); -static void hn_chan_drain(struct vmbus_channel *); +static void hn_chan_drain(struct hn_softc *, + struct vmbus_channel *); +static void hn_polling(struct hn_softc *, u_int); +static void hn_chan_polling(struct vmbus_channel *, u_int); static void hn_update_link_status(struct hn_softc *); static void hn_change_network(struct hn_softc *); @@ -297,9 +326,10 @@ static void hn_link_status(struct hn_softc *); static int hn_create_rx_data(struct hn_softc *, int); static void hn_destroy_rx_data(struct hn_softc *); static int hn_check_iplen(const struct mbuf *, int); -static int hn_set_rxfilter(struct hn_softc *); +static int hn_set_rxfilter(struct hn_softc *, uint32_t); +static int hn_rxfilter_config(struct hn_softc *); static int hn_rss_reconfig(struct hn_softc *); -static void hn_rss_ind_fixup(struct hn_softc *, int); +static void hn_rss_ind_fixup(struct hn_softc *); static int hn_rxpkt(struct hn_rx_ring *, const void *, int, const struct hn_rxinfo *); @@ -309,7 +339,9 @@ static int hn_create_tx_data(struct hn_softc *, int); static void hn_fixup_tx_data(struct hn_softc *); static void hn_destroy_tx_data(struct hn_softc *); static void hn_txdesc_dmamap_destroy(struct hn_txdesc *); -static int hn_encap(struct hn_tx_ring *, +static void hn_txdesc_gc(struct hn_tx_ring *, + struct hn_txdesc *); +static int hn_encap(struct ifnet *, struct hn_tx_ring *, struct hn_txdesc *, struct mbuf **); static int hn_txpkt(struct ifnet *, struct hn_tx_ring *, struct hn_txdesc *); @@ -318,6 +350,10 @@ static void hn_set_tso_maxsize(struct hn_softc *, int, int); static bool hn_tx_ring_pending(struct hn_tx_ring *); static void hn_tx_ring_qflush(struct hn_tx_ring *); static void hn_resume_tx(struct hn_softc *, int); +static void hn_set_txagg(struct hn_softc *); +static void *hn_try_txagg(struct ifnet *, + struct hn_tx_ring *, struct hn_txdesc *, + int); static int hn_get_txswq_depth(const struct hn_tx_ring *); static void hn_txpkt_done(struct hn_nvs_sendctx *, struct hn_softc *, struct vmbus_channel *, @@ -385,10 +421,18 @@ SYSCTL_INT(_hw_hn, OID_AUTO, lro_entry_count, CTLFLAG_RDTUN, #endif #endif -/* Use shared TX taskqueue */ -static int hn_share_tx_taskq = 0; -SYSCTL_INT(_hw_hn, OID_AUTO, share_tx_taskq, CTLFLAG_RDTUN, - &hn_share_tx_taskq, 0, "Enable shared TX taskqueue"); +static int hn_tx_taskq_cnt = 1; +SYSCTL_INT(_hw_hn, OID_AUTO, tx_taskq_cnt, CTLFLAG_RDTUN, + &hn_tx_taskq_cnt, 0, "# of TX taskqueues"); + +#define HN_TX_TASKQ_M_INDEP 0 +#define HN_TX_TASKQ_M_GLOBAL 1 +#define HN_TX_TASKQ_M_EVTTQ 2 + +static int hn_tx_taskq_mode = HN_TX_TASKQ_M_INDEP; +SYSCTL_INT(_hw_hn, OID_AUTO, tx_taskq_mode, CTLFLAG_RDTUN, + &hn_tx_taskq_mode, 0, "TX taskqueue modes: " + "0 - independent, 1 - share global tx taskqs, 2 - share event taskqs"); #ifndef HN_USE_TXDESC_BUFRING static int hn_use_txdesc_bufring = 0; @@ -398,11 +442,6 @@ static int hn_use_txdesc_bufring = 1; SYSCTL_INT(_hw_hn, OID_AUTO, use_txdesc_bufring, CTLFLAG_RD, &hn_use_txdesc_bufring, 0, "Use buf_ring for TX descriptors"); -/* Bind TX taskqueue to the target CPU */ -static int hn_bind_tx_taskq = -1; -SYSCTL_INT(_hw_hn, OID_AUTO, bind_tx_taskq, CTLFLAG_RDTUN, - &hn_bind_tx_taskq, 0, "Bind TX taskqueue to the specified cpu"); - #ifdef HN_IFSTART_SUPPORT /* Use ifnet.if_start instead of ifnet.if_transmit */ static int hn_use_if_start = 0; @@ -433,8 +472,18 @@ SYSCTL_UINT(_hw_hn, OID_AUTO, lro_mbufq_depth, CTLFLAG_RDTUN, &hn_lro_mbufq_depth, 0, "Depth of LRO mbuf queue"); #endif +/* Packet transmission aggregation size limit */ +static int hn_tx_agg_size = -1; +SYSCTL_INT(_hw_hn, OID_AUTO, tx_agg_size, CTLFLAG_RDTUN, + &hn_tx_agg_size, 0, "Packet transmission aggregation size limit"); + +/* Packet transmission aggregation count limit */ +static int hn_tx_agg_pkts = -1; +SYSCTL_INT(_hw_hn, OID_AUTO, tx_agg_pkts, CTLFLAG_RDTUN, + &hn_tx_agg_pkts, 0, "Packet transmission aggregation packet limit"); + static u_int hn_cpu_index; /* next CPU for channel */ -static struct taskqueue *hn_tx_taskq; /* shared TX taskqueue */ +static struct taskqueue **hn_tx_taskque;/* shared TX taskqueues */ static const uint8_t hn_rss_key_default[NDIS_HASH_KEYSIZE_TOEPLITZ] = { @@ -472,7 +521,7 @@ hn_set_lro_lenlim(struct hn_softc *sc, int lenlim) { int i; - for (i = 0; i < sc->hn_rx_ring_inuse; ++i) + for (i = 0; i < sc->hn_rx_ring_cnt; ++i) sc->hn_rx_ring[i].hn_lro.lro_length_lim = lenlim; } #endif @@ -625,11 +674,25 @@ do { \ #endif /* INET6 || INET */ static int -hn_set_rxfilter(struct hn_softc *sc) +hn_set_rxfilter(struct hn_softc *sc, uint32_t filter) +{ + int error = 0; + + HN_LOCK_ASSERT(sc); + + if (sc->hn_rx_filter != filter) { + error = hn_rndis_set_rxfilter(sc, filter); + if (!error) + sc->hn_rx_filter = filter; + } + return (error); +} + +static int +hn_rxfilter_config(struct hn_softc *sc) { struct ifnet *ifp = sc->hn_ifp; uint32_t filter; - int error = 0; HN_LOCK_ASSERT(sc); @@ -639,26 +702,90 @@ hn_set_rxfilter(struct hn_softc *sc) filter = NDIS_PACKET_TYPE_DIRECTED; if (ifp->if_flags & IFF_BROADCAST) filter |= NDIS_PACKET_TYPE_BROADCAST; -#ifdef notyet - /* - * See the comment in SIOCADDMULTI/SIOCDELMULTI. - */ /* TODO: support multicast list */ if ((ifp->if_flags & IFF_ALLMULTI) || !TAILQ_EMPTY(&ifp->if_multiaddrs)) filter |= NDIS_PACKET_TYPE_ALL_MULTICAST; -#else - /* Always enable ALLMULTI */ - filter |= NDIS_PACKET_TYPE_ALL_MULTICAST; -#endif } + return (hn_set_rxfilter(sc, filter)); +} - if (sc->hn_rx_filter != filter) { - error = hn_rndis_set_rxfilter(sc, filter); - if (!error) - sc->hn_rx_filter = filter; +static void +hn_set_txagg(struct hn_softc *sc) +{ + uint32_t size, pkts; + int i; + + /* + * Setup aggregation size. + */ + if (sc->hn_agg_size < 0) + size = UINT32_MAX; + else + size = sc->hn_agg_size; + + if (sc->hn_rndis_agg_size < size) + size = sc->hn_rndis_agg_size; + + /* NOTE: We only aggregate packets using chimney sending buffers. */ + if (size > (uint32_t)sc->hn_chim_szmax) + size = sc->hn_chim_szmax; + + if (size <= 2 * HN_PKTSIZE_MIN(sc->hn_rndis_agg_align)) { + /* Disable */ + size = 0; + pkts = 0; + goto done; + } + + /* NOTE: Type of the per TX ring setting is 'int'. */ + if (size > INT_MAX) + size = INT_MAX; + + /* + * Setup aggregation packet count. + */ + if (sc->hn_agg_pkts < 0) + pkts = UINT32_MAX; + else + pkts = sc->hn_agg_pkts; + + if (sc->hn_rndis_agg_pkts < pkts) + pkts = sc->hn_rndis_agg_pkts; + + if (pkts <= 1) { + /* Disable */ + size = 0; + pkts = 0; + goto done; + } + + /* NOTE: Type of the per TX ring setting is 'short'. */ + if (pkts > SHRT_MAX) + pkts = SHRT_MAX; + +done: + /* NOTE: Type of the per TX ring setting is 'short'. */ + if (sc->hn_rndis_agg_align > SHRT_MAX) { + /* Disable */ + size = 0; + pkts = 0; + } + + if (bootverbose) { + if_printf(sc->hn_ifp, "TX agg size %u, pkts %u, align %u\n", + size, pkts, sc->hn_rndis_agg_align); + } + + for (i = 0; i < sc->hn_tx_ring_cnt; ++i) { + struct hn_tx_ring *txr = &sc->hn_tx_ring[i]; + + mtx_lock(&txr->hn_tx_lock); + txr->hn_agg_szmax = size; + txr->hn_agg_pktmax = pkts; + txr->hn_agg_align = sc->hn_rndis_agg_align; + mtx_unlock(&txr->hn_tx_lock); } - return (error); } static int @@ -711,11 +838,12 @@ hn_rss_reconfig(struct hn_softc *sc) } static void -hn_rss_ind_fixup(struct hn_softc *sc, int nchan) +hn_rss_ind_fixup(struct hn_softc *sc) { struct ndis_rssprm_toeplitz *rss = &sc->hn_rss; - int i; + int i, nchan; + nchan = sc->hn_rx_ring_inuse; KASSERT(nchan > 1, ("invalid # of channels %d", nchan)); /* @@ -773,19 +901,6 @@ hn_probe(device_t dev) return ENXIO; } -static void -hn_cpuset_setthread_task(void *xmask, int pending __unused) -{ - cpuset_t *mask = xmask; - int error; - - error = cpuset_setthread(curthread->td_tid, mask); - if (error) { - panic("curthread=%ju: can't pin; error=%d", - (uintmax_t)curthread->td_tid, error); - } -} - static int hn_attach(device_t dev) { @@ -801,28 +916,29 @@ hn_attach(device_t dev) HN_LOCK_INIT(sc); /* + * Initialize these tunables once. + */ + sc->hn_agg_size = hn_tx_agg_size; + sc->hn_agg_pkts = hn_tx_agg_pkts; + + /* * Setup taskqueue for transmission. */ - if (hn_tx_taskq == NULL) { - sc->hn_tx_taskq = taskqueue_create("hn_tx", M_WAITOK, - taskqueue_thread_enqueue, &sc->hn_tx_taskq); - taskqueue_start_threads(&sc->hn_tx_taskq, 1, PI_NET, "%s tx", - device_get_nameunit(dev)); - if (hn_bind_tx_taskq >= 0) { - int cpu = hn_bind_tx_taskq; - struct task cpuset_task; - cpuset_t cpu_set; - - if (cpu > mp_ncpus - 1) - cpu = mp_ncpus - 1; - CPU_SETOF(cpu, &cpu_set); - TASK_INIT(&cpuset_task, 0, hn_cpuset_setthread_task, - &cpu_set); - taskqueue_enqueue(sc->hn_tx_taskq, &cpuset_task); - taskqueue_drain(sc->hn_tx_taskq, &cpuset_task); + if (hn_tx_taskq_mode == HN_TX_TASKQ_M_INDEP) { + int i; + + sc->hn_tx_taskqs = + malloc(hn_tx_taskq_cnt * sizeof(struct taskqueue *), + M_DEVBUF, M_WAITOK); + for (i = 0; i < hn_tx_taskq_cnt; ++i) { + sc->hn_tx_taskqs[i] = taskqueue_create("hn_tx", + M_WAITOK, taskqueue_thread_enqueue, + &sc->hn_tx_taskqs[i]); + taskqueue_start_threads(&sc->hn_tx_taskqs[i], 1, PI_NET, + "%s tx%d", device_get_nameunit(dev), i); } - } else { - sc->hn_tx_taskq = hn_tx_taskq; + } else if (hn_tx_taskq_mode == HN_TX_TASKQ_M_GLOBAL) { + sc->hn_tx_taskqs = hn_tx_taskque; } /* @@ -900,8 +1016,25 @@ hn_attach(device_t dev) */ sc->hn_xact = vmbus_xact_ctx_create(bus_get_dma_tag(dev), HN_XACT_REQ_SIZE, HN_XACT_RESP_SIZE, 0); - if (sc->hn_xact == NULL) + if (sc->hn_xact == NULL) { + error = ENXIO; + goto failed; + } + + /* + * Install orphan handler for the revocation of this device's + * primary channel. + * + * NOTE: + * The processing order is critical here: + * Install the orphan handler, _before_ testing whether this + * device's primary channel has been revoked or not. + */ + vmbus_chan_set_orphan(sc->hn_prichan, sc->hn_xact); + if (vmbus_chan_is_revoked(sc->hn_prichan)) { + error = ENXIO; goto failed; + } /* * Attach the synthetic parts, i.e. NVS and RNDIS. @@ -956,6 +1089,28 @@ hn_attach(device_t dev) SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "rss_ind", CTLTYPE_OPAQUE | CTLFLAG_RW | CTLFLAG_MPSAFE, sc, 0, hn_rss_ind_sysctl, "IU", "RSS indirect table"); + SYSCTL_ADD_UINT(ctx, child, OID_AUTO, "rndis_agg_size", + CTLFLAG_RD, &sc->hn_rndis_agg_size, 0, + "RNDIS offered packet transmission aggregation size limit"); + SYSCTL_ADD_UINT(ctx, child, OID_AUTO, "rndis_agg_pkts", + CTLFLAG_RD, &sc->hn_rndis_agg_pkts, 0, + "RNDIS offered packet transmission aggregation count limit"); + SYSCTL_ADD_UINT(ctx, child, OID_AUTO, "rndis_agg_align", + CTLFLAG_RD, &sc->hn_rndis_agg_align, 0, + "RNDIS packet transmission aggregation alignment"); + SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "agg_size", + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, sc, 0, + hn_txagg_size_sysctl, "I", + "Packet transmission aggregation size, 0 -- disable, -1 -- auto"); + SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "agg_pkts", + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, sc, 0, + hn_txagg_pkts_sysctl, "I", + "Packet transmission aggregation packets, " + "0 -- disable, -1 -- auto"); + SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "polling", + CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_MPSAFE, sc, 0, + hn_polling_sysctl, "I", + "Polling frequency: [100,1000000], 0 disable polling"); /* * Setup the ifmedia, which has been initialized earlier. @@ -1020,6 +1175,13 @@ hn_attach(device_t dev) /* Enable all available capabilities by default. */ ifp->if_capenable = ifp->if_capabilities; + /* + * Disable IPv6 TSO and TXCSUM by default, they still can + * be enabled through SIOCSIFCAP. + */ + ifp->if_capenable &= ~(IFCAP_TXCSUM_IPV6 | IFCAP_TSO6); + ifp->if_hwassist &= ~(HN_CSUM_IP6_MASK | CSUM_IP6_TSO); + if (ifp->if_capabilities & (IFCAP_TSO6 | IFCAP_TSO4)) { hn_set_tso_maxsize(sc, hn_tso_maxlen, ETHERMTU); ifp->if_hw_tsomaxsegcount = HN_TX_DATA_SEGCNT_MAX; @@ -1056,6 +1218,14 @@ hn_detach(device_t dev) struct hn_softc *sc = device_get_softc(dev); struct ifnet *ifp = sc->hn_ifp; + if (sc->hn_xact != NULL && vmbus_chan_is_revoked(sc->hn_prichan)) { + /* + * In case that the vmbus missed the orphan handler + * installation. + */ + vmbus_xact_ctx_orphan(sc->hn_xact); + } + if (device_is_attached(dev)) { HN_LOCK(sc); if (sc->hn_flags & HN_FLAG_SYNTH_ATTACHED) { @@ -1077,12 +1247,23 @@ hn_detach(device_t dev) hn_destroy_rx_data(sc); hn_destroy_tx_data(sc); - if (sc->hn_tx_taskq != hn_tx_taskq) - taskqueue_free(sc->hn_tx_taskq); + if (sc->hn_tx_taskqs != NULL && sc->hn_tx_taskqs != hn_tx_taskque) { + int i; + + for (i = 0; i < hn_tx_taskq_cnt; ++i) + taskqueue_free(sc->hn_tx_taskqs[i]); + free(sc->hn_tx_taskqs, M_DEVBUF); + } taskqueue_free(sc->hn_mgmt_taskq0); - if (sc->hn_xact != NULL) + if (sc->hn_xact != NULL) { + /* + * Uninstall the orphan handler _before_ the xact is + * destructed. + */ + vmbus_chan_unset_orphan(sc->hn_prichan); vmbus_xact_ctx_destroy(sc->hn_xact); + } if_free(ifp); @@ -1211,16 +1392,45 @@ hn_txdesc_put(struct hn_tx_ring *txr, struct hn_txdesc *txd) KASSERT((txd->flags & HN_TXD_FLAG_ONLIST) == 0, ("put an onlist txd %#x", txd->flags)); + KASSERT((txd->flags & HN_TXD_FLAG_ONAGG) == 0, + ("put an onagg txd %#x", txd->flags)); KASSERT(txd->refs > 0, ("invalid txd refs %d", txd->refs)); if (atomic_fetchadd_int(&txd->refs, -1) != 1) return 0; + if (!STAILQ_EMPTY(&txd->agg_list)) { + struct hn_txdesc *tmp_txd; + + while ((tmp_txd = STAILQ_FIRST(&txd->agg_list)) != NULL) { + int freed; + + KASSERT(STAILQ_EMPTY(&tmp_txd->agg_list), + ("resursive aggregation on aggregated txdesc")); + KASSERT((tmp_txd->flags & HN_TXD_FLAG_ONAGG), + ("not aggregated txdesc")); + KASSERT((tmp_txd->flags & HN_TXD_FLAG_DMAMAP) == 0, + ("aggregated txdesc uses dmamap")); + KASSERT(tmp_txd->chim_index == HN_NVS_CHIM_IDX_INVALID, + ("aggregated txdesc consumes " + "chimney sending buffer")); + KASSERT(tmp_txd->chim_size == 0, + ("aggregated txdesc has non-zero " + "chimney sending size")); + + STAILQ_REMOVE_HEAD(&txd->agg_list, agg_link); + tmp_txd->flags &= ~HN_TXD_FLAG_ONAGG; + freed = hn_txdesc_put(txr, tmp_txd); + KASSERT(freed, ("failed to free aggregated txdesc")); + } + } + if (txd->chim_index != HN_NVS_CHIM_IDX_INVALID) { KASSERT((txd->flags & HN_TXD_FLAG_DMAMAP) == 0, ("chim txd uses dmamap")); hn_chim_free(txr->hn_sc, txd->chim_index); txd->chim_index = HN_NVS_CHIM_IDX_INVALID; + txd->chim_size = 0; } else if (txd->flags & HN_TXD_FLAG_DMAMAP) { bus_dmamap_sync(txr->hn_tx_data_dtag, txd->data_dmap, BUS_DMASYNC_POSTWRITE); @@ -1243,10 +1453,12 @@ hn_txdesc_put(struct hn_tx_ring *txr, struct hn_txdesc *txd) txr->hn_txdesc_avail++; SLIST_INSERT_HEAD(&txr->hn_txlist, txd, link); mtx_unlock_spin(&txr->hn_txlist_spin); -#else +#else /* HN_USE_TXDESC_BUFRING */ +#ifdef HN_DEBUG atomic_add_int(&txr->hn_txdesc_avail, 1); - buf_ring_enqueue(txr->hn_txdesc_br, txd); #endif + buf_ring_enqueue(txr->hn_txdesc_br, txd); +#endif /* !HN_USE_TXDESC_BUFRING */ return 1; } @@ -1272,11 +1484,16 @@ hn_txdesc_get(struct hn_tx_ring *txr) if (txd != NULL) { #ifdef HN_USE_TXDESC_BUFRING +#ifdef HN_DEBUG atomic_subtract_int(&txr->hn_txdesc_avail, 1); #endif +#endif /* HN_USE_TXDESC_BUFRING */ KASSERT(txd->m == NULL && txd->refs == 0 && + STAILQ_EMPTY(&txd->agg_list) && txd->chim_index == HN_NVS_CHIM_IDX_INVALID && + txd->chim_size == 0 && (txd->flags & HN_TXD_FLAG_ONLIST) && + (txd->flags & HN_TXD_FLAG_ONAGG) == 0 && (txd->flags & HN_TXD_FLAG_DMAMAP) == 0, ("invalid txd")); txd->flags &= ~HN_TXD_FLAG_ONLIST; txd->refs = 1; @@ -1289,10 +1506,26 @@ hn_txdesc_hold(struct hn_txdesc *txd) { /* 0->1 transition will never work */ - KASSERT(txd->refs > 0, ("invalid refs %d", txd->refs)); + KASSERT(txd->refs > 0, ("invalid txd refs %d", txd->refs)); atomic_add_int(&txd->refs, 1); } +static __inline void +hn_txdesc_agg(struct hn_txdesc *agg_txd, struct hn_txdesc *txd) +{ + + KASSERT((agg_txd->flags & HN_TXD_FLAG_ONAGG) == 0, + ("recursive aggregation on aggregating txdesc")); + + KASSERT((txd->flags & HN_TXD_FLAG_ONAGG) == 0, + ("already aggregated")); + KASSERT(STAILQ_EMPTY(&txd->agg_list), + ("recursive aggregation on to-be-aggregated txdesc")); + + txd->flags |= HN_TXD_FLAG_ONAGG; + STAILQ_INSERT_TAIL(&agg_txd->agg_list, txd, agg_link); +} + static bool hn_tx_ring_pending(struct hn_tx_ring *txr) { @@ -1327,7 +1560,7 @@ hn_txpkt_done(struct hn_nvs_sendctx *sndc, struct hn_softc *sc, txr = txd->txr; KASSERT(txr->hn_chan == chan, ("channel mismatch, on chan%u, should be chan%u", - vmbus_chan_subidx(chan), vmbus_chan_subidx(txr->hn_chan))); + vmbus_chan_id(chan), vmbus_chan_id(txr->hn_chan))); txr->hn_has_txeof = 1; hn_txdesc_put(txr, txd); @@ -1410,12 +1643,123 @@ hn_rndis_pktinfo_append(struct rndis_packet_msg *pkt, size_t pktsize, return (pi->rm_data); } +static __inline int +hn_flush_txagg(struct ifnet *ifp, struct hn_tx_ring *txr) +{ + struct hn_txdesc *txd; + struct mbuf *m; + int error, pkts; + + txd = txr->hn_agg_txd; + KASSERT(txd != NULL, ("no aggregate txdesc")); + + /* + * Since hn_txpkt() will reset this temporary stat, save + * it now, so that oerrors can be updated properly, if + * hn_txpkt() ever fails. + */ + pkts = txr->hn_stat_pkts; + + /* + * Since txd's mbuf will _not_ be freed upon hn_txpkt() + * failure, save it for later freeing, if hn_txpkt() ever + * fails. + */ + m = txd->m; + error = hn_txpkt(ifp, txr, txd); + if (__predict_false(error)) { + /* txd is freed, but m is not. */ + m_freem(m); + + txr->hn_flush_failed++; + if_inc_counter(ifp, IFCOUNTER_OERRORS, pkts); + } + + /* Reset all aggregation states. */ + txr->hn_agg_txd = NULL; + txr->hn_agg_szleft = 0; + txr->hn_agg_pktleft = 0; + txr->hn_agg_prevpkt = NULL; + + return (error); +} + +static void * +hn_try_txagg(struct ifnet *ifp, struct hn_tx_ring *txr, struct hn_txdesc *txd, + int pktsize) +{ + void *chim; + + if (txr->hn_agg_txd != NULL) { + if (txr->hn_agg_pktleft >= 1 && txr->hn_agg_szleft > pktsize) { + struct hn_txdesc *agg_txd = txr->hn_agg_txd; + struct rndis_packet_msg *pkt = txr->hn_agg_prevpkt; + int olen; + + /* + * Update the previous RNDIS packet's total length, + * it can be increased due to the mandatory alignment + * padding for this RNDIS packet. And update the + * aggregating txdesc's chimney sending buffer size + * accordingly. + * + * XXX + * Zero-out the padding, as required by the RNDIS spec. + */ + olen = pkt->rm_len; + pkt->rm_len = roundup2(olen, txr->hn_agg_align); + agg_txd->chim_size += pkt->rm_len - olen; + + /* Link this txdesc to the parent. */ + hn_txdesc_agg(agg_txd, txd); + + chim = (uint8_t *)pkt + pkt->rm_len; + /* Save the current packet for later fixup. */ + txr->hn_agg_prevpkt = chim; + + txr->hn_agg_pktleft--; + txr->hn_agg_szleft -= pktsize; + if (txr->hn_agg_szleft <= + HN_PKTSIZE_MIN(txr->hn_agg_align)) { + /* + * Probably can't aggregate more packets, + * flush this aggregating txdesc proactively. + */ + txr->hn_agg_pktleft = 0; + } + /* Done! */ + return (chim); + } + hn_flush_txagg(ifp, txr); + } + KASSERT(txr->hn_agg_txd == NULL, ("lingering aggregating txdesc")); + + txr->hn_tx_chimney_tried++; + txd->chim_index = hn_chim_alloc(txr->hn_sc); + if (txd->chim_index == HN_NVS_CHIM_IDX_INVALID) + return (NULL); + txr->hn_tx_chimney++; + + chim = txr->hn_sc->hn_chim + + (txd->chim_index * txr->hn_sc->hn_chim_szmax); + + if (txr->hn_agg_pktmax > 1 && + txr->hn_agg_szmax > pktsize + HN_PKTSIZE_MIN(txr->hn_agg_align)) { + txr->hn_agg_txd = txd; + txr->hn_agg_pktleft = txr->hn_agg_pktmax - 1; + txr->hn_agg_szleft = txr->hn_agg_szmax - pktsize; + txr->hn_agg_prevpkt = chim; + } + return (chim); +} + /* * NOTE: * If this function fails, then both txd and m_head0 will be freed. */ static int -hn_encap(struct hn_tx_ring *txr, struct hn_txdesc *txd, struct mbuf **m_head0) +hn_encap(struct ifnet *ifp, struct hn_tx_ring *txr, struct hn_txdesc *txd, + struct mbuf **m_head0) { bus_dma_segment_t segs[HN_TX_DATA_SEGCNT_MAX]; int error, nsegs, i; @@ -1423,33 +1767,30 @@ hn_encap(struct hn_tx_ring *txr, struct hn_txdesc *txd, struct mbuf **m_head0) struct rndis_packet_msg *pkt; uint32_t *pi_data; void *chim = NULL; - int pktlen; + int pkt_hlen, pkt_size; pkt = txd->rndis_pkt; - if (m_head->m_pkthdr.len + HN_RNDIS_PKT_LEN < txr->hn_chim_size) { - /* - * This packet is small enough to fit into a chimney sending - * buffer. Try allocating one chimney sending buffer now. - */ - txr->hn_tx_chimney_tried++; - txd->chim_index = hn_chim_alloc(txr->hn_sc); - if (txd->chim_index != HN_NVS_CHIM_IDX_INVALID) { - chim = txr->hn_sc->hn_chim + - (txd->chim_index * txr->hn_sc->hn_chim_szmax); - /* - * Directly fill the chimney sending buffer w/ the - * RNDIS packet message. - */ + pkt_size = HN_PKTSIZE(m_head, txr->hn_agg_align); + if (pkt_size < txr->hn_chim_size) { + chim = hn_try_txagg(ifp, txr, txd, pkt_size); + if (chim != NULL) pkt = chim; - } + } else { + if (txr->hn_agg_txd != NULL) + hn_flush_txagg(ifp, txr); } pkt->rm_type = REMOTE_NDIS_PACKET_MSG; pkt->rm_len = sizeof(*pkt) + m_head->m_pkthdr.len; pkt->rm_dataoffset = sizeof(*pkt); pkt->rm_datalen = m_head->m_pkthdr.len; + pkt->rm_oobdataoffset = 0; + pkt->rm_oobdatalen = 0; + pkt->rm_oobdataelements = 0; pkt->rm_pktinfooffset = sizeof(*pkt); pkt->rm_pktinfolen = 0; + pkt->rm_vchandle = 0; + pkt->rm_reserved = 0; if (txr->hn_tx_flags & HN_TX_FLAG_HASHVAL) { /* @@ -1510,7 +1851,7 @@ hn_encap(struct hn_tx_ring *txr, struct hn_txdesc *txd, struct mbuf **m_head0) *pi_data |= NDIS_TXCSUM_INFO_UDPCS; } - pktlen = pkt->rm_pktinfooffset + pkt->rm_pktinfolen; + pkt_hlen = pkt->rm_pktinfooffset + pkt->rm_pktinfolen; /* Convert RNDIS packet message offsets */ pkt->rm_dataoffset = hn_rndis_pktmsg_offset(pkt->rm_dataoffset); pkt->rm_pktinfooffset = hn_rndis_pktmsg_offset(pkt->rm_pktinfooffset); @@ -1519,25 +1860,36 @@ hn_encap(struct hn_tx_ring *txr, struct hn_txdesc *txd, struct mbuf **m_head0) * Fast path: Chimney sending. */ if (chim != NULL) { - KASSERT(txd->chim_index != HN_NVS_CHIM_IDX_INVALID, - ("chimney buffer is not used")); - KASSERT(pkt == chim, ("RNDIS pkt not in chimney buffer")); + struct hn_txdesc *tgt_txd = txd; + + if (txr->hn_agg_txd != NULL) { + tgt_txd = txr->hn_agg_txd; +#ifdef INVARIANTS + *m_head0 = NULL; +#endif + } + + KASSERT(pkt == chim, + ("RNDIS pkt not in chimney sending buffer")); + KASSERT(tgt_txd->chim_index != HN_NVS_CHIM_IDX_INVALID, + ("chimney sending buffer is not used")); + tgt_txd->chim_size += pkt->rm_len; m_copydata(m_head, 0, m_head->m_pkthdr.len, - ((uint8_t *)chim) + pktlen); + ((uint8_t *)chim) + pkt_hlen); - txd->chim_size = pkt->rm_len; txr->hn_gpa_cnt = 0; - txr->hn_tx_chimney++; txr->hn_sendpkt = hn_txpkt_chim; goto done; } + + KASSERT(txr->hn_agg_txd == NULL, ("aggregating sglist txdesc")); KASSERT(txd->chim_index == HN_NVS_CHIM_IDX_INVALID, ("chimney buffer is used")); KASSERT(pkt == txd->rndis_pkt, ("RNDIS pkt not in txdesc")); error = hn_txdesc_dmamap_load(txr, txd, &m_head, segs, &nsegs); - if (error) { + if (__predict_false(error)) { int freed; /* @@ -1551,7 +1903,7 @@ hn_encap(struct hn_tx_ring *txr, struct hn_txdesc *txd, struct mbuf **m_head0) ("fail to free txd upon txdma error")); txr->hn_txdma_failed++; - if_inc_counter(txr->hn_sc->hn_ifp, IFCOUNTER_OERRORS, 1); + if_inc_counter(ifp, IFCOUNTER_OERRORS, 1); return error; } *m_head0 = m_head; @@ -1562,7 +1914,7 @@ hn_encap(struct hn_tx_ring *txr, struct hn_txdesc *txd, struct mbuf **m_head0) /* send packet with page buffer */ txr->hn_gpa[0].gpa_page = atop(txd->rndis_pkt_paddr); txr->hn_gpa[0].gpa_ofs = txd->rndis_pkt_paddr & PAGE_MASK; - txr->hn_gpa[0].gpa_len = pktlen; + txr->hn_gpa[0].gpa_len = pkt_hlen; /* * Fill the page buffers with mbuf info after the page @@ -1585,6 +1937,12 @@ done: /* Set the completion routine */ hn_nvs_sendctx_init(&txd->send_ctx, hn_txpkt_done, txd); + /* Update temporary stats for later use. */ + txr->hn_stat_pkts++; + txr->hn_stat_size += m_head->m_pkthdr.len; + if (m_head->m_flags & M_MCAST) + txr->hn_stat_mcasts++; + return 0; } @@ -1596,29 +1954,44 @@ done: static int hn_txpkt(struct ifnet *ifp, struct hn_tx_ring *txr, struct hn_txdesc *txd) { - int error, send_failed = 0; + int error, send_failed = 0, has_bpf; again: - /* - * Make sure that txd is not freed before ETHER_BPF_MTAP. - */ - hn_txdesc_hold(txd); + has_bpf = bpf_peers_present(ifp->if_bpf); + if (has_bpf) { + /* + * Make sure that this txd and any aggregated txds are not + * freed before ETHER_BPF_MTAP. + */ + hn_txdesc_hold(txd); + } error = txr->hn_sendpkt(txr, txd); if (!error) { - ETHER_BPF_MTAP(ifp, txd->m); - if_inc_counter(ifp, IFCOUNTER_OPACKETS, 1); + if (has_bpf) { + const struct hn_txdesc *tmp_txd; + + ETHER_BPF_MTAP(ifp, txd->m); + STAILQ_FOREACH(tmp_txd, &txd->agg_list, agg_link) + ETHER_BPF_MTAP(ifp, tmp_txd->m); + } + + if_inc_counter(ifp, IFCOUNTER_OPACKETS, txr->hn_stat_pkts); #ifdef HN_IFSTART_SUPPORT if (!hn_use_if_start) #endif { if_inc_counter(ifp, IFCOUNTER_OBYTES, - txd->m->m_pkthdr.len); - if (txd->m->m_flags & M_MCAST) - if_inc_counter(ifp, IFCOUNTER_OMCASTS, 1); + txr->hn_stat_size); + if (txr->hn_stat_mcasts != 0) { + if_inc_counter(ifp, IFCOUNTER_OMCASTS, + txr->hn_stat_mcasts); + } } - txr->hn_pkts++; + txr->hn_pkts += txr->hn_stat_pkts; + txr->hn_sends++; } - hn_txdesc_put(txr, txd); + if (has_bpf) + hn_txdesc_put(txr, txd); if (__predict_false(error)) { int freed; @@ -1656,7 +2029,13 @@ again: txr->hn_send_failed++; } - return error; + + /* Reset temporary stats, after this sending is done. */ + txr->hn_stat_size = 0; + txr->hn_stat_pkts = 0; + txr->hn_stat_mcasts = 0; + + return (error); } /* @@ -2041,10 +2420,18 @@ hn_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) } if (ifp->if_flags & IFF_UP) { - if (ifp->if_drv_flags & IFF_DRV_RUNNING) - hn_set_rxfilter(sc); - else + if (ifp->if_drv_flags & IFF_DRV_RUNNING) { + /* + * Caller meight hold mutex, e.g. + * bpf; use busy-wait for the RNDIS + * reply. + */ + HN_NO_SLEEPING(sc); + hn_rxfilter_config(sc); + HN_SLEEPING_OK(sc); + } else { hn_init_locked(sc); + } } else { if (ifp->if_drv_flags & IFF_DRV_RUNNING) hn_stop(sc); @@ -2105,27 +2492,23 @@ hn_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) case SIOCADDMULTI: case SIOCDELMULTI: -#ifdef notyet - /* - * XXX - * Multicast uses mutex, while RNDIS RX filter setting - * sleeps. We workaround this by always enabling - * ALLMULTI. ALLMULTI would actually always be on, even - * if we supported the SIOCADDMULTI/SIOCDELMULTI, since - * we don't support multicast address list configuration - * for this driver. - */ HN_LOCK(sc); if ((sc->hn_flags & HN_FLAG_SYNTH_ATTACHED) == 0) { HN_UNLOCK(sc); break; } - if (ifp->if_drv_flags & IFF_DRV_RUNNING) - hn_set_rxfilter(sc); + if (ifp->if_drv_flags & IFF_DRV_RUNNING) { + /* + * Multicast uses mutex; use busy-wait for + * the RNDIS reply. + */ + HN_NO_SLEEPING(sc); + hn_rxfilter_config(sc); + HN_SLEEPING_OK(sc); + } HN_UNLOCK(sc); -#endif break; case SIOCSIFMEDIA: @@ -2151,6 +2534,9 @@ hn_stop(struct hn_softc *sc) KASSERT(sc->hn_flags & HN_FLAG_SYNTH_ATTACHED, ("synthetic parts were not attached")); + /* Disable polling. */ + hn_polling(sc, 0); + /* Clear RUNNING bit _before_ hn_suspend_data() */ atomic_clear_int(&ifp->if_drv_flags, IFF_DRV_RUNNING); hn_suspend_data(sc); @@ -2176,7 +2562,7 @@ hn_init_locked(struct hn_softc *sc) return; /* Configure RX filter */ - hn_set_rxfilter(sc); + hn_rxfilter_config(sc); /* Clear OACTIVE bit. */ atomic_clear_int(&ifp->if_drv_flags, IFF_DRV_OACTIVE); @@ -2188,6 +2574,10 @@ hn_init_locked(struct hn_softc *sc) /* Everything is ready; unleash! */ atomic_set_int(&ifp->if_drv_flags, IFF_DRV_RUNNING); + + /* Re-enable polling if requested. */ + if (sc->hn_pollhz > 0) + hn_polling(sc, sc->hn_pollhz); } static void @@ -2250,7 +2640,7 @@ hn_lro_ackcnt_sysctl(SYSCTL_HANDLER_ARGS) */ --ackcnt; HN_LOCK(sc); - for (i = 0; i < sc->hn_rx_ring_inuse; ++i) + for (i = 0; i < sc->hn_rx_ring_cnt; ++i) sc->hn_rx_ring[i].hn_lro.lro_ackcnt_lim = ackcnt; HN_UNLOCK(sc); return 0; @@ -2274,7 +2664,7 @@ hn_trust_hcsum_sysctl(SYSCTL_HANDLER_ARGS) return error; HN_LOCK(sc); - for (i = 0; i < sc->hn_rx_ring_inuse; ++i) { + for (i = 0; i < sc->hn_rx_ring_cnt; ++i) { struct hn_rx_ring *rxr = &sc->hn_rx_ring[i]; if (on) @@ -2342,7 +2732,7 @@ hn_rx_stat_u64_sysctl(SYSCTL_HANDLER_ARGS) uint64_t stat; stat = 0; - for (i = 0; i < sc->hn_rx_ring_inuse; ++i) { + for (i = 0; i < sc->hn_rx_ring_cnt; ++i) { rxr = &sc->hn_rx_ring[i]; stat += *((uint64_t *)((uint8_t *)rxr + ofs)); } @@ -2352,7 +2742,7 @@ hn_rx_stat_u64_sysctl(SYSCTL_HANDLER_ARGS) return error; /* Zero out this stat. */ - for (i = 0; i < sc->hn_rx_ring_inuse; ++i) { + for (i = 0; i < sc->hn_rx_ring_cnt; ++i) { rxr = &sc->hn_rx_ring[i]; *((uint64_t *)((uint8_t *)rxr + ofs)) = 0; } @@ -2396,7 +2786,7 @@ hn_tx_stat_ulong_sysctl(SYSCTL_HANDLER_ARGS) u_long stat; stat = 0; - for (i = 0; i < sc->hn_tx_ring_inuse; ++i) { + for (i = 0; i < sc->hn_tx_ring_cnt; ++i) { txr = &sc->hn_tx_ring[i]; stat += *((u_long *)((uint8_t *)txr + ofs)); } @@ -2406,7 +2796,7 @@ hn_tx_stat_ulong_sysctl(SYSCTL_HANDLER_ARGS) return error; /* Zero out this stat. */ - for (i = 0; i < sc->hn_tx_ring_inuse; ++i) { + for (i = 0; i < sc->hn_tx_ring_cnt; ++i) { txr = &sc->hn_tx_ring[i]; *((u_long *)((uint8_t *)txr + ofs)) = 0; } @@ -2428,7 +2818,7 @@ hn_tx_conf_int_sysctl(SYSCTL_HANDLER_ARGS) return error; HN_LOCK(sc); - for (i = 0; i < sc->hn_tx_ring_inuse; ++i) { + for (i = 0; i < sc->hn_tx_ring_cnt; ++i) { txr = &sc->hn_tx_ring[i]; *((int *)((uint8_t *)txr + ofs)) = conf; } @@ -2438,6 +2828,119 @@ hn_tx_conf_int_sysctl(SYSCTL_HANDLER_ARGS) } static int +hn_txagg_size_sysctl(SYSCTL_HANDLER_ARGS) +{ + struct hn_softc *sc = arg1; + int error, size; + + size = sc->hn_agg_size; + error = sysctl_handle_int(oidp, &size, 0, req); + if (error || req->newptr == NULL) + return (error); + + HN_LOCK(sc); + sc->hn_agg_size = size; + hn_set_txagg(sc); + HN_UNLOCK(sc); + + return (0); +} + +static int +hn_txagg_pkts_sysctl(SYSCTL_HANDLER_ARGS) +{ + struct hn_softc *sc = arg1; + int error, pkts; + + pkts = sc->hn_agg_pkts; + error = sysctl_handle_int(oidp, &pkts, 0, req); + if (error || req->newptr == NULL) + return (error); + + HN_LOCK(sc); + sc->hn_agg_pkts = pkts; + hn_set_txagg(sc); + HN_UNLOCK(sc); + + return (0); +} + +static int +hn_txagg_pktmax_sysctl(SYSCTL_HANDLER_ARGS) +{ + struct hn_softc *sc = arg1; + int pkts; + + pkts = sc->hn_tx_ring[0].hn_agg_pktmax; + return (sysctl_handle_int(oidp, &pkts, 0, req)); +} + +static int +hn_txagg_align_sysctl(SYSCTL_HANDLER_ARGS) +{ + struct hn_softc *sc = arg1; + int align; + + align = sc->hn_tx_ring[0].hn_agg_align; + return (sysctl_handle_int(oidp, &align, 0, req)); +} + +static void +hn_chan_polling(struct vmbus_channel *chan, u_int pollhz) +{ + if (pollhz == 0) + vmbus_chan_poll_disable(chan); + else + vmbus_chan_poll_enable(chan, pollhz); +} + +static void +hn_polling(struct hn_softc *sc, u_int pollhz) +{ + int nsubch = sc->hn_rx_ring_inuse - 1; + + HN_LOCK_ASSERT(sc); + + if (nsubch > 0) { + struct vmbus_channel **subch; + int i; + + subch = vmbus_subchan_get(sc->hn_prichan, nsubch); + for (i = 0; i < nsubch; ++i) + hn_chan_polling(subch[i], pollhz); + vmbus_subchan_rel(subch, nsubch); + } + hn_chan_polling(sc->hn_prichan, pollhz); +} + +static int +hn_polling_sysctl(SYSCTL_HANDLER_ARGS) +{ + struct hn_softc *sc = arg1; + int pollhz, error; + + pollhz = sc->hn_pollhz; + error = sysctl_handle_int(oidp, &pollhz, 0, req); + if (error || req->newptr == NULL) + return (error); + + if (pollhz != 0 && + (pollhz < VMBUS_CHAN_POLLHZ_MIN || pollhz > VMBUS_CHAN_POLLHZ_MAX)) + return (EINVAL); + + HN_LOCK(sc); + if (sc->hn_pollhz != pollhz) { + sc->hn_pollhz = pollhz; + if ((sc->hn_ifp->if_drv_flags & IFF_DRV_RUNNING) && + (sc->hn_flags & HN_FLAG_SYNTH_ATTACHED)) + hn_polling(sc, sc->hn_pollhz); + } + HN_UNLOCK(sc); + + return (0); +} + +static int hn_ndis_version_sysctl(SYSCTL_HANDLER_ARGS) { struct hn_softc *sc = arg1; @@ -2546,7 +3049,7 @@ hn_rss_ind_sysctl(SYSCTL_HANDLER_ARGS) goto back; sc->hn_flags |= HN_FLAG_HAS_RSSIND; - hn_rss_ind_fixup(sc, sc->hn_rx_ring_inuse); + hn_rss_ind_fixup(sc); error = hn_rss_reconfig(sc); back: HN_UNLOCK(sc); @@ -2853,7 +3356,10 @@ hn_destroy_rx_data(struct hn_softc *sc) int i; if (sc->hn_rxbuf != NULL) { - hyperv_dmamem_free(&sc->hn_rxbuf_dma, sc->hn_rxbuf); + if ((sc->hn_flags & HN_FLAG_RXBUF_REF) == 0) + hyperv_dmamem_free(&sc->hn_rxbuf_dma, sc->hn_rxbuf); + else + device_printf(sc->hn_dev, "RXBUF is referenced\n"); sc->hn_rxbuf = NULL; } @@ -2865,7 +3371,12 @@ hn_destroy_rx_data(struct hn_softc *sc) if (rxr->hn_br == NULL) continue; - hyperv_dmamem_free(&rxr->hn_br_dma, rxr->hn_br); + if ((rxr->hn_rx_flags & HN_RX_FLAG_BR_REF) == 0) { + hyperv_dmamem_free(&rxr->hn_br_dma, rxr->hn_br); + } else { + device_printf(sc->hn_dev, + "%dth channel bufring is referenced", i); + } rxr->hn_br = NULL; #if defined(INET) || defined(INET6) @@ -2906,7 +3417,12 @@ hn_tx_ring_create(struct hn_softc *sc, int id) M_WAITOK, &txr->hn_tx_lock); #endif - txr->hn_tx_taskq = sc->hn_tx_taskq; + if (hn_tx_taskq_mode == HN_TX_TASKQ_M_EVTTQ) { + txr->hn_tx_taskq = VMBUS_GET_EVENT_TASKQ( + device_get_parent(dev), dev, HN_RING_IDX2CPU(sc, id)); + } else { + txr->hn_tx_taskq = sc->hn_tx_taskqs[id % hn_tx_taskq_cnt]; + } #ifdef HN_IFSTART_SUPPORT if (hn_use_if_start) { @@ -2980,6 +3496,7 @@ hn_tx_ring_create(struct hn_softc *sc, int id) txd->txr = txr; txd->chim_index = HN_NVS_CHIM_IDX_INVALID; + STAILQ_INIT(&txd->agg_list); /* * Allocate and load RNDIS packet message. @@ -3049,9 +3566,11 @@ hn_tx_ring_create(struct hn_softc *sc, int id) if (txr->hn_tx_sysctl_tree != NULL) { child = SYSCTL_CHILDREN(txr->hn_tx_sysctl_tree); +#ifdef HN_DEBUG SYSCTL_ADD_INT(ctx, child, OID_AUTO, "txdesc_avail", CTLFLAG_RD, &txr->hn_txdesc_avail, 0, "# of available TX descs"); +#endif #ifdef HN_IFSTART_SUPPORT if (!hn_use_if_start) #endif @@ -3063,6 +3582,8 @@ hn_tx_ring_create(struct hn_softc *sc, int id) SYSCTL_ADD_ULONG(ctx, child, OID_AUTO, "packets", CTLFLAG_RW, &txr->hn_pkts, "# of packets transmitted"); + SYSCTL_ADD_ULONG(ctx, child, OID_AUTO, "sends", + CTLFLAG_RW, &txr->hn_sends, "# of sends"); } } @@ -3084,24 +3605,43 @@ hn_txdesc_dmamap_destroy(struct hn_txdesc *txd) } static void +hn_txdesc_gc(struct hn_tx_ring *txr, struct hn_txdesc *txd) +{ + + KASSERT(txd->refs == 0 || txd->refs == 1, + ("invalid txd refs %d", txd->refs)); + + /* Aggregated txds will be freed by their aggregating txd. */ + if (txd->refs > 0 && (txd->flags & HN_TXD_FLAG_ONAGG) == 0) { + int freed; + + freed = hn_txdesc_put(txr, txd); + KASSERT(freed, ("can't free txdesc")); + } +} + +static void hn_tx_ring_destroy(struct hn_tx_ring *txr) { - struct hn_txdesc *txd; + int i; if (txr->hn_txdesc == NULL) return; -#ifndef HN_USE_TXDESC_BUFRING - while ((txd = SLIST_FIRST(&txr->hn_txlist)) != NULL) { - SLIST_REMOVE_HEAD(&txr->hn_txlist, link); - hn_txdesc_dmamap_destroy(txd); - } -#else - mtx_lock(&txr->hn_tx_lock); - while ((txd = buf_ring_dequeue_sc(txr->hn_txdesc_br)) != NULL) - hn_txdesc_dmamap_destroy(txd); - mtx_unlock(&txr->hn_tx_lock); -#endif + /* + * NOTE: + * Because the freeing of aggregated txds will be deferred + * to the aggregating txd, two passes are used here: + * - The first pass GCes any pending txds. This GC is necessary, + * since if the channels are revoked, hypervisor will not + * deliver send-done for all pending txds. + * - The second pass frees the busdma stuffs, i.e. after all txds + * were freed. + */ + for (i = 0; i < txr->hn_txdesc_cnt; ++i) + hn_txdesc_gc(txr, &txr->hn_txdesc[i]); + for (i = 0; i < txr->hn_txdesc_cnt; ++i) + hn_txdesc_dmamap_destroy(&txr->hn_txdesc[i]); if (txr->hn_tx_data_dtag != NULL) bus_dma_tag_destroy(txr->hn_tx_data_dtag); @@ -3177,6 +3717,11 @@ hn_create_tx_data(struct hn_softc *sc, int ring_cnt) CTLTYPE_ULONG | CTLFLAG_RW | CTLFLAG_MPSAFE, sc, __offsetof(struct hn_tx_ring, hn_txdma_failed), hn_tx_stat_ulong_sysctl, "LU", "# of TX DMA failure"); + SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "agg_flush_failed", + CTLTYPE_ULONG | CTLFLAG_RW | CTLFLAG_MPSAFE, sc, + __offsetof(struct hn_tx_ring, hn_flush_failed), + hn_tx_stat_ulong_sysctl, "LU", + "# of packet transmission aggregation flush failure"); SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "tx_collapsed", CTLTYPE_ULONG | CTLFLAG_RW | CTLFLAG_MPSAFE, sc, __offsetof(struct hn_tx_ring, hn_tx_collapsed), @@ -3213,6 +3758,17 @@ hn_create_tx_data(struct hn_softc *sc, int ring_cnt) CTLFLAG_RD, &sc->hn_tx_ring_cnt, 0, "# created TX rings"); SYSCTL_ADD_INT(ctx, child, OID_AUTO, "tx_ring_inuse", CTLFLAG_RD, &sc->hn_tx_ring_inuse, 0, "# used TX rings"); + SYSCTL_ADD_INT(ctx, child, OID_AUTO, "agg_szmax", + CTLFLAG_RD, &sc->hn_tx_ring[0].hn_agg_szmax, 0, + "Applied packet transmission aggregation size"); + SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "agg_pktmax", + CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_MPSAFE, sc, 0, + hn_txagg_pktmax_sysctl, "I", + "Applied packet transmission aggregation packets"); + SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "agg_align", + CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_MPSAFE, sc, 0, + hn_txagg_align_sysctl, "I", + "Applied packet transmission aggregation alignment"); return 0; } @@ -3222,7 +3778,7 @@ hn_set_chim_size(struct hn_softc *sc, int chim_size) { int i; - for (i = 0; i < sc->hn_tx_ring_inuse; ++i) + for (i = 0; i < sc->hn_tx_ring_cnt; ++i) sc->hn_tx_ring[i].hn_chim_size = chim_size; } @@ -3272,12 +3828,10 @@ hn_fixup_tx_data(struct hn_softc *sc) csum_assist |= CSUM_IP_TCP; if (sc->hn_caps & HN_CAP_UDP4CS) csum_assist |= CSUM_IP_UDP; -#ifdef notyet if (sc->hn_caps & HN_CAP_TCP6CS) csum_assist |= CSUM_IP6_TCP; if (sc->hn_caps & HN_CAP_UDP6CS) csum_assist |= CSUM_IP6_UDP; -#endif for (i = 0; i < sc->hn_tx_ring_cnt; ++i) sc->hn_tx_ring[i].hn_csum_assist = csum_assist; @@ -3298,7 +3852,12 @@ hn_destroy_tx_data(struct hn_softc *sc) int i; if (sc->hn_chim != NULL) { - hyperv_dmamem_free(&sc->hn_chim_dma, sc->hn_chim); + if ((sc->hn_flags & HN_FLAG_CHIM_REF) == 0) { + hyperv_dmamem_free(&sc->hn_chim_dma, sc->hn_chim); + } else { + device_printf(sc->hn_dev, + "chimney sending buffer is referenced"); + } sc->hn_chim = NULL; } @@ -3332,18 +3891,20 @@ hn_start_locked(struct hn_tx_ring *txr, int len) { struct hn_softc *sc = txr->hn_sc; struct ifnet *ifp = sc->hn_ifp; + int sched = 0; KASSERT(hn_use_if_start, ("hn_start_locked is called, when if_start is disabled")); KASSERT(txr == &sc->hn_tx_ring[0], ("not the first TX ring")); mtx_assert(&txr->hn_tx_lock, MA_OWNED); + KASSERT(txr->hn_agg_txd == NULL, ("lingering aggregating txdesc")); if (__predict_false(txr->hn_suspended)) - return 0; + return (0); if ((ifp->if_drv_flags & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != IFF_DRV_RUNNING) - return 0; + return (0); while (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) { struct hn_txdesc *txd; @@ -3361,7 +3922,8 @@ hn_start_locked(struct hn_tx_ring *txr, int len) * following up packets) to tx taskqueue. */ IFQ_DRV_PREPEND(&ifp->if_snd, m_head); - return 1; + sched = 1; + break; } #if defined(INET6) || defined(INET) @@ -3382,21 +3944,50 @@ hn_start_locked(struct hn_tx_ring *txr, int len) break; } - error = hn_encap(txr, txd, &m_head); + error = hn_encap(ifp, txr, txd, &m_head); if (error) { /* Both txd and m_head are freed */ + KASSERT(txr->hn_agg_txd == NULL, + ("encap failed w/ pending aggregating txdesc")); continue; } - error = hn_txpkt(ifp, txr, txd); - if (__predict_false(error)) { - /* txd is freed, but m_head is not */ - IFQ_DRV_PREPEND(&ifp->if_snd, m_head); - atomic_set_int(&ifp->if_drv_flags, IFF_DRV_OACTIVE); - break; + if (txr->hn_agg_pktleft == 0) { + if (txr->hn_agg_txd != NULL) { + KASSERT(m_head == NULL, + ("pending mbuf for aggregating txdesc")); + error = hn_flush_txagg(ifp, txr); + if (__predict_false(error)) { + atomic_set_int(&ifp->if_drv_flags, + IFF_DRV_OACTIVE); + break; + } + } else { + KASSERT(m_head != NULL, ("mbuf was freed")); + error = hn_txpkt(ifp, txr, txd); + if (__predict_false(error)) { + /* txd is freed, but m_head is not */ + IFQ_DRV_PREPEND(&ifp->if_snd, m_head); + atomic_set_int(&ifp->if_drv_flags, + IFF_DRV_OACTIVE); + break; + } + } + } +#ifdef INVARIANTS + else { + KASSERT(txr->hn_agg_txd != NULL, + ("no aggregating txdesc")); + KASSERT(m_head == NULL, + ("pending mbuf for aggregating txdesc")); } +#endif } - return 0; + + /* Flush pending aggerated transmission. */ + if (txr->hn_agg_txd != NULL) + hn_flush_txagg(ifp, txr); + return (sched); } static void @@ -3473,18 +4064,20 @@ hn_xmit(struct hn_tx_ring *txr, int len) struct hn_softc *sc = txr->hn_sc; struct ifnet *ifp = sc->hn_ifp; struct mbuf *m_head; + int sched = 0; mtx_assert(&txr->hn_tx_lock, MA_OWNED); #ifdef HN_IFSTART_SUPPORT KASSERT(hn_use_if_start == 0, ("hn_xmit is called, when if_start is enabled")); #endif + KASSERT(txr->hn_agg_txd == NULL, ("lingering aggregating txdesc")); if (__predict_false(txr->hn_suspended)) - return 0; + return (0); if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0 || txr->hn_oactive) - return 0; + return (0); while ((m_head = drbr_peek(ifp, txr->hn_mbuf_br)) != NULL) { struct hn_txdesc *txd; @@ -3497,7 +4090,8 @@ hn_xmit(struct hn_tx_ring *txr, int len) * following up packets) to tx taskqueue. */ drbr_putback(ifp, txr->hn_mbuf_br, m_head); - return 1; + sched = 1; + break; } txd = hn_txdesc_get(txr); @@ -3508,25 +4102,53 @@ hn_xmit(struct hn_tx_ring *txr, int len) break; } - error = hn_encap(txr, txd, &m_head); + error = hn_encap(ifp, txr, txd, &m_head); if (error) { /* Both txd and m_head are freed; discard */ + KASSERT(txr->hn_agg_txd == NULL, + ("encap failed w/ pending aggregating txdesc")); drbr_advance(ifp, txr->hn_mbuf_br); continue; } - error = hn_txpkt(ifp, txr, txd); - if (__predict_false(error)) { - /* txd is freed, but m_head is not */ - drbr_putback(ifp, txr->hn_mbuf_br, m_head); - txr->hn_oactive = 1; - break; + if (txr->hn_agg_pktleft == 0) { + if (txr->hn_agg_txd != NULL) { + KASSERT(m_head == NULL, + ("pending mbuf for aggregating txdesc")); + error = hn_flush_txagg(ifp, txr); + if (__predict_false(error)) { + txr->hn_oactive = 1; + break; + } + } else { + KASSERT(m_head != NULL, ("mbuf was freed")); + error = hn_txpkt(ifp, txr, txd); + if (__predict_false(error)) { + /* txd is freed, but m_head is not */ + drbr_putback(ifp, txr->hn_mbuf_br, + m_head); + txr->hn_oactive = 1; + break; + } + } + } +#ifdef INVARIANTS + else { + KASSERT(txr->hn_agg_txd != NULL, + ("no aggregating txdesc")); + KASSERT(m_head == NULL, + ("pending mbuf for aggregating txdesc")); } +#endif /* Sent */ drbr_advance(ifp, txr->hn_mbuf_br); } - return 0; + + /* Flush pending aggerated transmission. */ + if (txr->hn_agg_txd != NULL) + hn_flush_txagg(ifp, txr); + return (sched); } static int @@ -3695,7 +4317,7 @@ hn_chan_attach(struct hn_softc *sc, struct vmbus_channel *chan) } /* Bind this channel to a proper CPU. */ - vmbus_chan_cpu_set(chan, (sc->hn_cpu + idx) % mp_ncpus); + vmbus_chan_cpu_set(chan, HN_RING_IDX2CPU(sc, idx)); /* * Open this channel @@ -3706,11 +4328,14 @@ hn_chan_attach(struct hn_softc *sc, struct vmbus_channel *chan) cbr.cbr_rxsz = HN_RXBR_SIZE; error = vmbus_chan_open_br(chan, &cbr, NULL, 0, hn_chan_callback, rxr); if (error) { - if_printf(sc->hn_ifp, "open chan%u failed: %d\n", - vmbus_chan_id(chan), error); - rxr->hn_rx_flags &= ~HN_RX_FLAG_ATTACHED; - if (txr != NULL) - txr->hn_tx_flags &= ~HN_TX_FLAG_ATTACHED; + if (error == EISCONN) { + if_printf(sc->hn_ifp, "bufring is connected after " + "chan%u open failure\n", vmbus_chan_id(chan)); + rxr->hn_rx_flags |= HN_RX_FLAG_BR_REF; + } else { + if_printf(sc->hn_ifp, "open chan%u failed: %d\n", + vmbus_chan_id(chan), error); + } } return (error); } @@ -3719,7 +4344,7 @@ static void hn_chan_detach(struct hn_softc *sc, struct vmbus_channel *chan) { struct hn_rx_ring *rxr; - int idx; + int idx, error; idx = vmbus_chan_subidx(chan); @@ -3748,7 +4373,15 @@ hn_chan_detach(struct hn_softc *sc, struct vmbus_channel *chan) * NOTE: * Channel closing does _not_ destroy the target channel. */ - vmbus_chan_close(chan); + error = vmbus_chan_close_direct(chan); + if (error == EISCONN) { + if_printf(sc->hn_ifp, "chan%u bufring is connected " + "after being closed\n", vmbus_chan_id(chan)); + rxr->hn_rx_flags |= HN_RX_FLAG_BR_REF; + } else if (error) { + if_printf(sc->hn_ifp, "chan%u close failed: %d\n", + vmbus_chan_id(chan), error); + } } static int @@ -3758,15 +4391,18 @@ hn_attach_subchans(struct hn_softc *sc) int subchan_cnt = sc->hn_rx_ring_inuse - 1; int i, error = 0; - if (subchan_cnt == 0) - return (0); + KASSERT(subchan_cnt > 0, ("no sub-channels")); /* Attach the sub-channels. */ subchans = vmbus_subchan_get(sc->hn_prichan, subchan_cnt); for (i = 0; i < subchan_cnt; ++i) { - error = hn_chan_attach(sc, subchans[i]); - if (error) - break; + int error1; + + error1 = hn_chan_attach(sc, subchans[i]); + if (error1) { + error = error1; + /* Move on; all channels will be detached later. */ + } } vmbus_subchan_rel(subchans, subchan_cnt); @@ -3878,16 +4514,39 @@ hn_synth_alloc_subchans(struct hn_softc *sc, int *nsubch) return (0); } +static bool +hn_synth_attachable(const struct hn_softc *sc) +{ + int i; + + if (sc->hn_flags & HN_FLAG_ERRORS) + return (false); + + for (i = 0; i < sc->hn_rx_ring_cnt; ++i) { + const struct hn_rx_ring *rxr = &sc->hn_rx_ring[i]; + + if (rxr->hn_rx_flags & HN_RX_FLAG_BR_REF) + return (false); + } + return (true); +} + static int hn_synth_attach(struct hn_softc *sc, int mtu) { +#define ATTACHED_NVS 0x0002 +#define ATTACHED_RNDIS 0x0004 + struct ndis_rssprm_toeplitz *rss = &sc->hn_rss; int error, nsubch, nchan, i; - uint32_t old_caps; + uint32_t old_caps, attached = 0; KASSERT((sc->hn_flags & HN_FLAG_SYNTH_ATTACHED) == 0, ("synthetic parts were attached")); + if (!hn_synth_attachable(sc)) + return (ENXIO); + /* Save capabilities for later verification. */ old_caps = sc->hn_caps; sc->hn_caps = 0; @@ -3901,21 +4560,23 @@ hn_synth_attach(struct hn_softc *sc, int mtu) */ error = hn_chan_attach(sc, sc->hn_prichan); if (error) - return (error); + goto failed; /* * Attach NVS. */ error = hn_nvs_attach(sc, mtu); if (error) - return (error); + goto failed; + attached |= ATTACHED_NVS; /* * Attach RNDIS _after_ NVS is attached. */ error = hn_rndis_attach(sc, mtu); if (error) - return (error); + goto failed; + attached |= ATTACHED_RNDIS; /* * Make sure capabilities are not changed. @@ -3923,9 +4584,8 @@ hn_synth_attach(struct hn_softc *sc, int mtu) if (device_is_attached(sc->hn_dev) && old_caps != sc->hn_caps) { if_printf(sc->hn_ifp, "caps mismatch old 0x%08x, new 0x%08x\n", old_caps, sc->hn_caps); - /* Restore old capabilities and abort. */ - sc->hn_caps = old_caps; - return ENXIO; + error = ENXIO; + goto failed; } /* @@ -3938,19 +4598,34 @@ hn_synth_attach(struct hn_softc *sc, int mtu) nsubch = sc->hn_rx_ring_cnt - 1; error = hn_synth_alloc_subchans(sc, &nsubch); if (error) - return (error); + goto failed; + /* NOTE: _Full_ synthetic parts detach is required now. */ + sc->hn_flags |= HN_FLAG_SYNTH_ATTACHED; + /* + * Set the # of TX/RX rings that could be used according to + * the # of channels that NVS offered. + */ nchan = nsubch + 1; + hn_set_ring_inuse(sc, nchan); if (nchan == 1) { /* Only the primary channel can be used; done */ goto back; } /* - * Configure RSS key and indirect table _after_ all sub-channels - * are allocated. + * Attach the sub-channels. + * + * NOTE: hn_set_ring_inuse() _must_ have been called. */ + error = hn_attach_subchans(sc); + if (error) + goto failed; + /* + * Configure RSS key and indirect table _after_ all sub-channels + * are attached. + */ if ((sc->hn_flags & HN_FLAG_HAS_RSSKEY) == 0) { /* * RSS key is not set yet; set it to the default RSS key. @@ -3978,34 +4653,38 @@ hn_synth_attach(struct hn_softc *sc, int mtu) * # of usable channels may be changed, so we have to * make sure that all entries in RSS indirect table * are valid. + * + * NOTE: hn_set_ring_inuse() _must_ have been called. */ - hn_rss_ind_fixup(sc, nchan); + hn_rss_ind_fixup(sc); } error = hn_rndis_conf_rss(sc, NDIS_RSS_FLAG_NONE); - if (error) { - /* - * Failed to configure RSS key or indirect table; only - * the primary channel can be used. - */ - nchan = 1; - } + if (error) + goto failed; back: /* - * Set the # of TX/RX rings that could be used according to - * the # of channels that NVS offered. + * Fixup transmission aggregation setup. */ - hn_set_ring_inuse(sc, nchan); + hn_set_txagg(sc); + return (0); - /* - * Attach the sub-channels, if any. - */ - error = hn_attach_subchans(sc); - if (error) - return (error); +failed: + if (sc->hn_flags & HN_FLAG_SYNTH_ATTACHED) { + hn_synth_detach(sc); + } else { + if (attached & ATTACHED_RNDIS) + hn_rndis_detach(sc); + if (attached & ATTACHED_NVS) + hn_nvs_detach(sc); + hn_chan_detach(sc, sc->hn_prichan); + /* Restore old capabilities. */ + sc->hn_caps = old_caps; + } + return (error); - sc->hn_flags |= HN_FLAG_SYNTH_ATTACHED; - return (0); +#undef ATTACHED_RNDIS +#undef ATTACHED_NVS } /* @@ -4016,7 +4695,6 @@ back: static void hn_synth_detach(struct hn_softc *sc) { - HN_LOCK_ASSERT(sc); KASSERT(sc->hn_flags & HN_FLAG_SYNTH_ATTACHED, ("synthetic parts were not attached")); @@ -4052,10 +4730,17 @@ hn_set_ring_inuse(struct hn_softc *sc, int ring_cnt) } static void -hn_chan_drain(struct vmbus_channel *chan) +hn_chan_drain(struct hn_softc *sc, struct vmbus_channel *chan) { - while (!vmbus_chan_rx_empty(chan) || !vmbus_chan_tx_empty(chan)) + /* + * NOTE: + * The TX bufring will not be drained by the hypervisor, + * if the primary channel is revoked. + */ + while (!vmbus_chan_rx_empty(chan) || + (!vmbus_chan_is_revoked(sc->hn_prichan) && + !vmbus_chan_tx_empty(chan))) pause("waitch", 1); vmbus_chan_intr_drain(chan); } @@ -4064,6 +4749,7 @@ static void hn_suspend_data(struct hn_softc *sc) { struct vmbus_channel **subch = NULL; + struct hn_tx_ring *txr; int i, nsubch; HN_LOCK_ASSERT(sc); @@ -4072,26 +4758,29 @@ hn_suspend_data(struct hn_softc *sc) * Suspend TX. */ for (i = 0; i < sc->hn_tx_ring_inuse; ++i) { - struct hn_tx_ring *txr = &sc->hn_tx_ring[i]; + txr = &sc->hn_tx_ring[i]; mtx_lock(&txr->hn_tx_lock); txr->hn_suspended = 1; mtx_unlock(&txr->hn_tx_lock); /* No one is able send more packets now. */ - /* Wait for all pending sends to finish. */ - while (hn_tx_ring_pending(txr)) + /* + * Wait for all pending sends to finish. + * + * NOTE: + * We will _not_ receive all pending send-done, if the + * primary channel is revoked. + */ + while (hn_tx_ring_pending(txr) && + !vmbus_chan_is_revoked(sc->hn_prichan)) pause("hnwtx", 1 /* 1 tick */); - - taskqueue_drain(txr->hn_tx_taskq, &txr->hn_tx_task); - taskqueue_drain(txr->hn_tx_taskq, &txr->hn_txeof_task); } /* * Disable RX by clearing RX filter. */ - sc->hn_rx_filter = NDIS_PACKET_TYPE_NONE; - hn_rndis_set_rxfilter(sc, sc->hn_rx_filter); + hn_set_rxfilter(sc, NDIS_PACKET_TYPE_NONE); /* * Give RNDIS enough time to flush all pending data packets. @@ -4107,12 +4796,27 @@ hn_suspend_data(struct hn_softc *sc) if (subch != NULL) { for (i = 0; i < nsubch; ++i) - hn_chan_drain(subch[i]); + hn_chan_drain(sc, subch[i]); } - hn_chan_drain(sc->hn_prichan); + hn_chan_drain(sc, sc->hn_prichan); if (subch != NULL) vmbus_subchan_rel(subch, nsubch); + + /* + * Drain any pending TX tasks. + * + * NOTE: + * The above hn_chan_drain() can dispatch TX tasks, so the TX + * tasks will have to be drained _after_ the above hn_chan_drain() + * calls. + */ + for (i = 0; i < sc->hn_tx_ring_inuse; ++i) { + txr = &sc->hn_tx_ring[i]; + + taskqueue_drain(txr->hn_tx_taskq, &txr->hn_tx_task); + taskqueue_drain(txr->hn_tx_taskq, &txr->hn_txeof_task); + } } static void @@ -4148,6 +4852,9 @@ static void hn_suspend(struct hn_softc *sc) { + /* Disable polling. */ + hn_polling(sc, 0); + if (sc->hn_ifp->if_drv_flags & IFF_DRV_RUNNING) hn_suspend_data(sc); hn_suspend_mgmt(sc); @@ -4180,7 +4887,7 @@ hn_resume_data(struct hn_softc *sc) /* * Re-enable RX. */ - hn_set_rxfilter(sc); + hn_rxfilter_config(sc); /* * Make sure to clear suspend status on "all" TX rings, @@ -4240,6 +4947,13 @@ hn_resume(struct hn_softc *sc) if (sc->hn_ifp->if_drv_flags & IFF_DRV_RUNNING) hn_resume_data(sc); hn_resume_mgmt(sc); + + /* + * Re-enable polling if this interface is running and + * the polling is requested. + */ + if ((sc->hn_ifp->if_drv_flags & IFF_DRV_RUNNING) && sc->hn_pollhz > 0) + hn_polling(sc, sc->hn_pollhz); } static void @@ -4758,27 +5472,42 @@ hn_chan_callback(struct vmbus_channel *chan, void *xrxr) static void hn_tx_taskq_create(void *arg __unused) { + int i; + + /* + * Fix the # of TX taskqueues. + */ + if (hn_tx_taskq_cnt <= 0) + hn_tx_taskq_cnt = 1; + else if (hn_tx_taskq_cnt > mp_ncpus) + hn_tx_taskq_cnt = mp_ncpus; + + /* + * Fix the TX taskqueue mode. + */ + switch (hn_tx_taskq_mode) { + case HN_TX_TASKQ_M_INDEP: + case HN_TX_TASKQ_M_GLOBAL: + case HN_TX_TASKQ_M_EVTTQ: + break; + default: + hn_tx_taskq_mode = HN_TX_TASKQ_M_INDEP; + break; + } if (vm_guest != VM_GUEST_HV) return; - if (!hn_share_tx_taskq) + if (hn_tx_taskq_mode != HN_TX_TASKQ_M_GLOBAL) return; - hn_tx_taskq = taskqueue_create("hn_tx", M_WAITOK, - taskqueue_thread_enqueue, &hn_tx_taskq); - taskqueue_start_threads(&hn_tx_taskq, 1, PI_NET, "hn tx"); - if (hn_bind_tx_taskq >= 0) { - int cpu = hn_bind_tx_taskq; - struct task cpuset_task; - cpuset_t cpu_set; - - if (cpu > mp_ncpus - 1) - cpu = mp_ncpus - 1; - CPU_SETOF(cpu, &cpu_set); - TASK_INIT(&cpuset_task, 0, hn_cpuset_setthread_task, &cpu_set); - taskqueue_enqueue(hn_tx_taskq, &cpuset_task); - taskqueue_drain(hn_tx_taskq, &cpuset_task); + hn_tx_taskque = malloc(hn_tx_taskq_cnt * sizeof(struct taskqueue *), + M_DEVBUF, M_WAITOK); + for (i = 0; i < hn_tx_taskq_cnt; ++i) { + hn_tx_taskque[i] = taskqueue_create("hn_tx", M_WAITOK, + taskqueue_thread_enqueue, &hn_tx_taskque[i]); + taskqueue_start_threads(&hn_tx_taskque[i], 1, PI_NET, + "hn tx%d", i); } } SYSINIT(hn_txtq_create, SI_SUB_DRIVERS, SI_ORDER_SECOND, @@ -4788,8 +5517,13 @@ static void hn_tx_taskq_destroy(void *arg __unused) { - if (hn_tx_taskq != NULL) - taskqueue_free(hn_tx_taskq); + if (hn_tx_taskque != NULL) { + int i; + + for (i = 0; i < hn_tx_taskq_cnt; ++i) + taskqueue_free(hn_tx_taskque[i]); + free(hn_tx_taskque, M_DEVBUF); + } } SYSUNINIT(hn_txtq_destroy, SI_SUB_DRIVERS, SI_ORDER_SECOND, hn_tx_taskq_destroy, NULL); diff --git a/sys/dev/hyperv/netvsc/if_hnvar.h b/sys/dev/hyperv/netvsc/if_hnvar.h index 3b319a8..7d5d912 100644 --- a/sys/dev/hyperv/netvsc/if_hnvar.h +++ b/sys/dev/hyperv/netvsc/if_hnvar.h @@ -91,7 +91,8 @@ struct hn_rx_ring { #define HN_TRUST_HCSUM_TCP 0x0002 #define HN_TRUST_HCSUM_UDP 0x0004 -#define HN_RX_FLAG_ATTACHED 0x1 +#define HN_RX_FLAG_ATTACHED 0x0001 +#define HN_RX_FLAG_BR_REF 0x0002 struct hn_tx_ring { #ifndef HN_USE_TXDESC_BUFRING @@ -125,6 +126,22 @@ struct hn_tx_ring { bus_dma_tag_t hn_tx_data_dtag; uint64_t hn_csum_assist; + /* Applied packet transmission aggregation limits. */ + int hn_agg_szmax; + short hn_agg_pktmax; + short hn_agg_align; + + /* Packet transmission aggregation states. */ + struct hn_txdesc *hn_agg_txd; + int hn_agg_szleft; + short hn_agg_pktleft; + struct rndis_packet_msg *hn_agg_prevpkt; + + /* Temporary stats for each sends. */ + int hn_stat_size; + short hn_stat_pkts; + short hn_stat_mcasts; + int (*hn_sendpkt)(struct hn_tx_ring *, struct hn_txdesc *); int hn_suspended; int hn_gpa_cnt; @@ -137,6 +154,8 @@ struct hn_tx_ring { u_long hn_tx_chimney_tried; u_long hn_tx_chimney; u_long hn_pkts; + u_long hn_sends; + u_long hn_flush_failed; /* Rarely used stuffs */ struct hn_txdesc *hn_txdesc; @@ -144,8 +163,8 @@ struct hn_tx_ring { struct sysctl_oid *hn_tx_sysctl_tree; } __aligned(CACHE_LINE_SIZE); -#define HN_TX_FLAG_ATTACHED 0x1 -#define HN_TX_FLAG_HASHVAL 0x2 /* support HASHVAL pktinfo */ +#define HN_TX_FLAG_ATTACHED 0x0001 +#define HN_TX_FLAG_HASHVAL 0x0002 /* support HASHVAL pktinfo */ /* * Device-specific softc structure @@ -174,13 +193,17 @@ struct hn_softc { int hn_chim_szmax; int hn_cpu; - struct taskqueue *hn_tx_taskq; + struct taskqueue **hn_tx_taskqs; struct sysctl_oid *hn_tx_sysctl_tree; struct sysctl_oid *hn_rx_sysctl_tree; struct vmbus_xact_ctx *hn_xact; uint32_t hn_nvs_ver; uint32_t hn_rx_filter; + /* Packet transmission aggregation user settings. */ + int hn_agg_size; + int hn_agg_pkts; + struct taskqueue *hn_mgmt_taskq; struct taskqueue *hn_mgmt_taskq0; struct task hn_link_task; @@ -190,6 +213,8 @@ struct hn_softc { uint32_t hn_caps; /* HN_CAP_ */ uint32_t hn_flags; /* HN_FLAG_ */ + u_int hn_pollhz; + void *hn_rxbuf; uint32_t hn_rxbuf_gpadl; struct hyperv_dma hn_rxbuf_dma; @@ -201,6 +226,9 @@ struct hn_softc { uint32_t hn_ndis_ver; int hn_ndis_tso_szmax; int hn_ndis_tso_sgmin; + uint32_t hn_rndis_agg_size; + uint32_t hn_rndis_agg_pkts; + uint32_t hn_rndis_agg_align; int hn_rss_ind_size; uint32_t hn_rss_hash; /* NDIS_HASH_ */ @@ -212,6 +240,24 @@ struct hn_softc { #define HN_FLAG_HAS_RSSKEY 0x0004 #define HN_FLAG_HAS_RSSIND 0x0008 #define HN_FLAG_SYNTH_ATTACHED 0x0010 +#define HN_FLAG_NO_SLEEPING 0x0020 +#define HN_FLAG_RXBUF_REF 0x0040 +#define HN_FLAG_CHIM_REF 0x0080 + +#define HN_FLAG_ERRORS (HN_FLAG_RXBUF_REF | HN_FLAG_CHIM_REF) + +#define HN_NO_SLEEPING(sc) \ +do { \ + (sc)->hn_flags |= HN_FLAG_NO_SLEEPING; \ +} while (0) + +#define HN_SLEEPING_OK(sc) \ +do { \ + (sc)->hn_flags &= ~HN_FLAG_NO_SLEEPING; \ +} while (0) + +#define HN_CAN_SLEEP(sc) \ + (((sc)->hn_flags & HN_FLAG_NO_SLEEPING) == 0) #define HN_CAP_VLAN 0x0001 #define HN_CAP_MTU 0x0002 diff --git a/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c b/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c index 33cbed7..f186457 100644 --- a/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c +++ b/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c @@ -147,6 +147,10 @@ static u_int hv_storvsc_max_io = 512; SYSCTL_UINT(_hw_storvsc, OID_AUTO, max_io, CTLFLAG_RDTUN, &hv_storvsc_max_io, 0, "Hyper-V storage max io limit"); +static int hv_storvsc_chan_cnt = 0; +SYSCTL_INT(_hw_storvsc, OID_AUTO, chan_cnt, CTLFLAG_RDTUN, + &hv_storvsc_chan_cnt, 0, "# of channels to use"); + #define STORVSC_MAX_IO \ vmbus_chan_prplist_nelem(hv_storvsc_ringbuffer_size, \ STORVSC_DATA_SEGCNT_MAX, VSTOR_PKT_SIZE) @@ -385,16 +389,16 @@ storvsc_subchan_attach(struct storvsc_softc *sc, * @param max_chans the max channels supported by vmbus */ static void -storvsc_send_multichannel_request(struct storvsc_softc *sc, int max_chans) +storvsc_send_multichannel_request(struct storvsc_softc *sc, int max_subch) { struct vmbus_channel **subchan; struct hv_storvsc_request *request; struct vstor_packet *vstor_packet; - int request_channels_cnt = 0; + int request_subch; int ret, i; - /* get multichannels count that need to create */ - request_channels_cnt = MIN(max_chans, mp_ncpus); + /* get sub-channel count that need to create */ + request_subch = MIN(max_subch, mp_ncpus - 1); request = &sc->hs_init_req; @@ -407,19 +411,13 @@ storvsc_send_multichannel_request(struct storvsc_softc *sc, int max_chans) vstor_packet->operation = VSTOR_OPERATION_CREATE_MULTI_CHANNELS; vstor_packet->flags = REQUEST_COMPLETION_FLAG; - vstor_packet->u.multi_channels_cnt = request_channels_cnt; + vstor_packet->u.multi_channels_cnt = request_subch; ret = vmbus_chan_send(sc->hs_chan, VMBUS_CHANPKT_TYPE_INBAND, VMBUS_CHANPKT_FLAG_RC, vstor_packet, VSTOR_PKT_SIZE, (uint64_t)(uintptr_t)request); - /* wait for 5 seconds */ - ret = sema_timedwait(&request->synch_sema, 5 * hz); - if (ret != 0) { - printf("Storvsc_error: create multi-channel timeout, %d\n", - ret); - return; - } + sema_wait(&request->synch_sema); if (vstor_packet->operation != VSTOR_OPERATION_COMPLETEIO || vstor_packet->status != 0) { @@ -430,17 +428,17 @@ storvsc_send_multichannel_request(struct storvsc_softc *sc, int max_chans) } /* Update channel count */ - sc->hs_nchan = request_channels_cnt + 1; + sc->hs_nchan = request_subch + 1; /* Wait for sub-channels setup to complete. */ - subchan = vmbus_subchan_get(sc->hs_chan, request_channels_cnt); + subchan = vmbus_subchan_get(sc->hs_chan, request_subch); /* Attach the sub-channels. */ - for (i = 0; i < request_channels_cnt; ++i) + for (i = 0; i < request_subch; ++i) storvsc_subchan_attach(sc, subchan[i]); /* Release the sub-channels. */ - vmbus_subchan_rel(subchan, request_channels_cnt); + vmbus_subchan_rel(subchan, request_subch); if (bootverbose) printf("Storvsc create multi-channel success!\n"); @@ -458,11 +456,11 @@ hv_storvsc_channel_init(struct storvsc_softc *sc) int ret = 0, i; struct hv_storvsc_request *request; struct vstor_packet *vstor_packet; - uint16_t max_chans = 0; - boolean_t support_multichannel = FALSE; + uint16_t max_subch; + boolean_t support_multichannel; uint32_t version; - max_chans = 0; + max_subch = 0; support_multichannel = FALSE; request = &sc->hs_init_req; @@ -486,10 +484,7 @@ hv_storvsc_channel_init(struct storvsc_softc *sc) if (ret != 0) goto cleanup; - /* wait 5 seconds */ - ret = sema_timedwait(&request->synch_sema, 5 * hz); - if (ret != 0) - goto cleanup; + sema_wait(&request->synch_sema); if (vstor_packet->operation != VSTOR_OPERATION_COMPLETEIO || vstor_packet->status != 0) { @@ -516,11 +511,7 @@ hv_storvsc_channel_init(struct storvsc_softc *sc) if (ret != 0) goto cleanup; - /* wait 5 seconds */ - ret = sema_timedwait(&request->synch_sema, 5 * hz); - - if (ret) - goto cleanup; + sema_wait(&request->synch_sema); if (vstor_packet->operation != VSTOR_OPERATION_COMPLETEIO) { ret = EINVAL; @@ -555,11 +546,7 @@ hv_storvsc_channel_init(struct storvsc_softc *sc) if ( ret != 0) goto cleanup; - /* wait 5 seconds */ - ret = sema_timedwait(&request->synch_sema, 5 * hz); - - if (ret != 0) - goto cleanup; + sema_wait(&request->synch_sema); /* TODO: Check returned version */ if (vstor_packet->operation != VSTOR_OPERATION_COMPLETEIO || @@ -567,14 +554,21 @@ hv_storvsc_channel_init(struct storvsc_softc *sc) goto cleanup; } + max_subch = vstor_packet->u.chan_props.max_channel_cnt; + if (hv_storvsc_chan_cnt > 0 && hv_storvsc_chan_cnt < (max_subch + 1)) + max_subch = hv_storvsc_chan_cnt - 1; + /* multi-channels feature is supported by WIN8 and above version */ - max_chans = vstor_packet->u.chan_props.max_channel_cnt; version = VMBUS_GET_VERSION(device_get_parent(sc->hs_dev), sc->hs_dev); if (version != VMBUS_VERSION_WIN7 && version != VMBUS_VERSION_WS2008 && (vstor_packet->u.chan_props.flags & HV_STORAGE_SUPPORTS_MULTI_CHANNEL)) { support_multichannel = TRUE; } + if (bootverbose) { + device_printf(sc->hs_dev, "max chans %d%s\n", max_subch + 1, + support_multichannel ? ", multi-chan capable" : ""); + } memset(vstor_packet, 0, sizeof(struct vstor_packet)); vstor_packet->operation = VSTOR_OPERATION_ENDINITIALIZATION; @@ -588,11 +582,7 @@ hv_storvsc_channel_init(struct storvsc_softc *sc) goto cleanup; } - /* wait 5 seconds */ - ret = sema_timedwait(&request->synch_sema, 5 * hz); - - if (ret != 0) - goto cleanup; + sema_wait(&request->synch_sema); if (vstor_packet->operation != VSTOR_OPERATION_COMPLETEIO || vstor_packet->status != 0) @@ -602,8 +592,8 @@ hv_storvsc_channel_init(struct storvsc_softc *sc) * If multi-channel is supported, send multichannel create * request to host. */ - if (support_multichannel) - storvsc_send_multichannel_request(sc, max_chans); + if (support_multichannel && max_subch > 0) + storvsc_send_multichannel_request(sc, max_subch); cleanup: sema_destroy(&request->synch_sema); return (ret); @@ -672,12 +662,7 @@ hv_storvsc_host_reset(struct storvsc_softc *sc) goto cleanup; } - ret = sema_timedwait(&request->synch_sema, 5 * hz); /* KYS 5 seconds */ - - if (ret) { - goto cleanup; - } - + sema_wait(&request->synch_sema); /* * At this point, all outstanding requests in the adapter @@ -2079,6 +2064,19 @@ create_storvsc_request(union ccb *ccb, struct hv_storvsc_request *reqp) return(0); } +static uint32_t +is_scsi_valid(const struct scsi_inquiry_data *inq_data) +{ + u_int8_t type; + + type = SID_TYPE(inq_data); + if (type == T_NODEVICE) + return (0); + if (SID_QUAL(inq_data) == SID_QUAL_BAD_LU) + return (0); + return (1); +} + /** * @brief completion function before returning to CAM * @@ -2097,6 +2095,7 @@ storvsc_io_done(struct hv_storvsc_request *reqp) struct vmscsi_req *vm_srb = &reqp->vstor_packet.u.vm_srb; bus_dma_segment_t *ori_sglist = NULL; int ori_sg_count = 0; + /* destroy bounce buffer if it is used */ if (reqp->bounce_sgl_count) { ori_sglist = (bus_dma_segment_t *)ccb->csio.data_ptr; @@ -2151,6 +2150,7 @@ storvsc_io_done(struct hv_storvsc_request *reqp) ccb->ccb_h.status &= ~CAM_STATUS_MASK; if (vm_srb->scsi_status == SCSI_STATUS_OK) { const struct scsi_generic *cmd; + cmd = (const struct scsi_generic *) ((ccb->ccb_h.flags & CAM_CDB_POINTER) ? csio->cdb_io.cdb_ptr : csio->cdb_io.cdb_bytes); @@ -2190,32 +2190,47 @@ storvsc_io_done(struct hv_storvsc_request *reqp) ccb->ccb_h.status |= CAM_REQ_CMP; } - if (cmd->opcode == INQUIRY) { + if (cmd->opcode == INQUIRY && + vm_srb->srb_status == SRB_STATUS_SUCCESS) { + int resp_xfer_len, resp_buf_len, data_len; + uint8_t *resp_buf = (uint8_t *)csio->data_ptr; struct scsi_inquiry_data *inq_data = (struct scsi_inquiry_data *)csio->data_ptr; - uint8_t *resp_buf = (uint8_t *)csio->data_ptr; - int resp_xfer_len, resp_buf_len, data_len; /* Get the buffer length reported by host */ resp_xfer_len = vm_srb->transfer_len; + /* Get the available buffer length */ resp_buf_len = resp_xfer_len >= 5 ? resp_buf[4] + 5 : 0; data_len = (resp_buf_len < resp_xfer_len) ? resp_buf_len : resp_xfer_len; - if (bootverbose && data_len >= 5) { xpt_print(ccb->ccb_h.path, "storvsc inquiry " "(%d) [%x %x %x %x %x ... ]\n", data_len, resp_buf[0], resp_buf[1], resp_buf[2], resp_buf[3], resp_buf[4]); } - if (vm_srb->srb_status == SRB_STATUS_SUCCESS && - data_len >= SHORT_INQUIRY_LENGTH) { + /* + * XXX: Manually fix the wrong response returned from WS2012 + */ + if (!is_scsi_valid(inq_data) && + (vmstor_proto_version == VMSTOR_PROTOCOL_VERSION_WIN8_1 || + vmstor_proto_version == VMSTOR_PROTOCOL_VERSION_WIN8 || + vmstor_proto_version == VMSTOR_PROTOCOL_VERSION_WIN7)) { + if (data_len >= 4 && + (resp_buf[2] == 0 || resp_buf[3] == 0)) { + resp_buf[2] = 5; // verion=5 means SPC-3 + resp_buf[3] = 2; // resp fmt must be 2 + if (bootverbose) + xpt_print(ccb->ccb_h.path, + "fix version and resp fmt for 0x%x\n", + vmstor_proto_version); + } + } else if (data_len >= SHORT_INQUIRY_LENGTH) { char vendor[16]; cam_strvis(vendor, inq_data->vendor, sizeof(inq_data->vendor), sizeof(vendor)); - /* * XXX: Upgrade SPC2 to SPC3 if host is WIN8 or * WIN2012 R2 in order to support UNMAP feature. diff --git a/sys/dev/hyperv/utilities/hv_kvp.c b/sys/dev/hyperv/utilities/hv_kvp.c index 3753c2f..48218b8 100644 --- a/sys/dev/hyperv/utilities/hv_kvp.c +++ b/sys/dev/hyperv/utilities/hv_kvp.c @@ -64,8 +64,8 @@ __FBSDID("$FreeBSD$"); #include <dev/hyperv/include/vmbus.h> #include <dev/hyperv/utilities/hv_utilreg.h> #include <dev/hyperv/utilities/vmbus_icreg.h> +#include <dev/hyperv/utilities/vmbus_icvar.h> -#include "hv_util.h" #include "unicode.h" #include "hv_kvp.h" #include "vmbus_if.h" @@ -128,7 +128,7 @@ static struct cdevsw hv_kvp_cdevsw = * KVP transaction requests from the host. */ typedef struct hv_kvp_sc { - struct hv_util_sc util_sc; + struct vmbus_ic_softc util_sc; device_t dev; /* Unless specified the pending mutex should be @@ -590,7 +590,7 @@ hv_kvp_process_request(void *context, int pending) hv_kvp_log_info("%s: entering hv_kvp_process_request\n", __func__); sc = (hv_kvp_sc*)context; - kvp_buf = sc->util_sc.receive_buffer;; + kvp_buf = sc->util_sc.ic_buf; channel = vmbus_get_channel(sc->dev); recvlen = sc->util_sc.ic_buflen; @@ -885,7 +885,7 @@ hv_kvp_attach(device_t dev) return (error); sc->hv_kvp_dev->si_drv1 = sc; - return hv_util_attach(dev, hv_kvp_callback); + return (vmbus_ic_attach(dev, hv_kvp_callback)); } static int @@ -900,7 +900,7 @@ hv_kvp_detach(device_t dev) } destroy_dev(sc->hv_kvp_dev); - return hv_util_detach(dev); + return (vmbus_ic_detach(dev)); } static device_method_t kvp_methods[] = { diff --git a/sys/dev/hyperv/utilities/hv_snapshot.c b/sys/dev/hyperv/utilities/hv_snapshot.c new file mode 100644 index 0000000..45defe1 --- /dev/null +++ b/sys/dev/hyperv/utilities/hv_snapshot.c @@ -0,0 +1,1061 @@ +/*- + * Copyright (c) 2016 Microsoft Corp. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice unmodified, this list of conditions, and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + +#include <sys/param.h> +#include <sys/kernel.h> +#include <sys/conf.h> +#include <sys/uio.h> +#include <sys/bus.h> +#include <sys/malloc.h> +#include <sys/mbuf.h> +#include <sys/module.h> +#include <sys/lock.h> +#include <sys/taskqueue.h> +#include <sys/selinfo.h> +#include <sys/sysctl.h> +#include <sys/poll.h> +#include <sys/proc.h> +#include <sys/queue.h> +#include <sys/kthread.h> +#include <sys/syscallsubr.h> +#include <sys/sysproto.h> +#include <sys/un.h> +#include <sys/endian.h> +#include <sys/sema.h> +#include <sys/signal.h> +#include <sys/syslog.h> +#include <sys/systm.h> +#include <sys/mutex.h> +#include <sys/callout.h> + +#include <dev/hyperv/include/hyperv.h> +#include <dev/hyperv/utilities/hv_utilreg.h> +#include <dev/hyperv/utilities/vmbus_icreg.h> +#include <dev/hyperv/utilities/vmbus_icvar.h> + +#include "hv_snapshot.h" +#include "vmbus_if.h" + +#define VSS_MAJOR 5 +#define VSS_MINOR 0 +#define VSS_MSGVER VMBUS_IC_VERSION(VSS_MAJOR, VSS_MINOR) + +#define VSS_FWVER_MAJOR 3 +#define VSS_FWVER VMBUS_IC_VERSION(VSS_FWVER_MAJOR, 0) + +#define TIMEOUT_LIMIT (15) // seconds +enum hv_vss_op { + VSS_OP_CREATE = 0, + VSS_OP_DELETE, + VSS_OP_HOT_BACKUP, + VSS_OP_GET_DM_INFO, + VSS_OP_BU_COMPLETE, + /* + * Following operations are only supported with IC version >= 5.0 + */ + VSS_OP_FREEZE, /* Freeze the file systems in the VM */ + VSS_OP_THAW, /* Unfreeze the file systems */ + VSS_OP_AUTO_RECOVER, + VSS_OP_COUNT /* Number of operations, must be last */ +}; + +/* + * Header for all VSS messages. + */ +struct hv_vss_hdr { + struct vmbus_icmsg_hdr ic_hdr; + uint8_t operation; + uint8_t reserved[7]; +} __packed; + + +/* + * Flag values for the hv_vss_check_feature. Here supports only + * one value. + */ +#define VSS_HBU_NO_AUTO_RECOVERY 0x00000005 + +struct hv_vss_check_feature { + uint32_t flags; +} __packed; + +struct hv_vss_check_dm_info { + uint32_t flags; +} __packed; + +struct hv_vss_msg { + union { + struct hv_vss_hdr vss_hdr; + } hdr; + union { + struct hv_vss_check_feature vss_cf; + struct hv_vss_check_dm_info dm_info; + } body; +} __packed; + +struct hv_vss_req { + struct hv_vss_opt_msg opt_msg; /* used to communicate with daemon */ + struct hv_vss_msg msg; /* used to communicate with host */ +} __packed; + +/* hv_vss debug control */ +static int hv_vss_log = 0; + +#define hv_vss_log_error(...) do { \ + if (hv_vss_log > 0) \ + log(LOG_ERR, "hv_vss: " __VA_ARGS__); \ +} while (0) + +#define hv_vss_log_info(...) do { \ + if (hv_vss_log > 1) \ + log(LOG_INFO, "hv_vss: " __VA_ARGS__); \ +} while (0) + +static const struct vmbus_ic_desc vmbus_vss_descs[] = { + { + .ic_guid = { .hv_guid = { + 0x29, 0x2e, 0xfa, 0x35, 0x23, 0xea, 0x36, 0x42, + 0x96, 0xae, 0x3a, 0x6e, 0xba, 0xcb, 0xa4, 0x40} }, + .ic_desc = "Hyper-V VSS" + }, + VMBUS_IC_DESC_END +}; + +static const char * vss_opt_name[] = {"None", "VSSCheck", "Freeze", "Thaw"}; + +/* character device prototypes */ +static d_open_t hv_vss_dev_open; +static d_close_t hv_vss_dev_close; +static d_poll_t hv_vss_dev_daemon_poll; +static d_ioctl_t hv_vss_dev_daemon_ioctl; + +static d_open_t hv_appvss_dev_open; +static d_close_t hv_appvss_dev_close; +static d_poll_t hv_appvss_dev_poll; +static d_ioctl_t hv_appvss_dev_ioctl; + +/* hv_vss character device structure */ +static struct cdevsw hv_vss_cdevsw = +{ + .d_version = D_VERSION, + .d_open = hv_vss_dev_open, + .d_close = hv_vss_dev_close, + .d_poll = hv_vss_dev_daemon_poll, + .d_ioctl = hv_vss_dev_daemon_ioctl, + .d_name = FS_VSS_DEV_NAME, +}; + +static struct cdevsw hv_appvss_cdevsw = +{ + .d_version = D_VERSION, + .d_open = hv_appvss_dev_open, + .d_close = hv_appvss_dev_close, + .d_poll = hv_appvss_dev_poll, + .d_ioctl = hv_appvss_dev_ioctl, + .d_name = APP_VSS_DEV_NAME, +}; + +struct hv_vss_sc; +/* + * Global state to track cdev + */ +struct hv_vss_dev_sc { + /* + * msg was transferred from host to notify queue, and + * ack queue. Finally, it was recyled to free list. + */ + STAILQ_HEAD(, hv_vss_req_internal) to_notify_queue; + STAILQ_HEAD(, hv_vss_req_internal) to_ack_queue; + struct hv_vss_sc *sc; + struct proc *proc_task; + struct selinfo hv_vss_selinfo; +}; +/* + * Global state to track and synchronize the transaction requests from the host. + * The VSS allows user to register their function to do freeze/thaw for application. + * VSS kernel will notify both vss daemon and user application if it is registered. + * The implementation state transition is illustrated by: + * https://clovertrail.github.io/assets/vssdot.png + */ +typedef struct hv_vss_sc { + struct vmbus_ic_softc util_sc; + device_t dev; + + struct task task; + + /* + * mutex is used to protect access of list/queue, + * callout in request is also used this mutex. + */ + struct mtx pending_mutex; + /* + * req_free_list contains all free items + */ + LIST_HEAD(, hv_vss_req_internal) req_free_list; + + /* Indicates if daemon registered with driver */ + boolean_t register_done; + + boolean_t app_register_done; + + /* cdev for file system freeze/thaw */ + struct cdev *hv_vss_dev; + /* cdev for application freeze/thaw */ + struct cdev *hv_appvss_dev; + + /* sc for app */ + struct hv_vss_dev_sc app_sc; + /* sc for deamon */ + struct hv_vss_dev_sc daemon_sc; +} hv_vss_sc; + +typedef struct hv_vss_req_internal { + LIST_ENTRY(hv_vss_req_internal) link; + STAILQ_ENTRY(hv_vss_req_internal) slink; + struct hv_vss_req vss_req; + + /* Rcv buffer for communicating with the host*/ + uint8_t *rcv_buf; + /* Length of host message */ + uint32_t host_msg_len; + /* Host message id */ + uint64_t host_msg_id; + + hv_vss_sc *sc; + + struct callout callout; +} hv_vss_req_internal; + +#define SEARCH_REMOVE_REQ_LOCKED(reqp, queue, link, tmp, id) \ + do { \ + STAILQ_FOREACH_SAFE(reqp, queue, link, tmp) { \ + if (reqp->vss_req.opt_msg.msgid == id) { \ + STAILQ_REMOVE(queue, \ + reqp, hv_vss_req_internal, link); \ + break; \ + } \ + } \ + } while (0) + +static bool +hv_vss_is_daemon_killed_after_launch(hv_vss_sc *sc) +{ + return (!sc->register_done && sc->daemon_sc.proc_task); +} + +/* + * Callback routine that gets called whenever there is a message from host + */ +static void +hv_vss_callback(struct vmbus_channel *chan __unused, void *context) +{ + hv_vss_sc *sc = (hv_vss_sc*)context; + if (hv_vss_is_daemon_killed_after_launch(sc)) + hv_vss_log_info("%s: daemon was killed!\n", __func__); + if (sc->register_done || sc->daemon_sc.proc_task) { + hv_vss_log_info("%s: Queuing work item\n", __func__); + if (hv_vss_is_daemon_killed_after_launch(sc)) + hv_vss_log_info("%s: daemon was killed!\n", __func__); + taskqueue_enqueue(taskqueue_thread, &sc->task); + } else { + hv_vss_log_info("%s: daemon has never been registered\n", __func__); + } + hv_vss_log_info("%s: received msg from host\n", __func__); +} +/* + * Send the response back to the host. + */ +static void +hv_vss_respond_host(uint8_t *rcv_buf, struct vmbus_channel *ch, + uint32_t recvlen, uint64_t requestid, uint32_t error) +{ + struct vmbus_icmsg_hdr *hv_icmsg_hdrp; + + hv_icmsg_hdrp = (struct vmbus_icmsg_hdr *)rcv_buf; + + hv_icmsg_hdrp->ic_status = error; + hv_icmsg_hdrp->ic_flags = HV_ICMSGHDRFLAG_TRANSACTION | HV_ICMSGHDRFLAG_RESPONSE; + + error = vmbus_chan_send(ch, VMBUS_CHANPKT_TYPE_INBAND, 0, + rcv_buf, recvlen, requestid); + if (error) + hv_vss_log_info("%s: hv_vss_respond_host: sendpacket error:%d\n", + __func__, error); +} + +static void +hv_vss_notify_host_result_locked(struct hv_vss_req_internal *reqp, uint32_t status) +{ + struct hv_vss_msg* msg = (struct hv_vss_msg *)reqp->rcv_buf; + hv_vss_sc *sc = reqp->sc; + if (reqp->vss_req.opt_msg.opt == HV_VSS_CHECK) { + msg->body.vss_cf.flags = VSS_HBU_NO_AUTO_RECOVERY; + } + hv_vss_log_info("%s, %s response %s to host\n", __func__, + vss_opt_name[reqp->vss_req.opt_msg.opt], + status == HV_S_OK ? "Success" : "Fail"); + hv_vss_respond_host(reqp->rcv_buf, vmbus_get_channel(reqp->sc->dev), + reqp->host_msg_len, reqp->host_msg_id, status); + /* recycle the request */ + LIST_INSERT_HEAD(&sc->req_free_list, reqp, link); +} + +static void +hv_vss_notify_host_result(struct hv_vss_req_internal *reqp, uint32_t status) +{ + mtx_lock(&reqp->sc->pending_mutex); + hv_vss_notify_host_result_locked(reqp, status); + mtx_unlock(&reqp->sc->pending_mutex); +} + +static void +hv_vss_cp_vssreq_to_user(struct hv_vss_req_internal *reqp, + struct hv_vss_opt_msg *userdata) +{ + struct hv_vss_req *hv_vss_dev_buf; + hv_vss_dev_buf = &reqp->vss_req; + hv_vss_dev_buf->opt_msg.opt = HV_VSS_NONE; + switch (reqp->vss_req.msg.hdr.vss_hdr.operation) { + case VSS_OP_FREEZE: + hv_vss_dev_buf->opt_msg.opt = HV_VSS_FREEZE; + break; + case VSS_OP_THAW: + hv_vss_dev_buf->opt_msg.opt = HV_VSS_THAW; + break; + case VSS_OP_HOT_BACKUP: + hv_vss_dev_buf->opt_msg.opt = HV_VSS_CHECK; + break; + } + *userdata = hv_vss_dev_buf->opt_msg; + hv_vss_log_info("%s, read data from user for " + "%s (%ju) \n", __func__, vss_opt_name[userdata->opt], + (uintmax_t)userdata->msgid); +} + +/** + * Remove the request id from app notifiy or ack queue, + * and recyle the request by inserting it to free list. + * + * When app was notified but not yet sending ack, the request + * should locate in either notify queue or ack queue. + */ +static struct hv_vss_req_internal* +hv_vss_drain_req_queue_locked(hv_vss_sc *sc, uint64_t req_id) +{ + struct hv_vss_req_internal *reqp, *tmp; + SEARCH_REMOVE_REQ_LOCKED(reqp, &sc->daemon_sc.to_notify_queue, + slink, tmp, req_id); + if (reqp == NULL) + SEARCH_REMOVE_REQ_LOCKED(reqp, &sc->daemon_sc.to_ack_queue, + slink, tmp, req_id); + if (reqp == NULL) + SEARCH_REMOVE_REQ_LOCKED(reqp, &sc->app_sc.to_notify_queue, + slink, tmp, req_id); + if (reqp == NULL) + SEARCH_REMOVE_REQ_LOCKED(reqp, &sc->app_sc.to_ack_queue, slink, + tmp, req_id); + return (reqp); +} +/** + * Actions for daemon who has been notified. + */ +static void +hv_vss_notified(struct hv_vss_dev_sc *dev_sc, struct hv_vss_opt_msg *userdata) +{ + struct hv_vss_req_internal *reqp; + mtx_lock(&dev_sc->sc->pending_mutex); + if (!STAILQ_EMPTY(&dev_sc->to_notify_queue)) { + reqp = STAILQ_FIRST(&dev_sc->to_notify_queue); + hv_vss_cp_vssreq_to_user(reqp, userdata); + STAILQ_REMOVE_HEAD(&dev_sc->to_notify_queue, slink); + /* insert the msg to queue for write */ + STAILQ_INSERT_TAIL(&dev_sc->to_ack_queue, reqp, slink); + userdata->status = VSS_SUCCESS; + } else { + /* Timeout occur, thus request was removed from queue. */ + hv_vss_log_info("%s: notify queue is empty!\n", __func__); + userdata->status = VSS_FAIL; + } + mtx_unlock(&dev_sc->sc->pending_mutex); +} + +static void +hv_vss_notify(struct hv_vss_dev_sc *dev_sc, struct hv_vss_req_internal *reqp) +{ + uint32_t opt = reqp->vss_req.opt_msg.opt; + mtx_lock(&dev_sc->sc->pending_mutex); + STAILQ_INSERT_TAIL(&dev_sc->to_notify_queue, reqp, slink); + hv_vss_log_info("%s: issuing query %s (%ju) to %s\n", __func__, + vss_opt_name[opt], (uintmax_t)reqp->vss_req.opt_msg.msgid, + &dev_sc->sc->app_sc == dev_sc ? "app" : "daemon"); + mtx_unlock(&dev_sc->sc->pending_mutex); + selwakeup(&dev_sc->hv_vss_selinfo); +} + +/** + * Actions for daemon who has acknowledged. + */ +static void +hv_vss_daemon_acked(struct hv_vss_dev_sc *dev_sc, struct hv_vss_opt_msg *userdata) +{ + struct hv_vss_req_internal *reqp, *tmp; + uint64_t req_id; + int opt; + uint32_t status; + + opt = userdata->opt; + req_id = userdata->msgid; + status = userdata->status; + /* make sure the reserved fields are all zeros. */ + memset(&userdata->reserved, 0, sizeof(struct hv_vss_opt_msg) - + __offsetof(struct hv_vss_opt_msg, reserved)); + mtx_lock(&dev_sc->sc->pending_mutex); + SEARCH_REMOVE_REQ_LOCKED(reqp, &dev_sc->to_ack_queue, slink, tmp, req_id); + mtx_unlock(&dev_sc->sc->pending_mutex); + if (reqp == NULL) { + hv_vss_log_info("%s Timeout: fail to find daemon ack request\n", + __func__); + userdata->status = VSS_FAIL; + return; + } + KASSERT(opt == reqp->vss_req.opt_msg.opt, ("Mismatched VSS operation!")); + hv_vss_log_info("%s, get response %d from daemon for %s (%ju) \n", __func__, + status, vss_opt_name[opt], (uintmax_t)req_id); + switch (opt) { + case HV_VSS_CHECK: + case HV_VSS_FREEZE: + callout_drain(&reqp->callout); + hv_vss_notify_host_result(reqp, + status == VSS_SUCCESS ? HV_S_OK : HV_E_FAIL); + break; + case HV_VSS_THAW: + if (dev_sc->sc->app_register_done) { + if (status == VSS_SUCCESS) { + hv_vss_notify(&dev_sc->sc->app_sc, reqp); + } else { + /* handle error */ + callout_drain(&reqp->callout); + hv_vss_notify_host_result(reqp, HV_E_FAIL); + } + } else { + callout_drain(&reqp->callout); + hv_vss_notify_host_result(reqp, + status == VSS_SUCCESS ? HV_S_OK : HV_E_FAIL); + } + break; + } +} + +/** + * Actions for app who has acknowledged. + */ +static void +hv_vss_app_acked(struct hv_vss_dev_sc *dev_sc, struct hv_vss_opt_msg *userdata) +{ + struct hv_vss_req_internal *reqp, *tmp; + uint64_t req_id; + int opt; + uint8_t status; + + opt = userdata->opt; + req_id = userdata->msgid; + status = userdata->status; + /* make sure the reserved fields are all zeros. */ + memset(&userdata->reserved, 0, sizeof(struct hv_vss_opt_msg) - + __offsetof(struct hv_vss_opt_msg, reserved)); + mtx_lock(&dev_sc->sc->pending_mutex); + SEARCH_REMOVE_REQ_LOCKED(reqp, &dev_sc->to_ack_queue, slink, tmp, req_id); + mtx_unlock(&dev_sc->sc->pending_mutex); + if (reqp == NULL) { + hv_vss_log_info("%s Timeout: fail to find app ack request\n", + __func__); + userdata->status = VSS_FAIL; + return; + } + KASSERT(opt == reqp->vss_req.opt_msg.opt, ("Mismatched VSS operation!")); + hv_vss_log_info("%s, get response %d from app for %s (%ju) \n", + __func__, status, vss_opt_name[opt], (uintmax_t)req_id); + if (dev_sc->sc->register_done) { + switch (opt) { + case HV_VSS_CHECK: + case HV_VSS_FREEZE: + if (status == VSS_SUCCESS) { + hv_vss_notify(&dev_sc->sc->daemon_sc, reqp); + } else { + /* handle error */ + callout_drain(&reqp->callout); + hv_vss_notify_host_result(reqp, HV_E_FAIL); + } + break; + case HV_VSS_THAW: + callout_drain(&reqp->callout); + hv_vss_notify_host_result(reqp, + status == VSS_SUCCESS ? HV_S_OK : HV_E_FAIL); + break; + } + } else { + hv_vss_log_info("%s, Fatal: vss daemon was killed\n", __func__); + } +} + +static int +hv_vss_dev_open(struct cdev *dev, int oflags, int devtype, struct thread *td) +{ + struct proc *td_proc; + td_proc = td->td_proc; + + struct hv_vss_dev_sc *dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; + hv_vss_log_info("%s: %s opens device \"%s\" successfully.\n", + __func__, td_proc->p_comm, FS_VSS_DEV_NAME); + + if (dev_sc->sc->register_done) + return (EBUSY); + + dev_sc->sc->register_done = true; + hv_vss_callback(vmbus_get_channel(dev_sc->sc->dev), dev_sc->sc); + + dev_sc->proc_task = curproc; + return (0); +} + +static int +hv_vss_dev_close(struct cdev *dev, int fflag __unused, int devtype __unused, + struct thread *td) +{ + struct proc *td_proc; + td_proc = td->td_proc; + + struct hv_vss_dev_sc *dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; + + hv_vss_log_info("%s: %s closes device \"%s\"\n", + __func__, td_proc->p_comm, FS_VSS_DEV_NAME); + dev_sc->sc->register_done = false; + return (0); +} + +static int +hv_vss_dev_daemon_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag, + struct thread *td) +{ + struct proc *td_proc; + struct hv_vss_dev_sc *sc; + + td_proc = td->td_proc; + sc = (struct hv_vss_dev_sc*)dev->si_drv1; + + hv_vss_log_info("%s: %s invoked vss ioctl\n", __func__, td_proc->p_comm); + + struct hv_vss_opt_msg* userdata = (struct hv_vss_opt_msg*)data; + switch(cmd) { + case IOCHVVSSREAD: + hv_vss_notified(sc, userdata); + break; + case IOCHVVSSWRITE: + hv_vss_daemon_acked(sc, userdata); + break; + } + return (0); +} + +/* + * hv_vss_daemon poll invokes this function to check if data is available + * for daemon to read. + */ +static int +hv_vss_dev_daemon_poll(struct cdev *dev, int events, struct thread *td) +{ + int revent = 0; + struct hv_vss_dev_sc *dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; + + mtx_lock(&dev_sc->sc->pending_mutex); + /** + * if there is data ready, inform daemon's poll + */ + if (!STAILQ_EMPTY(&dev_sc->to_notify_queue)) + revent = POLLIN; + if (revent == 0) + selrecord(td, &dev_sc->hv_vss_selinfo); + hv_vss_log_info("%s return 0x%x\n", __func__, revent); + mtx_unlock(&dev_sc->sc->pending_mutex); + return (revent); +} + +static int +hv_appvss_dev_open(struct cdev *dev, int oflags, int devtype, struct thread *td) +{ + struct proc *td_proc; + td_proc = td->td_proc; + + struct hv_vss_dev_sc *dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; + hv_vss_log_info("%s: %s opens device \"%s\" successfully.\n", + __func__, td_proc->p_comm, APP_VSS_DEV_NAME); + + if (dev_sc->sc->app_register_done) + return (EBUSY); + + dev_sc->sc->app_register_done = true; + dev_sc->proc_task = curproc; + return (0); +} + +static int +hv_appvss_dev_close(struct cdev *dev, int fflag __unused, int devtype __unused, + struct thread *td) +{ + struct proc *td_proc; + td_proc = td->td_proc; + + struct hv_vss_dev_sc *dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; + + hv_vss_log_info("%s: %s closes device \"%s\".\n", + __func__, td_proc->p_comm, APP_VSS_DEV_NAME); + dev_sc->sc->app_register_done = false; + return (0); +} + +static int +hv_appvss_dev_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag, + struct thread *td) +{ + struct proc *td_proc; + struct hv_vss_dev_sc *dev_sc; + + td_proc = td->td_proc; + dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; + + hv_vss_log_info("%s: %s invoked vss ioctl\n", __func__, td_proc->p_comm); + + struct hv_vss_opt_msg* userdata = (struct hv_vss_opt_msg*)data; + switch(cmd) { + case IOCHVVSSREAD: + hv_vss_notified(dev_sc, userdata); + break; + case IOCHVVSSWRITE: + hv_vss_app_acked(dev_sc, userdata); + break; + } + return (0); +} + +/* + * hv_vss_daemon poll invokes this function to check if data is available + * for daemon to read. + */ +static int +hv_appvss_dev_poll(struct cdev *dev, int events, struct thread *td) +{ + int revent = 0; + struct hv_vss_dev_sc *dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; + + mtx_lock(&dev_sc->sc->pending_mutex); + /** + * if there is data ready, inform daemon's poll + */ + if (!STAILQ_EMPTY(&dev_sc->to_notify_queue)) + revent = POLLIN; + if (revent == 0) + selrecord(td, &dev_sc->hv_vss_selinfo); + hv_vss_log_info("%s return 0x%x\n", __func__, revent); + mtx_unlock(&dev_sc->sc->pending_mutex); + return (revent); +} + +static void +hv_vss_timeout(void *arg) +{ + hv_vss_req_internal *reqp = arg; + hv_vss_req_internal *request; + hv_vss_sc* sc = reqp->sc; + uint64_t req_id = reqp->vss_req.opt_msg.msgid; + /* This thread is locked */ + KASSERT(mtx_owned(&sc->pending_mutex), ("mutex lock is not owned!")); + request = hv_vss_drain_req_queue_locked(sc, req_id); + KASSERT(request != NULL, ("timeout but fail to find request")); + hv_vss_notify_host_result_locked(reqp, HV_E_FAIL); +} + +/* + * This routine is called whenever a message is received from the host + */ +static void +hv_vss_init_req(hv_vss_req_internal *reqp, + uint32_t recvlen, uint64_t requestid, uint8_t *vss_buf, hv_vss_sc *sc) +{ + struct timespec vm_ts; + struct hv_vss_msg* msg = (struct hv_vss_msg *)vss_buf; + + memset(reqp, 0, __offsetof(hv_vss_req_internal, callout)); + reqp->host_msg_len = recvlen; + reqp->host_msg_id = requestid; + reqp->rcv_buf = vss_buf; + reqp->sc = sc; + memcpy(&reqp->vss_req.msg, + (struct hv_vss_msg *)vss_buf, sizeof(struct hv_vss_msg)); + /* set the opt for users */ + switch (msg->hdr.vss_hdr.operation) { + case VSS_OP_FREEZE: + reqp->vss_req.opt_msg.opt = HV_VSS_FREEZE; + break; + case VSS_OP_THAW: + reqp->vss_req.opt_msg.opt = HV_VSS_THAW; + break; + case VSS_OP_HOT_BACKUP: + reqp->vss_req.opt_msg.opt = HV_VSS_CHECK; + break; + } + /* Use a timestamp as msg request ID */ + nanotime(&vm_ts); + reqp->vss_req.opt_msg.msgid = (vm_ts.tv_sec * NANOSEC) + vm_ts.tv_nsec; +} + +static hv_vss_req_internal* +hv_vss_get_new_req_locked(hv_vss_sc *sc) +{ + hv_vss_req_internal *reqp; + if (!STAILQ_EMPTY(&sc->daemon_sc.to_notify_queue) || + !STAILQ_EMPTY(&sc->daemon_sc.to_ack_queue) || + !STAILQ_EMPTY(&sc->app_sc.to_notify_queue) || + !STAILQ_EMPTY(&sc->app_sc.to_ack_queue)) { + /* + * There is request coming from host before + * finishing previous requests + */ + hv_vss_log_info("%s: Warning: there is new request " + "coming before finishing previous requests\n", __func__); + return (NULL); + } + if (LIST_EMPTY(&sc->req_free_list)) { + /* TODO Error: no buffer */ + hv_vss_log_info("Error: No buffer\n"); + return (NULL); + } + reqp = LIST_FIRST(&sc->req_free_list); + LIST_REMOVE(reqp, link); + return (reqp); +} + +static void +hv_vss_start_notify(hv_vss_req_internal *reqp, uint32_t opt) +{ + hv_vss_sc *sc = reqp->sc; + /* + * Freeze/Check notification sequence: kernel -> app -> daemon(fs) + * Thaw notification sequence: kernel -> daemon(fs) -> app + * + * We should wake up the daemon, in case it's doing poll(). + * The response should be received after 5s, otherwise, trigger timeout. + */ + switch (opt) { + case VSS_OP_FREEZE: + case VSS_OP_HOT_BACKUP: + if (sc->app_register_done) + hv_vss_notify(&sc->app_sc, reqp); + else + hv_vss_notify(&sc->daemon_sc, reqp); + callout_reset(&reqp->callout, TIMEOUT_LIMIT * hz, + hv_vss_timeout, reqp); + break; + case VSS_OP_THAW: + hv_vss_notify(&sc->daemon_sc, reqp); + callout_reset(&reqp->callout, TIMEOUT_LIMIT * hz, + hv_vss_timeout, reqp); + break; + } +} + +/* + * Function to read the vss request buffer from host + * and interact with daemon + */ +static void +hv_vss_process_request(void *context, int pending __unused) +{ + uint8_t *vss_buf; + struct vmbus_channel *channel; + uint32_t recvlen = 0; + uint64_t requestid; + struct vmbus_icmsg_hdr *icmsghdrp; + int ret = 0; + hv_vss_sc *sc; + hv_vss_req_internal *reqp; + + hv_vss_log_info("%s: entering hv_vss_process_request\n", __func__); + + sc = (hv_vss_sc*)context; + vss_buf = sc->util_sc.ic_buf; + channel = vmbus_get_channel(sc->dev); + + recvlen = sc->util_sc.ic_buflen; + ret = vmbus_chan_recv(channel, vss_buf, &recvlen, &requestid); + KASSERT(ret != ENOBUFS, ("hvvss recvbuf is not large enough")); + /* XXX check recvlen to make sure that it contains enough data */ + + while ((ret == 0) && (recvlen > 0)) { + icmsghdrp = (struct vmbus_icmsg_hdr *)vss_buf; + + if (icmsghdrp->ic_type == HV_ICMSGTYPE_NEGOTIATE) { + ret = vmbus_ic_negomsg(&sc->util_sc, vss_buf, + &recvlen, VSS_FWVER, VSS_MSGVER); + hv_vss_respond_host(vss_buf, vmbus_get_channel(sc->dev), + recvlen, requestid, ret); + hv_vss_log_info("%s: version negotiated\n", __func__); + } else if (!hv_vss_is_daemon_killed_after_launch(sc)) { + struct hv_vss_msg* msg = (struct hv_vss_msg *)vss_buf; + switch(msg->hdr.vss_hdr.operation) { + case VSS_OP_FREEZE: + case VSS_OP_THAW: + case VSS_OP_HOT_BACKUP: + mtx_lock(&sc->pending_mutex); + reqp = hv_vss_get_new_req_locked(sc); + mtx_unlock(&sc->pending_mutex); + if (reqp == NULL) { + /* ignore this request from host */ + break; + } + hv_vss_init_req(reqp, recvlen, requestid, vss_buf, sc); + hv_vss_log_info("%s: receive %s (%ju) from host\n", + __func__, + vss_opt_name[reqp->vss_req.opt_msg.opt], + (uintmax_t)reqp->vss_req.opt_msg.msgid); + hv_vss_start_notify(reqp, msg->hdr.vss_hdr.operation); + break; + case VSS_OP_GET_DM_INFO: + hv_vss_log_info("%s: receive GET_DM_INFO from host\n", + __func__); + msg->body.dm_info.flags = 0; + hv_vss_respond_host(vss_buf, vmbus_get_channel(sc->dev), + recvlen, requestid, HV_S_OK); + break; + default: + device_printf(sc->dev, "Unknown opt from host: %d\n", + msg->hdr.vss_hdr.operation); + break; + } + } else { + /* daemon was killed for some reason after it was launched */ + struct hv_vss_msg* msg = (struct hv_vss_msg *)vss_buf; + switch(msg->hdr.vss_hdr.operation) { + case VSS_OP_FREEZE: + hv_vss_log_info("%s: response fail for FREEZE\n", + __func__); + break; + case VSS_OP_THAW: + hv_vss_log_info("%s: response fail for THAW\n", + __func__); + break; + case VSS_OP_HOT_BACKUP: + hv_vss_log_info("%s: response fail for HOT_BACKUP\n", + __func__); + msg->body.vss_cf.flags = VSS_HBU_NO_AUTO_RECOVERY; + break; + case VSS_OP_GET_DM_INFO: + hv_vss_log_info("%s: response fail for GET_DM_INFO\n", + __func__); + msg->body.dm_info.flags = 0; + break; + default: + device_printf(sc->dev, "Unknown opt from host: %d\n", + msg->hdr.vss_hdr.operation); + break; + } + hv_vss_respond_host(vss_buf, vmbus_get_channel(sc->dev), + recvlen, requestid, HV_E_FAIL); + } + /* + * Try reading next buffer + */ + recvlen = sc->util_sc.ic_buflen; + ret = vmbus_chan_recv(channel, vss_buf, &recvlen, &requestid); + KASSERT(ret != ENOBUFS, ("hvvss recvbuf is not large enough")); + /* XXX check recvlen to make sure that it contains enough data */ + + hv_vss_log_info("%s: read: context %p, ret =%d, recvlen=%d\n", + __func__, context, ret, recvlen); + } +} + +static int +hv_vss_probe(device_t dev) +{ + return (vmbus_ic_probe(dev, vmbus_vss_descs)); +} + +static int +hv_vss_init_send_receive_queue(device_t dev) +{ + hv_vss_sc *sc = (hv_vss_sc*)device_get_softc(dev); + int i; + const int max_list = 4; /* It is big enough for the list */ + struct hv_vss_req_internal* reqp; + + LIST_INIT(&sc->req_free_list); + STAILQ_INIT(&sc->daemon_sc.to_notify_queue); + STAILQ_INIT(&sc->daemon_sc.to_ack_queue); + STAILQ_INIT(&sc->app_sc.to_notify_queue); + STAILQ_INIT(&sc->app_sc.to_ack_queue); + + for (i = 0; i < max_list; i++) { + reqp = malloc(sizeof(struct hv_vss_req_internal), + M_DEVBUF, M_WAITOK|M_ZERO); + LIST_INSERT_HEAD(&sc->req_free_list, reqp, link); + callout_init_mtx(&reqp->callout, &sc->pending_mutex, 0); + } + return (0); +} + +static int +hv_vss_destroy_send_receive_queue(device_t dev) +{ + hv_vss_sc *sc = (hv_vss_sc*)device_get_softc(dev); + hv_vss_req_internal* reqp; + + while (!LIST_EMPTY(&sc->req_free_list)) { + reqp = LIST_FIRST(&sc->req_free_list); + LIST_REMOVE(reqp, link); + free(reqp, M_DEVBUF); + } + + while (!STAILQ_EMPTY(&sc->daemon_sc.to_notify_queue)) { + reqp = STAILQ_FIRST(&sc->daemon_sc.to_notify_queue); + STAILQ_REMOVE_HEAD(&sc->daemon_sc.to_notify_queue, slink); + free(reqp, M_DEVBUF); + } + + while (!STAILQ_EMPTY(&sc->daemon_sc.to_ack_queue)) { + reqp = STAILQ_FIRST(&sc->daemon_sc.to_ack_queue); + STAILQ_REMOVE_HEAD(&sc->daemon_sc.to_ack_queue, slink); + free(reqp, M_DEVBUF); + } + + while (!STAILQ_EMPTY(&sc->app_sc.to_notify_queue)) { + reqp = STAILQ_FIRST(&sc->app_sc.to_notify_queue); + STAILQ_REMOVE_HEAD(&sc->app_sc.to_notify_queue, slink); + free(reqp, M_DEVBUF); + } + + while (!STAILQ_EMPTY(&sc->app_sc.to_ack_queue)) { + reqp = STAILQ_FIRST(&sc->app_sc.to_ack_queue); + STAILQ_REMOVE_HEAD(&sc->app_sc.to_ack_queue, slink); + free(reqp, M_DEVBUF); + } + return (0); +} + +static int +hv_vss_attach(device_t dev) +{ + int error; + struct sysctl_oid_list *child; + struct sysctl_ctx_list *ctx; + + hv_vss_sc *sc = (hv_vss_sc*)device_get_softc(dev); + + sc->dev = dev; + mtx_init(&sc->pending_mutex, "hv_vss pending mutex", NULL, MTX_DEF); + + ctx = device_get_sysctl_ctx(dev); + child = SYSCTL_CHILDREN(device_get_sysctl_tree(dev)); + + SYSCTL_ADD_INT(ctx, child, OID_AUTO, "hv_vss_log", + CTLFLAG_RWTUN, &hv_vss_log, 0, "Hyperv VSS service log level"); + + TASK_INIT(&sc->task, 0, hv_vss_process_request, sc); + hv_vss_init_send_receive_queue(dev); + /* create character device for file system freeze/thaw */ + error = make_dev_p(MAKEDEV_CHECKNAME | MAKEDEV_WAITOK, + &sc->hv_vss_dev, + &hv_vss_cdevsw, + 0, + UID_ROOT, + GID_WHEEL, + 0640, + FS_VSS_DEV_NAME); + + if (error != 0) { + hv_vss_log_info("Fail to create '%s': %d\n", FS_VSS_DEV_NAME, error); + return (error); + } + sc->hv_vss_dev->si_drv1 = &sc->daemon_sc; + sc->daemon_sc.sc = sc; + /* create character device for application freeze/thaw */ + error = make_dev_p(MAKEDEV_CHECKNAME | MAKEDEV_WAITOK, + &sc->hv_appvss_dev, + &hv_appvss_cdevsw, + 0, + UID_ROOT, + GID_WHEEL, + 0640, + APP_VSS_DEV_NAME); + + if (error != 0) { + hv_vss_log_info("Fail to create '%s': %d\n", APP_VSS_DEV_NAME, error); + return (error); + } + sc->hv_appvss_dev->si_drv1 = &sc->app_sc; + sc->app_sc.sc = sc; + + return (vmbus_ic_attach(dev, hv_vss_callback)); +} + +static int +hv_vss_detach(device_t dev) +{ + hv_vss_sc *sc = (hv_vss_sc*)device_get_softc(dev); + mtx_destroy(&sc->pending_mutex); + if (sc->daemon_sc.proc_task != NULL) { + PROC_LOCK(sc->daemon_sc.proc_task); + kern_psignal(sc->daemon_sc.proc_task, SIGKILL); + PROC_UNLOCK(sc->daemon_sc.proc_task); + } + if (sc->app_sc.proc_task != NULL) { + PROC_LOCK(sc->app_sc.proc_task); + kern_psignal(sc->app_sc.proc_task, SIGKILL); + PROC_UNLOCK(sc->app_sc.proc_task); + } + hv_vss_destroy_send_receive_queue(dev); + destroy_dev(sc->hv_vss_dev); + destroy_dev(sc->hv_appvss_dev); + return (vmbus_ic_detach(dev)); +} + +static device_method_t vss_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, hv_vss_probe), + DEVMETHOD(device_attach, hv_vss_attach), + DEVMETHOD(device_detach, hv_vss_detach), + { 0, 0 } +}; + +static driver_t vss_driver = { "hvvss", vss_methods, sizeof(hv_vss_sc)}; + +static devclass_t vss_devclass; + +DRIVER_MODULE(hv_vss, vmbus, vss_driver, vss_devclass, NULL, NULL); +MODULE_VERSION(hv_vss, 1); +MODULE_DEPEND(hv_vss, vmbus, 1, 1, 1); diff --git a/sys/dev/hyperv/utilities/hv_snapshot.h b/sys/dev/hyperv/utilities/hv_snapshot.h new file mode 100644 index 0000000..e3c9e0c --- /dev/null +++ b/sys/dev/hyperv/utilities/hv_snapshot.h @@ -0,0 +1,56 @@ +/*- + * Copyright (c) 2016 Microsoft Corp. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice unmodified, this list of conditions, and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _VSS_H +#define _VSS_H +#include <sys/ioccom.h> +#define FS_VSS_DEV_NAME "hv_fsvss_dev" +#define APP_VSS_DEV_NAME "hv_appvss_dev" + +#define VSS_DEV(VSS) "/dev/"VSS + +#define VSS_SUCCESS 0x00000000 +#define VSS_FAIL 0x00000001 + +enum hv_vss_op_t { + HV_VSS_NONE = 0, + HV_VSS_CHECK, + HV_VSS_FREEZE, + HV_VSS_THAW, + HV_VSS_COUNT +}; + +struct hv_vss_opt_msg { + uint32_t opt; /* operation */ + uint32_t status; /* 0 for success, 1 for error */ + uint64_t msgid; /* an ID used to identify the transaction */ + uint8_t reserved[48]; /* reserved values are all zeroes */ +}; +#define IOCHVVSSREAD _IOR('v', 2, struct hv_vss_opt_msg) +#define IOCHVVSSWRITE _IOW('v', 3, struct hv_vss_opt_msg) +#endif diff --git a/sys/dev/hyperv/utilities/hv_heartbeat.c b/sys/dev/hyperv/utilities/vmbus_heartbeat.c index 8fc7a09..f15b948 100644 --- a/sys/dev/hyperv/utilities/hv_heartbeat.c +++ b/sys/dev/hyperv/utilities/vmbus_heartbeat.c @@ -35,10 +35,8 @@ __FBSDID("$FreeBSD$"); #include <dev/hyperv/include/hyperv.h> #include <dev/hyperv/include/vmbus.h> -#include <dev/hyperv/utilities/hv_util.h> #include <dev/hyperv/utilities/vmbus_icreg.h> - -#include "vmbus_if.h" +#include <dev/hyperv/utilities/vmbus_icvar.h> #define VMBUS_HEARTBEAT_FWVER_MAJOR 3 #define VMBUS_HEARTBEAT_FWVER \ @@ -48,6 +46,9 @@ __FBSDID("$FreeBSD$"); #define VMBUS_HEARTBEAT_MSGVER \ VMBUS_IC_VERSION(VMBUS_HEARTBEAT_MSGVER_MAJOR, 0) +static int vmbus_heartbeat_probe(device_t); +static int vmbus_heartbeat_attach(device_t); + static const struct vmbus_ic_desc vmbus_heartbeat_descs[] = { { .ic_guid = { .hv_guid = { @@ -58,10 +59,31 @@ static const struct vmbus_ic_desc vmbus_heartbeat_descs[] = { VMBUS_IC_DESC_END }; +static device_method_t vmbus_heartbeat_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, vmbus_heartbeat_probe), + DEVMETHOD(device_attach, vmbus_heartbeat_attach), + DEVMETHOD(device_detach, vmbus_ic_detach), + DEVMETHOD_END +}; + +static driver_t vmbus_heartbeat_driver = { + "hvheartbeat", + vmbus_heartbeat_methods, + sizeof(struct vmbus_ic_softc) +}; + +static devclass_t vmbus_heartbeat_devclass; + +DRIVER_MODULE(hv_heartbeat, vmbus, vmbus_heartbeat_driver, + vmbus_heartbeat_devclass, NULL, NULL); +MODULE_VERSION(hv_heartbeat, 1); +MODULE_DEPEND(hv_heartbeat, vmbus, 1, 1, 1); + static void vmbus_heartbeat_cb(struct vmbus_channel *chan, void *xsc) { - struct hv_util_sc *sc = xsc; + struct vmbus_ic_softc *sc = xsc; struct vmbus_icmsg_hdr *hdr; int dlen, error; uint64_t xactid; @@ -70,7 +92,7 @@ vmbus_heartbeat_cb(struct vmbus_channel *chan, void *xsc) /* * Receive request. */ - data = sc->receive_buffer; + data = sc->ic_buf; dlen = sc->ic_buflen; error = vmbus_chan_recv(chan, data, &dlen, &xactid); KASSERT(error != ENOBUFS, ("icbuf is not large enough")); @@ -110,41 +132,21 @@ vmbus_heartbeat_cb(struct vmbus_channel *chan, void *xsc) } /* - * Send response by echoing the updated request back. + * Send response by echoing the request back. */ - hdr->ic_flags = VMBUS_ICMSG_FLAG_XACT | VMBUS_ICMSG_FLAG_RESP; - error = vmbus_chan_send(chan, VMBUS_CHANPKT_TYPE_INBAND, 0, - data, dlen, xactid); - if (error) - device_printf(sc->ic_dev, "resp send failed: %d\n", error); + vmbus_ic_sendresp(sc, chan, data, dlen, xactid); } static int -hv_heartbeat_probe(device_t dev) +vmbus_heartbeat_probe(device_t dev) { return (vmbus_ic_probe(dev, vmbus_heartbeat_descs)); } static int -hv_heartbeat_attach(device_t dev) +vmbus_heartbeat_attach(device_t dev) { - return (hv_util_attach(dev, vmbus_heartbeat_cb)); + return (vmbus_ic_attach(dev, vmbus_heartbeat_cb)); } - -static device_method_t heartbeat_methods[] = { - /* Device interface */ - DEVMETHOD(device_probe, hv_heartbeat_probe), - DEVMETHOD(device_attach, hv_heartbeat_attach), - DEVMETHOD(device_detach, hv_util_detach), - { 0, 0 } -}; - -static driver_t heartbeat_driver = { "hvheartbeat", heartbeat_methods, sizeof(hv_util_sc)}; - -static devclass_t heartbeat_devclass; - -DRIVER_MODULE(hv_heartbeat, vmbus, heartbeat_driver, heartbeat_devclass, NULL, NULL); -MODULE_VERSION(hv_heartbeat, 1); -MODULE_DEPEND(hv_heartbeat, vmbus, 1, 1, 1); diff --git a/sys/dev/hyperv/utilities/hv_util.c b/sys/dev/hyperv/utilities/vmbus_ic.c index 20b8f84..5746700 100644 --- a/sys/dev/hyperv/utilities/hv_util.c +++ b/sys/dev/hyperv/utilities/vmbus_ic.c @@ -22,28 +22,21 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD$ */ -/* - * A common driver for all hyper-V util services. - */ +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); #include <sys/param.h> -#include <sys/kernel.h> #include <sys/bus.h> #include <sys/malloc.h> -#include <sys/module.h> -#include <sys/reboot.h> #include <sys/systm.h> #include <sys/sysctl.h> -#include <sys/timetc.h> #include <dev/hyperv/include/hyperv.h> #include <dev/hyperv/include/vmbus.h> -#include <dev/hyperv/utilities/hv_util.h> #include <dev/hyperv/utilities/vmbus_icreg.h> +#include <dev/hyperv/utilities/vmbus_icvar.h> #include "vmbus_if.h" @@ -58,7 +51,7 @@ static int vmbus_ic_fwver_sysctl(SYSCTL_HANDLER_ARGS); static int vmbus_ic_msgver_sysctl(SYSCTL_HANDLER_ARGS); int -vmbus_ic_negomsg(struct hv_util_sc *sc, void *data, int *dlen0, +vmbus_ic_negomsg(struct vmbus_ic_softc *sc, void *data, int *dlen0, uint32_t fw_ver, uint32_t msg_ver) { struct vmbus_icmsg_negotiate *nego; @@ -214,9 +207,9 @@ vmbus_ic_probe(device_t dev, const struct vmbus_ic_desc descs[]) } int -hv_util_attach(device_t dev, vmbus_chan_callback_t cb) +vmbus_ic_attach(device_t dev, vmbus_chan_callback_t cb) { - struct hv_util_sc *sc = device_get_softc(dev); + struct vmbus_ic_softc *sc = device_get_softc(dev); struct vmbus_channel *chan = vmbus_get_channel(dev); struct sysctl_oid_list *child; struct sysctl_ctx_list *ctx; @@ -224,8 +217,7 @@ hv_util_attach(device_t dev, vmbus_chan_callback_t cb) sc->ic_dev = dev; sc->ic_buflen = VMBUS_IC_BRSIZE; - sc->receive_buffer = malloc(VMBUS_IC_BRSIZE, M_DEVBUF, - M_WAITOK | M_ZERO); + sc->ic_buf = malloc(VMBUS_IC_BRSIZE, M_DEVBUF, M_WAITOK | M_ZERO); /* * These services are not performance critical and do not need @@ -239,7 +231,7 @@ hv_util_attach(device_t dev, vmbus_chan_callback_t cb) error = vmbus_chan_open(chan, VMBUS_IC_BRSIZE, VMBUS_IC_BRSIZE, NULL, 0, cb, sc); if (error) { - free(sc->receive_buffer, M_DEVBUF); + free(sc->ic_buf, M_DEVBUF); return (error); } @@ -258,7 +250,7 @@ hv_util_attach(device_t dev, vmbus_chan_callback_t cb) static int vmbus_ic_fwver_sysctl(SYSCTL_HANDLER_ARGS) { - struct hv_util_sc *sc = arg1; + struct vmbus_ic_softc *sc = arg1; char verstr[16]; snprintf(verstr, sizeof(verstr), "%u.%u", @@ -269,7 +261,7 @@ vmbus_ic_fwver_sysctl(SYSCTL_HANDLER_ARGS) static int vmbus_ic_msgver_sysctl(SYSCTL_HANDLER_ARGS) { - struct hv_util_sc *sc = arg1; + struct vmbus_ic_softc *sc = arg1; char verstr[16]; snprintf(verstr, sizeof(verstr), "%u.%u", @@ -278,12 +270,30 @@ vmbus_ic_msgver_sysctl(SYSCTL_HANDLER_ARGS) } int -hv_util_detach(device_t dev) +vmbus_ic_detach(device_t dev) { - struct hv_util_sc *sc = device_get_softc(dev); + struct vmbus_ic_softc *sc = device_get_softc(dev); vmbus_chan_close(vmbus_get_channel(dev)); - free(sc->receive_buffer, M_DEVBUF); + free(sc->ic_buf, M_DEVBUF); return (0); } + +int +vmbus_ic_sendresp(struct vmbus_ic_softc *sc, struct vmbus_channel *chan, + void *data, int dlen, uint64_t xactid) +{ + struct vmbus_icmsg_hdr *hdr; + int error; + + KASSERT(dlen >= sizeof(*hdr), ("invalid data length %d", dlen)); + hdr = data; + + hdr->ic_flags = VMBUS_ICMSG_FLAG_XACT | VMBUS_ICMSG_FLAG_RESP; + error = vmbus_chan_send(chan, VMBUS_CHANPKT_TYPE_INBAND, 0, + data, dlen, xactid); + if (error) + device_printf(sc->ic_dev, "resp send failed: %d\n", error); + return (error); +} diff --git a/sys/dev/hyperv/utilities/vmbus_icreg.h b/sys/dev/hyperv/utilities/vmbus_icreg.h index 3435962..e962102 100644 --- a/sys/dev/hyperv/utilities/vmbus_icreg.h +++ b/sys/dev/hyperv/utilities/vmbus_icreg.h @@ -118,14 +118,18 @@ struct vmbus_icmsg_timesync { uint8_t ic_tsflags; /* VMBUS_ICMSG_TS_FLAG_ */ } __packed; +/* VMBUS_ICMSG_TYPE_TIMESYNC, MSGVER4 */ +struct vmbus_icmsg_timesync4 { + struct vmbus_icmsg_hdr ic_hdr; + uint64_t ic_hvtime; + uint64_t ic_sent_tc; + uint8_t ic_tsflags; /* VMBUS_ICMSG_TS_FLAG_ */ + uint8_t ic_rsvd[5]; +} __packed; + #define VMBUS_ICMSG_TS_FLAG_SYNC 0x01 #define VMBUS_ICMSG_TS_FLAG_SAMPLE 0x02 -/* XXX consolidate w/ hyperv */ #define VMBUS_ICMSG_TS_BASE 116444736000000000ULL -#define VMBUS_ICMSG_TS_FACTOR 100ULL -#ifndef NANOSEC -#define NANOSEC 1000000000ULL -#endif #endif /* !_VMBUS_ICREG_H_ */ diff --git a/sys/dev/hyperv/utilities/hv_util.h b/sys/dev/hyperv/utilities/vmbus_icvar.h index 7cf8d31..a60ecfe 100644 --- a/sys/dev/hyperv/utilities/hv_util.h +++ b/sys/dev/hyperv/utilities/vmbus_icvar.h @@ -28,23 +28,19 @@ * $FreeBSD$ */ -#ifndef _HVUTIL_H_ -#define _HVUTIL_H_ +#ifndef _VMBUS_ICVAR_H_ +#define _VMBUS_ICVAR_H_ #include <dev/hyperv/include/hyperv.h> #include <dev/hyperv/include/vmbus.h> -/** - * hv_util related structures - * - */ -typedef struct hv_util_sc { +struct vmbus_ic_softc { device_t ic_dev; - uint8_t *receive_buffer; + uint8_t *ic_buf; int ic_buflen; uint32_t ic_fwver; /* framework version */ uint32_t ic_msgver; /* message version */ -} hv_util_sc; +}; struct vmbus_ic_desc { const struct hyperv_guid ic_guid; @@ -53,10 +49,13 @@ struct vmbus_ic_desc { #define VMBUS_IC_DESC_END { .ic_desc = NULL } -int hv_util_attach(device_t dev, vmbus_chan_callback_t cb); -int hv_util_detach(device_t dev); +int vmbus_ic_attach(device_t dev, vmbus_chan_callback_t cb); +int vmbus_ic_detach(device_t dev); int vmbus_ic_probe(device_t dev, const struct vmbus_ic_desc descs[]); -int vmbus_ic_negomsg(struct hv_util_sc *sc, void *data, int *dlen, - uint32_t fw_ver, uint32_t msg_ver); +int vmbus_ic_negomsg(struct vmbus_ic_softc *sc, void *data, + int *dlen, uint32_t fw_ver, uint32_t msg_ver); +int vmbus_ic_sendresp(struct vmbus_ic_softc *sc, + struct vmbus_channel *chan, void *data, int dlen, + uint64_t xactid); -#endif +#endif /* !_VMBUS_ICVAR_H_ */ diff --git a/sys/dev/hyperv/utilities/hv_shutdown.c b/sys/dev/hyperv/utilities/vmbus_shutdown.c index e511b21..7e54dc9 100644 --- a/sys/dev/hyperv/utilities/hv_shutdown.c +++ b/sys/dev/hyperv/utilities/vmbus_shutdown.c @@ -36,10 +36,8 @@ __FBSDID("$FreeBSD$"); #include <dev/hyperv/include/hyperv.h> #include <dev/hyperv/include/vmbus.h> -#include <dev/hyperv/utilities/hv_util.h> #include <dev/hyperv/utilities/vmbus_icreg.h> - -#include "vmbus_if.h" +#include <dev/hyperv/utilities/vmbus_icvar.h> #define VMBUS_SHUTDOWN_FWVER_MAJOR 3 #define VMBUS_SHUTDOWN_FWVER \ @@ -49,6 +47,9 @@ __FBSDID("$FreeBSD$"); #define VMBUS_SHUTDOWN_MSGVER \ VMBUS_IC_VERSION(VMBUS_SHUTDOWN_MSGVER_MAJOR, 0) +static int vmbus_shutdown_probe(device_t); +static int vmbus_shutdown_attach(device_t); + static const struct vmbus_ic_desc vmbus_shutdown_descs[] = { { .ic_guid = { .hv_guid = { @@ -59,10 +60,31 @@ static const struct vmbus_ic_desc vmbus_shutdown_descs[] = { VMBUS_IC_DESC_END }; +static device_method_t vmbus_shutdown_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, vmbus_shutdown_probe), + DEVMETHOD(device_attach, vmbus_shutdown_attach), + DEVMETHOD(device_detach, vmbus_ic_detach), + DEVMETHOD_END +}; + +static driver_t vmbus_shutdown_driver = { + "hvshutdown", + vmbus_shutdown_methods, + sizeof(struct vmbus_ic_softc) +}; + +static devclass_t vmbus_shutdown_devclass; + +DRIVER_MODULE(hv_shutdown, vmbus, vmbus_shutdown_driver, + vmbus_shutdown_devclass, NULL, NULL); +MODULE_VERSION(hv_shutdown, 1); +MODULE_DEPEND(hv_shutdown, vmbus, 1, 1, 1); + static void vmbus_shutdown_cb(struct vmbus_channel *chan, void *xsc) { - struct hv_util_sc *sc = xsc; + struct vmbus_ic_softc *sc = xsc; struct vmbus_icmsg_hdr *hdr; struct vmbus_icmsg_shutdown *msg; int dlen, error, do_shutdown = 0; @@ -72,7 +94,7 @@ vmbus_shutdown_cb(struct vmbus_channel *chan, void *xsc) /* * Receive request. */ - data = sc->receive_buffer; + data = sc->ic_buf; dlen = sc->ic_buflen; error = vmbus_chan_recv(chan, data, &dlen, &xactid); KASSERT(error != ENOBUFS, ("icbuf is not large enough")); @@ -122,44 +144,24 @@ vmbus_shutdown_cb(struct vmbus_channel *chan, void *xsc) } /* - * Send response by echoing the updated request back. + * Send response by echoing the request back. */ - hdr->ic_flags = VMBUS_ICMSG_FLAG_XACT | VMBUS_ICMSG_FLAG_RESP; - error = vmbus_chan_send(chan, VMBUS_CHANPKT_TYPE_INBAND, 0, - data, dlen, xactid); - if (error) - device_printf(sc->ic_dev, "resp send failed: %d\n", error); + vmbus_ic_sendresp(sc, chan, data, dlen, xactid); if (do_shutdown) shutdown_nice(RB_POWEROFF); } static int -hv_shutdown_probe(device_t dev) +vmbus_shutdown_probe(device_t dev) { return (vmbus_ic_probe(dev, vmbus_shutdown_descs)); } static int -hv_shutdown_attach(device_t dev) +vmbus_shutdown_attach(device_t dev) { - return (hv_util_attach(dev, vmbus_shutdown_cb)); + return (vmbus_ic_attach(dev, vmbus_shutdown_cb)); } - -static device_method_t shutdown_methods[] = { - /* Device interface */ - DEVMETHOD(device_probe, hv_shutdown_probe), - DEVMETHOD(device_attach, hv_shutdown_attach), - DEVMETHOD(device_detach, hv_util_detach), - { 0, 0 } -}; - -static driver_t shutdown_driver = { "hvshutdown", shutdown_methods, sizeof(hv_util_sc)}; - -static devclass_t shutdown_devclass; - -DRIVER_MODULE(hv_shutdown, vmbus, shutdown_driver, shutdown_devclass, NULL, NULL); -MODULE_VERSION(hv_shutdown, 1); -MODULE_DEPEND(hv_shutdown, vmbus, 1, 1, 1); diff --git a/sys/dev/hyperv/utilities/hv_timesync.c b/sys/dev/hyperv/utilities/vmbus_timesync.c index 5bd51b0..7610027 100644 --- a/sys/dev/hyperv/utilities/hv_timesync.c +++ b/sys/dev/hyperv/utilities/vmbus_timesync.c @@ -37,19 +37,27 @@ __FBSDID("$FreeBSD$"); #include <dev/hyperv/include/hyperv.h> #include <dev/hyperv/include/vmbus.h> -#include <dev/hyperv/utilities/hv_util.h> #include <dev/hyperv/utilities/vmbus_icreg.h> - -#include "vmbus_if.h" +#include <dev/hyperv/utilities/vmbus_icvar.h> #define VMBUS_TIMESYNC_FWVER_MAJOR 3 #define VMBUS_TIMESYNC_FWVER \ VMBUS_IC_VERSION(VMBUS_TIMESYNC_FWVER_MAJOR, 0) -#define VMBUS_TIMESYNC_MSGVER_MAJOR 3 +#define VMBUS_TIMESYNC_MSGVER_MAJOR 4 #define VMBUS_TIMESYNC_MSGVER \ VMBUS_IC_VERSION(VMBUS_TIMESYNC_MSGVER_MAJOR, 0) +#define VMBUS_TIMESYNC_MSGVER4(sc) \ + VMBUS_ICVER_LE(VMBUS_IC_VERSION(4, 0), (sc)->ic_msgver) + +#define VMBUS_TIMESYNC_DORTT(sc) \ + (VMBUS_TIMESYNC_MSGVER4((sc)) &&\ + (hyperv_features & CPUID_HV_MSR_TIME_REFCNT)) + +static int vmbus_timesync_probe(device_t); +static int vmbus_timesync_attach(device_t); + static const struct vmbus_ic_desc vmbus_timesync_descs[] = { { .ic_guid = { .hv_guid = { @@ -60,6 +68,27 @@ static const struct vmbus_ic_desc vmbus_timesync_descs[] = { VMBUS_IC_DESC_END }; +static device_method_t vmbus_timesync_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, vmbus_timesync_probe), + DEVMETHOD(device_attach, vmbus_timesync_attach), + DEVMETHOD(device_detach, vmbus_ic_detach), + DEVMETHOD_END +}; + +static driver_t vmbus_timesync_driver = { + "hvtimesync", + vmbus_timesync_methods, + sizeof(struct vmbus_ic_softc) +}; + +static devclass_t vmbus_timesync_devclass; + +DRIVER_MODULE(hv_timesync, vmbus, vmbus_timesync_driver, + vmbus_timesync_devclass, NULL, NULL); +MODULE_VERSION(hv_timesync, 1); +MODULE_DEPEND(hv_timesync, vmbus, 1, 1, 1); + SYSCTL_NODE(_hw, OID_AUTO, hvtimesync, CTLFLAG_RW | CTLFLAG_MPSAFE, NULL, "Hyper-V timesync interface"); @@ -81,12 +110,16 @@ SYSCTL_INT(_hw_hvtimesync, OID_AUTO, sample_verbose, CTLFLAG_RWTUN, &vmbus_ts_sample_verbose, 0, "Increase sample request verbosity."); static void -vmbus_timesync(struct hv_util_sc *sc, uint64_t hvtime, uint8_t tsflags) +vmbus_timesync(struct vmbus_ic_softc *sc, uint64_t hvtime, uint64_t sent_tc, + uint8_t tsflags) { struct timespec vm_ts; - uint64_t hv_ns, vm_ns; + uint64_t hv_ns, vm_ns, rtt = 0; + + if (VMBUS_TIMESYNC_DORTT(sc)) + rtt = rdmsr(MSR_HV_TIME_REF_COUNT) - sent_tc; - hv_ns = (hvtime - VMBUS_ICMSG_TS_BASE) * VMBUS_ICMSG_TS_FACTOR; + hv_ns = (hvtime - VMBUS_ICMSG_TS_BASE + rtt) * HYPERV_TIMER_NS_FACTOR; nanotime(&vm_ts); vm_ns = (vm_ts.tv_sec * NANOSEC) + vm_ts.tv_nsec; @@ -106,7 +139,7 @@ vmbus_timesync(struct hv_util_sc *sc, uint64_t hvtime, uint8_t tsflags) } if ((tsflags & VMBUS_ICMSG_TS_FLAG_SAMPLE) && - vmbus_ts_sample_thresh > 0) { + vmbus_ts_sample_thresh >= 0) { int64_t diff; if (vmbus_ts_sample_verbose) { @@ -142,9 +175,8 @@ vmbus_timesync(struct hv_util_sc *sc, uint64_t hvtime, uint8_t tsflags) static void vmbus_timesync_cb(struct vmbus_channel *chan, void *xsc) { - struct hv_util_sc *sc = xsc; + struct vmbus_ic_softc *sc = xsc; struct vmbus_icmsg_hdr *hdr; - const struct vmbus_icmsg_timesync *msg; int dlen, error; uint64_t xactid; void *data; @@ -152,7 +184,7 @@ vmbus_timesync_cb(struct vmbus_channel *chan, void *xsc) /* * Receive request. */ - data = sc->receive_buffer; + data = sc->ic_buf; dlen = sc->ic_buflen; error = vmbus_chan_recv(chan, data, &dlen, &xactid); KASSERT(error != ENOBUFS, ("icbuf is not large enough")); @@ -174,16 +206,33 @@ vmbus_timesync_cb(struct vmbus_channel *chan, void *xsc) VMBUS_TIMESYNC_FWVER, VMBUS_TIMESYNC_MSGVER); if (error) return; + if (VMBUS_TIMESYNC_DORTT(sc)) + device_printf(sc->ic_dev, "RTT\n"); break; case VMBUS_ICMSG_TYPE_TIMESYNC: - if (dlen < sizeof(*msg)) { - device_printf(sc->ic_dev, "invalid timesync len %d\n", - dlen); - return; + if (VMBUS_TIMESYNC_MSGVER4(sc)) { + const struct vmbus_icmsg_timesync4 *msg4; + + if (dlen < sizeof(*msg4)) { + device_printf(sc->ic_dev, "invalid timesync4 " + "len %d\n", dlen); + return; + } + msg4 = data; + vmbus_timesync(sc, msg4->ic_hvtime, msg4->ic_sent_tc, + msg4->ic_tsflags); + } else { + const struct vmbus_icmsg_timesync *msg; + + if (dlen < sizeof(*msg)) { + device_printf(sc->ic_dev, "invalid timesync " + "len %d\n", dlen); + return; + } + msg = data; + vmbus_timesync(sc, msg->ic_hvtime, 0, msg->ic_tsflags); } - msg = data; - vmbus_timesync(sc, msg->ic_hvtime, msg->ic_tsflags); break; default: @@ -192,41 +241,21 @@ vmbus_timesync_cb(struct vmbus_channel *chan, void *xsc) } /* - * Send response by echoing the updated request back. + * Send response by echoing the request back. */ - hdr->ic_flags = VMBUS_ICMSG_FLAG_XACT | VMBUS_ICMSG_FLAG_RESP; - error = vmbus_chan_send(chan, VMBUS_CHANPKT_TYPE_INBAND, 0, - data, dlen, xactid); - if (error) - device_printf(sc->ic_dev, "resp send failed: %d\n", error); + vmbus_ic_sendresp(sc, chan, data, dlen, xactid); } static int -hv_timesync_probe(device_t dev) +vmbus_timesync_probe(device_t dev) { return (vmbus_ic_probe(dev, vmbus_timesync_descs)); } static int -hv_timesync_attach(device_t dev) +vmbus_timesync_attach(device_t dev) { - return (hv_util_attach(dev, vmbus_timesync_cb)); + return (vmbus_ic_attach(dev, vmbus_timesync_cb)); } - -static device_method_t timesync_methods[] = { - /* Device interface */ - DEVMETHOD(device_probe, hv_timesync_probe), - DEVMETHOD(device_attach, hv_timesync_attach), - DEVMETHOD(device_detach, hv_util_detach), - { 0, 0 } -}; - -static driver_t timesync_driver = { "hvtimesync", timesync_methods, sizeof(hv_util_sc)}; - -static devclass_t timesync_devclass; - -DRIVER_MODULE(hv_timesync, vmbus, timesync_driver, timesync_devclass, NULL, NULL); -MODULE_VERSION(hv_timesync, 1); -MODULE_DEPEND(hv_timesync, vmbus, 1, 1, 1); diff --git a/sys/dev/hyperv/vmbus/amd64/hyperv_machdep.c b/sys/dev/hyperv/vmbus/amd64/hyperv_machdep.c index 5b5f205..9caed81 100644 --- a/sys/dev/hyperv/vmbus/amd64/hyperv_machdep.c +++ b/sys/dev/hyperv/vmbus/amd64/hyperv_machdep.c @@ -28,7 +28,52 @@ __FBSDID("$FreeBSD$"); #include <sys/param.h> +#include <sys/conf.h> +#include <sys/fcntl.h> +#include <sys/kernel.h> +#include <sys/systm.h> +#include <sys/timetc.h> + +#include <machine/cpufunc.h> +#include <machine/cputypes.h> +#include <machine/md_var.h> +#include <machine/specialreg.h> + +#include <vm/vm.h> + +#include <dev/hyperv/include/hyperv.h> +#include <dev/hyperv/include/hyperv_busdma.h> #include <dev/hyperv/vmbus/hyperv_machdep.h> +#include <dev/hyperv/vmbus/hyperv_reg.h> +#include <dev/hyperv/vmbus/hyperv_var.h> + +struct hyperv_reftsc_ctx { + struct hyperv_reftsc *tsc_ref; + struct hyperv_dma tsc_ref_dma; +}; + +static d_open_t hyperv_tsc_open; +static d_mmap_t hyperv_tsc_mmap; + +static struct timecounter hyperv_tsc_timecounter = { + .tc_get_timecount = NULL, /* based on CPU vendor. */ + .tc_poll_pps = NULL, + .tc_counter_mask = 0xffffffff, + .tc_frequency = HYPERV_TIMER_FREQ, + .tc_name = "Hyper-V-TSC", + .tc_quality = 3000, + .tc_flags = 0, + .tc_priv = NULL +}; + +static struct cdevsw hyperv_tsc_cdevsw = { + .d_version = D_VERSION, + .d_open = hyperv_tsc_open, + .d_mmap = hyperv_tsc_mmap, + .d_name = HYPERV_REFTSC_DEVNAME +}; + +static struct hyperv_reftsc_ctx hyperv_ref_tsc; uint64_t hypercall_md(volatile void *hc_addr, uint64_t in_val, @@ -41,3 +86,122 @@ hypercall_md(volatile void *hc_addr, uint64_t in_val, "c" (in_val), "d" (in_paddr), "m" (hc_addr)); return (status); } + +static int +hyperv_tsc_open(struct cdev *dev __unused, int oflags, int devtype __unused, + struct thread *td __unused) +{ + + if (oflags & FWRITE) + return (EPERM); + return (0); +} + +static int +hyperv_tsc_mmap(struct cdev *dev __unused, vm_ooffset_t offset, + vm_paddr_t *paddr, int nprot __unused, vm_memattr_t *memattr __unused) +{ + + KASSERT(hyperv_ref_tsc.tsc_ref != NULL, ("reftsc has not been setup")); + + /* + * NOTE: + * 'nprot' does not contain information interested to us; + * WR-open is blocked by d_open. + */ + + if (offset != 0) + return (EOPNOTSUPP); + + *paddr = hyperv_ref_tsc.tsc_ref_dma.hv_paddr; + return (0); +} + +#define HYPERV_TSC_TIMECOUNT(fence) \ +static u_int \ +hyperv_tsc_timecount_##fence(struct timecounter *tc) \ +{ \ + struct hyperv_reftsc *tsc_ref = hyperv_ref_tsc.tsc_ref; \ + uint32_t seq; \ + \ + while ((seq = tsc_ref->tsc_seq) != 0) { \ + uint64_t disc, ret, tsc, scale; \ + int64_t ofs; \ + \ + __compiler_membar(); \ + scale = tsc_ref->tsc_scale; \ + ofs = tsc_ref->tsc_ofs; \ + \ + fence(); \ + tsc = rdtsc(); \ + \ + /* ret = ((tsc * scale) >> 64) + ofs */ \ + __asm__ __volatile__ ("mulq %3" : \ + "=d" (ret), "=a" (disc) : \ + "a" (tsc), "r" (scale)); \ + ret += ofs; \ + \ + __compiler_membar(); \ + if (tsc_ref->tsc_seq == seq) \ + return (ret); \ + \ + /* Sequence changed; re-sync. */ \ + } \ + /* Fallback to the generic timecounter, i.e. rdmsr. */ \ + return (rdmsr(MSR_HV_TIME_REF_COUNT)); \ +} \ +struct __hack + +HYPERV_TSC_TIMECOUNT(lfence); +HYPERV_TSC_TIMECOUNT(mfence); + +static void +hyperv_tsc_tcinit(void *dummy __unused) +{ + uint64_t val, orig; + + if ((hyperv_features & + (CPUID_HV_MSR_TIME_REFCNT | CPUID_HV_MSR_REFERENCE_TSC)) != + (CPUID_HV_MSR_TIME_REFCNT | CPUID_HV_MSR_REFERENCE_TSC) || + (cpu_feature & CPUID_SSE2) == 0) /* SSE2 for mfence/lfence */ + return; + + switch (cpu_vendor_id) { + case CPU_VENDOR_AMD: + hyperv_tsc_timecounter.tc_get_timecount = + hyperv_tsc_timecount_mfence; + break; + + case CPU_VENDOR_INTEL: + hyperv_tsc_timecounter.tc_get_timecount = + hyperv_tsc_timecount_lfence; + break; + + default: + /* Unsupport CPU vendors. */ + return; + } + + hyperv_ref_tsc.tsc_ref = hyperv_dmamem_alloc(NULL, PAGE_SIZE, 0, + sizeof(struct hyperv_reftsc), &hyperv_ref_tsc.tsc_ref_dma, + BUS_DMA_WAITOK | BUS_DMA_ZERO); + if (hyperv_ref_tsc.tsc_ref == NULL) { + printf("hyperv: reftsc page allocation failed\n"); + return; + } + + orig = rdmsr(MSR_HV_REFERENCE_TSC); + val = MSR_HV_REFTSC_ENABLE | (orig & MSR_HV_REFTSC_RSVD_MASK) | + ((hyperv_ref_tsc.tsc_ref_dma.hv_paddr >> PAGE_SHIFT) << + MSR_HV_REFTSC_PGSHIFT); + wrmsr(MSR_HV_REFERENCE_TSC, val); + + /* Register "enlightened" timecounter. */ + tc_init(&hyperv_tsc_timecounter); + + /* Add device for mmap(2). */ + make_dev(&hyperv_tsc_cdevsw, 0, UID_ROOT, GID_WHEEL, 0444, + HYPERV_REFTSC_DEVNAME); +} +SYSINIT(hyperv_tsc_init, SI_SUB_DRIVERS, SI_ORDER_FIRST, hyperv_tsc_tcinit, + NULL); diff --git a/sys/dev/hyperv/vmbus/hyperv_reg.h b/sys/dev/hyperv/vmbus/hyperv_reg.h index 9796958..b3b133c 100644 --- a/sys/dev/hyperv/vmbus/hyperv_reg.h +++ b/sys/dev/hyperv/vmbus/hyperv_reg.h @@ -57,7 +57,10 @@ #define MSR_HV_VP_INDEX 0x40000002 -#define MSR_HV_TIME_REF_COUNT 0x40000020 +#define MSR_HV_REFERENCE_TSC 0x40000021 +#define MSR_HV_REFTSC_ENABLE 0x0001ULL +#define MSR_HV_REFTSC_RSVD_MASK 0x0ffeULL +#define MSR_HV_REFTSC_PGSHIFT 12 #define MSR_HV_SCONTROL 0x40000080 #define MSR_HV_SCTRL_ENABLE 0x0001ULL @@ -106,15 +109,7 @@ #define CPUID_LEAF_HV_IDENTITY 0x40000002 #define CPUID_LEAF_HV_FEATURES 0x40000003 -/* EAX: features */ -#define CPUID_HV_MSR_TIME_REFCNT 0x0002 /* MSR_HV_TIME_REF_COUNT */ -#define CPUID_HV_MSR_SYNIC 0x0004 /* MSRs for SynIC */ -#define CPUID_HV_MSR_SYNTIMER 0x0008 /* MSRs for SynTimer */ -#define CPUID_HV_MSR_APIC 0x0010 /* MSR_HV_{EOI,ICR,TPR} */ -#define CPUID_HV_MSR_HYPERCALL 0x0020 /* MSR_HV_GUEST_OS_ID - * MSR_HV_HYPERCALL */ -#define CPUID_HV_MSR_VP_INDEX 0x0040 /* MSR_HV_VP_INDEX */ -#define CPUID_HV_MSR_GUEST_IDLE 0x0400 /* MSR_HV_GUEST_IDLE */ +/* EAX: features include/hyperv.h CPUID_HV_MSR */ /* ECX: power management features */ #define CPUPM_HV_CSTATE_MASK 0x000f /* deepest C-state */ #define CPUPM_HV_C3_HPET 0x0010 /* C3 requires HPET */ diff --git a/sys/dev/hyperv/vmbus/hyperv_var.h b/sys/dev/hyperv/vmbus/hyperv_var.h index 5d86a29..0d2e7ca 100644 --- a/sys/dev/hyperv/vmbus/hyperv_var.h +++ b/sys/dev/hyperv/vmbus/hyperv_var.h @@ -31,13 +31,6 @@ #include <machine/bus.h> -#ifndef NANOSEC -#define NANOSEC 1000000000ULL -#endif -#define HYPERV_TIMER_NS_FACTOR 100ULL -#define HYPERV_TIMER_FREQ (NANOSEC / HYPERV_TIMER_NS_FACTOR) - -extern u_int hyperv_features; extern u_int hyperv_recommends; uint64_t hypercall_post_message(bus_addr_t msg_paddr); diff --git a/sys/dev/hyperv/vmbus/vmbus.c b/sys/dev/hyperv/vmbus/vmbus.c index 7cfa2f2..ec33dd8 100644 --- a/sys/dev/hyperv/vmbus/vmbus.c +++ b/sys/dev/hyperv/vmbus/vmbus.c @@ -99,6 +99,8 @@ static int vmbus_probe_guid_method(device_t, device_t, const struct hyperv_guid *); static uint32_t vmbus_get_vcpu_id_method(device_t bus, device_t dev, int cpu); +static struct taskqueue *vmbus_get_eventtq_method(device_t, device_t, + int); static int vmbus_init(struct vmbus_softc *); static int vmbus_connect(struct vmbus_softc *, uint32_t); @@ -174,6 +176,7 @@ static device_method_t vmbus_methods[] = { DEVMETHOD(vmbus_get_version, vmbus_get_version_method), DEVMETHOD(vmbus_probe_guid, vmbus_probe_guid_method), DEVMETHOD(vmbus_get_vcpu_id, vmbus_get_vcpu_id_method), + DEVMETHOD(vmbus_get_event_taskq, vmbus_get_eventtq_method), DEVMETHOD_END }; @@ -309,6 +312,13 @@ vmbus_msghc_exec(struct vmbus_softc *sc __unused, struct vmbus_msghc *mh) return error; } +void +vmbus_msghc_exec_cancel(struct vmbus_softc *sc __unused, struct vmbus_msghc *mh) +{ + + vmbus_xact_deactivate(mh->mh_xact); +} + const struct vmbus_message * vmbus_msghc_wait_result(struct vmbus_softc *sc __unused, struct vmbus_msghc *mh) { @@ -317,6 +327,14 @@ vmbus_msghc_wait_result(struct vmbus_softc *sc __unused, struct vmbus_msghc *mh) return (vmbus_xact_wait(mh->mh_xact, &resp_len)); } +const struct vmbus_message * +vmbus_msghc_poll_result(struct vmbus_softc *sc __unused, struct vmbus_msghc *mh) +{ + size_t resp_len; + + return (vmbus_xact_poll(mh->mh_xact, &resp_len)); +} + void vmbus_msghc_wakeup(struct vmbus_softc *sc, const struct vmbus_message *msg) { @@ -327,7 +345,13 @@ vmbus_msghc_wakeup(struct vmbus_softc *sc, const struct vmbus_message *msg) uint32_t vmbus_gpadl_alloc(struct vmbus_softc *sc) { - return atomic_fetchadd_int(&sc->vmbus_gpadl, 1); + uint32_t gpadl; + +again: + gpadl = atomic_fetchadd_int(&sc->vmbus_gpadl, 1); + if (gpadl == 0) + goto again; + return (gpadl); } static int @@ -1187,6 +1211,15 @@ vmbus_get_vcpu_id_method(device_t bus, device_t dev, int cpu) return (VMBUS_PCPU_GET(sc, vcpuid, cpu)); } +static struct taskqueue * +vmbus_get_eventtq_method(device_t bus, device_t dev __unused, int cpu) +{ + const struct vmbus_softc *sc = device_get_softc(bus); + + KASSERT(cpu >= 0 && cpu < mp_ncpus, ("invalid cpu%d", cpu)); + return (VMBUS_PCPU_GET(sc, event_tq, cpu)); +} + #ifdef NEW_PCIB #define VTPM_BASE_ADDR 0xfed40000 #define FOUR_GB (1ULL << 32) @@ -1439,7 +1472,7 @@ cleanup: vmbus_xact_ctx_destroy(sc->vmbus_xc); sc->vmbus_xc = NULL; } - free(sc->vmbus_chmap, M_DEVBUF); + free(__DEVOLATILE(void *, sc->vmbus_chmap), M_DEVBUF); mtx_destroy(&sc->vmbus_prichan_lock); mtx_destroy(&sc->vmbus_chan_lock); @@ -1501,7 +1534,7 @@ vmbus_detach(device_t dev) sc->vmbus_xc = NULL; } - free(sc->vmbus_chmap, M_DEVBUF); + free(__DEVOLATILE(void *, sc->vmbus_chmap), M_DEVBUF); mtx_destroy(&sc->vmbus_prichan_lock); mtx_destroy(&sc->vmbus_chan_lock); diff --git a/sys/dev/hyperv/vmbus/vmbus_chan.c b/sys/dev/hyperv/vmbus/vmbus_chan.c index 1cd5f2b..dc0846c 100644 --- a/sys/dev/hyperv/vmbus/vmbus_chan.c +++ b/sys/dev/hyperv/vmbus/vmbus_chan.c @@ -31,6 +31,7 @@ __FBSDID("$FreeBSD$"); #include <sys/param.h> #include <sys/bus.h> +#include <sys/callout.h> #include <sys/kernel.h> #include <sys/lock.h> #include <sys/malloc.h> @@ -43,16 +44,22 @@ __FBSDID("$FreeBSD$"); #include <machine/stdarg.h> #include <dev/hyperv/include/hyperv_busdma.h> +#include <dev/hyperv/include/vmbus_xact.h> #include <dev/hyperv/vmbus/hyperv_var.h> #include <dev/hyperv/vmbus/vmbus_reg.h> #include <dev/hyperv/vmbus/vmbus_var.h> #include <dev/hyperv/vmbus/vmbus_brvar.h> #include <dev/hyperv/vmbus/vmbus_chanvar.h> +struct vmbus_chan_pollarg { + struct vmbus_channel *poll_chan; + u_int poll_hz; +}; + static void vmbus_chan_update_evtflagcnt( struct vmbus_softc *, const struct vmbus_channel *); -static void vmbus_chan_close_internal( +static int vmbus_chan_close_internal( struct vmbus_channel *); static int vmbus_chan_sysctl_mnf(SYSCTL_HANDLER_ARGS); static void vmbus_chan_sysctl_create( @@ -64,6 +71,13 @@ static void vmbus_chan_cpu_default(struct vmbus_channel *); static int vmbus_chan_release(struct vmbus_channel *); static void vmbus_chan_set_chmap(struct vmbus_channel *); static void vmbus_chan_clear_chmap(struct vmbus_channel *); +static void vmbus_chan_detach(struct vmbus_channel *); +static bool vmbus_chan_wait_revoke( + const struct vmbus_channel *, bool); +static void vmbus_chan_poll_timeout(void *); +static bool vmbus_chan_poll_cancel_intq( + struct vmbus_channel *); +static void vmbus_chan_poll_cancel(struct vmbus_channel *); static void vmbus_chan_ins_prilist(struct vmbus_softc *, struct vmbus_channel *); @@ -80,7 +94,11 @@ static void vmbus_chan_rem_sublist(struct vmbus_channel *, static void vmbus_chan_task(void *, int); static void vmbus_chan_task_nobatch(void *, int); +static void vmbus_chan_poll_task(void *, int); static void vmbus_chan_clrchmap_task(void *, int); +static void vmbus_chan_pollcfg_task(void *, int); +static void vmbus_chan_polldis_task(void *, int); +static void vmbus_chan_poll_cancel_task(void *, int); static void vmbus_prichan_attach_task(void *, int); static void vmbus_subchan_attach_task(void *, int); static void vmbus_prichan_detach_task(void *, int); @@ -320,7 +338,21 @@ vmbus_chan_open(struct vmbus_channel *chan, int txbr_size, int rxbr_size, error = vmbus_chan_open_br(chan, &cbr, udata, udlen, cb, cbarg); if (error) { - hyperv_dmamem_free(&chan->ch_bufring_dma, chan->ch_bufring); + if (error == EISCONN) { + /* + * XXX + * The bufring GPADL is still connected; abandon + * this bufring, instead of having mysterious + * crash or trashed data later on. + */ + vmbus_chan_printf(chan, "chan%u bufring GPADL " + "is still connected upon channel open error; " + "leak %d bytes memory\n", chan->ch_id, + txbr_size + rxbr_size); + } else { + hyperv_dmamem_free(&chan->ch_bufring_dma, + chan->ch_bufring); + } chan->ch_bufring = NULL; } return (error); @@ -331,7 +363,6 @@ vmbus_chan_open_br(struct vmbus_channel *chan, const struct vmbus_chan_br *cbr, const void *udata, int udlen, vmbus_chan_callback_t cb, void *cbarg) { struct vmbus_softc *sc = chan->ch_vmbus; - const struct vmbus_chanmsg_chopen_resp *resp; const struct vmbus_message *msg; struct vmbus_chanmsg_chopen *req; struct vmbus_msghc *mh; @@ -343,7 +374,7 @@ vmbus_chan_open_br(struct vmbus_channel *chan, const struct vmbus_chan_br *cbr, if (udlen > VMBUS_CHANMSG_CHOPEN_UDATA_SIZE) { vmbus_chan_printf(chan, "invalid udata len %d for chan%u\n", udlen, chan->ch_id); - return EINVAL; + return (EINVAL); } br = cbr->cbr; @@ -433,30 +464,81 @@ vmbus_chan_open_br(struct vmbus_channel *chan, const struct vmbus_chan_br *cbr, goto failed; } - msg = vmbus_msghc_wait_result(sc, mh); - resp = (const struct vmbus_chanmsg_chopen_resp *)msg->msg_data; - status = resp->chm_status; + for (;;) { + msg = vmbus_msghc_poll_result(sc, mh); + if (msg != NULL) + break; + if (vmbus_chan_is_revoked(chan)) { + int i; + + /* + * NOTE: + * Hypervisor does _not_ send response CHOPEN to + * a revoked channel. + */ + vmbus_chan_printf(chan, + "chan%u is revoked, when it is being opened\n", + chan->ch_id); + + /* + * XXX + * Add extra delay before cancel the hypercall + * execution; mainly to close any possible + * CHRESCIND and CHOPEN_RESP races on the + * hypervisor side. + */ +#define REVOKE_LINGER 100 + for (i = 0; i < REVOKE_LINGER; ++i) { + msg = vmbus_msghc_poll_result(sc, mh); + if (msg != NULL) + break; + pause("rchopen", 1); + } +#undef REVOKE_LINGER + if (msg == NULL) + vmbus_msghc_exec_cancel(sc, mh); + break; + } + pause("chopen", 1); + } + if (msg != NULL) { + status = ((const struct vmbus_chanmsg_chopen_resp *) + msg->msg_data)->chm_status; + } else { + /* XXX any non-0 value is ok here. */ + status = 0xff; + } vmbus_msghc_put(sc, mh); if (status == 0) { - if (bootverbose) { + if (bootverbose) vmbus_chan_printf(chan, "chan%u opened\n", chan->ch_id); - } - return 0; + return (0); } vmbus_chan_printf(chan, "failed to open chan%u\n", chan->ch_id); error = ENXIO; failed: + sysctl_ctx_free(&chan->ch_sysctl_ctx); vmbus_chan_clear_chmap(chan); - if (chan->ch_bufring_gpadl) { - vmbus_chan_gpadl_disconnect(chan, chan->ch_bufring_gpadl); + if (chan->ch_bufring_gpadl != 0) { + int error1; + + error1 = vmbus_chan_gpadl_disconnect(chan, + chan->ch_bufring_gpadl); + if (error1) { + /* + * Give caller a hint that the bufring GPADL is still + * connected. + */ + error = EISCONN; + } chan->ch_bufring_gpadl = 0; } atomic_clear_int(&chan->ch_stflags, VMBUS_CHAN_ST_OPENED); - return error; + return (error); } int @@ -472,6 +554,8 @@ vmbus_chan_gpadl_connect(struct vmbus_channel *chan, bus_addr_t paddr, int page_count, range_len, i, cnt, error; uint64_t page_id; + KASSERT(*gpadl0 == 0, ("GPADL is not zero")); + /* * Preliminary checks. */ @@ -498,7 +582,6 @@ vmbus_chan_gpadl_connect(struct vmbus_channel *chan, bus_addr_t paddr, * Allocate GPADL id. */ gpadl = vmbus_gpadl_alloc(sc); - *gpadl0 = gpadl; /* * Connect this GPADL to the target channel. @@ -577,15 +660,37 @@ vmbus_chan_gpadl_connect(struct vmbus_channel *chan, bus_addr_t paddr, vmbus_chan_printf(chan, "gpadl_conn(chan%u) failed: %u\n", chan->ch_id, status); return EIO; - } else { - if (bootverbose) { - vmbus_chan_printf(chan, - "gpadl_conn(chan%u) succeeded\n", chan->ch_id); - } + } + + /* Done; commit the GPADL id. */ + *gpadl0 = gpadl; + if (bootverbose) { + vmbus_chan_printf(chan, "gpadl_conn(chan%u) succeeded\n", + chan->ch_id); } return 0; } +static bool +vmbus_chan_wait_revoke(const struct vmbus_channel *chan, bool can_sleep) +{ +#define WAIT_COUNT 200 /* 200ms */ + + int i; + + for (i = 0; i < WAIT_COUNT; ++i) { + if (vmbus_chan_is_revoked(chan)) + return (true); + if (can_sleep) + pause("wchrev", 1); + else + DELAY(1000); + } + return (false); + +#undef WAIT_COUNT +} + /* * Disconnect the GPA from the target channel */ @@ -597,12 +702,14 @@ vmbus_chan_gpadl_disconnect(struct vmbus_channel *chan, uint32_t gpadl) struct vmbus_chanmsg_gpadl_disconn *req; int error; + KASSERT(gpadl != 0, ("GPADL is zero")); + mh = vmbus_msghc_get(sc, sizeof(*req)); if (mh == NULL) { vmbus_chan_printf(chan, "can not get msg hypercall for gpadl_disconn(chan%u)\n", chan->ch_id); - return EBUSY; + return (EBUSY); } req = vmbus_msghc_dataptr(mh); @@ -612,18 +719,55 @@ vmbus_chan_gpadl_disconnect(struct vmbus_channel *chan, uint32_t gpadl) error = vmbus_msghc_exec(sc, mh); if (error) { + vmbus_msghc_put(sc, mh); + + if (vmbus_chan_wait_revoke(chan, true)) { + /* + * Error is benign; this channel is revoked, + * so this GPADL will not be touched anymore. + */ + vmbus_chan_printf(chan, + "gpadl_disconn(revoked chan%u) msg hypercall " + "exec failed: %d\n", chan->ch_id, error); + return (0); + } vmbus_chan_printf(chan, "gpadl_disconn(chan%u) msg hypercall exec failed: %d\n", chan->ch_id, error); - vmbus_msghc_put(sc, mh); - return error; + return (error); } vmbus_msghc_wait_result(sc, mh); /* Discard result; no useful information */ vmbus_msghc_put(sc, mh); - return 0; + return (0); +} + +static void +vmbus_chan_detach(struct vmbus_channel *chan) +{ + int refs; + + KASSERT(chan->ch_refs > 0, ("chan%u: invalid refcnt %d", + chan->ch_id, chan->ch_refs)); + refs = atomic_fetchadd_int(&chan->ch_refs, -1); +#ifdef INVARIANTS + if (VMBUS_CHAN_ISPRIMARY(chan)) { + KASSERT(refs == 1, ("chan%u: invalid refcnt %d for prichan", + chan->ch_id, refs + 1)); + } +#endif + if (refs == 1) { + /* + * Detach the target channel. + */ + if (bootverbose) { + vmbus_chan_printf(chan, "chan%u detached\n", + chan->ch_id); + } + taskqueue_enqueue(chan->ch_mgmt_tq, &chan->ch_detach_task); + } } static void @@ -631,9 +775,7 @@ vmbus_chan_clrchmap_task(void *xchan, int pending __unused) { struct vmbus_channel *chan = xchan; - critical_enter(); chan->ch_vmbus->vmbus_chmap[chan->ch_id] = NULL; - critical_exit(); } static void @@ -642,8 +784,7 @@ vmbus_chan_clear_chmap(struct vmbus_channel *chan) struct task chmap_task; TASK_INIT(&chmap_task, 0, vmbus_chan_clrchmap_task, chan); - taskqueue_enqueue(chan->ch_tq, &chmap_task); - taskqueue_drain(chan->ch_tq, &chmap_task); + vmbus_chan_run_task(chan, &chmap_task); } static void @@ -654,15 +795,49 @@ vmbus_chan_set_chmap(struct vmbus_channel *chan) } static void +vmbus_chan_poll_cancel_task(void *xchan, int pending __unused) +{ + + vmbus_chan_poll_cancel_intq(xchan); +} + +static void +vmbus_chan_poll_cancel(struct vmbus_channel *chan) +{ + struct task poll_cancel; + + TASK_INIT(&poll_cancel, 0, vmbus_chan_poll_cancel_task, chan); + vmbus_chan_run_task(chan, &poll_cancel); +} + +static int vmbus_chan_close_internal(struct vmbus_channel *chan) { struct vmbus_softc *sc = chan->ch_vmbus; struct vmbus_msghc *mh; struct vmbus_chanmsg_chclose *req; + uint32_t old_stflags; int error; - /* TODO: stringent check */ - atomic_clear_int(&chan->ch_stflags, VMBUS_CHAN_ST_OPENED); + /* + * NOTE: + * Sub-channels are closed upon their primary channel closing, + * so they can be closed even before they are opened. + */ + for (;;) { + old_stflags = chan->ch_stflags; + if (atomic_cmpset_int(&chan->ch_stflags, old_stflags, + old_stflags & ~VMBUS_CHAN_ST_OPENED)) + break; + } + if ((old_stflags & VMBUS_CHAN_ST_OPENED) == 0) { + /* Not opened yet; done */ + if (bootverbose) { + vmbus_chan_printf(chan, "chan%u not opened\n", + chan->ch_id); + } + return (0); + } /* * Free this channel's sysctl tree attached to its device's @@ -671,6 +846,11 @@ vmbus_chan_close_internal(struct vmbus_channel *chan) sysctl_ctx_free(&chan->ch_sysctl_ctx); /* + * Cancel polling, if it is enabled. + */ + vmbus_chan_poll_cancel(chan); + + /* * NOTE: * Order is critical. This channel _must_ be uninstalled first, * else the channel task may be enqueued by the IDT after it has @@ -688,7 +868,8 @@ vmbus_chan_close_internal(struct vmbus_channel *chan) vmbus_chan_printf(chan, "can not get msg hypercall for chclose(chan%u)\n", chan->ch_id); - return; + error = ENXIO; + goto disconnect; } req = vmbus_msghc_dataptr(mh); @@ -702,16 +883,37 @@ vmbus_chan_close_internal(struct vmbus_channel *chan) vmbus_chan_printf(chan, "chclose(chan%u) msg hypercall exec failed: %d\n", chan->ch_id, error); - return; - } else if (bootverbose) { - vmbus_chan_printf(chan, "close chan%u\n", chan->ch_id); + goto disconnect; } + if (bootverbose) + vmbus_chan_printf(chan, "chan%u closed\n", chan->ch_id); + +disconnect: /* * Disconnect the TX+RX bufrings from this channel. */ - if (chan->ch_bufring_gpadl) { - vmbus_chan_gpadl_disconnect(chan, chan->ch_bufring_gpadl); + if (chan->ch_bufring_gpadl != 0) { + int error1; + + error1 = vmbus_chan_gpadl_disconnect(chan, + chan->ch_bufring_gpadl); + if (error1) { + /* + * XXX + * The bufring GPADL is still connected; abandon + * this bufring, instead of having mysterious + * crash or trashed data later on. + */ + vmbus_chan_printf(chan, "chan%u bufring GPADL " + "is still connected after close\n", chan->ch_id); + chan->ch_bufring = NULL; + /* + * Give caller a hint that the bufring GPADL is + * still connected. + */ + error = EISCONN; + } chan->ch_bufring_gpadl = 0; } @@ -722,6 +924,42 @@ vmbus_chan_close_internal(struct vmbus_channel *chan) hyperv_dmamem_free(&chan->ch_bufring_dma, chan->ch_bufring); chan->ch_bufring = NULL; } + return (error); +} + +int +vmbus_chan_close_direct(struct vmbus_channel *chan) +{ + int error; + +#ifdef INVARIANTS + if (VMBUS_CHAN_ISPRIMARY(chan)) { + struct vmbus_channel *subchan; + + /* + * All sub-channels _must_ have been closed, or are _not_ + * opened at all. + */ + mtx_lock(&chan->ch_subchan_lock); + TAILQ_FOREACH(subchan, &chan->ch_subchans, ch_sublink) { + KASSERT( + (subchan->ch_stflags & VMBUS_CHAN_ST_OPENED) == 0, + ("chan%u: subchan%u is still opened", + chan->ch_id, subchan->ch_subidx)); + } + mtx_unlock(&chan->ch_subchan_lock); + } +#endif + + error = vmbus_chan_close_internal(chan); + if (!VMBUS_CHAN_ISPRIMARY(chan)) { + /* + * This sub-channel is referenced, when it is linked to + * the primary channel; drop that reference now. + */ + vmbus_chan_detach(chan); + } + return (error); } /* @@ -751,8 +989,15 @@ vmbus_chan_close(struct vmbus_channel *chan) int i; subchan = vmbus_subchan_get(chan, subchan_cnt); - for (i = 0; i < subchan_cnt; ++i) + for (i = 0; i < subchan_cnt; ++i) { vmbus_chan_close_internal(subchan[i]); + /* + * This sub-channel is referenced, when it is + * linked to the primary channel; drop that + * reference now. + */ + vmbus_chan_detach(subchan[i]); + } vmbus_subchan_rel(subchan, subchan_cnt); } @@ -973,6 +1218,9 @@ vmbus_chan_task(void *xchan, int pending __unused) vmbus_chan_callback_t cb = chan->ch_cb; void *cbarg = chan->ch_cbarg; + KASSERT(chan->ch_poll_intvl == 0, + ("chan%u: interrupted in polling mode", chan->ch_id)); + /* * Optimize host to guest signaling by ensuring: * 1. While reading the channel, we disable interrupts from @@ -1004,9 +1252,145 @@ vmbus_chan_task_nobatch(void *xchan, int pending __unused) { struct vmbus_channel *chan = xchan; + KASSERT(chan->ch_poll_intvl == 0, + ("chan%u: interrupted in polling mode", chan->ch_id)); chan->ch_cb(chan, chan->ch_cbarg); } +static void +vmbus_chan_poll_timeout(void *xchan) +{ + struct vmbus_channel *chan = xchan; + + KASSERT(chan->ch_poll_intvl != 0, + ("chan%u: polling timeout in interrupt mode", chan->ch_id)); + taskqueue_enqueue(chan->ch_tq, &chan->ch_poll_task); +} + +static void +vmbus_chan_poll_task(void *xchan, int pending __unused) +{ + struct vmbus_channel *chan = xchan; + + KASSERT(chan->ch_poll_intvl != 0, + ("chan%u: polling in interrupt mode", chan->ch_id)); + callout_reset_sbt_curcpu(&chan->ch_poll_timeo, chan->ch_poll_intvl, 0, + vmbus_chan_poll_timeout, chan, chan->ch_poll_flags); + chan->ch_cb(chan, chan->ch_cbarg); +} + +static void +vmbus_chan_pollcfg_task(void *xarg, int pending __unused) +{ + const struct vmbus_chan_pollarg *arg = xarg; + struct vmbus_channel *chan = arg->poll_chan; + sbintime_t intvl; + int poll_flags; + + /* + * Save polling interval. + */ + intvl = SBT_1S / arg->poll_hz; + if (intvl == 0) + intvl = 1; + if (intvl == chan->ch_poll_intvl) { + /* Nothing changes; done */ + return; + } + chan->ch_poll_intvl = intvl; + + /* Adjust callout flags. */ + poll_flags = C_DIRECT_EXEC; + if (arg->poll_hz <= hz) + poll_flags |= C_HARDCLOCK; + chan->ch_poll_flags = poll_flags; + + /* + * Disconnect this channel from the channel map to make sure that + * the RX bufring interrupt enabling bit can not be touched, and + * ISR can not enqueue this channel task anymore. THEN, disable + * interrupt from the RX bufring (TX bufring does not generate + * interrupt to VM). + * + * NOTE: order is critical. + */ + chan->ch_vmbus->vmbus_chmap[chan->ch_id] = NULL; + __compiler_membar(); + vmbus_rxbr_intr_mask(&chan->ch_rxbr); + + /* + * NOTE: + * At this point, this channel task will not be enqueued by + * the ISR anymore, time to cancel the pending one. + */ + taskqueue_cancel(chan->ch_tq, &chan->ch_task, NULL); + + /* Kick start! */ + taskqueue_enqueue(chan->ch_tq, &chan->ch_poll_task); +} + +static bool +vmbus_chan_poll_cancel_intq(struct vmbus_channel *chan) +{ + + if (chan->ch_poll_intvl == 0) { + /* Not enabled. */ + return (false); + } + + /* + * Stop polling callout, so that channel polling task + * will not be enqueued anymore. + */ + callout_drain(&chan->ch_poll_timeo); + + /* + * Disable polling by resetting polling interval. + * + * NOTE: + * The polling interval resetting MUST be conducted + * after the callout is drained; mainly to keep the + * proper assertion in place. + */ + chan->ch_poll_intvl = 0; + + /* + * NOTE: + * At this point, this channel polling task will not be + * enqueued by the callout anymore, time to cancel the + * pending one. + */ + taskqueue_cancel(chan->ch_tq, &chan->ch_poll_task, NULL); + + /* Polling was enabled. */ + return (true); +} + +static void +vmbus_chan_polldis_task(void *xchan, int pending __unused) +{ + struct vmbus_channel *chan = xchan; + + if (!vmbus_chan_poll_cancel_intq(chan)) { + /* Already disabled; done. */ + return; + } + + /* + * Plug this channel back to the channel map and unmask + * the RX bufring interrupt. + */ + chan->ch_vmbus->vmbus_chmap[chan->ch_id] = chan; + __compiler_membar(); + vmbus_rxbr_intr_unmask(&chan->ch_rxbr); + + /* + * Kick start the interrupt task, just in case unmasking + * interrupt races ISR. + */ + taskqueue_enqueue(chan->ch_tq, &chan->ch_task); +} + static __inline void vmbus_event_flags_proc(struct vmbus_softc *sc, volatile u_long *event_flags, int flag_cnt) @@ -1113,12 +1497,17 @@ vmbus_chan_alloc(struct vmbus_softc *sc) return NULL; } + chan->ch_refs = 1; chan->ch_vmbus = sc; mtx_init(&chan->ch_subchan_lock, "vmbus subchan", NULL, MTX_DEF); + sx_init(&chan->ch_orphan_lock, "vmbus chorphan"); TAILQ_INIT(&chan->ch_subchans); vmbus_rxbr_init(&chan->ch_rxbr); vmbus_txbr_init(&chan->ch_txbr); + TASK_INIT(&chan->ch_poll_task, 0, vmbus_chan_poll_task, chan); + callout_init(&chan->ch_poll_timeo, 1); + return chan; } @@ -1133,8 +1522,16 @@ vmbus_chan_free(struct vmbus_channel *chan) VMBUS_CHAN_ST_ONPRIL | VMBUS_CHAN_ST_ONSUBL | VMBUS_CHAN_ST_ONLIST)) == 0, ("free busy channel")); + KASSERT(chan->ch_orphan_xact == NULL, + ("still has orphan xact installed")); + KASSERT(chan->ch_refs == 0, ("chan%u: invalid refcnt %d", + chan->ch_id, chan->ch_refs)); + KASSERT(chan->ch_poll_intvl == 0, ("chan%u: polling is activated", + chan->ch_id)); + hyperv_dmamem_free(&chan->ch_monprm_dma, chan->ch_monprm); mtx_destroy(&chan->ch_subchan_lock); + sx_destroy(&chan->ch_orphan_lock); vmbus_rxbr_deinit(&chan->ch_rxbr); vmbus_txbr_deinit(&chan->ch_txbr); free(chan, M_DEVBUF); @@ -1207,6 +1604,14 @@ vmbus_chan_add(struct vmbus_channel *newchan) ("new channel is not sub-channel")); KASSERT(prichan != NULL, ("no primary channel")); + /* + * Reference count this sub-channel; it will be dereferenced + * when this sub-channel is closed. + */ + KASSERT(newchan->ch_refs == 1, ("chan%u: invalid refcnt %d", + newchan->ch_id, newchan->ch_refs)); + atomic_add_int(&newchan->ch_refs, 1); + newchan->ch_prichan = prichan; newchan->ch_dev = prichan->ch_dev; @@ -1220,7 +1625,7 @@ vmbus_chan_add(struct vmbus_channel *newchan) wakeup(prichan); done: /* - * Hook this channel up for later rescind. + * Hook this channel up for later revocation. */ mtx_lock(&sc->vmbus_chan_lock); vmbus_chan_ins_list(sc, newchan); @@ -1353,6 +1758,7 @@ vmbus_chan_msgproc_choffer(struct vmbus_softc *sc, if (error) { device_printf(sc->vmbus_dev, "add chan%u failed: %d\n", chan->ch_id, error); + atomic_subtract_int(&chan->ch_refs, 1); vmbus_chan_free(chan); return; } @@ -1368,7 +1774,7 @@ vmbus_chan_msgproc_chrescind(struct vmbus_softc *sc, note = (const struct vmbus_chanmsg_chrescind *)msg->msg_data; if (note->chm_chanid > VMBUS_CHAN_MAX) { - device_printf(sc->vmbus_dev, "invalid rescinded chan%u\n", + device_printf(sc->vmbus_dev, "invalid revoked chan%u\n", note->chm_chanid); return; } @@ -1403,11 +1809,24 @@ vmbus_chan_msgproc_chrescind(struct vmbus_softc *sc, mtx_unlock(&sc->vmbus_prichan_lock); } - if (bootverbose) - vmbus_chan_printf(chan, "chan%u rescinded\n", note->chm_chanid); + /* + * NOTE: + * The following processing order is critical: + * Set the REVOKED state flag before orphaning the installed xact. + */ + + if (atomic_testandset_int(&chan->ch_stflags, + VMBUS_CHAN_ST_REVOKED_SHIFT)) + panic("channel has already been revoked"); + + sx_xlock(&chan->ch_orphan_lock); + if (chan->ch_orphan_xact != NULL) + vmbus_xact_ctx_orphan(chan->ch_orphan_xact); + sx_xunlock(&chan->ch_orphan_lock); - /* Detach the target channel. */ - taskqueue_enqueue(chan->ch_mgmt_tq, &chan->ch_detach_task); + if (bootverbose) + vmbus_chan_printf(chan, "chan%u revoked\n", note->chm_chanid); + vmbus_chan_detach(chan); } static int @@ -1695,3 +2114,93 @@ vmbus_chan_mgmt_tq(const struct vmbus_channel *chan) return (chan->ch_mgmt_tq); } + +bool +vmbus_chan_is_revoked(const struct vmbus_channel *chan) +{ + + if (chan->ch_stflags & VMBUS_CHAN_ST_REVOKED) + return (true); + return (false); +} + +void +vmbus_chan_set_orphan(struct vmbus_channel *chan, struct vmbus_xact_ctx *xact) +{ + + sx_xlock(&chan->ch_orphan_lock); + chan->ch_orphan_xact = xact; + sx_xunlock(&chan->ch_orphan_lock); +} + +void +vmbus_chan_unset_orphan(struct vmbus_channel *chan) +{ + + sx_xlock(&chan->ch_orphan_lock); + chan->ch_orphan_xact = NULL; + sx_xunlock(&chan->ch_orphan_lock); +} + +const void * +vmbus_chan_xact_wait(const struct vmbus_channel *chan, + struct vmbus_xact *xact, size_t *resp_len, bool can_sleep) +{ + const void *ret; + + if (can_sleep) + ret = vmbus_xact_wait(xact, resp_len); + else + ret = vmbus_xact_busywait(xact, resp_len); + if (vmbus_chan_is_revoked(chan)) { + /* + * This xact probably is interrupted, and the + * interruption can race the reply reception, + * so we have to make sure that there are nothing + * left on the RX bufring, i.e. this xact will + * not be touched, once this function returns. + * + * Since the hypervisor will not put more data + * onto the RX bufring once the channel is revoked, + * the following loop will be terminated, once all + * data are drained by the driver's channel + * callback. + */ + while (!vmbus_chan_rx_empty(chan)) { + if (can_sleep) + pause("chxact", 1); + else + DELAY(1000); + } + } + return (ret); +} + +void +vmbus_chan_poll_enable(struct vmbus_channel *chan, u_int pollhz) +{ + struct vmbus_chan_pollarg arg; + struct task poll_cfg; + + KASSERT(chan->ch_flags & VMBUS_CHAN_FLAG_BATCHREAD, + ("enable polling on non-batch chan%u", chan->ch_id)); + KASSERT(pollhz >= VMBUS_CHAN_POLLHZ_MIN && + pollhz <= VMBUS_CHAN_POLLHZ_MAX, ("invalid pollhz %u", pollhz)); + + arg.poll_chan = chan; + arg.poll_hz = pollhz; + TASK_INIT(&poll_cfg, 0, vmbus_chan_pollcfg_task, &arg); + vmbus_chan_run_task(chan, &poll_cfg); +} + +void +vmbus_chan_poll_disable(struct vmbus_channel *chan) +{ + struct task poll_dis; + + KASSERT(chan->ch_flags & VMBUS_CHAN_FLAG_BATCHREAD, + ("disable polling on non-batch chan%u", chan->ch_id)); + + TASK_INIT(&poll_dis, 0, vmbus_chan_polldis_task, chan); + vmbus_chan_run_task(chan, &poll_dis); +} diff --git a/sys/dev/hyperv/vmbus/vmbus_chanvar.h b/sys/dev/hyperv/vmbus/vmbus_chanvar.h index b415d00..ec78c47 100644 --- a/sys/dev/hyperv/vmbus/vmbus_chanvar.h +++ b/sys/dev/hyperv/vmbus/vmbus_chanvar.h @@ -30,11 +30,13 @@ #define _VMBUS_CHANVAR_H_ #include <sys/param.h> +#include <sys/callout.h> #include <sys/lock.h> #include <sys/mutex.h> #include <sys/queue.h> -#include <sys/taskqueue.h> #include <sys/sysctl.h> +#include <sys/sx.h> +#include <sys/taskqueue.h> #include <dev/hyperv/include/hyperv.h> #include <dev/hyperv/include/hyperv_busdma.h> @@ -48,6 +50,7 @@ struct vmbus_channel { * target CPU. */ uint32_t ch_flags; /* VMBUS_CHAN_FLAG_ */ + int ch_poll_flags; /* callout flags */ /* * RX bufring; immediately following ch_txbr. @@ -56,6 +59,9 @@ struct vmbus_channel { struct taskqueue *ch_tq; struct task ch_task; + struct task ch_poll_task; + sbintime_t ch_poll_intvl; + struct callout ch_poll_timeo; vmbus_chan_callback_t ch_cb; void *ch_cbarg; @@ -138,6 +144,11 @@ struct vmbus_channel { struct hyperv_guid ch_guid_type; struct hyperv_guid ch_guid_inst; + struct sx ch_orphan_lock; + struct vmbus_xact_ctx *ch_orphan_xact; + + int ch_refs; + struct sysctl_ctx_list ch_sysctl_ctx; } __aligned(CACHE_LINE_SIZE); @@ -159,10 +170,12 @@ struct vmbus_channel { #define VMBUS_CHAN_ST_ONPRIL_SHIFT 1 #define VMBUS_CHAN_ST_ONSUBL_SHIFT 2 #define VMBUS_CHAN_ST_ONLIST_SHIFT 3 +#define VMBUS_CHAN_ST_REVOKED_SHIFT 4 /* sticky */ #define VMBUS_CHAN_ST_OPENED (1 << VMBUS_CHAN_ST_OPENED_SHIFT) #define VMBUS_CHAN_ST_ONPRIL (1 << VMBUS_CHAN_ST_ONPRIL_SHIFT) #define VMBUS_CHAN_ST_ONSUBL (1 << VMBUS_CHAN_ST_ONSUBL_SHIFT) #define VMBUS_CHAN_ST_ONLIST (1 << VMBUS_CHAN_ST_ONLIST_SHIFT) +#define VMBUS_CHAN_ST_REVOKED (1 << VMBUS_CHAN_ST_REVOKED_SHIFT) struct vmbus_softc; struct vmbus_message; diff --git a/sys/dev/hyperv/vmbus/vmbus_et.c b/sys/dev/hyperv/vmbus/vmbus_et.c index 77d31c8..1e0c746 100644 --- a/sys/dev/hyperv/vmbus/vmbus_et.c +++ b/sys/dev/hyperv/vmbus/vmbus_et.c @@ -38,6 +38,7 @@ __FBSDID("$FreeBSD$"); #include <machine/cpu.h> +#include <dev/hyperv/include/hyperv.h> #include <dev/hyperv/vmbus/hyperv_reg.h> #include <dev/hyperv/vmbus/hyperv_var.h> #include <dev/hyperv/vmbus/vmbus_var.h> diff --git a/sys/dev/hyperv/vmbus/vmbus_if.m b/sys/dev/hyperv/vmbus/vmbus_if.m index 65de846..3b41c51 100644 --- a/sys/dev/hyperv/vmbus/vmbus_if.m +++ b/sys/dev/hyperv/vmbus/vmbus_if.m @@ -33,6 +33,7 @@ INTERFACE vmbus; HEADER { struct hyperv_guid; + struct taskqueue; }; METHOD uint32_t get_version { @@ -51,3 +52,9 @@ METHOD uint32_t get_vcpu_id { device_t dev; int cpu; }; + +METHOD struct taskqueue * get_event_taskq { + device_t bus; + device_t dev; + int cpu; +}; diff --git a/sys/dev/hyperv/vmbus/vmbus_var.h b/sys/dev/hyperv/vmbus/vmbus_var.h index a5f4db5..530883d 100644 --- a/sys/dev/hyperv/vmbus/vmbus_var.h +++ b/sys/dev/hyperv/vmbus/vmbus_var.h @@ -92,7 +92,7 @@ struct vmbus_softc { u_long *vmbus_rx_evtflags; /* compat evtflgs from host */ - struct vmbus_channel **vmbus_chmap; + struct vmbus_channel *volatile *vmbus_chmap; struct vmbus_xact_ctx *vmbus_xc; struct vmbus_pcpu_data vmbus_pcpu[MAXCPU]; @@ -157,9 +157,14 @@ void vmbus_msghc_put(struct vmbus_softc *, struct vmbus_msghc *); void *vmbus_msghc_dataptr(struct vmbus_msghc *); int vmbus_msghc_exec_noresult(struct vmbus_msghc *); int vmbus_msghc_exec(struct vmbus_softc *, struct vmbus_msghc *); +void vmbus_msghc_exec_cancel(struct vmbus_softc *, + struct vmbus_msghc *); const struct vmbus_message * vmbus_msghc_wait_result(struct vmbus_softc *, struct vmbus_msghc *); +const struct vmbus_message * + vmbus_msghc_poll_result(struct vmbus_softc *, + struct vmbus_msghc *); void vmbus_msghc_wakeup(struct vmbus_softc *, const struct vmbus_message *); void vmbus_msghc_reset(struct vmbus_msghc *, size_t); diff --git a/sys/dev/hyperv/vmbus/vmbus_xact.c b/sys/dev/hyperv/vmbus/vmbus_xact.c index 642c165..90bdba7 100644 --- a/sys/dev/hyperv/vmbus/vmbus_xact.c +++ b/sys/dev/hyperv/vmbus/vmbus_xact.c @@ -50,16 +50,18 @@ struct vmbus_xact { }; struct vmbus_xact_ctx { - uint32_t xc_flags; size_t xc_req_size; size_t xc_resp_size; size_t xc_priv_size; + struct mtx xc_lock; + /* + * Protected by xc_lock. + */ + uint32_t xc_flags; /* VMBUS_XACT_CTXF_ */ struct vmbus_xact *xc_free; - struct mtx xc_free_lock; - struct vmbus_xact *xc_active; - struct mtx xc_active_lock; + struct vmbus_xact *xc_orphan; }; #define VMBUS_XACT_CTXF_DESTROY 0x0001 @@ -69,6 +71,13 @@ static struct vmbus_xact *vmbus_xact_alloc(struct vmbus_xact_ctx *, static void vmbus_xact_free(struct vmbus_xact *); static struct vmbus_xact *vmbus_xact_get1(struct vmbus_xact_ctx *, uint32_t); +static const void *vmbus_xact_wait1(struct vmbus_xact *, size_t *, + bool); +static const void *vmbus_xact_return(struct vmbus_xact *, + size_t *); +static void vmbus_xact_save_resp(struct vmbus_xact *, + const void *, size_t); +static void vmbus_xact_ctx_free(struct vmbus_xact_ctx *); static struct vmbus_xact * vmbus_xact_alloc(struct vmbus_xact_ctx *ctx, bus_dma_tag_t parent_dtag) @@ -108,10 +117,10 @@ vmbus_xact_get1(struct vmbus_xact_ctx *ctx, uint32_t dtor_flag) { struct vmbus_xact *xact; - mtx_lock(&ctx->xc_free_lock); + mtx_lock(&ctx->xc_lock); while ((ctx->xc_flags & dtor_flag) == 0 && ctx->xc_free == NULL) - mtx_sleep(&ctx->xc_free, &ctx->xc_free_lock, 0, "gxact", 0); + mtx_sleep(&ctx->xc_free, &ctx->xc_lock, 0, "gxact", 0); if (ctx->xc_flags & dtor_flag) { /* Being destroyed */ xact = NULL; @@ -122,7 +131,7 @@ vmbus_xact_get1(struct vmbus_xact_ctx *ctx, uint32_t dtor_flag) ctx->xc_free = NULL; } - mtx_unlock(&ctx->xc_free_lock); + mtx_unlock(&ctx->xc_lock); return (xact); } @@ -133,6 +142,9 @@ vmbus_xact_ctx_create(bus_dma_tag_t dtag, size_t req_size, size_t resp_size, { struct vmbus_xact_ctx *ctx; + KASSERT(req_size > 0, ("request size is 0")); + KASSERT(resp_size > 0, ("response size is 0")); + ctx = malloc(sizeof(*ctx), M_DEVBUF, M_WAITOK | M_ZERO); ctx->xc_req_size = req_size; ctx->xc_resp_size = resp_size; @@ -144,32 +156,51 @@ vmbus_xact_ctx_create(bus_dma_tag_t dtag, size_t req_size, size_t resp_size, return (NULL); } - mtx_init(&ctx->xc_free_lock, "vmbus xact free", NULL, MTX_DEF); - mtx_init(&ctx->xc_active_lock, "vmbus xact active", NULL, MTX_DEF); + mtx_init(&ctx->xc_lock, "vmbus xact", NULL, MTX_DEF); return (ctx); } -void -vmbus_xact_ctx_destroy(struct vmbus_xact_ctx *ctx) +bool +vmbus_xact_ctx_orphan(struct vmbus_xact_ctx *ctx) { - struct vmbus_xact *xact; - - mtx_lock(&ctx->xc_free_lock); + mtx_lock(&ctx->xc_lock); + if (ctx->xc_flags & VMBUS_XACT_CTXF_DESTROY) { + mtx_unlock(&ctx->xc_lock); + return (false); + } ctx->xc_flags |= VMBUS_XACT_CTXF_DESTROY; - mtx_unlock(&ctx->xc_free_lock); + mtx_unlock(&ctx->xc_lock); + wakeup(&ctx->xc_free); + wakeup(&ctx->xc_active); - xact = vmbus_xact_get1(ctx, 0); - if (xact == NULL) + ctx->xc_orphan = vmbus_xact_get1(ctx, 0); + if (ctx->xc_orphan == NULL) panic("can't get xact"); + return (true); +} + +static void +vmbus_xact_ctx_free(struct vmbus_xact_ctx *ctx) +{ + KASSERT(ctx->xc_flags & VMBUS_XACT_CTXF_DESTROY, + ("xact ctx was not orphaned")); + KASSERT(ctx->xc_orphan != NULL, ("no orphaned xact")); - vmbus_xact_free(xact); - mtx_destroy(&ctx->xc_free_lock); - mtx_destroy(&ctx->xc_active_lock); + vmbus_xact_free(ctx->xc_orphan); + mtx_destroy(&ctx->xc_lock); free(ctx, M_DEVBUF); } +void +vmbus_xact_ctx_destroy(struct vmbus_xact_ctx *ctx) +{ + + vmbus_xact_ctx_orphan(ctx); + vmbus_xact_ctx_free(ctx); +} + struct vmbus_xact * vmbus_xact_get(struct vmbus_xact_ctx *ctx, size_t req_len) { @@ -194,10 +225,10 @@ vmbus_xact_put(struct vmbus_xact *xact) KASSERT(ctx->xc_active == NULL, ("pending active xact")); xact->x_resp = NULL; - mtx_lock(&ctx->xc_free_lock); + mtx_lock(&ctx->xc_lock); KASSERT(ctx->xc_free == NULL, ("has free xact")); ctx->xc_free = xact; - mtx_unlock(&ctx->xc_free_lock); + mtx_unlock(&ctx->xc_lock); wakeup(&ctx->xc_free); } @@ -231,10 +262,10 @@ vmbus_xact_activate(struct vmbus_xact *xact) KASSERT(xact->x_resp == NULL, ("xact has pending response")); - mtx_lock(&ctx->xc_active_lock); + mtx_lock(&ctx->xc_lock); KASSERT(ctx->xc_active == NULL, ("pending active xact")); ctx->xc_active = xact; - mtx_unlock(&ctx->xc_active_lock); + mtx_unlock(&ctx->xc_lock); } void @@ -242,31 +273,101 @@ vmbus_xact_deactivate(struct vmbus_xact *xact) { struct vmbus_xact_ctx *ctx = xact->x_ctx; - mtx_lock(&ctx->xc_active_lock); + mtx_lock(&ctx->xc_lock); KASSERT(ctx->xc_active == xact, ("xact mismatch")); ctx->xc_active = NULL; - mtx_unlock(&ctx->xc_active_lock); + mtx_unlock(&ctx->xc_lock); } -const void * -vmbus_xact_wait(struct vmbus_xact *xact, size_t *resp_len) +static const void * +vmbus_xact_return(struct vmbus_xact *xact, size_t *resp_len) { struct vmbus_xact_ctx *ctx = xact->x_ctx; const void *resp; - mtx_lock(&ctx->xc_active_lock); + mtx_assert(&ctx->xc_lock, MA_OWNED); + KASSERT(ctx->xc_active == xact, ("xact trashed")); - KASSERT(ctx->xc_active == xact, ("xact mismatch")); - while (xact->x_resp == NULL) { - mtx_sleep(&ctx->xc_active, &ctx->xc_active_lock, 0, - "wxact", 0); + if ((ctx->xc_flags & VMBUS_XACT_CTXF_DESTROY) && xact->x_resp == NULL) { + uint8_t b = 0; + + /* + * Orphaned and no response was received yet; fake up + * an one byte response. + */ + printf("vmbus: xact ctx was orphaned w/ pending xact\n"); + vmbus_xact_save_resp(ctx->xc_active, &b, sizeof(b)); } + KASSERT(xact->x_resp != NULL, ("no response")); + ctx->xc_active = NULL; resp = xact->x_resp; *resp_len = xact->x_resp_len; - mtx_unlock(&ctx->xc_active_lock); + return (resp); +} + +static const void * +vmbus_xact_wait1(struct vmbus_xact *xact, size_t *resp_len, + bool can_sleep) +{ + struct vmbus_xact_ctx *ctx = xact->x_ctx; + const void *resp; + + mtx_lock(&ctx->xc_lock); + + KASSERT(ctx->xc_active == xact, ("xact mismatch")); + while (xact->x_resp == NULL && + (ctx->xc_flags & VMBUS_XACT_CTXF_DESTROY) == 0) { + if (can_sleep) { + mtx_sleep(&ctx->xc_active, &ctx->xc_lock, 0, + "wxact", 0); + } else { + mtx_unlock(&ctx->xc_lock); + DELAY(1000); + mtx_lock(&ctx->xc_lock); + } + } + resp = vmbus_xact_return(xact, resp_len); + + mtx_unlock(&ctx->xc_lock); + + return (resp); +} + +const void * +vmbus_xact_wait(struct vmbus_xact *xact, size_t *resp_len) +{ + + return (vmbus_xact_wait1(xact, resp_len, true /* can sleep */)); +} + +const void * +vmbus_xact_busywait(struct vmbus_xact *xact, size_t *resp_len) +{ + + return (vmbus_xact_wait1(xact, resp_len, false /* can't sleep */)); +} + +const void * +vmbus_xact_poll(struct vmbus_xact *xact, size_t *resp_len) +{ + struct vmbus_xact_ctx *ctx = xact->x_ctx; + const void *resp; + + mtx_lock(&ctx->xc_lock); + + KASSERT(ctx->xc_active == xact, ("xact mismatch")); + if (xact->x_resp == NULL && + (ctx->xc_flags & VMBUS_XACT_CTXF_DESTROY) == 0) { + mtx_unlock(&ctx->xc_lock); + *resp_len = 0; + return (NULL); + } + resp = vmbus_xact_return(xact, resp_len); + + mtx_unlock(&ctx->xc_lock); return (resp); } @@ -277,7 +378,7 @@ vmbus_xact_save_resp(struct vmbus_xact *xact, const void *data, size_t dlen) struct vmbus_xact_ctx *ctx = xact->x_ctx; size_t cplen = dlen; - mtx_assert(&ctx->xc_active_lock, MA_OWNED); + mtx_assert(&ctx->xc_lock, MA_OWNED); if (cplen > ctx->xc_resp_size) { printf("vmbus: xact response truncated %zu -> %zu\n", @@ -295,19 +396,47 @@ void vmbus_xact_wakeup(struct vmbus_xact *xact, const void *data, size_t dlen) { struct vmbus_xact_ctx *ctx = xact->x_ctx; + int do_wakeup = 0; + + mtx_lock(&ctx->xc_lock); + /* + * NOTE: + * xc_active could be NULL, if the ctx has been orphaned. + */ + if (ctx->xc_active != NULL) { + vmbus_xact_save_resp(xact, data, dlen); + do_wakeup = 1; + } else { + KASSERT(ctx->xc_flags & VMBUS_XACT_CTXF_DESTROY, + ("no active xact pending")); + printf("vmbus: drop xact response\n"); + } + mtx_unlock(&ctx->xc_lock); - mtx_lock(&ctx->xc_active_lock); - vmbus_xact_save_resp(xact, data, dlen); - mtx_unlock(&ctx->xc_active_lock); - wakeup(&ctx->xc_active); + if (do_wakeup) + wakeup(&ctx->xc_active); } void vmbus_xact_ctx_wakeup(struct vmbus_xact_ctx *ctx, const void *data, size_t dlen) { - mtx_lock(&ctx->xc_active_lock); - KASSERT(ctx->xc_active != NULL, ("no pending xact")); - vmbus_xact_save_resp(ctx->xc_active, data, dlen); - mtx_unlock(&ctx->xc_active_lock); - wakeup(&ctx->xc_active); + int do_wakeup = 0; + + mtx_lock(&ctx->xc_lock); + /* + * NOTE: + * xc_active could be NULL, if the ctx has been orphaned. + */ + if (ctx->xc_active != NULL) { + vmbus_xact_save_resp(ctx->xc_active, data, dlen); + do_wakeup = 1; + } else { + KASSERT(ctx->xc_flags & VMBUS_XACT_CTXF_DESTROY, + ("no active xact pending")); + printf("vmbus: drop xact response\n"); + } + mtx_unlock(&ctx->xc_lock); + + if (do_wakeup) + wakeup(&ctx->xc_active); } diff --git a/sys/dev/iicbus/iicbus.c b/sys/dev/iicbus/iicbus.c index e377383..8149a08 100644 --- a/sys/dev/iicbus/iicbus.c +++ b/sys/dev/iicbus/iicbus.c @@ -192,6 +192,26 @@ iicbus_read_ivar(device_t bus, device_t child, int which, uintptr_t *result) case IICBUS_IVAR_ADDR: *result = devi->addr; break; + case IICBUS_IVAR_NOSTOP: + *result = devi->nostop; + break; + } + return (0); +} + +static int +iicbus_write_ivar(device_t bus, device_t child, int which, uintptr_t value) +{ + struct iicbus_ivar *devi = IICBUS_IVAR(child); + + switch (which) { + default: + return (EINVAL); + case IICBUS_IVAR_ADDR: + return (EINVAL); + case IICBUS_IVAR_NOSTOP: + devi->nostop = value; + break; } return (0); } @@ -302,6 +322,7 @@ static device_method_t iicbus_methods[] = { DEVMETHOD(bus_print_child, iicbus_print_child), DEVMETHOD(bus_probe_nomatch, iicbus_probe_nomatch), DEVMETHOD(bus_read_ivar, iicbus_read_ivar), + DEVMETHOD(bus_write_ivar, iicbus_write_ivar), DEVMETHOD(bus_child_pnpinfo_str, iicbus_child_pnpinfo_str), DEVMETHOD(bus_child_location_str, iicbus_child_location_str), DEVMETHOD(bus_hinted_child, iicbus_hinted_child), diff --git a/sys/dev/iicbus/iicsmb.c b/sys/dev/iicbus/iicsmb.c index b49d93d..88af163 100644 --- a/sys/dev/iicbus/iicsmb.c +++ b/sys/dev/iicbus/iicsmb.c @@ -57,6 +57,7 @@ __FBSDID("$FreeBSD$"); #include <dev/iicbus/iiconf.h> #include <dev/iicbus/iicbus.h> +#include <dev/smbus/smb.h> #include <dev/smbus/smbconf.h> #include "iicbus_if.h" @@ -432,7 +433,7 @@ iicsmb_bwrite(device_t dev, u_char slave, char cmd, u_char count, char *buf) }; int error; - if (count > 32 || count == 0) + if (count > SMB_MAXBLOCKSIZE || count == 0) return (SMB_EINVAL); error = TRANSFER_MSGS(dev, msgs); return (iic2smb_error(error)); @@ -450,12 +451,6 @@ iicsmb_bread(device_t dev, u_char slave, char cmd, u_char *count, char *buf) }; device_t parent = device_get_parent(dev); int error; - u_char bufsz; - - /* Stash output buffer size before overwriting it. */ - bufsz = *count; - if (bufsz == 0) - return (SMB_EINVAL); /* Have to do this because the command is split in two transfers. */ error = iicbus_request_bus(parent, dev, IIC_WAIT); @@ -465,18 +460,13 @@ iicsmb_bread(device_t dev, u_char slave, char cmd, u_char *count, char *buf) /* * If the slave offers an empty or a too long reply, * read one byte to generate the stop or abort. - * XXX 32 is hardcoded until SMB_MAXBLOCKSIZE is restored - * to sanity. */ - if (*count > 32 || *count == 0) + if (*count > SMB_MAXBLOCKSIZE || *count == 0) block_msg[0].len = 1; - /* If longer than the buffer, then clamp at the buffer size. */ - if (*count > bufsz) - block_msg[0].len = bufsz; else block_msg[0].len = *count; error = TRANSFER_MSGS(dev, block_msg); - if (*count > 32 || *count == 0) + if (*count > SMB_MAXBLOCKSIZE || *count == 0) error = SMB_EINVAL; } (void)iicbus_release_bus(parent, dev); diff --git a/sys/dev/iscsi/iscsi.h b/sys/dev/iscsi/iscsi.h index 11ecc42..ec15b56 100644 --- a/sys/dev/iscsi/iscsi.h +++ b/sys/dev/iscsi/iscsi.h @@ -118,7 +118,7 @@ struct iscsi_session { char is_reason[ISCSI_REASON_LEN]; #ifdef ICL_KERNEL_PROXY - struct cv is_login_cv;; + struct cv is_login_cv; struct icl_pdu *is_login_pdu; #endif }; diff --git a/sys/dev/isp/isp_pci.c b/sys/dev/isp/isp_pci.c index 0eefc16..d99e907 100644 --- a/sys/dev/isp/isp_pci.c +++ b/sys/dev/isp/isp_pci.c @@ -598,11 +598,18 @@ isp_get_specific_options(device_t dev, int chan, ispsoftc_t *isp) } } +#ifdef ISP_FCTAPE_OFF + isp->isp_confopts |= ISP_CFG_NOFCTAPE; +#else + isp->isp_confopts |= ISP_CFG_FCTAPE; +#endif + tval = 0; snprintf(name, sizeof(name), "%snofctape", prefix); (void) resource_int_value(device_get_name(dev), device_get_unit(dev), name, &tval); if (tval) { + isp->isp_confopts &= ~ISP_CFG_FCTAPE; isp->isp_confopts |= ISP_CFG_NOFCTAPE; } diff --git a/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c b/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c index 88bd3fd..291e959 100644 --- a/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c +++ b/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c @@ -854,8 +854,6 @@ mlx5e_create_main_flow_table(struct mlx5e_priv *priv) u8 *dmac; g = malloc(9 * sizeof(*g), M_MLX5EN, M_WAITOK | M_ZERO); - if (g == NULL) - return (-ENOMEM); g[0].log_sz = 2; g[0].match_criteria_enable = MLX5_MATCH_OUTER_HEADERS; @@ -939,8 +937,6 @@ mlx5e_create_vlan_flow_table(struct mlx5e_priv *priv) struct mlx5_flow_table_group *g; g = malloc(2 * sizeof(*g), M_MLX5EN, M_WAITOK | M_ZERO); - if (g == NULL) - return (-ENOMEM); g[0].log_sz = 12; g[0].match_criteria_enable = MLX5_MATCH_OUTER_HEADERS; diff --git a/sys/dev/mlx5/mlx5_en/mlx5_en_main.c b/sys/dev/mlx5/mlx5_en/mlx5_en_main.c index c2cfff9..e84e05a 100644 --- a/sys/dev/mlx5/mlx5_en/mlx5_en_main.c +++ b/sys/dev/mlx5/mlx5_en/mlx5_en_main.c @@ -651,10 +651,6 @@ mlx5e_create_rq(struct mlx5e_channel *c, wq_sz = mlx5_wq_ll_get_size(&rq->wq); rq->mbuf = malloc(wq_sz * sizeof(rq->mbuf[0]), M_MLX5EN, M_WAITOK | M_ZERO); - if (rq->mbuf == NULL) { - err = -ENOMEM; - goto err_rq_wq_destroy; - } for (i = 0; i != wq_sz; i++) { struct mlx5e_rx_wqe *wqe = mlx5_wq_ll_get_wqe(&rq->wq, i); uint32_t byte_count = rq->wqe_sz - MLX5E_NET_IP_ALIGN; @@ -903,8 +899,6 @@ mlx5e_alloc_sq_db(struct mlx5e_sq *sq) int x; sq->mbuf = malloc(wq_sz * sizeof(sq->mbuf[0]), M_MLX5EN, M_WAITOK | M_ZERO); - if (sq->mbuf == NULL) - return (-ENOMEM); /* Create DMA descriptor MAPs */ for (x = 0; x != wq_sz; x++) { @@ -1492,9 +1486,6 @@ mlx5e_open_channel(struct mlx5e_priv *priv, int ix, int err; c = malloc(sizeof(*c), M_MLX5EN, M_WAITOK | M_ZERO); - if (c == NULL) - return (-ENOMEM); - c->priv = priv; c->ix = ix; c->cpu = 0; @@ -1705,8 +1696,6 @@ mlx5e_open_channels(struct mlx5e_priv *priv) priv->channel = malloc(priv->params.num_channels * sizeof(struct mlx5e_channel *), M_MLX5EN, M_WAITOK | M_ZERO); - if (priv->channel == NULL) - return (-ENOMEM); mlx5e_build_channel_param(priv, &cparam); for (i = 0; i < priv->params.num_channels; i++) { @@ -2885,10 +2874,6 @@ mlx5e_create_ifp(struct mlx5_core_dev *mdev) return (NULL); } priv = malloc(sizeof(*priv), M_MLX5EN, M_WAITOK | M_ZERO); - if (priv == NULL) { - mlx5_core_err(mdev, "malloc() failed\n"); - return (NULL); - } mlx5e_priv_mtx_init(priv); ifp = priv->ifp = if_alloc(IFT_ETHER); diff --git a/sys/dev/mrsas/mrsas.c b/sys/dev/mrsas/mrsas.c index 0db859a..021e217 100644 --- a/sys/dev/mrsas/mrsas.c +++ b/sys/dev/mrsas/mrsas.c @@ -110,6 +110,7 @@ int mrsas_issue_polled(struct mrsas_softc *sc, struct mrsas_mfi_cmd *cmd); int mrsas_reset_ctrl(struct mrsas_softc *sc, u_int8_t reset_reason); int mrsas_wait_for_outstanding(struct mrsas_softc *sc, u_int8_t check_reason); int mrsas_complete_cmd(struct mrsas_softc *sc, u_int32_t MSIxIndex); +int mrsas_reset_targets(struct mrsas_softc *sc); int mrsas_issue_blocked_cmd(struct mrsas_softc *sc, struct mrsas_mfi_cmd *cmd); @@ -153,7 +154,6 @@ extern void mrsas_cam_detach(struct mrsas_softc *sc); extern void mrsas_cmd_done(struct mrsas_softc *sc, struct mrsas_mpt_cmd *cmd); extern void mrsas_free_frame(struct mrsas_softc *sc, struct mrsas_mfi_cmd *cmd); extern int mrsas_alloc_mfi_cmds(struct mrsas_softc *sc); -extern void mrsas_release_mpt_cmd(struct mrsas_mpt_cmd *cmd); extern struct mrsas_mpt_cmd *mrsas_get_mpt_cmd(struct mrsas_softc *sc); extern int mrsas_passthru(struct mrsas_softc *sc, void *arg, u_long ioctlCmd); extern uint8_t MR_ValidateMapInfo(struct mrsas_softc *sc); @@ -307,28 +307,11 @@ mrsas_enable_intr(struct mrsas_softc *sc) static int mrsas_clear_intr(struct mrsas_softc *sc) { - u_int32_t status, fw_status, fw_state; + u_int32_t status; /* Read received interrupt */ status = mrsas_read_reg(sc, offsetof(mrsas_reg_set, outbound_intr_status)); - /* - * If FW state change interrupt is received, write to it again to - * clear - */ - if (status & MRSAS_FW_STATE_CHNG_INTERRUPT) { - fw_status = mrsas_read_reg(sc, offsetof(mrsas_reg_set, - outbound_scratch_pad)); - fw_state = fw_status & MFI_STATE_MASK; - if (fw_state == MFI_STATE_FAULT) { - device_printf(sc->mrsas_dev, "FW is in FAULT state!\n"); - if (sc->ocr_thread_active) - wakeup(&sc->ocr_chan); - } - mrsas_write_reg(sc, offsetof(mrsas_reg_set, outbound_intr_status), status); - mrsas_read_reg(sc, offsetof(mrsas_reg_set, outbound_intr_status)); - return (1); - } /* Not our interrupt, so just return */ if (!(status & MFI_FUSION_ENABLE_INTERRUPT_MASK)) return (0); @@ -449,6 +432,11 @@ mrsas_setup_sysctl(struct mrsas_softc *sc) OID_AUTO, "reset_in_progress", CTLFLAG_RD, &sc->reset_in_progress, 0, "ocr in progress status"); + SYSCTL_ADD_UINT(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), + OID_AUTO, "block_sync_cache", CTLFLAG_RW, + &sc->block_sync_cache, 0, + "Block SYNC CACHE at driver. <default: 0, send it to FW>"); + } /* @@ -468,6 +456,7 @@ mrsas_get_tunables(struct mrsas_softc *sc) sc->mrsas_fw_fault_check_delay = 1; sc->reset_count = 0; sc->reset_in_progress = 0; + sc->block_sync_cache = 0; /* * Grab the global variables. @@ -674,16 +663,15 @@ mrsas_register_aen(struct mrsas_softc *sc, u_int32_t seq_num, sc->aen_cmd); if (ret_val) { - printf("mrsas: Failed to abort " - "previous AEN command\n"); + printf("mrsas: Failed to abort previous AEN command\n"); return ret_val; - } + } else + sc->aen_cmd = NULL; } } cmd = mrsas_get_mfi_cmd(sc); - if (!cmd) - return -ENOMEM; + return ENOMEM; dcmd = &cmd->frame->dcmd; @@ -835,6 +823,15 @@ mrsas_attach(device_t dev) sc->mrsas_dev = dev; sc->device_id = pci_get_device(dev); + if ((sc->device_id == MRSAS_INVADER) || + (sc->device_id == MRSAS_FURY) || + (sc->device_id == MRSAS_INTRUDER) || + (sc->device_id == MRSAS_INTRUDER_24) || + (sc->device_id == MRSAS_CUTLASS_52) || + (sc->device_id == MRSAS_CUTLASS_53)) { + sc->mrsas_gen3_ctrl = 1; + } + mrsas_get_tunables(sc); /* @@ -875,6 +872,7 @@ mrsas_attach(device_t dev) TAILQ_INIT(&sc->mrsas_mfi_cmd_list_head); mrsas_atomic_set(&sc->fw_outstanding, 0); + mrsas_atomic_set(&sc->target_reset_outstanding, 0); sc->io_cmds_highwater = 0; @@ -953,8 +951,7 @@ mrsas_ich_startup(void *arg) /* * Intialize a counting Semaphore to take care no. of concurrent IOCTLs */ - sema_init(&sc->ioctl_count_sema, - MRSAS_MAX_MFI_CMDS - 5, + sema_init(&sc->ioctl_count_sema, MRSAS_MAX_IOCTL_CMDS, IOCTL_SEMA_DESCRIPTION); /* Create a /dev entry for mrsas controller. */ @@ -1070,7 +1067,7 @@ mrsas_detach(device_t dev) mtx_destroy(&sc->raidmap_lock); /* Wait for all the semaphores to be released */ - while (sema_value(&sc->ioctl_count_sema) != (MRSAS_MAX_MFI_CMDS - 5)) + while (sema_value(&sc->ioctl_count_sema) != MRSAS_MAX_IOCTL_CMDS) pause("mr_shutdown", hz); /* Destroy the counting semaphore created for Ioctl */ @@ -1353,9 +1350,11 @@ mrsas_ioctl(struct cdev *dev, u_long cmd, caddr_t arg, int flag, d_thread_t *td) if (!sc) return ENOENT; - if (sc->remove_in_progress) { + if (sc->remove_in_progress || + (sc->adprecovery == MRSAS_HW_CRITICAL_ERROR)) { mrsas_dprint(sc, MRSAS_INFO, - "Driver remove or shutdown called.\n"); + "Either driver remove or shutdown called or " + "HW is in unrecoverable critical error state.\n"); return ENOENT; } mtx_lock_spin(&sc->ioctl_lock); @@ -1547,7 +1546,10 @@ mrsas_complete_cmd(struct mrsas_softc *sc, u_int32_t MSIxIndex) PLD_LOAD_BALANCE_INFO lbinfo; u_int32_t device_id; int threshold_reply_count = 0; - +#if TM_DEBUG + MR_TASK_MANAGE_REQUEST *mr_tm_req; + MPI2_SCSI_TASK_MANAGE_REQUEST *mpi_tm_req; +#endif /* If we have a hardware error, not need to continue */ if (sc->adprecovery == MRSAS_HW_CRITICAL_ERROR) @@ -1574,6 +1576,16 @@ mrsas_complete_cmd(struct mrsas_softc *sc, u_int32_t MSIxIndex) extStatus = scsi_io_req->RaidContext.exStatus; switch (scsi_io_req->Function) { + case MPI2_FUNCTION_SCSI_TASK_MGMT: +#if TM_DEBUG + mr_tm_req = (MR_TASK_MANAGE_REQUEST *) cmd_mpt->io_request; + mpi_tm_req = (MPI2_SCSI_TASK_MANAGE_REQUEST *) + &mr_tm_req->TmRequest; + device_printf(sc->mrsas_dev, "TM completion type 0x%X, " + "TaskMID: 0x%X", mpi_tm_req->TaskType, mpi_tm_req->TaskMID); +#endif + wakeup_one((void *)&sc->ocr_chan); + break; case MPI2_FUNCTION_SCSI_IO_REQUEST: /* Fast Path IO. */ device_id = cmd_mpt->ccb_ptr->ccb_h.target_id; lbinfo = &sc->load_balance_info[device_id]; @@ -1591,9 +1603,16 @@ mrsas_complete_cmd(struct mrsas_softc *sc, u_int32_t MSIxIndex) break; case MRSAS_MPI2_FUNCTION_PASSTHRU_IO_REQUEST: /* MFI command */ cmd_mfi = sc->mfi_cmd_list[cmd_mpt->sync_cmd_idx]; - mrsas_complete_mptmfi_passthru(sc, cmd_mfi, status); - cmd_mpt->flags = 0; - mrsas_release_mpt_cmd(cmd_mpt); + /* + * Make sure NOT TO release the mfi command from the called + * function's context if it is fired with issue_polled call. + * And also make sure that the issue_polled call should only be + * used if INTERRUPT IS DISABLED. + */ + if (cmd_mfi->frame->hdr.flags & MFI_FRAME_DONT_POST_IN_REPLY_QUEUE) + mrsas_release_mfi_cmd(cmd_mfi); + else + mrsas_complete_mptmfi_passthru(sc, cmd_mfi, status); break; } @@ -1628,12 +1647,7 @@ mrsas_complete_cmd(struct mrsas_softc *sc, u_int32_t MSIxIndex) */ if (threshold_reply_count >= THRESHOLD_REPLY_COUNT) { if (sc->msix_enable) { - if ((sc->device_id == MRSAS_INVADER) || - (sc->device_id == MRSAS_FURY) || - (sc->device_id == MRSAS_INTRUDER) || - (sc->device_id == MRSAS_INTRUDER_24) || - (sc->device_id == MRSAS_CUTLASS_52) || - (sc->device_id == MRSAS_CUTLASS_53)) + if (sc->mrsas_gen3_ctrl) mrsas_write_reg(sc, sc->msix_reg_offset[MSIxIndex / 8], ((MSIxIndex & 0x7) << 24) | sc->last_reply_idx[MSIxIndex]); @@ -1654,12 +1668,7 @@ mrsas_complete_cmd(struct mrsas_softc *sc, u_int32_t MSIxIndex) /* Clear response interrupt */ if (sc->msix_enable) { - if ((sc->device_id == MRSAS_INVADER) || - (sc->device_id == MRSAS_FURY) || - (sc->device_id == MRSAS_INTRUDER) || - (sc->device_id == MRSAS_INTRUDER_24) || - (sc->device_id == MRSAS_CUTLASS_52) || - (sc->device_id == MRSAS_CUTLASS_53)) { + if (sc->mrsas_gen3_ctrl) { mrsas_write_reg(sc, sc->msix_reg_offset[MSIxIndex / 8], ((MSIxIndex & 0x7) << 24) | sc->last_reply_idx[MSIxIndex]); @@ -2434,12 +2443,21 @@ mrsas_ioc_init(struct mrsas_softc *sc) u_int8_t max_wait = MRSAS_IOC_INIT_WAIT_TIME; bus_addr_t phys_addr; int i, retcode = 0; + u_int32_t scratch_pad_2; /* Allocate memory for the IOC INIT command */ if (mrsas_alloc_ioc_cmd(sc)) { device_printf(sc->mrsas_dev, "Cannot allocate IOC command.\n"); return (1); } + + if (!sc->block_sync_cache) { + scratch_pad_2 = mrsas_read_reg(sc, offsetof(mrsas_reg_set, + outbound_scratch_pad_2)); + sc->fw_sync_cache_support = (scratch_pad_2 & + MR_CAN_HANDLE_SYNC_CACHE_OFFSET) ? 1 : 0; + } + IOCInitMsg = (pMpi2IOCInitRequest_t)(((char *)sc->ioc_init_mem) + 1024); IOCInitMsg->Function = MPI2_FUNCTION_IOC_INIT; IOCInitMsg->WhoInit = MPI2_WHOINIT_HOST_DRIVER; @@ -2457,12 +2475,7 @@ mrsas_ioc_init(struct mrsas_softc *sc) init_frame->flags |= MFI_FRAME_DONT_POST_IN_REPLY_QUEUE; /* driver support Extended MSIX */ - if ((sc->device_id == MRSAS_INVADER) || - (sc->device_id == MRSAS_FURY) || - (sc->device_id == MRSAS_INTRUDER) || - (sc->device_id == MRSAS_INTRUDER_24) || - (sc->device_id == MRSAS_CUTLASS_52) || - (sc->device_id == MRSAS_CUTLASS_53)) { + if (sc->mrsas_gen3_ctrl) { init_frame->driver_operations. mfi_capabilities.support_additional_msix = 1; } @@ -2584,7 +2597,7 @@ mrsas_alloc_mpt_cmds(struct mrsas_softc *sc) memset(cmd, 0, sizeof(struct mrsas_mpt_cmd)); cmd->index = i + 1; cmd->ccb_ptr = NULL; - callout_init(&cmd->cm_callout, 0); + callout_init_mtx(&cmd->cm_callout, &sc->sim_lock, 0); cmd->sync_cmd_idx = (u_int32_t)MRSAS_ULONG_MAX; cmd->sc = sc; cmd->io_request = (MRSAS_RAID_SCSI_IO_REQUEST *) (io_req_base + offset); @@ -2779,6 +2792,7 @@ mrsas_ocr_thread(void *arg) { struct mrsas_softc *sc; u_int32_t fw_status, fw_state; + u_int8_t tm_target_reset_failed = 0; sc = (struct mrsas_softc *)arg; @@ -2801,20 +2815,66 @@ mrsas_ocr_thread(void *arg) fw_status = mrsas_read_reg(sc, offsetof(mrsas_reg_set, outbound_scratch_pad)); fw_state = fw_status & MFI_STATE_MASK; - if (fw_state == MFI_STATE_FAULT || sc->do_timedout_reset) { - device_printf(sc->mrsas_dev, "%s started due to %s!\n", - sc->disableOnlineCtrlReset ? "Kill Adapter" : "OCR", - sc->do_timedout_reset ? "IO Timeout" : - "FW fault detected"); - mtx_lock_spin(&sc->ioctl_lock); - sc->reset_in_progress = 1; - sc->reset_count++; - mtx_unlock_spin(&sc->ioctl_lock); + if (fw_state == MFI_STATE_FAULT || sc->do_timedout_reset || + mrsas_atomic_read(&sc->target_reset_outstanding)) { + + /* First, freeze further IOs to come to the SIM */ mrsas_xpt_freeze(sc); - mrsas_reset_ctrl(sc, sc->do_timedout_reset); - mrsas_xpt_release(sc); - sc->reset_in_progress = 0; - sc->do_timedout_reset = 0; + + /* If this is an IO timeout then go for target reset */ + if (mrsas_atomic_read(&sc->target_reset_outstanding)) { + device_printf(sc->mrsas_dev, "Initiating Target RESET " + "because of SCSI IO timeout!\n"); + + /* Let the remaining IOs to complete */ + msleep(&sc->ocr_chan, &sc->sim_lock, PRIBIO, + "mrsas_reset_targets", 5 * hz); + + /* Try to reset the target device */ + if (mrsas_reset_targets(sc) == FAIL) + tm_target_reset_failed = 1; + } + + /* If this is a DCMD timeout or FW fault, + * then go for controller reset + */ + if (fw_state == MFI_STATE_FAULT || tm_target_reset_failed || + (sc->do_timedout_reset == MFI_DCMD_TIMEOUT_OCR)) { + if (tm_target_reset_failed) + device_printf(sc->mrsas_dev, "Initiaiting OCR because of " + "TM FAILURE!\n"); + else + device_printf(sc->mrsas_dev, "Initiaiting OCR " + "because of %s!\n", sc->do_timedout_reset ? + "DCMD IO Timeout" : "FW fault"); + + mtx_lock_spin(&sc->ioctl_lock); + sc->reset_in_progress = 1; + mtx_unlock_spin(&sc->ioctl_lock); + sc->reset_count++; + + /* + * Wait for the AEN task to be completed if it is running. + */ + mtx_unlock(&sc->sim_lock); + taskqueue_drain(sc->ev_tq, &sc->ev_task); + mtx_lock(&sc->sim_lock); + + taskqueue_block(sc->ev_tq); + /* Try to reset the controller */ + mrsas_reset_ctrl(sc, sc->do_timedout_reset); + + sc->do_timedout_reset = 0; + sc->reset_in_progress = 0; + tm_target_reset_failed = 0; + mrsas_atomic_set(&sc->target_reset_outstanding, 0); + memset(sc->target_reset_pool, 0, + sizeof(sc->target_reset_pool)); + taskqueue_unblock(sc->ev_tq); + } + + /* Now allow IOs to come to the SIM */ + mrsas_xpt_release(sc); } } mtx_unlock(&sc->sim_lock); @@ -2866,6 +2926,7 @@ mrsas_reset_ctrl(struct mrsas_softc *sc, u_int8_t reset_reason) struct mrsas_mfi_cmd *mfi_cmd; struct mrsas_mpt_cmd *mpt_cmd; union mrsas_evt_class_locale class_locale; + MRSAS_REQUEST_DESCRIPTOR_UNION *req_desc; if (sc->adprecovery == MRSAS_HW_CRITICAL_ERROR) { device_printf(sc->mrsas_dev, @@ -2993,13 +3054,25 @@ mrsas_reset_ctrl(struct mrsas_softc *sc, u_int8_t reset_reason) mpt_cmd = sc->mpt_cmd_list[j]; if (mpt_cmd->sync_cmd_idx != (u_int32_t)MRSAS_ULONG_MAX) { mfi_cmd = sc->mfi_cmd_list[mpt_cmd->sync_cmd_idx]; - mrsas_release_mfi_cmd(mfi_cmd); - mrsas_release_mpt_cmd(mpt_cmd); + /* If not an IOCTL then release the command else re-fire */ + if (!mfi_cmd->sync_cmd) { + mrsas_release_mfi_cmd(mfi_cmd); + } else { + req_desc = mrsas_get_request_desc(sc, + mfi_cmd->cmd_id.context.smid - 1); + mrsas_dprint(sc, MRSAS_OCR, + "Re-fire command DCMD opcode 0x%x index %d\n ", + mfi_cmd->frame->dcmd.opcode, j); + if (!req_desc) + device_printf(sc->mrsas_dev, + "Cannot build MPT cmd.\n"); + else + mrsas_fire_cmd(sc, req_desc->addr.u.low, + req_desc->addr.u.high); + } } } - sc->aen_cmd = NULL; - /* Reset load balance info */ memset(sc->load_balance_info, 0, sizeof(LD_LOAD_BALANCE_INFO) * MAX_LOGICAL_DRIVES_EXT); @@ -3014,17 +3087,6 @@ mrsas_reset_ctrl(struct mrsas_softc *sc, u_int8_t reset_reason) megasas_setup_jbod_map(sc); - memset(sc->pd_list, 0, - MRSAS_MAX_PD * sizeof(struct mrsas_pd_list)); - if (mrsas_get_pd_list(sc) != SUCCESS) { - device_printf(sc->mrsas_dev, "Get PD list failed from OCR.\n" - "Will get the latest PD LIST after OCR on event.\n"); - } - memset(sc->ld_ids, 0xff, MRSAS_MAX_LD_IDS); - if (mrsas_get_ld_list(sc) != SUCCESS) { - device_printf(sc->mrsas_dev, "Get LD lsit failed from OCR.\n" - "Will get the latest LD LIST after OCR on event.\n"); - } mrsas_clear_bit(MRSAS_FUSION_IN_RESET, &sc->reset_flags); mrsas_enable_intr(sc); sc->adprecovery = MRSAS_HBA_OPERATIONAL; @@ -3034,6 +3096,7 @@ mrsas_reset_ctrl(struct mrsas_softc *sc, u_int8_t reset_reason) class_locale.members.locale = MR_EVT_LOCALE_ALL; class_locale.members.class = MR_EVT_CLASS_DEBUG; + mtx_unlock(&sc->sim_lock); if (mrsas_register_aen(sc, sc->last_seq_num, class_locale.word)) { device_printf(sc->mrsas_dev, @@ -3043,6 +3106,8 @@ mrsas_reset_ctrl(struct mrsas_softc *sc, u_int8_t reset_reason) "or the controller does not support AEN.\n" "Please contact to the SUPPORT TEAM if the problem persists\n"); } + mtx_lock(&sc->sim_lock); + /* Adapter reset completed successfully */ device_printf(sc->mrsas_dev, "Reset successful\n"); retval = SUCCESS; @@ -3139,6 +3204,11 @@ mrsas_wait_for_outstanding(struct mrsas_softc *sc, u_int8_t check_reason) if (fw_state == MFI_STATE_FAULT) { mrsas_dprint(sc, MRSAS_OCR, "Found FW in FAULT state, will reset adapter.\n"); + count = sc->msix_vectors > 0 ? sc->msix_vectors : 1; + mtx_unlock(&sc->sim_lock); + for (MSIxIndex = 0; MSIxIndex < count; MSIxIndex++) + mrsas_complete_cmd(sc, MSIxIndex); + mtx_lock(&sc->sim_lock); retval = 1; goto out; } @@ -3156,8 +3226,10 @@ mrsas_wait_for_outstanding(struct mrsas_softc *sc, u_int8_t check_reason) mrsas_dprint(sc, MRSAS_OCR, "[%2d]waiting for %d " "commands to complete\n", i, outstanding); count = sc->msix_vectors > 0 ? sc->msix_vectors : 1; + mtx_unlock(&sc->sim_lock); for (MSIxIndex = 0; MSIxIndex < count; MSIxIndex++) mrsas_complete_cmd(sc, MSIxIndex); + mtx_lock(&sc->sim_lock); } DELAY(1000 * 1000); } @@ -3176,17 +3248,33 @@ out: * mrsas_release_mfi_cmd: Return a cmd to free command pool * input: Command packet for return to free cmd pool * - * This function returns the MFI command to the command list. + * This function returns the MFI & MPT command to the command list. */ void -mrsas_release_mfi_cmd(struct mrsas_mfi_cmd *cmd) +mrsas_release_mfi_cmd(struct mrsas_mfi_cmd *cmd_mfi) { - struct mrsas_softc *sc = cmd->sc; + struct mrsas_softc *sc = cmd_mfi->sc; + struct mrsas_mpt_cmd *cmd_mpt; + mtx_lock(&sc->mfi_cmd_pool_lock); - cmd->ccb_ptr = NULL; - cmd->cmd_id.frame_count = 0; - TAILQ_INSERT_TAIL(&(sc->mrsas_mfi_cmd_list_head), cmd, next); + /* + * Release the mpt command (if at all it is allocated + * associated with the mfi command + */ + if (cmd_mfi->cmd_id.context.smid) { + mtx_lock(&sc->mpt_cmd_pool_lock); + /* Get the mpt cmd from mfi cmd frame's smid value */ + cmd_mpt = sc->mpt_cmd_list[cmd_mfi->cmd_id.context.smid-1]; + cmd_mpt->flags = 0; + cmd_mpt->sync_cmd_idx = (u_int32_t)MRSAS_ULONG_MAX; + TAILQ_INSERT_HEAD(&(sc->mrsas_mpt_cmd_list_head), cmd_mpt, next); + mtx_unlock(&sc->mpt_cmd_pool_lock); + } + /* Release the mfi command */ + cmd_mfi->ccb_ptr = NULL; + cmd_mfi->cmd_id.frame_count = 0; + TAILQ_INSERT_HEAD(&(sc->mrsas_mfi_cmd_list_head), cmd_mfi, next); mtx_unlock(&sc->mfi_cmd_pool_lock); return; @@ -3235,7 +3323,11 @@ mrsas_get_ctrl_info(struct mrsas_softc *sc) dcmd->sgl.sge32[0].phys_addr = sc->ctlr_info_phys_addr; dcmd->sgl.sge32[0].length = sizeof(struct mrsas_ctrl_info); - retcode = mrsas_issue_polled(sc, cmd); + if (!sc->mask_interrupts) + retcode = mrsas_issue_blocked_cmd(sc, cmd); + else + retcode = mrsas_issue_polled(sc, cmd); + if (retcode == ETIMEDOUT) goto dcmd_timeout; else @@ -3246,13 +3338,16 @@ mrsas_get_ctrl_info(struct mrsas_softc *sc) sc->use_seqnum_jbod_fp = sc->ctrl_info->adapterOperations3.useSeqNumJbodFP; + sc->disableOnlineCtrlReset = + sc->ctrl_info->properties.OnOffProperties.disableOnlineCtrlReset; dcmd_timeout: mrsas_free_ctlr_info_cmd(sc); if (do_ocr) sc->do_timedout_reset = MFI_DCMD_TIMEOUT_OCR; - else + + if (!sc->mask_interrupts) mrsas_release_mfi_cmd(cmd); return (retcode); @@ -3495,12 +3590,7 @@ mrsas_build_mptmfi_passthru(struct mrsas_softc *sc, struct mrsas_mfi_cmd *mfi_cm io_req = mpt_cmd->io_request; - if ((sc->device_id == MRSAS_INVADER) || - (sc->device_id == MRSAS_FURY) || - (sc->device_id == MRSAS_INTRUDER) || - (sc->device_id == MRSAS_INTRUDER_24) || - (sc->device_id == MRSAS_CUTLASS_52) || - (sc->device_id == MRSAS_CUTLASS_53)) { + if (sc->mrsas_gen3_ctrl) { pMpi25IeeeSgeChain64_t sgl_ptr_end = (pMpi25IeeeSgeChain64_t)&io_req->SGL; sgl_ptr_end += sc->max_sge_in_main_msg - 1; @@ -3868,8 +3958,6 @@ megasas_sync_pd_seq_num(struct mrsas_softc *sc, boolean_t pend) dcmd_timeout: if (do_ocr) sc->do_timedout_reset = MFI_DCMD_TIMEOUT_OCR; - else - mrsas_release_mfi_cmd(cmd); return (retcode); } @@ -3946,8 +4034,6 @@ mrsas_get_ld_map_info(struct mrsas_softc *sc) retcode = mrsas_issue_polled(sc, cmd); if (retcode == ETIMEDOUT) sc->do_timedout_reset = MFI_DCMD_TIMEOUT_OCR; - else - mrsas_release_mfi_cmd(cmd); return (retcode); } @@ -3974,9 +4060,8 @@ mrsas_sync_map_info(struct mrsas_softc *sc) cmd = mrsas_get_mfi_cmd(sc); if (!cmd) { - device_printf(sc->mrsas_dev, - "Cannot alloc for sync map info cmd\n"); - return 1; + device_printf(sc->mrsas_dev, "Cannot alloc for sync map info cmd\n"); + return ENOMEM; } map = sc->ld_drv_map[sc->map_id & 1]; num_lds = map->raidMap.ldCount; @@ -4076,7 +4161,11 @@ mrsas_get_pd_list(struct mrsas_softc *sc) dcmd->sgl.sge32[0].phys_addr = pd_list_phys_addr; dcmd->sgl.sge32[0].length = MRSAS_MAX_PD * sizeof(struct MR_PD_LIST); - retcode = mrsas_issue_polled(sc, cmd); + if (!sc->mask_interrupts) + retcode = mrsas_issue_blocked_cmd(sc, cmd); + else + retcode = mrsas_issue_polled(sc, cmd); + if (retcode == ETIMEDOUT) goto dcmd_timeout; @@ -4107,7 +4196,8 @@ dcmd_timeout: if (do_ocr) sc->do_timedout_reset = MFI_DCMD_TIMEOUT_OCR; - else + + if (!sc->mask_interrupts) mrsas_release_mfi_cmd(cmd); return (retcode); @@ -4169,7 +4259,11 @@ mrsas_get_ld_list(struct mrsas_softc *sc) dcmd->sgl.sge32[0].length = sizeof(struct MR_LD_LIST); dcmd->pad_0 = 0; - retcode = mrsas_issue_polled(sc, cmd); + if (!sc->mask_interrupts) + retcode = mrsas_issue_blocked_cmd(sc, cmd); + else + retcode = mrsas_issue_polled(sc, cmd); + if (retcode == ETIMEDOUT) goto dcmd_timeout; @@ -4195,7 +4289,7 @@ dcmd_timeout: if (do_ocr) sc->do_timedout_reset = MFI_DCMD_TIMEOUT_OCR; - else + if (!sc->mask_interrupts) mrsas_release_mfi_cmd(cmd); return (retcode); @@ -4359,6 +4453,11 @@ mrsas_aen_handler(struct mrsas_softc *sc) printf("invalid instance!\n"); return; } + if (sc->remove_in_progress || sc->reset_in_progress) { + device_printf(sc->mrsas_dev, "Returning from %s, line no %d\n", + __func__, __LINE__); + return; + } if (sc->evt_detail_mem) { switch (sc->evt_detail_mem->code) { case MR_EVT_PD_INSERTED: @@ -4367,7 +4466,6 @@ mrsas_aen_handler(struct mrsas_softc *sc) mrsas_bus_scan_sim(sc, sc->sim_1); else goto skip_register_aen; - doscan = 0; break; case MR_EVT_PD_REMOVED: fail_aen = mrsas_get_pd_list(sc); @@ -4375,13 +4473,11 @@ mrsas_aen_handler(struct mrsas_softc *sc) mrsas_bus_scan_sim(sc, sc->sim_1); else goto skip_register_aen; - doscan = 0; break; case MR_EVT_LD_OFFLINE: case MR_EVT_CFG_CLEARED: case MR_EVT_LD_DELETED: mrsas_bus_scan_sim(sc, sc->sim_0); - doscan = 0; break; case MR_EVT_LD_CREATED: fail_aen = mrsas_get_ld_list(sc); @@ -4389,15 +4485,18 @@ mrsas_aen_handler(struct mrsas_softc *sc) mrsas_bus_scan_sim(sc, sc->sim_0); else goto skip_register_aen; - doscan = 0; break; case MR_EVT_CTRL_HOST_BUS_SCAN_REQUESTED: case MR_EVT_FOREIGN_CFG_IMPORTED: case MR_EVT_LD_STATE_CHANGE: doscan = 1; break; + case MR_EVT_CTRL_PROP_CHANGED: + fail_aen = mrsas_get_ctrl_info(sc); + if (fail_aen) + goto skip_register_aen; + break; default: - doscan = 0; break; } } else { @@ -4473,8 +4572,7 @@ mrsas_complete_aen(struct mrsas_softc *sc, struct mrsas_mfi_cmd *cmd) sc->aen_cmd = NULL; mrsas_release_mfi_cmd(cmd); - if (!sc->remove_in_progress) - taskqueue_enqueue(sc->ev_tq, &sc->ev_task); + taskqueue_enqueue(sc->ev_tq, &sc->ev_task); return; } diff --git a/sys/dev/mrsas/mrsas.h b/sys/dev/mrsas/mrsas.h index 2c2a341..672b177 100644 --- a/sys/dev/mrsas/mrsas.h +++ b/sys/dev/mrsas/mrsas.h @@ -106,7 +106,7 @@ __FBSDID("$FreeBSD$"); */ #define BYTE_ALIGNMENT 1 #define MRSAS_MAX_NAME_LENGTH 32 -#define MRSAS_VERSION "06.709.07.00-fbsd" +#define MRSAS_VERSION "06.712.04.00-fbsd" #define MRSAS_ULONG_MAX 0xFFFFFFFFFFFFFFFF #define MRSAS_DEFAULT_TIMEOUT 0x14 /* Temporarily set */ #define DONE 0 @@ -205,7 +205,9 @@ typedef struct _RAID_CONTEXT { #define MPI2_SCSIIO_EEDPFLAGS_CHECK_GUARD (0x0100) #define MPI2_SCSIIO_EEDPFLAGS_INSERT_OP (0x0004) #define MPI2_FUNCTION_SCSI_IO_REQUEST (0x00) /* SCSI IO */ -#define MPI2_REQ_DESCRIPT_FLAGS_HIGH_PRIORITY (0x06) +#define MPI2_FUNCTION_SCSI_TASK_MGMT (0x01) +#define MPI2_REQ_DESCRIPT_FLAGS_HIGH_PRIORITY (0x03) +#define MPI2_REQ_DESCRIPT_FLAGS_FP_IO (0x06) #define MPI2_REQ_DESCRIPT_FLAGS_SCSI_IO (0x00) #define MPI2_SGE_FLAGS_64_BIT_ADDRESSING (0x02) #define MPI2_SCSIIO_CONTROL_WRITE (0x01000000) @@ -314,6 +316,91 @@ typedef union { } MPI2_SCSI_IO_CDB_UNION, MPI2_POINTER PTR_MPI2_SCSI_IO_CDB_UNION, Mpi2ScsiIoCdb_t, MPI2_POINTER pMpi2ScsiIoCdb_t; +/**************************************************************************** + * * SCSI Task Management messages + * ****************************************************************************/ + +/*SCSI Task Management Request Message */ +typedef struct _MPI2_SCSI_TASK_MANAGE_REQUEST { + u_int16_t DevHandle; /*0x00 */ + u_int8_t ChainOffset; /*0x02 */ + u_int8_t Function; /*0x03 */ + u_int8_t Reserved1; /*0x04 */ + u_int8_t TaskType; /*0x05 */ + u_int8_t Reserved2; /*0x06 */ + u_int8_t MsgFlags; /*0x07 */ + u_int8_t VP_ID; /*0x08 */ + u_int8_t VF_ID; /*0x09 */ + u_int16_t Reserved3; /*0x0A */ + u_int8_t LUN[8]; /*0x0C */ + u_int32_t Reserved4[7]; /*0x14 */ + u_int16_t TaskMID; /*0x30 */ + u_int16_t Reserved5; /*0x32 */ +} MPI2_SCSI_TASK_MANAGE_REQUEST; + +/*SCSI Task Management Reply Message */ +typedef struct _MPI2_SCSI_TASK_MANAGE_REPLY { + u_int16_t DevHandle; /*0x00 */ + u_int8_t MsgLength; /*0x02 */ + u_int8_t Function; /*0x03 */ + u_int8_t ResponseCode; /*0x04 */ + u_int8_t TaskType; /*0x05 */ + u_int8_t Reserved1; /*0x06 */ + u_int8_t MsgFlags; /*0x07 */ + u_int8_t VP_ID; /*0x08 */ + u_int8_t VF_ID; /*0x09 */ + u_int16_t Reserved2; /*0x0A */ + u_int16_t Reserved3; /*0x0C */ + u_int16_t IOCStatus; /*0x0E */ + u_int32_t IOCLogInfo; /*0x10 */ + u_int32_t TerminationCount; /*0x14 */ + u_int32_t ResponseInfo; /*0x18 */ +} MPI2_SCSI_TASK_MANAGE_REPLY; + +typedef struct _MR_TM_REQUEST { + char request[128]; +} MR_TM_REQUEST; + +typedef struct _MR_TM_REPLY { + char reply[128]; +} MR_TM_REPLY; + +/* SCSI Task Management Request Message */ +typedef struct _MR_TASK_MANAGE_REQUEST { + /*To be type casted to struct MPI2_SCSI_TASK_MANAGE_REQUEST */ + MR_TM_REQUEST TmRequest; + union { + struct { + u_int32_t isTMForLD:1; + u_int32_t isTMForPD:1; + u_int32_t reserved1:30; + u_int32_t reserved2; + } tmReqFlags; + MR_TM_REPLY TMReply; + } uTmReqReply; +} MR_TASK_MANAGE_REQUEST; + +/* TaskType values */ +#define MPI2_SCSITASKMGMT_TASKTYPE_ABORT_TASK (0x01) +#define MPI2_SCSITASKMGMT_TASKTYPE_ABRT_TASK_SET (0x02) +#define MPI2_SCSITASKMGMT_TASKTYPE_TARGET_RESET (0x03) +#define MPI2_SCSITASKMGMT_TASKTYPE_LOGICAL_UNIT_RESET (0x05) +#define MPI2_SCSITASKMGMT_TASKTYPE_CLEAR_TASK_SET (0x06) +#define MPI2_SCSITASKMGMT_TASKTYPE_QUERY_TASK (0x07) +#define MPI2_SCSITASKMGMT_TASKTYPE_CLR_ACA (0x08) +#define MPI2_SCSITASKMGMT_TASKTYPE_QRY_TASK_SET (0x09) +#define MPI2_SCSITASKMGMT_TASKTYPE_QRY_ASYNC_EVENT (0x0A) + +/* ResponseCode values */ +#define MPI2_SCSITASKMGMT_RSP_TM_COMPLETE (0x00) +#define MPI2_SCSITASKMGMT_RSP_INVALID_FRAME (0x02) +#define MPI2_SCSITASKMGMT_RSP_TM_NOT_SUPPORTED (0x04) +#define MPI2_SCSITASKMGMT_RSP_TM_FAILED (0x05) +#define MPI2_SCSITASKMGMT_RSP_TM_SUCCEEDED (0x08) +#define MPI2_SCSITASKMGMT_RSP_TM_INVALID_LUN (0x09) +#define MPI2_SCSITASKMGMT_RSP_TM_OVERLAPPED_TAG (0x0A) +#define MPI2_SCSITASKMGMT_RSP_IO_QUEUED_ON_IOC (0x80) + /* * RAID SCSI IO Request Message Total SGE count will be one less than * _MPI2_SCSI_IO_REQUEST @@ -584,7 +671,7 @@ Mpi2IOCInitRequest_t, MPI2_POINTER pMpi2IOCInitRequest_t; #define MAX_RAIDMAP_PHYSICAL_DEVICES (MAX_PHYSICAL_DEVICES) #define MR_DCMD_LD_MAP_GET_INFO 0x0300e101 #define MR_DCMD_SYSTEM_PD_MAP_GET_INFO 0x0200e102 - +#define MR_DCMD_PD_MFI_TASK_MGMT 0x0200e100 #define MRSAS_MAX_PD_CHANNELS 1 #define MRSAS_MAX_LD_CHANNELS 1 @@ -599,7 +686,7 @@ Mpi2IOCInitRequest_t, MPI2_POINTER pMpi2IOCInitRequest_t; #define VD_EXT_DEBUG 0 - +#define TM_DEBUG 1 /******************************************************************* * RAID map related structures @@ -659,7 +746,8 @@ typedef struct _MR_LD_RAID { u_int32_t fpWriteAcrossStripe:1; u_int32_t fpReadAcrossStripe:1; u_int32_t fpNonRWCapable:1; - u_int32_t reserved4:7; + u_int32_t tmCapable:1; + u_int32_t reserved4:6; } capability; u_int32_t reserved6; u_int64_t size; @@ -876,7 +964,11 @@ struct IO_REQUEST_INFO { struct MR_PD_CFG_SEQ { u_int16_t seqNum; u_int16_t devHandle; - u_int8_t reserved[4]; + struct { + u_int8_t tmCapable:1; + u_int8_t reserved:7; + } capability; + u_int8_t reserved[3]; } __packed; struct MR_PD_CFG_SEQ_NUM_SYNC { @@ -1242,7 +1334,6 @@ enum MR_EVT_ARGS { MR_EVT_ARGS_GENERIC, }; - /* * Thunderbolt (and later) Defines */ @@ -1256,7 +1347,8 @@ enum MR_EVT_ARGS { #define HOST_DIAG_WRITE_ENABLE 0x80 #define HOST_DIAG_RESET_ADAPTER 0x4 #define MRSAS_TBOLT_MAX_RESET_TRIES 3 -#define MRSAS_MAX_MFI_CMDS 32 +#define MRSAS_MAX_MFI_CMDS 16 +#define MRSAS_MAX_IOCTL_CMDS 3 /* * Invader Defines @@ -1395,6 +1487,7 @@ struct mrsas_mpt_cmd { union ccb *ccb_ptr; struct callout cm_callout; struct mrsas_softc *sc; + boolean_t tmCapable; TAILQ_ENTRY(mrsas_mpt_cmd) next; }; @@ -1448,6 +1541,7 @@ enum MR_PD_QUERY_TYPE { #define MR_EVT_LD_DELETED 0x008b #define MR_EVT_FOREIGN_CFG_IMPORTED 0x00db #define MR_EVT_LD_OFFLINE 0x00fc +#define MR_EVT_CTRL_PROP_CHANGED 0x012f #define MR_EVT_CTRL_HOST_BUS_SCAN_REQUESTED 0x0152 enum MR_PD_STATE { @@ -1990,6 +2084,11 @@ struct mrsas_ctrl_info { #define MR_MAX_MSIX_REG_ARRAY 16 /* + * SYNC CACHE offset define + */ +#define MR_CAN_HANDLE_SYNC_CACHE_OFFSET 0X01000000 + +/* * FW reports the maximum of number of commands that it can accept (maximum * commands that can be outstanding) at any time. The driver must report a * lower number to the mid layer because it can issue a few internal commands @@ -2470,8 +2569,7 @@ struct mrsas_irq_context { enum MEGASAS_OCR_REASON { FW_FAULT_OCR = 0, - SCSIIO_TIMEOUT_OCR = 1, - MFI_DCMD_TIMEOUT_OCR = 2, + MFI_DCMD_TIMEOUT_OCR = 1, }; /* Controller management info added to support Linux Emulator */ @@ -2746,6 +2844,11 @@ struct mrsas_softc { u_int8_t do_timedout_reset; u_int32_t reset_in_progress; u_int32_t reset_count; + u_int32_t block_sync_cache; + u_int8_t fw_sync_cache_support; + mrsas_atomic_t target_reset_outstanding; +#define MRSAS_MAX_TM_TARGETS (MRSAS_MAX_PD + MRSAS_MAX_LD_IDS) + struct mrsas_mpt_cmd *target_reset_pool[MRSAS_MAX_TM_TARGETS]; bus_dma_tag_t jbodmap_tag[2]; bus_dmamap_t jbodmap_dmamap[2]; @@ -2794,6 +2897,7 @@ struct mrsas_softc { LD_LOAD_BALANCE_INFO load_balance_info[MAX_LOGICAL_DRIVES_EXT]; LD_SPAN_INFO log_to_span[MAX_LOGICAL_DRIVES_EXT]; + u_int8_t mrsas_gen3_ctrl; u_int8_t secure_jbod_support; u_int8_t use_seqnum_jbod_fp; u_int8_t max256vdSupport; diff --git a/sys/dev/mrsas/mrsas_cam.c b/sys/dev/mrsas/mrsas_cam.c index a0d1323..5460314 100644 --- a/sys/dev/mrsas/mrsas_cam.c +++ b/sys/dev/mrsas/mrsas_cam.c @@ -95,6 +95,11 @@ static void mrsas_freeze_simq(struct mrsas_mpt_cmd *cmd, struct cam_sim *sim); static void mrsas_cam_poll(struct cam_sim *sim); static void mrsas_action(struct cam_sim *sim, union ccb *ccb); static void mrsas_scsiio_timeout(void *data); +static int mrsas_track_scsiio(struct mrsas_softc *sc, target_id_t id, u_int32_t bus_id); +static void mrsas_tm_response_code(struct mrsas_softc *sc, + MPI2_SCSI_TASK_MANAGE_REPLY *mpi_reply); +static int mrsas_issue_tm(struct mrsas_softc *sc, + MRSAS_REQUEST_DESCRIPTOR_UNION *req_desc); static void mrsas_data_load_cb(void *arg, bus_dma_segment_t *segs, int nseg, int error); @@ -105,6 +110,10 @@ struct mrsas_mpt_cmd *mrsas_get_mpt_cmd(struct mrsas_softc *sc); MRSAS_REQUEST_DESCRIPTOR_UNION * mrsas_get_request_desc(struct mrsas_softc *sc, u_int16_t index); +extern void +mrsas_map_mpt_cmd_status(struct mrsas_mpt_cmd *cmd, u_int8_t status, + u_int8_t extStatus); +extern int mrsas_reset_targets(struct mrsas_softc *sc); extern u_int16_t MR_TargetIdToLdGet(u_int32_t ldTgtId, MR_DRV_RAID_MAP_ALL * map); extern u_int32_t MR_LdBlockSizeGet(u_int32_t ldTgtId, MR_DRV_RAID_MAP_ALL * map, @@ -125,6 +134,9 @@ extern u_int8_t megasas_get_best_arm(PLD_LOAD_BALANCE_INFO lbInfo, u_int8_t arm, u_int64_t block, u_int32_t count); extern int mrsas_complete_cmd(struct mrsas_softc *sc, u_int32_t MSIxIndex); +extern MR_LD_RAID *MR_LdRaidGet(u_int32_t ld, MR_DRV_RAID_MAP_ALL * map); +extern void mrsas_disable_intr(struct mrsas_softc *sc); +extern void mrsas_enable_intr(struct mrsas_softc *sc); /* @@ -260,6 +272,17 @@ mrsas_action(struct cam_sim *sim, union ccb *ccb) struct ccb_hdr *ccb_h = &(ccb->ccb_h); u_int32_t device_id; + /* + * Check if the system going down + * or the adapter is in unrecoverable critical error + */ + if (sc->remove_in_progress || + (sc->adprecovery == MRSAS_HW_CRITICAL_ERROR)) { + ccb->ccb_h.status |= CAM_DEV_NOT_THERE; + xpt_done(ccb); + return; + } + switch (ccb->ccb_h.func_code) { case XPT_SCSI_IO: { @@ -375,6 +398,10 @@ mrsas_scsiio_timeout(void *data) { struct mrsas_mpt_cmd *cmd; struct mrsas_softc *sc; + u_int32_t target_id; + + if (!data) + return; cmd = (struct mrsas_mpt_cmd *)data; sc = cmd->sc; @@ -383,6 +410,7 @@ mrsas_scsiio_timeout(void *data) printf("command timeout with NULL ccb\n"); return; } + /* * Below callout is dummy entry so that it will be cancelled from * mrsas_cmd_done(). Now Controller will go to OCR/Kill Adapter based @@ -390,15 +418,25 @@ mrsas_scsiio_timeout(void *data) * context. */ #if (__FreeBSD_version >= 1000510) - callout_reset_sbt(&cmd->cm_callout, SBT_1S * 600, 0, + callout_reset_sbt(&cmd->cm_callout, SBT_1S * 180, 0, mrsas_scsiio_timeout, cmd, 0); #else - callout_reset(&cmd->cm_callout, (600000 * hz) / 1000, + callout_reset(&cmd->cm_callout, (180000 * hz) / 1000, mrsas_scsiio_timeout, cmd); #endif - sc->do_timedout_reset = SCSIIO_TIMEOUT_OCR; - if (sc->ocr_thread_active) - wakeup(&sc->ocr_chan); + + if (cmd->ccb_ptr->cpi.bus_id == 0) + target_id = cmd->ccb_ptr->ccb_h.target_id; + else + target_id = (cmd->ccb_ptr->ccb_h.target_id + (MRSAS_MAX_PD - 1)); + + /* Save the cmd to be processed for TM, if it is not there in the array */ + if (sc->target_reset_pool[target_id] == NULL) { + sc->target_reset_pool[target_id] = cmd; + mrsas_atomic_inc(&sc->target_reset_outstanding); + } + + return; } /* @@ -421,7 +459,8 @@ mrsas_startio(struct mrsas_softc *sc, struct cam_sim *sim, MRSAS_REQUEST_DESCRIPTOR_UNION *req_desc; u_int8_t cmd_type; - if ((csio->cdb_io.cdb_bytes[0]) == SYNCHRONIZE_CACHE) { + if ((csio->cdb_io.cdb_bytes[0]) == SYNCHRONIZE_CACHE && + (!sc->fw_sync_cache_support)) { ccb->ccb_h.status = CAM_REQ_CMP; xpt_done(ccb); return (0); @@ -585,10 +624,10 @@ mrsas_startio(struct mrsas_softc *sc, struct cam_sim *sim, * Start timer for IO timeout. Default timeout value is 90 second. */ #if (__FreeBSD_version >= 1000510) - callout_reset_sbt(&cmd->cm_callout, SBT_1S * 600, 0, + callout_reset_sbt(&cmd->cm_callout, SBT_1S * 180, 0, mrsas_scsiio_timeout, cmd, 0); #else - callout_reset(&cmd->cm_callout, (600000 * hz) / 1000, + callout_reset(&cmd->cm_callout, (180000 * hz) / 1000, mrsas_scsiio_timeout, cmd); #endif mrsas_atomic_inc(&sc->fw_outstanding); @@ -679,7 +718,7 @@ mrsas_release_mpt_cmd(struct mrsas_mpt_cmd *cmd) mtx_lock(&sc->mpt_cmd_pool_lock); cmd->sync_cmd_idx = (u_int32_t)MRSAS_ULONG_MAX; - TAILQ_INSERT_TAIL(&(sc->mrsas_mpt_cmd_list_head), cmd, next); + TAILQ_INSERT_HEAD(&(sc->mrsas_mpt_cmd_list_head), cmd, next); mtx_unlock(&sc->mpt_cmd_pool_lock); return; @@ -777,8 +816,9 @@ mrsas_setup_io(struct mrsas_softc *sc, struct mrsas_mpt_cmd *cmd, struct ccb_scsiio *csio = &(ccb->csio); struct IO_REQUEST_INFO io_info; MR_DRV_RAID_MAP_ALL *map_ptr; + MR_LD_RAID *raid; u_int8_t fp_possible; - u_int32_t start_lba_hi, start_lba_lo, ld_block_size; + u_int32_t start_lba_hi, start_lba_lo, ld_block_size, ld; u_int32_t datalength = 0; start_lba_lo = 0; @@ -857,8 +897,8 @@ mrsas_setup_io(struct mrsas_softc *sc, struct mrsas_mpt_cmd *cmd, map_ptr = sc->ld_drv_map[(sc->map_id & 1)]; ld_block_size = MR_LdBlockSizeGet(device_id, map_ptr, sc); - if ((MR_TargetIdToLdGet(device_id, map_ptr) >= MAX_LOGICAL_DRIVES_EXT) || - (!sc->fast_path_io)) { + ld = MR_TargetIdToLdGet(device_id, map_ptr); + if ((ld >= MAX_LOGICAL_DRIVES_EXT) || (!sc->fast_path_io)) { io_request->RaidContext.regLockFlags = 0; fp_possible = 0; } else { @@ -866,6 +906,10 @@ mrsas_setup_io(struct mrsas_softc *sc, struct mrsas_mpt_cmd *cmd, fp_possible = io_info.fpOkForIo; } + raid = MR_LdRaidGet(ld, map_ptr); + /* Store the TM capability value in cmd */ + cmd->tmCapable = raid->capability.tmCapable; + cmd->request_desc->SCSIIO.MSIxIndex = sc->msix_vectors ? smp_processor_id() % sc->msix_vectors : 0; @@ -875,14 +919,9 @@ mrsas_setup_io(struct mrsas_softc *sc, struct mrsas_mpt_cmd *cmd, start_lba_lo, ld_block_size); io_request->Function = MPI2_FUNCTION_SCSI_IO_REQUEST; cmd->request_desc->SCSIIO.RequestFlags = - (MPI2_REQ_DESCRIPT_FLAGS_HIGH_PRIORITY << + (MPI2_REQ_DESCRIPT_FLAGS_FP_IO << MRSAS_REQ_DESCRIPT_FLAGS_TYPE_SHIFT); - if ((sc->device_id == MRSAS_INVADER) || - (sc->device_id == MRSAS_FURY) || - (sc->device_id == MRSAS_INTRUDER) || - (sc->device_id == MRSAS_INTRUDER_24) || - (sc->device_id == MRSAS_CUTLASS_52) || - (sc->device_id == MRSAS_CUTLASS_53)) { + if (sc->mrsas_gen3_ctrl) { if (io_request->RaidContext.regLockFlags == REGION_TYPE_UNUSED) cmd->request_desc->SCSIIO.RequestFlags = (MRSAS_REQ_DESCRIPT_FLAGS_NO_LOCK << @@ -911,12 +950,7 @@ mrsas_setup_io(struct mrsas_softc *sc, struct mrsas_mpt_cmd *cmd, cmd->request_desc->SCSIIO.RequestFlags = (MRSAS_REQ_DESCRIPT_FLAGS_LD_IO << MRSAS_REQ_DESCRIPT_FLAGS_TYPE_SHIFT); - if ((sc->device_id == MRSAS_INVADER) || - (sc->device_id == MRSAS_FURY) || - (sc->device_id == MRSAS_INTRUDER) || - (sc->device_id == MRSAS_INTRUDER_24) || - (sc->device_id == MRSAS_CUTLASS_52) || - (sc->device_id == MRSAS_CUTLASS_53)) { + if (sc->mrsas_gen3_ctrl) { if (io_request->RaidContext.regLockFlags == REGION_TYPE_UNUSED) cmd->request_desc->SCSIIO.RequestFlags = (MRSAS_REQ_DESCRIPT_FLAGS_NO_LOCK << @@ -947,12 +981,20 @@ mrsas_build_ldio_nonrw(struct mrsas_softc *sc, struct mrsas_mpt_cmd *cmd, union ccb *ccb) { struct ccb_hdr *ccb_h = &(ccb->ccb_h); - u_int32_t device_id; + u_int32_t device_id, ld; + MR_DRV_RAID_MAP_ALL *map_ptr; + MR_LD_RAID *raid; MRSAS_RAID_SCSI_IO_REQUEST *io_request; io_request = cmd->io_request; device_id = ccb_h->target_id; + map_ptr = sc->ld_drv_map[(sc->map_id & 1)]; + ld = MR_TargetIdToLdGet(device_id, map_ptr); + raid = MR_LdRaidGet(ld, map_ptr); + /* Store the TM capability value in cmd */ + cmd->tmCapable = raid->capability.tmCapable; + /* FW path for LD Non-RW (SCSI management commands) */ io_request->Function = MRSAS_MPI2_FUNCTION_LD_IO_REQUEST; io_request->DevHandle = device_id; @@ -1002,8 +1044,6 @@ mrsas_build_syspdio(struct mrsas_softc *sc, struct mrsas_mpt_cmd *cmd, MRSAS_RAID_SCSI_IO_REQUEST *io_request; struct MR_PD_CFG_SEQ_NUM_SYNC *pd_sync; - pd_sync = (void *)sc->jbodmap_mem[(sc->pd_seq_map_id - 1) & 1]; - io_request = cmd->io_request; device_id = ccb_h->target_id; local_map_ptr = sc->ld_drv_map[(sc->map_id & 1)]; @@ -1017,6 +1057,8 @@ mrsas_build_syspdio(struct mrsas_softc *sc, struct mrsas_mpt_cmd *cmd, if (sc->use_seqnum_jbod_fp && sc->pd_list[device_id].driveType == 0x00) { //printf("Using Drv seq num\n"); + pd_sync = (void *)sc->jbodmap_mem[(sc->pd_seq_map_id - 1) & 1]; + cmd->tmCapable = pd_sync->seq[device_id].capability.tmCapable; io_request->RaidContext.VirtualDiskTgtId = device_id + 255; io_request->RaidContext.configSeqNum = pd_sync->seq[device_id].seqNum; io_request->DevHandle = pd_sync->seq[device_id].devHandle; @@ -1065,7 +1107,7 @@ mrsas_build_syspdio(struct mrsas_softc *sc, struct mrsas_mpt_cmd *cmd, io_request->IoFlags |= MPI25_SAS_DEVICE0_FLAGS_ENABLED_FAST_PATH; cmd->request_desc->SCSIIO.RequestFlags = - (MPI2_REQ_DESCRIPT_FLAGS_HIGH_PRIORITY << + (MPI2_REQ_DESCRIPT_FLAGS_FP_IO << MRSAS_REQ_DESCRIPT_FLAGS_TYPE_SHIFT); } @@ -1192,12 +1234,7 @@ mrsas_data_load_cb(void *arg, bus_dma_segment_t *segs, int nseg, int error) io_request = cmd->io_request; sgl_ptr = (pMpi25IeeeSgeChain64_t)&io_request->SGL; - if ((sc->device_id == MRSAS_INVADER) || - (sc->device_id == MRSAS_FURY) || - (sc->device_id == MRSAS_INTRUDER) || - (sc->device_id == MRSAS_INTRUDER_24) || - (sc->device_id == MRSAS_CUTLASS_52) || - (sc->device_id == MRSAS_CUTLASS_53)) { + if (sc->mrsas_gen3_ctrl) { pMpi25IeeeSgeChain64_t sgl_ptr_end = sgl_ptr; sgl_ptr_end += sc->max_sge_in_main_msg - 1; @@ -1208,12 +1245,7 @@ mrsas_data_load_cb(void *arg, bus_dma_segment_t *segs, int nseg, int error) sgl_ptr->Address = segs[i].ds_addr; sgl_ptr->Length = segs[i].ds_len; sgl_ptr->Flags = 0; - if ((sc->device_id == MRSAS_INVADER) || - (sc->device_id == MRSAS_FURY) || - (sc->device_id == MRSAS_INTRUDER) || - (sc->device_id == MRSAS_INTRUDER_24) || - (sc->device_id == MRSAS_CUTLASS_52) || - (sc->device_id == MRSAS_CUTLASS_53)) { + if (sc->mrsas_gen3_ctrl) { if (i == nseg - 1) sgl_ptr->Flags = IEEE_SGE_FLAGS_END_OF_LIST; } @@ -1223,12 +1255,7 @@ mrsas_data_load_cb(void *arg, bus_dma_segment_t *segs, int nseg, int error) (nseg > sc->max_sge_in_main_msg)) { pMpi25IeeeSgeChain64_t sg_chain; - if ((sc->device_id == MRSAS_INVADER) || - (sc->device_id == MRSAS_FURY) || - (sc->device_id == MRSAS_INTRUDER) || - (sc->device_id == MRSAS_INTRUDER_24) || - (sc->device_id == MRSAS_CUTLASS_52) || - (sc->device_id == MRSAS_CUTLASS_53)) { + if (sc->mrsas_gen3_ctrl) { if ((cmd->io_request->IoFlags & MPI25_SAS_DEVICE0_FLAGS_ENABLED_FAST_PATH) != MPI25_SAS_DEVICE0_FLAGS_ENABLED_FAST_PATH) cmd->io_request->ChainOffset = sc->chain_offset_io_request; @@ -1237,12 +1264,7 @@ mrsas_data_load_cb(void *arg, bus_dma_segment_t *segs, int nseg, int error) } else cmd->io_request->ChainOffset = sc->chain_offset_io_request; sg_chain = sgl_ptr; - if ((sc->device_id == MRSAS_INVADER) || - (sc->device_id == MRSAS_FURY) || - (sc->device_id == MRSAS_INTRUDER) || - (sc->device_id == MRSAS_INTRUDER_24) || - (sc->device_id == MRSAS_CUTLASS_52) || - (sc->device_id == MRSAS_CUTLASS_53)) + if (sc->mrsas_gen3_ctrl) sg_chain->Flags = IEEE_SGE_FLAGS_CHAIN_ELEMENT; else sg_chain->Flags = (IEEE_SGE_FLAGS_CHAIN_ELEMENT | MPI2_IEEE_SGE_FLAGS_IOCPLBNTA_ADDR); @@ -1295,9 +1317,10 @@ mrsas_xpt_release(struct mrsas_softc *sc) void mrsas_cmd_done(struct mrsas_softc *sc, struct mrsas_mpt_cmd *cmd) { - callout_stop(&cmd->cm_callout); mrsas_unmap_request(sc, cmd); + mtx_lock(&sc->sim_lock); + callout_stop(&cmd->cm_callout); xpt_done(cmd->ccb_ptr); cmd->ccb_ptr = NULL; mtx_unlock(&sc->sim_lock); @@ -1395,3 +1418,269 @@ mrsas_bus_scan_sim(struct mrsas_softc *sc, struct cam_sim *sim) return (0); } + +/* + * mrsas_track_scsiio: Track IOs for a given target in the mpt_cmd_list + * input: Adapter instance soft state + * Target ID of target + * Bus ID of the target + * + * This function checks for any pending IO in the whole mpt_cmd_list pool + * with the bus_id and target_id passed in arguments. If some IO is found + * that means target reset is not successfully completed. + * + * Returns FAIL if IOs pending to the target device, else return SUCCESS + */ +static int +mrsas_track_scsiio(struct mrsas_softc *sc, target_id_t tgt_id, u_int32_t bus_id) +{ + int i; + struct mrsas_mpt_cmd *mpt_cmd = NULL; + + for (i = 0 ; i < sc->max_fw_cmds; i++) { + mpt_cmd = sc->mpt_cmd_list[i]; + + /* + * Check if the target_id and bus_id is same as the timeout IO + */ + if (mpt_cmd->ccb_ptr) { + /* bus_id = 1 denotes a VD */ + if (bus_id == 1) + tgt_id = (mpt_cmd->ccb_ptr->ccb_h.target_id - (MRSAS_MAX_PD - 1)); + + if (mpt_cmd->ccb_ptr->cpi.bus_id == bus_id && + mpt_cmd->ccb_ptr->ccb_h.target_id == tgt_id) { + device_printf(sc->mrsas_dev, + "IO commands pending to target id %d\n", tgt_id); + return FAIL; + } + } + } + + return SUCCESS; +} + +#if TM_DEBUG +/* + * mrsas_tm_response_code: Prints TM response code received from FW + * input: Adapter instance soft state + * MPI reply returned from firmware + * + * Returns nothing. + */ +static void +mrsas_tm_response_code(struct mrsas_softc *sc, + MPI2_SCSI_TASK_MANAGE_REPLY *mpi_reply) +{ + char *desc; + + switch (mpi_reply->ResponseCode) { + case MPI2_SCSITASKMGMT_RSP_TM_COMPLETE: + desc = "task management request completed"; + break; + case MPI2_SCSITASKMGMT_RSP_INVALID_FRAME: + desc = "invalid frame"; + break; + case MPI2_SCSITASKMGMT_RSP_TM_NOT_SUPPORTED: + desc = "task management request not supported"; + break; + case MPI2_SCSITASKMGMT_RSP_TM_FAILED: + desc = "task management request failed"; + break; + case MPI2_SCSITASKMGMT_RSP_TM_SUCCEEDED: + desc = "task management request succeeded"; + break; + case MPI2_SCSITASKMGMT_RSP_TM_INVALID_LUN: + desc = "invalid lun"; + break; + case 0xA: + desc = "overlapped tag attempted"; + break; + case MPI2_SCSITASKMGMT_RSP_IO_QUEUED_ON_IOC: + desc = "task queued, however not sent to target"; + break; + default: + desc = "unknown"; + break; + } + device_printf(sc->mrsas_dev, "response_code(%01x): %s\n", + mpi_reply->ResponseCode, desc); + device_printf(sc->mrsas_dev, + "TerminationCount/DevHandle/Function/TaskType/IOCStat/IOCLoginfo\n" + "0x%x/0x%x/0x%x/0x%x/0x%x/0x%x\n", + mpi_reply->TerminationCount, mpi_reply->DevHandle, + mpi_reply->Function, mpi_reply->TaskType, + mpi_reply->IOCStatus, mpi_reply->IOCLogInfo); +} +#endif + +/* + * mrsas_issue_tm: Fires the TM command to FW and waits for completion + * input: Adapter instance soft state + * reqest descriptor compiled by mrsas_reset_targets + * + * Returns FAIL if TM command TIMEDOUT from FW else SUCCESS. + */ +static int +mrsas_issue_tm(struct mrsas_softc *sc, + MRSAS_REQUEST_DESCRIPTOR_UNION *req_desc) +{ + int sleep_stat; + + mrsas_fire_cmd(sc, req_desc->addr.u.low, req_desc->addr.u.high); + sleep_stat = msleep(&sc->ocr_chan, &sc->sim_lock, PRIBIO, "tm_sleep", 50*hz); + + if (sleep_stat == EWOULDBLOCK) { + device_printf(sc->mrsas_dev, "tm cmd TIMEDOUT\n"); + return FAIL; + } + + return SUCCESS; +} + +/* + * mrsas_reset_targets : Gathers info to fire a target reset command + * input: Adapter instance soft state + * + * This function compiles data for a target reset command to be fired to the FW + * and then traverse the target_reset_pool to see targets with TIMEDOUT IOs. + * + * Returns SUCCESS or FAIL + */ +int mrsas_reset_targets(struct mrsas_softc *sc) +{ + struct mrsas_mpt_cmd *tm_mpt_cmd = NULL; + struct mrsas_mpt_cmd *tgt_mpt_cmd = NULL; + MR_TASK_MANAGE_REQUEST *mr_request; + MPI2_SCSI_TASK_MANAGE_REQUEST *tm_mpi_request; + MRSAS_REQUEST_DESCRIPTOR_UNION *req_desc; + int retCode = FAIL, count, i, outstanding; + u_int32_t MSIxIndex, bus_id; + target_id_t tgt_id; +#if TM_DEBUG + MPI2_SCSI_TASK_MANAGE_REPLY *mpi_reply; +#endif + + outstanding = mrsas_atomic_read(&sc->fw_outstanding); + + if (!outstanding) { + device_printf(sc->mrsas_dev, "NO IOs pending...\n"); + mrsas_atomic_set(&sc->target_reset_outstanding, 0); + retCode = SUCCESS; + goto return_status; + } else if (sc->adprecovery != MRSAS_HBA_OPERATIONAL) { + device_printf(sc->mrsas_dev, "Controller is not operational\n"); + goto return_status; + } else { + /* Some more error checks will be added in future */ + } + + /* Get an mpt frame and an index to fire the TM cmd */ + tm_mpt_cmd = mrsas_get_mpt_cmd(sc); + if (!tm_mpt_cmd) { + retCode = FAIL; + goto return_status; + } + + req_desc = mrsas_get_request_desc(sc, (tm_mpt_cmd->index) - 1); + if (!req_desc) { + device_printf(sc->mrsas_dev, "Cannot get request_descriptor for tm.\n"); + retCode = FAIL; + goto release_mpt; + } + memset(req_desc, 0, sizeof(MRSAS_REQUEST_DESCRIPTOR_UNION)); + + req_desc->HighPriority.SMID = tm_mpt_cmd->index; + req_desc->HighPriority.RequestFlags = + (MPI2_REQ_DESCRIPT_FLAGS_HIGH_PRIORITY << + MRSAS_REQ_DESCRIPT_FLAGS_TYPE_SHIFT); + req_desc->HighPriority.MSIxIndex = 0; + req_desc->HighPriority.LMID = 0; + req_desc->HighPriority.Reserved1 = 0; + tm_mpt_cmd->request_desc = req_desc; + + mr_request = (MR_TASK_MANAGE_REQUEST *) tm_mpt_cmd->io_request; + memset(mr_request, 0, sizeof(MR_TASK_MANAGE_REQUEST)); + + tm_mpi_request = (MPI2_SCSI_TASK_MANAGE_REQUEST *) &mr_request->TmRequest; + tm_mpi_request->Function = MPI2_FUNCTION_SCSI_TASK_MGMT; + tm_mpi_request->TaskType = MPI2_SCSITASKMGMT_TASKTYPE_TARGET_RESET; + tm_mpi_request->TaskMID = 0; /* smid task */ + tm_mpi_request->LUN[1] = 0; + + /* Traverse the tm_mpt pool to get valid entries */ + for (i = 0 ; i < MRSAS_MAX_TM_TARGETS; i++) { + if(!sc->target_reset_pool[i]) { + continue; + } else { + tgt_mpt_cmd = sc->target_reset_pool[i]; + } + + tgt_id = i; + + /* See if the target is tm capable or NOT */ + if (!tgt_mpt_cmd->tmCapable) { + device_printf(sc->mrsas_dev, "Task management NOT SUPPORTED for " + "CAM target:%d\n", tgt_id); + + retCode = FAIL; + goto release_mpt; + } + + tm_mpi_request->DevHandle = tgt_mpt_cmd->io_request->DevHandle; + + if (i < (MRSAS_MAX_PD - 1)) { + mr_request->uTmReqReply.tmReqFlags.isTMForPD = 1; + bus_id = 0; + } else { + mr_request->uTmReqReply.tmReqFlags.isTMForLD = 1; + bus_id = 1; + } + + device_printf(sc->mrsas_dev, "TM will be fired for " + "CAM target:%d and bus_id %d\n", tgt_id, bus_id); + + sc->ocr_chan = (void *)&tm_mpt_cmd; + retCode = mrsas_issue_tm(sc, req_desc); + if (retCode == FAIL) + goto release_mpt; + +#if TM_DEBUG + mpi_reply = + (MPI2_SCSI_TASK_MANAGE_REPLY *) &mr_request->uTmReqReply.TMReply; + mrsas_tm_response_code(sc, mpi_reply); +#endif + mrsas_atomic_dec(&sc->target_reset_outstanding); + sc->target_reset_pool[i] = NULL; + + /* Check for pending cmds in the mpt_cmd_pool with the tgt_id */ + mrsas_disable_intr(sc); + /* Wait for 1 second to complete parallel ISR calling same + * mrsas_complete_cmd() + */ + msleep(&sc->ocr_chan, &sc->sim_lock, PRIBIO, "mrsas_reset_wakeup", + 1 * hz); + count = sc->msix_vectors > 0 ? sc->msix_vectors : 1; + mtx_unlock(&sc->sim_lock); + for (MSIxIndex = 0; MSIxIndex < count; MSIxIndex++) + mrsas_complete_cmd(sc, MSIxIndex); + mtx_lock(&sc->sim_lock); + retCode = mrsas_track_scsiio(sc, tgt_id, bus_id); + mrsas_enable_intr(sc); + + if (retCode == FAIL) + goto release_mpt; + } + + device_printf(sc->mrsas_dev, "Number of targets outstanding " + "after reset: %d\n", mrsas_atomic_read(&sc->target_reset_outstanding)); + +release_mpt: + mrsas_release_mpt_cmd(tm_mpt_cmd); +return_status: + device_printf(sc->mrsas_dev, "target reset %s!!\n", + (retCode == SUCCESS) ? "SUCCESS" : "FAIL"); + + return retCode; +} + diff --git a/sys/dev/mrsas/mrsas_fp.c b/sys/dev/mrsas/mrsas_fp.c index f83d52b..e3e4e2a 100644 --- a/sys/dev/mrsas/mrsas_fp.c +++ b/sys/dev/mrsas/mrsas_fp.c @@ -747,15 +747,6 @@ mr_spanset_get_phy_params(struct mrsas_softc *sc, u_int32_t ld, u_int64_t stripR u_int64_t *pdBlock = &io_info->pdBlock; u_int16_t *pDevHandle = &io_info->devHandle; u_int32_t logArm, rowMod, armQ, arm; - u_int8_t do_invader = 0; - - if ((sc->device_id == MRSAS_INVADER) || - (sc->device_id == MRSAS_FURY) || - (sc->device_id == MRSAS_INTRUDER) || - (sc->device_id == MRSAS_INTRUDER_24) || - (sc->device_id == MRSAS_CUTLASS_52) || - (sc->device_id == MRSAS_CUTLASS_53)) - do_invader = 1; /* Get row and span from io_info for Uneven Span IO. */ row = io_info->start_row; @@ -782,7 +773,7 @@ mr_spanset_get_phy_params(struct mrsas_softc *sc, u_int32_t ld, u_int64_t stripR *pDevHandle = MR_PdDevHandleGet(pd, map); else { *pDevHandle = MR_PD_INVALID; - if ((raid->level >= 5) && ((!do_invader) || (do_invader && + if ((raid->level >= 5) && ((!sc->mrsas_gen3_ctrl) || (sc->mrsas_gen3_ctrl && raid->regTypeReqOnRead != REGION_TYPE_UNUSED))) pRAID_Context->regLockFlags = REGION_TYPE_EXCLUSIVE; else if (raid->level == 1) { @@ -965,12 +956,7 @@ MR_BuildRaidContext(struct mrsas_softc *sc, struct IO_REQUEST_INFO *io_info, regSize += stripSize; } pRAID_Context->timeoutValue = map->raidMap.fpPdIoTimeoutSec; - if ((sc->device_id == MRSAS_INVADER) || - (sc->device_id == MRSAS_FURY) || - (sc->device_id == MRSAS_INTRUDER) || - (sc->device_id == MRSAS_INTRUDER_24) || - (sc->device_id == MRSAS_CUTLASS_52) || - (sc->device_id == MRSAS_CUTLASS_53)) + if (sc->mrsas_gen3_ctrl) pRAID_Context->regLockFlags = (isRead) ? raid->regTypeReqOnRead : raid->regTypeReqOnWrite; else pRAID_Context->regLockFlags = (isRead) ? REGION_TYPE_SHARED_READ : raid->regTypeReqOnWrite; @@ -1453,15 +1439,6 @@ MR_GetPhyParams(struct mrsas_softc *sc, u_int32_t ld, u_int64_t *pdBlock = &io_info->pdBlock; u_int16_t *pDevHandle = &io_info->devHandle; u_int32_t rowMod, armQ, arm, logArm; - u_int8_t do_invader = 0; - - if ((sc->device_id == MRSAS_INVADER) || - (sc->device_id == MRSAS_FURY) || - (sc->device_id == MRSAS_INTRUDER) || - (sc->device_id == MRSAS_INTRUDER_24) || - (sc->device_id == MRSAS_CUTLASS_52) || - (sc->device_id == MRSAS_CUTLASS_53)) - do_invader = 1; row = mega_div64_32(stripRow, raid->rowDataSize); @@ -1501,7 +1478,7 @@ MR_GetPhyParams(struct mrsas_softc *sc, u_int32_t ld, *pDevHandle = MR_PdDevHandleGet(pd, map); else { *pDevHandle = MR_PD_INVALID; /* set dev handle as invalid. */ - if ((raid->level >= 5) && ((!do_invader) || (do_invader && + if ((raid->level >= 5) && ((!sc->mrsas_gen3_ctrl) || (sc->mrsas_gen3_ctrl && raid->regTypeReqOnRead != REGION_TYPE_UNUSED))) pRAID_Context->regLockFlags = REGION_TYPE_EXCLUSIVE; else if (raid->level == 1) { diff --git a/sys/dev/sfxge/common/ef10_ev.c b/sys/dev/sfxge/common/ef10_ev.c index b37ee0c..943fb8b 100644 --- a/sys/dev/sfxge/common/ef10_ev.c +++ b/sys/dev/sfxge/common/ef10_ev.c @@ -49,6 +49,12 @@ __FBSDID("$FreeBSD$"); #define EFX_EV_QSTAT_INCR(_eep, _stat) #endif +/* + * Non-interrupting event queue requires interrrupting event queue to + * refer to for wake-up events even if wake ups are never used. + * It could be even non-allocated event queue. + */ +#define EFX_EF10_ALWAYS_INTERRUPTING_EVQ_INDEX (0) static __checkReturn boolean_t ef10_ev_rx( @@ -140,6 +146,7 @@ efx_mcdi_init_evq( __in size_t nevs, __in uint32_t irq, __in uint32_t us, + __in uint32_t flags, __in boolean_t low_latency) { efx_mcdi_req_t req; @@ -150,6 +157,7 @@ efx_mcdi_init_evq( uint64_t addr; int npages; int i; + boolean_t interrupting; int ev_cut_through; efx_rc_t rc; @@ -170,6 +178,9 @@ efx_mcdi_init_evq( MCDI_IN_SET_DWORD(req, INIT_EVQ_IN_INSTANCE, instance); MCDI_IN_SET_DWORD(req, INIT_EVQ_IN_IRQ_NUM, irq); + interrupting = ((flags & EFX_EVQ_FLAGS_NOTIFY_MASK) == + EFX_EVQ_FLAGS_NOTIFY_INTERRUPT); + /* * On Huntington RX and TX event batching can only be requested together * (even if the datapath firmware doesn't actually support RX @@ -178,9 +189,22 @@ efx_mcdi_init_evq( * So always enable RX and TX event batching, and enable event cut * through if we want low latency operation. */ - ev_cut_through = low_latency ? 1 : 0; + switch (flags & EFX_EVQ_FLAGS_TYPE_MASK) { + case EFX_EVQ_FLAGS_TYPE_AUTO: + ev_cut_through = low_latency ? 1 : 0; + break; + case EFX_EVQ_FLAGS_TYPE_THROUGHPUT: + ev_cut_through = 0; + break; + case EFX_EVQ_FLAGS_TYPE_LOW_LATENCY: + ev_cut_through = 1; + break; + default: + rc = EINVAL; + goto fail2; + } MCDI_IN_POPULATE_DWORD_6(req, INIT_EVQ_IN_FLAGS, - INIT_EVQ_IN_FLAG_INTERRUPTING, 1, + INIT_EVQ_IN_FLAG_INTERRUPTING, interrupting, INIT_EVQ_IN_FLAG_RPTR_DOS, 0, INIT_EVQ_IN_FLAG_INT_ARMD, 0, INIT_EVQ_IN_FLAG_CUT_THRU, ev_cut_through, @@ -197,7 +221,7 @@ efx_mcdi_init_evq( unsigned int ticks; if ((rc = efx_ev_usecs_to_ticks(enp, us, &ticks)) != 0) - goto fail2; + goto fail3; MCDI_IN_SET_DWORD(req, INIT_EVQ_IN_TMR_MODE, MC_CMD_INIT_EVQ_IN_TMR_INT_HLDOFF); @@ -225,18 +249,20 @@ efx_mcdi_init_evq( if (req.emr_rc != 0) { rc = req.emr_rc; - goto fail3; + goto fail4; } if (req.emr_out_length_used < MC_CMD_INIT_EVQ_OUT_LEN) { rc = EMSGSIZE; - goto fail4; + goto fail5; } /* NOTE: ignore the returned IRQ param as firmware does not set it. */ return (0); +fail5: + EFSYS_PROBE(fail5); fail4: EFSYS_PROBE(fail4); fail3: @@ -257,12 +283,15 @@ efx_mcdi_init_evq_v2( __in efsys_mem_t *esmp, __in size_t nevs, __in uint32_t irq, - __in uint32_t us) + __in uint32_t us, + __in uint32_t flags) { efx_mcdi_req_t req; uint8_t payload[ MAX(MC_CMD_INIT_EVQ_V2_IN_LEN(EFX_EVQ_NBUFS(EFX_EVQ_MAXNEVS)), MC_CMD_INIT_EVQ_V2_OUT_LEN)]; + boolean_t interrupting; + unsigned int evq_type; efx_qword_t *dma_addr; uint64_t addr; int npages; @@ -286,11 +315,28 @@ efx_mcdi_init_evq_v2( MCDI_IN_SET_DWORD(req, INIT_EVQ_V2_IN_INSTANCE, instance); MCDI_IN_SET_DWORD(req, INIT_EVQ_V2_IN_IRQ_NUM, irq); + interrupting = ((flags & EFX_EVQ_FLAGS_NOTIFY_MASK) == + EFX_EVQ_FLAGS_NOTIFY_INTERRUPT); + + switch (flags & EFX_EVQ_FLAGS_TYPE_MASK) { + case EFX_EVQ_FLAGS_TYPE_AUTO: + evq_type = MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_AUTO; + break; + case EFX_EVQ_FLAGS_TYPE_THROUGHPUT: + evq_type = MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_THROUGHPUT; + break; + case EFX_EVQ_FLAGS_TYPE_LOW_LATENCY: + evq_type = MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_LOW_LATENCY; + break; + default: + rc = EINVAL; + goto fail2; + } MCDI_IN_POPULATE_DWORD_4(req, INIT_EVQ_V2_IN_FLAGS, - INIT_EVQ_V2_IN_FLAG_INTERRUPTING, 1, + INIT_EVQ_V2_IN_FLAG_INTERRUPTING, interrupting, INIT_EVQ_V2_IN_FLAG_RPTR_DOS, 0, INIT_EVQ_V2_IN_FLAG_INT_ARMD, 0, - INIT_EVQ_V2_IN_FLAG_TYPE, MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_AUTO); + INIT_EVQ_V2_IN_FLAG_TYPE, evq_type); /* If the value is zero then disable the timer */ if (us == 0) { @@ -302,7 +348,7 @@ efx_mcdi_init_evq_v2( unsigned int ticks; if ((rc = efx_ev_usecs_to_ticks(enp, us, &ticks)) != 0) - goto fail2; + goto fail3; MCDI_IN_SET_DWORD(req, INIT_EVQ_V2_IN_TMR_MODE, MC_CMD_INIT_EVQ_V2_IN_TMR_INT_HLDOFF); @@ -330,12 +376,12 @@ efx_mcdi_init_evq_v2( if (req.emr_rc != 0) { rc = req.emr_rc; - goto fail3; + goto fail4; } if (req.emr_out_length_used < MC_CMD_INIT_EVQ_V2_OUT_LEN) { rc = EMSGSIZE; - goto fail4; + goto fail5; } /* NOTE: ignore the returned IRQ param as firmware does not set it. */ @@ -345,6 +391,8 @@ efx_mcdi_init_evq_v2( return (0); +fail5: + EFSYS_PROBE(fail5); fail4: EFSYS_PROBE(fail4); fail3: @@ -416,6 +464,7 @@ ef10_ev_qcreate( __in size_t n, __in uint32_t id, __in uint32_t us, + __in uint32_t flags, __in efx_evq_t *eep) { efx_nic_cfg_t *encp = &(enp->en_nic_cfg); @@ -449,7 +498,17 @@ ef10_ev_qcreate( eep->ee_mcdi = ef10_ev_mcdi; /* Set up the event queue */ - irq = index; /* INIT_EVQ expects function-relative vector number */ + /* INIT_EVQ expects function-relative vector number */ + if ((flags & EFX_EVQ_FLAGS_NOTIFY_MASK) == + EFX_EVQ_FLAGS_NOTIFY_INTERRUPT) { + irq = index; + } else if (index == EFX_EF10_ALWAYS_INTERRUPTING_EVQ_INDEX) { + irq = index; + flags = (flags & ~EFX_EVQ_FLAGS_NOTIFY_MASK) | + EFX_EVQ_FLAGS_NOTIFY_INTERRUPT; + } else { + irq = EFX_EF10_ALWAYS_INTERRUPTING_EVQ_INDEX; + } /* * Interrupts may be raised for events immediately after the queue is @@ -459,29 +518,30 @@ ef10_ev_qcreate( if (encp->enc_init_evq_v2_supported) { /* * On Medford the low latency license is required to enable RX - * and event cut through and to disable RX batching. We let the - * firmware decide the settings to use. If the adapter has a low - * latency license, it will choose the best settings for low - * latency, otherwise it choose the best settings for - * throughput. + * and event cut through and to disable RX batching. If event + * queue type in flags is auto, we let the firmware decide the + * settings to use. If the adapter has a low latency license, + * it will choose the best settings for low latency, otherwise + * it will choose the best settings for throughput. */ - rc = efx_mcdi_init_evq_v2(enp, index, esmp, n, irq, us); + rc = efx_mcdi_init_evq_v2(enp, index, esmp, n, irq, us, flags); if (rc != 0) goto fail4; } else { /* - * On Huntington we need to specify the settings to use. We - * favour latency if the adapter is running low-latency firmware - * and throughput otherwise, and assume not support RX batching - * implies the adapter is running low-latency firmware. (This - * is how it's been done since Huntington GA. It doesn't make - * much sense with hindsight as the 'low-latency' firmware - * variant is also best for throughput, and does now support RX - * batching). + * On Huntington we need to specify the settings to use. + * If event queue type in flags is auto, we favour throughput + * if the adapter is running virtualization supporting firmware + * (i.e. the full featured firmware variant) + * and latency otherwise. The Ethernet Virtual Bridging + * capability is used to make this decision. (Note though that + * the low latency firmware variant is also best for + * throughput and corresponding type should be specified + * to choose it.) */ - boolean_t low_latency = encp->enc_rx_batching_enabled ? 0 : 1; - rc = efx_mcdi_init_evq(enp, index, esmp, n, irq, us, - low_latency); + boolean_t low_latency = encp->enc_datapath_cap_evb ? 0 : 1; + rc = efx_mcdi_init_evq(enp, index, esmp, n, irq, us, flags, + low_latency); if (rc != 0) goto fail5; } @@ -800,7 +860,7 @@ ef10_ev_rx( * or headers that are too long for the parser. * Headers and checksums must be validated by the host. */ - // TODO: EFX_EV_QSTAT_INCR(eep, EV_RX_PARSE_INCOMPLETE); + /* TODO: EFX_EV_QSTAT_INCR(eep, EV_RX_PARSE_INCOMPLETE); */ goto deliver; } @@ -990,7 +1050,7 @@ ef10_ev_mcdi( __in_opt void *arg) { efx_nic_t *enp = eep->ee_enp; - unsigned code; + unsigned int code; boolean_t should_abort = B_FALSE; EFX_EV_QSTAT_INCR(eep, EV_MCDI_RESPONSE); diff --git a/sys/dev/sfxge/common/ef10_filter.c b/sys/dev/sfxge/common/ef10_filter.c index 505e386..eb53967c 100644 --- a/sys/dev/sfxge/common/ef10_filter.c +++ b/sys/dev/sfxge/common/ef10_filter.c @@ -145,6 +145,10 @@ ef10_filter_init( MATCH_MASK(MC_CMD_FILTER_OP_IN_MATCH_OUTER_VLAN)); EFX_STATIC_ASSERT(EFX_FILTER_MATCH_IP_PROTO == MATCH_MASK(MC_CMD_FILTER_OP_IN_MATCH_IP_PROTO)); + EFX_STATIC_ASSERT(EFX_FILTER_MATCH_UNKNOWN_MCAST_DST == + MATCH_MASK(MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_MCAST_DST)); + EFX_STATIC_ASSERT((uint32_t)EFX_FILTER_MATCH_UNKNOWN_UCAST_DST == + MATCH_MASK(MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_UCAST_DST)); #undef MATCH_MASK EFSYS_KMEM_ALLOC(enp->en_esip, sizeof (ef10_filter_table_t), eftp); @@ -187,7 +191,6 @@ efx_mcdi_filter_op_add( efx_mcdi_req_t req; uint8_t payload[MAX(MC_CMD_FILTER_OP_IN_LEN, MC_CMD_FILTER_OP_OUT_LEN)]; - uint32_t match_fields = 0; efx_rc_t rc; memset(payload, 0, sizeof (payload)); @@ -214,26 +217,10 @@ efx_mcdi_filter_op_add( goto fail1; } - if (spec->efs_match_flags & EFX_FILTER_MATCH_LOC_MAC_IG) { - /* - * The LOC_MAC_IG match flag can represent unknown unicast - * or multicast filters - use the MAC address to distinguish - * them. - */ - if (EFX_MAC_ADDR_IS_MULTICAST(spec->efs_loc_mac)) - match_fields |= 1U << - MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_MCAST_DST_LBN; - else - match_fields |= 1U << - MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_UCAST_DST_LBN; - } - - match_fields |= spec->efs_match_flags & (~EFX_FILTER_MATCH_LOC_MAC_IG); - MCDI_IN_SET_DWORD(req, FILTER_OP_IN_PORT_ID, EVB_PORT_ID_ASSIGNED); MCDI_IN_SET_DWORD(req, FILTER_OP_IN_MATCH_FIELDS, - match_fields); + spec->efs_match_flags); MCDI_IN_SET_DWORD(req, FILTER_OP_IN_RX_DEST, MC_CMD_FILTER_OP_IN_RX_DEST_HOST); MCDI_IN_SET_DWORD(req, FILTER_OP_IN_RX_QUEUE, @@ -484,7 +471,7 @@ ef10_filter_restore( efx_filter_spec_t *spec; ef10_filter_table_t *eftp = enp->en_filter.ef_ef10_filter_table; boolean_t restoring; - int state; + efsys_lock_state_t state; efx_rc_t rc; EFSYS_ASSERT(enp->en_family == EFX_FAMILY_HUNTINGTON || @@ -559,7 +546,7 @@ ef10_filter_add_internal( int ins_index; boolean_t replacing = B_FALSE; unsigned int i; - int state; + efsys_lock_state_t state; boolean_t locked = B_FALSE; EFSYS_ASSERT(enp->en_family == EFX_FAMILY_HUNTINGTON || @@ -761,7 +748,7 @@ ef10_filter_delete_internal( efx_rc_t rc; ef10_filter_table_t *table = enp->en_filter.ef_ef10_filter_table; efx_filter_spec_t *spec; - int state; + efsys_lock_state_t state; uint32_t filter_idx = filter_id % EFX_EF10_FILTER_TBL_ROWS; /* @@ -835,7 +822,7 @@ ef10_filter_delete( unsigned int hash; unsigned int depth; unsigned int i; - int state; + efsys_lock_state_t state; boolean_t locked = B_FALSE; EFSYS_ASSERT(enp->en_family == EFX_FAMILY_HUNTINGTON || @@ -884,17 +871,17 @@ fail1: static __checkReturn efx_rc_t efx_mcdi_get_parser_disp_info( - __in efx_nic_t *enp, - __out uint32_t *list, - __out size_t *length) + __in efx_nic_t *enp, + __out_ecount(buffer_length) uint32_t *buffer, + __in size_t buffer_length, + __out size_t *list_lengthp) { efx_mcdi_req_t req; uint8_t payload[MAX(MC_CMD_GET_PARSER_DISP_INFO_IN_LEN, MC_CMD_GET_PARSER_DISP_INFO_OUT_LENMAX)]; + size_t matches_count; + size_t list_size; efx_rc_t rc; - uint32_t i; - boolean_t support_unknown_ucast = B_FALSE; - boolean_t support_unknown_mcast = B_FALSE; (void) memset(payload, 0, sizeof (payload)); req.emr_cmd = MC_CMD_GET_PARSER_DISP_INFO; @@ -913,47 +900,41 @@ efx_mcdi_get_parser_disp_info( goto fail1; } - *length = MCDI_OUT_DWORD(req, + matches_count = MCDI_OUT_DWORD(req, GET_PARSER_DISP_INFO_OUT_NUM_SUPPORTED_MATCHES); if (req.emr_out_length_used < - MC_CMD_GET_PARSER_DISP_INFO_OUT_LEN(*length)) { + MC_CMD_GET_PARSER_DISP_INFO_OUT_LEN(matches_count)) { rc = EMSGSIZE; goto fail2; } - memcpy(list, - MCDI_OUT2(req, - uint32_t, - GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES), - (*length) * sizeof (uint32_t)); - EFX_STATIC_ASSERT(sizeof (uint32_t) == - MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_LEN); + *list_lengthp = matches_count; + + if (buffer_length < matches_count) { + rc = ENOSPC; + goto fail3; + } /* - * Remove UNKNOWN UCAST and MCAST flags, and if both are present, change - * the lower priority one to LOC_MAC_IG. + * Check that the elements in the list in the MCDI response are the size + * we expect, so we can just copy them directly. Any conversion of the + * flags is handled by the caller. */ - for (i = 0; i < *length; i++) { - if (list[i] & MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_UCAST_DST_LBN) { - list[i] &= - (~MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_UCAST_DST_LBN); - support_unknown_ucast = B_TRUE; - } - if (list[i] & MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_MCAST_DST_LBN) { - list[i] &= - (~MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_MCAST_DST_LBN); - support_unknown_mcast = B_TRUE; - } + EFX_STATIC_ASSERT(sizeof (uint32_t) == + MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_LEN); - if (support_unknown_ucast && support_unknown_mcast) { - list[i] &= EFX_FILTER_MATCH_LOC_MAC_IG; - break; - } - } + list_size = matches_count * + MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_LEN; + memcpy(buffer, + MCDI_OUT2(req, uint32_t, + GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES), + list_size); return (0); +fail3: + EFSYS_PROBE(fail3); fail2: EFSYS_PROBE(fail2); fail1: @@ -964,14 +945,55 @@ fail1: __checkReturn efx_rc_t ef10_filter_supported_filters( - __in efx_nic_t *enp, - __out uint32_t *list, - __out size_t *length) + __in efx_nic_t *enp, + __out_ecount(buffer_length) uint32_t *buffer, + __in size_t buffer_length, + __out size_t *list_lengthp) { - efx_rc_t rc; - if ((rc = efx_mcdi_get_parser_disp_info(enp, list, length)) != 0) + size_t mcdi_list_length; + size_t list_length; + uint32_t i; + efx_rc_t rc; + uint32_t all_filter_flags = + (EFX_FILTER_MATCH_REM_HOST | EFX_FILTER_MATCH_LOC_HOST | + EFX_FILTER_MATCH_REM_MAC | EFX_FILTER_MATCH_REM_PORT | + EFX_FILTER_MATCH_LOC_MAC | EFX_FILTER_MATCH_LOC_PORT | + EFX_FILTER_MATCH_ETHER_TYPE | EFX_FILTER_MATCH_INNER_VID | + EFX_FILTER_MATCH_OUTER_VID | EFX_FILTER_MATCH_IP_PROTO | + EFX_FILTER_MATCH_UNKNOWN_MCAST_DST | + EFX_FILTER_MATCH_UNKNOWN_UCAST_DST); + + rc = efx_mcdi_get_parser_disp_info(enp, buffer, buffer_length, + &mcdi_list_length); + if (rc != 0) { + if (rc == ENOSPC) { + /* Pass through mcdi_list_length for the list length */ + *list_lengthp = mcdi_list_length; + } goto fail1; + } + + /* + * The static assertions in ef10_filter_init() ensure that the values of + * the EFX_FILTER_MATCH flags match those used by MCDI, so they don't + * need to be converted. + * + * In case support is added to MCDI for additional flags, remove any + * matches from the list which include flags we don't support. The order + * of the matches is preserved as they are ordered from highest to + * lowest priority. + */ + EFSYS_ASSERT(mcdi_list_length <= buffer_length); + list_length = 0; + for (i = 0; i < mcdi_list_length; i++) { + if ((buffer[i] & ~all_filter_flags) == 0) { + buffer[list_length] = buffer[i]; + list_length++; + } + } + + *list_lengthp = list_length; return (0); @@ -985,7 +1007,7 @@ static __checkReturn efx_rc_t ef10_filter_insert_unicast( __in efx_nic_t *enp, __in_ecount(6) uint8_t const *addr, - __in efx_filter_flag_t filter_flags) + __in efx_filter_flags_t filter_flags) { ef10_filter_table_t *eftp = enp->en_filter.ef_ef10_filter_table; efx_filter_spec_t spec; @@ -1016,7 +1038,7 @@ fail1: static __checkReturn efx_rc_t ef10_filter_insert_all_unicast( __in efx_nic_t *enp, - __in efx_filter_flag_t filter_flags) + __in efx_filter_flags_t filter_flags) { ef10_filter_table_t *eftp = enp->en_filter.ef_ef10_filter_table; efx_filter_spec_t spec; @@ -1050,7 +1072,7 @@ ef10_filter_insert_multicast_list( __in boolean_t brdcst, __in_ecount(6*count) uint8_t const *addrs, __in uint32_t count, - __in efx_filter_flag_t filter_flags, + __in efx_filter_flags_t filter_flags, __in boolean_t rollback) { ef10_filter_table_t *eftp = enp->en_filter.ef_ef10_filter_table; @@ -1143,7 +1165,7 @@ fail1: static __checkReturn efx_rc_t ef10_filter_insert_all_multicast( __in efx_nic_t *enp, - __in efx_filter_flag_t filter_flags) + __in efx_filter_flags_t filter_flags) { ef10_filter_table_t *eftp = enp->en_filter.ef_ef10_filter_table; efx_filter_spec_t spec; @@ -1245,8 +1267,8 @@ ef10_filter_reconfigure( { efx_nic_cfg_t *encp = &enp->en_nic_cfg; ef10_filter_table_t *table = enp->en_filter.ef_ef10_filter_table; - efx_filter_flag_t filter_flags; - unsigned i; + efx_filter_flags_t filter_flags; + unsigned int i; efx_rc_t all_unicst_rc = 0; efx_rc_t all_mulcst_rc = 0; efx_rc_t rc; diff --git a/sys/dev/sfxge/common/ef10_impl.h b/sys/dev/sfxge/common/ef10_impl.h index 68329c0..3587826 100644 --- a/sys/dev/sfxge/common/ef10_impl.h +++ b/sys/dev/sfxge/common/ef10_impl.h @@ -85,6 +85,7 @@ ef10_ev_qcreate( __in size_t n, __in uint32_t id, __in uint32_t us, + __in uint32_t flags, __in efx_evq_t *eep); void @@ -272,6 +273,12 @@ ef10_mac_loopback_set( #if EFSYS_OPT_MAC_STATS extern __checkReturn efx_rc_t +ef10_mac_stats_get_mask( + __in efx_nic_t *enp, + __inout_bcount(mask_size) uint32_t *maskp, + __in size_t mask_size); + +extern __checkReturn efx_rc_t ef10_mac_stats_update( __in efx_nic_t *enp, __in efsys_mem_t *esmp, @@ -296,11 +303,11 @@ ef10_mcdi_fini( extern void ef10_mcdi_send_request( - __in efx_nic_t *enp, - __in void *hdrp, - __in size_t hdr_len, - __in void *sdup, - __in size_t sdu_len); + __in efx_nic_t *enp, + __in_bcount(hdr_len) void *hdrp, + __in size_t hdr_len, + __in_bcount(sdu_len) void *sdup, + __in size_t sdu_len); extern __checkReturn boolean_t ef10_mcdi_poll_response( @@ -323,6 +330,12 @@ ef10_mcdi_feature_supported( __in efx_mcdi_feature_id_t id, __out boolean_t *supportedp); +extern void +ef10_mcdi_get_timeout( + __in efx_nic_t *enp, + __in efx_mcdi_req_t *emrp, + __out uint32_t *timeoutp); + #endif /* EFSYS_OPT_MCDI */ /* NVRAM */ @@ -377,10 +390,11 @@ ef10_nvram_partn_lock( __in efx_nic_t *enp, __in uint32_t partn); -extern void +extern __checkReturn efx_rc_t ef10_nvram_partn_unlock( __in efx_nic_t *enp, - __in uint32_t partn); + __in uint32_t partn, + __out_opt uint32_t *resultp); #endif /* EFSYS_OPT_NVRAM || EFSYS_OPT_VPD */ @@ -444,7 +458,7 @@ ef10_nvram_partn_write( __out_bcount(size) caddr_t data, __in size_t size); -extern void +extern __checkReturn efx_rc_t ef10_nvram_partn_rw_finish( __in efx_nic_t *enp, __in uint32_t partn); @@ -601,6 +615,34 @@ ef10_phy_stats_update( #endif /* EFSYS_OPT_PHY_STATS */ +#if EFSYS_OPT_BIST + +extern __checkReturn efx_rc_t +ef10_bist_enable_offline( + __in efx_nic_t *enp); + +extern __checkReturn efx_rc_t +ef10_bist_start( + __in efx_nic_t *enp, + __in efx_bist_type_t type); + +extern __checkReturn efx_rc_t +ef10_bist_poll( + __in efx_nic_t *enp, + __in efx_bist_type_t type, + __out efx_bist_result_t *resultp, + __out_opt __drv_when(count > 0, __notnull) + uint32_t *value_maskp, + __out_ecount_opt(count) __drv_when(count > 0, __notnull) + unsigned long *valuesp, + __in size_t count); + +extern void +ef10_bist_stop( + __in efx_nic_t *enp, + __in efx_bist_type_t type); + +#endif /* EFSYS_OPT_BIST */ /* TX */ @@ -950,11 +992,11 @@ typedef struct ef10_filter_entry_s { typedef struct ef10_filter_table_s { ef10_filter_entry_t eft_entry[EFX_EF10_FILTER_TBL_ROWS]; - efx_rxq_t * eft_default_rxq; + efx_rxq_t *eft_default_rxq; boolean_t eft_using_rss; uint32_t eft_unicst_filter_indexes[ EFX_EF10_FILTER_UNICAST_FILTERS_MAX]; - boolean_t eft_unicst_filter_count; + uint32_t eft_unicst_filter_count; uint32_t eft_mulcst_filter_indexes[ EFX_EF10_FILTER_MULTICAST_FILTERS_MAX]; uint32_t eft_mulcst_filter_count; @@ -986,9 +1028,10 @@ ef10_filter_delete( extern __checkReturn efx_rc_t ef10_filter_supported_filters( - __in efx_nic_t *enp, - __out uint32_t *list, - __out size_t *length); + __in efx_nic_t *enp, + __out_ecount(buffer_length) uint32_t *buffer, + __in size_t buffer_length, + __out size_t *list_lengthp); extern __checkReturn efx_rc_t ef10_filter_reconfigure( diff --git a/sys/dev/sfxge/common/ef10_mac.c b/sys/dev/sfxge/common/ef10_mac.c index ba80089..b69a54d 100644 --- a/sys/dev/sfxge/common/ef10_mac.c +++ b/sys/dev/sfxge/common/ef10_mac.c @@ -484,6 +484,89 @@ fail1: #if EFSYS_OPT_MAC_STATS + __checkReturn efx_rc_t +ef10_mac_stats_get_mask( + __in efx_nic_t *enp, + __inout_bcount(mask_size) uint32_t *maskp, + __in size_t mask_size) +{ + const struct efx_mac_stats_range ef10_common[] = { + { EFX_MAC_RX_OCTETS, EFX_MAC_RX_GE_15XX_PKTS }, + { EFX_MAC_RX_FCS_ERRORS, EFX_MAC_RX_DROP_EVENTS }, + { EFX_MAC_RX_JABBER_PKTS, EFX_MAC_RX_JABBER_PKTS }, + { EFX_MAC_RX_NODESC_DROP_CNT, EFX_MAC_TX_PAUSE_PKTS }, + }; + const struct efx_mac_stats_range ef10_tx_size_bins[] = { + { EFX_MAC_TX_LE_64_PKTS, EFX_MAC_TX_GE_15XX_PKTS }, + }; + efx_nic_cfg_t *encp = &(enp->en_nic_cfg); + efx_port_t *epp = &(enp->en_port); + efx_rc_t rc; + + if ((rc = efx_mac_stats_mask_add_ranges(maskp, mask_size, + ef10_common, EFX_ARRAY_SIZE(ef10_common))) != 0) + goto fail1; + + if (epp->ep_phy_cap_mask & (1 << MC_CMD_PHY_CAP_40000FDX_LBN)) { + const struct efx_mac_stats_range ef10_40g_extra[] = { + { EFX_MAC_RX_ALIGN_ERRORS, EFX_MAC_RX_ALIGN_ERRORS }, + }; + + if ((rc = efx_mac_stats_mask_add_ranges(maskp, mask_size, + ef10_40g_extra, EFX_ARRAY_SIZE(ef10_40g_extra))) != 0) + goto fail2; + + if (encp->enc_mac_stats_40g_tx_size_bins) { + if ((rc = efx_mac_stats_mask_add_ranges(maskp, + mask_size, ef10_tx_size_bins, + EFX_ARRAY_SIZE(ef10_tx_size_bins))) != 0) + goto fail3; + } + } else { + if ((rc = efx_mac_stats_mask_add_ranges(maskp, mask_size, + ef10_tx_size_bins, EFX_ARRAY_SIZE(ef10_tx_size_bins))) != 0) + goto fail4; + } + + if (encp->enc_pm_and_rxdp_counters) { + const struct efx_mac_stats_range ef10_pm_and_rxdp[] = { + { EFX_MAC_PM_TRUNC_BB_OVERFLOW, EFX_MAC_RXDP_HLB_WAIT }, + }; + + if ((rc = efx_mac_stats_mask_add_ranges(maskp, mask_size, + ef10_pm_and_rxdp, EFX_ARRAY_SIZE(ef10_pm_and_rxdp))) != 0) + goto fail5; + } + + if (encp->enc_datapath_cap_evb) { + const struct efx_mac_stats_range ef10_vadaptor[] = { + { EFX_MAC_VADAPTER_RX_UNICAST_PACKETS, + EFX_MAC_VADAPTER_TX_OVERFLOW }, + }; + + if ((rc = efx_mac_stats_mask_add_ranges(maskp, mask_size, + ef10_vadaptor, EFX_ARRAY_SIZE(ef10_vadaptor))) != 0) + goto fail6; + } + + return (0); + +fail6: + EFSYS_PROBE(fail6); +fail5: + EFSYS_PROBE(fail5); +fail4: + EFSYS_PROBE(fail4); +fail3: + EFSYS_PROBE(fail3); +fail2: + EFSYS_PROBE(fail2); +fail1: + EFSYS_PROBE1(fail1, efx_rc_t, rc); + + return (rc); +} + #define EF10_MAC_STAT_READ(_esmp, _field, _eqp) \ EFSYS_MEM_READQ((_esmp), (_field) * sizeof (efx_qword_t), _eqp) diff --git a/sys/dev/sfxge/common/ef10_mcdi.c b/sys/dev/sfxge/common/ef10_mcdi.c index f14d35f..33591bf 100644 --- a/sys/dev/sfxge/common/ef10_mcdi.c +++ b/sys/dev/sfxge/common/ef10_mcdi.c @@ -108,13 +108,53 @@ ef10_mcdi_fini( emip->emi_new_epoch = B_FALSE; } +/* + * In older firmware all commands are processed in a single thread, so a long + * running command for one PCIe function can block processing for another + * function (see bug 61269). + * + * In newer firmware that supports multithreaded MCDI processing, we can extend + * the timeout for long-running requests which we know firmware may choose to + * process in a background thread. + */ +#define EF10_MCDI_CMD_TIMEOUT_US (10 * 1000 * 1000) +#define EF10_MCDI_CMD_LONG_TIMEOUT_US (60 * 1000 * 1000) + void -ef10_mcdi_send_request( +ef10_mcdi_get_timeout( __in efx_nic_t *enp, - __in void *hdrp, - __in size_t hdr_len, - __in void *sdup, - __in size_t sdu_len) + __in efx_mcdi_req_t *emrp, + __out uint32_t *timeoutp) +{ + efx_nic_cfg_t *encp = &(enp->en_nic_cfg); + + switch (emrp->emr_cmd) { + case MC_CMD_POLL_BIST: + case MC_CMD_NVRAM_ERASE: + case MC_CMD_LICENSING_V3: + case MC_CMD_NVRAM_UPDATE_FINISH: + if (encp->enc_fw_verified_nvram_update_required != B_FALSE) { + /* + * Potentially longer running commands, which firmware + * may choose to process in a background thread. + */ + *timeoutp = EF10_MCDI_CMD_LONG_TIMEOUT_US; + break; + } + /* FALLTHRU */ + default: + *timeoutp = EF10_MCDI_CMD_TIMEOUT_US; + break; + } +} + + void +ef10_mcdi_send_request( + __in efx_nic_t *enp, + __in_bcount(hdr_len) void *hdrp, + __in size_t hdr_len, + __in_bcount(sdu_len) void *sdup, + __in size_t sdu_len) { const efx_mcdi_transport_t *emtp = enp->en_mcdi.em_emtp; efsys_mem_t *esmp = emtp->emt_dma_mem; @@ -159,6 +199,8 @@ ef10_mcdi_poll_response( efx_dword_t hdr; EFSYS_MEM_READD(esmp, 0, &hdr); + EFSYS_MEM_READ_BARRIER(); + return (EFX_DWORD_FIELD(hdr, MCDI_HEADER_RESPONSE) ? B_TRUE : B_FALSE); } diff --git a/sys/dev/sfxge/common/ef10_nic.c b/sys/dev/sfxge/common/ef10_nic.c index 6423154..c3067bd 100644 --- a/sys/dev/sfxge/common/ef10_nic.c +++ b/sys/dev/sfxge/common/ef10_nic.c @@ -497,7 +497,8 @@ static __checkReturn efx_rc_t efx_mcdi_get_capabilities( __in efx_nic_t *enp, __out uint32_t *flagsp, - __out uint32_t *flags2p) + __out uint32_t *flags2p, + __out uint32_t *tso2ncp) { efx_mcdi_req_t req; uint8_t payload[MAX(MC_CMD_GET_CAPABILITIES_IN_LEN, @@ -525,10 +526,14 @@ efx_mcdi_get_capabilities( *flagsp = MCDI_OUT_DWORD(req, GET_CAPABILITIES_OUT_FLAGS1); - if (req.emr_out_length_used < MC_CMD_GET_CAPABILITIES_V2_OUT_LEN) + if (req.emr_out_length_used < MC_CMD_GET_CAPABILITIES_V2_OUT_LEN) { *flags2p = 0; - else + *tso2ncp = 0; + } else { *flags2p = MCDI_OUT_DWORD(req, GET_CAPABILITIES_V2_OUT_FLAGS2); + *tso2ncp = MCDI_OUT_WORD(req, + GET_CAPABILITIES_V2_OUT_TX_TSO_V2_N_CONTEXTS); + } return (0); @@ -956,6 +961,50 @@ ef10_nic_pio_unlink( return (efx_mcdi_unlink_piobuf(enp, vi_index)); } +static __checkReturn efx_rc_t +ef10_mcdi_get_pf_count( + __in efx_nic_t *enp, + __out uint32_t *pf_countp) +{ + efx_mcdi_req_t req; + uint8_t payload[MAX(MC_CMD_GET_PF_COUNT_IN_LEN, + MC_CMD_GET_PF_COUNT_OUT_LEN)]; + efx_rc_t rc; + + (void) memset(payload, 0, sizeof (payload)); + req.emr_cmd = MC_CMD_GET_PF_COUNT; + req.emr_in_buf = payload; + req.emr_in_length = MC_CMD_GET_PF_COUNT_IN_LEN; + req.emr_out_buf = payload; + req.emr_out_length = MC_CMD_GET_PF_COUNT_OUT_LEN; + + efx_mcdi_execute(enp, &req); + + if (req.emr_rc != 0) { + rc = req.emr_rc; + goto fail1; + } + + if (req.emr_out_length_used < MC_CMD_GET_PF_COUNT_OUT_LEN) { + rc = EMSGSIZE; + goto fail2; + } + + *pf_countp = *MCDI_OUT(req, uint8_t, + MC_CMD_GET_PF_COUNT_OUT_PF_COUNT_OFST); + + EFSYS_ASSERT(*pf_countp != 0); + + return (0); + +fail2: + EFSYS_PROBE(fail2); +fail1: + EFSYS_PROBE1(fail1, efx_rc_t, rc); + + return (rc); +} + __checkReturn efx_rc_t ef10_get_datapath_caps( __in efx_nic_t *enp) @@ -963,9 +1012,14 @@ ef10_get_datapath_caps( efx_nic_cfg_t *encp = &(enp->en_nic_cfg); uint32_t flags; uint32_t flags2; + uint32_t tso2nc; efx_rc_t rc; - if ((rc = efx_mcdi_get_capabilities(enp, &flags, &flags2)) != 0) + if ((rc = efx_mcdi_get_capabilities(enp, &flags, &flags2, + &tso2nc)) != 0) + goto fail1; + + if ((rc = ef10_mcdi_get_pf_count(enp, &encp->enc_hw_pf_count)) != 0) goto fail1; #define CAP_FLAG(flags1, field) \ @@ -992,6 +1046,10 @@ ef10_get_datapath_caps( encp->enc_fw_assisted_tso_v2_enabled = CAP_FLAG2(flags2, TX_TSO_V2) ? B_TRUE : B_FALSE; + /* Get the number of TSO contexts (FATSOv2) */ + encp->enc_fw_assisted_tso_v2_n_contexts = + CAP_FLAG2(flags2, TX_TSO_V2) ? tso2nc : 0; + /* Check if the firmware has vadapter/vport/vswitch support */ encp->enc_datapath_cap_evb = CAP_FLAG(flags, EVB) ? B_TRUE : B_FALSE; @@ -1033,6 +1091,32 @@ ef10_get_datapath_caps( encp->enc_init_evq_v2_supported = CAP_FLAG2(flags2, INIT_EVQ_V2) ? B_TRUE : B_FALSE; + /* + * Check if firmware provides packet memory and Rx datapath + * counters. + */ + encp->enc_pm_and_rxdp_counters = + CAP_FLAG(flags, PM_AND_RXDP_COUNTERS) ? B_TRUE : B_FALSE; + + /* + * Check if the 40G MAC hardware is capable of reporting + * statistics for Tx size bins. + */ + encp->enc_mac_stats_40g_tx_size_bins = + CAP_FLAG2(flags2, MAC_STATS_40G_TX_SIZE_BINS) ? B_TRUE : B_FALSE; + + /* + * Check if firmware-verified NVRAM updates must be used. + * + * The firmware trusted installer requires all NVRAM updates to use + * version 2 of MC_CMD_NVRAM_UPDATE_START (to enable verified update) + * and version 2 of MC_CMD_NVRAM_UPDATE_FINISH (to verify the updated + * partition and report the result). + */ + encp->enc_fw_verified_nvram_update_required = + CAP_FLAG2(flags2, NVRAM_UPDATE_REPORT_VERIFY_RESULT) ? + B_TRUE : B_FALSE; + #undef CAP_FLAG #undef CAP_FLAG2 diff --git a/sys/dev/sfxge/common/ef10_nvram.c b/sys/dev/sfxge/common/ef10_nvram.c index 73459d6..e11b7d9 100644 --- a/sys/dev/sfxge/common/ef10_nvram.c +++ b/sys/dev/sfxge/common/ef10_nvram.c @@ -772,7 +772,7 @@ ef10_nvram_buffer_create( struct tlv_partition_header header; struct tlv_partition_trailer trailer; - unsigned min_buf_size = sizeof (struct tlv_partition_header) + + unsigned int min_buf_size = sizeof (struct tlv_partition_header) + sizeof (struct tlv_partition_trailer); if (partn_size < min_buf_size) { rc = EINVAL; @@ -852,7 +852,7 @@ ef10_nvram_buffer_find_item_start( __in size_t buffer_size, __out uint32_t *startp) { - // Read past partition header to find start address of the first key + /* Read past partition header to find start address of the first key */ tlv_cursor_t cursor; efx_rc_t rc; @@ -898,7 +898,7 @@ ef10_nvram_buffer_find_end( __in uint32_t offset, __out uint32_t *endp) { - // Read to end of partition + /* Read to end of partition */ tlv_cursor_t cursor; efx_rc_t rc; uint32_t *segment_used; @@ -956,7 +956,7 @@ ef10_nvram_buffer_find_item( __out uint32_t *startp, __out uint32_t *lengthp) { - // Find TLV at offset and return key start and length + /* Find TLV at offset and return key start and length */ tlv_cursor_t cursor; uint8_t *key; uint32_t tag; @@ -1828,7 +1828,7 @@ ef10_nvram_partn_write_segment_tlv( goto fail7; /* Unlock the partition */ - ef10_nvram_partn_unlock(enp, partn); + ef10_nvram_partn_unlock(enp, partn, NULL); EFSYS_KMEM_FREE(enp->en_esip, partn_size, partn_data); @@ -1843,7 +1843,7 @@ fail5: fail4: EFSYS_PROBE(fail4); - ef10_nvram_partn_unlock(enp, partn); + ef10_nvram_partn_unlock(enp, partn, NULL); fail3: EFSYS_PROBE(fail3); @@ -2046,22 +2046,28 @@ fail1: return (rc); } - void + __checkReturn efx_rc_t ef10_nvram_partn_unlock( __in efx_nic_t *enp, - __in uint32_t partn) + __in uint32_t partn, + __out_opt uint32_t *resultp) { - boolean_t reboot; + boolean_t reboot = B_FALSE; efx_rc_t rc; - reboot = B_FALSE; - if ((rc = efx_mcdi_nvram_update_finish(enp, partn, reboot)) != 0) + if (resultp != NULL) + *resultp = MC_CMD_NVRAM_VERIFY_RC_UNKNOWN; + + rc = efx_mcdi_nvram_update_finish(enp, partn, reboot, resultp); + if (rc != 0) goto fail1; - return; + return (0); fail1: EFSYS_PROBE1(fail1, efx_rc_t, rc); + + return (rc); } __checkReturn efx_rc_t @@ -2175,7 +2181,11 @@ static ef10_parttbl_entry_t medford_parttbl[] = { {NVRAM_PARTITION_TYPE_LICENSE, 1, EFX_NVRAM_LICENSE}, {NVRAM_PARTITION_TYPE_LICENSE, 2, EFX_NVRAM_LICENSE}, {NVRAM_PARTITION_TYPE_LICENSE, 3, EFX_NVRAM_LICENSE}, - {NVRAM_PARTITION_TYPE_LICENSE, 4, EFX_NVRAM_LICENSE} + {NVRAM_PARTITION_TYPE_LICENSE, 4, EFX_NVRAM_LICENSE}, + {NVRAM_PARTITION_TYPE_EXPANSION_UEFI, 1, EFX_NVRAM_UEFIROM}, + {NVRAM_PARTITION_TYPE_EXPANSION_UEFI, 2, EFX_NVRAM_UEFIROM}, + {NVRAM_PARTITION_TYPE_EXPANSION_UEFI, 3, EFX_NVRAM_UEFIROM}, + {NVRAM_PARTITION_TYPE_EXPANSION_UEFI, 4, EFX_NVRAM_UEFIROM} }; static __checkReturn efx_rc_t @@ -2355,12 +2365,22 @@ fail1: return (rc); } - void + __checkReturn efx_rc_t ef10_nvram_partn_rw_finish( __in efx_nic_t *enp, __in uint32_t partn) { - ef10_nvram_partn_unlock(enp, partn); + efx_rc_t rc; + + if ((rc = ef10_nvram_partn_unlock(enp, partn, NULL)) != 0) + goto fail1; + + return (0); + +fail1: + EFSYS_PROBE1(fail1, efx_rc_t, rc); + + return (rc); } #endif /* EFSYS_OPT_NVRAM */ diff --git a/sys/dev/sfxge/common/ef10_phy.c b/sys/dev/sfxge/common/ef10_phy.c index 77b2846..2d4e578 100644 --- a/sys/dev/sfxge/common/ef10_phy.c +++ b/sys/dev/sfxge/common/ef10_phy.c @@ -278,7 +278,6 @@ fail1: ef10_phy_reconfigure( __in efx_nic_t *enp) { - efx_nic_cfg_t *encp = &(enp->en_nic_cfg); efx_port_t *epp = &(enp->en_port); efx_mcdi_req_t req; uint8_t payload[MAX(MC_CMD_SET_LINK_IN_LEN, @@ -286,9 +285,12 @@ ef10_phy_reconfigure( uint32_t cap_mask; unsigned int led_mode; unsigned int speed; + boolean_t supported; efx_rc_t rc; - if (~encp->enc_func_flags & EFX_NIC_FUNC_LINKCTRL) + if ((rc = efx_mcdi_link_control_supported(enp, &supported)) != 0) + goto fail1; + if (supported == B_FALSE) goto out; (void) memset(payload, 0, sizeof (payload)); @@ -349,7 +351,7 @@ ef10_phy_reconfigure( if (req.emr_rc != 0) { rc = req.emr_rc; - goto fail1; + goto fail2; } /* And set the blink mode */ @@ -385,11 +387,13 @@ ef10_phy_reconfigure( if (req.emr_rc != 0) { rc = req.emr_rc; - goto fail2; + goto fail3; } out: return (0); +fail3: + EFSYS_PROBE(fail3); fail2: EFSYS_PROBE(fail2); fail1: @@ -474,4 +478,157 @@ ef10_phy_stats_update( #endif /* EFSYS_OPT_PHY_STATS */ +#if EFSYS_OPT_BIST + + __checkReturn efx_rc_t +ef10_bist_enable_offline( + __in efx_nic_t *enp) +{ + efx_rc_t rc; + + if ((rc = efx_mcdi_bist_enable_offline(enp)) != 0) + goto fail1; + + return (0); + +fail1: + EFSYS_PROBE1(fail1, efx_rc_t, rc); + + return (rc); +} + + __checkReturn efx_rc_t +ef10_bist_start( + __in efx_nic_t *enp, + __in efx_bist_type_t type) +{ + efx_rc_t rc; + + if ((rc = efx_mcdi_bist_start(enp, type)) != 0) + goto fail1; + + return (0); + +fail1: + EFSYS_PROBE1(fail1, efx_rc_t, rc); + + return (rc); +} + + __checkReturn efx_rc_t +ef10_bist_poll( + __in efx_nic_t *enp, + __in efx_bist_type_t type, + __out efx_bist_result_t *resultp, + __out_opt __drv_when(count > 0, __notnull) + uint32_t *value_maskp, + __out_ecount_opt(count) __drv_when(count > 0, __notnull) + unsigned long *valuesp, + __in size_t count) +{ + efx_nic_cfg_t *encp = &(enp->en_nic_cfg); + efx_mcdi_req_t req; + uint8_t payload[MAX(MC_CMD_POLL_BIST_IN_LEN, + MCDI_CTL_SDU_LEN_MAX)]; + uint32_t value_mask = 0; + uint32_t result; + efx_rc_t rc; + + _NOTE(ARGUNUSED(type)) + + (void) memset(payload, 0, sizeof (payload)); + req.emr_cmd = MC_CMD_POLL_BIST; + req.emr_in_buf = payload; + req.emr_in_length = MC_CMD_POLL_BIST_IN_LEN; + req.emr_out_buf = payload; + req.emr_out_length = MCDI_CTL_SDU_LEN_MAX; + + efx_mcdi_execute(enp, &req); + + if (req.emr_rc != 0) { + rc = req.emr_rc; + goto fail1; + } + + if (req.emr_out_length_used < MC_CMD_POLL_BIST_OUT_RESULT_OFST + 4) { + rc = EMSGSIZE; + goto fail2; + } + + if (count > 0) + (void) memset(valuesp, '\0', count * sizeof (unsigned long)); + + result = MCDI_OUT_DWORD(req, POLL_BIST_OUT_RESULT); + + if (result == MC_CMD_POLL_BIST_FAILED && + req.emr_out_length >= MC_CMD_POLL_BIST_OUT_MEM_LEN && + count > EFX_BIST_MEM_ECC_FATAL) { + if (valuesp != NULL) { + valuesp[EFX_BIST_MEM_TEST] = + MCDI_OUT_DWORD(req, POLL_BIST_OUT_MEM_TEST); + valuesp[EFX_BIST_MEM_ADDR] = + MCDI_OUT_DWORD(req, POLL_BIST_OUT_MEM_ADDR); + valuesp[EFX_BIST_MEM_BUS] = + MCDI_OUT_DWORD(req, POLL_BIST_OUT_MEM_BUS); + valuesp[EFX_BIST_MEM_EXPECT] = + MCDI_OUT_DWORD(req, POLL_BIST_OUT_MEM_EXPECT); + valuesp[EFX_BIST_MEM_ACTUAL] = + MCDI_OUT_DWORD(req, POLL_BIST_OUT_MEM_ACTUAL); + valuesp[EFX_BIST_MEM_ECC] = + MCDI_OUT_DWORD(req, POLL_BIST_OUT_MEM_ECC); + valuesp[EFX_BIST_MEM_ECC_PARITY] = + MCDI_OUT_DWORD(req, POLL_BIST_OUT_MEM_ECC_PARITY); + valuesp[EFX_BIST_MEM_ECC_FATAL] = + MCDI_OUT_DWORD(req, POLL_BIST_OUT_MEM_ECC_FATAL); + } + value_mask |= (1 << EFX_BIST_MEM_TEST) | + (1 << EFX_BIST_MEM_ADDR) | + (1 << EFX_BIST_MEM_BUS) | + (1 << EFX_BIST_MEM_EXPECT) | + (1 << EFX_BIST_MEM_ACTUAL) | + (1 << EFX_BIST_MEM_ECC) | + (1 << EFX_BIST_MEM_ECC_PARITY) | + (1 << EFX_BIST_MEM_ECC_FATAL); + } else if (result == MC_CMD_POLL_BIST_FAILED && + encp->enc_phy_type == EFX_PHY_XFI_FARMI && + req.emr_out_length >= MC_CMD_POLL_BIST_OUT_MRSFP_LEN && + count > EFX_BIST_FAULT_CODE) { + if (valuesp != NULL) + valuesp[EFX_BIST_FAULT_CODE] = + MCDI_OUT_DWORD(req, POLL_BIST_OUT_MRSFP_TEST); + value_mask |= 1 << EFX_BIST_FAULT_CODE; + } + + if (value_maskp != NULL) + *value_maskp = value_mask; + + EFSYS_ASSERT(resultp != NULL); + if (result == MC_CMD_POLL_BIST_RUNNING) + *resultp = EFX_BIST_RESULT_RUNNING; + else if (result == MC_CMD_POLL_BIST_PASSED) + *resultp = EFX_BIST_RESULT_PASSED; + else + *resultp = EFX_BIST_RESULT_FAILED; + + return (0); + +fail2: + EFSYS_PROBE(fail2); +fail1: + EFSYS_PROBE1(fail1, efx_rc_t, rc); + + return (rc); +} + + void +ef10_bist_stop( + __in efx_nic_t *enp, + __in efx_bist_type_t type) +{ + /* There is no way to stop BIST on EF10. */ + _NOTE(ARGUNUSED(enp, type)) +} + +#endif /* EFSYS_OPT_BIST */ + #endif /* EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD */ diff --git a/sys/dev/sfxge/common/ef10_rx.c b/sys/dev/sfxge/common/ef10_rx.c index 3bbee26..f6c26a4 100644 --- a/sys/dev/sfxge/common/ef10_rx.c +++ b/sys/dev/sfxge/common/ef10_rx.c @@ -297,13 +297,13 @@ efx_mcdi_rss_context_set_flags( MCDI_IN_POPULATE_DWORD_4(req, RSS_CONTEXT_SET_FLAGS_IN_FLAGS, RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV4_EN, - (type & (1U << EFX_RX_HASH_IPV4)) ? 1 : 0, + (type & EFX_RX_HASH_IPV4) ? 1 : 0, RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV4_EN, - (type & (1U << EFX_RX_HASH_TCPIPV4)) ? 1 : 0, + (type & EFX_RX_HASH_TCPIPV4) ? 1 : 0, RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV6_EN, - (type & (1U << EFX_RX_HASH_IPV6)) ? 1 : 0, + (type & EFX_RX_HASH_IPV6) ? 1 : 0, RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV6_EN, - (type & (1U << EFX_RX_HASH_TCPIPV6)) ? 1 : 0); + (type & EFX_RX_HASH_TCPIPV6) ? 1 : 0); efx_mcdi_execute(enp, &req); @@ -769,12 +769,10 @@ ef10_rx_qcreate( } /* Scatter can only be disabled if the firmware supports doing so */ - if ((type != EFX_RXQ_TYPE_SCATTER) && - enp->en_nic_cfg.enc_rx_disable_scatter_supported) { - disable_scatter = B_TRUE; - } else { + if (type == EFX_RXQ_TYPE_SCATTER) disable_scatter = B_FALSE; - } + else + disable_scatter = encp->enc_rx_disable_scatter_supported; if ((rc = efx_mcdi_init_rxq(enp, n, eep->ee_index, label, index, esmp, disable_scatter)) != 0) diff --git a/sys/dev/sfxge/common/ef10_tlv_layout.h b/sys/dev/sfxge/common/ef10_tlv_layout.h index 033cdf9..44dde11 100644 --- a/sys/dev/sfxge/common/ef10_tlv_layout.h +++ b/sys/dev/sfxge/common/ef10_tlv_layout.h @@ -432,6 +432,7 @@ struct tlv_firmware_options { #define TLV_FIRMWARE_VARIANT_HIGH_TX_RATE MC_CMD_FW_HIGH_TX_RATE #define TLV_FIRMWARE_VARIANT_PACKED_STREAM_HASH_MODE_1 \ MC_CMD_FW_PACKED_STREAM_HASH_MODE_1 +#define TLV_FIRMWARE_VARIANT_RULES_ENGINE MC_CMD_FW_RULES_ENGINE }; /* Voltage settings @@ -797,20 +798,6 @@ struct tlv_tx_event_merging_config { #define TLV_TX_EVENT_MERGING_TIMEOUT_NS_DEFAULT (0xffffffff) #define TLV_TX_EVENT_MERGING_QEMPTY_TIMEOUT_NS_DEFAULT (0xffffffff) -/* Tx vFIFO Low latency configuration - * - * To keep the desired booting behaviour for the switch, it just requires to - * know if the low latency mode is enabled. - */ - -#define TLV_TAG_TX_VFIFO_ULL_MODE (0x10270000) -struct tlv_tx_vfifo_ull_mode { - uint32_t tag; - uint32_t length; - uint8_t mode; -#define TLV_TX_VFIFO_ULL_MODE_DEFAULT 0 -}; - /* BIU mode * * Medford2 tag for selecting VI window decode (see values below) @@ -856,8 +843,8 @@ typedef struct tlv_tsan_config { uint32_t netmask; uint32_t gateway; uint32_t port; - uint32_t bind_retry; - uint32_t bind_bkout; + uint32_t bind_retry; /* DEPRECATED */ + uint32_t bind_bkout; /* DEPRECATED */ } tlv_tsan_config_t; /* TSA Controller IP address configuration @@ -898,7 +885,7 @@ typedef struct tlv_binding_ticket { uint8_t bytes[]; } tlv_binding_ticket_t; -/* Solarflare private key +/* Solarflare private key (DEPRECATED) * * Sets the Solareflare private key used for signing during the binding process * @@ -907,7 +894,7 @@ typedef struct tlv_binding_ticket { * released code yet. */ -#define TLV_TAG_TMP_PIK_SF (0x10250000) +#define TLV_TAG_TMP_PIK_SF (0x10250000) /* DEPRECATED */ typedef struct tlv_pik_sf { uint32_t tag; @@ -933,4 +920,18 @@ typedef struct tlv_ca_root_cert { uint8_t bytes[]; } tlv_ca_root_cert_t; +/* Tx vFIFO Low latency configuration + * + * To keep the desired booting behaviour for the switch, it just requires to + * know if the low latency mode is enabled. + */ + +#define TLV_TAG_TX_VFIFO_ULL_MODE (0x10270000) +struct tlv_tx_vfifo_ull_mode { + uint32_t tag; + uint32_t length; + uint8_t mode; +#define TLV_TX_VFIFO_ULL_MODE_DEFAULT 0 +}; + #endif /* CI_MGMT_TLV_LAYOUT_H */ diff --git a/sys/dev/sfxge/common/ef10_tx.c b/sys/dev/sfxge/common/ef10_tx.c index a4729a1..e39b271 100755 --- a/sys/dev/sfxge/common/ef10_tx.c +++ b/sys/dev/sfxge/common/ef10_tx.c @@ -438,8 +438,9 @@ ef10_tx_qpost( size_t offset; efx_qword_t qword; - /* Fragments must not span 4k boundaries. */ - EFSYS_ASSERT(P2ROUNDUP(addr + 1, 4096) >= (addr + size)); + /* No limitations on boundary crossing */ + EFSYS_ASSERT(size <= + etp->et_enp->en_nic_cfg.enc_tx_dma_desc_size_max); id = added++ & etp->et_mask; offset = id * sizeof (efx_qword_t); @@ -470,9 +471,9 @@ fail1: } /* - * This improves performance by pushing a TX descriptor at the same time as the - * doorbell. The descriptor must be added to the TXQ, so that can be used if the - * hardware decides not to use the pushed descriptor. + * This improves performance by, when possible, pushing a TX descriptor at the + * same time as the doorbell. The descriptor must be added to the TXQ, so that + * can be used if the hardware decides not to use the pushed descriptor. */ void ef10_tx_qpush( @@ -492,16 +493,46 @@ ef10_tx_qpush( offset = id * sizeof (efx_qword_t); EFSYS_MEM_READQ(etp->et_esmp, offset, &desc); - EFX_POPULATE_OWORD_3(oword, - ERF_DZ_TX_DESC_WPTR, wptr, - ERF_DZ_TX_DESC_HWORD, EFX_QWORD_FIELD(desc, EFX_DWORD_1), - ERF_DZ_TX_DESC_LWORD, EFX_QWORD_FIELD(desc, EFX_DWORD_0)); - - /* Guarantee ordering of memory (descriptors) and PIO (doorbell) */ - EFX_DMA_SYNC_QUEUE_FOR_DEVICE(etp->et_esmp, etp->et_mask + 1, wptr, id); - EFSYS_PIO_WRITE_BARRIER(); - EFX_BAR_TBL_DOORBELL_WRITEO(enp, ER_DZ_TX_DESC_UPD_REG, etp->et_index, - &oword); + + /* + * SF Bug 65776: TSO option descriptors cannot be pushed if pacer bypass + * is enabled on the event queue this transmit queue is attached to. + * + * To ensure the code is safe, it is easiest to simply test the type of + * the descriptor to push, and only push it is if it not a TSO option + * descriptor. + */ + if ((EFX_QWORD_FIELD(desc, ESF_DZ_TX_DESC_IS_OPT) != 1) || + (EFX_QWORD_FIELD(desc, ESF_DZ_TX_OPTION_TYPE) != + ESE_DZ_TX_OPTION_DESC_TSO)) { + /* Push the descriptor and update the wptr. */ + EFX_POPULATE_OWORD_3(oword, ERF_DZ_TX_DESC_WPTR, wptr, + ERF_DZ_TX_DESC_HWORD, EFX_QWORD_FIELD(desc, EFX_DWORD_1), + ERF_DZ_TX_DESC_LWORD, EFX_QWORD_FIELD(desc, EFX_DWORD_0)); + + /* Ensure ordering of memory (descriptors) and PIO (doorbell) */ + EFX_DMA_SYNC_QUEUE_FOR_DEVICE(etp->et_esmp, etp->et_mask + 1, + wptr, id); + EFSYS_PIO_WRITE_BARRIER(); + EFX_BAR_TBL_DOORBELL_WRITEO(enp, ER_DZ_TX_DESC_UPD_REG, + etp->et_index, &oword); + } else { + efx_dword_t dword; + + /* + * Only update the wptr. This is signalled to the hardware by + * only writing one DWORD of the doorbell register. + */ + EFX_POPULATE_OWORD_1(oword, ERF_DZ_TX_DESC_WPTR, wptr); + dword = oword.eo_dword[2]; + + /* Ensure ordering of memory (descriptors) and PIO (doorbell) */ + EFX_DMA_SYNC_QUEUE_FOR_DEVICE(etp->et_esmp, etp->et_mask + 1, + wptr, id); + EFSYS_PIO_WRITE_BARRIER(); + EFX_BAR_TBL_WRITED2(enp, ER_DZ_TX_DESC_UPD_REG, + etp->et_index, &dword, B_FALSE); + } } __checkReturn efx_rc_t @@ -554,8 +585,8 @@ ef10_tx_qdesc_dma_create( __in boolean_t eop, __out efx_desc_t *edp) { - /* Fragments must not span 4k boundaries. */ - EFSYS_ASSERT(P2ROUNDUP(addr + 1, 4096) >= addr + size); + /* No limitations on boundary crossing */ + EFSYS_ASSERT(size <= etp->et_enp->en_nic_cfg.enc_tx_dma_desc_size_max); EFSYS_PROBE4(tx_desc_dma_create, unsigned int, etp->et_index, efsys_dma_addr_t, addr, diff --git a/sys/dev/sfxge/common/efsys.h b/sys/dev/sfxge/common/efsys.h index aef9a07..859b1ed 100644 --- a/sys/dev/sfxge/common/efsys.h +++ b/sys/dev/sfxge/common/efsys.h @@ -266,7 +266,6 @@ sfxge_map_mbuf_fast(bus_dma_tag_t tag, bus_dmamap_t map, #define EFSYS_OPT_BOOTCFG 0 #define EFSYS_OPT_DIAG 0 -#define EFSYS_OPT_WOL 1 #define EFSYS_OPT_RX_SCALE 1 #define EFSYS_OPT_QSTATS 1 #define EFSYS_OPT_FILTER 1 @@ -1095,6 +1094,8 @@ typedef struct efsys_lock_s { #define SFXGE_EFSYS_LOCK_ASSERT_OWNED(_eslp) \ mtx_assert(&(_eslp)->lock, MA_OWNED) +typedef int efsys_lock_state_t; + #define EFSYS_LOCK_MAGIC 0x000010c4 #define EFSYS_LOCK(_lockp, _state) \ diff --git a/sys/dev/sfxge/common/efx.h b/sys/dev/sfxge/common/efx.h index 7419aeb..0f91b4f 100644 --- a/sys/dev/sfxge/common/efx.h +++ b/sys/dev/sfxge/common/efx.h @@ -128,11 +128,6 @@ typedef struct efx_rxq_s efx_rxq_t; typedef struct efx_nic_s efx_nic_t; -#define EFX_NIC_FUNC_PRIMARY 0x00000001 -#define EFX_NIC_FUNC_LINKCTRL 0x00000002 -#define EFX_NIC_FUNC_TRUSTED 0x00000004 - - extern __checkReturn efx_rc_t efx_nic_create( __in efx_family_t family, @@ -169,7 +164,7 @@ extern void efx_nic_unprobe( __in efx_nic_t *enp); -extern void +extern void efx_nic_destroy( __in efx_nic_t *enp); @@ -212,8 +207,7 @@ typedef enum efx_mcdi_exception_e { } efx_mcdi_exception_t; #if EFSYS_OPT_MCDI_LOGGING -typedef enum efx_log_msg_e -{ +typedef enum efx_log_msg_e { EFX_LOG_INVALID, EFX_LOG_MCDI_REQUEST, EFX_LOG_MCDI_RESPONSE, @@ -249,6 +243,12 @@ efx_mcdi_new_epoch( __in efx_nic_t *enp); extern void +efx_mcdi_get_timeout( + __in efx_nic_t *enp, + __in efx_mcdi_req_t *emrp, + __out uint32_t *usec_timeoutp); + +extern void efx_mcdi_request_start( __in efx_nic_t *enp, __in efx_mcdi_req_t *emrp, @@ -287,21 +287,21 @@ efx_intr_init( __in efx_intr_type_t type, __in efsys_mem_t *esmp); -extern void +extern void efx_intr_enable( __in efx_nic_t *enp); -extern void +extern void efx_intr_disable( __in efx_nic_t *enp); -extern void +extern void efx_intr_disable_unlocked( __in efx_nic_t *enp); #define EFX_INTR_NEVQS 32 -extern __checkReturn efx_rc_t +extern __checkReturn efx_rc_t efx_intr_trigger( __in efx_nic_t *enp, __in unsigned int level); @@ -436,7 +436,7 @@ typedef enum efx_link_mode_e { #define EFX_MAC_ADDR_LEN 6 -#define EFX_MAC_ADDR_IS_MULTICAST(_address) (((uint8_t*)_address)[0] & 0x01) +#define EFX_MAC_ADDR_IS_MULTICAST(_address) (((uint8_t *)_address)[0] & 0x01) #define EFX_MAC_MULTICAST_LIST_MAX 256 @@ -536,6 +536,29 @@ efx_mac_stat_name( #endif /* EFSYS_OPT_NAMES */ +#define EFX_MAC_STATS_MASK_BITS_PER_PAGE (8 * sizeof (uint32_t)) + +#define EFX_MAC_STATS_MASK_NPAGES \ + (P2ROUNDUP(EFX_MAC_NSTATS, EFX_MAC_STATS_MASK_BITS_PER_PAGE) / \ + EFX_MAC_STATS_MASK_BITS_PER_PAGE) + +/* + * Get mask of MAC statistics supported by the hardware. + * + * If mask_size is insufficient to return the mask, EINVAL error is + * returned. EFX_MAC_STATS_MASK_NPAGES multiplied by size of the page + * (which is sizeof (uint32_t)) is sufficient. + */ +extern __checkReturn efx_rc_t +efx_mac_stats_get_mask( + __in efx_nic_t *enp, + __out_bcount(mask_size) uint32_t *maskp, + __in size_t mask_size); + +#define EFX_MAC_STAT_SUPPORTED(_mask, _stat) \ + ((_mask)[(_stat) / EFX_MAC_STATS_MASK_BITS_PER_PAGE] & \ + (1ULL << ((_stat) & (EFX_MAC_STATS_MASK_BITS_PER_PAGE - 1)))) + #define EFX_MAC_STATS_SIZE 0x400 /* @@ -820,7 +843,7 @@ efx_port_poll( __in efx_nic_t *enp, __out_opt efx_link_mode_t *link_modep); -extern void +extern void efx_port_fini( __in efx_nic_t *enp); @@ -848,7 +871,7 @@ typedef enum efx_phy_cap_type_e { extern void efx_phy_adv_cap_get( __in efx_nic_t *enp, - __in uint32_t flag, + __in uint32_t flag, __out uint32_t *maskp); extern __checkReturn efx_rc_t @@ -1052,7 +1075,6 @@ efx_bist_stop( #define EFX_FEATURE_LFSR_HASH_INSERT 0x00000002 #define EFX_FEATURE_LINK_EVENTS 0x00000004 #define EFX_FEATURE_PERIODIC_MAC_STATS 0x00000008 -#define EFX_FEATURE_WOL 0x00000010 #define EFX_FEATURE_MCDI 0x00000020 #define EFX_FEATURE_LOOKAHEAD_SPLIT 0x00000040 #define EFX_FEATURE_MAC_HEADER_FILTERS 0x00000080 @@ -1078,7 +1100,6 @@ typedef struct efx_nic_cfg_s { unsigned int enc_features; uint8_t enc_mac_addr[6]; uint8_t enc_port; /* PHY port number */ - uint32_t enc_func_flags; uint32_t enc_intr_vec_base; uint32_t enc_intr_limit; uint32_t enc_evq_limit; @@ -1106,18 +1127,16 @@ typedef struct efx_nic_cfg_s { #if EFSYS_OPT_PHY_STATS uint64_t enc_phy_stat_mask; #endif /* EFSYS_OPT_PHY_STATS */ -#if EFSYS_OPT_SIENA +#if EFSYS_OPT_MCDI uint8_t enc_mcdi_mdio_channel; #if EFSYS_OPT_PHY_STATS uint32_t enc_mcdi_phy_stat_mask; #endif /* EFSYS_OPT_PHY_STATS */ -#endif /* EFSYS_OPT_SIENA */ -#if (EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) #if EFSYS_OPT_MON_STATS uint32_t *enc_mcdi_sensor_maskp; uint32_t enc_mcdi_sensor_mask_size; #endif /* EFSYS_OPT_MON_STATS */ -#endif /* (EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) */ +#endif /* EFSYS_OPT_MCDI */ #if EFSYS_OPT_BIST uint32_t enc_bist_mask; #endif /* EFSYS_OPT_BIST */ @@ -1133,22 +1152,35 @@ typedef struct efx_nic_cfg_s { boolean_t enc_rx_batching_enabled; /* Maximum number of descriptors completed in an rx event. */ uint32_t enc_rx_batch_max; - /* Number of rx descriptors the hardware requires for a push. */ - uint32_t enc_rx_push_align; + /* Number of rx descriptors the hardware requires for a push. */ + uint32_t enc_rx_push_align; + /* Maximum amount of data in DMA descriptor */ + uint32_t enc_tx_dma_desc_size_max; + /* + * Boundary which DMA descriptor data must not cross or 0 if no + * limitation. + */ + uint32_t enc_tx_dma_desc_boundary; /* * Maximum number of bytes into the packet the TCP header can start for * the hardware to apply TSO packet edits. */ - uint32_t enc_tx_tso_tcp_header_offset_limit; - boolean_t enc_fw_assisted_tso_enabled; - boolean_t enc_fw_assisted_tso_v2_enabled; - boolean_t enc_hw_tx_insert_vlan_enabled; + uint32_t enc_tx_tso_tcp_header_offset_limit; + boolean_t enc_fw_assisted_tso_enabled; + boolean_t enc_fw_assisted_tso_v2_enabled; + /* Number of TSO contexts on the NIC (FATSOv2) */ + uint32_t enc_fw_assisted_tso_v2_n_contexts; + boolean_t enc_hw_tx_insert_vlan_enabled; + /* Number of PFs on the NIC */ + uint32_t enc_hw_pf_count; /* Datapath firmware vadapter/vport/vswitch support */ boolean_t enc_datapath_cap_evb; - boolean_t enc_rx_disable_scatter_supported; - boolean_t enc_allow_set_mac_with_installed_filters; + boolean_t enc_rx_disable_scatter_supported; + boolean_t enc_allow_set_mac_with_installed_filters; boolean_t enc_enhanced_set_mac_supported; boolean_t enc_init_evq_v2_supported; + boolean_t enc_pm_and_rxdp_counters; + boolean_t enc_mac_stats_40g_tx_size_bins; /* External port identifier */ uint8_t enc_external_port; uint32_t enc_mcdi_max_payload_length; @@ -1157,6 +1189,8 @@ typedef struct efx_nic_cfg_s { /* Minimum unidirectional bandwidth in Mb/s to max out all ports */ uint32_t enc_required_pcie_bandwidth_mbps; uint32_t enc_max_pcie_link_gen; + /* Firmware verifies integrity of NVRAM updates */ + uint32_t enc_fw_verified_nvram_update_required; } efx_nic_cfg_t; #define EFX_PCI_FUNCTION_IS_PF(_encp) ((_encp)->enc_vf == 0xffff) @@ -1172,8 +1206,7 @@ efx_nic_cfg_get( __in efx_nic_t *enp); /* Driver resource limits (minimum required/maximum usable). */ -typedef struct efx_drv_limits_s -{ +typedef struct efx_drv_limits_s { uint32_t edl_min_evq_count; uint32_t edl_max_evq_count; @@ -1255,7 +1288,7 @@ efx_vpd_verify( __in_bcount(size) caddr_t data, __in size_t size); -extern __checkReturn efx_rc_t +extern __checkReturn efx_rc_t efx_vpd_reinit( __in efx_nic_t *enp, __in_bcount(size) caddr_t data, @@ -1283,7 +1316,7 @@ efx_vpd_next( __out efx_vpd_value_t *evvp, __inout unsigned int *contp); -extern __checkReturn efx_rc_t +extern __checkReturn efx_rc_t efx_vpd_write( __in efx_nic_t *enp, __in_bcount(size) caddr_t data, @@ -1313,6 +1346,7 @@ typedef enum efx_nvram_type_e { EFX_NVRAM_FPGA_BACKUP, EFX_NVRAM_DYNAMIC_CFG, EFX_NVRAM_LICENSE, + EFX_NVRAM_UEFIROM, EFX_NVRAM_NTYPES, } efx_nvram_type_t; @@ -1340,7 +1374,7 @@ efx_nvram_rw_start( __in efx_nvram_type_t type, __out_opt size_t *pref_chunkp); -extern void +extern __checkReturn efx_rc_t efx_nvram_rw_finish( __in efx_nic_t *enp, __in efx_nvram_type_t type); @@ -1394,6 +1428,29 @@ efx_nvram_fini( #if EFSYS_OPT_BOOTCFG +/* Report size and offset of bootcfg sector in NVRAM partition. */ +extern __checkReturn efx_rc_t +efx_bootcfg_sector_info( + __in efx_nic_t *enp, + __in uint32_t pf, + __out_opt uint32_t *sector_countp, + __out size_t *offsetp, + __out size_t *max_sizep); + +/* + * Copy bootcfg sector data to a target buffer which may differ in size. + * Optionally corrects format errors in source buffer. + */ +extern efx_rc_t +efx_bootcfg_copy_sector( + __in efx_nic_t *enp, + __inout_bcount(sector_length) + uint8_t *sector, + __in size_t sector_length, + __out_bcount(data_size) uint8_t *data, + __in size_t data_size, + __in boolean_t handle_format_errors); + extern efx_rc_t efx_bootcfg_read( __in efx_nic_t *enp, @@ -1408,87 +1465,6 @@ efx_bootcfg_write( #endif /* EFSYS_OPT_BOOTCFG */ -#if EFSYS_OPT_WOL - -typedef enum efx_wol_type_e { - EFX_WOL_TYPE_INVALID, - EFX_WOL_TYPE_MAGIC, - EFX_WOL_TYPE_BITMAP, - EFX_WOL_TYPE_LINK, - EFX_WOL_NTYPES, -} efx_wol_type_t; - -typedef enum efx_lightsout_offload_type_e { - EFX_LIGHTSOUT_OFFLOAD_TYPE_INVALID, - EFX_LIGHTSOUT_OFFLOAD_TYPE_ARP, - EFX_LIGHTSOUT_OFFLOAD_TYPE_NS, -} efx_lightsout_offload_type_t; - -#define EFX_WOL_BITMAP_MASK_SIZE (48) -#define EFX_WOL_BITMAP_VALUE_SIZE (128) - -typedef union efx_wol_param_u { - struct { - uint8_t mac_addr[6]; - } ewp_magic; - struct { - uint8_t mask[EFX_WOL_BITMAP_MASK_SIZE]; /* 1 bit per byte */ - uint8_t value[EFX_WOL_BITMAP_VALUE_SIZE]; /* value to match */ - uint8_t value_len; - } ewp_bitmap; -} efx_wol_param_t; - -typedef union efx_lightsout_offload_param_u { - struct { - uint8_t mac_addr[6]; - uint32_t ip; - } elop_arp; - struct { - uint8_t mac_addr[6]; - uint32_t solicited_node[4]; - uint32_t ip[4]; - } elop_ns; -} efx_lightsout_offload_param_t; - -extern __checkReturn efx_rc_t -efx_wol_init( - __in efx_nic_t *enp); - -extern __checkReturn efx_rc_t -efx_wol_filter_clear( - __in efx_nic_t *enp); - -extern __checkReturn efx_rc_t -efx_wol_filter_add( - __in efx_nic_t *enp, - __in efx_wol_type_t type, - __in efx_wol_param_t *paramp, - __out uint32_t *filter_idp); - -extern __checkReturn efx_rc_t -efx_wol_filter_remove( - __in efx_nic_t *enp, - __in uint32_t filter_id); - -extern __checkReturn efx_rc_t -efx_lightsout_offload_add( - __in efx_nic_t *enp, - __in efx_lightsout_offload_type_t type, - __in efx_lightsout_offload_param_t *paramp, - __out uint32_t *filter_idp); - -extern __checkReturn efx_rc_t -efx_lightsout_offload_remove( - __in efx_nic_t *enp, - __in efx_lightsout_offload_type_t type, - __in uint32_t filter_id); - -extern void -efx_wol_fini( - __in efx_nic_t *enp); - -#endif /* EFSYS_OPT_WOL */ - #if EFSYS_OPT_DIAG typedef enum efx_pattern_type_t { @@ -1501,7 +1477,7 @@ typedef enum efx_pattern_type_t { EFX_PATTERN_NTYPES } efx_pattern_type_t; -typedef void +typedef void (*efx_sram_pattern_fn_t)( __in size_t row, __in boolean_t negate, @@ -1597,6 +1573,15 @@ efx_ev_fini( #define EFX_EVQ_SIZE(_nevs) ((_nevs) * sizeof (efx_qword_t)) #define EFX_EVQ_NBUFS(_nevs) (EFX_EVQ_SIZE(_nevs) / EFX_BUF_SIZE) +#define EFX_EVQ_FLAGS_TYPE_MASK (0x3) +#define EFX_EVQ_FLAGS_TYPE_AUTO (0x0) +#define EFX_EVQ_FLAGS_TYPE_THROUGHPUT (0x1) +#define EFX_EVQ_FLAGS_TYPE_LOW_LATENCY (0x2) + +#define EFX_EVQ_FLAGS_NOTIFY_MASK (0xC) +#define EFX_EVQ_FLAGS_NOTIFY_INTERRUPT (0x0) /* Interrupting (default) */ +#define EFX_EVQ_FLAGS_NOTIFY_DISABLED (0x4) /* Non-interrupting */ + extern __checkReturn efx_rc_t efx_ev_qcreate( __in efx_nic_t *enp, @@ -1605,6 +1590,7 @@ efx_ev_qcreate( __in size_t n, __in uint32_t id, __in uint32_t us, + __in uint32_t flags, __deref_out efx_evq_t **eepp); extern void @@ -1835,12 +1821,12 @@ typedef enum efx_rx_hash_alg_e { EFX_RX_HASHALG_TOEPLITZ } efx_rx_hash_alg_t; -typedef enum efx_rx_hash_type_e { - EFX_RX_HASH_IPV4 = 0, - EFX_RX_HASH_TCPIPV4, - EFX_RX_HASH_IPV6, - EFX_RX_HASH_TCPIPV6, -} efx_rx_hash_type_t; +#define EFX_RX_HASH_IPV4 (1U << 0) +#define EFX_RX_HASH_TCPIPV4 (1U << 1) +#define EFX_RX_HASH_IPV6 (1U << 2) +#define EFX_RX_HASH_TCPIPV6 (1U << 3) + +typedef unsigned int efx_rx_hash_type_t; typedef enum efx_rx_hash_support_e { EFX_RX_HASH_UNAVAILABLE = 0, /* Hardware hash not inserted */ @@ -1848,8 +1834,8 @@ typedef enum efx_rx_hash_support_e { } efx_rx_hash_support_t; #define EFX_RSS_TBL_SIZE 128 /* Rows in RX indirection table */ -#define EFX_MAXRSS 64 /* RX indirection entry range */ -#define EFX_MAXRSS_LEGACY 16 /* See bug16611 and bug17213 */ +#define EFX_MAXRSS 64 /* RX indirection entry range */ +#define EFX_MAXRSS_LEGACY 16 /* See bug16611 and bug17213 */ typedef enum efx_rx_scale_support_e { EFX_RX_SCALE_UNAVAILABLE = 0, /* Not supported */ @@ -1888,16 +1874,16 @@ efx_rx_scale_key_set( __in size_t n); extern __checkReturn uint32_t -efx_psuedo_hdr_hash_get( - __in efx_nic_t *enp, +efx_pseudo_hdr_hash_get( + __in efx_rxq_t *erp, __in efx_rx_hash_alg_t func, __in uint8_t *buffer); #endif /* EFSYS_OPT_RX_SCALE */ extern __checkReturn efx_rc_t -efx_psuedo_hdr_pkt_length_get( - __in efx_nic_t *enp, +efx_pseudo_hdr_pkt_length_get( + __in efx_rxq_t *erp, __in uint8_t *buffer, __out uint16_t *pkt_lengthp); @@ -2061,7 +2047,7 @@ efx_tx_qpio_write( __in efx_txq_t *etp, __in_ecount(buf_length) uint8_t *buffer, __in size_t buf_length, - __in size_t pio_buf_offset); + __in size_t pio_buf_offset); extern __checkReturn efx_rc_t efx_tx_qpio_post( @@ -2148,20 +2134,22 @@ efx_tx_qdestroy( #define EFX_IPPROTO_TCP 6 #define EFX_IPPROTO_UDP 17 -typedef enum efx_filter_flag_e { - EFX_FILTER_FLAG_RX_RSS = 0x01, /* use RSS to spread across - * multiple queues */ - EFX_FILTER_FLAG_RX_SCATTER = 0x02, /* enable RX scatter */ - EFX_FILTER_FLAG_RX_OVER_AUTO = 0x04, /* Override an automatic filter - * (priority EFX_FILTER_PRI_AUTO). - * May only be set by the filter - * implementation for each type. - * A removal request will - * restore the automatic filter - * in its place. */ - EFX_FILTER_FLAG_RX = 0x08, /* Filter is for RX */ - EFX_FILTER_FLAG_TX = 0x10, /* Filter is for TX */ -} efx_filter_flag_t; +/* Use RSS to spread across multiple queues */ +#define EFX_FILTER_FLAG_RX_RSS 0x01 +/* Enable RX scatter */ +#define EFX_FILTER_FLAG_RX_SCATTER 0x02 +/* + * Override an automatic filter (priority EFX_FILTER_PRI_AUTO). + * May only be set by the filter implementation for each type. + * A removal request will restore the automatic filter in its place. + */ +#define EFX_FILTER_FLAG_RX_OVER_AUTO 0x04 +/* Filter is for RX */ +#define EFX_FILTER_FLAG_RX 0x08 +/* Filter is for TX */ +#define EFX_FILTER_FLAG_TX 0x10 + +typedef unsigned int efx_filter_flags_t; typedef enum efx_filter_match_flags_e { EFX_FILTER_MATCH_REM_HOST = 0x0001, /* Match by remote IP host @@ -2177,10 +2165,10 @@ typedef enum efx_filter_match_flags_e { EFX_FILTER_MATCH_OUTER_VID = 0x0100, /* Match by outer VLAN ID */ EFX_FILTER_MATCH_IP_PROTO = 0x0200, /* Match by IP transport * protocol */ - EFX_FILTER_MATCH_LOC_MAC_IG = 0x0400, /* Match by local MAC address - * I/G bit. Used for RX default - * unicast and multicast/ - * broadcast filters. */ + /* Match otherwise-unmatched multicast and broadcast packets */ + EFX_FILTER_MATCH_UNKNOWN_MCAST_DST = 0x40000000, + /* Match otherwise-unmatched unicast packets */ + EFX_FILTER_MATCH_UNKNOWN_UCAST_DST = 0x80000000, } efx_filter_match_flags_t; typedef enum efx_filter_priority_s { @@ -2202,7 +2190,7 @@ typedef enum efx_filter_priority_s { */ typedef struct efx_filter_spec_s { - uint32_t efs_match_flags:12; + uint32_t efs_match_flags; uint32_t efs_priority:2; uint32_t efs_flags:6; uint32_t efs_dmaq_id:12; @@ -2249,15 +2237,16 @@ efx_filter_restore( extern __checkReturn efx_rc_t efx_filter_supported_filters( - __in efx_nic_t *enp, - __out uint32_t *list, - __out size_t *length); + __in efx_nic_t *enp, + __out_ecount(buffer_length) uint32_t *buffer, + __in size_t buffer_length, + __out size_t *list_lengthp); extern void efx_filter_spec_init_rx( __out efx_filter_spec_t *spec, __in efx_filter_priority_t priority, - __in efx_filter_flag_t flags, + __in efx_filter_flags_t flags, __in efx_rxq_t *erp); extern void diff --git a/sys/dev/sfxge/common/efx_bootcfg.c b/sys/dev/sfxge/common/efx_bootcfg.c index 90ee1e4..616dc31 100644 --- a/sys/dev/sfxge/common/efx_bootcfg.c +++ b/sys/dev/sfxge/common/efx_bootcfg.c @@ -38,18 +38,91 @@ __FBSDID("$FreeBSD$"); /* * Maximum size of BOOTCFG block across all nics as understood by SFCgPXE. - * A multiple of 0x100 so trailing 0xff characters don't contrinbute to the - * checksum. + * NOTE: This is larger than the Medford per-PF bootcfg sector. */ #define BOOTCFG_MAX_SIZE 0x1000 -#define DHCP_END (uint8_t)0xff -#define DHCP_PAD (uint8_t)0 +/* Medford per-PF bootcfg sector */ +#define BOOTCFG_PER_PF 0x800 +#define BOOTCFG_PF_COUNT 16 + +#define DHCP_END ((uint8_t)0xff) +#define DHCP_PAD ((uint8_t)0) + + +/* Report the layout of bootcfg sectors in NVRAM partition. */ + __checkReturn efx_rc_t +efx_bootcfg_sector_info( + __in efx_nic_t *enp, + __in uint32_t pf, + __out_opt uint32_t *sector_countp, + __out size_t *offsetp, + __out size_t *max_sizep) +{ + uint32_t count; + size_t max_size; + size_t offset; + int rc; + + switch (enp->en_family) { +#if EFSYS_OPT_SIENA + case EFX_FAMILY_SIENA: + max_size = BOOTCFG_MAX_SIZE; + offset = 0; + count = 1; + break; +#endif /* EFSYS_OPT_SIENA */ + +#if EFSYS_OPT_HUNTINGTON + case EFX_FAMILY_HUNTINGTON: + max_size = BOOTCFG_MAX_SIZE; + offset = 0; + count = 1; + break; +#endif /* EFSYS_OPT_HUNTINGTON */ + +#if EFSYS_OPT_MEDFORD + case EFX_FAMILY_MEDFORD: { + /* Shared partition (array indexed by PF) */ + max_size = BOOTCFG_PER_PF; + count = BOOTCFG_PF_COUNT; + if (pf >= count) { + rc = EINVAL; + goto fail2; + } + offset = max_size * pf; + break; + } +#endif /* EFSYS_OPT_MEDFORD */ + + default: + EFSYS_ASSERT(0); + rc = ENOTSUP; + goto fail1; + } + EFSYS_ASSERT3U(max_size, <=, BOOTCFG_MAX_SIZE); + + if (sector_countp != NULL) + *sector_countp = count; + *offsetp = offset; + *max_sizep = max_size; + + return (0); + +#if EFSYS_OPT_MEDFORD +fail2: + EFSYS_PROBE(fail2); +#endif +fail1: + EFSYS_PROBE1(fail1, efx_rc_t, rc); + return (rc); +} + static __checkReturn uint8_t efx_bootcfg_csum( __in efx_nic_t *enp, - __in_bcount(size) caddr_t data, + __in_bcount(size) uint8_t const *data, __in size_t size) { _NOTE(ARGUNUSED(enp)) @@ -65,7 +138,7 @@ efx_bootcfg_csum( static __checkReturn efx_rc_t efx_bootcfg_verify( __in efx_nic_t *enp, - __in_bcount(size) caddr_t data, + __in_bcount(size) uint8_t const *data, __in size_t size, __out_opt size_t *usedp) { @@ -128,6 +201,95 @@ fail1: return (rc); } +/* + * Copy bootcfg sector data to a target buffer which may differ in size. + * Optionally corrects format errors in source buffer. + */ + efx_rc_t +efx_bootcfg_copy_sector( + __in efx_nic_t *enp, + __inout_bcount(sector_length) + uint8_t *sector, + __in size_t sector_length, + __out_bcount(data_size) uint8_t *data, + __in size_t data_size, + __in boolean_t handle_format_errors) +{ + size_t used_bytes; + efx_rc_t rc; + + /* Verify that the area is correctly formatted and checksummed */ + rc = efx_bootcfg_verify(enp, sector, sector_length, + &used_bytes); + + if (!handle_format_errors) { + if (rc != 0) + goto fail1; + + if ((used_bytes < 2) || + (sector[used_bytes - 1] != DHCP_END)) { + /* Block too short, or DHCP_END missing */ + rc = ENOENT; + goto fail2; + } + } + + /* Synthesize empty format on verification failure */ + if (rc != 0 || used_bytes == 0) { + sector[0] = 0; + sector[1] = DHCP_END; + used_bytes = 2; + } + EFSYS_ASSERT(used_bytes >= 2); /* checksum and DHCP_END */ + EFSYS_ASSERT(used_bytes <= sector_length); + EFSYS_ASSERT(sector_length >= 2); + + /* + * Legacy bootcfg sectors don't terminate with a DHCP_END character. + * Modify the returned payload so it does. + * Reinitialise the sector if there isn't room for the character. + */ + if (sector[used_bytes - 1] != DHCP_END) { + if (used_bytes >= sector_length) { + sector[0] = 0; + used_bytes = 1; + } + sector[used_bytes] = DHCP_END; + ++used_bytes; + } + + /* + * Verify that the target buffer is large enough for the + * entire used bootcfg area, then copy into the target buffer. + */ + if (used_bytes > data_size) { + rc = ENOSPC; + goto fail3; + } + memcpy(data, sector, used_bytes); + + /* Zero out the unused portion of the target buffer */ + if (used_bytes < data_size) + (void) memset(data + used_bytes, 0, data_size - used_bytes); + + /* + * The checksum includes trailing data after any DHCP_END character, + * which we've just modified (by truncation or appending DHCP_END). + */ + data[0] -= efx_bootcfg_csum(enp, data, data_size); + + return (0); + +fail3: + EFSYS_PROBE(fail3); +fail2: + EFSYS_PROBE(fail2); +fail1: + EFSYS_PROBE1(fail1, efx_rc_t, rc); + + return (rc); +} + efx_rc_t efx_bootcfg_read( __in efx_nic_t *enp, @@ -136,44 +298,66 @@ efx_bootcfg_read( { uint8_t *payload = NULL; size_t used_bytes; + size_t partn_length; size_t sector_length; + size_t sector_offset; efx_rc_t rc; - - rc = efx_nvram_size(enp, EFX_NVRAM_BOOTROM_CFG, §or_length); + uint32_t sector_number; + +#if EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD + sector_number = enp->en_nic_cfg.enc_pf; +#else + sector_number = 0; +#endif + rc = efx_nvram_size(enp, EFX_NVRAM_BOOTROM_CFG, &partn_length); if (rc != 0) goto fail1; + /* The bootcfg sector may be stored in a (larger) shared partition */ + rc = efx_bootcfg_sector_info(enp, sector_number, + NULL, §or_offset, §or_length); + if (rc != 0) + goto fail2; + + if (sector_length > BOOTCFG_MAX_SIZE) + sector_length = BOOTCFG_MAX_SIZE; + + if (sector_offset + sector_length > partn_length) { + /* Partition is too small */ + rc = EFBIG; + goto fail3; + } + /* - * We need to read the entire BOOTCFG area to ensure we read all the + * We need to read the entire BOOTCFG sector to ensure we read all the * tags, because legacy bootcfg sectors are not guaranteed to end with * a DHCP_END character. If the user hasn't supplied a sufficiently * large buffer then use our own buffer. */ - if (sector_length > BOOTCFG_MAX_SIZE) - sector_length = BOOTCFG_MAX_SIZE; if (sector_length > size) { EFSYS_KMEM_ALLOC(enp->en_esip, sector_length, payload); if (payload == NULL) { rc = ENOMEM; - goto fail2; + goto fail4; } } else payload = (uint8_t *)data; if ((rc = efx_nvram_rw_start(enp, EFX_NVRAM_BOOTROM_CFG, NULL)) != 0) - goto fail3; - - rc = efx_nvram_read_chunk(enp, EFX_NVRAM_BOOTROM_CFG, 0, - (caddr_t)payload, sector_length); + goto fail5; - efx_nvram_rw_finish(enp, EFX_NVRAM_BOOTROM_CFG); + if ((rc = efx_nvram_read_chunk(enp, EFX_NVRAM_BOOTROM_CFG, + sector_offset, (caddr_t)payload, sector_length)) != 0) { + (void) efx_nvram_rw_finish(enp, EFX_NVRAM_BOOTROM_CFG); + goto fail6; + } - if (rc != 0) - goto fail4; + if ((rc = efx_nvram_rw_finish(enp, EFX_NVRAM_BOOTROM_CFG)) != 0) + goto fail7; /* Verify that the area is correctly formatted and checksummed */ rc = efx_bootcfg_verify(enp, (caddr_t)payload, sector_length, - &used_bytes); + &used_bytes); if (rc != 0 || used_bytes == 0) { payload[0] = (uint8_t)~DHCP_END; payload[1] = DHCP_END; @@ -205,7 +389,7 @@ efx_bootcfg_read( */ if (used_bytes > size) { rc = ENOSPC; - goto fail5; + goto fail8; } if (sector_length > size) { memcpy(data, payload, used_bytes); @@ -224,15 +408,20 @@ efx_bootcfg_read( return (0); +fail8: + EFSYS_PROBE(fail8); +fail7: + EFSYS_PROBE(fail7); +fail6: + EFSYS_PROBE(fail6); fail5: EFSYS_PROBE(fail5); + if (sector_length > size) + EFSYS_KMEM_FREE(enp->en_esip, sector_length, payload); fail4: EFSYS_PROBE(fail4); fail3: EFSYS_PROBE(fail3); - - if (sector_length > size) - EFSYS_KMEM_FREE(enp->en_esip, sector_length, payload); fail2: EFSYS_PROBE(fail2); fail1: @@ -247,90 +436,119 @@ efx_bootcfg_write( __in_bcount(size) caddr_t data, __in size_t size) { - uint8_t *chunk; + uint8_t *partn_data; uint8_t checksum; + size_t partn_length; size_t sector_length; - size_t chunk_length; + size_t sector_offset; size_t used_bytes; - size_t offset; - size_t remaining; efx_rc_t rc; + uint32_t sector_number; + +#if EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD + sector_number = enp->en_nic_cfg.enc_pf; +#else + sector_number = 0; +#endif - rc = efx_nvram_size(enp, EFX_NVRAM_BOOTROM_CFG, §or_length); + rc = efx_nvram_size(enp, EFX_NVRAM_BOOTROM_CFG, &partn_length); if (rc != 0) goto fail1; + /* The bootcfg sector may be stored in a (larger) shared partition */ + rc = efx_bootcfg_sector_info(enp, sector_number, + NULL, §or_offset, §or_length); + if (rc != 0) + goto fail2; + if (sector_length > BOOTCFG_MAX_SIZE) sector_length = BOOTCFG_MAX_SIZE; + if (sector_offset + sector_length > partn_length) { + /* Partition is too small */ + rc = EFBIG; + goto fail3; + } + if ((rc = efx_bootcfg_verify(enp, data, size, &used_bytes)) != 0) - goto fail2; + goto fail4; /* The caller *must* terminate their block with a DHCP_END character */ - EFSYS_ASSERT(used_bytes >= 2); /* checksum and DHCP_END */ - if ((uint8_t)data[used_bytes - 1] != DHCP_END) { + if ((used_bytes < 2) || ((uint8_t)data[used_bytes - 1] != DHCP_END)) { + /* Block too short or DHCP_END missing */ rc = ENOENT; - goto fail3; + goto fail5; } /* Check that the hardware has support for this much data */ if (used_bytes > MIN(sector_length, BOOTCFG_MAX_SIZE)) { rc = ENOSPC; - goto fail4; + goto fail6; } - rc = efx_nvram_rw_start(enp, EFX_NVRAM_BOOTROM_CFG, &chunk_length); - if (rc != 0) - goto fail5; - - EFSYS_KMEM_ALLOC(enp->en_esip, chunk_length, chunk); - if (chunk == NULL) { + /* + * If the BOOTCFG sector is stored in a shared partition, then we must + * read the whole partition and insert the updated bootcfg sector at the + * correct offset. + */ + EFSYS_KMEM_ALLOC(enp->en_esip, partn_length, partn_data); + if (partn_data == NULL) { rc = ENOMEM; - goto fail6; + goto fail7; } - if ((rc = efx_nvram_erase(enp, EFX_NVRAM_BOOTROM_CFG)) != 0) - goto fail7; + rc = efx_nvram_rw_start(enp, EFX_NVRAM_BOOTROM_CFG, NULL); + if (rc != 0) + goto fail8; + + /* Read the entire partition */ + rc = efx_nvram_read_chunk(enp, EFX_NVRAM_BOOTROM_CFG, 0, + (caddr_t)partn_data, partn_length); + if (rc != 0) + goto fail9; /* - * Write the entire sector_length bytes of data in chunks. Zero out - * all data following the DHCP_END, and adjust the checksum + * Insert the BOOTCFG sector into the partition, Zero out all data after + * the DHCP_END tag, and adjust the checksum. */ + (void) memset(partn_data + sector_offset, 0x0, sector_length); + (void) memcpy(partn_data + sector_offset, data, used_bytes); + checksum = efx_bootcfg_csum(enp, data, used_bytes); - for (offset = 0; offset < sector_length; offset += remaining) { - remaining = MIN(chunk_length, sector_length - offset); - - /* Fill chunk */ - (void) memset(chunk, 0x0, chunk_length); - if (offset < used_bytes) - memcpy(chunk, data + offset, - MIN(remaining, used_bytes - offset)); - - /* Adjust checksum */ - if (offset == 0) - chunk[0] -= checksum; - - if ((rc = efx_nvram_write_chunk(enp, EFX_NVRAM_BOOTROM_CFG, - offset, (caddr_t)chunk, remaining)) != 0) - goto fail8; - } + partn_data[sector_offset] -= checksum; + + if ((rc = efx_nvram_erase(enp, EFX_NVRAM_BOOTROM_CFG)) != 0) + goto fail10; + + if ((rc = efx_nvram_write_chunk(enp, EFX_NVRAM_BOOTROM_CFG, + 0, (caddr_t)partn_data, partn_length)) != 0) + goto fail11; - efx_nvram_rw_finish(enp, EFX_NVRAM_BOOTROM_CFG); + if ((rc = efx_nvram_rw_finish(enp, EFX_NVRAM_BOOTROM_CFG)) != 0) + goto fail12; - EFSYS_KMEM_FREE(enp->en_esip, chunk_length, chunk); + EFSYS_KMEM_FREE(enp->en_esip, partn_length, partn_data); return (0); +fail12: + EFSYS_PROBE(fail12); +fail11: + EFSYS_PROBE(fail11); +fail10: + EFSYS_PROBE(fail10); +fail9: + EFSYS_PROBE(fail9); + + (void) efx_nvram_rw_finish(enp, EFX_NVRAM_BOOTROM_CFG); fail8: EFSYS_PROBE(fail8); + + EFSYS_KMEM_FREE(enp->en_esip, partn_length, partn_data); fail7: EFSYS_PROBE(fail7); - - EFSYS_KMEM_FREE(enp->en_esip, chunk_length, chunk); fail6: EFSYS_PROBE(fail6); - - efx_nvram_rw_finish(enp, EFX_NVRAM_BOOTROM_CFG); fail5: EFSYS_PROBE(fail5); fail4: diff --git a/sys/dev/sfxge/common/efx_check.h b/sys/dev/sfxge/common/efx_check.h index ee473c4..60972bf 100644 --- a/sys/dev/sfxge/common/efx_check.h +++ b/sys/dev/sfxge/common/efx_check.h @@ -307,10 +307,8 @@ #endif /* EFSYS_OPT_VPD */ /* Support Wake on LAN */ -#if EFSYS_OPT_WOL -# if !EFSYS_OPT_SIENA -# error "WOL requires SIENA" -# endif +#ifdef EFSYS_OPT_WOL +# error "WOL is obsolete and is not supported" #endif /* EFSYS_OPT_WOL */ #ifdef EFSYS_OPT_MCAST_FILTER_LIST diff --git a/sys/dev/sfxge/common/efx_ev.c b/sys/dev/sfxge/common/efx_ev.c index 0862983..1ca0941 100644 --- a/sys/dev/sfxge/common/efx_ev.c +++ b/sys/dev/sfxge/common/efx_ev.c @@ -71,6 +71,7 @@ siena_ev_qcreate( __in size_t n, __in uint32_t id, __in uint32_t us, + __in uint32_t flags, __in efx_evq_t *eep); static void @@ -83,13 +84,6 @@ siena_ev_qprime( __in unsigned int count); static void -siena_ev_qpoll( - __in efx_evq_t *eep, - __inout unsigned int *countp, - __in const efx_ev_callbacks_t *eecp, - __in_opt void *arg); - -static void siena_ev_qpost( __in efx_evq_t *eep, __in uint16_t data); @@ -228,6 +222,7 @@ efx_ev_qcreate( __in size_t n, __in uint32_t id, __in uint32_t us, + __in uint32_t flags, __deref_out efx_evq_t **eepp) { const efx_ev_ops_t *eevop = enp->en_eevop; @@ -240,17 +235,32 @@ efx_ev_qcreate( EFSYS_ASSERT3U(enp->en_ev_qcount + 1, <, encp->enc_evq_limit); + switch (flags & EFX_EVQ_FLAGS_NOTIFY_MASK) { + case EFX_EVQ_FLAGS_NOTIFY_INTERRUPT: + break; + case EFX_EVQ_FLAGS_NOTIFY_DISABLED: + if (us != 0) { + rc = EINVAL; + goto fail1; + } + break; + default: + rc = EINVAL; + goto fail2; + } + /* Allocate an EVQ object */ EFSYS_KMEM_ALLOC(enp->en_esip, sizeof (efx_evq_t), eep); if (eep == NULL) { rc = ENOMEM; - goto fail1; + goto fail3; } eep->ee_magic = EFX_EVQ_MAGIC; eep->ee_enp = enp; eep->ee_index = index; eep->ee_mask = n - 1; + eep->ee_flags = flags; eep->ee_esmp = esmp; /* @@ -264,17 +274,22 @@ efx_ev_qcreate( enp->en_ev_qcount++; *eepp = eep; - if ((rc = eevop->eevo_qcreate(enp, index, esmp, n, id, us, eep)) != 0) - goto fail2; + if ((rc = eevop->eevo_qcreate(enp, index, esmp, n, id, us, flags, + eep)) != 0) + goto fail4; return (0); -fail2: - EFSYS_PROBE(fail2); +fail4: + EFSYS_PROBE(fail4); *eepp = NULL; enp->en_ev_qcount--; EFSYS_KMEM_FREE(enp->en_esip, sizeof (efx_evq_t), eep); +fail3: + EFSYS_PROBE(fail3); +fail2: + EFSYS_PROBE(fail2); fail1: EFSYS_PROBE1(fail1, efx_rc_t, rc); return (rc); @@ -359,6 +374,8 @@ efx_ev_qprefetch( #endif /* EFSYS_OPT_EV_PREFETCH */ +#define EFX_EV_BATCH 8 + void efx_ev_qpoll( __in efx_evq_t *eep, @@ -366,14 +383,14 @@ efx_ev_qpoll( __in const efx_ev_callbacks_t *eecp, __in_opt void *arg) { - EFSYS_ASSERT3U(eep->ee_magic, ==, EFX_EVQ_MAGIC); + efx_qword_t ev[EFX_EV_BATCH]; + unsigned int batch; + unsigned int total; + unsigned int count; + unsigned int index; + size_t offset; - /* - * FIXME: Huntington will require support for hardware event batching - * and merging, which will need a different ev_qpoll implementation. - * - * Without those features the Falcon/Siena code can be used unchanged. - */ + /* Ensure events codes match for EF10 (Huntington/Medford) and Siena */ EFX_STATIC_ASSERT(ESF_DZ_EV_CODE_LBN == FSF_AZ_EV_CODE_LBN); EFX_STATIC_ASSERT(ESF_DZ_EV_CODE_WIDTH == FSF_AZ_EV_CODE_WIDTH); @@ -386,7 +403,125 @@ efx_ev_qpoll( EFX_STATIC_ASSERT(ESE_DZ_EV_CODE_MCDI_EV == FSE_AZ_EV_CODE_MCDI_EVRESPONSE); #endif - siena_ev_qpoll(eep, countp, eecp, arg); + + EFSYS_ASSERT3U(eep->ee_magic, ==, EFX_EVQ_MAGIC); + EFSYS_ASSERT(countp != NULL); + EFSYS_ASSERT(eecp != NULL); + + count = *countp; + do { + /* Read up until the end of the batch period */ + batch = EFX_EV_BATCH - (count & (EFX_EV_BATCH - 1)); + offset = (count & eep->ee_mask) * sizeof (efx_qword_t); + for (total = 0; total < batch; ++total) { + EFSYS_MEM_READQ(eep->ee_esmp, offset, &(ev[total])); + + if (!EFX_EV_PRESENT(ev[total])) + break; + + EFSYS_PROBE3(event, unsigned int, eep->ee_index, + uint32_t, EFX_QWORD_FIELD(ev[total], EFX_DWORD_1), + uint32_t, EFX_QWORD_FIELD(ev[total], EFX_DWORD_0)); + + offset += sizeof (efx_qword_t); + } + +#if EFSYS_OPT_EV_PREFETCH && (EFSYS_OPT_EV_PREFETCH_PERIOD > 1) + /* + * Prefetch the next batch when we get within PREFETCH_PERIOD + * of a completed batch. If the batch is smaller, then prefetch + * immediately. + */ + if (total == batch && total < EFSYS_OPT_EV_PREFETCH_PERIOD) + EFSYS_MEM_PREFETCH(eep->ee_esmp, offset); +#endif /* EFSYS_OPT_EV_PREFETCH */ + + /* Process the batch of events */ + for (index = 0; index < total; ++index) { + boolean_t should_abort; + uint32_t code; + +#if EFSYS_OPT_EV_PREFETCH + /* Prefetch if we've now reached the batch period */ + if (total == batch && + index + EFSYS_OPT_EV_PREFETCH_PERIOD == total) { + offset = (count + batch) & eep->ee_mask; + offset *= sizeof (efx_qword_t); + + EFSYS_MEM_PREFETCH(eep->ee_esmp, offset); + } +#endif /* EFSYS_OPT_EV_PREFETCH */ + + EFX_EV_QSTAT_INCR(eep, EV_ALL); + + code = EFX_QWORD_FIELD(ev[index], FSF_AZ_EV_CODE); + switch (code) { + case FSE_AZ_EV_CODE_RX_EV: + should_abort = eep->ee_rx(eep, + &(ev[index]), eecp, arg); + break; + case FSE_AZ_EV_CODE_TX_EV: + should_abort = eep->ee_tx(eep, + &(ev[index]), eecp, arg); + break; + case FSE_AZ_EV_CODE_DRIVER_EV: + should_abort = eep->ee_driver(eep, + &(ev[index]), eecp, arg); + break; + case FSE_AZ_EV_CODE_DRV_GEN_EV: + should_abort = eep->ee_drv_gen(eep, + &(ev[index]), eecp, arg); + break; +#if EFSYS_OPT_MCDI + case FSE_AZ_EV_CODE_MCDI_EVRESPONSE: + should_abort = eep->ee_mcdi(eep, + &(ev[index]), eecp, arg); + break; +#endif + case FSE_AZ_EV_CODE_GLOBAL_EV: + if (eep->ee_global) { + should_abort = eep->ee_global(eep, + &(ev[index]), eecp, arg); + break; + } + /* else fallthrough */ + default: + EFSYS_PROBE3(bad_event, + unsigned int, eep->ee_index, + uint32_t, + EFX_QWORD_FIELD(ev[index], EFX_DWORD_1), + uint32_t, + EFX_QWORD_FIELD(ev[index], EFX_DWORD_0)); + + EFSYS_ASSERT(eecp->eec_exception != NULL); + (void) eecp->eec_exception(arg, + EFX_EXCEPTION_EV_ERROR, code); + should_abort = B_TRUE; + } + if (should_abort) { + /* Ignore subsequent events */ + total = index + 1; + break; + } + } + + /* + * Now that the hardware has most likely moved onto dma'ing + * into the next cache line, clear the processed events. Take + * care to only clear out events that we've processed + */ + EFX_SET_QWORD(ev[0]); + offset = (count & eep->ee_mask) * sizeof (efx_qword_t); + for (index = 0; index < total; ++index) { + EFSYS_MEM_WRITEQ(eep->ee_esmp, offset, &(ev[0])); + offset += sizeof (efx_qword_t); + } + + count += total; + + } while (total == batch); + + *countp = count; } void @@ -437,11 +572,19 @@ efx_ev_qmoderate( EFSYS_ASSERT3U(eep->ee_magic, ==, EFX_EVQ_MAGIC); - if ((rc = eevop->eevo_qmoderate(eep, us)) != 0) + if ((eep->ee_flags & EFX_EVQ_FLAGS_NOTIFY_MASK) == + EFX_EVQ_FLAGS_NOTIFY_DISABLED) { + rc = EINVAL; goto fail1; + } + + if ((rc = eevop->eevo_qmoderate(eep, us)) != 0) + goto fail2; return (0); +fail2: + EFSYS_PROBE(fail2); fail1: EFSYS_PROBE1(fail1, efx_rc_t, rc); return (rc); @@ -953,7 +1096,7 @@ siena_ev_mcdi( __in_opt void *arg) { efx_nic_t *enp = eep->ee_enp; - unsigned code; + unsigned int code; boolean_t should_abort = B_FALSE; EFSYS_ASSERT3U(enp->en_family, ==, EFX_FAMILY_SIENA); @@ -1069,141 +1212,6 @@ siena_ev_qprime( return (0); } -#define EFX_EV_BATCH 8 - -static void -siena_ev_qpoll( - __in efx_evq_t *eep, - __inout unsigned int *countp, - __in const efx_ev_callbacks_t *eecp, - __in_opt void *arg) -{ - efx_qword_t ev[EFX_EV_BATCH]; - unsigned int batch; - unsigned int total; - unsigned int count; - unsigned int index; - size_t offset; - - EFSYS_ASSERT(countp != NULL); - EFSYS_ASSERT(eecp != NULL); - - count = *countp; - do { - /* Read up until the end of the batch period */ - batch = EFX_EV_BATCH - (count & (EFX_EV_BATCH - 1)); - offset = (count & eep->ee_mask) * sizeof (efx_qword_t); - for (total = 0; total < batch; ++total) { - EFSYS_MEM_READQ(eep->ee_esmp, offset, &(ev[total])); - - if (!EFX_EV_PRESENT(ev[total])) - break; - - EFSYS_PROBE3(event, unsigned int, eep->ee_index, - uint32_t, EFX_QWORD_FIELD(ev[total], EFX_DWORD_1), - uint32_t, EFX_QWORD_FIELD(ev[total], EFX_DWORD_0)); - - offset += sizeof (efx_qword_t); - } - -#if EFSYS_OPT_EV_PREFETCH && (EFSYS_OPT_EV_PREFETCH_PERIOD > 1) - /* - * Prefetch the next batch when we get within PREFETCH_PERIOD - * of a completed batch. If the batch is smaller, then prefetch - * immediately. - */ - if (total == batch && total < EFSYS_OPT_EV_PREFETCH_PERIOD) - EFSYS_MEM_PREFETCH(eep->ee_esmp, offset); -#endif /* EFSYS_OPT_EV_PREFETCH */ - - /* Process the batch of events */ - for (index = 0; index < total; ++index) { - boolean_t should_abort; - uint32_t code; - -#if EFSYS_OPT_EV_PREFETCH - /* Prefetch if we've now reached the batch period */ - if (total == batch && - index + EFSYS_OPT_EV_PREFETCH_PERIOD == total) { - offset = (count + batch) & eep->ee_mask; - offset *= sizeof (efx_qword_t); - - EFSYS_MEM_PREFETCH(eep->ee_esmp, offset); - } -#endif /* EFSYS_OPT_EV_PREFETCH */ - - EFX_EV_QSTAT_INCR(eep, EV_ALL); - - code = EFX_QWORD_FIELD(ev[index], FSF_AZ_EV_CODE); - switch (code) { - case FSE_AZ_EV_CODE_RX_EV: - should_abort = eep->ee_rx(eep, - &(ev[index]), eecp, arg); - break; - case FSE_AZ_EV_CODE_TX_EV: - should_abort = eep->ee_tx(eep, - &(ev[index]), eecp, arg); - break; - case FSE_AZ_EV_CODE_DRIVER_EV: - should_abort = eep->ee_driver(eep, - &(ev[index]), eecp, arg); - break; - case FSE_AZ_EV_CODE_DRV_GEN_EV: - should_abort = eep->ee_drv_gen(eep, - &(ev[index]), eecp, arg); - break; -#if EFSYS_OPT_MCDI - case FSE_AZ_EV_CODE_MCDI_EVRESPONSE: - should_abort = eep->ee_mcdi(eep, - &(ev[index]), eecp, arg); - break; -#endif - case FSE_AZ_EV_CODE_GLOBAL_EV: - if (eep->ee_global) { - should_abort = eep->ee_global(eep, - &(ev[index]), eecp, arg); - break; - } - /* else fallthrough */ - default: - EFSYS_PROBE3(bad_event, - unsigned int, eep->ee_index, - uint32_t, - EFX_QWORD_FIELD(ev[index], EFX_DWORD_1), - uint32_t, - EFX_QWORD_FIELD(ev[index], EFX_DWORD_0)); - - EFSYS_ASSERT(eecp->eec_exception != NULL); - (void) eecp->eec_exception(arg, - EFX_EXCEPTION_EV_ERROR, code); - should_abort = B_TRUE; - } - if (should_abort) { - /* Ignore subsequent events */ - total = index + 1; - break; - } - } - - /* - * Now that the hardware has most likely moved onto dma'ing - * into the next cache line, clear the processed events. Take - * care to only clear out events that we've processed - */ - EFX_SET_QWORD(ev[0]); - offset = (count & eep->ee_mask) * sizeof (efx_qword_t); - for (index = 0; index < total; ++index) { - EFSYS_MEM_WRITEQ(eep->ee_esmp, offset, &(ev[0])); - offset += sizeof (efx_qword_t); - } - - count += total; - - } while (total == batch); - - *countp = count; -} - static void siena_ev_qpost( __in efx_evq_t *eep, @@ -1279,12 +1287,14 @@ siena_ev_qcreate( __in size_t n, __in uint32_t id, __in uint32_t us, + __in uint32_t flags, __in efx_evq_t *eep) { efx_nic_cfg_t *encp = &(enp->en_nic_cfg); uint32_t size; efx_oword_t oword; efx_rc_t rc; + boolean_t notify_mode; _NOTE(ARGUNUSED(esmp)) @@ -1325,8 +1335,13 @@ siena_ev_qcreate( eep->ee_mcdi = siena_ev_mcdi; #endif /* EFSYS_OPT_MCDI */ + notify_mode = ((flags & EFX_EVQ_FLAGS_NOTIFY_MASK) != + EFX_EVQ_FLAGS_NOTIFY_INTERRUPT); + /* Set up the new event queue */ - EFX_POPULATE_OWORD_1(oword, FRF_CZ_TIMER_Q_EN, 1); + EFX_POPULATE_OWORD_3(oword, FRF_CZ_TIMER_Q_EN, 1, + FRF_CZ_HOST_NOTIFY_MODE, notify_mode, + FRF_CZ_TIMER_MODE, FFE_CZ_TIMER_MODE_DIS); EFX_BAR_TBL_WRITEO(enp, FR_AZ_TIMER_TBL, index, &oword, B_TRUE); EFX_POPULATE_OWORD_3(oword, FRF_AZ_EVQ_EN, 1, FRF_AZ_EVQ_SIZE, size, @@ -1357,8 +1372,8 @@ fail1: #if EFSYS_OPT_QSTATS #if EFSYS_OPT_NAMES -/* START MKCONFIG GENERATED EfxEventQueueStatNamesBlock b693ddf85aee1bfd */ -static const char *__efx_ev_qstat_name[] = { +/* START MKCONFIG GENERATED EfxEventQueueStatNamesBlock c0f3bc5083b40532 */ +static const char * const __efx_ev_qstat_name[] = { "all", "rx", "rx_ok", diff --git a/sys/dev/sfxge/common/efx_filter.c b/sys/dev/sfxge/common/efx_filter.c index 242a772..49770d3 100644 --- a/sys/dev/sfxge/common/efx_filter.c +++ b/sys/dev/sfxge/common/efx_filter.c @@ -64,9 +64,10 @@ siena_filter_delete( static __checkReturn efx_rc_t siena_filter_supported_filters( - __in efx_nic_t *enp, - __out uint32_t *list, - __out size_t *length); + __in efx_nic_t *enp, + __out_ecount(buffer_length) uint32_t *buffer, + __in size_t buffer_length, + __out size_t *list_lengthp); #endif /* EFSYS_OPT_SIENA */ @@ -152,9 +153,6 @@ efx_filter_init( const efx_filter_ops_t *efop; efx_rc_t rc; - /* Check that efx_filter_spec_t is 64 bytes. */ - EFX_STATIC_ASSERT(sizeof (efx_filter_spec_t) == 64); - EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_PROBE); EFSYS_ASSERT(!(enp->en_mod_flags & EFX_MOD_FILTER)); @@ -215,11 +213,22 @@ efx_filter_fini( enp->en_mod_flags &= ~EFX_MOD_FILTER; } +/* + * Query the possible combinations of match flags which can be filtered on. + * These are returned as a list, of which each 32 bit element is a bitmask + * formed of EFX_FILTER_MATCH flags. + * + * The combinations are ordered in priority from highest to lowest. + * + * If the provided buffer is too short to hold the list, the call with fail with + * ENOSPC and *list_lengthp will be set to the buffer length required. + */ __checkReturn efx_rc_t efx_filter_supported_filters( - __in efx_nic_t *enp, - __out uint32_t *list, - __out size_t *length) + __in efx_nic_t *enp, + __out_ecount(buffer_length) uint32_t *buffer, + __in size_t buffer_length, + __out size_t *list_lengthp) { efx_rc_t rc; @@ -228,11 +237,20 @@ efx_filter_supported_filters( EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_FILTER); EFSYS_ASSERT(enp->en_efop->efo_supported_filters != NULL); - if ((rc = enp->en_efop->efo_supported_filters(enp, list, length)) != 0) + if (buffer == NULL) { + rc = EINVAL; goto fail1; + } + + rc = enp->en_efop->efo_supported_filters(enp, buffer, buffer_length, + list_lengthp); + if (rc != 0) + goto fail2; return (0); +fail2: + EFSYS_PROBE(fail2); fail1: EFSYS_PROBE1(fail1, efx_rc_t, rc); @@ -276,7 +294,7 @@ fail1: efx_filter_spec_init_rx( __out efx_filter_spec_t *spec, __in efx_filter_priority_t priority, - __in efx_filter_flag_t flags, + __in efx_filter_flags_t flags, __in efx_rxq_t *erp) { EFSYS_ASSERT3P(spec, !=, NULL); @@ -390,7 +408,7 @@ efx_filter_spec_set_uc_def( { EFSYS_ASSERT3P(spec, !=, NULL); - spec->efs_match_flags |= EFX_FILTER_MATCH_LOC_MAC_IG; + spec->efs_match_flags |= EFX_FILTER_MATCH_UNKNOWN_UCAST_DST; return (0); } @@ -403,8 +421,7 @@ efx_filter_spec_set_mc_def( { EFSYS_ASSERT3P(spec, !=, NULL); - spec->efs_match_flags |= EFX_FILTER_MATCH_LOC_MAC_IG; - spec->efs_loc_mac[0] = 1; + spec->efs_match_flags |= EFX_FILTER_MATCH_UNKNOWN_MCAST_DST; return (0); } @@ -970,7 +987,7 @@ siena_filter_search( __out int *filter_index, __out unsigned int *depth_required) { - unsigned hash, incr, filter_idx, depth; + unsigned int hash, incr, filter_idx, depth; hash = siena_filter_tbl_hash(key); incr = siena_filter_tbl_increment(key); @@ -1030,7 +1047,7 @@ siena_filter_tbl_clear( siena_filter_t *sfp = enp->en_filter.ef_siena_filter; siena_filter_tbl_t *sftp = &sfp->sf_tbl[tbl_id]; int index; - int state; + efsys_lock_state_t state; EFSYS_LOCK(enp->en_eslp, state); @@ -1178,7 +1195,8 @@ siena_filter_restore( siena_filter_spec_t *spec; efx_oword_t filter; int filter_idx; - int state; + efsys_lock_state_t state; + uint32_t key; efx_rc_t rc; EFSYS_LOCK(enp->en_eslp, state); @@ -1192,8 +1210,10 @@ siena_filter_restore( continue; spec = &sftp->sft_spec[filter_idx]; - if ((rc = siena_filter_build(&filter, spec)) != 0) + if ((key = siena_filter_build(&filter, spec)) == 0) { + rc = EINVAL; goto fail1; + } if ((rc = siena_filter_push_entry(enp, spec->sfs_type, filter_idx, &filter)) != 0) goto fail2; @@ -1233,7 +1253,7 @@ siena_filter_add( efx_oword_t filter; int filter_idx; unsigned int depth; - int state; + efsys_lock_state_t state; uint32_t key; @@ -1314,7 +1334,7 @@ siena_filter_delete( efx_oword_t filter; int filter_idx; unsigned int depth; - int state; + efsys_lock_state_t state; uint32_t key; EFSYS_ASSERT3P(spec, !=, NULL); @@ -1350,23 +1370,20 @@ fail1: return (rc); } -#define MAX_SUPPORTED 4 +#define SIENA_MAX_SUPPORTED_MATCHES 4 static __checkReturn efx_rc_t siena_filter_supported_filters( - __in efx_nic_t *enp, - __out uint32_t *list, - __out size_t *length) + __in efx_nic_t *enp, + __out_ecount(buffer_length) uint32_t *buffer, + __in size_t buffer_length, + __out size_t *list_lengthp) { - int index = 0; - uint32_t rx_matches[MAX_SUPPORTED]; + uint32_t index = 0; + uint32_t rx_matches[SIENA_MAX_SUPPORTED_MATCHES]; + size_t list_length; efx_rc_t rc; - if (list == NULL) { - rc = EINVAL; - goto fail1; - } - rx_matches[index++] = EFX_FILTER_MATCH_ETHER_TYPE | EFX_FILTER_MATCH_IP_PROTO | EFX_FILTER_MATCH_LOC_HOST | EFX_FILTER_MATCH_LOC_PORT | @@ -1383,14 +1400,22 @@ siena_filter_supported_filters( rx_matches[index++] = EFX_FILTER_MATCH_LOC_MAC; } - EFSYS_ASSERT3U(index, <=, MAX_SUPPORTED); + EFSYS_ASSERT3U(index, <=, SIENA_MAX_SUPPORTED_MATCHES); + list_length = index; - *length = index; - memcpy(list, rx_matches, *length); + *list_lengthp = list_length; + + if (buffer_length < list_length) { + rc = ENOSPC; + goto fail1; + } + + memcpy(buffer, rx_matches, list_length * sizeof (rx_matches[0])); return (0); fail1: + EFSYS_PROBE1(fail1, efx_rc_t, rc); return (rc); } diff --git a/sys/dev/sfxge/common/efx_impl.h b/sys/dev/sfxge/common/efx_impl.h index 18812a5..a2963e5 100644 --- a/sys/dev/sfxge/common/efx_impl.h +++ b/sys/dev/sfxge/common/efx_impl.h @@ -74,7 +74,6 @@ extern "C" { #define EFX_MOD_TX 0x00000100 #define EFX_MOD_PORT 0x00000200 #define EFX_MOD_MON 0x00000400 -#define EFX_MOD_WOL 0x00000800 #define EFX_MOD_FILTER 0x00001000 #define EFX_MOD_LIC 0x00002000 @@ -95,7 +94,7 @@ typedef struct efx_ev_ops_s { void (*eevo_fini)(efx_nic_t *); efx_rc_t (*eevo_qcreate)(efx_nic_t *, unsigned int, efsys_mem_t *, size_t, uint32_t, - uint32_t, efx_evq_t *); + uint32_t, uint32_t, efx_evq_t *); void (*eevo_qdestroy)(efx_evq_t *); efx_rc_t (*eevo_qprime)(efx_evq_t *, unsigned int); void (*eevo_qpost)(efx_evq_t *, uint16_t); @@ -124,7 +123,7 @@ typedef struct efx_tx_ops_s { void (*etxo_qenable)(efx_txq_t *); efx_rc_t (*etxo_qpio_enable)(efx_txq_t *); void (*etxo_qpio_disable)(efx_txq_t *); - efx_rc_t (*etxo_qpio_write)(efx_txq_t *,uint8_t *, size_t, + efx_rc_t (*etxo_qpio_write)(efx_txq_t *, uint8_t *, size_t, size_t); efx_rc_t (*etxo_qpio_post)(efx_txq_t *, size_t, unsigned int, unsigned int *); @@ -194,6 +193,7 @@ typedef struct efx_mac_ops_s { efx_loopback_type_t); #endif /* EFSYS_OPT_LOOPBACK */ #if EFSYS_OPT_MAC_STATS + efx_rc_t (*emo_stats_get_mask)(efx_nic_t *, uint32_t *, size_t); efx_rc_t (*emo_stats_upload)(efx_nic_t *, efsys_mem_t *); efx_rc_t (*emo_stats_periodic)(efx_nic_t *, efsys_mem_t *, uint16_t, boolean_t); @@ -230,7 +230,8 @@ typedef struct efx_filter_ops_s { efx_rc_t (*efo_add)(efx_nic_t *, efx_filter_spec_t *, boolean_t may_replace); efx_rc_t (*efo_delete)(efx_nic_t *, efx_filter_spec_t *); - efx_rc_t (*efo_supported_filters)(efx_nic_t *, uint32_t *, size_t *); + efx_rc_t (*efo_supported_filters)(efx_nic_t *, uint32_t *, + size_t, size_t *); efx_rc_t (*efo_reconfigure)(efx_nic_t *, uint8_t const *, boolean_t, boolean_t, boolean_t, boolean_t, uint8_t const *, uint32_t); @@ -252,7 +253,7 @@ efx_filter_reconfigure( typedef struct efx_port_s { efx_mac_type_t ep_mac_type; - uint32_t ep_phy_type; + uint32_t ep_phy_type; uint8_t ep_port; uint32_t ep_mac_pdu; uint8_t ep_mac_addr[6]; @@ -426,7 +427,10 @@ typedef struct efx_mcdi_ops_s { boolean_t (*emco_poll_response)(efx_nic_t *); void (*emco_read_response)(efx_nic_t *, void *, size_t, size_t); void (*emco_fini)(efx_nic_t *); - efx_rc_t (*emco_feature_supported)(efx_nic_t *, efx_mcdi_feature_id_t, boolean_t *); + efx_rc_t (*emco_feature_supported)(efx_nic_t *, + efx_mcdi_feature_id_t, boolean_t *); + void (*emco_get_timeout)(efx_nic_t *, efx_mcdi_req_t *, + uint32_t *); } efx_mcdi_ops_t; typedef struct efx_mcdi_s { @@ -452,7 +456,7 @@ typedef struct efx_nvram_ops_s { unsigned int, size_t); efx_rc_t (*envo_partn_write)(efx_nic_t *, uint32_t, unsigned int, caddr_t, size_t); - void (*envo_partn_rw_finish)(efx_nic_t *, uint32_t); + efx_rc_t (*envo_partn_rw_finish)(efx_nic_t *, uint32_t); efx_rc_t (*envo_partn_get_version)(efx_nic_t *, uint32_t, uint32_t *, uint16_t *); efx_rc_t (*envo_partn_set_version)(efx_nic_t *, uint32_t, @@ -540,7 +544,8 @@ efx_mcdi_nvram_write( efx_mcdi_nvram_update_finish( __in efx_nic_t *enp, __in uint32_t partn, - __in boolean_t reboot); + __in boolean_t reboot, + __out_opt uint32_t *resultp); #if EFSYS_OPT_DIAG @@ -564,7 +569,7 @@ typedef struct efx_lic_ops_s { efx_rc_t (*elo_find_start) (efx_nic_t *, caddr_t, size_t, uint32_t *); efx_rc_t (*elo_find_end)(efx_nic_t *, caddr_t, size_t, - uint32_t , uint32_t *); + uint32_t, uint32_t *); boolean_t (*elo_find_key)(efx_nic_t *, caddr_t, size_t, uint32_t, uint32_t *, uint32_t *); boolean_t (*elo_validate_key)(efx_nic_t *, @@ -600,7 +605,7 @@ struct efx_nic_s { uint32_t en_features; efsys_identifier_t *en_esip; efsys_lock_t *en_eslp; - efsys_bar_t *en_esbp; + efsys_bar_t *en_esbp; unsigned int en_mod_flags; unsigned int en_reset_flags; efx_nic_cfg_t en_nic_cfg; @@ -709,6 +714,8 @@ struct efx_evq_s { #endif /* EFSYS_OPT_MCDI */ efx_evq_rxq_state_t ee_rxq_state[EFX_EV_RX_NLABELS]; + + uint32_t ee_flags; }; #define EFX_EVQ_MAGIC 0x08081997 @@ -801,7 +808,7 @@ struct efx_txq_s { #else #define EFX_CHECK_REG(_enp, _reg) do { \ _NOTE(CONSTANTCONDITION) \ - } while(B_FALSE) + } while (B_FALSE) #endif #define EFX_BAR_READD(_enp, _reg, _edp, _lock) \ @@ -913,7 +920,7 @@ struct efx_txq_s { uint32_t, (_edp)->ed_u32[0]); \ EFSYS_BAR_WRITED((_enp)->en_esbp, \ (_reg ## _OFST + \ - (2 * sizeof (efx_dword_t)) + \ + (2 * sizeof (efx_dword_t)) + \ ((_index) * _reg ## _STEP)), \ (_edp), (_lock)); \ _NOTE(CONSTANTCONDITION) \ @@ -928,7 +935,7 @@ struct efx_txq_s { uint32_t, (_edp)->ed_u32[0]); \ EFSYS_BAR_WRITED((_enp)->en_esbp, \ (_reg ## _OFST + \ - (3 * sizeof (efx_dword_t)) + \ + (3 * sizeof (efx_dword_t)) + \ ((_index) * _reg ## _STEP)), \ (_edp), (_lock)); \ _NOTE(CONSTANTCONDITION) \ @@ -1155,6 +1162,27 @@ efx_mcdi_get_workarounds( #endif /* EFSYS_OPT_MCDI */ +#if EFSYS_OPT_MAC_STATS + +/* + * Closed range of stats (i.e. the first and the last are included). + * The last must be greater or equal (if the range is one item only) to + * the first. + */ +struct efx_mac_stats_range { + efx_mac_stat_t first; + efx_mac_stat_t last; +}; + +extern efx_rc_t +efx_mac_stats_mask_add_ranges( + __inout_bcount(mask_size) uint32_t *maskp, + __in size_t mask_size, + __in_ecount(rng_count) const struct efx_mac_stats_range *rngp, + __in unsigned int rng_count); + +#endif /* EFSYS_OPT_MAC_STATS */ + #ifdef __cplusplus } #endif diff --git a/sys/dev/sfxge/common/efx_lic.c b/sys/dev/sfxge/common/efx_lic.c index c1c05e2..b41a764 100644 --- a/sys/dev/sfxge/common/efx_lic.c +++ b/sys/dev/sfxge/common/efx_lic.c @@ -456,7 +456,7 @@ fail1: * Value (V): L bytes - payload */ #define EFX_LICENSE_V1V2_PAYLOAD_LENGTH_MAX (256) -#define EFX_LICENSE_V1V2_HEADER_LENGTH (2*sizeof(uint16_t)) +#define EFX_LICENSE_V1V2_HEADER_LENGTH (2 * sizeof(uint16_t)) __checkReturn efx_rc_t efx_lic_v1v2_find_start( @@ -509,8 +509,8 @@ efx_lic_v1v2_find_key( if ((size_t)buffer_size - offset < EFX_LICENSE_V1V2_HEADER_LENGTH) goto fail1; - tlv_type = __LE_TO_CPU_16(((uint16_t*)&bufferp[offset])[0]); - tlv_length = __LE_TO_CPU_16(((uint16_t*)&bufferp[offset])[1]); + tlv_type = __LE_TO_CPU_16(((uint16_t *)&bufferp[offset])[0]); + tlv_length = __LE_TO_CPU_16(((uint16_t *)&bufferp[offset])[1]); if ((tlv_length > EFX_LICENSE_V1V2_PAYLOAD_LENGTH_MAX) || (tlv_type == 0 && tlv_length == 0)) { found = B_FALSE; @@ -543,8 +543,8 @@ efx_lic_v1v2_validate_key( goto fail1; } - tlv_type = __LE_TO_CPU_16(((uint16_t*)keyp)[0]); - tlv_length = __LE_TO_CPU_16(((uint16_t*)keyp)[1]); + tlv_type = __LE_TO_CPU_16(((uint16_t *)keyp)[0]); + tlv_length = __LE_TO_CPU_16(((uint16_t *)keyp)[1]); if (tlv_length > EFX_LICENSE_V1V2_PAYLOAD_LENGTH_MAX) { goto fail2; @@ -625,9 +625,9 @@ efx_lic_v1v2_write_key( EFSYS_ASSERT(length <= (EFX_LICENSE_V1V2_PAYLOAD_LENGTH_MAX + EFX_LICENSE_V1V2_HEADER_LENGTH)); - // Ensure space for terminator remains + /* Ensure space for terminator remains */ if ((offset + length) > - (buffer_size - EFX_LICENSE_V1V2_HEADER_LENGTH) ) { + (buffer_size - EFX_LICENSE_V1V2_HEADER_LENGTH)) { rc = ENOSPC; goto fail1; } @@ -662,7 +662,7 @@ efx_lic_v1v2_delete_key( _NOTE(ARGUNUSED(enp)) EFSYS_ASSERT(end <= buffer_size); - // Shift everything after the key down + /* Shift everything after the key down */ memmove(bufferp + offset, bufferp + move_start, move_length); *deltap = length; @@ -681,7 +681,7 @@ efx_lic_v1v2_create_partition( _NOTE(ARGUNUSED(enp)) EFSYS_ASSERT(EFX_LICENSE_V1V2_HEADER_LENGTH <= buffer_size); - // Write terminator + /* Write terminator */ memset(bufferp, '\0', EFX_LICENSE_V1V2_HEADER_LENGTH); return (0); } @@ -1082,9 +1082,10 @@ efx_mcdi_licensing_v3_get_id( } else { /* Shift ID down to start of buffer */ memmove(bufferp, - bufferp+MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_OFST, - *lengthp); - memset(bufferp+(*lengthp), 0, MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_OFST); + bufferp + MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_OFST, + *lengthp); + memset(bufferp + (*lengthp), 0, + MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_OFST); } return (0); @@ -1154,7 +1155,7 @@ efx_lic_v3_validate_key( __in uint32_t length ) { - // Check key is a valid V3 key + /* Check key is a valid V3 key */ uint8_t key_type; uint8_t key_length; @@ -1168,8 +1169,8 @@ efx_lic_v3_validate_key( goto fail2; } - key_type = ((uint8_t*)keyp)[0]; - key_length = ((uint8_t*)keyp)[1]; + key_type = ((uint8_t *)keyp)[0]; + key_length = ((uint8_t *)keyp)[1]; if (key_type < 3) { goto fail3; @@ -1271,7 +1272,7 @@ efx_lic_v3_create_partition( { efx_rc_t rc; - // Construct empty partition + /* Construct empty partition */ if ((rc = ef10_nvram_buffer_create(enp, NVRAM_PARTITION_TYPE_LICENSE, bufferp, buffer_size)) != 0) { @@ -1302,7 +1303,7 @@ efx_lic_v3_finish_partition( goto fail1; } - // Validate completed partition + /* Validate completed partition */ if ((rc = ef10_nvram_buffer_validate(enp, NVRAM_PARTITION_TYPE_LICENSE, bufferp, buffer_size)) != 0) { goto fail2; diff --git a/sys/dev/sfxge/common/efx_mac.c b/sys/dev/sfxge/common/efx_mac.c index 0b17351..fa49e98 100644 --- a/sys/dev/sfxge/common/efx_mac.c +++ b/sys/dev/sfxge/common/efx_mac.c @@ -57,6 +57,7 @@ static const efx_mac_ops_t __efx_siena_mac_ops = { siena_mac_loopback_set, /* emo_loopback_set */ #endif /* EFSYS_OPT_LOOPBACK */ #if EFSYS_OPT_MAC_STATS + siena_mac_stats_get_mask, /* emo_stats_get_mask */ efx_mcdi_mac_stats_upload, /* emo_stats_upload */ efx_mcdi_mac_stats_periodic, /* emo_stats_periodic */ siena_mac_stats_update /* emo_stats_update */ @@ -80,6 +81,7 @@ static const efx_mac_ops_t __efx_ef10_mac_ops = { ef10_mac_loopback_set, /* emo_loopback_set */ #endif /* EFSYS_OPT_LOOPBACK */ #if EFSYS_OPT_MAC_STATS + ef10_mac_stats_get_mask, /* emo_stats_get_mask */ efx_mcdi_mac_stats_upload, /* emo_stats_upload */ efx_mcdi_mac_stats_periodic, /* emo_stats_periodic */ ef10_mac_stats_update /* emo_stats_update */ @@ -515,8 +517,8 @@ efx_mac_filter_default_rxq_clear( #if EFSYS_OPT_NAMES -/* START MKCONFIG GENERATED EfxMacStatNamesBlock 054d43a31d2d7a45 */ -static const char *__efx_mac_stat_name[] = { +/* START MKCONFIG GENERATED EfxMacStatNamesBlock c11b91b42f922516 */ +static const char * const __efx_mac_stat_name[] = { "rx_octets", "rx_pkts", "rx_unicst_pkts", @@ -615,6 +617,105 @@ efx_mac_stat_name( #endif /* EFSYS_OPT_NAMES */ +static efx_rc_t +efx_mac_stats_mask_add_range( + __inout_bcount(mask_size) uint32_t *maskp, + __in size_t mask_size, + __in const struct efx_mac_stats_range *rngp) +{ + unsigned int mask_npages = mask_size / sizeof (*maskp); + unsigned int el; + unsigned int el_min; + unsigned int el_max; + unsigned int low; + unsigned int high; + unsigned int width; + efx_rc_t rc; + + if ((mask_npages * EFX_MAC_STATS_MASK_BITS_PER_PAGE) <= + (unsigned int)rngp->last) { + rc = EINVAL; + goto fail1; + } + + EFSYS_ASSERT3U(rngp->first, <=, rngp->last); + EFSYS_ASSERT3U(rngp->last, <, EFX_MAC_NSTATS); + + for (el = 0; el < mask_npages; ++el) { + el_min = el * EFX_MAC_STATS_MASK_BITS_PER_PAGE; + el_max = + el_min + (EFX_MAC_STATS_MASK_BITS_PER_PAGE - 1); + if ((unsigned int)rngp->first > el_max || + (unsigned int)rngp->last < el_min) + continue; + low = MAX((unsigned int)rngp->first, el_min); + high = MIN((unsigned int)rngp->last, el_max); + width = high - low + 1; + maskp[el] |= + (width == EFX_MAC_STATS_MASK_BITS_PER_PAGE) ? + (~0ULL) : (((1ULL << width) - 1) << (low - el_min)); + } + + return (0); + +fail1: + EFSYS_PROBE1(fail1, efx_rc_t, rc); + + return (rc); +} + + efx_rc_t +efx_mac_stats_mask_add_ranges( + __inout_bcount(mask_size) uint32_t *maskp, + __in size_t mask_size, + __in_ecount(rng_count) const struct efx_mac_stats_range *rngp, + __in unsigned int rng_count) +{ + unsigned int i; + efx_rc_t rc; + + for (i = 0; i < rng_count; ++i) { + if ((rc = efx_mac_stats_mask_add_range(maskp, mask_size, + &rngp[i])) != 0) + goto fail1; + } + + return (0); + +fail1: + EFSYS_PROBE1(fail1, efx_rc_t, rc); + + return (rc); +} + + __checkReturn efx_rc_t +efx_mac_stats_get_mask( + __in efx_nic_t *enp, + __out_bcount(mask_size) uint32_t *maskp, + __in size_t mask_size) +{ + efx_port_t *epp = &(enp->en_port); + const efx_mac_ops_t *emop = epp->ep_emop; + efx_rc_t rc; + + EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); + EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_PROBE); + EFSYS_ASSERT(maskp != NULL); + EFSYS_ASSERT(mask_size % sizeof (maskp[0]) == 0); + + (void) memset(maskp, 0, mask_size); + + if ((rc = emop->emo_stats_get_mask(enp, maskp, mask_size)) != 0) + goto fail1; + + return (0); + +fail1: + EFSYS_PROBE1(fail1, efx_rc_t, rc); + + return (rc); +} + __checkReturn efx_rc_t efx_mac_stats_upload( __in efx_nic_t *enp, diff --git a/sys/dev/sfxge/common/efx_mcdi.c b/sys/dev/sfxge/common/efx_mcdi.c index d50e7c7..e4a918a 100644 --- a/sys/dev/sfxge/common/efx_mcdi.c +++ b/sys/dev/sfxge/common/efx_mcdi.c @@ -67,6 +67,7 @@ static const efx_mcdi_ops_t __efx_mcdi_siena_ops = { siena_mcdi_read_response, /* emco_read_response */ siena_mcdi_fini, /* emco_fini */ siena_mcdi_feature_supported, /* emco_feature_supported */ + siena_mcdi_get_timeout, /* emco_get_timeout */ }; #endif /* EFSYS_OPT_SIENA */ @@ -81,6 +82,7 @@ static const efx_mcdi_ops_t __efx_mcdi_ef10_ops = { ef10_mcdi_read_response, /* emco_read_response */ ef10_mcdi_fini, /* emco_fini */ ef10_mcdi_feature_supported, /* emco_feature_supported */ + ef10_mcdi_get_timeout, /* emco_get_timeout */ }; #endif /* EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD */ @@ -181,7 +183,7 @@ efx_mcdi_new_epoch( __in efx_nic_t *enp) { efx_mcdi_iface_t *emip = &(enp->en_mcdi.em_emip); - int state; + efsys_lock_state_t state; /* Start a new epoch (allow fresh MCDI requests to succeed) */ EFSYS_LOCK(enp->en_eslp, state); @@ -252,7 +254,7 @@ efx_mcdi_request_start( unsigned int seq; unsigned int xflags; boolean_t new_epoch; - int state; + efsys_lock_state_t state; EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_MCDI); @@ -500,7 +502,7 @@ efx_mcdi_request_poll( { efx_mcdi_iface_t *emip = &(enp->en_mcdi.em_emip); efx_mcdi_req_t *emrp; - int state; + efsys_lock_state_t state; efx_rc_t rc; EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); @@ -568,7 +570,7 @@ efx_mcdi_request_abort( efx_mcdi_iface_t *emip = &(enp->en_mcdi.em_emip); efx_mcdi_req_t *emrp; boolean_t aborted; - int state; + efsys_lock_state_t state; EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_MCDI); @@ -605,6 +607,17 @@ efx_mcdi_request_abort( return (aborted); } + void +efx_mcdi_get_timeout( + __in efx_nic_t *enp, + __in efx_mcdi_req_t *emrp, + __out uint32_t *timeoutp) +{ + const efx_mcdi_ops_t *emcop = enp->en_mcdi.em_emcop; + + emcop->emco_get_timeout(enp, emrp, timeoutp); +} + __checkReturn efx_rc_t efx_mcdi_request_errcode( __in unsigned int err) @@ -646,6 +659,8 @@ efx_mcdi_request_errcode( case MC_CMD_ERR_ENOSPC: return (ENOSPC); #endif + case MC_CMD_ERR_ERANGE: + return (ERANGE); case MC_CMD_ERR_ALLOC_FAIL: return (ENOMEM); @@ -741,7 +756,7 @@ efx_mcdi_ev_cpl( efx_mcdi_iface_t *emip = &(enp->en_mcdi.em_emip); const efx_mcdi_transport_t *emtp = enp->en_mcdi.em_emtp; efx_mcdi_req_t *emrp; - int state; + efsys_lock_state_t state; EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_MCDI); EFSYS_ASSERT3U(enp->en_features, &, EFX_FEATURE_MCDI); @@ -852,7 +867,7 @@ efx_mcdi_ev_death( const efx_mcdi_transport_t *emtp = enp->en_mcdi.em_emtp; efx_mcdi_req_t *emrp = NULL; boolean_t ev_cpl; - int state; + efsys_lock_state_t state; /* * The MCDI request (if there is one) has been terminated, either @@ -1182,11 +1197,9 @@ efx_mcdi_drv_attach( __in efx_nic_t *enp, __in boolean_t attach) { - efx_nic_cfg_t *encp = &(enp->en_nic_cfg); efx_mcdi_req_t req; uint8_t payload[MAX(MC_CMD_DRV_ATTACH_IN_LEN, MC_CMD_DRV_ATTACH_EXT_OUT_LEN)]; - uint32_t flags; efx_rc_t rc; (void) memset(payload, 0, sizeof (payload)); @@ -1217,36 +1230,8 @@ efx_mcdi_drv_attach( goto fail2; } - if (attach == B_FALSE) { - flags = 0; - } else if (enp->en_family == EFX_FAMILY_SIENA) { - efx_mcdi_iface_t *emip = &(enp->en_mcdi.em_emip); - - /* Create synthetic privileges for Siena functions */ - flags = EFX_NIC_FUNC_LINKCTRL | EFX_NIC_FUNC_TRUSTED; - if (emip->emi_port == 1) - flags |= EFX_NIC_FUNC_PRIMARY; - } else { - EFX_STATIC_ASSERT(EFX_NIC_FUNC_PRIMARY == - (1u << MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_PRIMARY)); - EFX_STATIC_ASSERT(EFX_NIC_FUNC_LINKCTRL == - (1u << MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_LINKCTRL)); - EFX_STATIC_ASSERT(EFX_NIC_FUNC_TRUSTED == - (1u << MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_TRUSTED)); - - /* Save function privilege flags (EF10 and later) */ - if (req.emr_out_length_used < MC_CMD_DRV_ATTACH_EXT_OUT_LEN) { - rc = EMSGSIZE; - goto fail3; - } - flags = MCDI_OUT_DWORD(req, DRV_ATTACH_EXT_OUT_FUNC_FLAGS); - } - encp->enc_func_flags = flags; - return (0); -fail3: - EFSYS_PROBE(fail3); fail2: EFSYS_PROBE(fail2); fail1: @@ -1728,8 +1713,7 @@ fail1: #if EFSYS_OPT_MAC_STATS -typedef enum efx_stats_action_e -{ +typedef enum efx_stats_action_e { EFX_STATS_CLEAR, EFX_STATS_UPLOAD, EFX_STATS_ENABLE_NOEVENTS, @@ -1766,7 +1750,7 @@ efx_mcdi_mac_stats( MAC_STATS_IN_PERIODIC_CHANGE, enable | events | disable, MAC_STATS_IN_PERIODIC_ENABLE, enable | events, MAC_STATS_IN_PERIODIC_NOEVENT, !events, - MAC_STATS_IN_PERIOD_MS, (enable | events) ? 1000: 0); + MAC_STATS_IN_PERIOD_MS, (enable | events) ? 1000 : 0); if (esmp != NULL) { int bytes = MC_CMD_MAC_NSTATS * sizeof (uint64_t); diff --git a/sys/dev/sfxge/common/efx_mon.c b/sys/dev/sfxge/common/efx_mon.c index 13aedac..5cbb455 100644 --- a/sys/dev/sfxge/common/efx_mon.c +++ b/sys/dev/sfxge/common/efx_mon.c @@ -40,7 +40,7 @@ __FBSDID("$FreeBSD$"); #if EFSYS_OPT_NAMES -static const char *__efx_mon_name[] = { +static const char * const __efx_mon_name[] = { "", "sfx90x0", "sfx91x0", @@ -126,8 +126,8 @@ fail1: #if EFSYS_OPT_NAMES -/* START MKCONFIG GENERATED MonitorStatNamesBlock 31f437eafb0b0437 */ -static const char *__mon_stat_name[] = { +/* START MKCONFIG GENERATED MonitorStatNamesBlock 5daa2a5725ba734b */ +static const char * const __mon_stat_name[] = { "value_2_5v", "value_vccp1", "value_vcc", diff --git a/sys/dev/sfxge/common/efx_nic.c b/sys/dev/sfxge/common/efx_nic.c index 18ce3f1..cd34d26 100644 --- a/sys/dev/sfxge/common/efx_nic.c +++ b/sys/dev/sfxge/common/efx_nic.c @@ -268,7 +268,6 @@ efx_nic_create( EFX_FEATURE_LFSR_HASH_INSERT | EFX_FEATURE_LINK_EVENTS | EFX_FEATURE_PERIODIC_MAC_STATS | - EFX_FEATURE_WOL | EFX_FEATURE_MCDI | EFX_FEATURE_LOOKAHEAD_SPLIT | EFX_FEATURE_MAC_HEADER_FILTERS | @@ -279,7 +278,6 @@ efx_nic_create( #if EFSYS_OPT_HUNTINGTON case EFX_FAMILY_HUNTINGTON: enp->en_enop = &__efx_nic_hunt_ops; - /* FIXME: Add WOL support */ enp->en_features = EFX_FEATURE_IPV6 | EFX_FEATURE_LINK_EVENTS | @@ -556,7 +554,7 @@ efx_nic_destroy( EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); EFSYS_ASSERT3U(enp->en_mod_flags, ==, 0); - enp->en_family = 0; + enp->en_family = EFX_FAMILY_INVALID; enp->en_esip = NULL; enp->en_esbp = NULL; enp->en_eslp = NULL; diff --git a/sys/dev/sfxge/common/efx_nvram.c b/sys/dev/sfxge/common/efx_nvram.c index a17cd78..60169fc 100644 --- a/sys/dev/sfxge/common/efx_nvram.c +++ b/sys/dev/sfxge/common/efx_nvram.c @@ -362,13 +362,14 @@ fail1: return (rc); } - void + __checkReturn efx_rc_t efx_nvram_rw_finish( __in efx_nic_t *enp, __in efx_nvram_type_t type) { const efx_nvram_ops_t *envop = enp->en_envop; uint32_t partn; + efx_rc_t rc; EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_NVRAM); @@ -378,10 +379,24 @@ efx_nvram_rw_finish( EFSYS_ASSERT3U(enp->en_nvram_locked, ==, type); - if (envop->envo_type_to_partn(enp, type, &partn) == 0) - envop->envo_partn_rw_finish(enp, partn); + if ((rc = envop->envo_type_to_partn(enp, type, &partn)) != 0) + goto fail1; + + if ((rc = envop->envo_partn_rw_finish(enp, partn)) != 0) + goto fail2; + + enp->en_nvram_locked = EFX_NVRAM_INVALID; + + return (0); +fail2: + EFSYS_PROBE(fail2); enp->en_nvram_locked = EFX_NVRAM_INVALID; + +fail1: + EFSYS_PROBE1(fail1, efx_rc_t, rc); + + return (rc); } __checkReturn efx_rc_t @@ -696,12 +711,16 @@ fail1: return (rc); } +/* + * MC_CMD_NVRAM_UPDATE_START_V2 must be used to support firmware-verified + * NVRAM updates. Older firmware will ignore the flags field in the request. + */ __checkReturn efx_rc_t efx_mcdi_nvram_update_start( __in efx_nic_t *enp, __in uint32_t partn) { - uint8_t payload[MAX(MC_CMD_NVRAM_UPDATE_START_IN_LEN, + uint8_t payload[MAX(MC_CMD_NVRAM_UPDATE_START_V2_IN_LEN, MC_CMD_NVRAM_UPDATE_START_OUT_LEN)]; efx_mcdi_req_t req; efx_rc_t rc; @@ -709,11 +728,14 @@ efx_mcdi_nvram_update_start( (void) memset(payload, 0, sizeof (payload)); req.emr_cmd = MC_CMD_NVRAM_UPDATE_START; req.emr_in_buf = payload; - req.emr_in_length = MC_CMD_NVRAM_UPDATE_START_IN_LEN; + req.emr_in_length = MC_CMD_NVRAM_UPDATE_START_V2_IN_LEN; req.emr_out_buf = payload; req.emr_out_length = MC_CMD_NVRAM_UPDATE_START_OUT_LEN; - MCDI_IN_SET_DWORD(req, NVRAM_UPDATE_START_IN_TYPE, partn); + MCDI_IN_SET_DWORD(req, NVRAM_UPDATE_START_V2_IN_TYPE, partn); + + MCDI_IN_POPULATE_DWORD_1(req, NVRAM_UPDATE_START_V2_IN_FLAGS, + NVRAM_UPDATE_START_V2_IN_FLAG_REPORT_VERIFY_RESULT, 1); efx_mcdi_execute(enp, &req); @@ -886,26 +908,37 @@ fail1: return (rc); } + +/* + * MC_CMD_NVRAM_UPDATE_FINISH_V2 must be used to support firmware-verified + * NVRAM updates. Older firmware will ignore the flags field in the request. + */ __checkReturn efx_rc_t efx_mcdi_nvram_update_finish( __in efx_nic_t *enp, __in uint32_t partn, - __in boolean_t reboot) + __in boolean_t reboot, + __out_opt uint32_t *resultp) { + const efx_nic_cfg_t *encp = &enp->en_nic_cfg; efx_mcdi_req_t req; - uint8_t payload[MAX(MC_CMD_NVRAM_UPDATE_FINISH_IN_LEN, - MC_CMD_NVRAM_UPDATE_FINISH_OUT_LEN)]; + uint8_t payload[MAX(MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_LEN, + MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT_LEN)]; + uint32_t result = 0; /* FIXME: use MC_CMD_NVRAM_VERIFY_RC_UNKNOWN */ efx_rc_t rc; (void) memset(payload, 0, sizeof (payload)); req.emr_cmd = MC_CMD_NVRAM_UPDATE_FINISH; req.emr_in_buf = payload; - req.emr_in_length = MC_CMD_NVRAM_UPDATE_FINISH_IN_LEN; + req.emr_in_length = MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_LEN; req.emr_out_buf = payload; - req.emr_out_length = MC_CMD_NVRAM_UPDATE_FINISH_OUT_LEN; + req.emr_out_length = MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT_LEN; - MCDI_IN_SET_DWORD(req, NVRAM_UPDATE_FINISH_IN_TYPE, partn); - MCDI_IN_SET_DWORD(req, NVRAM_UPDATE_FINISH_IN_REBOOT, reboot); + MCDI_IN_SET_DWORD(req, NVRAM_UPDATE_FINISH_V2_IN_TYPE, partn); + MCDI_IN_SET_DWORD(req, NVRAM_UPDATE_FINISH_V2_IN_REBOOT, reboot); + + MCDI_IN_POPULATE_DWORD_1(req, NVRAM_UPDATE_FINISH_V2_IN_FLAGS, + NVRAM_UPDATE_FINISH_V2_IN_FLAG_REPORT_VERIFY_RESULT, 1); efx_mcdi_execute(enp, &req); @@ -914,11 +947,42 @@ efx_mcdi_nvram_update_finish( goto fail1; } + if (encp->enc_fw_verified_nvram_update_required == B_FALSE) { + /* Report success if verified updates are not supported. */ + result = MC_CMD_NVRAM_VERIFY_RC_SUCCESS; + } else { + /* Firmware-verified NVRAM updates are required */ + if (req.emr_out_length_used < + MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT_LEN) { + rc = EMSGSIZE; + goto fail2; + } + result = + MCDI_OUT_DWORD(req, NVRAM_UPDATE_FINISH_V2_OUT_RESULT_CODE); + + if (result != MC_CMD_NVRAM_VERIFY_RC_SUCCESS) { + /* Mandatory verification failed */ + rc = EINVAL; + goto fail3; + } + } + + if (resultp != NULL) + *resultp = result; + return (0); +fail3: + EFSYS_PROBE(fail3); +fail2: + EFSYS_PROBE(fail2); fail1: EFSYS_PROBE1(fail1, efx_rc_t, rc); + /* Always report verification result */ + if (resultp != NULL) + *resultp = result; + return (rc); } diff --git a/sys/dev/sfxge/common/efx_phy.c b/sys/dev/sfxge/common/efx_phy.c index a265d7c..1db2300 100644 --- a/sys/dev/sfxge/common/efx_phy.c +++ b/sys/dev/sfxge/common/efx_phy.c @@ -47,7 +47,7 @@ static const efx_phy_ops_t __efx_phy_siena_ops = { #endif /* EFSYS_OPT_PHY_STATS */ #if EFSYS_OPT_BIST NULL, /* epo_bist_enable_offline */ - siena_phy_bist_start, /* epo_bist_start */ + siena_phy_bist_start, /* epo_bist_start */ siena_phy_bist_poll, /* epo_bist_poll */ siena_phy_bist_stop, /* epo_bist_stop */ #endif /* EFSYS_OPT_BIST */ @@ -65,11 +65,10 @@ static const efx_phy_ops_t __efx_phy_ef10_ops = { ef10_phy_stats_update, /* epo_stats_update */ #endif /* EFSYS_OPT_PHY_STATS */ #if EFSYS_OPT_BIST - /* FIXME: Are these BIST methods appropriate for Medford? */ - hunt_bist_enable_offline, /* epo_bist_enable_offline */ - hunt_bist_start, /* epo_bist_start */ - hunt_bist_poll, /* epo_bist_poll */ - hunt_bist_stop, /* epo_bist_stop */ + ef10_bist_enable_offline, /* epo_bist_enable_offline */ + ef10_bist_start, /* epo_bist_start */ + ef10_bist_poll, /* epo_bist_poll */ + ef10_bist_stop, /* epo_bist_stop */ #endif /* EFSYS_OPT_BIST */ }; #endif /* EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD */ @@ -336,8 +335,8 @@ fail1: #if EFSYS_OPT_NAMES -/* START MKCONFIG GENERATED PhyStatNamesBlock d5f79b4bc2c050fe */ -static const char *__efx_phy_stat_name[] = { +/* START MKCONFIG GENERATED PhyStatNamesBlock af9ffa24da3bc100 */ +static const char * const __efx_phy_stat_name[] = { "oui", "pma_pmd_link_up", "pma_pmd_rx_fault", diff --git a/sys/dev/sfxge/common/efx_port.c b/sys/dev/sfxge/common/efx_port.c index 440f0a0..febbfa2 100644 --- a/sys/dev/sfxge/common/efx_port.c +++ b/sys/dev/sfxge/common/efx_port.c @@ -172,7 +172,7 @@ fail1: #if EFSYS_OPT_NAMES -static const char *__efx_loopback_type_name[] = { +static const char * const __efx_loopback_type_name[] = { "OFF", "DATA", "GMAC", diff --git a/sys/dev/sfxge/common/efx_regs_mcdi.h b/sys/dev/sfxge/common/efx_regs_mcdi.h index e009e1a..370a9ef 100644 --- a/sys/dev/sfxge/common/efx_regs_mcdi.h +++ b/sys/dev/sfxge/common/efx_regs_mcdi.h @@ -136,6 +136,8 @@ #define MCDI_HEADER_XFLAGS_WIDTH 8 /* Request response using event */ #define MCDI_HEADER_XFLAGS_EVREQ 0x01 +/* Request (and signal) early doorbell return */ +#define MCDI_HEADER_XFLAGS_DBRET 0x02 /* Maximum number of payload bytes */ #define MCDI_CTL_SDU_LEN_MAX_V1 0xfc @@ -149,7 +151,7 @@ /* The MC can generate events for two reasons: - * - To complete a shared memory request if XFLAGS_EVREQ was set + * - To advance a shared memory request if XFLAGS_EVREQ was set * - As a notification (link state, i2c event), controlled * via MC_CMD_LOG_CTRL * @@ -302,6 +304,12 @@ /* The clock whose frequency you've attempted to set set * doesn't exist on this NIC */ #define MC_CMD_ERR_NO_CLOCK 0x1015 +/* Returned by MC_CMD_TESTASSERT if the action that should + * have caused an assertion failed to do so. */ +#define MC_CMD_ERR_UNREACHABLE 0x1016 +/* This command needs to be processed in the background but there were no + * resources to do so. Send it again after a command has completed. */ +#define MC_CMD_ERR_QUEUE_FULL 0x1017 #define MC_CMD_ERR_CODE_OFST 0 @@ -483,8 +491,48 @@ #define MCDI_EVENT_AOE_DDR_ECC_STATUS 0xa /* enum: PTP status update */ #define MCDI_EVENT_AOE_PTP_STATUS 0xb +/* enum: FPGA header incorrect */ +#define MCDI_EVENT_AOE_FPGA_LOAD_HEADER_ERR 0xc +/* enum: FPGA Powered Off due to error in powering up FPGA */ +#define MCDI_EVENT_AOE_FPGA_POWER_OFF 0xd +/* enum: AOE FPGA load failed due to MC to MUM communication failure */ +#define MCDI_EVENT_AOE_FPGA_LOAD_FAILED 0xe +/* enum: Notify that invalid flash type detected */ +#define MCDI_EVENT_AOE_INVALID_FPGA_FLASH_TYPE 0xf +/* enum: Notify that the attempt to run FPGA Controller firmware timedout */ +#define MCDI_EVENT_AOE_FC_RUN_TIMEDOUT 0x10 #define MCDI_EVENT_AOE_ERR_DATA_LBN 8 #define MCDI_EVENT_AOE_ERR_DATA_WIDTH 8 +#define MCDI_EVENT_AOE_ERR_CODE_FPGA_HEADER_VERIFY_FAILED_LBN 8 +#define MCDI_EVENT_AOE_ERR_CODE_FPGA_HEADER_VERIFY_FAILED_WIDTH 8 +/* enum: Reading from NV failed */ +#define MCDI_EVENT_AOE_ERR_FPGA_HEADER_NV_READ_FAIL 0x0 +/* enum: Invalid Magic Number if FPGA header */ +#define MCDI_EVENT_AOE_ERR_FPGA_HEADER_MAGIC_FAIL 0x1 +/* enum: Invalid Silicon type detected in header */ +#define MCDI_EVENT_AOE_ERR_FPGA_HEADER_SILICON_TYPE 0x2 +/* enum: Unsupported VRatio */ +#define MCDI_EVENT_AOE_ERR_FPGA_HEADER_VRATIO 0x3 +/* enum: Unsupported DDR Type */ +#define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_TYPE 0x4 +/* enum: DDR Voltage out of supported range */ +#define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_VOLTAGE 0x5 +/* enum: Unsupported DDR speed */ +#define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_SPEED 0x6 +/* enum: Unsupported DDR size */ +#define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_SIZE 0x7 +/* enum: Unsupported DDR rank */ +#define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_RANK 0x8 +#define MCDI_EVENT_AOE_ERR_CODE_INVALID_FPGA_FLASH_TYPE_INFO_LBN 8 +#define MCDI_EVENT_AOE_ERR_CODE_INVALID_FPGA_FLASH_TYPE_INFO_WIDTH 8 +/* enum: Primary boot flash */ +#define MCDI_EVENT_AOE_FLASH_TYPE_BOOT_PRIMARY 0x0 +/* enum: Secondary boot flash */ +#define MCDI_EVENT_AOE_FLASH_TYPE_BOOT_SECONDARY 0x1 +#define MCDI_EVENT_AOE_ERR_CODE_FPGA_POWER_OFF_LBN 8 +#define MCDI_EVENT_AOE_ERR_CODE_FPGA_POWER_OFF_WIDTH 8 +#define MCDI_EVENT_AOE_ERR_CODE_FPGA_LOAD_FAILED_LBN 8 +#define MCDI_EVENT_AOE_ERR_CODE_FPGA_LOAD_FAILED_WIDTH 8 #define MCDI_EVENT_RX_ERR_RXQ_LBN 0 #define MCDI_EVENT_RX_ERR_RXQ_WIDTH 12 #define MCDI_EVENT_RX_ERR_TYPE_LBN 12 @@ -966,6 +1014,8 @@ #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_SKIP_BOOT_ICORE_SYNC_WIDTH 1 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_FORCE_STANDALONE_LBN 5 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_FORCE_STANDALONE_WIDTH 1 +#define MC_CMD_COPYCODE_IN_BOOT_MAGIC_DISABLE_XIP_LBN 6 +#define MC_CMD_COPYCODE_IN_BOOT_MAGIC_DISABLE_XIP_WIDTH 1 /* Destination address */ #define MC_CMD_COPYCODE_IN_DEST_ADDR_OFST 4 #define MC_CMD_COPYCODE_IN_NUMWORDS_OFST 8 @@ -4113,6 +4163,8 @@ #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_CAPABILITIES_OFST 8 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_REPORT_SYNC_STATUS_LBN 0 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_REPORT_SYNC_STATUS_WIDTH 1 +#define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RX_TSTAMP_OOB_LBN 1 +#define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RX_TSTAMP_OOB_WIDTH 1 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED0_OFST 12 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED1_OFST 16 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED2_OFST 20 @@ -4676,6 +4728,10 @@ #define MC_CMD_FW_HIGH_TX_RATE 0x3 /* enum: Reserved value */ #define MC_CMD_FW_PACKED_STREAM_HASH_MODE_1 0x4 +/* enum: Prefer to use firmware with additional "rules engine" filtering + * support + */ +#define MC_CMD_FW_RULES_ENGINE 0x5 /* enum: Only this option is allowed for non-admin functions */ #define MC_CMD_FW_DONT_CARE 0xffffffff @@ -6098,6 +6154,8 @@ #define MC_CMD_NVRAM_INFO_OUT_PROTECTED_WIDTH 1 #define MC_CMD_NVRAM_INFO_OUT_TLV_LBN 1 #define MC_CMD_NVRAM_INFO_OUT_TLV_WIDTH 1 +#define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_LBN 5 +#define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_WIDTH 1 #define MC_CMD_NVRAM_INFO_OUT_CMAC_LBN 6 #define MC_CMD_NVRAM_INFO_OUT_CMAC_WIDTH 1 #define MC_CMD_NVRAM_INFO_OUT_A_B_LBN 7 @@ -6117,6 +6175,8 @@ #define MC_CMD_NVRAM_INFO_V2_OUT_PROTECTED_WIDTH 1 #define MC_CMD_NVRAM_INFO_V2_OUT_TLV_LBN 1 #define MC_CMD_NVRAM_INFO_V2_OUT_TLV_WIDTH 1 +#define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_LBN 5 +#define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_WIDTH 1 #define MC_CMD_NVRAM_INFO_V2_OUT_A_B_LBN 7 #define MC_CMD_NVRAM_INFO_V2_OUT_A_B_WIDTH 1 #define MC_CMD_NVRAM_INFO_V2_OUT_PHYSDEV_OFST 16 @@ -6137,12 +6197,27 @@ #define MC_CMD_0x38_PRIVILEGE_CTG SRIOV_CTG_ADMIN -/* MC_CMD_NVRAM_UPDATE_START_IN msgrequest */ +/* MC_CMD_NVRAM_UPDATE_START_IN msgrequest: Legacy NVRAM_UPDATE_START request. + * Use NVRAM_UPDATE_START_V2_IN in new code + */ #define MC_CMD_NVRAM_UPDATE_START_IN_LEN 4 #define MC_CMD_NVRAM_UPDATE_START_IN_TYPE_OFST 0 /* Enum values, see field(s): */ /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ +/* MC_CMD_NVRAM_UPDATE_START_V2_IN msgrequest: Extended NVRAM_UPDATE_START + * request with additional flags indicating version of command in use. See + * MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT for details of extended functionality. Use + * paired up with NVRAM_UPDATE_FINISH_V2_IN. + */ +#define MC_CMD_NVRAM_UPDATE_START_V2_IN_LEN 8 +#define MC_CMD_NVRAM_UPDATE_START_V2_IN_TYPE_OFST 0 +/* Enum values, see field(s): */ +/* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ +#define MC_CMD_NVRAM_UPDATE_START_V2_IN_FLAGS_OFST 4 +#define MC_CMD_NVRAM_UPDATE_START_V2_IN_FLAG_REPORT_VERIFY_RESULT_LBN 0 +#define MC_CMD_NVRAM_UPDATE_START_V2_IN_FLAG_REPORT_VERIFY_RESULT_WIDTH 1 + /* MC_CMD_NVRAM_UPDATE_START_OUT msgresponse */ #define MC_CMD_NVRAM_UPDATE_START_OUT_LEN 0 @@ -6271,16 +6346,87 @@ #define MC_CMD_0x3c_PRIVILEGE_CTG SRIOV_CTG_ADMIN -/* MC_CMD_NVRAM_UPDATE_FINISH_IN msgrequest */ +/* MC_CMD_NVRAM_UPDATE_FINISH_IN msgrequest: Legacy NVRAM_UPDATE_FINISH + * request. Use NVRAM_UPDATE_FINISH_V2_IN in new code + */ #define MC_CMD_NVRAM_UPDATE_FINISH_IN_LEN 8 #define MC_CMD_NVRAM_UPDATE_FINISH_IN_TYPE_OFST 0 /* Enum values, see field(s): */ /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ #define MC_CMD_NVRAM_UPDATE_FINISH_IN_REBOOT_OFST 4 -/* MC_CMD_NVRAM_UPDATE_FINISH_OUT msgresponse */ +/* MC_CMD_NVRAM_UPDATE_FINISH_V2_IN msgrequest: Extended NVRAM_UPDATE_FINISH + * request with additional flags indicating version of NVRAM_UPDATE commands in + * use. See MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT for details of extended + * functionality. Use paired up with NVRAM_UPDATE_START_V2_IN. + */ +#define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_LEN 12 +#define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_TYPE_OFST 0 +/* Enum values, see field(s): */ +/* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ +#define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_REBOOT_OFST 4 +#define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAGS_OFST 8 +#define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_REPORT_VERIFY_RESULT_LBN 0 +#define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_REPORT_VERIFY_RESULT_WIDTH 1 + +/* MC_CMD_NVRAM_UPDATE_FINISH_OUT msgresponse: Legacy NVRAM_UPDATE_FINISH + * response. Use NVRAM_UPDATE_FINISH_V2_OUT in new code + */ #define MC_CMD_NVRAM_UPDATE_FINISH_OUT_LEN 0 +/* MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT msgresponse: + * + * Extended NVRAM_UPDATE_FINISH response that communicates the result of secure + * firmware validation where applicable back to the host. + * + * Medford only: For signed firmware images, such as those for medford, the MC + * firmware verifies the signature before marking the firmware image as valid. + * This process takes a few seconds to complete. So is likely to take more than + * the MCDI timeout. Hence signature verification is initiated when + * MC_CMD_NVRAM_UPDATE_FINISH_V2_IN is received by the firmware, however, the + * MCDI command is run in a background MCDI processing thread. This response + * payload includes the results of the signature verification. Note that the + * per-partition nvram lock in firmware is only released after the verification + * has completed. + */ +#define MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT_LEN 4 +/* Result of nvram update completion processing */ +#define MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT_RESULT_CODE_OFST 0 +/* enum: Invalid return code; only non-zero values are defined. Defined as + * unknown for backwards compatibility with NVRAM_UPDATE_FINISH_OUT. + */ +#define MC_CMD_NVRAM_VERIFY_RC_UNKNOWN 0x0 +/* enum: Verify succeeded without any errors. */ +#define MC_CMD_NVRAM_VERIFY_RC_SUCCESS 0x1 +/* enum: CMS format verification failed due to an internal error. */ +#define MC_CMD_NVRAM_VERIFY_RC_CMS_CHECK_FAILED 0x2 +/* enum: Invalid CMS format in image metadata. */ +#define MC_CMD_NVRAM_VERIFY_RC_INVALID_CMS_FORMAT 0x3 +/* enum: Message digest verification failed due to an internal error. */ +#define MC_CMD_NVRAM_VERIFY_RC_MESSAGE_DIGEST_CHECK_FAILED 0x4 +/* enum: Error in message digest calculated over the reflash-header, payload + * and reflash-trailer. + */ +#define MC_CMD_NVRAM_VERIFY_RC_BAD_MESSAGE_DIGEST 0x5 +/* enum: Signature verification failed due to an internal error. */ +#define MC_CMD_NVRAM_VERIFY_RC_SIGNATURE_CHECK_FAILED 0x6 +/* enum: There are no valid signatures in the image. */ +#define MC_CMD_NVRAM_VERIFY_RC_NO_VALID_SIGNATURES 0x7 +/* enum: Trusted approvers verification failed due to an internal error. */ +#define MC_CMD_NVRAM_VERIFY_RC_TRUSTED_APPROVERS_CHECK_FAILED 0x8 +/* enum: The Trusted approver's list is empty. */ +#define MC_CMD_NVRAM_VERIFY_RC_NO_TRUSTED_APPROVERS 0x9 +/* enum: Signature chain verification failed due to an internal error. */ +#define MC_CMD_NVRAM_VERIFY_RC_SIGNATURE_CHAIN_CHECK_FAILED 0xa +/* enum: The signers of the signatures in the image are not listed in the + * Trusted approver's list. + */ +#define MC_CMD_NVRAM_VERIFY_RC_NO_SIGNATURE_MATCH 0xb +/* enum: The image contains a test-signed certificate, but the adapter accepts + * only production signed images. + */ +#define MC_CMD_NVRAM_VERIFY_RC_REJECT_TEST_SIGNED 0xc + /***********************************/ /* MC_CMD_REBOOT @@ -6853,6 +6999,28 @@ /* MC_CMD_TESTASSERT_OUT msgresponse */ #define MC_CMD_TESTASSERT_OUT_LEN 0 +/* MC_CMD_TESTASSERT_V2_IN msgrequest */ +#define MC_CMD_TESTASSERT_V2_IN_LEN 4 +/* How to provoke the assertion */ +#define MC_CMD_TESTASSERT_V2_IN_TYPE_OFST 0 +/* enum: Assert using the FAIL_ASSERTION_WITH_USEFUL_VALUES macro. Unless + * you're testing firmware, this is what you want. + */ +#define MC_CMD_TESTASSERT_V2_IN_FAIL_ASSERTION_WITH_USEFUL_VALUES 0x0 +/* enum: Assert using assert(0); */ +#define MC_CMD_TESTASSERT_V2_IN_ASSERT_FALSE 0x1 +/* enum: Deliberately trigger a watchdog */ +#define MC_CMD_TESTASSERT_V2_IN_WATCHDOG 0x2 +/* enum: Deliberately trigger a trap by loading from an invalid address */ +#define MC_CMD_TESTASSERT_V2_IN_LOAD_TRAP 0x3 +/* enum: Deliberately trigger a trap by storing to an invalid address */ +#define MC_CMD_TESTASSERT_V2_IN_STORE_TRAP 0x4 +/* enum: Jump to an invalid address */ +#define MC_CMD_TESTASSERT_V2_IN_JUMP_TRAP 0x5 + +/* MC_CMD_TESTASSERT_V2_OUT msgresponse */ +#define MC_CMD_TESTASSERT_V2_OUT_LEN 0 + /***********************************/ /* MC_CMD_WORKAROUND @@ -7869,8 +8037,8 @@ #define NVRAM_PARTITION_TYPE_EXPANSION_UEFI 0xd00 /* enum: Spare partition 0 */ #define NVRAM_PARTITION_TYPE_SPARE_0 0x1000 -/* enum: Spare partition 1 */ -#define NVRAM_PARTITION_TYPE_SPARE_1 0x1100 +/* enum: Used for XIP code of shmbooted images */ +#define NVRAM_PARTITION_TYPE_XIP_SCRATCH 0x1100 /* enum: Spare partition 2 */ #define NVRAM_PARTITION_TYPE_SPARE_2 0x1200 /* enum: Manufacturing partition. Used during manufacture to pass information @@ -7881,6 +8049,10 @@ #define NVRAM_PARTITION_TYPE_SPARE_4 0x1400 /* enum: Spare partition 5 */ #define NVRAM_PARTITION_TYPE_SPARE_5 0x1500 +/* enum: Partition for reporting MC status. See mc_flash_layout.h + * medford_mc_status_hdr_t for layout on Medford. + */ +#define NVRAM_PARTITION_TYPE_STATUS 0x1600 /* enum: Start of reserved value range (firmware may use for any purpose) */ #define NVRAM_PARTITION_TYPE_RESERVED_VALUES_MIN 0xff00 /* enum: End of reserved value range (firmware may use for any purpose) */ @@ -7913,6 +8085,14 @@ #define LICENSED_APP_ID_NETWORK_ACCESS_CONTROL 0x80 /* enum: TCP Direct */ #define LICENSED_APP_ID_TCP_DIRECT 0x100 +/* enum: Low Latency */ +#define LICENSED_APP_ID_LOW_LATENCY 0x200 +/* enum: SolarCapture Tap */ +#define LICENSED_APP_ID_SOLARCAPTURE_TAP 0x400 +/* enum: Capture SolarSystem 40G */ +#define LICENSED_APP_ID_CAPTURE_SOLARSYSTEM_40G 0x800 +/* enum: Capture SolarSystem 1G */ +#define LICENSED_APP_ID_CAPTURE_SOLARSYSTEM_1G 0x1000 #define LICENSED_APP_ID_ID_LBN 0 #define LICENSED_APP_ID_ID_WIDTH 32 @@ -7975,6 +8155,10 @@ #define LICENSED_V3_APPS_LOW_LATENCY_WIDTH 1 #define LICENSED_V3_APPS_SOLARCAPTURE_TAP_LBN 10 #define LICENSED_V3_APPS_SOLARCAPTURE_TAP_WIDTH 1 +#define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_40G_LBN 11 +#define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_40G_WIDTH 1 +#define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_1G_LBN 12 +#define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_1G_WIDTH 1 #define LICENSED_V3_APPS_MASK_LBN 0 #define LICENSED_V3_APPS_MASK_WIDTH 64 @@ -8054,6 +8238,19 @@ #define RSS_MODE_HASH_SELECTOR_LBN 0 #define RSS_MODE_HASH_SELECTOR_WIDTH 8 +/* CTPIO_STATS_MAP structuredef */ +#define CTPIO_STATS_MAP_LEN 4 +/* The (function relative) VI number */ +#define CTPIO_STATS_MAP_VI_OFST 0 +#define CTPIO_STATS_MAP_VI_LEN 2 +#define CTPIO_STATS_MAP_VI_LBN 0 +#define CTPIO_STATS_MAP_VI_WIDTH 16 +/* The target bucket for the VI */ +#define CTPIO_STATS_MAP_BUCKET_OFST 2 +#define CTPIO_STATS_MAP_BUCKET_LEN 2 +#define CTPIO_STATS_MAP_BUCKET_LBN 16 +#define CTPIO_STATS_MAP_BUCKET_WIDTH 16 + /***********************************/ /* MC_CMD_READ_REGS @@ -8509,6 +8706,8 @@ #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_INNER_TCP_CSUM_EN_WIDTH 1 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TSOV2_EN_LBN 12 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TSOV2_EN_WIDTH 1 +#define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_LBN 13 +#define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_WIDTH 1 /* Owner ID to use if in buffer mode (zero if physical) */ #define MC_CMD_INIT_TXQ_EXT_IN_OWNER_ID_OFST 20 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ @@ -9442,7 +9641,11 @@ #define MC_CMD_PARSER_DISP_RW_IN_RX_DICPU 0x0 /* enum: TX dispatcher CPU */ #define MC_CMD_PARSER_DISP_RW_IN_TX_DICPU 0x1 -/* enum: Lookup engine (with original metadata format) */ +/* enum: Lookup engine (with original metadata format). Deprecated; used only + * by cmdclient as a fallback for very old Huntington firmware, and not + * supported in firmware beyond v6.4.0.1005. Use LUE_VERSIONED_METADATA + * instead. + */ #define MC_CMD_PARSER_DISP_RW_IN_LUE 0x2 /* enum: Lookup engine (with requested metadata format) */ #define MC_CMD_PARSER_DISP_RW_IN_LUE_VERSIONED_METADATA 0x3 @@ -10298,7 +10501,9 @@ * (Huntington development only) */ #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 -/* enum: Virtual switching (full feature) RX PD production firmware */ +/* enum: Full featured RX PD production firmware */ +#define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 +/* enum: (deprecated original name for the FULL_FEATURED variant) */ #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_VSWITCH 0x3 /* enum: siena_compat variant RX PD firmware using PM rather than MAC * (Huntington development only) @@ -10312,6 +10517,8 @@ * tests (Medford development only) */ #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 +/* enum: Rules engine RX PD production firmware */ +#define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe /* enum: RX PD firmware parsing but not filtering network overlay tunnel @@ -10336,7 +10543,9 @@ * (Huntington development only) */ #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 -/* enum: Virtual switching (full feature) TX PD production firmware */ +/* enum: Full featured TX PD production firmware */ +#define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 +/* enum: (deprecated original name for the FULL_FEATURED variant) */ #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_VSWITCH 0x3 /* enum: siena_compat variant TX PD firmware using PM rather than MAC * (Huntington development only) @@ -10347,6 +10556,8 @@ * tests (Medford development only) */ #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 +/* enum: Rules engine TX PD production firmware */ +#define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe /* Hardware capabilities of NIC */ @@ -10483,7 +10694,9 @@ * (Huntington development only) */ #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 -/* enum: Virtual switching (full feature) RX PD production firmware */ +/* enum: Full featured RX PD production firmware */ +#define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 +/* enum: (deprecated original name for the FULL_FEATURED variant) */ #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_VSWITCH 0x3 /* enum: siena_compat variant RX PD firmware using PM rather than MAC * (Huntington development only) @@ -10497,6 +10710,8 @@ * tests (Medford development only) */ #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 +/* enum: Rules engine RX PD production firmware */ +#define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe /* enum: RX PD firmware parsing but not filtering network overlay tunnel @@ -10521,7 +10736,9 @@ * (Huntington development only) */ #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 -/* enum: Virtual switching (full feature) TX PD production firmware */ +/* enum: Full featured TX PD production firmware */ +#define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 +/* enum: (deprecated original name for the FULL_FEATURED variant) */ #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_VSWITCH 0x3 /* enum: siena_compat variant TX PD firmware using PM rather than MAC * (Huntington development only) @@ -10532,6 +10749,8 @@ * tests (Medford development only) */ #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 +/* enum: Rules engine TX PD production firmware */ +#define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe /* Hardware capabilities of NIC */ @@ -10556,6 +10775,20 @@ #define MC_CMD_GET_CAPABILITIES_V2_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_V2_LBN 7 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_V2_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_TIMESTAMPING_LBN 8 +#define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TIMESTAMP_LBN 9 +#define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TIMESTAMP_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_SNIFF_LBN 10 +#define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_SNIFF_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_SNIFF_LBN 11 +#define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_SNIFF_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 +#define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_BACKGROUND_LBN 13 +#define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_BACKGROUND_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_DB_RETURN_LBN 14 +#define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_DB_RETURN_WIDTH 1 /* Number of FATSOv2 contexts per datapath supported by this NIC. Not present * on older firmware (check the length). */ @@ -10612,6 +10845,308 @@ #define MC_CMD_GET_CAPABILITIES_V2_OUT_SIZE_PIO_BUFF_OFST 70 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SIZE_PIO_BUFF_LEN 2 +/* MC_CMD_GET_CAPABILITIES_V3_OUT msgresponse */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_LEN 76 +/* First word of flags. */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_FLAGS1_OFST 0 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_VPORT_RECONFIGURE_LBN 3 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_VPORT_RECONFIGURE_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_STRIPING_LBN 4 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_STRIPING_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_QUERY_LBN 5 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_QUERY_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_DRV_ATTACH_PREBOOT_LBN 7 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_FORCE_EVENT_MERGING_LBN 8 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_SET_MAC_ENHANCED_LBN 9 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_SET_MAC_ENHANCED_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_ADDITIONAL_RSS_MODES_LBN 13 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_QBB_LBN 14 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_QBB_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_RSS_LIMITED_LBN 16 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_RSS_LIMITED_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_LBN 17 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_INCLUDE_FCS_LBN 18 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_INCLUDE_FCS_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VLAN_INSERTION_LBN 19 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VLAN_INSERTION_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_VLAN_STRIPPING_LBN 20 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_VLAN_STRIPPING_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_LBN 21 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_0_LBN 22 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_0_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_14_LBN 23 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_14_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_TIMESTAMP_LBN 24 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_TIMESTAMP_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_BATCHING_LBN 25 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_BATCHING_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_MCAST_FILTER_CHAINING_LBN 26 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_MCAST_FILTER_CHAINING_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_PM_AND_RXDP_COUNTERS_LBN 27 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DISABLE_SCATTER_LBN 28 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DISABLE_SCATTER_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_LBN 30 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_VXLAN_NVGRE_LBN 31 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_VXLAN_NVGRE_WIDTH 1 +/* RxDPCPU firmware id. */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DPCPU_FW_ID_OFST 4 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DPCPU_FW_ID_LEN 2 +/* enum: Standard RXDP firmware */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP 0x0 +/* enum: Low latency RXDP firmware */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_LOW_LATENCY 0x1 +/* enum: Packed stream RXDP firmware */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_PACKED_STREAM 0x2 +/* enum: BIST RXDP firmware */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_BIST 0x10a +/* enum: RXDP Test firmware image 1 */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 +/* enum: RXDP Test firmware image 2 */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 +/* enum: RXDP Test firmware image 3 */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 +/* enum: RXDP Test firmware image 4 */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 +/* enum: RXDP Test firmware image 5 */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_BACKPRESSURE 0x105 +/* enum: RXDP Test firmware image 6 */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 +/* enum: RXDP Test firmware image 7 */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 +/* enum: RXDP Test firmware image 8 */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 +/* enum: RXDP Test firmware image 9 */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b +/* TxDPCPU firmware id. */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_DPCPU_FW_ID_OFST 6 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_DPCPU_FW_ID_LEN 2 +/* enum: Standard TXDP firmware */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP 0x0 +/* enum: Low latency TXDP firmware */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_LOW_LATENCY 0x1 +/* enum: High packet rate TXDP firmware */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_HIGH_PACKET_RATE 0x3 +/* enum: BIST TXDP firmware */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_BIST 0x12d +/* enum: TXDP Test firmware image 1 */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 +/* enum: TXDP Test firmware image 2 */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 +/* enum: TXDP CSR bus test firmware */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_TEST_FW_CSR 0x103 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_OFST 8 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_LEN 2 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_REV_LBN 0 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_REV_WIDTH 12 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_TYPE_LBN 12 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 +/* enum: reserved value - do not use (may indicate alternative interpretation + * of REV field in future) + */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_RESERVED 0x0 +/* enum: Trivial RX PD firmware for early Huntington development (Huntington + * development only) + */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 +/* enum: RX PD firmware with approximately Siena-compatible behaviour + * (Huntington development only) + */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 +/* enum: Full featured RX PD production firmware */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 +/* enum: (deprecated original name for the FULL_FEATURED variant) */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_VSWITCH 0x3 +/* enum: siena_compat variant RX PD firmware using PM rather than MAC + * (Huntington development only) + */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 +/* enum: Low latency RX PD production firmware */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 +/* enum: Packed stream RX PD production firmware */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 +/* enum: RX PD firmware handling layer 2 only for high packet rate performance + * tests (Medford development only) + */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 +/* enum: Rules engine RX PD production firmware */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 +/* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe +/* enum: RX PD firmware parsing but not filtering network overlay tunnel + * encapsulations (Medford development only) + */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_OFST 10 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_LEN 2 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_REV_LBN 0 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_REV_WIDTH 12 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_TYPE_LBN 12 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 +/* enum: reserved value - do not use (may indicate alternative interpretation + * of REV field in future) + */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_RESERVED 0x0 +/* enum: Trivial TX PD firmware for early Huntington development (Huntington + * development only) + */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 +/* enum: TX PD firmware with approximately Siena-compatible behaviour + * (Huntington development only) + */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 +/* enum: Full featured TX PD production firmware */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 +/* enum: (deprecated original name for the FULL_FEATURED variant) */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_VSWITCH 0x3 +/* enum: siena_compat variant TX PD firmware using PM rather than MAC + * (Huntington development only) + */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ +/* enum: TX PD firmware handling layer 2 only for high packet rate performance + * tests (Medford development only) + */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 +/* enum: Rules engine TX PD production firmware */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 +/* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe +/* Hardware capabilities of NIC */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_HW_CAPABILITIES_OFST 12 +/* Licensed capabilities */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_LICENSE_CAPABILITIES_OFST 16 +/* Second word of flags. Not present on older firmware (check the length). */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_FLAGS2_OFST 20 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_LBN 0 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_ENCAP_LBN 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_ENCAP_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_EVQ_TIMER_CTRL_LBN 2 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_EVQ_TIMER_CTRL_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_EVENT_CUT_THROUGH_LBN 3 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_EVENT_CUT_THROUGH_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_CUT_THROUGH_LBN 4 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_CUT_THROUGH_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VFIFO_ULL_MODE_LBN 5 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_V2_LBN 7 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_V2_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_TIMESTAMPING_LBN 8 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TIMESTAMP_LBN 9 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TIMESTAMP_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_SNIFF_LBN 10 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_SNIFF_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_SNIFF_LBN 11 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_SNIFF_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_BACKGROUND_LBN 13 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_BACKGROUND_WIDTH 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_DB_RETURN_LBN 14 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_DB_RETURN_WIDTH 1 +/* Number of FATSOv2 contexts per datapath supported by this NIC. Not present + * on older firmware (check the length). + */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 +/* One byte per PF containing the number of the external port assigned to this + * PF, indexed by PF number. Special values indicate that a PF is either not + * present or not assigned. + */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 +/* enum: The caller is not permitted to access information on this PF. */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_ACCESS_NOT_PERMITTED 0xff +/* enum: PF does not exist. */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_PF_NOT_PRESENT 0xfe +/* enum: PF does exist but is not assigned to any external port. */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_PF_NOT_ASSIGNED 0xfd +/* enum: This value indicates that PF is assigned, but it cannot be expressed + * in this field. It is intended for a possible future situation where a more + * complex scheme of PFs to ports mapping is being used. The future driver + * should look for a new field supporting the new scheme. The current/old + * driver should treat this value as PF_NOT_ASSIGNED. + */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc +/* One byte per PF containing the number of its VFs, indexed by PF number. A + * special value indicates that a PF is not present. + */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VFS_PER_PF_OFST 42 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VFS_PER_PF_LEN 1 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VFS_PER_PF_NUM 16 +/* enum: The caller is not permitted to access information on this PF. */ +/* MC_CMD_GET_CAPABILITIES_V3_OUT_ACCESS_NOT_PERMITTED 0xff */ +/* enum: PF does not exist. */ +/* MC_CMD_GET_CAPABILITIES_V3_OUT_PF_NOT_PRESENT 0xfe */ +/* Number of VIs available for each external port */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VIS_PER_PORT_OFST 58 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VIS_PER_PORT_LEN 2 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VIS_PER_PORT_NUM 4 +/* Size of RX descriptor cache expressed as binary logarithm The actual size + * equals (2 ^ RX_DESC_CACHE_SIZE) + */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DESC_CACHE_SIZE_OFST 66 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DESC_CACHE_SIZE_LEN 1 +/* Size of TX descriptor cache expressed as binary logarithm The actual size + * equals (2 ^ TX_DESC_CACHE_SIZE) + */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_DESC_CACHE_SIZE_OFST 67 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_DESC_CACHE_SIZE_LEN 1 +/* Total number of available PIO buffers */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_PIO_BUFFS_OFST 68 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_PIO_BUFFS_LEN 2 +/* Size of a single PIO buffer */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_SIZE_PIO_BUFF_OFST 70 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_SIZE_PIO_BUFF_LEN 2 +/* On chips later than Medford the amount of address space assigned to each VI + * is configurable. This is a global setting that the driver must query to + * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available + * with 8k VI windows. + */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_WINDOW_MODE_OFST 72 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_WINDOW_MODE_LEN 1 +/* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. + * CTPIO is not mapped. + */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_WINDOW_MODE_8K 0x0 +/* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_WINDOW_MODE_16K 0x1 +/* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_WINDOW_MODE_64K 0x2 +/* Number of vFIFOs per adapter that can be used for VFIFO Stuffing + * (SF-115995-SW) in the present configuration of firmware and port mode. + */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 +/* Number of buffers per adapter that can be used for VFIFO Stuffing + * (SF-115995-SW) in the present configuration of firmware and port mode. + */ +#define MC_CMD_GET_CAPABILITIES_V3_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 +#define MC_CMD_GET_CAPABILITIES_V3_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 + /***********************************/ /* MC_CMD_V2_EXTN @@ -11770,7 +12305,7 @@ #define MC_CMD_GET_RXDP_CONFIG 0xc2 #undef MC_CMD_0xc2_PRIVILEGE_CTG -#define MC_CMD_0xc2_PRIVILEGE_CTG SRIOV_CTG_ADMIN +#define MC_CMD_0xc2_PRIVILEGE_CTG SRIOV_CTG_GENERAL /* MC_CMD_GET_RXDP_CONFIG_IN msgrequest */ #define MC_CMD_GET_RXDP_CONFIG_IN_LEN 0 @@ -12635,6 +13170,8 @@ * more data is returned. */ #define MC_CMD_PCIE_TUNE_IN_POLL_EYE_PLOT 0x6 +/* enum: Enable the SERDES BIST and set it to generate a 200MHz square wave */ +#define MC_CMD_PCIE_TUNE_IN_BIST_SQUARE_WAVE 0x7 /* Align the arguments to 32 bits */ #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_RSVD_OFST 1 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_RSVD_LEN 3 @@ -12820,6 +13357,12 @@ #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_MINNUM 0 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_MAXNUM 126 +/* MC_CMD_PCIE_TUNE_BIST_SQUARE_WAVE_IN msgrequest */ +#define MC_CMD_PCIE_TUNE_BIST_SQUARE_WAVE_IN_LEN 0 + +/* MC_CMD_PCIE_TUNE_BIST_SQUARE_WAVE_OUT msgrequest */ +#define MC_CMD_PCIE_TUNE_BIST_SQUARE_WAVE_OUT_LEN 0 + /***********************************/ /* MC_CMD_LICENSING @@ -12887,7 +13430,9 @@ * that this operation returns a zero-length response */ #define MC_CMD_LICENSING_V3_IN_OP_UPDATE_LICENSE 0x0 -/* enum: report counts of installed licenses */ +/* enum: report counts of installed licenses Returns EAGAIN if license + * processing (updating) has been started but not yet completed. + */ #define MC_CMD_LICENSING_V3_IN_OP_REPORT_LICENSE 0x1 /* MC_CMD_LICENSING_V3_OUT msgresponse */ @@ -13142,7 +13687,7 @@ #define MC_CMD_0xd4_PRIVILEGE_CTG SRIOV_CTG_GENERAL /* MC_CMD_LICENSED_V3_VALIDATE_APP_IN msgrequest */ -#define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_LEN 62 +#define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_LEN 56 /* challenge for validation (384 bits) */ #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_CHALLENGE_OFST 0 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_CHALLENGE_LEN 48 @@ -13151,14 +13696,9 @@ #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_LEN 8 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_LO_OFST 48 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_HI_OFST 52 -/* MAC address of the calling client MC_CMD_ERR_EPERM is returned if the - * calling client is not allowed to use this MAC address. - */ -#define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_MACADDR_OFST 56 -#define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_MACADDR_LEN 6 /* MC_CMD_LICENSED_V3_VALIDATE_APP_OUT msgresponse */ -#define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_LEN 104 +#define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_LEN 116 /* validation response to challenge in the form of ECDSA signature consisting * of two 384-bit integers, r and s, in big-endian order. The signature signs a * SHA-384 digest of a message constructed from the concatenation of the input @@ -13175,6 +13715,17 @@ #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_EXPIRY_UNIT_ACC 0x0 /* enum: expiry units are calendar days */ #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_EXPIRY_UNIT_DAYS 0x1 +/* base MAC address of the NIC stored in NVRAM (note that this is a constant + * value for a given NIC regardless which function is calling, effectively this + * is PF0 base MAC address) + */ +#define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_BASE_MACADDR_OFST 104 +#define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_BASE_MACADDR_LEN 6 +/* MAC address of v-adaptor associated with the client. If no such v-adapator + * exists, then the field is filled with 0xFF. + */ +#define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_VADAPTOR_MACADDR_OFST 110 +#define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_VADAPTOR_MACADDR_LEN 6 /***********************************/ @@ -14565,9 +15116,12 @@ /***********************************/ /* MC_CMD_TSA_BIND * TSAN - TSAC binding communication protocol. Refer to SF-115479-TC for more - * info in respect to the binding protocol. Note- This MCDI command is only - * available over a TLS secure connection between the TSAN and TSAC, and is not - * available to host software. + * info in respect to the binding protocol. This MCDI command is only available + * over a TLS secure connection between the TSAN and TSAC, and is not available + * to host software. Note- The messages definitions that do comprise this MCDI + * command deemed as provisional. This MCDI command has not yet been used in + * any released code and may change during development. This note will be + * removed once it is regarded as stable. */ #define MC_CMD_TSA_BIND 0x119 #undef MC_CMD_0x119_PRIVILEGE_CTG @@ -14644,23 +15198,35 @@ #define MC_CMD_TSA_BIND_IN_UNBIND_TSANID_LEN 6 /* MC_CMD_TSA_BIND_OUT_GET_ID msgresponse */ -#define MC_CMD_TSA_BIND_OUT_GET_ID_LENMIN 11 +#define MC_CMD_TSA_BIND_OUT_GET_ID_LENMIN 15 #define MC_CMD_TSA_BIND_OUT_GET_ID_LENMAX 252 -#define MC_CMD_TSA_BIND_OUT_GET_ID_LEN(num) (10+1*(num)) +#define MC_CMD_TSA_BIND_OUT_GET_ID_LEN(num) (14+1*(num)) /* The operation completion code. */ #define MC_CMD_TSA_BIND_OUT_GET_ID_OP_OFST 0 +/* Rules engine type. Note- The rules engine type allows TSAC to further + * identify the connected endpoint (e.g. TSAN, NIC Emulator) type and take the + * proper action accordingly. As an example, TSAC uses the rules engine type to + * select the SF key that differs in the case of TSAN vs. NIC Emulator. + */ +#define MC_CMD_TSA_BIND_OUT_GET_ID_RULE_ENGINE_OFST 4 +/* enum: Hardware rules engine. */ +#define MC_CMD_TSA_BIND_OUT_GET_ID_RULE_ENGINE_TSAN 0x1 +/* enum: Nic emulator rules engine. */ +#define MC_CMD_TSA_BIND_OUT_GET_ID_RULE_ENGINE_NEMU 0x2 +/* enum: SSFE. */ +#define MC_CMD_TSA_BIND_OUT_GET_ID_RULE_ENGINE_SSFE 0x3 /* TSAN unique identifier for the network adapter */ -#define MC_CMD_TSA_BIND_OUT_GET_ID_TSANID_OFST 4 +#define MC_CMD_TSA_BIND_OUT_GET_ID_TSANID_OFST 8 #define MC_CMD_TSA_BIND_OUT_GET_ID_TSANID_LEN 6 /* The signature data blob. The signature is computed against the message * formed by TSAN ID concatenated with the NONCE value. Refer to SF-115479-TC * for more information also in respect to the private keys that are used to * sign the message based on TSAN pre/post-binding authentication procedure. */ -#define MC_CMD_TSA_BIND_OUT_GET_ID_SIG_OFST 10 +#define MC_CMD_TSA_BIND_OUT_GET_ID_SIG_OFST 14 #define MC_CMD_TSA_BIND_OUT_GET_ID_SIG_LEN 1 #define MC_CMD_TSA_BIND_OUT_GET_ID_SIG_MINNUM 1 -#define MC_CMD_TSA_BIND_OUT_GET_ID_SIG_MAXNUM 242 +#define MC_CMD_TSA_BIND_OUT_GET_ID_SIG_MAXNUM 238 /* MC_CMD_TSA_BIND_OUT_GET_TICKET msgresponse */ #define MC_CMD_TSA_BIND_OUT_GET_TICKET_LENMIN 5 @@ -15044,4 +15610,84 @@ /* MC_CMD_DEALLOCATE_TX_VFIFO_CP_OUT msgresponse */ #define MC_CMD_DEALLOCATE_TX_VFIFO_CP_OUT_LEN 0 + +/***********************************/ +/* MC_CMD_REKEY + * This request causes the NIC to generate a new per-NIC key and program it + * into the write-once memory. During the process all flash partitions that are + * protected with a CMAC are verified with the old per-NIC key and then signed + * with the new per-NIC key. If the NIC has already reached its rekey limit the + * REKEY op will return MC_CMD_ERR_ERANGE. The REKEY op may block until + * completion or it may return 0 and continue processing, therefore the caller + * must poll at least once to confirm that the rekeying has completed. The POLL + * operation returns MC_CMD_ERR_EBUSY if the rekey process is still running + * otherwise it will return the result of the last completed rekey operation, + * or 0 if there has not been a previous rekey. + */ +#define MC_CMD_REKEY 0x123 +#undef MC_CMD_0x123_PRIVILEGE_CTG + +#define MC_CMD_0x123_PRIVILEGE_CTG SRIOV_CTG_ADMIN + +/* MC_CMD_REKEY_IN msgrequest */ +#define MC_CMD_REKEY_IN_LEN 4 +/* the type of operation requested */ +#define MC_CMD_REKEY_IN_OP_OFST 0 +/* enum: Start the rekeying operation */ +#define MC_CMD_REKEY_IN_OP_REKEY 0x0 +/* enum: Poll for completion of the rekeying operation */ +#define MC_CMD_REKEY_IN_OP_POLL 0x1 + +/* MC_CMD_REKEY_OUT msgresponse */ +#define MC_CMD_REKEY_OUT_LEN 0 + + +/***********************************/ +/* MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS + * This interface allows the host to find out how many common pool buffers are + * not yet assigned. + */ +#define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS 0x124 +#undef MC_CMD_0x124_PRIVILEGE_CTG + +#define MC_CMD_0x124_PRIVILEGE_CTG SRIOV_CTG_ADMIN + +/* MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_IN msgrequest */ +#define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_IN_LEN 0 + +/* MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_OUT msgresponse */ +#define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_OUT_LEN 8 +/* Available buffers for the ENG to NET vFIFOs. */ +#define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_OUT_NET_OFST 0 +/* Available buffers for the ENG to ENG and NET to ENG vFIFOs. */ +#define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_OUT_ENG_OFST 4 + + +/***********************************/ +/* MC_CMD_SET_SECURITY_FUSES + * Change the security level of the adapter by setting bits in the write-once + * memory. The firmware maps each flag in the message to a set of one or more + * hardware-defined or software-defined bits and sets these bits in the write- + * once memory. For Medford the hardware-defined bits are defined in + * SF-112079-PS 5.3, the software-defined bits are defined in xpm.h. Returns 0 + * if all of the required bits were set and returns MC_CMD_ERR_EIO if any of + * the required bits were not set. + */ +#define MC_CMD_SET_SECURITY_FUSES 0x126 +#undef MC_CMD_0x126_PRIVILEGE_CTG + +#define MC_CMD_0x126_PRIVILEGE_CTG SRIOV_CTG_ADMIN + +/* MC_CMD_SET_SECURITY_FUSES_IN msgrequest */ +#define MC_CMD_SET_SECURITY_FUSES_IN_LEN 4 +/* Flags specifying what type of security features are being set */ +#define MC_CMD_SET_SECURITY_FUSES_IN_FLAGS_OFST 0 +#define MC_CMD_SET_SECURITY_FUSES_IN_SECURE_BOOT_LBN 0 +#define MC_CMD_SET_SECURITY_FUSES_IN_SECURE_BOOT_WIDTH 1 +#define MC_CMD_SET_SECURITY_FUSES_IN_REJECT_TEST_SIGNED_LBN 1 +#define MC_CMD_SET_SECURITY_FUSES_IN_REJECT_TEST_SIGNED_WIDTH 1 + +/* MC_CMD_SET_SECURITY_FUSES_OUT msgresponse */ +#define MC_CMD_SET_SECURITY_FUSES_OUT_LEN 0 + #endif /* _SIENA_MC_DRIVER_PCOL_H */ diff --git a/sys/dev/sfxge/common/efx_rx.c b/sys/dev/sfxge/common/efx_rx.c index 4a3b76e..5ae2c09 100644 --- a/sys/dev/sfxge/common/efx_rx.c +++ b/sys/dev/sfxge/common/efx_rx.c @@ -540,25 +540,31 @@ efx_rx_qdestroy( } __checkReturn efx_rc_t -efx_psuedo_hdr_pkt_length_get( - __in efx_nic_t *enp, +efx_pseudo_hdr_pkt_length_get( + __in efx_rxq_t *erp, __in uint8_t *buffer, __out uint16_t *lengthp) { + efx_nic_t *enp = erp->er_enp; const efx_rx_ops_t *erxop = enp->en_erxop; + EFSYS_ASSERT3U(erp->er_magic, ==, EFX_RXQ_MAGIC); + return (erxop->erxo_prefix_pktlen(enp, buffer, lengthp)); } #if EFSYS_OPT_RX_SCALE __checkReturn uint32_t -efx_psuedo_hdr_hash_get( - __in efx_nic_t *enp, +efx_pseudo_hdr_hash_get( + __in efx_rxq_t *erp, __in efx_rx_hash_alg_t func, __in uint8_t *buffer) { + efx_nic_t *enp = erp->er_enp; const efx_rx_ops_t *erxop = enp->en_erxop; + EFSYS_ASSERT3U(erp->er_magic, ==, EFX_RXQ_MAGIC); + EFSYS_ASSERT3U(enp->en_hash_support, ==, EFX_RX_HASH_AVAILABLE); return (erxop->erxo_prefix_hash(enp, func, buffer)); } @@ -725,12 +731,12 @@ siena_rx_scale_mode_set( case EFX_RX_HASHALG_TOEPLITZ: EFX_RX_TOEPLITZ_IPV4_HASH(enp, insert, - type & (1 << EFX_RX_HASH_IPV4), - type & (1 << EFX_RX_HASH_TCPIPV4)); + type & EFX_RX_HASH_IPV4, + type & EFX_RX_HASH_TCPIPV4); EFX_RX_TOEPLITZ_IPV6_HASH(enp, - type & (1 << EFX_RX_HASH_IPV6), - type & (1 << EFX_RX_HASH_TCPIPV6), + type & EFX_RX_HASH_IPV6, + type & EFX_RX_HASH_TCPIPV6, rc); if (rc != 0) goto fail1; @@ -943,11 +949,11 @@ fail1: #endif /* - * Falcon/Siena psuedo-header + * Falcon/Siena pseudo-header * -------------------------- * * Receive packets are prefixed by an optional 16 byte pseudo-header. - * The psuedo-header is a byte array of one of the forms: + * The pseudo-header is a byte array of one of the forms: * * 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 * xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.TT.TT.TT.TT diff --git a/sys/dev/sfxge/common/efx_tx.c b/sys/dev/sfxge/common/efx_tx.c index c270784..cb976af 100644 --- a/sys/dev/sfxge/common/efx_tx.c +++ b/sys/dev/sfxge/common/efx_tx.c @@ -329,7 +329,7 @@ efx_tx_qcreate( if ((rc = etxop->etxo_qcreate(enp, index, label, esmp, n, id, flags, eep, etp, addedp)) != 0) - goto fail2; + goto fail2; enp->en_tx_qcount++; *etpp = etp; @@ -748,8 +748,12 @@ siena_tx_qpost( size_t size = ebp->eb_size; efsys_dma_addr_t end = start + size; - /* Fragments must not span 4k boundaries. */ - EFSYS_ASSERT(P2ROUNDUP(start + 1, 4096) >= end); + /* + * Fragments must not span 4k boundaries. + * Here it is a stricter requirement than the maximum length. + */ + EFSYS_ASSERT(P2ROUNDUP(start + 1, + etp->et_enp->en_nic_cfg.enc_tx_dma_desc_boundary) >= end); EFX_TX_DESC(etp, start, size, ebp->eb_eop, added); } @@ -1009,8 +1013,12 @@ siena_tx_qdesc_dma_create( __in boolean_t eop, __out efx_desc_t *edp) { - /* Fragments must not span 4k boundaries. */ - EFSYS_ASSERT(P2ROUNDUP(addr + 1, 4096) >= addr + size); + /* + * Fragments must not span 4k boundaries. + * Here it is a stricter requirement than the maximum length. + */ + EFSYS_ASSERT(P2ROUNDUP(addr + 1, + etp->et_enp->en_nic_cfg.enc_tx_dma_desc_boundary) >= addr + size); EFSYS_PROBE4(tx_desc_dma_create, unsigned int, etp->et_index, efsys_dma_addr_t, addr, @@ -1029,8 +1037,8 @@ siena_tx_qdesc_dma_create( #if EFSYS_OPT_QSTATS #if EFSYS_OPT_NAMES -/* START MKCONFIG GENERATED EfxTransmitQueueStatNamesBlock 9d8d26a0a5e2c453 */ -static const char *__efx_tx_qstat_name[] = { +/* START MKCONFIG GENERATED EfxTransmitQueueStatNamesBlock 2866874ecd7a363b */ +static const char * const __efx_tx_qstat_name[] = { "post", "post_pio", }; diff --git a/sys/dev/sfxge/common/efx_types.h b/sys/dev/sfxge/common/efx_types.h index 4289145..fb5d550 100644 --- a/sys/dev/sfxge/common/efx_types.h +++ b/sys/dev/sfxge/common/efx_types.h @@ -238,7 +238,7 @@ typedef union efx_oword_u { #endif #if EFSYS_HAS_UINT64 uint64_t eo_u64[2]; -#endif +#endif uint32_t eo_u32[4]; uint16_t eo_u16[8]; uint8_t eo_u8[16]; @@ -246,7 +246,7 @@ typedef union efx_oword_u { #pragma pack() -#define __SWAP16(_x) \ +#define __SWAP16(_x) \ ((((_x) & 0xff) << 8) | \ (((_x) >> 8) & 0xff)) @@ -264,37 +264,37 @@ typedef union efx_oword_u { #if EFSYS_IS_BIG_ENDIAN -#define __CPU_TO_LE_16(_x) (uint16_t)__SWAP16(_x) -#define __LE_TO_CPU_16(_x) (uint16_t)__SWAP16(_x) -#define __CPU_TO_BE_16(_x) (uint16_t)__NOSWAP16(_x) -#define __BE_TO_CPU_16(_x) (uint16_t)__NOSWAP16(_x) +#define __CPU_TO_LE_16(_x) ((uint16_t)__SWAP16(_x)) +#define __LE_TO_CPU_16(_x) ((uint16_t)__SWAP16(_x)) +#define __CPU_TO_BE_16(_x) ((uint16_t)__NOSWAP16(_x)) +#define __BE_TO_CPU_16(_x) ((uint16_t)__NOSWAP16(_x)) -#define __CPU_TO_LE_32(_x) (uint32_t)__SWAP32(_x) -#define __LE_TO_CPU_32(_x) (uint32_t)__SWAP32(_x) -#define __CPU_TO_BE_32(_x) (uint32_t)__NOSWAP32(_x) -#define __BE_TO_CPU_32(_x) (uint32_t)__NOSWAP32(_x) +#define __CPU_TO_LE_32(_x) ((uint32_t)__SWAP32(_x)) +#define __LE_TO_CPU_32(_x) ((uint32_t)__SWAP32(_x)) +#define __CPU_TO_BE_32(_x) ((uint32_t)__NOSWAP32(_x)) +#define __BE_TO_CPU_32(_x) ((uint32_t)__NOSWAP32(_x)) -#define __CPU_TO_LE_64(_x) (uint64_t)__SWAP64(_x) -#define __LE_TO_CPU_64(_x) (uint64_t)__SWAP64(_x) -#define __CPU_TO_BE_64(_x) (uint64_t)__NOSWAP64(_x) -#define __BE_TO_CPU_64(_x) (uint64_t)__NOSWAP64(_x) +#define __CPU_TO_LE_64(_x) ((uint64_t)__SWAP64(_x)) +#define __LE_TO_CPU_64(_x) ((uint64_t)__SWAP64(_x)) +#define __CPU_TO_BE_64(_x) ((uint64_t)__NOSWAP64(_x)) +#define __BE_TO_CPU_64(_x) ((uint64_t)__NOSWAP64(_x)) #elif EFSYS_IS_LITTLE_ENDIAN -#define __CPU_TO_LE_16(_x) (uint16_t)__NOSWAP16(_x) -#define __LE_TO_CPU_16(_x) (uint16_t)__NOSWAP16(_x) -#define __CPU_TO_BE_16(_x) (uint16_t)__SWAP16(_x) -#define __BE_TO_CPU_16(_x) (uint16_t)__SWAP16(_x) +#define __CPU_TO_LE_16(_x) ((uint16_t)__NOSWAP16(_x)) +#define __LE_TO_CPU_16(_x) ((uint16_t)__NOSWAP16(_x)) +#define __CPU_TO_BE_16(_x) ((uint16_t)__SWAP16(_x)) +#define __BE_TO_CPU_16(_x) ((uint16_t)__SWAP16(_x)) -#define __CPU_TO_LE_32(_x) (uint32_t)__NOSWAP32(_x) -#define __LE_TO_CPU_32(_x) (uint32_t)__NOSWAP32(_x) -#define __CPU_TO_BE_32(_x) (uint32_t)__SWAP32(_x) -#define __BE_TO_CPU_32(_x) (uint32_t)__SWAP32(_x) +#define __CPU_TO_LE_32(_x) ((uint32_t)__NOSWAP32(_x)) +#define __LE_TO_CPU_32(_x) ((uint32_t)__NOSWAP32(_x)) +#define __CPU_TO_BE_32(_x) ((uint32_t)__SWAP32(_x)) +#define __BE_TO_CPU_32(_x) ((uint32_t)__SWAP32(_x)) -#define __CPU_TO_LE_64(_x) (uint64_t)__NOSWAP64(_x) -#define __LE_TO_CPU_64(_x) (uint64_t)__NOSWAP64(_x) -#define __CPU_TO_BE_64(_x) (uint64_t)__SWAP64(_x) -#define __BE_TO_CPU_64(_x) (uint64_t)__SWAP64(_x) +#define __CPU_TO_LE_64(_x) ((uint64_t)__NOSWAP64(_x)) +#define __LE_TO_CPU_64(_x) ((uint64_t)__NOSWAP64(_x)) +#define __CPU_TO_BE_64(_x) ((uint64_t)__SWAP64(_x)) +#define __BE_TO_CPU_64(_x) ((uint64_t)__SWAP64(_x)) #else @@ -688,21 +688,21 @@ extern int fix_lint; _field7, _value7, _field8, _value8, _field9, _value9, \ _field10, _value10) \ do { \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_oword).eo_u64[0] = EFX_INSERT_FIELDS64(0, 63, \ _field1, _value1, _field2, _value2, \ _field3, _value3, _field4, _value4, \ _field5, _value5, _field6, _value6, \ _field7, _value7, _field8, _value8, \ _field9, _value9, _field10, _value10); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_oword).eo_u64[1] = EFX_INSERT_FIELDS64(64, 127, \ _field1, _value1, _field2, _value2, \ _field3, _value3, _field4, _value4, \ _field5, _value5, _field6, _value6, \ _field7, _value7, _field8, _value8, \ _field9, _value9, _field10, _value10); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_POPULATE_OWORD32(_oword, \ @@ -711,35 +711,35 @@ extern int fix_lint; _field7, _value7, _field8, _value8, _field9, _value9, \ _field10, _value10) \ do { \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_oword).eo_u32[0] = EFX_INSERT_FIELDS32(0, 31, \ _field1, _value1, _field2, _value2, \ _field3, _value3, _field4, _value4, \ _field5, _value5, _field6, _value6, \ _field7, _value7, _field8, _value8, \ _field9, _value9, _field10, _value10); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_oword).eo_u32[1] = EFX_INSERT_FIELDS32(32, 63, \ _field1, _value1, _field2, _value2, \ _field3, _value3, _field4, _value4, \ _field5, _value5, _field6, _value6, \ _field7, _value7, _field8, _value8, \ _field9, _value9, _field10, _value10); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_oword).eo_u32[2] = EFX_INSERT_FIELDS32(64, 95, \ _field1, _value1, _field2, _value2, \ _field3, _value3, _field4, _value4, \ _field5, _value5, _field6, _value6, \ _field7, _value7, _field8, _value8, \ _field9, _value9, _field10, _value10); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_oword).eo_u32[3] = EFX_INSERT_FIELDS32(96, 127, \ _field1, _value1, _field2, _value2, \ _field3, _value3, _field4, _value4, \ _field5, _value5, _field6, _value6, \ _field7, _value7, _field8, _value8, \ _field9, _value9, _field10, _value10); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_POPULATE_QWORD64(_qword, \ @@ -748,14 +748,14 @@ extern int fix_lint; _field7, _value7, _field8, _value8, _field9, _value9, \ _field10, _value10) \ do { \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_qword).eq_u64[0] = EFX_INSERT_FIELDS64(0, 63, \ _field1, _value1, _field2, _value2, \ _field3, _value3, _field4, _value4, \ _field5, _value5, _field6, _value6, \ _field7, _value7, _field8, _value8, \ _field9, _value9, _field10, _value10); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_POPULATE_QWORD32(_qword, \ @@ -764,21 +764,21 @@ extern int fix_lint; _field7, _value7, _field8, _value8, _field9, _value9, \ _field10, _value10) \ do { \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_qword).eq_u32[0] = EFX_INSERT_FIELDS32(0, 31, \ _field1, _value1, _field2, _value2, \ _field3, _value3, _field4, _value4, \ _field5, _value5, _field6, _value6, \ _field7, _value7, _field8, _value8, \ _field9, _value9, _field10, _value10); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_qword).eq_u32[1] = EFX_INSERT_FIELDS32(32, 63, \ _field1, _value1, _field2, _value2, \ _field3, _value3, _field4, _value4, \ _field5, _value5, _field6, _value6, \ _field7, _value7, _field8, _value8, \ _field9, _value9, _field10, _value10); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_POPULATE_DWORD(_dword, \ @@ -787,7 +787,7 @@ extern int fix_lint; _field7, _value7, _field8, _value8, _field9, _value9, \ _field10, _value10) \ do { \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_dword).ed_u32[0] = EFX_INSERT_FIELDS32(0, 31, \ _field1, _value1, _field2, _value2, \ _field3, _value3, _field4, _value4, \ @@ -803,7 +803,7 @@ extern int fix_lint; _field7, _value7, _field8, _value8, _field9, _value9, \ _field10, _value10) \ do { \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_word).ew_u16[0] = EFX_INSERT_FIELDS16(0, 15, \ _field1, _value1, _field2, _value2, \ _field3, _value3, _field4, _value4, \ @@ -819,7 +819,7 @@ extern int fix_lint; _field7, _value7, _field8, _value8, _field9, _value9, \ _field10, _value10) \ do { \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_byte).eb_u8[0] = EFX_INSERT_FIELDS8(0, 7, \ _field1, _value1, _field2, _value2, \ _field3, _value3, _field4, _value4, \ @@ -1212,105 +1212,105 @@ extern int fix_lint; #define EFX_INSERT_FIELD8(_min, _max, _field, _value) \ __NATIVE_8(EFX_INSERT_FIELD_NATIVE8(_min, _max, _field, _value)) -#define EFX_INPLACE_MASK64(_min, _max, _field) \ +#define EFX_INPLACE_MASK64(_min, _max, _field) \ EFX_INSERT_FIELD64(_min, _max, _field, EFX_MASK64(_field)) -#define EFX_INPLACE_MASK32(_min, _max, _field) \ +#define EFX_INPLACE_MASK32(_min, _max, _field) \ EFX_INSERT_FIELD32(_min, _max, _field, EFX_MASK32(_field)) -#define EFX_INPLACE_MASK16(_min, _max, _field) \ +#define EFX_INPLACE_MASK16(_min, _max, _field) \ EFX_INSERT_FIELD16(_min, _max, _field, EFX_MASK16(_field)) -#define EFX_INPLACE_MASK8(_min, _max, _field) \ +#define EFX_INPLACE_MASK8(_min, _max, _field) \ EFX_INSERT_FIELD8(_min, _max, _field, EFX_MASK8(_field)) #define EFX_SET_OWORD_FIELD64(_oword, _field, _value) \ do { \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_oword).eo_u64[0] = (((_oword).eo_u64[0] & \ ~EFX_INPLACE_MASK64(0, 63, _field)) | \ EFX_INSERT_FIELD64(0, 63, _field, _value)); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_oword).eo_u64[1] = (((_oword).eo_u64[1] & \ ~EFX_INPLACE_MASK64(64, 127, _field)) | \ EFX_INSERT_FIELD64(64, 127, _field, _value)); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_SET_OWORD_FIELD32(_oword, _field, _value) \ do { \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_oword).eo_u32[0] = (((_oword).eo_u32[0] & \ ~EFX_INPLACE_MASK32(0, 31, _field)) | \ EFX_INSERT_FIELD32(0, 31, _field, _value)); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_oword).eo_u32[1] = (((_oword).eo_u32[1] & \ ~EFX_INPLACE_MASK32(32, 63, _field)) | \ EFX_INSERT_FIELD32(32, 63, _field, _value)); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_oword).eo_u32[2] = (((_oword).eo_u32[2] & \ ~EFX_INPLACE_MASK32(64, 95, _field)) | \ EFX_INSERT_FIELD32(64, 95, _field, _value)); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_oword).eo_u32[3] = (((_oword).eo_u32[3] & \ ~EFX_INPLACE_MASK32(96, 127, _field)) | \ EFX_INSERT_FIELD32(96, 127, _field, _value)); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_SET_QWORD_FIELD64(_qword, _field, _value) \ do { \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_qword).eq_u64[0] = (((_qword).eq_u64[0] & \ ~EFX_INPLACE_MASK64(0, 63, _field)) | \ EFX_INSERT_FIELD64(0, 63, _field, _value)); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_SET_QWORD_FIELD32(_qword, _field, _value) \ do { \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_qword).eq_u32[0] = (((_qword).eq_u32[0] & \ ~EFX_INPLACE_MASK32(0, 31, _field)) | \ EFX_INSERT_FIELD32(0, 31, _field, _value)); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_qword).eq_u32[1] = (((_qword).eq_u32[1] & \ ~EFX_INPLACE_MASK32(32, 63, _field)) | \ EFX_INSERT_FIELD32(32, 63, _field, _value)); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_SET_DWORD_FIELD(_dword, _field, _value) \ do { \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_dword).ed_u32[0] = (((_dword).ed_u32[0] & \ ~EFX_INPLACE_MASK32(0, 31, _field)) | \ EFX_INSERT_FIELD32(0, 31, _field, _value)); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_SET_WORD_FIELD(_word, _field, _value) \ do { \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_word).ew_u16[0] = (((_word).ew_u16[0] & \ ~EFX_INPLACE_MASK16(0, 15, _field)) | \ EFX_INSERT_FIELD16(0, 15, _field, _value)); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_SET_BYTE_FIELD(_byte, _field, _value) \ do { \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_byte).eb_u8[0] = (((_byte).eb_u8[0] & \ ~EFX_INPLACE_MASK8(0, 7, _field)) | \ EFX_INSERT_FIELD8(0, 7, _field, _value)); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) /* * Set or clear a numbered bit within an octword. */ - + #define EFX_SHIFT64(_bit, _base) \ (((_bit) >= (_base) && (_bit) < (_base) + 64) ? \ ((uint64_t)1 << ((_bit) - (_base))) : \ @@ -1333,17 +1333,17 @@ extern int fix_lint; #define EFX_SET_OWORD_BIT64(_oword, _bit) \ do { \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_oword).eo_u64[0] |= \ __CPU_TO_LE_64(EFX_SHIFT64(_bit, FIX_LINT(0))); \ (_oword).eo_u64[1] |= \ __CPU_TO_LE_64(EFX_SHIFT64(_bit, FIX_LINT(64))); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_SET_OWORD_BIT32(_oword, _bit) \ do { \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_oword).eo_u32[0] |= \ __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(0))); \ (_oword).eo_u32[1] |= \ @@ -1352,22 +1352,22 @@ extern int fix_lint; __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(64))); \ (_oword).eo_u32[3] |= \ __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(96))); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_CLEAR_OWORD_BIT64(_oword, _bit) \ do { \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_oword).eo_u64[0] &= \ __CPU_TO_LE_64(~EFX_SHIFT64(_bit, FIX_LINT(0))); \ (_oword).eo_u64[1] &= \ __CPU_TO_LE_64(~EFX_SHIFT64(_bit, FIX_LINT(64))); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_CLEAR_OWORD_BIT32(_oword, _bit) \ do { \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_oword).eo_u32[0] &= \ __CPU_TO_LE_32(~EFX_SHIFT32(_bit, FIX_LINT(0))); \ (_oword).eo_u32[1] &= \ @@ -1376,7 +1376,7 @@ extern int fix_lint; __CPU_TO_LE_32(~EFX_SHIFT32(_bit, FIX_LINT(64))); \ (_oword).eo_u32[3] &= \ __CPU_TO_LE_32(~EFX_SHIFT32(_bit, FIX_LINT(96))); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_TEST_OWORD_BIT64(_oword, _bit) \ @@ -1398,38 +1398,38 @@ extern int fix_lint; #define EFX_SET_QWORD_BIT64(_qword, _bit) \ do { \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_qword).eq_u64[0] |= \ __CPU_TO_LE_64(EFX_SHIFT64(_bit, FIX_LINT(0))); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_SET_QWORD_BIT32(_qword, _bit) \ do { \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_qword).eq_u32[0] |= \ __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(0))); \ (_qword).eq_u32[1] |= \ __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(32))); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_CLEAR_QWORD_BIT64(_qword, _bit) \ do { \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_qword).eq_u64[0] &= \ __CPU_TO_LE_64(~EFX_SHIFT64(_bit, FIX_LINT(0))); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_CLEAR_QWORD_BIT32(_qword, _bit) \ do { \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ (_qword).eq_u32[0] &= \ __CPU_TO_LE_32(~EFX_SHIFT32(_bit, FIX_LINT(0))); \ (_qword).eq_u32[1] &= \ __CPU_TO_LE_32(~EFX_SHIFT32(_bit, FIX_LINT(32))); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_TEST_QWORD_BIT64(_qword, _bit) \ @@ -1447,14 +1447,14 @@ extern int fix_lint; do { \ (_dword).ed_u32[0] |= \ __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(0))); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_CLEAR_DWORD_BIT(_dword, _bit) \ do { \ (_dword).ed_u32[0] &= \ __CPU_TO_LE_32(~EFX_SHIFT32(_bit, FIX_LINT(0))); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_TEST_DWORD_BIT(_dword, _bit) \ @@ -1466,14 +1466,14 @@ extern int fix_lint; do { \ (_word).ew_u16[0] |= \ __CPU_TO_LE_16(EFX_SHIFT16(_bit, FIX_LINT(0))); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_CLEAR_WORD_BIT(_word, _bit) \ do { \ (_word).ew_u32[0] &= \ __CPU_TO_LE_16(~EFX_SHIFT16(_bit, FIX_LINT(0))); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_TEST_WORD_BIT(_word, _bit) \ @@ -1485,14 +1485,14 @@ extern int fix_lint; do { \ (_byte).eb_u8[0] |= \ __NATIVE_8(EFX_SHIFT8(_bit, FIX_LINT(0))); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_CLEAR_BYTE_BIT(_byte, _bit) \ do { \ (_byte).eb_u8[0] &= \ __NATIVE_8(~EFX_SHIFT8(_bit, FIX_LINT(0))); \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_TEST_BYTE_BIT(_byte, _bit) \ @@ -1504,7 +1504,7 @@ extern int fix_lint; do { \ (_oword1).eo_u64[0] |= (_oword2).eo_u64[0]; \ (_oword1).eo_u64[1] |= (_oword2).eo_u64[1]; \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_OR_OWORD32(_oword1, _oword2) \ @@ -1513,14 +1513,14 @@ extern int fix_lint; (_oword1).eo_u32[1] |= (_oword2).eo_u32[1]; \ (_oword1).eo_u32[2] |= (_oword2).eo_u32[2]; \ (_oword1).eo_u32[3] |= (_oword2).eo_u32[3]; \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_AND_OWORD64(_oword1, _oword2) \ do { \ (_oword1).eo_u64[0] &= (_oword2).eo_u64[0]; \ (_oword1).eo_u64[1] &= (_oword2).eo_u64[1]; \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_AND_OWORD32(_oword1, _oword2) \ @@ -1529,69 +1529,69 @@ extern int fix_lint; (_oword1).eo_u32[1] &= (_oword2).eo_u32[1]; \ (_oword1).eo_u32[2] &= (_oword2).eo_u32[2]; \ (_oword1).eo_u32[3] &= (_oword2).eo_u32[3]; \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_OR_QWORD64(_qword1, _qword2) \ do { \ (_qword1).eq_u64[0] |= (_qword2).eq_u64[0]; \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_OR_QWORD32(_qword1, _qword2) \ do { \ (_qword1).eq_u32[0] |= (_qword2).eq_u32[0]; \ (_qword1).eq_u32[1] |= (_qword2).eq_u32[1]; \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_AND_QWORD64(_qword1, _qword2) \ do { \ (_qword1).eq_u64[0] &= (_qword2).eq_u64[0]; \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_AND_QWORD32(_qword1, _qword2) \ do { \ (_qword1).eq_u32[0] &= (_qword2).eq_u32[0]; \ (_qword1).eq_u32[1] &= (_qword2).eq_u32[1]; \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_OR_DWORD(_dword1, _dword2) \ do { \ (_dword1).ed_u32[0] |= (_dword2).ed_u32[0]; \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_AND_DWORD(_dword1, _dword2) \ do { \ (_dword1).ed_u32[0] &= (_dword2).ed_u32[0]; \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_OR_WORD(_word1, _word2) \ do { \ (_word1).ew_u16[0] |= (_word2).ew_u16[0]; \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_AND_WORD(_word1, _word2) \ do { \ (_word1).ew_u16[0] &= (_word2).ew_u16[0]; \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_OR_BYTE(_byte1, _byte2) \ do { \ (_byte1).eb_u8[0] |= (_byte2).eb_u8[0]; \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #define EFX_AND_BYTE(_byte1, _byte2) \ do { \ (_byte1).eb_u8[0] &= (_byte2).eb_u8[0]; \ - _NOTE(CONSTANTCONDITION) \ + _NOTE(CONSTANTCONDITION) \ } while (B_FALSE) #if EFSYS_USE_UINT64 diff --git a/sys/dev/sfxge/common/efx_wol.c b/sys/dev/sfxge/common/efx_wol.c deleted file mode 100644 index dd1a85f..0000000 --- a/sys/dev/sfxge/common/efx_wol.c +++ /dev/null @@ -1,415 +0,0 @@ -/*- - * Copyright (c) 2009-2016 Solarflare Communications Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; - * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, - * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are - * those of the authors and should not be interpreted as representing official - * policies, either expressed or implied, of the FreeBSD Project. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include "efx.h" -#include "efx_impl.h" - -#if EFSYS_OPT_WOL - - __checkReturn efx_rc_t -efx_wol_init( - __in efx_nic_t *enp) -{ - efx_nic_cfg_t *encp = &(enp->en_nic_cfg); - efx_rc_t rc; - - EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); - EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_PROBE); - EFSYS_ASSERT(!(enp->en_mod_flags & EFX_MOD_WOL)); - - if (~(encp->enc_features) & EFX_FEATURE_WOL) { - rc = ENOTSUP; - goto fail1; - } - - /* Current implementation is Siena specific */ - EFSYS_ASSERT3U(enp->en_family, ==, EFX_FAMILY_SIENA); - - enp->en_mod_flags |= EFX_MOD_WOL; - - return (0); - -fail1: - EFSYS_PROBE1(fail1, efx_rc_t, rc); - - return (rc); -} - - __checkReturn efx_rc_t -efx_wol_filter_clear( - __in efx_nic_t *enp) -{ - efx_mcdi_req_t req; - uint8_t payload[MAX(MC_CMD_WOL_FILTER_RESET_IN_LEN, - MC_CMD_WOL_FILTER_RESET_OUT_LEN)]; - efx_rc_t rc; - - EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); - EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_WOL); - - (void) memset(payload, 0, sizeof (payload)); - req.emr_cmd = MC_CMD_WOL_FILTER_RESET; - req.emr_in_buf = payload; - req.emr_in_length = MC_CMD_WOL_FILTER_RESET_IN_LEN; - req.emr_out_buf = payload; - req.emr_out_length = MC_CMD_WOL_FILTER_RESET_OUT_LEN; - - MCDI_IN_SET_DWORD(req, WOL_FILTER_RESET_IN_MASK, - MC_CMD_WOL_FILTER_RESET_IN_WAKE_FILTERS | - MC_CMD_WOL_FILTER_RESET_IN_LIGHTSOUT_OFFLOADS); - - efx_mcdi_execute(enp, &req); - - if (req.emr_rc != 0) { - rc = req.emr_rc; - goto fail1; - } - - return (0); - -fail1: - EFSYS_PROBE1(fail1, efx_rc_t, rc); - - return (rc); -} - - __checkReturn efx_rc_t -efx_wol_filter_add( - __in efx_nic_t *enp, - __in efx_wol_type_t type, - __in efx_wol_param_t *paramp, - __out uint32_t *filter_idp) -{ - efx_mcdi_req_t req; - uint8_t payload[MAX(MC_CMD_WOL_FILTER_SET_IN_LEN, - MC_CMD_WOL_FILTER_SET_OUT_LEN)]; - efx_byte_t link_mask; - efx_rc_t rc; - - EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); - EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_WOL); - - (void) memset(payload, 0, sizeof (payload)); - req.emr_cmd = MC_CMD_WOL_FILTER_SET; - req.emr_in_buf = payload; - req.emr_in_length = MC_CMD_WOL_FILTER_SET_IN_LEN; - req.emr_out_buf = payload; - req.emr_out_length = MC_CMD_WOL_FILTER_SET_OUT_LEN; - - switch (type) { - case EFX_WOL_TYPE_MAGIC: - MCDI_IN_SET_DWORD(req, WOL_FILTER_SET_IN_FILTER_MODE, - MC_CMD_FILTER_MODE_SIMPLE); - MCDI_IN_SET_DWORD(req, WOL_FILTER_SET_IN_WOL_TYPE, - MC_CMD_WOL_TYPE_MAGIC); - EFX_MAC_ADDR_COPY( - MCDI_IN2(req, uint8_t, WOL_FILTER_SET_IN_MAGIC_MAC), - paramp->ewp_magic.mac_addr); - break; - - case EFX_WOL_TYPE_BITMAP: { - uint32_t swapped = 0; - efx_dword_t *dwordp; - unsigned int pos, bit; - - MCDI_IN_SET_DWORD(req, WOL_FILTER_SET_IN_FILTER_MODE, - MC_CMD_FILTER_MODE_SIMPLE); - MCDI_IN_SET_DWORD(req, WOL_FILTER_SET_IN_WOL_TYPE, - MC_CMD_WOL_TYPE_BITMAP); - - /* - * MC bitmask is supposed to be bit swapped - * amongst 32 bit words(!) - */ - - dwordp = MCDI_IN2(req, efx_dword_t, - WOL_FILTER_SET_IN_BITMAP_MASK); - - EFSYS_ASSERT3U(EFX_WOL_BITMAP_MASK_SIZE % 4, ==, 0); - - for (pos = 0; pos < EFX_WOL_BITMAP_MASK_SIZE; ++pos) { - uint8_t native = paramp->ewp_bitmap.mask[pos]; - - for (bit = 0; bit < 8; ++bit) { - swapped <<= 1; - swapped |= (native & 0x1); - native >>= 1; - } - - if ((pos & 3) == 3) { - EFX_POPULATE_DWORD_1(dwordp[pos >> 2], - EFX_DWORD_0, swapped); - swapped = 0; - } - } - - memcpy(MCDI_IN2(req, uint8_t, WOL_FILTER_SET_IN_BITMAP_BITMAP), - paramp->ewp_bitmap.value, - sizeof (paramp->ewp_bitmap.value)); - - EFSYS_ASSERT3U(paramp->ewp_bitmap.value_len, <=, - sizeof (paramp->ewp_bitmap.value)); - MCDI_IN_SET_DWORD(req, WOL_FILTER_SET_IN_BITMAP_LEN, - paramp->ewp_bitmap.value_len); - } - break; - - case EFX_WOL_TYPE_LINK: - MCDI_IN_SET_DWORD(req, WOL_FILTER_SET_IN_FILTER_MODE, - MC_CMD_FILTER_MODE_SIMPLE); - MCDI_IN_SET_DWORD(req, WOL_FILTER_SET_IN_WOL_TYPE, - MC_CMD_WOL_TYPE_LINK); - - EFX_ZERO_BYTE(link_mask); - EFX_SET_BYTE_FIELD(link_mask, MC_CMD_WOL_FILTER_SET_IN_LINK_UP, - 1); - MCDI_IN_SET_BYTE(req, WOL_FILTER_SET_IN_LINK_MASK, - link_mask.eb_u8[0]); - break; - - default: - EFSYS_ASSERT3U(type, !=, type); - } - - efx_mcdi_execute(enp, &req); - - if (req.emr_rc != 0) { - rc = req.emr_rc; - goto fail1; - } - - if (req.emr_out_length_used < MC_CMD_WOL_FILTER_SET_OUT_LEN) { - rc = EMSGSIZE; - goto fail2; - } - - *filter_idp = MCDI_OUT_DWORD(req, WOL_FILTER_SET_OUT_FILTER_ID); - - return (0); - -fail2: - EFSYS_PROBE(fail2); -fail1: - EFSYS_PROBE1(fail1, efx_rc_t, rc); - - return (rc); -} - - __checkReturn efx_rc_t -efx_wol_filter_remove( - __in efx_nic_t *enp, - __in uint32_t filter_id) -{ - efx_mcdi_req_t req; - uint8_t payload[MAX(MC_CMD_WOL_FILTER_REMOVE_IN_LEN, - MC_CMD_WOL_FILTER_REMOVE_OUT_LEN)]; - efx_rc_t rc; - - EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); - EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_WOL); - - (void) memset(payload, 0, sizeof (payload)); - req.emr_cmd = MC_CMD_WOL_FILTER_REMOVE; - req.emr_in_buf = payload; - req.emr_in_length = MC_CMD_WOL_FILTER_REMOVE_IN_LEN; - req.emr_out_buf = payload; - req.emr_out_length = MC_CMD_WOL_FILTER_REMOVE_OUT_LEN; - - MCDI_IN_SET_DWORD(req, WOL_FILTER_REMOVE_IN_FILTER_ID, filter_id); - - efx_mcdi_execute(enp, &req); - - if (req.emr_rc != 0) { - rc = req.emr_rc; - goto fail1; - } - - return (0); - -fail1: - EFSYS_PROBE1(fail1, efx_rc_t, rc); - - return (rc); -} - - - __checkReturn efx_rc_t -efx_lightsout_offload_add( - __in efx_nic_t *enp, - __in efx_lightsout_offload_type_t type, - __in efx_lightsout_offload_param_t *paramp, - __out uint32_t *filter_idp) -{ - efx_mcdi_req_t req; - uint8_t payload[MAX(MAX(MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_ARP_LEN, - MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_NS_LEN), - MC_CMD_ADD_LIGHTSOUT_OFFLOAD_OUT_LEN)]; - efx_rc_t rc; - - EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); - EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_WOL); - - (void) memset(payload, 0, sizeof (payload)); - req.emr_cmd = MC_CMD_ADD_LIGHTSOUT_OFFLOAD; - req.emr_in_buf = payload; - req.emr_in_length = sizeof (type); - req.emr_out_buf = payload; - req.emr_out_length = MC_CMD_ADD_LIGHTSOUT_OFFLOAD_OUT_LEN; - - switch (type) { - case EFX_LIGHTSOUT_OFFLOAD_TYPE_ARP: - req.emr_in_length = MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_ARP_LEN; - - MCDI_IN_SET_DWORD(req, ADD_LIGHTSOUT_OFFLOAD_IN_PROTOCOL, - MC_CMD_LIGHTSOUT_OFFLOAD_PROTOCOL_ARP); - EFX_MAC_ADDR_COPY(MCDI_IN2(req, uint8_t, - ADD_LIGHTSOUT_OFFLOAD_IN_ARP_MAC), - paramp->elop_arp.mac_addr); - MCDI_IN_SET_DWORD(req, ADD_LIGHTSOUT_OFFLOAD_IN_ARP_IP, - paramp->elop_arp.ip); - break; - case EFX_LIGHTSOUT_OFFLOAD_TYPE_NS: - req.emr_in_length = MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_NS_LEN; - - MCDI_IN_SET_DWORD(req, ADD_LIGHTSOUT_OFFLOAD_IN_PROTOCOL, - MC_CMD_LIGHTSOUT_OFFLOAD_PROTOCOL_NS); - EFX_MAC_ADDR_COPY(MCDI_IN2(req, uint8_t, - ADD_LIGHTSOUT_OFFLOAD_IN_NS_MAC), - paramp->elop_ns.mac_addr); - memcpy(MCDI_IN2(req, uint8_t, - ADD_LIGHTSOUT_OFFLOAD_IN_NS_SNIPV6), - paramp->elop_ns.solicited_node, - sizeof (paramp->elop_ns.solicited_node)); - memcpy(MCDI_IN2(req, uint8_t, ADD_LIGHTSOUT_OFFLOAD_IN_NS_IPV6), - paramp->elop_ns.ip, sizeof (paramp->elop_ns.ip)); - break; - default: - rc = EINVAL; - goto fail1; - } - - efx_mcdi_execute(enp, &req); - - if (req.emr_rc != 0) { - rc = req.emr_rc; - goto fail2; - } - - if (req.emr_out_length_used < MC_CMD_ADD_LIGHTSOUT_OFFLOAD_OUT_LEN) { - rc = EMSGSIZE; - goto fail3; - } - - *filter_idp = MCDI_OUT_DWORD(req, ADD_LIGHTSOUT_OFFLOAD_OUT_FILTER_ID); - - return (0); - -fail3: - EFSYS_PROBE(fail3); -fail2: - EFSYS_PROBE(fail2); -fail1: - EFSYS_PROBE1(fail1, efx_rc_t, rc); - - return (rc); -} - - - __checkReturn efx_rc_t -efx_lightsout_offload_remove( - __in efx_nic_t *enp, - __in efx_lightsout_offload_type_t type, - __in uint32_t filter_id) -{ - efx_mcdi_req_t req; - uint8_t payload[MAX(MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_IN_LEN, - MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_OUT_LEN)]; - efx_rc_t rc; - - EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); - EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_WOL); - - (void) memset(payload, 0, sizeof (payload)); - req.emr_cmd = MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD; - req.emr_in_buf = payload; - req.emr_in_length = MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_IN_LEN; - req.emr_out_buf = payload; - req.emr_out_length = MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_OUT_LEN; - - switch (type) { - case EFX_LIGHTSOUT_OFFLOAD_TYPE_ARP: - MCDI_IN_SET_DWORD(req, REMOVE_LIGHTSOUT_OFFLOAD_IN_PROTOCOL, - MC_CMD_LIGHTSOUT_OFFLOAD_PROTOCOL_ARP); - break; - case EFX_LIGHTSOUT_OFFLOAD_TYPE_NS: - MCDI_IN_SET_DWORD(req, REMOVE_LIGHTSOUT_OFFLOAD_IN_PROTOCOL, - MC_CMD_LIGHTSOUT_OFFLOAD_PROTOCOL_NS); - break; - default: - rc = EINVAL; - goto fail1; - } - - MCDI_IN_SET_DWORD(req, REMOVE_LIGHTSOUT_OFFLOAD_IN_FILTER_ID, - filter_id); - - efx_mcdi_execute(enp, &req); - - if (req.emr_rc != 0) { - rc = req.emr_rc; - goto fail2; - } - - return (0); - -fail2: - EFSYS_PROBE(fail2); -fail1: - EFSYS_PROBE1(fail1, efx_rc_t, rc); - - return (rc); -} - - - void -efx_wol_fini( - __in efx_nic_t *enp) -{ - EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); - EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_PROBE); - EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_WOL); - - enp->en_mod_flags &= ~EFX_MOD_WOL; -} - -#endif /* EFSYS_OPT_WOL */ diff --git a/sys/dev/sfxge/common/hunt_impl.h b/sys/dev/sfxge/common/hunt_impl.h index 1ec2909..06904c66 100644 --- a/sys/dev/sfxge/common/hunt_impl.h +++ b/sys/dev/sfxge/common/hunt_impl.h @@ -69,39 +69,6 @@ extern __checkReturn efx_rc_t hunt_board_cfg( __in efx_nic_t *enp); - -/* PHY */ - -#if EFSYS_OPT_BIST - -extern __checkReturn efx_rc_t -hunt_bist_enable_offline( - __in efx_nic_t *enp); - -extern __checkReturn efx_rc_t -hunt_bist_start( - __in efx_nic_t *enp, - __in efx_bist_type_t type); - -extern __checkReturn efx_rc_t -hunt_bist_poll( - __in efx_nic_t *enp, - __in efx_bist_type_t type, - __out efx_bist_result_t *resultp, - __out_opt __drv_when(count > 0, __notnull) - uint32_t *value_maskp, - __out_ecount_opt(count) __drv_when(count > 0, __notnull) - unsigned long *valuesp, - __in size_t count); - -extern void -hunt_bist_stop( - __in efx_nic_t *enp, - __in efx_bist_type_t type); - -#endif /* EFSYS_OPT_BIST */ - - #ifdef __cplusplus } #endif diff --git a/sys/dev/sfxge/common/hunt_nic.c b/sys/dev/sfxge/common/hunt_nic.c index 9dbe1d4..477fa76 100644 --- a/sys/dev/sfxge/common/hunt_nic.c +++ b/sys/dev/sfxge/common/hunt_nic.c @@ -83,7 +83,7 @@ hunt_nic_get_required_pcie_bandwidth( if ((rc = ef10_nic_get_port_mode_bandwidth(max_port_mode, &bandwidth)) != 0) - goto fail2; + goto fail2; } out: @@ -295,7 +295,7 @@ hunt_board_cfg( /* Check capabilities of running datapath firmware */ if ((rc = ef10_get_datapath_caps(enp)) != 0) - goto fail12; + goto fail12; /* Alignment for receive packet DMA buffers */ encp->enc_rx_buf_align_start = 1; @@ -304,6 +304,10 @@ hunt_board_cfg( /* Alignment for WPTR updates */ encp->enc_rx_push_align = EF10_RX_WPTR_ALIGN; + encp->enc_tx_dma_desc_size_max = EFX_MASK32(ESF_DZ_RX_KER_BYTE_CNT); + /* No boundary crossing limits */ + encp->enc_tx_dma_desc_boundary = 0; + /* * Set resource limits for MC_CMD_ALLOC_VIS. Note that we cannot use * MC_CMD_GET_RESOURCE_LIMITS here as that reports the available diff --git a/sys/dev/sfxge/common/hunt_phy.c b/sys/dev/sfxge/common/hunt_phy.c deleted file mode 100644 index 63e6011..0000000 --- a/sys/dev/sfxge/common/hunt_phy.c +++ /dev/null @@ -1,192 +0,0 @@ -/*- - * Copyright (c) 2012-2016 Solarflare Communications Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; - * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, - * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are - * those of the authors and should not be interpreted as representing official - * policies, either expressed or implied, of the FreeBSD Project. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include "efx.h" -#include "efx_impl.h" - -#if EFSYS_OPT_HUNTINGTON - -#if EFSYS_OPT_BIST - - __checkReturn efx_rc_t -hunt_bist_enable_offline( - __in efx_nic_t *enp) -{ - efx_rc_t rc; - - if ((rc = efx_mcdi_bist_enable_offline(enp)) != 0) - goto fail1; - - return (0); - -fail1: - EFSYS_PROBE1(fail1, efx_rc_t, rc); - - return (rc); -} - - __checkReturn efx_rc_t -hunt_bist_start( - __in efx_nic_t *enp, - __in efx_bist_type_t type) -{ - efx_rc_t rc; - - if ((rc = efx_mcdi_bist_start(enp, type)) != 0) - goto fail1; - - return (0); - -fail1: - EFSYS_PROBE1(fail1, efx_rc_t, rc); - - return (rc); -} - - __checkReturn efx_rc_t -hunt_bist_poll( - __in efx_nic_t *enp, - __in efx_bist_type_t type, - __out efx_bist_result_t *resultp, - __out_opt __drv_when(count > 0, __notnull) - uint32_t *value_maskp, - __out_ecount_opt(count) __drv_when(count > 0, __notnull) - unsigned long *valuesp, - __in size_t count) -{ - efx_nic_cfg_t *encp = &(enp->en_nic_cfg); - efx_mcdi_req_t req; - uint8_t payload[MAX(MC_CMD_POLL_BIST_IN_LEN, - MCDI_CTL_SDU_LEN_MAX)]; - uint32_t value_mask = 0; - uint32_t result; - efx_rc_t rc; - - _NOTE(ARGUNUSED(type)) - - (void) memset(payload, 0, sizeof (payload)); - req.emr_cmd = MC_CMD_POLL_BIST; - req.emr_in_buf = payload; - req.emr_in_length = MC_CMD_POLL_BIST_IN_LEN; - req.emr_out_buf = payload; - req.emr_out_length = MCDI_CTL_SDU_LEN_MAX; - - efx_mcdi_execute(enp, &req); - - if (req.emr_rc != 0) { - rc = req.emr_rc; - goto fail1; - } - - if (req.emr_out_length_used < MC_CMD_POLL_BIST_OUT_RESULT_OFST + 4) { - rc = EMSGSIZE; - goto fail2; - } - - if (count > 0) - (void) memset(valuesp, '\0', count * sizeof (unsigned long)); - - result = MCDI_OUT_DWORD(req, POLL_BIST_OUT_RESULT); - - if (result == MC_CMD_POLL_BIST_FAILED && - req.emr_out_length >= MC_CMD_POLL_BIST_OUT_MEM_LEN && - count > EFX_BIST_MEM_ECC_FATAL) { - if (valuesp != NULL) { - valuesp[EFX_BIST_MEM_TEST] = - MCDI_OUT_DWORD(req, POLL_BIST_OUT_MEM_TEST); - valuesp[EFX_BIST_MEM_ADDR] = - MCDI_OUT_DWORD(req, POLL_BIST_OUT_MEM_ADDR); - valuesp[EFX_BIST_MEM_BUS] = - MCDI_OUT_DWORD(req, POLL_BIST_OUT_MEM_BUS); - valuesp[EFX_BIST_MEM_EXPECT] = - MCDI_OUT_DWORD(req, POLL_BIST_OUT_MEM_EXPECT); - valuesp[EFX_BIST_MEM_ACTUAL] = - MCDI_OUT_DWORD(req, POLL_BIST_OUT_MEM_ACTUAL); - valuesp[EFX_BIST_MEM_ECC] = - MCDI_OUT_DWORD(req, POLL_BIST_OUT_MEM_ECC); - valuesp[EFX_BIST_MEM_ECC_PARITY] = - MCDI_OUT_DWORD(req, POLL_BIST_OUT_MEM_ECC_PARITY); - valuesp[EFX_BIST_MEM_ECC_FATAL] = - MCDI_OUT_DWORD(req, POLL_BIST_OUT_MEM_ECC_FATAL); - } - value_mask |= (1 << EFX_BIST_MEM_TEST) | - (1 << EFX_BIST_MEM_ADDR) | - (1 << EFX_BIST_MEM_BUS) | - (1 << EFX_BIST_MEM_EXPECT) | - (1 << EFX_BIST_MEM_ACTUAL) | - (1 << EFX_BIST_MEM_ECC) | - (1 << EFX_BIST_MEM_ECC_PARITY) | - (1 << EFX_BIST_MEM_ECC_FATAL); - } else if (result == MC_CMD_POLL_BIST_FAILED && - encp->enc_phy_type == EFX_PHY_XFI_FARMI && - req.emr_out_length >= MC_CMD_POLL_BIST_OUT_MRSFP_LEN && - count > EFX_BIST_FAULT_CODE) { - if (valuesp != NULL) - valuesp[EFX_BIST_FAULT_CODE] = - MCDI_OUT_DWORD(req, POLL_BIST_OUT_MRSFP_TEST); - value_mask |= 1 << EFX_BIST_FAULT_CODE; - } - - if (value_maskp != NULL) - *value_maskp = value_mask; - - EFSYS_ASSERT(resultp != NULL); - if (result == MC_CMD_POLL_BIST_RUNNING) - *resultp = EFX_BIST_RESULT_RUNNING; - else if (result == MC_CMD_POLL_BIST_PASSED) - *resultp = EFX_BIST_RESULT_PASSED; - else - *resultp = EFX_BIST_RESULT_FAILED; - - return (0); - -fail2: - EFSYS_PROBE(fail2); -fail1: - EFSYS_PROBE1(fail1, efx_rc_t, rc); - - return (rc); -} - - void -hunt_bist_stop( - __in efx_nic_t *enp, - __in efx_bist_type_t type) -{ - /* There is no way to stop BIST on Huntinton. */ - _NOTE(ARGUNUSED(enp, type)) -} - -#endif /* EFSYS_OPT_BIST */ - -#endif /* EFSYS_OPT_HUNTINGTON */ diff --git a/sys/dev/sfxge/common/mcdi_mon.c b/sys/dev/sfxge/common/mcdi_mon.c index a379515..1469266 100644 --- a/sys/dev/sfxge/common/mcdi_mon.c +++ b/sys/dev/sfxge/common/mcdi_mon.c @@ -38,8 +38,8 @@ __FBSDID("$FreeBSD$"); #if EFSYS_OPT_MON_STATS -#define MCDI_MON_NEXT_PAGE (uint16_t)0xfffe -#define MCDI_MON_INVALID_SENSOR (uint16_t)0xfffd +#define MCDI_MON_NEXT_PAGE ((uint16_t)0xfffe) +#define MCDI_MON_INVALID_SENSOR ((uint16_t)0xfffd) #define MCDI_MON_PAGE_SIZE 0x20 /* Bitmasks of valid port(s) for each sensor */ @@ -50,6 +50,9 @@ __FBSDID("$FreeBSD$"); #define MCDI_MON_PORT_P4 (0x08) #define MCDI_MON_PORT_Px (0xFFFF) +/* Get port mask from one-based MCDI port number */ +#define MCDI_MON_PORT_MASK(_emip) (1U << ((_emip)->emi_port - 1)) + /* Entry for MCDI sensor in sensor map */ #define STAT(portmask, stat) \ { (MCDI_MON_PORT_##portmask), (EFX_MON_STAT_##stat) } @@ -155,8 +158,8 @@ static const struct mcdi_sensor_map_s { STAT(Px, PHY0_VCC), /* 0x4c PHY0_VCC */ STAT(Px, PHY1_VCC), /* 0x4d PHY1_VCC */ STAT(Px, CONTROLLER_TDIODE_TEMP), /* 0x4e CONTROLLER_TDIODE_TEMP */ - STAT(Px, BOARD_FRONT_TEMP), /* 0x4f BOARD_FRONT_TEMP */ - STAT(Px, BOARD_BACK_TEMP), /* 0x50 BOARD_BACK_TEMP */ + STAT(Px, BOARD_FRONT_TEMP), /* 0x4f BOARD_FRONT_TEMP */ + STAT(Px, BOARD_BACK_TEMP), /* 0x50 BOARD_BACK_TEMP */ }; #define MCDI_STATIC_SENSOR_ASSERT(_field) \ @@ -166,10 +169,10 @@ static const struct mcdi_sensor_map_s { static void mcdi_mon_decode_stats( __in efx_nic_t *enp, - __in_ecount(sensor_mask_size) uint32_t *sensor_mask, + __in_bcount(sensor_mask_size) uint32_t *sensor_mask, __in size_t sensor_mask_size, __in_opt efsys_mem_t *esmp, - __out_ecount_opt(sensor_mask_size) uint32_t *stat_maskp, + __out_bcount_opt(sensor_mask_size) uint32_t *stat_maskp, __inout_ecount_opt(EFX_MON_NSTATS) efx_mon_stat_value_t *stat) { efx_mcdi_iface_t *emip = &(enp->en_mcdi.em_emip); @@ -192,7 +195,8 @@ mcdi_mon_decode_stats( sensor_max = MIN((8 * sensor_mask_size), EFX_ARRAY_SIZE(mcdi_sensor_map)); - port_mask = 1U << emip->emi_port; + EFSYS_ASSERT(emip->emi_port > 0); /* MCDI port number is one-based */ + port_mask = MCDI_MON_PORT_MASK(emip); memset(stat_mask, 0, sizeof (stat_mask)); @@ -269,9 +273,8 @@ mcdi_mon_ev( efx_mon_stat_t id; efx_rc_t rc; - port_mask = (emip->emi_port == 1) - ? MCDI_MON_PORT_P1 - : MCDI_MON_PORT_P2; + EFSYS_ASSERT(emip->emi_port > 0); /* MCDI port number is one-based */ + port_mask = MCDI_MON_PORT_MASK(emip); sensor = (uint16_t)MCDI_EV_FIELD(eqp, SENSOREVT_MONITOR); state = (uint16_t)MCDI_EV_FIELD(eqp, SENSOREVT_STATE); diff --git a/sys/dev/sfxge/common/medford_nic.c b/sys/dev/sfxge/common/medford_nic.c index 04d0f9b..f883bf7 100644 --- a/sys/dev/sfxge/common/medford_nic.c +++ b/sys/dev/sfxge/common/medford_nic.c @@ -66,7 +66,7 @@ efx_mcdi_get_rxdp_config( /* RX DMA end padding is disabled */ end_padding = 0; } else { - switch(MCDI_OUT_DWORD_FIELD(req, GET_RXDP_CONFIG_OUT_DATA, + switch (MCDI_OUT_DWORD_FIELD(req, GET_RXDP_CONFIG_OUT_DATA, GET_RXDP_CONFIG_OUT_PAD_HOST_LEN)) { case MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_64: end_padding = 64; @@ -283,19 +283,28 @@ medford_board_cfg( /* Check capabilities of running datapath firmware */ if ((rc = ef10_get_datapath_caps(enp)) != 0) - goto fail10; + goto fail10; /* Alignment for receive packet DMA buffers */ encp->enc_rx_buf_align_start = 1; /* Get the RX DMA end padding alignment configuration */ - if ((rc = efx_mcdi_get_rxdp_config(enp, &end_padding)) != 0) - goto fail11; + if ((rc = efx_mcdi_get_rxdp_config(enp, &end_padding)) != 0) { + if (rc != EACCES) + goto fail11; + + /* Assume largest tail padding size supported by hardware */ + end_padding = 256; + } encp->enc_rx_buf_align_end = end_padding; /* Alignment for WPTR updates */ encp->enc_rx_push_align = EF10_RX_WPTR_ALIGN; + encp->enc_tx_dma_desc_size_max = EFX_MASK32(ESF_DZ_RX_KER_BYTE_CNT); + /* No boundary crossing limits */ + encp->enc_tx_dma_desc_boundary = 0; + /* * Set resource limits for MC_CMD_ALLOC_VIS. Note that we cannot use * MC_CMD_GET_RESOURCE_LIMITS here as that reports the available diff --git a/sys/dev/sfxge/common/siena_flash.h b/sys/dev/sfxge/common/siena_flash.h index 4558f15..18e8779 100644 --- a/sys/dev/sfxge/common/siena_flash.h +++ b/sys/dev/sfxge/common/siena_flash.h @@ -127,7 +127,7 @@ typedef struct siena_mc_boot_hdr_s { /* GENERATED BY scripts/genfwdef */ } siena_mc_boot_hdr_t; #define SIENA_MC_BOOT_HDR_PADDING \ - (SIENA_MC_BOOT_HDR_LEN - sizeof(siena_mc_boot_hdr_t)) + (SIENA_MC_BOOT_HDR_LEN - sizeof(siena_mc_boot_hdr_t)) #define SIENA_MC_STATIC_CONFIG_MAGIC (0xBDCF5555) #define SIENA_MC_STATIC_CONFIG_VERSION (0) diff --git a/sys/dev/sfxge/common/siena_impl.h b/sys/dev/sfxge/common/siena_impl.h index 7160f77..9458dca 100644 --- a/sys/dev/sfxge/common/siena_impl.h +++ b/sys/dev/sfxge/common/siena_impl.h @@ -96,11 +96,11 @@ siena_mcdi_init( extern void siena_mcdi_send_request( - __in efx_nic_t *enp, - __in void *hdrp, - __in size_t hdr_len, - __in void *sdup, - __in size_t sdu_len); + __in efx_nic_t *enp, + __in_bcount(hdr_len) void *hdrp, + __in size_t hdr_len, + __in_bcount(sdu_len) void *sdup, + __in size_t sdu_len); extern __checkReturn boolean_t siena_mcdi_poll_response( @@ -127,6 +127,12 @@ siena_mcdi_feature_supported( __in efx_mcdi_feature_id_t id, __out boolean_t *supportedp); +extern void +siena_mcdi_get_timeout( + __in efx_nic_t *enp, + __in efx_mcdi_req_t *emrp, + __out uint32_t *timeoutp); + #endif /* EFSYS_OPT_MCDI */ #if EFSYS_OPT_NVRAM || EFSYS_OPT_VPD @@ -136,7 +142,7 @@ siena_nvram_partn_lock( __in efx_nic_t *enp, __in uint32_t partn); -extern void +extern __checkReturn efx_rc_t siena_nvram_partn_unlock( __in efx_nic_t *enp, __in uint32_t partn); @@ -208,7 +214,7 @@ siena_nvram_partn_write( __out_bcount(size) caddr_t data, __in size_t size); -extern void +extern __checkReturn efx_rc_t siena_nvram_partn_rw_finish( __in efx_nic_t *enp, __in uint32_t partn); @@ -294,7 +300,7 @@ siena_vpd_fini( typedef struct siena_link_state_s { uint32_t sls_adv_cap_mask; uint32_t sls_lp_cap_mask; - unsigned int sls_fcntl; + unsigned int sls_fcntl; efx_link_mode_t sls_link_mode; #if EFSYS_OPT_LOOPBACK efx_loopback_type_t sls_loopback; @@ -362,7 +368,7 @@ siena_phy_bist_poll( __in efx_bist_type_t type, __out efx_bist_result_t *resultp, __out_opt __drv_when(count > 0, __notnull) - uint32_t *value_maskp, + uint32_t *value_maskp, __out_ecount_opt(count) __drv_when(count > 0, __notnull) unsigned long *valuesp, __in size_t count); @@ -406,6 +412,12 @@ siena_mac_loopback_set( #if EFSYS_OPT_MAC_STATS extern __checkReturn efx_rc_t +siena_mac_stats_get_mask( + __in efx_nic_t *enp, + __inout_bcount(mask_size) uint32_t *maskp, + __in size_t mask_size); + +extern __checkReturn efx_rc_t siena_mac_stats_update( __in efx_nic_t *enp, __in efsys_mem_t *esmp, diff --git a/sys/dev/sfxge/common/siena_mac.c b/sys/dev/sfxge/common/siena_mac.c index 2042f06..7646f09 100644 --- a/sys/dev/sfxge/common/siena_mac.c +++ b/sys/dev/sfxge/common/siena_mac.c @@ -223,7 +223,7 @@ siena_mac_loopback_set( return (0); fail1: - EFSYS_PROBE(fail2); + EFSYS_PROBE1(fail1, efx_rc_t, rc); epp->ep_loopback_type = old_loopback_type; epp->ep_loopback_link_mode = old_loopback_link_mode; @@ -235,6 +235,33 @@ fail1: #if EFSYS_OPT_MAC_STATS + __checkReturn efx_rc_t +siena_mac_stats_get_mask( + __in efx_nic_t *enp, + __inout_bcount(mask_size) uint32_t *maskp, + __in size_t mask_size) +{ + const struct efx_mac_stats_range siena_stats[] = { + { EFX_MAC_RX_OCTETS, EFX_MAC_RX_GE_15XX_PKTS }, + /* EFX_MAC_RX_ERRORS is not supported */ + { EFX_MAC_RX_FCS_ERRORS, EFX_MAC_TX_EX_DEF_PKTS }, + }; + efx_rc_t rc; + + _NOTE(ARGUNUSED(enp)) + + if ((rc = efx_mac_stats_mask_add_ranges(maskp, mask_size, + siena_stats, EFX_ARRAY_SIZE(siena_stats))) != 0) + goto fail1; + + return (0); + +fail1: + EFSYS_PROBE1(fail1, efx_rc_t, rc); + + return (rc); +} + #define SIENA_MAC_STAT_READ(_esmp, _field, _eqp) \ EFSYS_MEM_READQ((_esmp), (_field) * sizeof (efx_qword_t), _eqp) diff --git a/sys/dev/sfxge/common/siena_mcdi.c b/sys/dev/sfxge/common/siena_mcdi.c index a9bc1ca..a615f88 100644 --- a/sys/dev/sfxge/common/siena_mcdi.c +++ b/sys/dev/sfxge/common/siena_mcdi.c @@ -54,11 +54,11 @@ __FBSDID("$FreeBSD$"); void siena_mcdi_send_request( - __in efx_nic_t *enp, - __in void *hdrp, - __in size_t hdr_len, - __in void *sdup, - __in size_t sdu_len) + __in efx_nic_t *enp, + __in_bcount(hdr_len) void *hdrp, + __in size_t hdr_len, + __in_bcount(sdu_len) void *sdup, + __in size_t sdu_len) { efx_mcdi_iface_t *emip = &(enp->en_mcdi.em_emip); efx_dword_t dword; @@ -247,4 +247,19 @@ fail1: return (rc); } +/* Default timeout for MCDI command processing. */ +#define SIENA_MCDI_CMD_TIMEOUT_US (10 * 1000 * 1000) + + void +siena_mcdi_get_timeout( + __in efx_nic_t *enp, + __in efx_mcdi_req_t *emrp, + __out uint32_t *timeoutp) +{ + _NOTE(ARGUNUSED(enp, emrp)) + + *timeoutp = SIENA_MCDI_CMD_TIMEOUT_US; +} + + #endif /* EFSYS_OPT_SIENA && EFSYS_OPT_MCDI */ diff --git a/sys/dev/sfxge/common/siena_nic.c b/sys/dev/sfxge/common/siena_nic.c index b809a4d..39922a7 100644 --- a/sys/dev/sfxge/common/siena_nic.c +++ b/sys/dev/sfxge/common/siena_nic.c @@ -37,6 +37,8 @@ __FBSDID("$FreeBSD$"); #if EFSYS_OPT_SIENA +#if EFSYS_OPT_VPD || EFSYS_OPT_NVRAM + static __checkReturn efx_rc_t siena_nic_get_partn_mask( __in efx_nic_t *enp, @@ -78,6 +80,8 @@ fail1: return (rc); } +#endif /* EFSYS_OPT_VPD || EFSYS_OPT_NVRAM */ + static __checkReturn efx_rc_t siena_board_cfg( __in efx_nic_t *enp) @@ -101,6 +105,13 @@ siena_board_cfg( encp->enc_board_type = board_type; + /* + * There is no possibility to determine the number of PFs on Siena + * by issuing MCDI request, and it is not an easy task to find the + * value based on the board type, so 'enc_hw_pf_count' is set to 1 + */ + encp->enc_hw_pf_count = 1; + /* Additional capabilities */ encp->enc_clk_mult = 1; if (EFX_DWORD_FIELD(capabilities, MC_CMD_CAPABILITIES_TURBO)) { @@ -127,6 +138,10 @@ siena_board_cfg( /* Alignment for WPTR updates */ encp->enc_rx_push_align = 1; + encp->enc_tx_dma_desc_size_max = EFX_MASK32(FSF_AZ_TX_KER_BYTE_COUNT); + /* Fragments must not span 4k boundaries. */ + encp->enc_tx_dma_desc_boundary = 4096; + /* Resource limits */ rc = efx_mcdi_get_resource_limits(enp, &nevq, &nrxq, &ntxq); if (rc != 0) { @@ -148,12 +163,15 @@ siena_board_cfg( encp->enc_hw_tx_insert_vlan_enabled = B_FALSE; encp->enc_fw_assisted_tso_enabled = B_FALSE; encp->enc_fw_assisted_tso_v2_enabled = B_FALSE; + encp->enc_fw_assisted_tso_v2_n_contexts = 0; encp->enc_allow_set_mac_with_installed_filters = B_TRUE; /* Siena supports two 10G ports, and 8 lanes of PCIe Gen2 */ encp->enc_required_pcie_bandwidth_mbps = 2 * 10000; encp->enc_max_pcie_link_gen = EFX_PCIE_LINK_SPEED_GEN2; + encp->enc_fw_verified_nvram_update_required = B_FALSE; + return (0); fail2: diff --git a/sys/dev/sfxge/common/siena_nvram.c b/sys/dev/sfxge/common/siena_nvram.c index de6fd01..762db07 100644 --- a/sys/dev/sfxge/common/siena_nvram.c +++ b/sys/dev/sfxge/common/siena_nvram.c @@ -170,7 +170,7 @@ fail1: return (rc); } - void + __checkReturn efx_rc_t siena_nvram_partn_unlock( __in efx_nic_t *enp, __in uint32_t partn) @@ -186,14 +186,16 @@ siena_nvram_partn_unlock( partn == MC_CMD_NVRAM_TYPE_PHY_PORT1 || partn == MC_CMD_NVRAM_TYPE_DISABLED_CALLISTO); - if ((rc = efx_mcdi_nvram_update_finish(enp, partn, reboot)) != 0) { + rc = efx_mcdi_nvram_update_finish(enp, partn, reboot, NULL); + if (rc != 0) goto fail1; - } - return; + return (0); fail1: EFSYS_PROBE1(fail1, efx_rc_t, rc); + + return (rc); } #endif /* EFSYS_OPT_VPD || EFSYS_OPT_NVRAM */ @@ -585,12 +587,22 @@ fail1: return (rc); } - void + __checkReturn efx_rc_t siena_nvram_partn_rw_finish( __in efx_nic_t *enp, __in uint32_t partn) { - siena_nvram_partn_unlock(enp, partn); + efx_rc_t rc; + + if ((rc = siena_nvram_partn_unlock(enp, partn)) != 0) + goto fail1; + + return (0); + +fail1: + EFSYS_PROBE1(fail1, efx_rc_t, rc); + + return (rc); } __checkReturn efx_rc_t diff --git a/sys/dev/sfxge/common/siena_phy.c b/sys/dev/sfxge/common/siena_phy.c index b3f1a35..390e06d 100644 --- a/sys/dev/sfxge/common/siena_phy.c +++ b/sys/dev/sfxge/common/siena_phy.c @@ -455,7 +455,7 @@ siena_phy_oui_get( } #define SIENA_SIMPLE_STAT_SET2(_vmask, _esmp, _smask, _stat, _record) \ - SIENA_SIMPLE_STAT_SET(_vmask, _esmp, _smask, _stat, \ + SIENA_SIMPLE_STAT_SET(_vmask, _esmp, _smask, _stat, \ MC_CMD_ ## _record, \ EFX_PHY_STAT_ ## _record) diff --git a/sys/dev/sfxge/common/siena_vpd.c b/sys/dev/sfxge/common/siena_vpd.c index 6fb4ca9..a0333b8 100644 --- a/sys/dev/sfxge/common/siena_vpd.c +++ b/sys/dev/sfxge/common/siena_vpd.c @@ -160,7 +160,7 @@ siena_vpd_init( { efx_mcdi_iface_t *emip = &(enp->en_mcdi.em_emip); caddr_t svpd = NULL; - unsigned partn; + unsigned int partn; size_t size = 0; efx_rc_t rc; diff --git a/sys/dev/sfxge/sfxge.c b/sys/dev/sfxge/sfxge.c index 6275d1b..8b9edb0 100644 --- a/sys/dev/sfxge/sfxge.c +++ b/sys/dev/sfxge/sfxge.c @@ -739,6 +739,16 @@ sfxge_create(struct sfxge_softc *sc) goto fail3; sc->enp = enp; + /* Initialize MCDI to talk to the microcontroller. */ + DBGPRINT(sc->dev, "mcdi_init..."); + if ((error = sfxge_mcdi_init(sc)) != 0) + goto fail4; + + /* Probe the NIC and build the configuration data area. */ + DBGPRINT(sc->dev, "nic_probe..."); + if ((error = efx_nic_probe(enp)) != 0) + goto fail5; + if (!ISP2(sfxge_rx_ring_entries) || (sfxge_rx_ring_entries < EFX_RXQ_MINNDESCS) || (sfxge_rx_ring_entries > EFX_RXQ_MAXNDESCS)) { @@ -761,16 +771,6 @@ sfxge_create(struct sfxge_softc *sc) } sc->txq_entries = sfxge_tx_ring_entries; - /* Initialize MCDI to talk to the microcontroller. */ - DBGPRINT(sc->dev, "mcdi_init..."); - if ((error = sfxge_mcdi_init(sc)) != 0) - goto fail4; - - /* Probe the NIC and build the configuration data area. */ - DBGPRINT(sc->dev, "nic_probe..."); - if ((error = efx_nic_probe(enp)) != 0) - goto fail5; - SYSCTL_ADD_STRING(device_get_sysctl_ctx(dev), SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, "version", CTLFLAG_RD, @@ -863,14 +863,14 @@ fail7: efx_nvram_fini(enp); fail6: +fail_tx_ring_entries: +fail_rx_ring_entries: efx_nic_unprobe(enp); fail5: sfxge_mcdi_fini(sc); fail4: -fail_tx_ring_entries: -fail_rx_ring_entries: sc->enp = NULL; efx_nic_destroy(enp); SFXGE_EFSYS_LOCK_DESTROY(&sc->enp_lock); diff --git a/sys/dev/sfxge/sfxge.h b/sys/dev/sfxge/sfxge.h index e7a0899..62b1dc3 100644 --- a/sys/dev/sfxge/sfxge.h +++ b/sys/dev/sfxge/sfxge.h @@ -302,7 +302,7 @@ struct sfxge_softc { unsigned int max_rss_channels; uma_zone_t rxq_cache; struct sfxge_rxq *rxq[SFXGE_RX_SCALE_MAX]; - unsigned int rx_indir_table[SFXGE_RX_SCALE_MAX]; + unsigned int rx_indir_table[EFX_RSS_TBL_SIZE]; struct sfxge_txq *txq[SFXGE_TXQ_NTYPES + SFXGE_RX_SCALE_MAX]; @@ -329,7 +329,9 @@ struct sfxge_softc { #endif }; -#define SFXGE_LINK_UP(sc) ((sc)->port.link_mode != EFX_LINK_DOWN) +#define SFXGE_LINK_UP(sc) \ + ((sc)->port.link_mode != EFX_LINK_DOWN && \ + (sc)->port.link_mode != EFX_LINK_UNKNOWN) #define SFXGE_RUNNING(sc) ((sc)->ifnet->if_drv_flags & IFF_DRV_RUNNING) #define SFXGE_PARAM(_name) "hw.sfxge." #_name diff --git a/sys/dev/sfxge/sfxge_ev.c b/sys/dev/sfxge/sfxge_ev.c index 06ffed2..9558011 100644 --- a/sys/dev/sfxge/sfxge_ev.c +++ b/sys/dev/sfxge/sfxge_ev.c @@ -698,7 +698,8 @@ sfxge_ev_qstart(struct sfxge_softc *sc, unsigned int index) /* Create the common code event queue. */ if ((rc = efx_ev_qcreate(sc->enp, index, esmp, evq->entries, - evq->buf_base_id, sc->ev_moderation, &evq->common)) != 0) + evq->buf_base_id, sc->ev_moderation, EFX_EVQ_FLAGS_TYPE_AUTO, + &evq->common)) != 0) goto fail; SFXGE_EVQ_LOCK(evq); diff --git a/sys/dev/sfxge/sfxge_mcdi.c b/sys/dev/sfxge/sfxge_mcdi.c index 02b59ac..9954eee 100644 --- a/sys/dev/sfxge/sfxge_mcdi.c +++ b/sys/dev/sfxge/sfxge_mcdi.c @@ -55,7 +55,6 @@ __FBSDID("$FreeBSD$"); #define SFXGE_MCDI_POLL_INTERVAL_MIN 10 /* 10us in 1us units */ #define SFXGE_MCDI_POLL_INTERVAL_MAX 100000 /* 100ms in 1us units */ -#define SFXGE_MCDI_WATCHDOG_INTERVAL 10000000 /* 10s in 1us units */ static void sfxge_mcdi_timeout(struct sfxge_softc *sc) @@ -70,7 +69,7 @@ sfxge_mcdi_timeout(struct sfxge_softc *sc) } static void -sfxge_mcdi_poll(struct sfxge_softc *sc) +sfxge_mcdi_poll(struct sfxge_softc *sc, uint32_t timeout_us) { efx_nic_t *enp; clock_t delay_total; @@ -87,7 +86,7 @@ sfxge_mcdi_poll(struct sfxge_softc *sc) return; } - if (delay_total > SFXGE_MCDI_WATCHDOG_INTERVAL) { + if (delay_total > timeout_us) { aborted = efx_mcdi_request_abort(enp); KASSERT(aborted, ("abort failed")); sfxge_mcdi_timeout(sc); @@ -115,6 +114,7 @@ sfxge_mcdi_execute(void *arg, efx_mcdi_req_t *emrp) { struct sfxge_softc *sc; struct sfxge_mcdi *mcdi; + uint32_t timeout_us = 0; sc = (struct sfxge_softc *)arg; mcdi = &sc->mcdi; @@ -125,8 +125,11 @@ sfxge_mcdi_execute(void *arg, efx_mcdi_req_t *emrp) ("MCDI not initialized")); /* Issue request and poll for completion. */ + efx_mcdi_get_timeout(sc->enp, emrp, &timeout_us); + KASSERT(timeout_us > 0, ("MCDI timeout not initialized")); + efx_mcdi_request_start(sc->enp, emrp, B_FALSE); - sfxge_mcdi_poll(sc); + sfxge_mcdi_poll(sc, timeout_us); SFXGE_MCDI_UNLOCK(mcdi); } diff --git a/sys/dev/sfxge/sfxge_port.c b/sys/dev/sfxge/sfxge_port.c index a4f671f..6e753a2 100644 --- a/sys/dev/sfxge/sfxge_port.c +++ b/sys/dev/sfxge/sfxge_port.c @@ -284,8 +284,7 @@ sfxge_mac_link_update(struct sfxge_softc *sc, efx_link_mode_t mode) port->link_mode = mode; /* Push link state update to the OS */ - link_state = (port->link_mode != EFX_LINK_DOWN ? - LINK_STATE_UP : LINK_STATE_DOWN); + link_state = (SFXGE_LINK_UP(sc) ? LINK_STATE_UP : LINK_STATE_DOWN); if_initbaudrate(sc->ifnet, sfxge_link_baudrate[port->link_mode]); if_link_state_change(sc->ifnet, link_state); } diff --git a/sys/dev/sfxge/sfxge_rx.c b/sys/dev/sfxge/sfxge_rx.c index 9fcccad..7782901 100644 --- a/sys/dev/sfxge/sfxge_rx.c +++ b/sys/dev/sfxge/sfxge_rx.c @@ -337,8 +337,9 @@ static void __sfxge_rx_deliver(struct sfxge_softc *sc, struct mbuf *m) } static void -sfxge_rx_deliver(struct sfxge_softc *sc, struct sfxge_rx_sw_desc *rx_desc) +sfxge_rx_deliver(struct sfxge_rxq *rxq, struct sfxge_rx_sw_desc *rx_desc) { + struct sfxge_softc *sc = rxq->sc; struct mbuf *m = rx_desc->mbuf; int flags = rx_desc->flags; int csum_flags; @@ -352,7 +353,7 @@ sfxge_rx_deliver(struct sfxge_softc *sc, struct sfxge_rx_sw_desc *rx_desc) /* The hash covers a 4-tuple for TCP only */ if (flags & EFX_PKT_TCP) { m->m_pkthdr.flowid = - efx_psuedo_hdr_hash_get(sc->enp, + efx_pseudo_hdr_hash_get(rxq->common, EFX_RX_HASHALG_TOEPLITZ, mtod(m, uint8_t *)); M_HASHTYPE_SET(m, M_HASHTYPE_OPAQUE); @@ -423,7 +424,7 @@ static void sfxge_lro_drop(struct sfxge_rxq *rxq, struct sfxge_lro_conn *c) KASSERT(!c->mbuf, ("found orphaned mbuf")); if (c->next_buf.mbuf != NULL) { - sfxge_rx_deliver(rxq->sc, &c->next_buf); + sfxge_rx_deliver(rxq, &c->next_buf); LIST_REMOVE(c, active_link); } @@ -618,7 +619,7 @@ sfxge_lro_try_merge(struct sfxge_rxq *rxq, struct sfxge_lro_conn *c) return (1); deliver_buf_out: - sfxge_rx_deliver(rxq->sc, rx_buf); + sfxge_rx_deliver(rxq, rx_buf); return (1); } @@ -679,7 +680,7 @@ sfxge_lro(struct sfxge_rxq *rxq, struct sfxge_rx_sw_desc *rx_buf) unsigned bucket; /* Get the hardware hash */ - conn_hash = efx_psuedo_hdr_hash_get(sc->enp, + conn_hash = efx_pseudo_hdr_hash_get(rxq->common, EFX_RX_HASHALG_TOEPLITZ, mtod(m, uint8_t *)); @@ -765,7 +766,7 @@ sfxge_lro(struct sfxge_rxq *rxq, struct sfxge_rx_sw_desc *rx_buf) sfxge_lro_new_conn(&rxq->lro, conn_hash, l2_id, nh, th); deliver_now: - sfxge_rx_deliver(sc, rx_buf); + sfxge_rx_deliver(rxq, rx_buf); } static void sfxge_lro_end_of_burst(struct sfxge_rxq *rxq) @@ -842,7 +843,7 @@ sfxge_rx_qcomplete(struct sfxge_rxq *rxq, boolean_t eop) if (rx_desc->flags & EFX_PKT_PREFIX_LEN) { uint16_t tmp_size; int rc; - rc = efx_psuedo_hdr_pkt_length_get(sc->enp, + rc = efx_pseudo_hdr_pkt_length_get(rxq->common, mtod(m, uint8_t *), &tmp_size); KASSERT(rc == 0, ("cannot get packet length: %d", rc)); @@ -891,7 +892,7 @@ sfxge_rx_qcomplete(struct sfxge_rxq *rxq, boolean_t eop) (EFX_PKT_TCP | EFX_CKSUM_TCPUDP))) sfxge_lro(rxq, prev); else - sfxge_rx_deliver(sc, prev); + sfxge_rx_deliver(rxq, prev); } prev = rx_desc; continue; @@ -912,7 +913,7 @@ discard: (EFX_PKT_TCP | EFX_CKSUM_TCPUDP))) sfxge_lro(rxq, prev); else - sfxge_rx_deliver(sc, prev); + sfxge_rx_deliver(rxq, prev); } /* @@ -1128,14 +1129,14 @@ sfxge_rx_start(struct sfxge_softc *sc) /* * Set up the scale table. Enable all hash types and hash insertion. */ - for (index = 0; index < SFXGE_RX_SCALE_MAX; index++) + for (index = 0; index < nitems(sc->rx_indir_table); index++) sc->rx_indir_table[index] = index % sc->rxq_count; if ((rc = efx_rx_scale_tbl_set(sc->enp, sc->rx_indir_table, - SFXGE_RX_SCALE_MAX)) != 0) + nitems(sc->rx_indir_table))) != 0) goto fail; (void)efx_rx_scale_mode_set(sc->enp, EFX_RX_HASHALG_TOEPLITZ, - (1 << EFX_RX_HASH_IPV4) | (1 << EFX_RX_HASH_TCPIPV4) | - (1 << EFX_RX_HASH_IPV6) | (1 << EFX_RX_HASH_TCPIPV6), B_TRUE); + EFX_RX_HASH_IPV4 | EFX_RX_HASH_TCPIPV4 | + EFX_RX_HASH_IPV6 | EFX_RX_HASH_TCPIPV6, B_TRUE); if ((rc = efx_rx_scale_key_set(sc->enp, toep_key, sizeof(toep_key))) != 0) diff --git a/sys/dev/sfxge/sfxge_tx.c b/sys/dev/sfxge/sfxge_tx.c index 0ecdbdc..cc6fb17 100644 --- a/sys/dev/sfxge/sfxge_tx.c +++ b/sys/dev/sfxge/sfxge_tx.c @@ -601,7 +601,7 @@ sfxge_tx_qdpl_put_unlocked(struct sfxge_txq *txq, struct mbuf *mbuf) volatile uintptr_t *putp; uintptr_t old; uintptr_t new; - unsigned old_len; + unsigned int put_count; KASSERT(mbuf->m_nextpkt == NULL, ("mbuf->m_nextpkt != NULL")); @@ -615,14 +615,14 @@ sfxge_tx_qdpl_put_unlocked(struct sfxge_txq *txq, struct mbuf *mbuf) old = *putp; if (old != 0) { struct mbuf *mp = (struct mbuf *)old; - old_len = mp->m_pkthdr.csum_data; + put_count = mp->m_pkthdr.csum_data; } else - old_len = 0; - if (old_len >= stdp->std_put_max) { + put_count = 0; + if (put_count >= stdp->std_put_max) { atomic_add_long(&txq->put_overflow, 1); return (ENOBUFS); } - mbuf->m_pkthdr.csum_data = old_len + 1; + mbuf->m_pkthdr.csum_data = put_count + 1; mbuf->m_nextpkt = (void *)old; } while (atomic_cmpset_ptr(putp, old, new) == 0); @@ -820,8 +820,9 @@ sfxge_if_transmit(struct ifnet *ifp, struct mbuf *m) /* check if flowid is set */ if (M_HASHTYPE_GET(m) != M_HASHTYPE_NONE) { uint32_t hash = m->m_pkthdr.flowid; + uint32_t idx = hash % nitems(sc->rx_indir_table); - index = sc->rx_indir_table[hash % SFXGE_RX_SCALE_MAX]; + index = sc->rx_indir_table[idx]; } #if SFXGE_TX_PARSE_EARLY if (m->m_pkthdr.csum_flags & CSUM_TSO) @@ -1700,6 +1701,7 @@ static int sfxge_tx_qinit(struct sfxge_softc *sc, unsigned int txq_index, enum sfxge_txq_type type, unsigned int evq_index) { + const efx_nic_cfg_t *encp = efx_nic_cfg_get(sc->enp); char name[16]; struct sysctl_ctx_list *ctx = device_get_sysctl_ctx(sc->dev); struct sysctl_oid *txq_node; @@ -1730,9 +1732,11 @@ sfxge_tx_qinit(struct sfxge_softc *sc, unsigned int txq_index, &txq->buf_base_id); /* Create a DMA tag for packet mappings. */ - if (bus_dma_tag_create(sc->parent_dma_tag, 1, 0x1000, + if (bus_dma_tag_create(sc->parent_dma_tag, 1, + encp->enc_tx_dma_desc_boundary, MIN(0x3FFFFFFFFFFFUL, BUS_SPACE_MAXADDR), BUS_SPACE_MAXADDR, NULL, - NULL, 0x11000, SFXGE_TX_MAPPING_MAX_SEG, 0x1000, 0, NULL, NULL, + NULL, 0x11000, SFXGE_TX_MAPPING_MAX_SEG, + encp->enc_tx_dma_desc_size_max, 0, NULL, NULL, &txq->packet_dma_tag) != 0) { device_printf(sc->dev, "Couldn't allocate txq DMA tag\n"); rc = ENOMEM; @@ -1765,26 +1769,6 @@ sfxge_tx_qinit(struct sfxge_softc *sc, unsigned int txq_index, (rc = tso_init(txq)) != 0) goto fail3; - if (sfxge_tx_dpl_get_max <= 0) { - log(LOG_ERR, "%s=%d must be greater than 0", - SFXGE_PARAM_TX_DPL_GET_MAX, sfxge_tx_dpl_get_max); - rc = EINVAL; - goto fail_tx_dpl_get_max; - } - if (sfxge_tx_dpl_get_non_tcp_max <= 0) { - log(LOG_ERR, "%s=%d must be greater than 0", - SFXGE_PARAM_TX_DPL_GET_NON_TCP_MAX, - sfxge_tx_dpl_get_non_tcp_max); - rc = EINVAL; - goto fail_tx_dpl_get_max; - } - if (sfxge_tx_dpl_put_max < 0) { - log(LOG_ERR, "%s=%d must be greater or equal to 0", - SFXGE_PARAM_TX_DPL_PUT_MAX, sfxge_tx_dpl_put_max); - rc = EINVAL; - goto fail_tx_dpl_put_max; - } - /* Initialize the deferred packet list. */ stdp = &txq->dpl; stdp->std_put_max = sfxge_tx_dpl_put_max; @@ -1829,8 +1813,6 @@ sfxge_tx_qinit(struct sfxge_softc *sc, unsigned int txq_index, fail_txq_stat_init: fail_dpl_node: -fail_tx_dpl_put_max: -fail_tx_dpl_get_max: fail3: fail_txq_node: free(txq->pend_desc, M_SFXGE); @@ -1937,6 +1919,26 @@ sfxge_tx_init(struct sfxge_softc *sc) KASSERT(intr->state == SFXGE_INTR_INITIALIZED, ("intr->state != SFXGE_INTR_INITIALIZED")); + if (sfxge_tx_dpl_get_max <= 0) { + log(LOG_ERR, "%s=%d must be greater than 0", + SFXGE_PARAM_TX_DPL_GET_MAX, sfxge_tx_dpl_get_max); + rc = EINVAL; + goto fail_tx_dpl_get_max; + } + if (sfxge_tx_dpl_get_non_tcp_max <= 0) { + log(LOG_ERR, "%s=%d must be greater than 0", + SFXGE_PARAM_TX_DPL_GET_NON_TCP_MAX, + sfxge_tx_dpl_get_non_tcp_max); + rc = EINVAL; + goto fail_tx_dpl_get_non_tcp_max; + } + if (sfxge_tx_dpl_put_max < 0) { + log(LOG_ERR, "%s=%d must be greater or equal to 0", + SFXGE_PARAM_TX_DPL_PUT_MAX, sfxge_tx_dpl_put_max); + rc = EINVAL; + goto fail_tx_dpl_put_max; + } + sc->txq_count = SFXGE_TXQ_NTYPES - 1 + sc->intr.n_alloc; sc->tso_fw_assisted = sfxge_tso_fw_assisted; @@ -1989,5 +1991,8 @@ fail2: fail: fail_txq_node: sc->txq_count = 0; +fail_tx_dpl_put_max: +fail_tx_dpl_get_non_tcp_max: +fail_tx_dpl_get_max: return (rc); } diff --git a/sys/dev/usb/usb_device.c b/sys/dev/usb/usb_device.c index 52ebf60..cc5bf36 100644 --- a/sys/dev/usb/usb_device.c +++ b/sys/dev/usb/usb_device.c @@ -1941,8 +1941,8 @@ config_done: udev->ugen_symlink = usb_alloc_symlink(udev->ugen_name); /* Announce device */ - printf("%s: <%s> at %s\n", udev->ugen_name, - usb_get_manufacturer(udev), + printf("%s: <%s %s> at %s\n", udev->ugen_name, + usb_get_manufacturer(udev), usb_get_product(udev), device_get_nameunit(udev->bus->bdev)); #endif @@ -2148,8 +2148,9 @@ usb_free_device(struct usb_device *udev, uint8_t flag) #if USB_HAVE_UGEN if (!rebooting) { - printf("%s: <%s> at %s (disconnected)\n", udev->ugen_name, - usb_get_manufacturer(udev), device_get_nameunit(bus->bdev)); + printf("%s: <%s %s> at %s (disconnected)\n", udev->ugen_name, + usb_get_manufacturer(udev), usb_get_product(udev), + device_get_nameunit(bus->bdev)); } /* Destroy UGEN symlink, if any */ diff --git a/sys/dev/virtio/pci/virtio_pci.c b/sys/dev/virtio/pci/virtio_pci.c index c4f81fd..121351f 100644 --- a/sys/dev/virtio/pci/virtio_pci.c +++ b/sys/dev/virtio/pci/virtio_pci.c @@ -1087,7 +1087,8 @@ vtpci_set_host_msix_vectors(struct vtpci_softc *sc) * For shared MSIX, all the virtqueues share the first * interrupt. */ - if ((sc->vtpci_flags & VTPCI_FLAG_SHARED_MSIX) == 0) + if (!sc->vtpci_vqs[idx].vtv_no_intr && + (sc->vtpci_flags & VTPCI_FLAG_SHARED_MSIX) == 0) intr++; } diff --git a/sys/dev/xen/blkfront/blkfront.c b/sys/dev/xen/blkfront/blkfront.c index 1ad2494..58ddd80 100644 --- a/sys/dev/xen/blkfront/blkfront.c +++ b/sys/dev/xen/blkfront/blkfront.c @@ -1239,19 +1239,27 @@ xbd_connect(struct xbd_softc *sc) xenbus_get_otherend_path(dev)); return; } + if ((sectors == 0) || (sector_size == 0)) { + xenbus_dev_fatal(dev, 0, + "invalid parameters from %s:" + " sectors = %lu, sector_size = %lu", + xenbus_get_otherend_path(dev), + sectors, sector_size); + return; + } err = xs_gather(XST_NIL, xenbus_get_otherend_path(dev), "physical-sector-size", "%lu", &phys_sector_size, NULL); if (err || phys_sector_size <= sector_size) phys_sector_size = 0; err = xs_gather(XST_NIL, xenbus_get_otherend_path(dev), - "feature-barrier", "%lu", &feature_barrier, + "feature-barrier", "%d", &feature_barrier, NULL); if (err == 0 && feature_barrier != 0) sc->xbd_flags |= XBDF_BARRIER; err = xs_gather(XST_NIL, xenbus_get_otherend_path(dev), - "feature-flush-cache", "%lu", &feature_flush, + "feature-flush-cache", "%d", &feature_flush, NULL); if (err == 0 && feature_flush != 0) sc->xbd_flags |= XBDF_FLUSH; diff --git a/sys/fs/ext2fs/ext2_alloc.c b/sys/fs/ext2fs/ext2_alloc.c index ee854bb..c4e0c47 100644 --- a/sys/fs/ext2fs/ext2_alloc.c +++ b/sys/fs/ext2fs/ext2_alloc.c @@ -86,7 +86,8 @@ ext2_alloc(struct inode *ip, daddr_t lbn, e4fs_daddr_t bpref, int size, struct m_ext2fs *fs; struct ext2mount *ump; int32_t bno; - int cg; + int cg; + *bnp = 0; fs = ip->i_e2fs; ump = ip->i_ump; @@ -99,11 +100,11 @@ ext2_alloc(struct inode *ip, daddr_t lbn, e4fs_daddr_t bpref, int size, } if (cred == NOCRED) panic("ext2_alloc: missing credential"); -#endif /* INVARIANTS */ +#endif /* INVARIANTS */ if (size == fs->e2fs_bsize && fs->e2fs->e2fs_fbcount == 0) goto nospace; - if (cred->cr_uid != 0 && - fs->e2fs->e2fs_fbcount < fs->e2fs->e2fs_rbcount) + if (cred->cr_uid != 0 && + fs->e2fs->e2fs_fbcount < fs->e2fs->e2fs_rbcount) goto nospace; if (bpref >= fs->e2fs->e2fs_bcount) bpref = 0; @@ -112,7 +113,7 @@ ext2_alloc(struct inode *ip, daddr_t lbn, e4fs_daddr_t bpref, int size, else cg = dtog(fs, bpref); bno = (daddr_t)ext2_hashalloc(ip, cg, bpref, fs->e2fs_bsize, - ext2_alloccg); + ext2_alloccg); if (bno > 0) { /* set next_alloc fields as done in block_getblk */ ip->i_next_alloc_block = lbn; @@ -148,10 +149,12 @@ nospace: static SYSCTL_NODE(_vfs, OID_AUTO, ext2fs, CTLFLAG_RW, 0, "EXT2FS filesystem"); static int doasyncfree = 1; + SYSCTL_INT(_vfs_ext2fs, OID_AUTO, doasyncfree, CTLFLAG_RW, &doasyncfree, 0, "Use asychronous writes to update block pointers when freeing blocks"); static int doreallocblks = 1; + SYSCTL_INT(_vfs_ext2fs, OID_AUTO, doreallocblks, CTLFLAG_RW, &doreallocblks, 0, ""); int @@ -171,7 +174,7 @@ ext2_reallocblks(struct vop_reallocblks_args *ap) int i, len, start_lvl, end_lvl, pref, ssize; if (doreallocblks == 0) - return (ENOSPC); + return (ENOSPC); vp = ap->a_vp; ip = VTOI(vp); @@ -236,7 +239,7 @@ ext2_reallocblks(struct vop_reallocblks_args *ap) ssize = len; } else { #ifdef INVARIANTS - if (start_ap[start_lvl-1].in_lbn == idp->in_lbn) + if (start_ap[start_lvl - 1].in_lbn == idp->in_lbn) panic("ext2_reallocblks: start == end"); #endif ssize = len - (idp->in_off + 1); @@ -253,10 +256,10 @@ ext2_reallocblks(struct vop_reallocblks_args *ap) * Search the block map looking for an allocation of the desired size. */ if ((newblk = (e2fs_daddr_t)ext2_hashalloc(ip, dtog(fs, pref), pref, - len, ext2_clusteralloc)) == 0){ + len, ext2_clusteralloc)) == 0) { EXT2_UNLOCK(ump); goto fail; - } + } /* * We have found a new contiguous block. * @@ -267,7 +270,7 @@ ext2_reallocblks(struct vop_reallocblks_args *ap) #ifdef DEBUG printf("realloc: ino %d, lbns %jd-%jd\n\told:", ip->i_number, (intmax_t)start_lbn, (intmax_t)end_lbn); -#endif /* DEBUG */ +#endif /* DEBUG */ blkno = newblk; for (bap = &sbap[soff], i = 0; i < len; i++, blkno += fs->e2fs_fpb) { if (i == ssize) { @@ -279,15 +282,15 @@ ext2_reallocblks(struct vop_reallocblks_args *ap) panic("ext2_reallocblks: alloc mismatch"); #endif #ifdef DEBUG - printf(" %d,", *bap); -#endif /* DEBUG */ + printf(" %d,", *bap); +#endif /* DEBUG */ *bap++ = blkno; } /* * Next we must write out the modified inode and indirect blocks. * For strict correctness, the writes should be synchronous since * the old block values may have been written to disk. In practise - * they are almost never written, but if we are concerned about + * they are almost never written, but if we are concerned about * strict correctness, the `doasyncfree' flag should be set to zero. * * The test on `doasyncfree' should be changed to test a flag @@ -318,18 +321,18 @@ ext2_reallocblks(struct vop_reallocblks_args *ap) */ #ifdef DEBUG printf("\n\tnew:"); -#endif /* DEBUG */ +#endif /* DEBUG */ for (blkno = newblk, i = 0; i < len; i++, blkno += fs->e2fs_fpb) { ext2_blkfree(ip, dbtofsb(fs, buflist->bs_children[i]->b_blkno), fs->e2fs_bsize); buflist->bs_children[i]->b_blkno = fsbtodb(fs, blkno); #ifdef DEBUG printf(" %d,", blkno); -#endif /* DEBUG */ +#endif /* DEBUG */ } #ifdef DEBUG printf("\n"); -#endif /* DEBUG */ +#endif /* DEBUG */ return (0); fail: @@ -342,7 +345,7 @@ fail: /* * Allocate an inode in the filesystem. - * + * */ int ext2_valloc(struct vnode *pvp, int mode, struct ucred *cred, struct vnode **vpp) @@ -354,7 +357,7 @@ ext2_valloc(struct vnode *pvp, int mode, struct ucred *cred, struct vnode **vpp) struct ext2mount *ump; ino_t ino, ipref; int i, error, cg; - + *vpp = NULL; pip = VTOI(pvp); fs = pip->i_e2fs; @@ -380,7 +383,7 @@ ext2_valloc(struct vnode *pvp, int mode, struct ucred *cred, struct vnode **vpp) ipref = cg * fs->e2fs->e2fs_ipg + 1; ino = (ino_t)ext2_hashalloc(pip, cg, (long)ipref, mode, ext2_nodealloccg); - if (ino == 0) + if (ino == 0) goto noinodes; error = VFS_VGET(pvp->v_mount, ino, LK_EXCLUSIVE, vpp); if (error) { @@ -454,7 +457,7 @@ ext2_dirpref(struct inode *pip) avgifree = fs->e2fs->e2fs_ficount / fs->e2fs_gcount; avgbfree = fs->e2fs->e2fs_fbcount / fs->e2fs_gcount; - avgndir = fs->e2fs_total_dir / fs->e2fs_gcount; + avgndir = fs->e2fs_total_dir / fs->e2fs_gcount; /* * Force allocation in another cg if creating a first level dir. @@ -478,10 +481,8 @@ ext2_dirpref(struct inode *pip) mincg = cg; minndir = fs->e2fs_gd[cg].ext2bgd_ndirs; } - return (mincg); } - /* * Count various limits which used for * optimal allocation of a directory inode. @@ -504,7 +505,7 @@ ext2_dirpref(struct inode *pip) maxcontigdirs = 1; /* - * Limit number of dirs in one cg and reserve space for + * Limit number of dirs in one cg and reserve space for * regular files, but only if we have no deficit in * inodes or space. */ @@ -536,7 +537,7 @@ ext2_dirpref(struct inode *pip) } /* - * Select the desired position for the next block in a file. + * Select the desired position for the next block in a file. * * we try to mimic what Remy does in inode_getblk/block_getblk * @@ -552,30 +553,34 @@ e4fs_daddr_t ext2_blkpref(struct inode *ip, e2fs_lbn_t lbn, int indx, e2fs_daddr_t *bap, e2fs_daddr_t blocknr) { - int tmp; + int tmp; + mtx_assert(EXT2_MTX(ip->i_ump), MA_OWNED); - /* if the next block is actually what we thought it is, - then set the goal to what we thought it should be - */ + /* + * If the next block is actually what we thought it is, then set the + * goal to what we thought it should be. + */ if (ip->i_next_alloc_block == lbn && ip->i_next_alloc_goal != 0) return ip->i_next_alloc_goal; - /* now check whether we were provided with an array that basically - tells us previous blocks to which we want to stay closeby - */ + /* + * Now check whether we were provided with an array that basically + * tells us previous blocks to which we want to stay close. + */ if (bap) - for (tmp = indx - 1; tmp >= 0; tmp--) - if (bap[tmp]) + for (tmp = indx - 1; tmp >= 0; tmp--) + if (bap[tmp]) return bap[tmp]; - /* else let's fall back to the blocknr, or, if there is none, - follow the rule that a block should be allocated near its inode - */ + /* + * Else lets fall back to the blocknr or, if there is none, follow + * the rule that a block should be allocated near its inode. + */ return blocknr ? blocknr : - (e2fs_daddr_t)(ip->i_block_group * - EXT2_BLOCKS_PER_GROUP(ip->i_e2fs)) + - ip->i_e2fs->e2fs->e2fs_first_dblock; + (e2fs_daddr_t)(ip->i_block_group * + EXT2_BLOCKS_PER_GROUP(ip->i_e2fs)) + + ip->i_e2fs->e2fs->e2fs_first_dblock; } /* @@ -588,7 +593,7 @@ ext2_blkpref(struct inode *ip, e2fs_lbn_t lbn, int indx, e2fs_daddr_t *bap, */ static u_long ext2_hashalloc(struct inode *ip, int cg, long pref, int size, - daddr_t (*allocator)(struct inode *, int, daddr_t, int)) + daddr_t (*allocator) (struct inode *, int, daddr_t, int)) { struct m_ext2fs *fs; ino_t result; @@ -652,8 +657,8 @@ ext2_alloccg(struct inode *ip, int cg, daddr_t bpref, int size) return (0); EXT2_UNLOCK(ump); error = bread(ip->i_devvp, fsbtodb(fs, - fs->e2fs_gd[cg].ext2bgd_b_bitmap), - (int)fs->e2fs_bsize, NOCRED, &bp); + fs->e2fs_gd[cg].ext2bgd_b_bitmap), + (int)fs->e2fs_bsize, NOCRED, &bp); if (error) { brelse(bp); EXT2_LOCK(ump); @@ -739,9 +744,8 @@ retry: start = 0; goto retry; } - bno = ext2_mapsearch(fs, bbp, bpref); - if (bno < 0){ + if (bno < 0) { brelse(bp); EXT2_LOCK(ump); return (0); @@ -750,7 +754,7 @@ gotit: #ifdef INVARIANTS if (isset(bbp, bno)) { printf("ext2fs_alloccgblk: cg=%d bno=%jd fs=%s\n", - cg, (intmax_t)bno, fs->e2fs_fsmnt); + cg, (intmax_t)bno, fs->e2fs_fsmnt); panic("ext2fs_alloccg: dup alloc"); } #endif @@ -810,9 +814,9 @@ ext2_clusteralloc(struct inode *ip, int cg, daddr_t bpref, int len) * to find no cluster. */ lp = &fs->e2fs_clustersum[cg].cs_sum[len - 1]; - for (i = len - 1; i > 0; i--) - if (*lp-- > 0) - break; + for (i = len - 1; i > 0; i--) + if (*lp-- > 0) + break; fs->e2fs_maxcluster[cg] = i; goto fail; } @@ -887,17 +891,18 @@ ext2_nodealloccg(struct inode *ip, int cg, daddr_t ipref, int mode) struct ext2mount *ump; int error, start, len; char *ibp, *loc; - ipref--; /* to avoid a lot of (ipref -1) */ + + ipref--; /* to avoid a lot of (ipref -1) */ if (ipref == -1) ipref = 0; fs = ip->i_e2fs; ump = ip->i_ump; if (fs->e2fs_gd[cg].ext2bgd_nifree == 0) return (0); - EXT2_UNLOCK(ump); + EXT2_UNLOCK(ump); error = bread(ip->i_devvp, fsbtodb(fs, - fs->e2fs_gd[cg].ext2bgd_i_bitmap), - (int)fs->e2fs_bsize, NOCRED, &bp); + fs->e2fs_gd[cg].ext2bgd_i_bitmap), + (int)fs->e2fs_bsize, NOCRED, &bp); if (error) { brelse(bp); EXT2_LOCK(ump); @@ -927,7 +932,7 @@ ext2_nodealloccg(struct inode *ip, int cg, daddr_t ipref, int mode) loc = memcchr(&ibp[start], 0xff, len); if (loc == NULL) { printf("cg = %d, ipref = %lld, fs = %s\n", - cg, (long long)ipref, fs->e2fs_fsmnt); + cg, (long long)ipref, fs->e2fs_fsmnt); panic("ext2fs_nodealloccg: map corrupted"); /* NOTREACHED */ } @@ -945,7 +950,7 @@ gotit: } EXT2_UNLOCK(ump); bdwrite(bp); - return (cg * fs->e2fs->e2fs_ipg + ipref +1); + return (cg * fs->e2fs->e2fs_ipg + ipref + 1); } /* @@ -971,8 +976,8 @@ ext2_blkfree(struct inode *ip, e4fs_daddr_t bno, long size) return; } error = bread(ip->i_devvp, - fsbtodb(fs, fs->e2fs_gd[cg].ext2bgd_b_bitmap), - (int)fs->e2fs_bsize, NOCRED, &bp); + fsbtodb(fs, fs->e2fs_gd[cg].ext2bgd_b_bitmap), + (int)fs->e2fs_bsize, NOCRED, &bp); if (error) { brelse(bp); return; @@ -981,7 +986,7 @@ ext2_blkfree(struct inode *ip, e4fs_daddr_t bno, long size) bno = dtogd(fs, bno); if (isclr(bbp, bno)) { printf("block = %lld, fs = %s\n", - (long long)bno, fs->e2fs_fsmnt); + (long long)bno, fs->e2fs_fsmnt); panic("ext2_blkfree: freeing free block"); } clrbit(bbp, bno); @@ -1006,7 +1011,7 @@ ext2_vfree(struct vnode *pvp, ino_t ino, int mode) struct buf *bp; struct ext2mount *ump; int error, cg; - char * ibp; + char *ibp; pip = VTOI(pvp); fs = pip->i_e2fs; @@ -1017,8 +1022,8 @@ ext2_vfree(struct vnode *pvp, ino_t ino, int mode) cg = ino_to_cg(fs, ino); error = bread(pip->i_devvp, - fsbtodb(fs, fs->e2fs_gd[cg].ext2bgd_i_bitmap), - (int)fs->e2fs_bsize, NOCRED, &bp); + fsbtodb(fs, fs->e2fs_gd[cg].ext2bgd_i_bitmap), + (int)fs->e2fs_bsize, NOCRED, &bp); if (error) { brelse(bp); return (0); @@ -1027,7 +1032,7 @@ ext2_vfree(struct vnode *pvp, ino_t ino, int mode) ino = (ino - 1) % fs->e2fs->e2fs_ipg; if (isclr(ibp, ino)) { printf("ino = %llu, fs = %s\n", - (unsigned long long)ino, fs->e2fs_fsmnt); + (unsigned long long)ino, fs->e2fs_fsmnt); if (fs->e2fs_ronly == 0) panic("ext2_vfree: freeing free inode"); } @@ -1073,7 +1078,7 @@ ext2_mapsearch(struct m_ext2fs *fs, char *bbp, daddr_t bpref) loc = memcchr(&bbp[start], 0xff, len); if (loc == NULL) { printf("start = %d, len = %d, fs = %s\n", - start, len, fs->e2fs_fsmnt); + start, len, fs->e2fs_fsmnt); panic("ext2_mapsearch: map corrupted"); /* NOTREACHED */ } @@ -1083,7 +1088,7 @@ ext2_mapsearch(struct m_ext2fs *fs, char *bbp, daddr_t bpref) /* * Fserr prints the name of a filesystem with an error diagnostic. - * + * * The form of the error message is: * fs: error message */ diff --git a/sys/fs/ext2fs/ext2_balloc.c b/sys/fs/ext2fs/ext2_balloc.c index 335c28a..e2f4f84 100644 --- a/sys/fs/ext2fs/ext2_balloc.c +++ b/sys/fs/ext2fs/ext2_balloc.c @@ -76,22 +76,23 @@ ext2_balloc(struct inode *ip, e2fs_lbn_t lbn, int size, struct ucred *cred, ump = ip->i_ump; /* - * check if this is a sequential block allocation. - * If so, increment next_alloc fields to allow ext2_blkpref + * check if this is a sequential block allocation. + * If so, increment next_alloc fields to allow ext2_blkpref * to make a good guess */ if (lbn == ip->i_next_alloc_block + 1) { ip->i_next_alloc_block++; ip->i_next_alloc_goal++; } - /* * The first NDADDR blocks are direct blocks */ if (lbn < NDADDR) { nb = ip->i_db[lbn]; - /* no new block is to be allocated, and no need to expand - the file */ + /* + * no new block is to be allocated, and no need to expand + * the file + */ if (nb != 0 && ip->i_size >= (lbn + 1) * fs->e2fs_bsize) { error = bread(vp, lbn, fs->e2fs_bsize, NOCRED, &bp); if (error) { @@ -116,10 +117,13 @@ ext2_balloc(struct inode *ip, e2fs_lbn_t lbn, int size, struct ucred *cred, } bp->b_blkno = fsbtodb(fs, nb); } else { - /* Godmar thinks: this shouldn't happen w/o fragments */ - printf("nsize %d(%d) > osize %d(%d) nb %d\n", - (int)nsize, (int)size, (int)osize, - (int)ip->i_size, (int)nb); + /* + * Godmar thinks: this shouldn't happen w/o + * fragments + */ + printf("nsize %d(%d) > osize %d(%d) nb %d\n", + (int)nsize, (int)size, (int)osize, + (int)ip->i_size, (int)nb); panic( "ext2_balloc: Something is terribly wrong"); /* @@ -156,7 +160,7 @@ ext2_balloc(struct inode *ip, e2fs_lbn_t lbn, int size, struct ucred *cred, return (error); #ifdef INVARIANTS if (num < 1) - panic ("ext2_balloc: ext2_getlbns returned indirect block"); + panic("ext2_balloc: ext2_getlbns returned indirect block"); #endif /* * Fetch the first indirect block allocating if necessary. @@ -165,10 +169,10 @@ ext2_balloc(struct inode *ip, e2fs_lbn_t lbn, int size, struct ucred *cred, nb = ip->i_ib[indirs[0].in_off]; if (nb == 0) { EXT2_LOCK(ump); - pref = ext2_blkpref(ip, lbn, indirs[0].in_off + - EXT2_NDIR_BLOCKS, &ip->i_db[0], 0); + pref = ext2_blkpref(ip, lbn, indirs[0].in_off + + EXT2_NDIR_BLOCKS, &ip->i_db[0], 0); if ((error = ext2_alloc(ip, lbn, pref, fs->e2fs_bsize, cred, - &newb))) + &newb))) return (error); nb = newb; bp = getblk(vp, indirs[1].in_lbn, fs->e2fs_bsize, 0, 0, 0); @@ -207,8 +211,8 @@ ext2_balloc(struct inode *ip, e2fs_lbn_t lbn, int size, struct ucred *cred, EXT2_LOCK(ump); if (pref == 0) pref = ext2_blkpref(ip, lbn, indirs[i].in_off, bap, - bp->b_lblkno); - error = ext2_alloc(ip, lbn, pref, (int)fs->e2fs_bsize, cred, &newb); + bp->b_lblkno); + error = ext2_alloc(ip, lbn, pref, (int)fs->e2fs_bsize, cred, &newb); if (error) { brelse(bp); return (error); @@ -245,8 +249,8 @@ ext2_balloc(struct inode *ip, e2fs_lbn_t lbn, int size, struct ucred *cred, */ if (nb == 0) { EXT2_LOCK(ump); - pref = ext2_blkpref(ip, lbn, indirs[i].in_off, &bap[0], - bp->b_lblkno); + pref = ext2_blkpref(ip, lbn, indirs[i].in_off, &bap[0], + bp->b_lblkno); if ((error = ext2_alloc(ip, lbn, pref, (int)fs->e2fs_bsize, cred, &newb)) != 0) { brelse(bp); @@ -265,7 +269,7 @@ ext2_balloc(struct inode *ip, e2fs_lbn_t lbn, int size, struct ucred *cred, if (flags & IO_SYNC) { bwrite(bp); } else { - if (bp->b_bufsize == fs->e2fs_bsize) + if (bp->b_bufsize == fs->e2fs_bsize) bp->b_flags |= B_CLUSTEROK; bdwrite(bp); } @@ -275,6 +279,7 @@ ext2_balloc(struct inode *ip, e2fs_lbn_t lbn, int size, struct ucred *cred, brelse(bp); if (flags & BA_CLRBUF) { int seqcount = (flags & BA_SEQMASK) >> BA_SEQSHIFT; + if (seqcount && (vp->v_mount->mnt_flag & MNT_NOCLUSTERR) == 0) { error = cluster_read(vp, ip->i_size, lbn, (int)fs->e2fs_bsize, NOCRED, @@ -293,4 +298,3 @@ ext2_balloc(struct inode *ip, e2fs_lbn_t lbn, int size, struct ucred *cred, *bpp = nbp; return (0); } - diff --git a/sys/fs/ext2fs/ext2_bmap.c b/sys/fs/ext2fs/ext2_bmap.c index 7d4a880..abd5d10 100644 --- a/sys/fs/ext2fs/ext2_bmap.c +++ b/sys/fs/ext2fs/ext2_bmap.c @@ -94,7 +94,7 @@ ext4_bmapext(struct vnode *vp, int32_t bn, int64_t *bnp, int *runp, int *runb) struct inode *ip; struct m_ext2fs *fs; struct ext4_extent *ep; - struct ext4_extent_path path = { .ep_bp = NULL }; + struct ext4_extent_path path = {.ep_bp = NULL}; daddr_t lbn; int ret = 0; @@ -152,7 +152,7 @@ ext2_bmaparray(struct vnode *vp, daddr_t bn, daddr_t *bnp, int *runp, int *runb) struct buf *bp; struct ext2mount *ump; struct mount *mp; - struct indir a[NIADDR+1], *ap; + struct indir a[NIADDR + 1], *ap; daddr_t daddr; e2fs_lbn_t metalbn; int error, num, maxrun = 0, bsize; @@ -169,10 +169,8 @@ ext2_bmaparray(struct vnode *vp, daddr_t bn, daddr_t *bnp, int *runp, int *runb) maxrun = mp->mnt_iosize_max / bsize - 1; *runp = 0; } - - if (runb) { + if (runb) *runb = 0; - } ap = a; @@ -188,6 +186,7 @@ ext2_bmaparray(struct vnode *vp, daddr_t bn, daddr_t *bnp, int *runp, int *runb) *bnp = -1; } else if (runp) { daddr_t bnb = bn; + for (++bn; bn < NDADDR && *runp < maxrun && is_sequential(ump, ip->i_db[bn - 1], ip->i_db[bn]); ++bn, ++*runp); @@ -202,7 +201,6 @@ ext2_bmaparray(struct vnode *vp, daddr_t bn, daddr_t *bnp, int *runp, int *runb) return (0); } - /* Get disk address out of indirect block array */ daddr = ip->i_ib[ap->in_off]; @@ -272,7 +270,7 @@ ext2_bmaparray(struct vnode *vp, daddr_t bn, daddr_t *bnp, int *runp, int *runb) * return a request for a zeroed out buffer if attempts are made * to read a BLK_NOCOPY or BLK_SNAP block. */ - if ((ip->i_flags & SF_SNAPSHOT) && daddr > 0 && daddr < ump->um_seqinc){ + if ((ip->i_flags & SF_SNAPSHOT) && daddr > 0 && daddr < ump->um_seqinc) { *bnp = -1; return (0); } diff --git a/sys/fs/ext2fs/ext2_dir.h b/sys/fs/ext2fs/ext2_dir.h index 8d92882..49b8aeb 100644 --- a/sys/fs/ext2fs/ext2_dir.h +++ b/sys/fs/ext2fs/ext2_dir.h @@ -34,7 +34,7 @@ */ #define EXT2FS_MAXNAMLEN 255 -struct ext2fs_direct { +struct ext2fs_direct { uint32_t e2d_ino; /* inode number of entry */ uint16_t e2d_reclen; /* length of this record */ uint16_t e2d_namlen; /* length of string in e2d_name */ @@ -49,10 +49,10 @@ enum slotstatus { struct ext2fs_searchslot { enum slotstatus slotstatus; - doff_t slotoffset; /* offset of area with free space */ - int slotsize; /* size of area at slotoffset */ - int slotfreespace; /* amount of space free in slot */ - int slotneeded; /* sizeof the entry we are seeking */ + doff_t slotoffset; /* offset of area with free space */ + int slotsize; /* size of area at slotoffset */ + int slotfreespace; /* amount of space free in slot */ + int slotneeded; /* sizeof the entry we are seeking */ }; /* @@ -61,12 +61,13 @@ struct ext2fs_searchslot { * bigger than 255 chars, it's safe to reclaim the extra byte for the * file_type field. */ -struct ext2fs_direct_2 { +struct ext2fs_direct_2 { uint32_t e2d_ino; /* inode number of entry */ uint16_t e2d_reclen; /* length of this record */ - uint8_t e2d_namlen; /* length of string in e2d_name */ - uint8_t e2d_type; /* file type */ - char e2d_name[EXT2FS_MAXNAMLEN];/* name with length<=EXT2FS_MAXNAMLEN */ + uint8_t e2d_namlen; /* length of string in e2d_name */ + uint8_t e2d_type; /* file type */ + char e2d_name[EXT2FS_MAXNAMLEN]; /* name with + * length<=EXT2FS_MAXNAMLEN */ }; /* @@ -97,5 +98,4 @@ struct ext2fs_direct_2 { #define EXT2_DIR_ROUND (EXT2_DIR_PAD - 1) #define EXT2_DIR_REC_LEN(name_len) (((name_len) + 8 + EXT2_DIR_ROUND) & \ ~EXT2_DIR_ROUND) -#endif /* !_FS_EXT2FS_EXT2_DIR_H_ */ - +#endif /* !_FS_EXT2FS_EXT2_DIR_H_ */ diff --git a/sys/fs/ext2fs/ext2_extents.c b/sys/fs/ext2fs/ext2_extents.c index 68704bb..7801867 100644 --- a/sys/fs/ext2fs/ext2_extents.c +++ b/sys/fs/ext2fs/ext2_extents.c @@ -129,7 +129,7 @@ ext4_ext_put_cache(struct inode *ip, struct ext4_extent *ep, int type) */ struct ext4_extent_path * ext4_ext_find_extent(struct m_ext2fs *fs, struct inode *ip, - daddr_t lbn, struct ext4_extent_path *path) + daddr_t lbn, struct ext4_extent_path *path) { struct ext4_extent_header *ehp; uint16_t i; @@ -156,7 +156,7 @@ ext4_ext_find_extent(struct m_ext2fs *fs, struct inode *ip, path->ep_bp = NULL; } error = bread(ip->i_devvp, fsbtodb(fs, nblk), size, NOCRED, - &path->ep_bp); + &path->ep_bp); if (error) { brelse(path->ep_bp); path->ep_bp = NULL; diff --git a/sys/fs/ext2fs/ext2_extents.h b/sys/fs/ext2fs/ext2_extents.h index 94ded83..70b9811 100644 --- a/sys/fs/ext2fs/ext2_extents.h +++ b/sys/fs/ext2fs/ext2_extents.h @@ -61,19 +61,19 @@ struct ext4_extent_index { * Extent tree header. */ struct ext4_extent_header { - uint16_t eh_magic; /* magic number: 0xf30a */ - uint16_t eh_ecount; /* number of valid entries */ - uint16_t eh_max; /* capacity of store in entries */ - uint16_t eh_depth; /* the depth of extent tree */ - uint32_t eh_gen; /* generation of extent tree */ + uint16_t eh_magic; /* magic number: 0xf30a */ + uint16_t eh_ecount; /* number of valid entries */ + uint16_t eh_max; /* capacity of store in entries */ + uint16_t eh_depth; /* the depth of extent tree */ + uint32_t eh_gen; /* generation of extent tree */ }; /* * Save cached extent. */ struct ext4_extent_cache { - daddr_t ec_start; /* extent start */ - uint32_t ec_blk; /* logical block */ + daddr_t ec_start; /* extent start */ + uint32_t ec_blk; /* logical block */ uint32_t ec_len; uint32_t ec_type; }; @@ -93,7 +93,8 @@ struct inode; struct m_ext2fs; int ext4_ext_in_cache(struct inode *, daddr_t, struct ext4_extent *); void ext4_ext_put_cache(struct inode *, struct ext4_extent *, int); -struct ext4_extent_path *ext4_ext_find_extent(struct m_ext2fs *fs, +struct ext4_extent_path * +ext4_ext_find_extent(struct m_ext2fs *fs, struct inode *, daddr_t, struct ext4_extent_path *); -#endif /* !_FS_EXT2FS_EXT2_EXTENTS_H_ */ +#endif /* !_FS_EXT2FS_EXT2_EXTENTS_H_ */ diff --git a/sys/fs/ext2fs/ext2_extern.h b/sys/fs/ext2fs/ext2_extern.h index 93bd3f7..5e9d18f 100644 --- a/sys/fs/ext2fs/ext2_extern.h +++ b/sys/fs/ext2fs/ext2_extern.h @@ -110,4 +110,4 @@ int ext2_search_dirblock(struct inode *, void *, int *, const char *, int, extern struct vop_vector ext2_vnodeops; extern struct vop_vector ext2_fifoops; -#endif /* !_FS_EXT2FS_EXT2_EXTERN_H_ */ +#endif /* !_FS_EXT2FS_EXT2_EXTERN_H_ */ diff --git a/sys/fs/ext2fs/ext2_hash.c b/sys/fs/ext2fs/ext2_hash.c index 663a2df..d10c09d 100644 --- a/sys/fs/ext2fs/ext2_hash.c +++ b/sys/fs/ext2fs/ext2_hash.c @@ -192,7 +192,7 @@ ext2_legacy_hash(const char *name, int len, int unsigned_char) static void ext2_prep_hashbuf(const char *src, int slen, uint32_t *dst, int dlen, - int unsigned_char) + int unsigned_char) { uint32_t padding = slen | (slen << 8) | (slen << 16) | (slen << 24); uint32_t buf_val; @@ -240,8 +240,8 @@ ext2_prep_hashbuf(const char *src, int slen, uint32_t *dst, int dlen, int ext2_htree_hash(const char *name, int len, - uint32_t *hash_seed, int hash_version, - uint32_t *hash_major, uint32_t *hash_minor) + uint32_t *hash_seed, int hash_version, + uint32_t *hash_major, uint32_t *hash_minor) { uint32_t hash[4]; uint32_t data[8]; diff --git a/sys/fs/ext2fs/ext2_htree.c b/sys/fs/ext2fs/ext2_htree.c index 6505e05..6d74070 100644 --- a/sys/fs/ext2fs/ext2_htree.c +++ b/sys/fs/ext2fs/ext2_htree.c @@ -98,7 +98,7 @@ ext2_htree_has_idx(struct inode *ip) static int ext2_htree_check_next(struct inode *ip, uint32_t hash, const char *name, - struct ext2fs_htree_lookup_info *info) + struct ext2fs_htree_lookup_info *info) { struct vnode *vp = ITOV(ip); struct ext2fs_htree_lookup_level *level; @@ -195,6 +195,7 @@ ext2_htree_release(struct ext2fs_htree_lookup_info *info) for (i = 0; i < info->h_levels_num; i++) { struct buf *bp = info->h_levels[i].h_bp; + if (bp != NULL) brelse(bp); } @@ -224,8 +225,8 @@ ext2_htree_node_limit(struct inode *ip) static int ext2_htree_find_leaf(struct inode *ip, const char *name, int namelen, - uint32_t *hash, uint8_t *hash_ver, - struct ext2fs_htree_lookup_info *info) + uint32_t *hash, uint8_t *hash_ver, + struct ext2fs_htree_lookup_info *info) { struct vnode *vp; struct ext2fs *fs; @@ -317,9 +318,9 @@ error: */ int ext2_htree_lookup(struct inode *ip, const char *name, int namelen, - struct buf **bpp, int *entryoffp, doff_t *offp, - doff_t *prevoffp, doff_t *endusefulp, - struct ext2fs_searchslot *ss) + struct buf **bpp, int *entryoffp, doff_t *offp, + doff_t *prevoffp, doff_t *endusefulp, + struct ext2fs_searchslot *ss) { struct vnode *vp; struct ext2fs_htree_lookup_info info; @@ -386,7 +387,7 @@ ext2_htree_lookup(struct inode *ip, const char *name, int namelen, static int ext2_htree_append_block(struct vnode *vp, char *data, - struct componentname *cnp, uint32_t blksize) + struct componentname *cnp, uint32_t blksize) { struct iovec aiov; struct uio auio; @@ -419,6 +420,7 @@ ext2_htree_writebuf(struct ext2fs_htree_lookup_info *info) for (i = 0; i < info->h_levels_num; i++) { struct buf *bp = info->h_levels[i].h_bp; + error = bwrite(bp); if (error) return (error); @@ -429,7 +431,7 @@ ext2_htree_writebuf(struct ext2fs_htree_lookup_info *info) static void ext2_htree_insert_entry_to_level(struct ext2fs_htree_lookup_level *level, - uint32_t hash, uint32_t blk) + uint32_t hash, uint32_t blk) { struct ext2fs_htree_entry *target; int entries_num; @@ -449,7 +451,7 @@ ext2_htree_insert_entry_to_level(struct ext2fs_htree_lookup_level *level, */ static void ext2_htree_insert_entry(struct ext2fs_htree_lookup_info *info, - uint32_t hash, uint32_t blk) + uint32_t hash, uint32_t blk) { struct ext2fs_htree_lookup_level *level; @@ -481,8 +483,8 @@ ext2_htree_cmp_sort_entry(const void *e1, const void *e2) */ static void ext2_append_entry(char *block, uint32_t blksize, - struct ext2fs_direct_2 *last_entry, - struct ext2fs_direct_2 *new_entry) + struct ext2fs_direct_2 *last_entry, + struct ext2fs_direct_2 *new_entry) { uint16_t entry_len; @@ -498,8 +500,8 @@ ext2_append_entry(char *block, uint32_t blksize, */ static int ext2_htree_split_dirblock(char *block1, char *block2, uint32_t blksize, - uint32_t *hash_seed, uint8_t hash_version, - uint32_t *split_hash, struct ext2fs_direct_2 *entry) + uint32_t *hash_seed, uint8_t hash_version, + uint32_t *split_hash, struct ext2fs_direct_2 *entry) { int entry_cnt = 0; int size = 0; @@ -585,7 +587,7 @@ ext2_htree_split_dirblock(char *block1, char *block2, uint32_t blksize, offset += ep->e2d_reclen; if (ep->e2d_ino) { last = (struct ext2fs_direct_2 *) - ((char *)last + entry_len); + ((char *)last + entry_len); entry_len = EXT2_DIR_REC_LEN(ep->e2d_namlen); memcpy((void *)last, (void *)ep, entry_len); last->e2d_reclen = entry_len; @@ -616,7 +618,7 @@ ext2_htree_split_dirblock(char *block1, char *block2, uint32_t blksize, */ int ext2_htree_create_index(struct vnode *vp, struct componentname *cnp, - struct ext2fs_direct_2 *new_entry) + struct ext2fs_direct_2 *new_entry) { struct buf *bp = NULL; struct inode *dp; @@ -721,7 +723,7 @@ out1: */ int ext2_htree_add_entry(struct vnode *dvp, struct ext2fs_direct_2 *entry, - struct componentname *cnp) + struct componentname *cnp) { struct ext2fs_htree_entry *entries, *leaf_node; struct ext2fs_htree_lookup_info info; @@ -747,7 +749,7 @@ ext2_htree_add_entry(struct vnode *dvp, struct ext2fs_direct_2 *entry, fs = m_fs->e2fs; blksize = m_fs->e2fs_bsize; - if (ip->i_count != 0) + if (ip->i_count != 0) return ext2_add_entry(dvp, entry); /* Target directory block is full, split it */ @@ -807,6 +809,7 @@ ext2_htree_add_entry(struct vnode *dvp, struct ext2fs_direct_2 *entry, if (info.h_levels[1].h_entry >= entries + src_ent_num) { struct buf *tmp = info.h_levels[1].h_bp; + info.h_levels[1].h_bp = dst_bp; dst_bp = tmp; diff --git a/sys/fs/ext2fs/ext2_inode.c b/sys/fs/ext2fs/ext2_inode.c index 36768fb..e37f0d4 100644 --- a/sys/fs/ext2fs/ext2_inode.c +++ b/sys/fs/ext2fs/ext2_inode.c @@ -81,11 +81,11 @@ ext2_update(struct vnode *vp, int waitfor) return (0); ip->i_flag &= ~(IN_LAZYACCESS | IN_LAZYMOD | IN_MODIFIED); fs = ip->i_e2fs; - if(fs->e2fs_ronly) + if (fs->e2fs_ronly) return (0); if ((error = bread(ip->i_devvp, fsbtodb(fs, ino_to_fsba(fs, ip->i_number)), - (int)fs->e2fs_bsize, NOCRED, &bp)) != 0) { + (int)fs->e2fs_bsize, NOCRED, &bp)) != 0) { brelse(bp); return (error); } @@ -130,10 +130,10 @@ ext2_truncate(struct vnode *vp, off_t length, int flags, struct ucred *cred, bo = &ovp->v_bufobj; #endif - ASSERT_VOP_LOCKED(vp, "ext2_truncate"); + ASSERT_VOP_LOCKED(vp, "ext2_truncate"); if (length < 0) - return (EINVAL); + return (EINVAL); if (ovp->v_type == VLNK && oip->i_size < ovp->v_mount->mnt_maxsymlinklen) { @@ -345,7 +345,7 @@ done: bo->bo_clean.bv_cnt != 0)) panic("itrunc3"); BO_UNLOCK(bo); -#endif /* INVARIANTS */ +#endif /* INVARIANTS */ /* * Put back the real size. */ @@ -418,12 +418,11 @@ ext2_indirtrunc(struct inode *ip, daddr_t lbn, daddr_t dbn, *countp = 0; return (error); } - bap = (e2fs_daddr_t *)bp->b_data; copy = malloc(fs->e2fs_bsize, M_TEMP, M_WAITOK); bcopy((caddr_t)bap, (caddr_t)copy, (u_int)fs->e2fs_bsize); bzero((caddr_t)&bap[last + 1], - (NINDIR(fs) - (last + 1)) * sizeof(e2fs_daddr_t)); + (NINDIR(fs) - (last + 1)) * sizeof(e2fs_daddr_t)); if (last == -1) bp->b_flags |= B_INVAL; if (DOINGASYNC(vp)) { diff --git a/sys/fs/ext2fs/ext2_inode_cnv.c b/sys/fs/ext2fs/ext2_inode_cnv.c index d62e9ba..4ae6b37 100644 --- a/sys/fs/ext2fs/ext2_inode_cnv.c +++ b/sys/fs/ext2fs/ext2_inode_cnv.c @@ -49,17 +49,17 @@ ext2_print_inode(struct inode *in) struct ext4_extent_header *ehp; struct ext4_extent *ep; - printf( "Inode: %5ju", (uintmax_t)in->i_number); - printf( /* "Inode: %5d" */ - " Type: %10s Mode: 0x%o Flags: 0x%x Version: %d\n", - "n/a", in->i_mode, in->i_flags, in->i_gen); + printf("Inode: %5ju", (uintmax_t)in->i_number); + printf( /* "Inode: %5d" */ + " Type: %10s Mode: 0x%o Flags: 0x%x Version: %d\n", + "n/a", in->i_mode, in->i_flags, in->i_gen); printf("User: %5u Group: %5u Size: %ju\n", in->i_uid, in->i_gid, (uintmax_t)in->i_size); printf("Links: %3d Blockcount: %ju\n", in->i_nlink, (uintmax_t)in->i_blocks); - printf( "ctime: 0x%x", in->i_ctime); - printf( "atime: 0x%x", in->i_atime); - printf( "mtime: 0x%x", in->i_mtime); + printf("ctime: 0x%x", in->i_ctime); + printf("atime: 0x%x", in->i_atime); + printf("mtime: 0x%x", in->i_mtime); if (E2DI_HAS_XTIME(in)) printf("crtime %#x ", in->i_birthtime); printf("BLOCKS:"); @@ -87,11 +87,12 @@ ext2_ei2i(struct ext2fs_dinode *ei, struct inode *ip) int i; ip->i_nlink = ei->e2di_nlink; - /* Godmar thinks - if the link count is zero, then the inode is - unused - according to ext2 standards. Ufs marks this fact - by setting i_mode to zero - why ? - I can see that this might lead to problems in an undelete. - */ + /* + * Godmar thinks - if the link count is zero, then the inode is + * unused - according to ext2 standards. Ufs marks this fact by + * setting i_mode to zero - why ? I can see that this might lead to + * problems in an undelete. + */ ip->i_mode = ei->e2di_nlink ? ei->e2di_mode : 0; ip->i_size = ei->e2di_size; if (S_ISREG(ip->i_mode)) @@ -116,15 +117,15 @@ ext2_ei2i(struct ext2fs_dinode *ei, struct inode *ip) if (E2DI_HAS_HUGE_FILE(ip)) { ip->i_blocks |= (uint64_t)ei->e2di_nblock_high << 32; if (ei->e2di_flags & EXT4_HUGE_FILE) - ip->i_blocks = fsbtodb(ip->i_e2fs, ip->i_blocks); + ip->i_blocks = fsbtodb(ip->i_e2fs, ip->i_blocks); } ip->i_gen = ei->e2di_gen; ip->i_uid = ei->e2di_uid; ip->i_gid = ei->e2di_gid; /* XXX use memcpy */ - for(i = 0; i < NDADDR; i++) + for (i = 0; i < NDADDR; i++) ip->i_db[i] = ei->e2di_blocks[i]; - for(i = 0; i < NIADDR; i++) + for (i = 0; i < NIADDR; i++) ip->i_ib[i] = ei->e2di_blocks[EXT2_NDIR_BLOCKS + i]; } @@ -138,9 +139,9 @@ ext2_i2ei(struct inode *ip, struct ext2fs_dinode *ei) ei->e2di_mode = ip->i_mode; ei->e2di_nlink = ip->i_nlink; - /* - Godmar thinks: if dtime is nonzero, ext2 says this inode - has been deleted, this would correspond to a zero link count + /* + * Godmar thinks: if dtime is nonzero, ext2 says this inode has been + * deleted, this would correspond to a zero link count */ ei->e2di_dtime = ei->e2di_nlink ? 0 : ip->i_mtime; ei->e2di_size = ip->i_size; @@ -157,19 +158,19 @@ ext2_i2ei(struct inode *ip, struct ext2fs_dinode *ei) ei->e2di_crtime_extra = NSEC_TO_XTIME(ip->i_birthnsec); } ei->e2di_flags = 0; - ei->e2di_flags |= (ip->i_flags & SF_APPEND) ? EXT2_APPEND: 0; - ei->e2di_flags |= (ip->i_flags & SF_IMMUTABLE) ? EXT2_IMMUTABLE: 0; - ei->e2di_flags |= (ip->i_flags & UF_NODUMP) ? EXT2_NODUMP: 0; - ei->e2di_flags |= (ip->i_flag & IN_E3INDEX) ? EXT3_INDEX: 0; - ei->e2di_flags |= (ip->i_flag & IN_E4EXTENTS) ? EXT4_EXTENTS: 0; + ei->e2di_flags |= (ip->i_flags & SF_APPEND) ? EXT2_APPEND : 0; + ei->e2di_flags |= (ip->i_flags & SF_IMMUTABLE) ? EXT2_IMMUTABLE : 0; + ei->e2di_flags |= (ip->i_flags & UF_NODUMP) ? EXT2_NODUMP : 0; + ei->e2di_flags |= (ip->i_flag & IN_E3INDEX) ? EXT3_INDEX : 0; + ei->e2di_flags |= (ip->i_flag & IN_E4EXTENTS) ? EXT4_EXTENTS : 0; ei->e2di_nblock = ip->i_blocks & 0xffffffff; ei->e2di_nblock_high = ip->i_blocks >> 32 & 0xffff; ei->e2di_gen = ip->i_gen; ei->e2di_uid = ip->i_uid; ei->e2di_gid = ip->i_gid; /* XXX use memcpy */ - for(i = 0; i < NDADDR; i++) + for (i = 0; i < NDADDR; i++) ei->e2di_blocks[i] = ip->i_db[i]; - for(i = 0; i < NIADDR; i++) + for (i = 0; i < NIADDR; i++) ei->e2di_blocks[EXT2_NDIR_BLOCKS + i] = ip->i_ib[i]; } diff --git a/sys/fs/ext2fs/ext2_lookup.c b/sys/fs/ext2fs/ext2_lookup.c index 819077c..922cb58 100644 --- a/sys/fs/ext2fs/ext2_lookup.c +++ b/sys/fs/ext2fs/ext2_lookup.c @@ -238,7 +238,7 @@ ext2_readdir(struct vop_readdir_args *ap) nextentry: offset += dp->e2d_reclen; dp = (struct ext2fs_direct_2 *)((caddr_t)dp + - dp->e2d_reclen); + dp->e2d_reclen); } bqrelse(bp); uio->uio_offset = offset; @@ -324,7 +324,7 @@ ext2_lookup_ino(struct vnode *vdp, struct vnode **vpp, struct componentname *cnp int ltype; int entry_found = 0; - int DIRBLKSIZ = VTOI(vdp)->i_e2fs->e2fs_bsize; + int DIRBLKSIZ = VTOI(vdp)->i_e2fs->e2fs_bsize; if (vpp != NULL) *vpp = NULL; @@ -350,11 +350,11 @@ restart: (flags & ISLASTCN)) { ss.slotstatus = NONE; ss.slotneeded = EXT2_DIR_REC_LEN(cnp->cn_namelen); - /* was - ss.slotneeded = (sizeof(struct direct) - MAXNAMLEN + - cnp->cn_namelen + 3) &~ 3; */ + /* + * was ss.slotneeded = (sizeof(struct direct) - MAXNAMLEN + + * cnp->cn_namelen + 3) &~ 3; + */ } - /* * Try to lookup dir entry using htree directory index. * @@ -365,11 +365,11 @@ restart: numdirpasses = 1; entryoffsetinblock = 0; switch (ext2_htree_lookup(dp, cnp->cn_nameptr, cnp->cn_namelen, - &bp, &entryoffsetinblock, &i_offset, &prevoff, - &enduseful, &ss)) { + &bp, &entryoffsetinblock, &i_offset, &prevoff, + &enduseful, &ss)) { case 0: ep = (struct ext2fs_direct_2 *)((char *)bp->b_data + - (i_offset & bmask)); + (i_offset & bmask)); goto foundentry; case ENOENT: i_offset = roundup2(dp->i_size, DIRBLKSIZ); @@ -433,16 +433,16 @@ searchloop: ss.slotfreespace = 0; } error = ext2_search_dirblock(dp, bp->b_data, &entry_found, - cnp->cn_nameptr, cnp->cn_namelen, - &entryoffsetinblock, &i_offset, &prevoff, - &enduseful, &ss); + cnp->cn_nameptr, cnp->cn_namelen, + &entryoffsetinblock, &i_offset, &prevoff, + &enduseful, &ss); if (error != 0) { brelse(bp); return (error); } if (entry_found) { ep = (struct ext2fs_direct_2 *)((char *)bp->b_data + - (entryoffsetinblock & bmask)); + (entryoffsetinblock & bmask)); foundentry: ino = ep->e2d_ino; goto found; @@ -527,9 +527,9 @@ found: * of this entry. */ if (entryoffsetinblock + EXT2_DIR_REC_LEN(ep->e2d_namlen) - > dp->i_size) { + > dp->i_size) { ext2_dirbad(dp, i_offset, "i_size too small"); - dp->i_size = entryoffsetinblock+EXT2_DIR_REC_LEN(ep->e2d_namlen); + dp->i_size = entryoffsetinblock + EXT2_DIR_REC_LEN(ep->e2d_namlen); dp->i_flag |= IN_CHANGE | IN_UPDATE; } brelse(bp); @@ -678,7 +678,7 @@ found: if (ltype != VOP_ISLOCKED(vdp)) { if (ltype == LK_EXCLUSIVE) vn_lock(vdp, LK_UPGRADE | LK_RETRY); - else /* if (ltype == LK_SHARED) */ + else /* if (ltype == LK_SHARED) */ vn_lock(vdp, LK_DOWNGRADE | LK_RETRY); } *vpp = vdp; @@ -699,9 +699,9 @@ found: int ext2_search_dirblock(struct inode *ip, void *data, int *foundp, - const char *name, int namelen, int *entryoffsetinblockp, - doff_t *offp, doff_t *prevoffp, doff_t *endusefulp, - struct ext2fs_searchslot *ssp) + const char *name, int namelen, int *entryoffsetinblockp, + doff_t *offp, doff_t *prevoffp, doff_t *endusefulp, + struct ext2fs_searchslot *ssp) { struct vnode *vdp; struct ext2fs_direct_2 *ep, *top; @@ -713,7 +713,7 @@ ext2_search_dirblock(struct inode *ip, void *data, int *foundp, ep = (struct ext2fs_direct_2 *)((char *)data + offset); top = (struct ext2fs_direct_2 *)((char *)data + - bsize - EXT2_DIR_REC_LEN(0)); + bsize - EXT2_DIR_REC_LEN(0)); while (ep < top) { /* @@ -725,6 +725,7 @@ ext2_search_dirblock(struct inode *ip, void *data, int *foundp, if (ep->e2d_reclen == 0 || (dirchk && ext2_dirbadentry(vdp, ep, offset))) { int i; + ext2_dirbad(ip, *offp, "mangled entry"); i = bsize - (offset & (bsize - 1)); *offp += i; @@ -755,13 +756,12 @@ ext2_search_dirblock(struct inode *ip, void *data, int *foundp, if (ssp->slotfreespace >= ssp->slotneeded) { ssp->slotstatus = COMPACT; ssp->slotsize = *offp + - ep->e2d_reclen - - ssp->slotoffset; + ep->e2d_reclen - + ssp->slotoffset; } } } } - /* * Check for a name match. */ @@ -823,9 +823,9 @@ static int ext2_dirbadentry(struct vnode *dp, struct ext2fs_direct_2 *de, int entryoffsetinblock) { - int DIRBLKSIZ = VTOI(dp)->i_e2fs->e2fs_bsize; + int DIRBLKSIZ = VTOI(dp)->i_e2fs->e2fs_bsize; - char * error_msg = NULL; + char *error_msg = NULL; if (de->e2d_reclen < EXT2_DIR_REC_LEN(1)) error_msg = "rec_len is smaller than minimal"; @@ -1199,9 +1199,9 @@ ext2_checkpath(struct inode *source, struct inode *target, struct ucred *cred) break; } error = vn_rdwr(UIO_READ, vp, (caddr_t)&dirbuf, - sizeof(struct dirtemplate), (off_t)0, UIO_SYSSPACE, - IO_NODELOCKED | IO_NOMACCHECK, cred, NOCRED, NULL, - NULL); + sizeof(struct dirtemplate), (off_t)0, UIO_SYSSPACE, + IO_NODELOCKED | IO_NOMACCHECK, cred, NOCRED, NULL, + NULL); if (error != 0) break; namlen = dirbuf.dotdot_type; /* like ufs little-endian */ diff --git a/sys/fs/ext2fs/ext2_mount.h b/sys/fs/ext2fs/ext2_mount.h index f661c91..4fc70b3 100644 --- a/sys/fs/ext2fs/ext2_mount.h +++ b/sys/fs/ext2fs/ext2_mount.h @@ -73,6 +73,6 @@ struct ext2mount { #define MNINDIR(ump) ((ump)->um_nindir) #define blkptrtodb(ump, b) ((b) << (ump)->um_bptrtodb) #define is_sequential(ump, a, b) ((b) == (a) + ump->um_seqinc) -#endif /* _KERNEL */ +#endif /* _KERNEL */ #endif /* !_FS_EXT2FS_EXT2_MOUNT_H_ */ diff --git a/sys/fs/ext2fs/ext2_subr.c b/sys/fs/ext2fs/ext2_subr.c index 6b9041d..ae7a19e 100644 --- a/sys/fs/ext2fs/ext2_subr.c +++ b/sys/fs/ext2fs/ext2_subr.c @@ -173,6 +173,7 @@ ext2_clusteracct(struct m_ext2fs *fs, char *bbp, int cg, daddr_t bno, int cnt) /* Initialize the cluster summary array. */ if (fs->e2fs_clustersum[cg].cs_init == 0) { int run = 0; + bit = 1; loc = 0; diff --git a/sys/fs/ext2fs/ext2_vfsops.c b/sys/fs/ext2fs/ext2_vfsops.c index 6c027a0..0d9e5a1 100644 --- a/sys/fs/ext2fs/ext2_vfsops.c +++ b/sys/fs/ext2fs/ext2_vfsops.c @@ -141,7 +141,7 @@ ext2_mount(struct mount *mp) */ if (mp->mnt_flag & MNT_UPDATE) { ump = VFSTOEXT2(mp); - fs = ump->um_e2fs; + fs = ump->um_e2fs; error = 0; if (fs->e2fs_ronly == 0 && vfs_flagopt(opts, "ro", NULL, 0)) { @@ -152,7 +152,7 @@ ext2_mount(struct mount *mp) if (mp->mnt_flag & MNT_FORCE) flags |= FORCECLOSE; error = ext2_flushfiles(mp, flags, td); - if ( error == 0 && fs->e2fs_wasvalid && ext2_cgupdate(ump, MNT_WAIT) == 0) { + if (error == 0 && fs->e2fs_wasvalid && ext2_cgupdate(ump, MNT_WAIT) == 0) { fs->e2fs->e2fs_state |= E2FS_ISCLEAN; ext2_sbupdate(ump, MNT_WAIT); } @@ -332,7 +332,7 @@ compute_sb_data(struct vnode *devvp, struct ext2fs *es, fs->e2fs_fpg = es->e2fs_fpg; fs->e2fs_ipg = es->e2fs_ipg; if (es->e2fs_rev == E2FS_REV0) { - fs->e2fs_isize = E2FS_REV0_INODE_SIZE ; + fs->e2fs_isize = E2FS_REV0_INODE_SIZE; } else { fs->e2fs_isize = es->e2fs_inode_size; @@ -372,12 +372,12 @@ compute_sb_data(struct vnode *devvp, struct ext2fs *es, * Godmar thinks: if the blocksize is greater than 1024, then * the superblock is logically part of block zero. */ - if(fs->e2fs_bsize > SBSIZE) + if (fs->e2fs_bsize > SBSIZE) logic_sb_block = 0; for (i = 0; i < db_count; i++) { - error = bread(devvp , - fsbtodb(fs, logic_sb_block + i + 1 ), - fs->e2fs_bsize, NOCRED, &bp); + error = bread(devvp, + fsbtodb(fs, logic_sb_block + i + 1), + fs->e2fs_bsize, NOCRED, &bp); if (error) { free(fs->e2fs_contigdirs, M_EXT2MNT); free(fs->e2fs_gd, M_EXT2MNT); @@ -386,7 +386,7 @@ compute_sb_data(struct vnode *devvp, struct ext2fs *es, } e2fs_cgload((struct ext2_gd *)bp->b_data, &fs->e2fs_gd[ - i * fs->e2fs_bsize / sizeof(struct ext2_gd)], + i * fs->e2fs_bsize / sizeof(struct ext2_gd)], fs->e2fs_bsize); brelse(bp); bp = NULL; @@ -469,7 +469,7 @@ ext2_reload(struct mount *mp, struct thread *td) fs = VFSTOEXT2(mp)->um_e2fs; bcopy(bp->b_data, fs->e2fs, sizeof(struct ext2fs)); - if((error = compute_sb_data(devvp, es, fs)) != 0) { + if ((error = compute_sb_data(devvp, es, fs)) != 0) { brelse(bp); return (error); } @@ -516,7 +516,7 @@ loop: MNT_VNODE_FOREACH_ALL_ABORT(mp, mvp); return (error); } - ext2_ei2i((struct ext2fs_dinode *) ((char *)bp->b_data + + ext2_ei2i((struct ext2fs_dinode *)((char *)bp->b_data + EXT2_INODE_SIZE(fs) * ino_to_fsbo(fs, ip->i_number)), ip); brelse(bp); VOP_UNLOCK(vp, 0); @@ -605,9 +605,9 @@ ext2_mountfs(struct vnode *devvp, struct mount *mp) * while Linux keeps the super block in a locked buffer. */ ump->um_e2fs = malloc(sizeof(struct m_ext2fs), - M_EXT2MNT, M_WAITOK | M_ZERO); + M_EXT2MNT, M_WAITOK | M_ZERO); ump->um_e2fs->e2fs = malloc(sizeof(struct ext2fs), - M_EXT2MNT, M_WAITOK); + M_EXT2MNT, M_WAITOK); mtx_init(EXT2_MTX(ump), "EXT2FS", "EXT2FS Lock", MTX_DEF); bcopy(es, ump->um_e2fs->e2fs, (u_int)sizeof(struct ext2fs)); if ((error = compute_sb_data(devvp, ump->um_e2fs->e2fs, ump->um_e2fs))) @@ -615,8 +615,8 @@ ext2_mountfs(struct vnode *devvp, struct mount *mp) /* * Calculate the maximum contiguous blocks and size of cluster summary - * array. In FFS this is done by newfs; however, the superblock - * in ext2fs doesn't have these variables, so we can calculate + * array. In FFS this is done by newfs; however, the superblock + * in ext2fs doesn't have these variables, so we can calculate * them here. */ e2fs_maxcontig = MAX(1, MAXPHYS / ump->um_e2fs->e2fs_bsize); @@ -647,7 +647,7 @@ ext2_mountfs(struct vnode *devvp, struct mount *mp) */ fs->e2fs_wasvalid = fs->e2fs->e2fs_state & E2FS_ISCLEAN ? 1 : 0; if (ronly == 0) { - fs->e2fs_fmod = 1; /* mark it modified */ + fs->e2fs_fmod = 1; /* mark it modified */ fs->e2fs->e2fs_state &= ~E2FS_ISCLEAN; /* set fs invalid */ } mp->mnt_data = ump; @@ -764,6 +764,7 @@ ext2_flushfiles(struct mount *mp, int flags, struct thread *td) error = vflush(mp, 0, flags, td); return (error); } + /* * Get filesystem statistics. */ @@ -926,7 +927,7 @@ ext2_vget(struct mount *mp, ino_t ino, int flags, struct vnode **vpp) vp->v_data = ip; ip->i_vnode = vp; ip->i_e2fs = fs = ump->um_e2fs; - ip->i_ump = ump; + ip->i_ump = ump; ip->i_number = ino; lockmgr(vp->v_vnlock, LK_EXCLUSIVE, NULL); @@ -955,8 +956,8 @@ ext2_vget(struct mount *mp, ino_t ino, int flags, struct vnode **vpp) return (error); } /* convert ext2 inode to dinode */ - ext2_ei2i((struct ext2fs_dinode *) ((char *)bp->b_data + EXT2_INODE_SIZE(fs) * - ino_to_fsbo(fs, ino)), ip); + ext2_ei2i((struct ext2fs_dinode *)((char *)bp->b_data + EXT2_INODE_SIZE(fs) * + ino_to_fsbo(fs, ino)), ip); ip->i_block_group = ino_to_cg(fs, ino); ip->i_next_alloc_block = 0; ip->i_next_alloc_goal = 0; @@ -1099,6 +1100,7 @@ ext2_cgupdate(struct ext2mount *mp, int waitfor) allerror = error; return (allerror); } + /* * Return the root of a filesystem. */ diff --git a/sys/fs/ext2fs/ext2_vnops.c b/sys/fs/ext2fs/ext2_vnops.c index 29229ef..85eae87 100644 --- a/sys/fs/ext2fs/ext2_vnops.c +++ b/sys/fs/ext2fs/ext2_vnops.c @@ -192,7 +192,7 @@ ext2_itimes_locked(struct vnode *vp) struct inode *ip; struct timespec ts; - ASSERT_VI_LOCKED(vp, __func__); + ASSERT_VI_LOCKED(vp, __func__); ip = VTOI(vp); if ((ip->i_flag & (IN_ACCESS | IN_CHANGE | IN_UPDATE)) == 0) @@ -383,7 +383,7 @@ ext2_setattr(struct vop_setattr_args *ap) } if (vap->va_flags != VNOVAL) { /* Disallow flags not supported by ext2fs. */ - if(vap->va_flags & ~(SF_APPEND | SF_IMMUTABLE | UF_NODUMP)) + if (vap->va_flags & ~(SF_APPEND | SF_IMMUTABLE | UF_NODUMP)) return (EOPNOTSUPP); if (vp->v_mount->mnt_flag & MNT_RDONLY) @@ -895,7 +895,7 @@ abortit: vput(tdvp); } else { if (xp->i_devvp != dp->i_devvp || xp->i_devvp != ip->i_devvp) - panic("ext2_rename: EXDEV"); + panic("ext2_rename: EXDEV"); /* * Short circuit rename(foo, foo). */ @@ -918,8 +918,8 @@ abortit: * to it. Also, ensure source and target are compatible * (both directories, or both not directories). */ - if ((xp->i_mode&IFMT) == IFDIR) { - if (! ext2_dirempty(xp, dp->i_number, tcnp->cn_cred) || + if ((xp->i_mode & IFMT) == IFDIR) { + if (!ext2_dirempty(xp, dp->i_number, tcnp->cn_cred) || xp->i_nlink > 2) { error = ENOTEMPTY; goto bad; @@ -1017,9 +1017,9 @@ abortit: dp->i_nlink--; dp->i_flag |= IN_CHANGE; error = vn_rdwr(UIO_READ, fvp, (caddr_t)&dirbuf, - sizeof(struct dirtemplate), (off_t)0, - UIO_SYSSPACE, IO_NODELOCKED | IO_NOMACCHECK, - tcnp->cn_cred, NOCRED, NULL, NULL); + sizeof(struct dirtemplate), (off_t)0, + UIO_SYSSPACE, IO_NODELOCKED | IO_NOMACCHECK, + tcnp->cn_cred, NOCRED, NULL, NULL); if (error == 0) { /* Like ufs little-endian: */ namlen = dirbuf.dotdot_type; @@ -1030,7 +1030,7 @@ abortit: "rename: mangled dir"); } else { dirbuf.dotdot_ino = newparent; - (void) vn_rdwr(UIO_WRITE, fvp, + (void)vn_rdwr(UIO_WRITE, fvp, (caddr_t)&dirbuf, sizeof(struct dirtemplate), (off_t)0, UIO_SYSSPACE, @@ -1113,12 +1113,12 @@ ext2_mkdir(struct vop_mkdir_args *ap) * if we are hacking owners here, (only do this where told to) * and we are not giving it TOO root, (would subvert quotas) * then go ahead and give it to the other user. - * The new directory also inherits the SUID bit. + * The new directory also inherits the SUID bit. * If user's UID and dir UID are the same, * 'give it away' so that the SUID is still forced on. */ - if ( (dvp->v_mount->mnt_flag & MNT_SUIDDIR) && - (dp->i_mode & ISUID) && dp->i_uid) { + if ((dvp->v_mount->mnt_flag & MNT_SUIDDIR) && + (dp->i_mode & ISUID) && dp->i_uid) { dmode |= ISUID; ip->i_uid = dp->i_uid; } else { @@ -1157,10 +1157,11 @@ ext2_mkdir(struct vop_mkdir_args *ap) dirtemplate = *dtp; dirtemplate.dot_ino = ip->i_number; dirtemplate.dotdot_ino = dp->i_number; - /* note that in ext2 DIRBLKSIZ == blocksize, not DEV_BSIZE - * so let's just redefine it - for this function only + /* + * note that in ext2 DIRBLKSIZ == blocksize, not DEV_BSIZE so let's + * just redefine it - for this function only */ -#undef DIRBLKSIZ +#undef DIRBLKSIZ #define DIRBLKSIZ VTOI(dvp)->i_e2fs->e2fs_bsize dirtemplate.dotdot_reclen = DIRBLKSIZ - 12; error = vn_rdwr(UIO_WRITE, tvp, (caddr_t)&dirtemplate, @@ -1394,7 +1395,7 @@ ext2fifo_close(struct vop_close_args *ap) /* * Kqfilter wrapper for fifos. * - * Fall through to ext2 kqfilter routines if needed + * Fall through to ext2 kqfilter routines if needed */ static int ext2fifo_kqfilter(struct vop_kqfilter_args *ap) @@ -1458,7 +1459,7 @@ ext2_pathconf(struct vop_pathconf_args *ap) *ap->a_retval = ap->a_vp->v_mount->mnt_stat.f_iosize; break; case _PC_REC_MAX_XFER_SIZE: - *ap->a_retval = -1; /* means ``unlimited'' */ + *ap->a_retval = -1; /* means ``unlimited'' */ break; case _PC_REC_MIN_XFER_SIZE: *ap->a_retval = ap->a_vp->v_mount->mnt_stat.f_iosize; @@ -1554,9 +1555,9 @@ ext2_makeinode(int mode, struct vnode *dvp, struct vnode **vpp, * then go ahead and give it to the other user. * Note that this drops off the execute bits for security. */ - if ( (dvp->v_mount->mnt_flag & MNT_SUIDDIR) && - (pdir->i_mode & ISUID) && - (pdir->i_uid != cnp->cn_cred->cr_uid) && pdir->i_uid) { + if ((dvp->v_mount->mnt_flag & MNT_SUIDDIR) && + (pdir->i_mode & ISUID) && + (pdir->i_uid != cnp->cn_cred->cr_uid) && pdir->i_uid) { ip->i_uid = pdir->i_uid; mode &= ~07111; } else { @@ -1615,12 +1616,12 @@ ext2_read(struct vop_read_args *ap) vp = ap->a_vp; ip = VTOI(vp); - /*EXT4_EXT_LOCK(ip);*/ + /* EXT4_EXT_LOCK(ip); */ if (ip->i_flag & IN_E4EXTENTS) error = ext4_ext_read(ap); else error = ext2_ind_read(ap); - /*EXT4_EXT_UNLOCK(ip);*/ + /* EXT4_EXT_UNLOCK(ip); */ return (error); } @@ -1666,7 +1667,7 @@ ext2_ind_read(struct vop_read_args *ap) fs = ip->i_e2fs; if (uio->uio_offset < ip->i_size && uio->uio_offset >= fs->e2fs_maxfilesize) - return (EOVERFLOW); + return (EOVERFLOW); for (error = 0, bp = NULL; uio->uio_resid > 0; bp = NULL) { if ((bytesinfile = ip->i_size - uio->uio_offset) <= 0) @@ -1690,6 +1691,7 @@ ext2_ind_read(struct vop_read_args *ap) 0, &bp); } else if (seqcount > 1) { u_int nextsize = blksize(fs, ip, nextlbn); + error = breadn(vp, lbn, size, &nextlbn, &nextsize, 1, NOCRED, &bp); } else @@ -1723,7 +1725,7 @@ ext2_ind_read(struct vop_read_args *ap) xfersize = size; } error = uiomove((char *)bp->b_data + blkoffset, - (int)xfersize, uio); + (int)xfersize, uio); if (error) break; @@ -1747,11 +1749,11 @@ ext2_ind_read(struct vop_read_args *ap) } } - /* - * This can only happen in the case of an error - * because the loop above resets bp to NULL on each iteration - * and on normal completion has not set a new value into it. - * so it must have come from a 'break' statement + /* + * This can only happen in the case of an error because the loop + * above resets bp to NULL on each iteration and on normal + * completion has not set a new value into it. so it must have come + * from a 'break' statement */ if (bp != NULL) { if (ioflag & (IO_VMIO|IO_DIRECT)) { @@ -1922,7 +1924,7 @@ ext2_write(struct vop_write_args *ap) case VDIR: /* XXX differs from ffs -- this is called from ext2_mkdir(). */ if ((ioflag & IO_SYNC) == 0) - panic("ext2_write: nonsync dir write"); + panic("ext2_write: nonsync dir write"); break; default: panic("ext2_write: type %p %d (%jd,%jd)", (void *)vp, @@ -1973,7 +1975,7 @@ ext2_write(struct vop_write_args *ap) if (error != 0) break; - if ((ioflag & (IO_SYNC|IO_INVAL)) == (IO_SYNC|IO_INVAL)) + if ((ioflag & (IO_SYNC | IO_INVAL)) == (IO_SYNC | IO_INVAL)) bp->b_flags |= B_NOCACHE; if (uio->uio_offset + xfersize > ip->i_size) ip->i_size = uio->uio_offset + xfersize; @@ -2017,7 +2019,7 @@ ext2_write(struct vop_write_args *ap) if (ioflag & IO_SYNC) { (void)bwrite(bp); } else if (vm_page_count_severe() || - buf_dirty_count_severe() || + buf_dirty_count_severe() || (ioflag & IO_ASYNC)) { bp->b_flags |= B_CLUSTEROK; bawrite(bp); diff --git a/sys/fs/ext2fs/ext2fs.h b/sys/fs/ext2fs/ext2fs.h index cf51e1e..8201b54 100644 --- a/sys/fs/ext2fs/ext2fs.h +++ b/sys/fs/ext2fs/ext2fs.h @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * + * */ #ifndef _FS_EXT2FS_EXT2FS_H_ diff --git a/sys/fs/ext2fs/fs.h b/sys/fs/ext2fs/fs.h index d5a414f..c698478 100644 --- a/sys/fs/ext2fs/fs.h +++ b/sys/fs/ext2fs/fs.h @@ -59,8 +59,8 @@ /* * The path name on which the file system is mounted is maintained - * in fs_fsmnt. MAXMNTLEN defines the amount of space allocated in - * the super block for this name. + * in fs_fsmnt. MAXMNTLEN defines the amount of space allocated in + * the super block for this name. */ #define MAXMNTLEN 512 @@ -82,8 +82,8 @@ * of files per directory. These defaults are well selected for typical * filesystems, but may need to be tuned for odd cases like filesystems * being used for squid caches or news spools. - * AVFPDIR is the expected number of files per directory. AVGDIRSIZE is - * obtained by multiplying AVFPDIR and AVFILESIZ which is assumed to be + * AVFPDIR is the expected number of files per directory. AVGDIRSIZE is + * obtained by multiplying AVFPDIR and AVFILESIZ which is assumed to be * 16384. */ @@ -159,4 +159,4 @@ */ #define NINDIR(fs) (EXT2_ADDR_PER_BLOCK(fs)) -#endif /* !_FS_EXT2FS_FS_H_ */ +#endif /* !_FS_EXT2FS_FS_H_ */ diff --git a/sys/fs/ext2fs/htree.h b/sys/fs/ext2fs/htree.h index 3489d05..73547ec 100644 --- a/sys/fs/ext2fs/htree.h +++ b/sys/fs/ext2fs/htree.h @@ -42,10 +42,10 @@ #define EXT2_HTREE_EOF 0x7FFFFFFF struct ext2fs_fake_direct { - uint32_t e2d_ino; /* inode number of entry */ - uint16_t e2d_reclen; /* length of this record */ - uint8_t e2d_namlen; /* length of string in d_name */ - uint8_t e2d_type; /* file type */ + uint32_t e2d_ino; /* inode number of entry */ + uint16_t e2d_reclen; /* length of this record */ + uint8_t e2d_namlen; /* length of string in d_name */ + uint8_t e2d_type; /* file type */ }; struct ext2fs_htree_count { @@ -60,17 +60,17 @@ struct ext2fs_htree_entry { struct ext2fs_htree_root_info { uint32_t h_reserved1; - uint8_t h_hash_version; - uint8_t h_info_len; - uint8_t h_ind_levels; - uint8_t h_reserved2; + uint8_t h_hash_version; + uint8_t h_info_len; + uint8_t h_ind_levels; + uint8_t h_reserved2; }; struct ext2fs_htree_root { struct ext2fs_fake_direct h_dot; - char h_dot_name[4]; + char h_dot_name[4]; struct ext2fs_fake_direct h_dotdot; - char h_dotdot_name[4]; + char h_dotdot_name[4]; struct ext2fs_htree_root_info h_info; struct ext2fs_htree_entry h_entries[0]; }; @@ -97,4 +97,4 @@ struct ext2fs_htree_sort_entry { uint32_t h_hash; }; -#endif /* !_FS_EXT2FS_HTREE_H_ */ +#endif /* !_FS_EXT2FS_HTREE_H_ */ diff --git a/sys/fs/ext2fs/inode.h b/sys/fs/ext2fs/inode.h index 5222ba0..53300ce 100644 --- a/sys/fs/ext2fs/inode.h +++ b/sys/fs/ext2fs/inode.h @@ -56,10 +56,10 @@ /* * The size of physical and logical block numbers in EXT2FS. */ -typedef uint32_t e2fs_daddr_t; -typedef int64_t e2fs_lbn_t; -typedef int64_t e4fs_daddr_t; - +typedef uint32_t e2fs_daddr_t; +typedef int64_t e2fs_lbn_t; +typedef int64_t e4fs_daddr_t; + /* * The inode is used to describe each active (or recently active) file in the * EXT2FS filesystem. It is composed of two types of information. The first @@ -178,11 +178,11 @@ struct indir { /* This overlays the fid structure (see mount.h). */ struct ufid { - uint16_t ufid_len; /* Length of structure. */ - uint16_t ufid_pad; /* Force 32-bit alignment. */ - ino_t ufid_ino; /* File number (ino). */ - uint32_t ufid_gen; /* Generation number. */ + uint16_t ufid_len; /* Length of structure. */ + uint16_t ufid_pad; /* Force 32-bit alignment. */ + ino_t ufid_ino; /* File number (ino). */ + uint32_t ufid_gen; /* Generation number. */ }; -#endif /* _KERNEL */ +#endif /* _KERNEL */ -#endif /* !_FS_EXT2FS_INODE_H_ */ +#endif /* !_FS_EXT2FS_INODE_H_ */ diff --git a/sys/fs/nfs/nfs_commonsubs.c b/sys/fs/nfs/nfs_commonsubs.c index 7d45673..60615cd 100644 --- a/sys/fs/nfs/nfs_commonsubs.c +++ b/sys/fs/nfs/nfs_commonsubs.c @@ -827,6 +827,11 @@ nfsv4_loadattr(struct nfsrv_descript *nd, vnode_t vp, struct dqblk dqb; uid_t savuid; #endif + static struct timeval last64fileid; + static size_t count64fileid; + static struct timeval last64mountfileid; + static size_t count64mountfileid; + static struct timeval warninterval = { 60, 0 }; if (compare) { retnotsup = 0; @@ -1196,8 +1201,14 @@ nfsv4_loadattr(struct nfsrv_descript *nd, vnode_t vp, *retcmpp = NFSERR_NOTSAME; } } else if (nap != NULL) { - if (*tl++) - printf("NFSv4 fileid > 32bits\n"); + if (*tl++) { + count64fileid++; + if (ratecheck(&last64fileid, &warninterval)) { + printf("NFSv4 fileid > 32bits (%zu occurrences)\n", + count64fileid); + count64fileid = 0; + } + } nap->na_fileid = thyp; } attrsum += NFSX_HYPER; @@ -1734,8 +1745,14 @@ nfsv4_loadattr(struct nfsrv_descript *nd, vnode_t vp, } } } else if (nap != NULL) { - if (*tl++) - printf("NFSv4 mounted on fileid > 32bits\n"); + if (*tl++) { + count64mountfileid++; + if (ratecheck(&last64mountfileid, &warninterval)) { + printf("NFSv4 mounted on fileid > 32bits (%zu occurrences)\n", + count64mountfileid); + count64mountfileid = 0; + } + } nap->na_mntonfileno = thyp; } attrsum += NFSX_HYPER; diff --git a/sys/fs/nfsserver/nfs_nfsdstate.c b/sys/fs/nfsserver/nfs_nfsdstate.c index 02ceaaa..e28bc23 100644 --- a/sys/fs/nfsserver/nfs_nfsdstate.c +++ b/sys/fs/nfsserver/nfs_nfsdstate.c @@ -2498,6 +2498,8 @@ nfsrv_openctrl(struct nfsrv_descript *nd, vnode_t vp, struct nfsclient *clp; int error = 0, haslock = 0, ret, delegate = 1, writedeleg = 1; int readonly = 0, cbret = 1, getfhret = 0; + int gotstate = 0, len = 0; + u_char *clidp = NULL; if ((new_stp->ls_flags & NFSLCK_SHAREBITS) == NFSLCK_READACCESS) readonly = 1; @@ -2516,6 +2518,7 @@ nfsrv_openctrl(struct nfsrv_descript *nd, vnode_t vp, goto out; } + clidp = malloc(NFSV4_OPAQUELIMIT, M_TEMP, M_WAITOK); tryagain: MALLOC(new_lfp, struct nfslockfile *, sizeof (struct nfslockfile), M_NFSDLOCKFILE, M_WAITOK); @@ -3178,6 +3181,16 @@ tryagain: nfsrv_openpluslock++; nfsrv_delegatecnt++; } + /* + * Since NFSv4.1 never does an OpenConfirm, the first + * open state will be acquired here. + */ + if (!(clp->lc_flags & LCL_STAMPEDSTABLE)) { + clp->lc_flags |= LCL_STAMPEDSTABLE; + len = clp->lc_idlen; + NFSBCOPY(clp->lc_id, clidp, len); + gotstate = 1; + } } else { *rflagsp |= NFSV4OPEN_RESULTCONFIRM; new_stp->ls_flags = NFSLCK_NEEDSCONFIRM; @@ -3214,7 +3227,17 @@ tryagain: if (new_deleg) FREE((caddr_t)new_deleg, M_NFSDSTATE); + /* + * If the NFSv4.1 client just acquired its first open, write a timestamp + * to the stable storage file. + */ + if (gotstate != 0) { + nfsrv_writestable(clidp, len, NFSNST_NEWSTATE, p); + nfsrv_backupstable(); + } + out: + free(clidp, M_TEMP); NFSEXITCODE2(error, nd); return (error); } @@ -3231,7 +3254,7 @@ nfsrv_openupdate(vnode_t vp, struct nfsstate *new_stp, nfsquad_t clientid, struct nfslockfile *lfp; u_int32_t bits; int error = 0, gotstate = 0, len = 0; - u_char client[NFSV4_OPAQUELIMIT]; + u_char *clidp = NULL; /* * Check for restart conditions (client and server). @@ -3241,6 +3264,7 @@ nfsrv_openupdate(vnode_t vp, struct nfsstate *new_stp, nfsquad_t clientid, if (error) goto out; + clidp = malloc(NFSV4_OPAQUELIMIT, M_TEMP, M_WAITOK); NFSLOCKSTATE(); /* * Get the open structure via clientid and stateid. @@ -3319,7 +3343,7 @@ nfsrv_openupdate(vnode_t vp, struct nfsstate *new_stp, nfsquad_t clientid, if (!(clp->lc_flags & LCL_STAMPEDSTABLE)) { clp->lc_flags |= LCL_STAMPEDSTABLE; len = clp->lc_idlen; - NFSBCOPY(clp->lc_id, client, len); + NFSBCOPY(clp->lc_id, clidp, len); gotstate = 1; } NFSUNLOCKSTATE(); @@ -3366,11 +3390,12 @@ nfsrv_openupdate(vnode_t vp, struct nfsstate *new_stp, nfsquad_t clientid, * to the stable storage file. */ if (gotstate != 0) { - nfsrv_writestable(client, len, NFSNST_NEWSTATE, p); + nfsrv_writestable(clidp, len, NFSNST_NEWSTATE, p); nfsrv_backupstable(); } out: + free(clidp, M_TEMP); NFSEXITCODE2(error, nd); return (error); } diff --git a/sys/i386/i386/trap.c b/sys/i386/i386/trap.c index a186ff5..f4b7242 100644 --- a/sys/i386/i386/trap.c +++ b/sys/i386/i386/trap.c @@ -879,6 +879,14 @@ trap_pfault(frame, usermode, eva) } /* + * If the trap was caused by errant bits in the PTE then panic. + */ + if (frame->tf_err & PGEX_RSV) { + trap_fatal(frame, eva); + return (-1); + } + + /* * PGEX_I is defined only if the execute disable bit capability is * supported and enabled. */ @@ -968,9 +976,15 @@ trap_fatal(frame, eva) #endif if (type == T_PAGEFLT) { printf("fault virtual address = 0x%x\n", eva); - printf("fault code = %s %s, %s\n", + printf("fault code = %s %s%s, %s\n", code & PGEX_U ? "user" : "supervisor", code & PGEX_W ? "write" : "read", +#if defined(PAE) || defined(PAE_TABLES) + pg_nx != 0 ? + (code & PGEX_I ? " instruction" : " data") : +#endif + "", + code & PGEX_RSV ? "reserved bits in PTE" : code & PGEX_P ? "protection violation" : "page not present"); } printf("instruction pointer = 0x%x:0x%x\n", diff --git a/sys/ia64/ia64/physmem.c b/sys/ia64/ia64/physmem.c index 11ee840..ea1a8af 100644 --- a/sys/ia64/ia64/physmem.c +++ b/sys/ia64/ia64/physmem.c @@ -38,7 +38,7 @@ static u_int phys_avail_segs; vm_paddr_t phys_avail[2 * VM_PHYSSEG_MAX + 2]; vm_paddr_t paddr_max; - +long Maxmem; long realmem; static u_int @@ -168,6 +168,12 @@ ia64_physmem_fini(void) size = 1U << 27; realmem = (realmem + size - 1) & ~(size - 1); realmem = atop(realmem); + + /* + * Maxmem isn't the "maximum memory", it's one larger than the + * highest page of the physical address space. + */ + Maxmem = atop(paddr_max); return (0); } diff --git a/sys/ia64/include/md_var.h b/sys/ia64/include/md_var.h index b69b1af..b712d57 100644 --- a/sys/ia64/include/md_var.h +++ b/sys/ia64/include/md_var.h @@ -75,6 +75,7 @@ struct ia64_init_return { extern uint64_t ia64_lapic_addr; extern vm_paddr_t paddr_max; +extern long Maxmem; extern u_int busdma_swi_pending; void *acpi_find_table(const char *sig); diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index fba163f..2c99803 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -47,7 +47,6 @@ __FBSDID("$FreeBSD$"); #include <sys/fcntl.h> #include <sys/kthread.h> #include <sys/selinfo.h> -#include <sys/stdatomic.h> #include <sys/queue.h> #include <sys/event.h> #include <sys/eventvar.h> @@ -66,6 +65,7 @@ __FBSDID("$FreeBSD$"); #ifdef KTRACE #include <sys/ktrace.h> #endif +#include <machine/atomic.h> #include <vm/uma.h> @@ -184,7 +184,7 @@ static struct filterops user_filtops = { }; static uma_zone_t knote_zone; -static atomic_uint kq_ncallouts = ATOMIC_VAR_INIT(0); +static unsigned int kq_ncallouts = 0; static unsigned int kq_calloutmax = 4 * 1024; SYSCTL_UINT(_kern, OID_AUTO, kq_calloutmax, CTLFLAG_RW, &kq_calloutmax, 0, "Maximum number of callouts allocated for kqueue"); @@ -556,53 +556,84 @@ knote_fork(struct knlist *list, int pid) #define NOTE_TIMER_PRECMASK (NOTE_SECONDS|NOTE_MSECONDS|NOTE_USECONDS| \ NOTE_NSECONDS) -static __inline sbintime_t +static sbintime_t timer2sbintime(intptr_t data, int flags) { - sbintime_t modifier; + /* + * Macros for converting to the fractional second portion of an + * sbintime_t using 64bit multiplication to improve precision. + */ +#define NS_TO_SBT(ns) (((ns) * (((uint64_t)1 << 63) / 500000000)) >> 32) +#define US_TO_SBT(us) (((us) * (((uint64_t)1 << 63) / 500000)) >> 32) +#define MS_TO_SBT(ms) (((ms) * (((uint64_t)1 << 63) / 500)) >> 32) switch (flags & NOTE_TIMER_PRECMASK) { case NOTE_SECONDS: - modifier = SBT_1S; - break; +#ifdef __LP64__ + if (data > (SBT_MAX / SBT_1S)) + return (SBT_MAX); +#endif + return ((sbintime_t)data << 32); case NOTE_MSECONDS: /* FALLTHROUGH */ case 0: - modifier = SBT_1MS; - break; + if (data >= 1000) { + int64_t secs = data / 1000; +#ifdef __LP64__ + if (secs > (SBT_MAX / SBT_1S)) + return (SBT_MAX); +#endif + return (secs << 32 | MS_TO_SBT(data % 1000)); + } + return MS_TO_SBT(data); case NOTE_USECONDS: - modifier = SBT_1US; - break; + if (data >= 1000000) { + int64_t secs = data / 1000000; +#ifdef __LP64__ + if (secs > (SBT_MAX / SBT_1S)) + return (SBT_MAX); +#endif + return (secs << 32 | US_TO_SBT(data % 1000000)); + } + return US_TO_SBT(data); case NOTE_NSECONDS: - modifier = SBT_1NS; - break; - default: - return (-1); - } - + if (data >= 1000000000) { + int64_t secs = data / 1000000000; #ifdef __LP64__ - if (data > SBT_MAX / modifier) - return (SBT_MAX); + if (secs > (SBT_MAX / SBT_1S)) + return (SBT_MAX); #endif - return (modifier * data); + return (secs << 32 | US_TO_SBT(data % 1000000000)); + } + return (NS_TO_SBT(data)); + default: + break; + } + return (-1); } +struct kq_timer_cb_data { + struct callout c; + sbintime_t next; /* next timer event fires at */ + sbintime_t to; /* precalculated timer period */ +}; + static void filt_timerexpire(void *knx) { - struct callout *calloutp; struct knote *kn; + struct kq_timer_cb_data *kc; kn = knx; kn->kn_data++; KNOTE_ACTIVATE(kn, 0); /* XXX - handle locking */ - if ((kn->kn_flags & EV_ONESHOT) != EV_ONESHOT) { - calloutp = (struct callout *)kn->kn_hook; - *kn->kn_ptr.p_nexttime += timer2sbintime(kn->kn_sdata, - kn->kn_sfflags); - callout_reset_sbt_on(calloutp, *kn->kn_ptr.p_nexttime, 0, - filt_timerexpire, kn, PCPU_GET(cpuid), C_ABSOLUTE); - } + if ((kn->kn_flags & EV_ONESHOT) != 0) + return; + + kc = kn->kn_ptr.p_v; + kc->next += kc->to; + callout_reset_sbt_on(&kc->c, kc->next, 0, filt_timerexpire, kn, + PCPU_GET(cpuid), C_ABSOLUTE); } /* @@ -611,39 +642,36 @@ filt_timerexpire(void *knx) static int filt_timerattach(struct knote *kn) { - struct callout *calloutp; + struct kq_timer_cb_data *kc; sbintime_t to; unsigned int ncallouts; - if ((intptr_t)kn->kn_sdata < 0) + if (kn->kn_sdata < 0) return (EINVAL); - if ((intptr_t)kn->kn_sdata == 0 && (kn->kn_flags & EV_ONESHOT) == 0) + if (kn->kn_sdata == 0 && (kn->kn_flags & EV_ONESHOT) == 0) kn->kn_sdata = 1; /* Only precision unit are supported in flags so far */ - if (kn->kn_sfflags & ~NOTE_TIMER_PRECMASK) + if ((kn->kn_sfflags & ~NOTE_TIMER_PRECMASK) != 0) return (EINVAL); to = timer2sbintime(kn->kn_sdata, kn->kn_sfflags); if (to < 0) return (EINVAL); - ncallouts = atomic_load_explicit(&kq_ncallouts, memory_order_relaxed); do { + ncallouts = kq_ncallouts; if (ncallouts >= kq_calloutmax) return (ENOMEM); - } while (!atomic_compare_exchange_weak_explicit(&kq_ncallouts, - &ncallouts, ncallouts + 1, memory_order_relaxed, - memory_order_relaxed)); + } while (!atomic_cmpset_int(&kq_ncallouts, ncallouts, ncallouts + 1)); kn->kn_flags |= EV_CLEAR; /* automatically set */ kn->kn_status &= ~KN_DETACHED; /* knlist_add clears it */ - kn->kn_ptr.p_nexttime = malloc(sizeof(sbintime_t), M_KQUEUE, M_WAITOK); - calloutp = malloc(sizeof(*calloutp), M_KQUEUE, M_WAITOK); - callout_init(calloutp, CALLOUT_MPSAFE); - kn->kn_hook = calloutp; - *kn->kn_ptr.p_nexttime = to + sbinuptime(); - callout_reset_sbt_on(calloutp, *kn->kn_ptr.p_nexttime, 0, - filt_timerexpire, kn, PCPU_GET(cpuid), C_ABSOLUTE); + kn->kn_ptr.p_v = kc = malloc(sizeof(*kc), M_KQUEUE, M_WAITOK); + callout_init(&kc->c, 1); + kc->next = to + sbinuptime(); + kc->to = to; + callout_reset_sbt_on(&kc->c, kc->next, 0, filt_timerexpire, kn, + PCPU_GET(cpuid), C_ABSOLUTE); return (0); } @@ -651,14 +679,13 @@ filt_timerattach(struct knote *kn) static void filt_timerdetach(struct knote *kn) { - struct callout *calloutp; + struct kq_timer_cb_data *kc; unsigned int old; - calloutp = (struct callout *)kn->kn_hook; - callout_drain(calloutp); - free(calloutp, M_KQUEUE); - free(kn->kn_ptr.p_nexttime, M_KQUEUE); - old = atomic_fetch_sub_explicit(&kq_ncallouts, 1, memory_order_relaxed); + kc = kn->kn_ptr.p_v; + callout_drain(&kc->c); + free(kc, M_KQUEUE); + old = atomic_fetchadd_int(&kq_ncallouts, -1); KASSERT(old > 0, ("Number of callouts cannot become negative")); kn->kn_status |= KN_DETACHED; /* knlist_remove sets it */ } @@ -1912,6 +1939,7 @@ knote(struct knlist *list, long hint, int lockflags) struct kqueue *kq; struct knote *kn, *tkn; int error; + bool own_influx; if (list == NULL) return; @@ -1942,11 +1970,14 @@ knote(struct knlist *list, long hint, int lockflags) */ KQ_UNLOCK(kq); } else if ((lockflags & KNF_NOKQLOCK) != 0) { - kn->kn_status |= KN_INFLUX; + own_influx = (kn->kn_status & KN_INFLUX) == 0; + if (own_influx) + kn->kn_status |= KN_INFLUX; KQ_UNLOCK(kq); error = kn->kn_fop->f_event(kn, hint); KQ_LOCK(kq); - kn->kn_status &= ~KN_INFLUX; + if (own_influx) + kn->kn_status &= ~KN_INFLUX; if (error) KNOTE_ACTIVATE(kn, 1); KQ_UNLOCK_FLUX(kq); @@ -2031,12 +2062,12 @@ knlist_empty(struct knlist *knl) { KNL_ASSERT_LOCKED(knl); - return SLIST_EMPTY(&knl->kl_list); + return (SLIST_EMPTY(&knl->kl_list)); } -static struct mtx knlist_lock; +static struct mtx knlist_lock; MTX_SYSINIT(knlist_lock, &knlist_lock, "knlist lock for lockless objects", - MTX_DEF); + MTX_DEF); static void knlist_mtx_lock(void *arg); static void knlist_mtx_unlock(void *arg); @@ -2146,17 +2177,8 @@ void knlist_destroy(struct knlist *knl) { -#ifdef INVARIANTS - /* - * if we run across this error, we need to find the offending - * driver and have it call knlist_clear or knlist_delete. - */ - if (!SLIST_EMPTY(&knl->kl_list)) - printf("WARNING: destroying knlist w/ knotes on it!\n"); -#endif - - knl->kl_lockarg = knl->kl_lock = knl->kl_unlock = NULL; - SLIST_INIT(&knl->kl_list); + KASSERT(KNLIST_EMPTY(knl), + ("destroying knlist %p with knotes on it", knl)); } /* @@ -2275,17 +2297,15 @@ knote_attach(struct knote *kn, struct kqueue *kq) if (kn->kn_fop->f_isfd) { if (kn->kn_id >= kq->kq_knlistsize) - return ENOMEM; + return (ENOMEM); list = &kq->kq_knlist[kn->kn_id]; } else { if (kq->kq_knhash == NULL) - return ENOMEM; + return (ENOMEM); list = &kq->kq_knhash[KN_HASH(kn->kn_id, kq->kq_knhashmask)]; } - SLIST_INSERT_HEAD(list, kn, kn_link); - - return 0; + return (0); } /* @@ -2394,11 +2414,9 @@ kqfd_register(int fd, struct kevent *kev, struct thread *td, int waitok) goto noacquire; error = kqueue_register(kq, kev, td, waitok); - kqueue_release(kq, 0); noacquire: fdrop(fp, td); - - return error; + return (error); } diff --git a/sys/kern/kern_exit.c b/sys/kern/kern_exit.c index 3602cbb..e746864 100644 --- a/sys/kern/kern_exit.c +++ b/sys/kern/kern_exit.c @@ -499,6 +499,11 @@ exit1(struct thread *td, int rv) if (!(q->p_flag & P_TRACED)) { proc_reparent(q, q->p_reaper); + if (q->p_state == PRS_ZOMBIE) { + PROC_LOCK(q->p_reaper); + pksignal(q->p_reaper, SIGCHLD, q->p_ksi); + PROC_UNLOCK(q->p_reaper); + } } else { /* * Traced processes are killed since their existence diff --git a/sys/kern/kern_lock.c b/sys/kern/kern_lock.c index e3e946e..9681c87 100644 --- a/sys/kern/kern_lock.c +++ b/sys/kern/kern_lock.c @@ -792,8 +792,10 @@ __lockmgr_args(struct lock *lk, u_int flags, struct lock_object *ilk, break; } - while (!atomic_cmpset_acq_ptr(&lk->lk_lock, LK_UNLOCKED, - tid)) { + for (;;) { + if (lk->lk_lock == LK_UNLOCKED && + atomic_cmpset_acq_ptr(&lk->lk_lock, LK_UNLOCKED, tid)) + break; #ifdef HWPMC_HOOKS PMC_SOFT_CALL( , , lock, failed); #endif @@ -1129,7 +1131,11 @@ __lockmgr_args(struct lock *lk, u_int flags, struct lock_object *ilk, __func__, iwmesg, file, line); } - while (!atomic_cmpset_acq_ptr(&lk->lk_lock, LK_UNLOCKED, tid)) { + for (;;) { + if (lk->lk_lock == LK_UNLOCKED && + atomic_cmpset_acq_ptr(&lk->lk_lock, LK_UNLOCKED, tid)) + break; + #ifdef HWPMC_HOOKS PMC_SOFT_CALL( , , lock, failed); #endif diff --git a/sys/kern/kern_mutex.c b/sys/kern/kern_mutex.c index 8d19f2e..27038e1 100644 --- a/sys/kern/kern_mutex.c +++ b/sys/kern/kern_mutex.c @@ -57,6 +57,7 @@ __FBSDID("$FreeBSD$"); #include <sys/resourcevar.h> #include <sys/sched.h> #include <sys/sbuf.h> +#include <sys/smp.h> #include <sys/sysctl.h> #include <sys/turnstile.h> #include <sys/vmmeter.h> @@ -140,6 +141,37 @@ struct lock_class lock_class_mtx_spin = { #endif }; +#ifdef ADAPTIVE_MUTEXES +static SYSCTL_NODE(_debug, OID_AUTO, mtx, CTLFLAG_RD, NULL, "mtx debugging"); + +static struct lock_delay_config mtx_delay = { + .initial = 1000, + .step = 500, + .min = 100, + .max = 5000, +}; + +SYSCTL_INT(_debug_mtx, OID_AUTO, delay_initial, CTLFLAG_RW, &mtx_delay.initial, + 0, ""); +SYSCTL_INT(_debug_mtx, OID_AUTO, delay_step, CTLFLAG_RW, &mtx_delay.step, + 0, ""); +SYSCTL_INT(_debug_mtx, OID_AUTO, delay_min, CTLFLAG_RW, &mtx_delay.min, + 0, ""); +SYSCTL_INT(_debug_mtx, OID_AUTO, delay_max, CTLFLAG_RW, &mtx_delay.max, + 0, ""); + +static void +mtx_delay_sysinit(void *dummy) +{ + + mtx_delay.initial = mp_ncpus * 25; + mtx_delay.step = (mp_ncpus * 25) / 2; + mtx_delay.min = mp_ncpus * 5; + mtx_delay.max = mp_ncpus * 25 * 10; +} +LOCK_DELAY_SYSINIT(mtx_delay_sysinit); +#endif + /* * System-wide mutexes */ @@ -412,9 +444,11 @@ __mtx_lock_sleep(volatile uintptr_t *c, uintptr_t tid, int opts, int contested = 0; uint64_t waittime = 0; #endif +#if defined(ADAPTIVE_MUTEXES) || defined(KDTRACE_HOOKS) + struct lock_delay_arg lda; +#endif #ifdef KDTRACE_HOOKS - uint64_t spin_cnt = 0; - uint64_t sleep_cnt = 0; + u_int sleep_cnt = 0; int64_t sleep_time = 0; int64_t all_time = 0; #endif @@ -422,6 +456,11 @@ __mtx_lock_sleep(volatile uintptr_t *c, uintptr_t tid, int opts, if (SCHEDULER_STOPPED()) return; +#if defined(ADAPTIVE_MUTEXES) + lock_delay_arg_init(&lda, &mtx_delay); +#elif defined(KDTRACE_HOOKS) + lock_delay_arg_init(&lda, NULL); +#endif m = mtxlock2mtx(c); if (mtx_owned(m)) { @@ -451,9 +490,11 @@ __mtx_lock_sleep(volatile uintptr_t *c, uintptr_t tid, int opts, all_time -= lockstat_nsecs(&m->lock_object); #endif - while (!_mtx_obtain_lock(m, tid)) { + for (;;) { + if (m->mtx_lock == MTX_UNOWNED && _mtx_obtain_lock(m, tid)) + break; #ifdef KDTRACE_HOOKS - spin_cnt++; + lda.spin_cnt++; #endif #ifdef ADAPTIVE_MUTEXES /* @@ -473,12 +514,8 @@ __mtx_lock_sleep(volatile uintptr_t *c, uintptr_t tid, int opts, "spinning", "lockname:\"%s\"", m->lock_object.lo_name); while (mtx_owner(m) == owner && - TD_IS_RUNNING(owner)) { - cpu_spinwait(); -#ifdef KDTRACE_HOOKS - spin_cnt++; -#endif - } + TD_IS_RUNNING(owner)) + lock_delay(&lda); KTR_STATE0(KTR_SCHED, "thread", sched_tdname((struct thread *)tid), "running"); @@ -572,7 +609,7 @@ __mtx_lock_sleep(volatile uintptr_t *c, uintptr_t tid, int opts, /* * Only record the loops spinning and not sleeping. */ - if (spin_cnt > sleep_cnt) + if (lda.spin_cnt > sleep_cnt) LOCKSTAT_RECORD1(LS_MTX_LOCK_SPIN, m, (all_time - sleep_time)); #endif } @@ -634,8 +671,9 @@ _mtx_lock_spin_cookie(volatile uintptr_t *c, uintptr_t tid, int opts, #ifdef KDTRACE_HOOKS spin_time -= lockstat_nsecs(&m->lock_object); #endif - while (!_mtx_obtain_lock(m, tid)) { - + for (;;) { + if (m->mtx_lock == MTX_UNOWNED && _mtx_obtain_lock(m, tid)) + break; /* Give interrupts a chance while we spin. */ spinlock_exit(); while (m->mtx_lock != MTX_UNOWNED) { @@ -714,7 +752,9 @@ retry: m->lock_object.lo_name, file, line)); WITNESS_CHECKORDER(&m->lock_object, opts | LOP_NEWORDER | LOP_EXCLUSIVE, file, line, NULL); - while (!_mtx_obtain_lock(m, tid)) { + for (;;) { + if (m->mtx_lock == MTX_UNOWNED && _mtx_obtain_lock(m, tid)) + break; if (m->mtx_lock == tid) { m->mtx_recurse++; break; diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c index 0f60553..475895c 100644 --- a/sys/kern/kern_proc.c +++ b/sys/kern/kern_proc.c @@ -959,7 +959,14 @@ fill_kinfo_thread(struct thread *td, struct kinfo_proc *kp, int preferthread) strlcpy(kp->ki_wmesg, td->td_wmesg, sizeof(kp->ki_wmesg)); else bzero(kp->ki_wmesg, sizeof(kp->ki_wmesg)); - strlcpy(kp->ki_tdname, td->td_name, sizeof(kp->ki_tdname)); + if (strlcpy(kp->ki_tdname, td->td_name, sizeof(kp->ki_tdname)) >= + sizeof(kp->ki_tdname)) { + strlcpy(kp->ki_moretdname, + td->td_name + sizeof(kp->ki_tdname) - 1, + sizeof(kp->ki_moretdname)); + } else { + bzero(kp->ki_moretdname, sizeof(kp->ki_moretdname)); + } if (TD_ON_LOCK(td)) { kp->ki_kiflag |= KI_LOCKBLOCK; strlcpy(kp->ki_lockname, td->td_lockname, @@ -1180,6 +1187,7 @@ freebsd32_kinfo_proc_out(const struct kinfo_proc *ki, struct kinfo_proc32 *ki32) bcopy(ki->ki_comm, ki32->ki_comm, COMMLEN + 1); bcopy(ki->ki_emul, ki32->ki_emul, KI_EMULNAMELEN + 1); bcopy(ki->ki_loginclass, ki32->ki_loginclass, LOGINCLASSLEN + 1); + bcopy(ki->ki_moretdname, ki32->ki_moretdname, MAXCOMLEN - TDNAMLEN + 1); CP(*ki, *ki32, ki_flag2); CP(*ki, *ki32, ki_fibnum); CP(*ki, *ki32, ki_cr_flags); diff --git a/sys/kern/kern_rwlock.c b/sys/kern/kern_rwlock.c index 334d83d..8559840 100644 --- a/sys/kern/kern_rwlock.c +++ b/sys/kern/kern_rwlock.c @@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$"); #include <sys/proc.h> #include <sys/rwlock.h> #include <sys/sched.h> +#include <sys/smp.h> #include <sys/sysctl.h> #include <sys/systm.h> #include <sys/turnstile.h> @@ -66,15 +67,6 @@ PMC_SOFT_DECLARE( , , lock, failed); */ #define rwlock2rw(c) (__containerof(c, struct rwlock, rw_lock)) -#ifdef ADAPTIVE_RWLOCKS -static int rowner_retries = 10; -static int rowner_loops = 10000; -static SYSCTL_NODE(_debug, OID_AUTO, rwlock, CTLFLAG_RD, NULL, - "rwlock debugging"); -SYSCTL_INT(_debug_rwlock, OID_AUTO, retry, CTLFLAG_RW, &rowner_retries, 0, ""); -SYSCTL_INT(_debug_rwlock, OID_AUTO, loops, CTLFLAG_RW, &rowner_loops, 0, ""); -#endif - #ifdef DDB #include <ddb/ddb.h> @@ -101,6 +93,42 @@ struct lock_class lock_class_rw = { #endif }; +#ifdef ADAPTIVE_RWLOCKS +static int rowner_retries = 10; +static int rowner_loops = 10000; +static SYSCTL_NODE(_debug, OID_AUTO, rwlock, CTLFLAG_RD, NULL, + "rwlock debugging"); +SYSCTL_INT(_debug_rwlock, OID_AUTO, retry, CTLFLAG_RW, &rowner_retries, 0, ""); +SYSCTL_INT(_debug_rwlock, OID_AUTO, loops, CTLFLAG_RW, &rowner_loops, 0, ""); + +static struct lock_delay_config rw_delay = { + .initial = 1000, + .step = 500, + .min = 100, + .max = 5000, +}; + +SYSCTL_INT(_debug_rwlock, OID_AUTO, delay_initial, CTLFLAG_RW, &rw_delay.initial, + 0, ""); +SYSCTL_INT(_debug_rwlock, OID_AUTO, delay_step, CTLFLAG_RW, &rw_delay.step, + 0, ""); +SYSCTL_INT(_debug_rwlock, OID_AUTO, delay_min, CTLFLAG_RW, &rw_delay.min, + 0, ""); +SYSCTL_INT(_debug_rwlock, OID_AUTO, delay_max, CTLFLAG_RW, &rw_delay.max, + 0, ""); + +static void +rw_delay_sysinit(void *dummy) +{ + + rw_delay.initial = mp_ncpus * 25; + rw_delay.step = (mp_ncpus * 25) / 2; + rw_delay.min = mp_ncpus * 5; + rw_delay.max = mp_ncpus * 25 * 10; +} +LOCK_DELAY_SYSINIT(rw_delay_sysinit); +#endif + /* * Return a pointer to the owning thread if the lock is write-locked or * NULL if the lock is unlocked or read-locked. @@ -355,10 +383,12 @@ __rw_rlock(volatile uintptr_t *c, const char *file, int line) int contested = 0; #endif uintptr_t v; +#if defined(ADAPTIVE_RWLOCKS) || defined(KDTRACE_HOOKS) + struct lock_delay_arg lda; +#endif #ifdef KDTRACE_HOOKS uintptr_t state; - uint64_t spin_cnt = 0; - uint64_t sleep_cnt = 0; + u_int sleep_cnt = 0; int64_t sleep_time = 0; int64_t all_time = 0; #endif @@ -366,6 +396,11 @@ __rw_rlock(volatile uintptr_t *c, const char *file, int line) if (SCHEDULER_STOPPED()) return; +#if defined(ADAPTIVE_RWLOCKS) + lock_delay_arg_init(&lda, &rw_delay); +#elif defined(KDTRACE_HOOKS) + lock_delay_arg_init(&lda, NULL); +#endif rw = rwlock2rw(c); KASSERT(kdb_active != 0 || !TD_IS_IDLETHREAD(curthread), @@ -383,9 +418,6 @@ __rw_rlock(volatile uintptr_t *c, const char *file, int line) state = rw->rw_lock; #endif for (;;) { -#ifdef KDTRACE_HOOKS - spin_cnt++; -#endif /* * Handle the easy case. If no other thread has a write * lock, then try to bump up the count of read locks. Note @@ -414,6 +446,9 @@ __rw_rlock(volatile uintptr_t *c, const char *file, int line) } continue; } +#ifdef KDTRACE_HOOKS + lda.spin_cnt++; +#endif #ifdef HWPMC_HOOKS PMC_SOFT_CALL( , , lock, failed); #endif @@ -437,12 +472,8 @@ __rw_rlock(volatile uintptr_t *c, const char *file, int line) sched_tdname(curthread), "spinning", "lockname:\"%s\"", rw->lock_object.lo_name); while ((struct thread*)RW_OWNER(rw->rw_lock) == - owner && TD_IS_RUNNING(owner)) { - cpu_spinwait(); -#ifdef KDTRACE_HOOKS - spin_cnt++; -#endif - } + owner && TD_IS_RUNNING(owner)) + lock_delay(&lda); KTR_STATE0(KTR_SCHED, "thread", sched_tdname(curthread), "running"); continue; @@ -458,6 +489,9 @@ __rw_rlock(volatile uintptr_t *c, const char *file, int line) break; cpu_spinwait(); } +#ifdef KDTRACE_HOOKS + lda.spin_cnt += rowner_loops - i; +#endif KTR_STATE0(KTR_SCHED, "thread", sched_tdname(curthread), "running"); if (i != rowner_loops) @@ -549,7 +583,7 @@ __rw_rlock(volatile uintptr_t *c, const char *file, int line) (state & RW_LOCK_READ) == 0 ? 0 : RW_READERS(state)); /* Record only the loops spinning and not sleeping. */ - if (spin_cnt > sleep_cnt) + if (lda.spin_cnt > sleep_cnt) LOCKSTAT_RECORD4(LS_RW_RLOCK_SPIN, rw, all_time - sleep_time, LOCKSTAT_READER, (state & RW_LOCK_READ) == 0, (state & RW_LOCK_READ) == 0 ? 0 : RW_READERS(state)); @@ -737,10 +771,12 @@ __rw_wlock_hard(volatile uintptr_t *c, uintptr_t tid, const char *file, uint64_t waittime = 0; int contested = 0; #endif +#if defined(ADAPTIVE_RWLOCKS) || defined(KDTRACE_HOOKS) + struct lock_delay_arg lda; +#endif #ifdef KDTRACE_HOOKS uintptr_t state; - uint64_t spin_cnt = 0; - uint64_t sleep_cnt = 0; + u_int sleep_cnt = 0; int64_t sleep_time = 0; int64_t all_time = 0; #endif @@ -748,6 +784,11 @@ __rw_wlock_hard(volatile uintptr_t *c, uintptr_t tid, const char *file, if (SCHEDULER_STOPPED()) return; +#if defined(ADAPTIVE_RWLOCKS) + lock_delay_arg_init(&lda, &rw_delay); +#elif defined(KDTRACE_HOOKS) + lock_delay_arg_init(&lda, NULL); +#endif rw = rwlock2rw(c); if (rw_wlocked(rw)) { @@ -768,9 +809,11 @@ __rw_wlock_hard(volatile uintptr_t *c, uintptr_t tid, const char *file, all_time -= lockstat_nsecs(&rw->lock_object); state = rw->rw_lock; #endif - while (!_rw_write_lock(rw, tid)) { + for (;;) { + if (rw->rw_lock == RW_UNLOCKED && _rw_write_lock(rw, tid)) + break; #ifdef KDTRACE_HOOKS - spin_cnt++; + lda.spin_cnt++; #endif #ifdef HWPMC_HOOKS PMC_SOFT_CALL( , , lock, failed); @@ -793,12 +836,8 @@ __rw_wlock_hard(volatile uintptr_t *c, uintptr_t tid, const char *file, "spinning", "lockname:\"%s\"", rw->lock_object.lo_name); while ((struct thread*)RW_OWNER(rw->rw_lock) == owner && - TD_IS_RUNNING(owner)) { - cpu_spinwait(); -#ifdef KDTRACE_HOOKS - spin_cnt++; -#endif - } + TD_IS_RUNNING(owner)) + lock_delay(&lda); KTR_STATE0(KTR_SCHED, "thread", sched_tdname(curthread), "running"); continue; @@ -823,7 +862,7 @@ __rw_wlock_hard(volatile uintptr_t *c, uintptr_t tid, const char *file, KTR_STATE0(KTR_SCHED, "thread", sched_tdname(curthread), "running"); #ifdef KDTRACE_HOOKS - spin_cnt += rowner_loops - i; + lda.spin_cnt += rowner_loops - i; #endif if (i != rowner_loops) continue; @@ -913,9 +952,9 @@ __rw_wlock_hard(volatile uintptr_t *c, uintptr_t tid, const char *file, (state & RW_LOCK_READ) == 0 ? 0 : RW_READERS(state)); /* Record only the loops spinning and not sleeping. */ - if (spin_cnt > sleep_cnt) + if (lda.spin_cnt > sleep_cnt) LOCKSTAT_RECORD4(LS_RW_WLOCK_SPIN, rw, all_time - sleep_time, - LOCKSTAT_READER, (state & RW_LOCK_READ) == 0, + LOCKSTAT_WRITER, (state & RW_LOCK_READ) == 0, (state & RW_LOCK_READ) == 0 ? 0 : RW_READERS(state)); #endif LOCKSTAT_PROFILE_OBTAIN_LOCK_SUCCESS(LS_RW_WLOCK_ACQUIRE, rw, contested, diff --git a/sys/kern/kern_sx.c b/sys/kern/kern_sx.c index 952f7d4..5d418c2 100644 --- a/sys/kern/kern_sx.c +++ b/sys/kern/kern_sx.c @@ -47,6 +47,7 @@ __FBSDID("$FreeBSD$"); #include <sys/param.h> #include <sys/systm.h> #include <sys/kdb.h> +#include <sys/kernel.h> #include <sys/ktr.h> #include <sys/lock.h> #include <sys/mutex.h> @@ -54,6 +55,7 @@ __FBSDID("$FreeBSD$"); #include <sys/sched.h> #include <sys/sleepqueue.h> #include <sys/sx.h> +#include <sys/smp.h> #include <sys/sysctl.h> #if defined(SMP) && !defined(NO_ADAPTIVE_SX) @@ -147,6 +149,33 @@ static u_int asx_loops = 10000; static SYSCTL_NODE(_debug, OID_AUTO, sx, CTLFLAG_RD, NULL, "sxlock debugging"); SYSCTL_UINT(_debug_sx, OID_AUTO, retries, CTLFLAG_RW, &asx_retries, 0, ""); SYSCTL_UINT(_debug_sx, OID_AUTO, loops, CTLFLAG_RW, &asx_loops, 0, ""); + +static struct lock_delay_config sx_delay = { + .initial = 1000, + .step = 500, + .min = 100, + .max = 5000, +}; + +SYSCTL_INT(_debug_sx, OID_AUTO, delay_initial, CTLFLAG_RW, &sx_delay.initial, + 0, ""); +SYSCTL_INT(_debug_sx, OID_AUTO, delay_step, CTLFLAG_RW, &sx_delay.step, + 0, ""); +SYSCTL_INT(_debug_sx, OID_AUTO, delay_min, CTLFLAG_RW, &sx_delay.min, + 0, ""); +SYSCTL_INT(_debug_sx, OID_AUTO, delay_max, CTLFLAG_RW, &sx_delay.max, + 0, ""); + +static void +sx_delay_sysinit(void *dummy) +{ + + sx_delay.initial = mp_ncpus * 25; + sx_delay.step = (mp_ncpus * 25) / 2; + sx_delay.min = mp_ncpus * 5; + sx_delay.max = mp_ncpus * 25 * 10; +} +LOCK_DELAY_SYSINIT(sx_delay_sysinit); #endif void @@ -516,10 +545,12 @@ _sx_xlock_hard(struct sx *sx, uintptr_t tid, int opts, const char *file, int contested = 0; #endif int error = 0; +#if defined(ADAPTIVE_SX) || defined(KDTRACE_HOOKS) + struct lock_delay_arg lda; +#endif #ifdef KDTRACE_HOOKS uintptr_t state; - uint64_t spin_cnt = 0; - uint64_t sleep_cnt = 0; + u_int sleep_cnt = 0; int64_t sleep_time = 0; int64_t all_time = 0; #endif @@ -527,6 +558,12 @@ _sx_xlock_hard(struct sx *sx, uintptr_t tid, int opts, const char *file, if (SCHEDULER_STOPPED()) return (0); +#if defined(ADAPTIVE_SX) + lock_delay_arg_init(&lda, &sx_delay); +#elif defined(KDTRACE_HOOKS) + lock_delay_arg_init(&lda, NULL); +#endif + /* If we already hold an exclusive lock, then recurse. */ if (sx_xlocked(sx)) { KASSERT((sx->lock_object.lo_flags & LO_RECURSABLE) != 0, @@ -547,9 +584,12 @@ _sx_xlock_hard(struct sx *sx, uintptr_t tid, int opts, const char *file, all_time -= lockstat_nsecs(&sx->lock_object); state = sx->sx_lock; #endif - while (!atomic_cmpset_acq_ptr(&sx->sx_lock, SX_LOCK_UNLOCKED, tid)) { + for (;;) { + if (sx->sx_lock == SX_LOCK_UNLOCKED && + atomic_cmpset_acq_ptr(&sx->sx_lock, SX_LOCK_UNLOCKED, tid)) + break; #ifdef KDTRACE_HOOKS - spin_cnt++; + lda.spin_cnt++; #endif #ifdef HWPMC_HOOKS PMC_SOFT_CALL( , , lock, failed); @@ -578,12 +618,8 @@ _sx_xlock_hard(struct sx *sx, uintptr_t tid, int opts, const char *file, sx->lock_object.lo_name); GIANT_SAVE(); while (SX_OWNER(sx->sx_lock) == x && - TD_IS_RUNNING(owner)) { - cpu_spinwait(); -#ifdef KDTRACE_HOOKS - spin_cnt++; -#endif - } + TD_IS_RUNNING(owner)) + lock_delay(&lda); KTR_STATE0(KTR_SCHED, "thread", sched_tdname(curthread), "running"); continue; @@ -605,7 +641,7 @@ _sx_xlock_hard(struct sx *sx, uintptr_t tid, int opts, const char *file, break; cpu_spinwait(); #ifdef KDTRACE_HOOKS - spin_cnt++; + lda.spin_cnt++; #endif } KTR_STATE0(KTR_SCHED, "thread", @@ -725,7 +761,7 @@ _sx_xlock_hard(struct sx *sx, uintptr_t tid, int opts, const char *file, LOCKSTAT_RECORD4(LS_SX_XLOCK_BLOCK, sx, sleep_time, LOCKSTAT_WRITER, (state & SX_LOCK_SHARED) == 0, (state & SX_LOCK_SHARED) == 0 ? 0 : SX_SHARERS(state)); - if (spin_cnt > sleep_cnt) + if (lda.spin_cnt > sleep_cnt) LOCKSTAT_RECORD4(LS_SX_XLOCK_SPIN, sx, all_time - sleep_time, LOCKSTAT_WRITER, (state & SX_LOCK_SHARED) == 0, (state & SX_LOCK_SHARED) == 0 ? 0 : SX_SHARERS(state)); @@ -818,10 +854,12 @@ _sx_slock_hard(struct sx *sx, int opts, const char *file, int line) #endif uintptr_t x; int error = 0; +#if defined(ADAPTIVE_SX) || defined(KDTRACE_HOOKS) + struct lock_delay_arg lda; +#endif #ifdef KDTRACE_HOOKS uintptr_t state; - uint64_t spin_cnt = 0; - uint64_t sleep_cnt = 0; + u_int sleep_cnt = 0; int64_t sleep_time = 0; int64_t all_time = 0; #endif @@ -829,6 +867,11 @@ _sx_slock_hard(struct sx *sx, int opts, const char *file, int line) if (SCHEDULER_STOPPED()) return (0); +#if defined(ADAPTIVE_SX) + lock_delay_arg_init(&lda, &sx_delay); +#elif defined(KDTRACE_HOOKS) + lock_delay_arg_init(&lda, NULL); +#endif #ifdef KDTRACE_HOOKS state = sx->sx_lock; all_time -= lockstat_nsecs(&sx->lock_object); @@ -840,7 +883,7 @@ _sx_slock_hard(struct sx *sx, int opts, const char *file, int line) */ for (;;) { #ifdef KDTRACE_HOOKS - spin_cnt++; + lda.spin_cnt++; #endif x = sx->sx_lock; @@ -888,12 +931,8 @@ _sx_slock_hard(struct sx *sx, int opts, const char *file, int line) "lockname:\"%s\"", sx->lock_object.lo_name); GIANT_SAVE(); while (SX_OWNER(sx->sx_lock) == x && - TD_IS_RUNNING(owner)) { -#ifdef KDTRACE_HOOKS - spin_cnt++; -#endif - cpu_spinwait(); - } + TD_IS_RUNNING(owner)) + lock_delay(&lda); KTR_STATE0(KTR_SCHED, "thread", sched_tdname(curthread), "running"); continue; @@ -989,7 +1028,7 @@ _sx_slock_hard(struct sx *sx, int opts, const char *file, int line) LOCKSTAT_RECORD4(LS_SX_SLOCK_BLOCK, sx, sleep_time, LOCKSTAT_READER, (state & SX_LOCK_SHARED) == 0, (state & SX_LOCK_SHARED) == 0 ? 0 : SX_SHARERS(state)); - if (spin_cnt > sleep_cnt) + if (lda.spin_cnt > sleep_cnt) LOCKSTAT_RECORD4(LS_SX_SLOCK_SPIN, sx, all_time - sleep_time, LOCKSTAT_READER, (state & SX_LOCK_SHARED) == 0, (state & SX_LOCK_SHARED) == 0 ? 0 : SX_SHARERS(state)); diff --git a/sys/kern/kern_thr.c b/sys/kern/kern_thr.c index 74050ff..63e4ed0 100644 --- a/sys/kern/kern_thr.c +++ b/sys/kern/kern_thr.c @@ -569,8 +569,11 @@ sys_thr_set_name(struct thread *td, struct thr_set_name_args *uap) error = 0; name[0] = '\0'; if (uap->name != NULL) { - error = copyinstr(uap->name, name, sizeof(name), - NULL); + error = copyinstr(uap->name, name, sizeof(name), NULL); + if (error == ENAMETOOLONG) { + error = copyin(uap->name, name, sizeof(name) - 1); + name[sizeof(name) - 1] = '\0'; + } if (error) return (error); } diff --git a/sys/kern/subr_lock.c b/sys/kern/subr_lock.c index 8aec803..cacaf56 100644 --- a/sys/kern/subr_lock.c +++ b/sys/kern/subr_lock.c @@ -55,6 +55,7 @@ __FBSDID("$FreeBSD$"); #endif #include <machine/cpufunc.h> +#include <machine/cpu.h> CTASSERT(LOCK_CLASS_MAX == 15); @@ -103,6 +104,34 @@ lock_destroy(struct lock_object *lock) lock->lo_flags &= ~LO_INITIALIZED; } +void +lock_delay(struct lock_delay_arg *la) +{ + u_int i, delay, backoff, min, max; + struct lock_delay_config *lc = la->config; + + delay = la->delay; + + if (delay == 0) + delay = lc->initial; + else { + delay += lc->step; + max = lc->max; + if (delay > max) + delay = max; + } + + backoff = cpu_ticks() % delay; + min = lc->min; + if (backoff < min) + backoff = min; + for (i = 0; i < backoff; i++) + cpu_spinwait(); + + la->delay = delay; + la->spin_cnt += backoff; +} + #ifdef DDB DB_SHOW_COMMAND(lock, db_show_lock) { diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index f2ddf66..9f922db 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -256,6 +256,43 @@ statfs_scale_blocks(struct statfs *sf, long max_size) sf->f_bavail >>= shift; } +static int +kern_do_statfs(struct thread *td, struct mount *mp, struct statfs *buf) +{ + struct statfs *sp; + int error; + + if (mp == NULL) + return (EBADF); + error = vfs_busy(mp, 0); + vfs_rel(mp); + if (error != 0) + return (error); +#ifdef MAC + error = mac_mount_check_stat(td->td_ucred, mp); + if (error != 0) + goto out; +#endif + /* + * Set these in case the underlying filesystem fails to do so. + */ + sp = &mp->mnt_stat; + sp->f_version = STATFS_VERSION; + sp->f_namemax = NAME_MAX; + sp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK; + error = VFS_STATFS(mp, sp); + if (error != 0) + goto out; + *buf = *sp; + if (priv_check(td, PRIV_VFS_GENERATION)) { + buf->f_fsid.val[0] = buf->f_fsid.val[1] = 0; + prison_enforce_statfs(td->td_ucred, mp, buf); + } +out: + vfs_unbusy(mp); + return (error); +} + /* * Get filesystem statistics. */ @@ -287,7 +324,6 @@ kern_statfs(struct thread *td, char *path, enum uio_seg pathseg, struct statfs *buf) { struct mount *mp; - struct statfs *sp, sb; struct nameidata nd; int error; @@ -300,35 +336,7 @@ kern_statfs(struct thread *td, char *path, enum uio_seg pathseg, vfs_ref(mp); NDFREE(&nd, NDF_ONLY_PNBUF); vput(nd.ni_vp); - error = vfs_busy(mp, 0); - vfs_rel(mp); - if (error != 0) - return (error); -#ifdef MAC - error = mac_mount_check_stat(td->td_ucred, mp); - if (error != 0) - goto out; -#endif - /* - * Set these in case the underlying filesystem fails to do so. - */ - sp = &mp->mnt_stat; - sp->f_version = STATFS_VERSION; - sp->f_namemax = NAME_MAX; - sp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK; - error = VFS_STATFS(mp, sp); - if (error != 0) - goto out; - if (priv_check(td, PRIV_VFS_GENERATION)) { - bcopy(sp, &sb, sizeof(sb)); - sb.f_fsid.val[0] = sb.f_fsid.val[1] = 0; - prison_enforce_statfs(td->td_ucred, mp, &sb); - sp = &sb; - } - *buf = *sp; -out: - vfs_unbusy(mp); - return (error); + return (kern_do_statfs(td, mp, buf)); } /* @@ -362,7 +370,6 @@ kern_fstatfs(struct thread *td, int fd, struct statfs *buf) { struct file *fp; struct mount *mp; - struct statfs *sp, sb; struct vnode *vp; cap_rights_t rights; int error; @@ -378,44 +385,11 @@ kern_fstatfs(struct thread *td, int fd, struct statfs *buf) AUDIT_ARG_VNODE1(vp); #endif mp = vp->v_mount; - if (mp) + if (mp != NULL) vfs_ref(mp); VOP_UNLOCK(vp, 0); fdrop(fp, td); - if (mp == NULL) { - error = EBADF; - goto out; - } - error = vfs_busy(mp, 0); - vfs_rel(mp); - if (error != 0) - return (error); -#ifdef MAC - error = mac_mount_check_stat(td->td_ucred, mp); - if (error != 0) - goto out; -#endif - /* - * Set these in case the underlying filesystem fails to do so. - */ - sp = &mp->mnt_stat; - sp->f_version = STATFS_VERSION; - sp->f_namemax = NAME_MAX; - sp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK; - error = VFS_STATFS(mp, sp); - if (error != 0) - goto out; - if (priv_check(td, PRIV_VFS_GENERATION)) { - bcopy(sp, &sb, sizeof(sb)); - sb.f_fsid.val[0] = sb.f_fsid.val[1] = 0; - prison_enforce_statfs(td->td_ucred, mp, &sb); - sp = &sb; - } - *buf = *sp; -out: - if (mp) - vfs_unbusy(mp); - return (error); + return (kern_do_statfs(td, mp, buf)); } /* diff --git a/sys/mips/mips/pmap.c b/sys/mips/mips/pmap.c index caee47c..7745588 100644 --- a/sys/mips/mips/pmap.c +++ b/sys/mips/mips/pmap.c @@ -74,11 +74,7 @@ __FBSDID("$FreeBSD$"); #include <sys/proc.h> #include <sys/rwlock.h> #include <sys/sched.h> -#ifdef SMP #include <sys/smp.h> -#else -#include <sys/cpuset.h> -#endif #include <sys/sysctl.h> #include <sys/vmmeter.h> @@ -3203,9 +3199,19 @@ pmap_activate(struct thread *td) critical_exit(); } +static void +pmap_sync_icache_one(void *arg __unused) +{ + + mips_icache_sync_all(); + mips_dcache_wbinv_all(); +} + void pmap_sync_icache(pmap_t pm, vm_offset_t va, vm_size_t sz) { + + smp_rendezvous(NULL, pmap_sync_icache_one, NULL, NULL); } /* diff --git a/sys/modules/cxgbe/t4_firmware/Makefile b/sys/modules/cxgbe/t4_firmware/Makefile index 20e95d5..3fecead 100644 --- a/sys/modules/cxgbe/t4_firmware/Makefile +++ b/sys/modules/cxgbe/t4_firmware/Makefile @@ -17,7 +17,7 @@ FIRMWS+= ${F}:${F:C/.txt//}:1.0.0.0 .endif .endfor -T4FW_VER= 1.16.22.0 +T4FW_VER= 1.16.26.0 FIRMWS+= t4fw.fw:t4fw:${T4FW_VER} CLEANFILES+= t4fw.fw diff --git a/sys/modules/cxgbe/t5_firmware/Makefile b/sys/modules/cxgbe/t5_firmware/Makefile index 45c1461..2419a19 100644 --- a/sys/modules/cxgbe/t5_firmware/Makefile +++ b/sys/modules/cxgbe/t5_firmware/Makefile @@ -17,7 +17,7 @@ FIRMWS+= ${F}:${F:C/.txt//}:1.0.0.0 .endif .endfor -T5FW_VER= 1.16.22.0 +T5FW_VER= 1.16.26.0 FIRMWS+= t5fw.fw:t5fw:${T5FW_VER} CLEANFILES+= t5fw.fw diff --git a/sys/modules/cxgbe/t6_firmware/Makefile b/sys/modules/cxgbe/t6_firmware/Makefile index 135264e..9bdde07 100644 --- a/sys/modules/cxgbe/t6_firmware/Makefile +++ b/sys/modules/cxgbe/t6_firmware/Makefile @@ -17,7 +17,7 @@ FIRMWS+= ${F}:${F:C/.txt//}:1.0.0.0 .endif .endfor -T6FW_VER= 1.16.22.0 +T6FW_VER= 1.16.26.0 FIRMWS+= t6fw.fw:t6fw:${T6FW_VER} CLEANFILES+= t6fw.fw diff --git a/sys/modules/hyperv/netvsc/Makefile b/sys/modules/hyperv/netvsc/Makefile index 1d572cb..ca5f97a 100644 --- a/sys/modules/hyperv/netvsc/Makefile +++ b/sys/modules/hyperv/netvsc/Makefile @@ -5,7 +5,7 @@ KMOD= hv_netvsc SRCS= hn_nvs.c hn_rndis.c if_hn.c -SRCS+= bus_if.h device_if.h opt_inet.h opt_inet6.h vmbus_if.h +SRCS+= bus_if.h device_if.h opt_inet.h opt_inet6.h vmbus_if.h opt_hn.h CFLAGS+= -I${.CURDIR}/../../../dev/hyperv/netvsc diff --git a/sys/modules/hyperv/utilities/Makefile b/sys/modules/hyperv/utilities/Makefile index 290bd27..deb2e8b 100644 --- a/sys/modules/hyperv/utilities/Makefile +++ b/sys/modules/hyperv/utilities/Makefile @@ -3,7 +3,12 @@ .PATH: ${.CURDIR}/../../../dev/hyperv/utilities KMOD= hv_utils -SRCS= hv_util.c hv_kvp.c hv_timesync.c hv_shutdown.c hv_heartbeat.c +SRCS= vmbus_ic.c +SRCS+= hv_kvp.c +SRCS+= hv_snapshot.c +SRCS+= vmbus_heartbeat.c +SRCS+= vmbus_shutdown.c +SRCS+= vmbus_timesync.c SRCS+= bus_if.h device_if.h vmbus_if.h CFLAGS+= -I${.CURDIR}/../../../dev/hyperv/include \ diff --git a/sys/modules/sfxge/Makefile b/sys/modules/sfxge/Makefile index cc00d3a..fcdeab8 100644 --- a/sys/modules/sfxge/Makefile +++ b/sys/modules/sfxge/Makefile @@ -19,7 +19,7 @@ SRCS+= sfxge.h sfxge_rx.h sfxge_tx.h sfxge_version.h SRCS+= efx_bootcfg.c efx_crc32.c efx_ev.c efx_intr.c efx_lic.c efx_mac.c SRCS+= efx_mcdi.c efx_mon.c efx_nic.c SRCS+= efx_nvram.c efx_phy.c efx_port.c efx_rx.c efx_sram.c efx_tx.c -SRCS+= efx_vpd.c efx_wol.c efx_filter.c efx_hash.c +SRCS+= efx_vpd.c efx_filter.c efx_hash.c SRCS+= efsys.h SRCS+= efx.h efx_check.h efx_impl.h efx_mcdi.h efx_regs.h efx_regs_ef10.h SRCS+= efx_regs_mcdi.h efx_regs_pci.h efx_types.h efx_phy_ids.h @@ -35,7 +35,7 @@ SRCS+= ef10_ev.c ef10_filter.c ef10_intr.c ef10_mac.c ef10_mcdi.c ef10_nic.c SRCS+= ef10_nvram.c ef10_phy.c ef10_rx.c ef10_tx.c ef10_vpd.c SRCS+= ef10_impl.h -SRCS+= hunt_nic.c hunt_phy.c +SRCS+= hunt_nic.c SRCS+= hunt_impl.h SRCS+= medford_nic.c diff --git a/sys/netgraph/ng_base.c b/sys/netgraph/ng_base.c index 693b3ac..9224dd7 100644 --- a/sys/netgraph/ng_base.c +++ b/sys/netgraph/ng_base.c @@ -3847,7 +3847,11 @@ ng_uncallout(struct callout *c, node_p node) } c->c_arg = NULL; - return (rval); + /* + * Callers only want to know if the callout was cancelled and + * not draining or stopped. + */ + return (rval > 0); } /* diff --git a/sys/netpfil/pf/if_pflog.c b/sys/netpfil/pf/if_pflog.c index 5c22806..536695d 100644 --- a/sys/netpfil/pf/if_pflog.c +++ b/sys/netpfil/pf/if_pflog.c @@ -217,7 +217,7 @@ pflog_packet(struct pfi_kif *kif, struct mbuf *m, sa_family_t af, u_int8_t dir, if (am == NULL) { hdr.rulenr = htonl(rm->nr); - hdr.subrulenr = 1; + hdr.subrulenr = -1; hdr.ridentifier = rm->cuid; } else { hdr.rulenr = htonl(am->nr); diff --git a/sys/pci/intpm.c b/sys/pci/intpm.c index 70d62a7..642fefd 100644 --- a/sys/pci/intpm.c +++ b/sys/pci/intpm.c @@ -785,39 +785,11 @@ intsmb_readw(device_t dev, u_char slave, char cmd, short *word) return (error); } -/* - * Data sheet claims that it implements all function, but also claims - * that it implements 7 function and not mention PCALL. So I don't know - * whether it will work. - */ static int intsmb_pcall(device_t dev, u_char slave, char cmd, short sdata, short *rdata) { -#ifdef PROCCALL_TEST - struct intsmb_softc *sc = device_get_softc(dev); - int error; - INTSMB_LOCK(sc); - error = intsmb_free(sc); - if (error) { - INTSMB_UNLOCK(sc); - return (error); - } - bus_write_1(sc->io_res, PIIX4_SMBHSTADD, slave & ~LSB); - bus_write_1(sc->io_res, PIIX4_SMBHSTCMD, cmd); - bus_write_1(sc->io_res, PIIX4_SMBHSTDAT0, sdata & 0xff); - bus_write_1(sc->io_res, PIIX4_SMBHSTDAT1, (sdata & 0xff) >> 8); - intsmb_start(sc, PIIX4_SMBHSTCNT_PROT_WDATA, 0); - error = intsmb_stop(sc); - if (error == 0) { - *rdata = bus_read_1(sc->io_res, PIIX4_SMBHSTDAT0); - *rdata |= bus_read_1(sc->io_res, PIIX4_SMBHSTDAT1) << 8; - } - INTSMB_UNLOCK(sc); - return (error); -#else return (SMB_ENOTSUPP); -#endif } static int @@ -857,9 +829,6 @@ intsmb_bread(device_t dev, u_char slave, char cmd, u_char *count, char *buf) int error, i; u_char data, nread; - if (*count > SMBBLOCKTRANS_MAX || *count == 0) - return (SMB_EINVAL); - INTSMB_LOCK(sc); error = intsmb_free(sc); if (error) { @@ -872,18 +841,14 @@ intsmb_bread(device_t dev, u_char slave, char cmd, u_char *count, char *buf) bus_write_1(sc->io_res, PIIX4_SMBHSTADD, slave | LSB); bus_write_1(sc->io_res, PIIX4_SMBHSTCMD, cmd); - bus_write_1(sc->io_res, PIIX4_SMBHSTDAT0, *count); intsmb_start(sc, PIIX4_SMBHSTCNT_PROT_BLOCK, 0); error = intsmb_stop(sc); if (error == 0) { nread = bus_read_1(sc->io_res, PIIX4_SMBHSTDAT0); if (nread != 0 && nread <= SMBBLOCKTRANS_MAX) { - for (i = 0; i < nread; i++) { - data = bus_read_1(sc->io_res, PIIX4_SMBBLKDAT); - if (i < *count) - buf[i] = data; - } *count = nread; + for (i = 0; i < nread; i++) + data = bus_read_1(sc->io_res, PIIX4_SMBBLKDAT); } else error = SMB_EBUSERR; } diff --git a/sys/sys/conf.h b/sys/sys/conf.h index 946656d..95cd782 100644 --- a/sys/sys/conf.h +++ b/sys/sys/conf.h @@ -305,7 +305,6 @@ int make_dev_physpath_alias(int _flags, struct cdev **_cdev, const char *_physpath); void dev_lock(void); void dev_unlock(void); -void setconf(void); #ifdef KLD_MODULE #define MAKEDEV_ETERNAL_KLD 0 diff --git a/sys/sys/copyright.h b/sys/sys/copyright.h index 5c96e4b..6454572 100644 --- a/sys/sys/copyright.h +++ b/sys/sys/copyright.h @@ -30,7 +30,7 @@ /* FreeBSD */ #define COPYRIGHT_FreeBSD \ - "Copyright (c) 1992-2016 The FreeBSD Project.\n" + "Copyright (c) 1992-2017 The FreeBSD Project.\n" /* Foundation */ #define TRADEMARK_Foundation \ diff --git a/sys/sys/errno.h b/sys/sys/errno.h index d4c5950..42f0dca 100644 --- a/sys/sys/errno.h +++ b/sys/sys/errno.h @@ -184,7 +184,7 @@ __END_DECLS #define ELAST 96 /* Must be equal largest errno */ #endif /* _POSIX_SOURCE */ -#ifdef _KERNEL +#if defined(_KERNEL) || defined(_WANT_KERNEL_ERRNO) /* pseudo-errors returned inside kernel to modify return to process */ #define ERESTART (-1) /* restart syscall */ #define EJUSTRETURN (-2) /* don't modify regs, just return */ diff --git a/sys/sys/event.h b/sys/sys/event.h index 8d10eed..1eba8ad 100644 --- a/sys/sys/event.h +++ b/sys/sys/event.h @@ -228,6 +228,7 @@ struct knote { struct aiocblist *p_aio; /* AIO job pointer */ struct aioliojob *p_lio; /* LIO job pointer */ sbintime_t *p_nexttime; /* next timer event fires at */ + void *p_v; /* generic other pointer */ } kn_ptr; struct filterops *kn_fop; void *kn_hook; @@ -252,29 +253,29 @@ struct knlist; struct mtx; struct rwlock; -extern void knote(struct knlist *list, long hint, int lockflags); -extern void knote_fork(struct knlist *list, int pid); -extern void knlist_add(struct knlist *knl, struct knote *kn, int islocked); -extern void knlist_remove(struct knlist *knl, struct knote *kn, int islocked); -extern void knlist_remove_inevent(struct knlist *knl, struct knote *kn); -extern int knlist_empty(struct knlist *knl); -extern void knlist_init(struct knlist *knl, void *lock, - void (*kl_lock)(void *), void (*kl_unlock)(void *), - void (*kl_assert_locked)(void *), void (*kl_assert_unlocked)(void *)); -extern void knlist_init_mtx(struct knlist *knl, struct mtx *lock); -extern void knlist_init_rw_reader(struct knlist *knl, struct rwlock *lock); -extern void knlist_destroy(struct knlist *knl); -extern void knlist_cleardel(struct knlist *knl, struct thread *td, +void knote(struct knlist *list, long hint, int lockflags); +void knote_fork(struct knlist *list, int pid); +void knlist_add(struct knlist *knl, struct knote *kn, int islocked); +void knlist_remove(struct knlist *knl, struct knote *kn, int islocked); +void knlist_remove_inevent(struct knlist *knl, struct knote *kn); +int knlist_empty(struct knlist *knl); +void knlist_init(struct knlist *knl, void *lock, void (*kl_lock)(void *), + void (*kl_unlock)(void *), void (*kl_assert_locked)(void *), + void (*kl_assert_unlocked)(void *)); +void knlist_init_mtx(struct knlist *knl, struct mtx *lock); +void knlist_init_rw_reader(struct knlist *knl, struct rwlock *lock); +void knlist_destroy(struct knlist *knl); +void knlist_cleardel(struct knlist *knl, struct thread *td, int islocked, int killkn); #define knlist_clear(knl, islocked) \ - knlist_cleardel((knl), NULL, (islocked), 0) + knlist_cleardel((knl), NULL, (islocked), 0) #define knlist_delete(knl, td, islocked) \ - knlist_cleardel((knl), (td), (islocked), 1) -extern void knote_fdclose(struct thread *p, int fd); -extern int kqfd_register(int fd, struct kevent *kev, struct thread *p, - int waitok); -extern int kqueue_add_filteropts(int filt, struct filterops *filtops); -extern int kqueue_del_filteropts(int filt); + knlist_cleardel((knl), (td), (islocked), 1) +void knote_fdclose(struct thread *p, int fd); +int kqfd_register(int fd, struct kevent *kev, struct thread *p, + int waitok); +int kqueue_add_filteropts(int filt, struct filterops *filtops); +int kqueue_del_filteropts(int filt); #else /* !_KERNEL */ diff --git a/sys/sys/lock.h b/sys/sys/lock.h index 58343b5..7d860e4 100644 --- a/sys/sys/lock.h +++ b/sys/sys/lock.h @@ -199,9 +199,33 @@ extern struct lock_class lock_class_lockmgr; extern struct lock_class *lock_classes[]; +struct lock_delay_config { + u_int initial; + u_int step; + u_int min; + u_int max; +}; + +struct lock_delay_arg { + struct lock_delay_config *config; + u_int delay; + u_int spin_cnt; +}; + +static inline void +lock_delay_arg_init(struct lock_delay_arg *la, struct lock_delay_config *lc) { + la->config = lc; + la->delay = 0; + la->spin_cnt = 0; +} + +#define LOCK_DELAY_SYSINIT(func) \ + SYSINIT(func##_ld, SI_SUB_LOCK, SI_ORDER_ANY, func, NULL) + void lock_init(struct lock_object *, struct lock_class *, const char *, const char *, int); void lock_destroy(struct lock_object *); +void lock_delay(struct lock_delay_arg *); void spinlock_enter(void); void spinlock_exit(void); void witness_init(struct lock_object *, const char *); diff --git a/sys/sys/mutex.h b/sys/sys/mutex.h index ddaee4f..c358e04 100644 --- a/sys/sys/mutex.h +++ b/sys/sys/mutex.h @@ -188,7 +188,7 @@ void thread_lock_flags_(struct thread *, int, const char *, int); #define __mtx_lock(mp, tid, opts, file, line) do { \ uintptr_t _tid = (uintptr_t)(tid); \ \ - if (!_mtx_obtain_lock((mp), _tid)) \ + if (((mp)->mtx_lock != MTX_UNOWNED || !_mtx_obtain_lock((mp), _tid)))\ _mtx_lock_sleep((mp), _tid, (opts), (file), (line)); \ else \ LOCKSTAT_PROFILE_OBTAIN_LOCK_SUCCESS(LS_MTX_LOCK_ACQUIRE, \ @@ -206,7 +206,7 @@ void thread_lock_flags_(struct thread *, int, const char *, int); uintptr_t _tid = (uintptr_t)(tid); \ \ spinlock_enter(); \ - if (!_mtx_obtain_lock((mp), _tid)) { \ + if (((mp)->mtx_lock != MTX_UNOWNED || !_mtx_obtain_lock((mp), _tid))) {\ if ((mp)->mtx_lock == _tid) \ (mp)->mtx_recurse++; \ else \ @@ -262,7 +262,7 @@ void thread_lock_flags_(struct thread *, int, const char *, int); #define __mtx_unlock(mp, tid, opts, file, line) do { \ uintptr_t _tid = (uintptr_t)(tid); \ \ - if (!_mtx_release_lock((mp), _tid)) \ + if ((mp)->mtx_lock != _tid || !_mtx_release_lock((mp), _tid)) \ _mtx_unlock_sleep((mp), (opts), (file), (line)); \ } while (0) diff --git a/sys/sys/param.h b/sys/sys/param.h index 97e660d..6b3873d 100644 --- a/sys/sys/param.h +++ b/sys/sys/param.h @@ -58,7 +58,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1003510 /* Master, propagated to newvers */ +#define __FreeBSD_version 1003511 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, diff --git a/sys/sys/rwlock.h b/sys/sys/rwlock.h index 3b62c05..7ed94d6 100644 --- a/sys/sys/rwlock.h +++ b/sys/sys/rwlock.h @@ -96,7 +96,7 @@ #define __rw_wlock(rw, tid, file, line) do { \ uintptr_t _tid = (uintptr_t)(tid); \ \ - if (!_rw_write_lock((rw), _tid)) \ + if ((rw)->rw_lock != RW_UNLOCKED || !_rw_write_lock((rw), _tid))\ _rw_wlock_hard((rw), _tid, (file), (line)); \ else \ LOCKSTAT_PROFILE_OBTAIN_LOCK_SUCCESS(LS_RW_WLOCK_ACQUIRE, \ @@ -109,7 +109,7 @@ \ if ((rw)->rw_recurse) \ (rw)->rw_recurse--; \ - else if (!_rw_write_unlock((rw), _tid)) \ + else if ((rw)->rw_lock != _tid || !_rw_write_unlock((rw), _tid))\ _rw_wunlock_hard((rw), _tid, (file), (line)); \ } while (0) diff --git a/sys/sys/sx.h b/sys/sys/sx.h index 78cbdfd..97fbb2f 100644 --- a/sys/sys/sx.h +++ b/sys/sys/sx.h @@ -148,7 +148,8 @@ __sx_xlock(struct sx *sx, struct thread *td, int opts, const char *file, uintptr_t tid = (uintptr_t)td; int error = 0; - if (!atomic_cmpset_acq_ptr(&sx->sx_lock, SX_LOCK_UNLOCKED, tid)) + if (sx->sx_lock != SX_LOCK_UNLOCKED || + !atomic_cmpset_acq_ptr(&sx->sx_lock, SX_LOCK_UNLOCKED, tid)) error = _sx_xlock_hard(sx, tid, opts, file, line); else LOCKSTAT_PROFILE_OBTAIN_LOCK_SUCCESS(LS_SX_XLOCK_ACQUIRE, @@ -163,7 +164,8 @@ __sx_xunlock(struct sx *sx, struct thread *td, const char *file, int line) { uintptr_t tid = (uintptr_t)td; - if (!atomic_cmpset_rel_ptr(&sx->sx_lock, tid, SX_LOCK_UNLOCKED)) + if (sx->sx_lock != tid || + !atomic_cmpset_rel_ptr(&sx->sx_lock, tid, SX_LOCK_UNLOCKED)) _sx_xunlock_hard(sx, tid, file, line); } diff --git a/sys/sys/user.h b/sys/sys/user.h index 3bd2772..5b2d8d2 100644 --- a/sys/sys/user.h +++ b/sys/sys/user.h @@ -180,12 +180,13 @@ struct kinfo_proc { char ki_comm[COMMLEN+1]; /* command name */ char ki_emul[KI_EMULNAMELEN+1]; /* emulation name */ char ki_loginclass[LOGINCLASSLEN+1]; /* login class */ + char ki_moretdname[MAXCOMLEN-TDNAMLEN+1]; /* more thread name */ /* * When adding new variables, take space for char-strings from the * front of ki_sparestrings, and ints from the end of ki_spareints. * That way the spare room from both arrays will remain contiguous. */ - char ki_sparestrings[50]; /* spare string space */ + char ki_sparestrings[46]; /* spare string space */ int ki_spareints[KI_NSPARE_INT]; /* spare room for growth */ int ki_flag2; /* P2_* flags */ int ki_fibnum; /* Default FIB number */ diff --git a/sys/vm/default_pager.c b/sys/vm/default_pager.c index 98dee45..012a220 100644 --- a/sys/vm/default_pager.c +++ b/sys/vm/default_pager.c @@ -63,6 +63,16 @@ static boolean_t default_pager_haspage(vm_object_t, vm_pindex_t, int *, int *); /* * pagerops for OBJT_DEFAULT - "default pager". + * + * This pager handles anonymous (no handle) swap-backed memory, just + * like the swap pager. It allows several optimizations based on the + * fact that no pages of a default object can be swapped out. The + * most important optimization is in vm_fault(), where the pager is + * never asked for a non-resident page. Instead, a freshly allocated + * zeroed page is used. + * + * On the first request to page out a page from a default object, the + * object is converted to swap pager type. */ struct pagerops defaultpagerops = { .pgo_alloc = default_pager_alloc, diff --git a/sys/vm/phys_pager.c b/sys/vm/phys_pager.c index 885a451..861776d 100644 --- a/sys/vm/phys_pager.c +++ b/sys/vm/phys_pager.c @@ -56,9 +56,6 @@ phys_pager_init(void) mtx_init(&phys_pager_mtx, "phys_pager list", NULL, MTX_DEF); } -/* - * MPSAFE - */ static vm_object_t phys_pager_alloc(void *handle, vm_ooffset_t size, vm_prot_t prot, vm_ooffset_t foff, struct ucred *cred) @@ -101,8 +98,8 @@ phys_pager_alloc(void *handle, vm_ooffset_t size, vm_prot_t prot, object = object1; object1 = NULL; object->handle = handle; - TAILQ_INSERT_TAIL(&phys_pager_object_list, object, - pager_object_list); + TAILQ_INSERT_TAIL(&phys_pager_object_list, + object, pager_object_list); } } else { if (pindex > object->size) @@ -117,9 +114,6 @@ phys_pager_alloc(void *handle, vm_ooffset_t size, vm_prot_t prot, return (object); } -/* - * MPSAFE - */ static void phys_pager_dealloc(vm_object_t object) { @@ -167,7 +161,7 @@ phys_pager_getpages(vm_object_t object, vm_page_t *m, int count, int reqpage) static void phys_pager_putpages(vm_object_t object, vm_page_t *m, int count, boolean_t sync, - int *rtvals) + int *rtvals) { panic("phys_pager_putpage called"); @@ -185,7 +179,7 @@ phys_pager_putpages(vm_object_t object, vm_page_t *m, int count, boolean_t sync, #endif static boolean_t phys_pager_haspage(vm_object_t object, vm_pindex_t pindex, int *before, - int *after) + int *after) { vm_pindex_t base, end; diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c index 5a62114..99ff658 100644 --- a/sys/vm/swap_pager.c +++ b/sys/vm/swap_pager.c @@ -1997,30 +1997,30 @@ swp_pager_meta_free(vm_object_t object, vm_pindex_t index, daddr_t count) static void swp_pager_meta_free_all(vm_object_t object) { - daddr_t index = 0; + struct swblock **pswap, *swap; + vm_pindex_t index; + daddr_t v; + int i; VM_OBJECT_ASSERT_WLOCKED(object); if (object->type != OBJT_SWAP) return; - while (object->un_pager.swp.swp_bcount) { - struct swblock **pswap; - struct swblock *swap; - + index = 0; + while (object->un_pager.swp.swp_bcount != 0) { mtx_lock(&swhash_mtx); pswap = swp_pager_hash(object, index); if ((swap = *pswap) != NULL) { - int i; - for (i = 0; i < SWAP_META_PAGES; ++i) { - daddr_t v = swap->swb_pages[i]; + v = swap->swb_pages[i]; if (v != SWAPBLK_NONE) { --swap->swb_count; swp_pager_freeswapspace(v, 1); } } if (swap->swb_count != 0) - panic("swap_pager_meta_free_all: swb_count != 0"); + panic( + "swap_pager_meta_free_all: swb_count != 0"); *pswap = swap->swb_hnext; uma_zfree(swap_zone, swap); --object->un_pager.swp.swp_bcount; diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c index b3fd372..0152c1c 100644 --- a/sys/vm/vm_fault.c +++ b/sys/vm/vm_fault.c @@ -124,6 +124,7 @@ struct faultstate { vm_map_t map; vm_map_entry_t entry; int lookup_still_valid; + int map_generation; struct vnode *vp; }; @@ -336,7 +337,6 @@ vm_fault_hold(vm_map_t map, vm_offset_t vaddr, vm_prot_t fault_type, long ahead, behind; int alloc_req, era, faultcount, nera, reqpage, result; boolean_t dead, growstack, is_first_object_locked, wired; - int map_generation; vm_object_t next_object; vm_page_t marray[VM_FAULT_READ_MAX]; int hardfault; @@ -372,7 +372,7 @@ RetryFault:; return (result); } - map_generation = fs.map->timestamp; + fs.map_generation = fs.map->timestamp; if (fs.entry->eflags & MAP_ENTRY_NOFAULT) { panic("vm_fault: fault on nofault entry, addr: %lx", @@ -950,7 +950,7 @@ readrest: goto RetryFault; } fs.lookup_still_valid = TRUE; - if (fs.map->timestamp != map_generation) { + if (fs.map->timestamp != fs.map_generation) { result = vm_map_lookup_locked(&fs.map, vaddr, fault_type, &fs.entry, &retry_object, &retry_pindex, &retry_prot, &wired); diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c index 46e3089..750083f 100644 --- a/sys/vm/vm_map.c +++ b/sys/vm/vm_map.c @@ -1130,24 +1130,24 @@ vm_map_lookup_entry( */ int vm_map_insert(vm_map_t map, vm_object_t object, vm_ooffset_t offset, - vm_offset_t start, vm_offset_t end, vm_prot_t prot, vm_prot_t max, - int cow) + vm_offset_t start, vm_offset_t end, vm_prot_t prot, vm_prot_t max, int cow) { - vm_map_entry_t new_entry; - vm_map_entry_t prev_entry; - vm_map_entry_t temp_entry; - vm_eflags_t protoeflags; + vm_map_entry_t new_entry, prev_entry, temp_entry; struct ucred *cred; + vm_eflags_t protoeflags; vm_inherit_t inheritance; - boolean_t charge_prev_obj; VM_MAP_ASSERT_LOCKED(map); + KASSERT((object != kmem_object && object != kernel_object) || + (cow & MAP_COPY_ON_WRITE) == 0, + ("vm_map_insert: kmem or kernel object and COW")); + KASSERT(object == NULL || (cow & MAP_NOFAULT) == 0, + ("vm_map_insert: paradoxical MAP_NOFAULT request")); /* * Check that the start and end points are not bogus. */ - if ((start < map->min_offset) || (end > map->max_offset) || - (start >= end)) + if (start < map->min_offset || end > map->max_offset || start >= end) return (KERN_INVALID_ADDRESS); /* @@ -1162,26 +1162,22 @@ vm_map_insert(vm_map_t map, vm_object_t object, vm_ooffset_t offset, /* * Assert that the next entry doesn't overlap the end point. */ - if ((prev_entry->next != &map->header) && - (prev_entry->next->start < end)) + if (prev_entry->next != &map->header && prev_entry->next->start < end) return (KERN_NO_SPACE); protoeflags = 0; - charge_prev_obj = FALSE; - if (cow & MAP_COPY_ON_WRITE) - protoeflags |= MAP_ENTRY_COW|MAP_ENTRY_NEEDS_COPY; - - if (cow & MAP_NOFAULT) { + protoeflags |= MAP_ENTRY_COW | MAP_ENTRY_NEEDS_COPY; + if (cow & MAP_NOFAULT) protoeflags |= MAP_ENTRY_NOFAULT; - - KASSERT(object == NULL, - ("vm_map_insert: paradoxical MAP_NOFAULT request")); - } if (cow & MAP_DISABLE_SYNCER) protoeflags |= MAP_ENTRY_NOSYNC; if (cow & MAP_DISABLE_COREDUMP) protoeflags |= MAP_ENTRY_NOCOREDUMP; + if (cow & MAP_STACK_GROWS_DOWN) + protoeflags |= MAP_ENTRY_GROWS_DOWN; + if (cow & MAP_STACK_GROWS_UP) + protoeflags |= MAP_ENTRY_GROWS_UP; if (cow & MAP_VN_WRITECOUNT) protoeflags |= MAP_ENTRY_VN_WRITECNT; if (cow & MAP_INHERIT_SHARE) @@ -1190,23 +1186,17 @@ vm_map_insert(vm_map_t map, vm_object_t object, vm_ooffset_t offset, inheritance = VM_INHERIT_DEFAULT; cred = NULL; - KASSERT((object != kmem_object && object != kernel_object) || - ((object == kmem_object || object == kernel_object) && - !(protoeflags & MAP_ENTRY_NEEDS_COPY)), - ("kmem or kernel object and cow")); if (cow & (MAP_ACC_NO_CHARGE | MAP_NOFAULT)) goto charged; if ((cow & MAP_ACC_CHARGED) || ((prot & VM_PROT_WRITE) && ((protoeflags & MAP_ENTRY_NEEDS_COPY) || object == NULL))) { if (!(cow & MAP_ACC_CHARGED) && !swap_reserve(end - start)) return (KERN_RESOURCE_SHORTAGE); - KASSERT(object == NULL || (protoeflags & MAP_ENTRY_NEEDS_COPY) || + KASSERT(object == NULL || + (protoeflags & MAP_ENTRY_NEEDS_COPY) != 0 || object->cred == NULL, - ("OVERCOMMIT: vm_map_insert o %p", object)); + ("overcommit: vm_map_insert o %p", object)); cred = curthread->td_ucred; - crhold(cred); - if (object == NULL && !(protoeflags & MAP_ENTRY_NEEDS_COPY)) - charge_prev_obj = TRUE; } charged: @@ -1225,33 +1215,30 @@ charged: if (object->ref_count > 1 || object->shadow_count != 0) vm_object_clear_flag(object, OBJ_ONEMAPPING); VM_OBJECT_WUNLOCK(object); - } - else if ((prev_entry != &map->header) && - (prev_entry->eflags == protoeflags) && - (cow & (MAP_STACK_GROWS_DOWN | MAP_STACK_GROWS_UP)) == 0 && - (prev_entry->end == start) && - (prev_entry->wired_count == 0) && - (prev_entry->cred == cred || - (prev_entry->object.vm_object != NULL && - (prev_entry->object.vm_object->cred == cred))) && - vm_object_coalesce(prev_entry->object.vm_object, - prev_entry->offset, - (vm_size_t)(prev_entry->end - prev_entry->start), - (vm_size_t)(end - prev_entry->end), charge_prev_obj)) { + } else if (prev_entry != &map->header && + prev_entry->eflags == protoeflags && + (cow & (MAP_STACK_GROWS_DOWN | MAP_STACK_GROWS_UP)) == 0 && + prev_entry->end == start && prev_entry->wired_count == 0 && + (prev_entry->cred == cred || + (prev_entry->object.vm_object != NULL && + prev_entry->object.vm_object->cred == cred)) && + vm_object_coalesce(prev_entry->object.vm_object, + prev_entry->offset, + (vm_size_t)(prev_entry->end - prev_entry->start), + (vm_size_t)(end - prev_entry->end), cred != NULL && + (protoeflags & MAP_ENTRY_NEEDS_COPY) == 0)) { /* * We were able to extend the object. Determine if we * can extend the previous map entry to include the * new range as well. */ - if ((prev_entry->inheritance == inheritance) && - (prev_entry->protection == prot) && - (prev_entry->max_protection == max)) { - map->size += (end - prev_entry->end); + if (prev_entry->inheritance == inheritance && + prev_entry->protection == prot && + prev_entry->max_protection == max) { + map->size += end - prev_entry->end; prev_entry->end = end; vm_map_entry_resize_free(map, prev_entry); vm_map_simplify_entry(map, prev_entry); - if (cred != NULL) - crfree(cred); return (KERN_SUCCESS); } @@ -1263,21 +1250,16 @@ charged: */ object = prev_entry->object.vm_object; offset = prev_entry->offset + - (prev_entry->end - prev_entry->start); + (prev_entry->end - prev_entry->start); vm_object_reference(object); if (cred != NULL && object != NULL && object->cred != NULL && !(prev_entry->eflags & MAP_ENTRY_NEEDS_COPY)) { /* Object already accounts for this uid. */ - crfree(cred); cred = NULL; } } - - /* - * NOTE: if conditionals fail, object can be NULL here. This occurs - * in things like the buffer map where we manage kva but do not manage - * backing objects. - */ + if (cred != NULL) + crhold(cred); /* * Create a new entry @@ -1301,7 +1283,7 @@ charged: new_entry->next_read = OFF_TO_IDX(offset); KASSERT(cred == NULL || !ENTRY_CHARGED(new_entry), - ("OVERCOMMIT: vm_map_insert leaks vm_map %p", new_entry)); + ("overcommit: vm_map_insert leaks vm_map %p", new_entry)); new_entry->cred = cred; /* @@ -1311,17 +1293,16 @@ charged: map->size += new_entry->end - new_entry->start; /* - * It may be possible to merge the new entry with the next and/or - * previous entries. However, due to MAP_STACK_* being a hack, a - * panic can result from merging such entries. + * Try to coalesce the new entry with both the previous and next + * entries in the list. Previously, we only attempted to coalesce + * with the previous entry when object is NULL. Here, we handle the + * other cases, which are less common. */ - if ((cow & (MAP_STACK_GROWS_DOWN | MAP_STACK_GROWS_UP)) == 0) - vm_map_simplify_entry(map, new_entry); + vm_map_simplify_entry(map, new_entry); - if (cow & (MAP_PREFAULT|MAP_PREFAULT_PARTIAL)) { - vm_map_pmap_enter(map, start, prot, - object, OFF_TO_IDX(offset), end - start, - cow & MAP_PREFAULT_PARTIAL); + if ((cow & (MAP_PREFAULT | MAP_PREFAULT_PARTIAL)) != 0) { + vm_map_pmap_enter(map, start, prot, object, OFF_TO_IDX(offset), + end - start, cow & MAP_PREFAULT_PARTIAL); } return (KERN_SUCCESS); @@ -1531,7 +1512,8 @@ vm_map_simplify_entry(vm_map_t map, vm_map_entry_t entry) vm_map_entry_t next, prev; vm_size_t prevsize, esize; - if (entry->eflags & (MAP_ENTRY_IN_TRANSITION | MAP_ENTRY_IS_SUB_MAP)) + if ((entry->eflags & (MAP_ENTRY_GROWS_DOWN | MAP_ENTRY_GROWS_UP | + MAP_ENTRY_IN_TRANSITION | MAP_ENTRY_IS_SUB_MAP)) != 0) return; prev = entry->prev; @@ -2896,8 +2878,8 @@ vm_map_entry_delete(vm_map_t map, vm_map_entry_t entry) offidxstart = OFF_TO_IDX(entry->offset); offidxend = offidxstart + count; VM_OBJECT_WLOCK(object); - if (object->ref_count != 1 && - ((object->flags & (OBJ_NOSPLIT|OBJ_ONEMAPPING)) == OBJ_ONEMAPPING || + if (object->ref_count != 1 && ((object->flags & (OBJ_NOSPLIT | + OBJ_ONEMAPPING)) == OBJ_ONEMAPPING || object == kernel_object || object == kmem_object)) { vm_object_collapse(object); @@ -2910,7 +2892,8 @@ vm_map_entry_delete(vm_map_t map, vm_map_entry_t entry) vm_object_page_remove(object, offidxstart, offidxend, OBJPR_NOTMAPPED); if (object->type == OBJT_SWAP) - swap_pager_freespace(object, offidxstart, count); + swap_pager_freespace(object, offidxstart, + count); if (offidxend >= object->size && offidxstart < object->size) { size1 = object->size; @@ -2918,8 +2901,9 @@ vm_map_entry_delete(vm_map_t map, vm_map_entry_t entry) if (object->cred != NULL) { size1 -= object->size; KASSERT(object->charge >= ptoa(size1), - ("vm_map_entry_delete: object->charge < 0")); - swap_release_by_cred(ptoa(size1), object->cred); + ("object %p charge < 0", object)); + swap_release_by_cred(ptoa(size1), + object->cred); object->charge -= ptoa(size1); } } @@ -3137,13 +3121,15 @@ vm_map_copy_entry( if ((src_object = src_entry->object.vm_object) != NULL) { VM_OBJECT_WLOCK(src_object); charged = ENTRY_CHARGED(src_entry); - if ((src_object->handle == NULL) && - (src_object->type == OBJT_DEFAULT || - src_object->type == OBJT_SWAP)) { + if (src_object->handle == NULL && + (src_object->type == OBJT_DEFAULT || + src_object->type == OBJT_SWAP)) { vm_object_collapse(src_object); - if ((src_object->flags & (OBJ_NOSPLIT|OBJ_ONEMAPPING)) == OBJ_ONEMAPPING) { + if ((src_object->flags & (OBJ_NOSPLIT | + OBJ_ONEMAPPING)) == OBJ_ONEMAPPING) { vm_object_split(src_entry); - src_object = src_entry->object.vm_object; + src_object = + src_entry->object.vm_object; } } vm_object_reference_locked(src_object); @@ -3170,8 +3156,10 @@ vm_map_copy_entry( *fork_charge += size; } } - src_entry->eflags |= (MAP_ENTRY_COW|MAP_ENTRY_NEEDS_COPY); - dst_entry->eflags |= (MAP_ENTRY_COW|MAP_ENTRY_NEEDS_COPY); + src_entry->eflags |= MAP_ENTRY_COW | + MAP_ENTRY_NEEDS_COPY; + dst_entry->eflags |= MAP_ENTRY_COW | + MAP_ENTRY_NEEDS_COPY; dst_entry->offset = src_entry->offset; if (src_entry->eflags & MAP_ENTRY_VN_WRITECNT) { /* @@ -3521,17 +3509,17 @@ vm_map_stack_locked(vm_map_t map, vm_offset_t addrbos, vm_size_t max_ssize, /* Now set the avail_ssize amount. */ if (rv == KERN_SUCCESS) { - if (prev_entry != &map->header) - vm_map_clip_end(map, prev_entry, bot); new_entry = prev_entry->next; if (new_entry->end != top || new_entry->start != bot) panic("Bad entry start/end for new stack entry"); new_entry->avail_ssize = max_ssize - init_ssize; - if (orient & MAP_STACK_GROWS_DOWN) - new_entry->eflags |= MAP_ENTRY_GROWS_DOWN; - if (orient & MAP_STACK_GROWS_UP) - new_entry->eflags |= MAP_ENTRY_GROWS_UP; + KASSERT((orient & MAP_STACK_GROWS_DOWN) == 0 || + (new_entry->eflags & MAP_ENTRY_GROWS_DOWN) != 0, + ("new entry lacks MAP_ENTRY_GROWS_DOWN")); + KASSERT((orient & MAP_STACK_GROWS_UP) == 0 || + (new_entry->eflags & MAP_ENTRY_GROWS_UP) != 0, + ("new entry lacks MAP_ENTRY_GROWS_UP")); } return (rv); @@ -3758,21 +3746,21 @@ Retry: } rv = vm_map_insert(map, NULL, 0, addr, stack_entry->start, - next_entry->protection, next_entry->max_protection, 0); + next_entry->protection, next_entry->max_protection, + MAP_STACK_GROWS_DOWN); /* Adjust the available stack space by the amount we grew. */ if (rv == KERN_SUCCESS) { - if (prev_entry != &map->header) - vm_map_clip_end(map, prev_entry, addr); new_entry = prev_entry->next; KASSERT(new_entry == stack_entry->prev, ("foo")); KASSERT(new_entry->end == stack_entry->start, ("foo")); KASSERT(new_entry->start == addr, ("foo")); + KASSERT((new_entry->eflags & MAP_ENTRY_GROWS_DOWN) != + 0, ("new entry lacks MAP_ENTRY_GROWS_DOWN")); grow_amount = new_entry->end - new_entry->start; new_entry->avail_ssize = stack_entry->avail_ssize - grow_amount; stack_entry->eflags &= ~MAP_ENTRY_GROWS_DOWN; - new_entry->eflags |= MAP_ENTRY_GROWS_DOWN; } } else { /* @@ -3799,10 +3787,10 @@ Retry: rv = KERN_NO_SPACE; /* Grow the underlying object if applicable. */ else if (stack_entry->object.vm_object == NULL || - vm_object_coalesce(stack_entry->object.vm_object, - stack_entry->offset, - (vm_size_t)(stack_entry->end - stack_entry->start), - (vm_size_t)grow_amount, cred != NULL)) { + vm_object_coalesce(stack_entry->object.vm_object, + stack_entry->offset, + (vm_size_t)(stack_entry->end - stack_entry->start), + (vm_size_t)grow_amount, cred != NULL)) { map->size += (addr - stack_entry->end); /* Update the current entry. */ stack_entry->end = addr; diff --git a/sys/vm/vm_meter.c b/sys/vm/vm_meter.c index 3f8ba38..c60c1fa 100644 --- a/sys/vm/vm_meter.c +++ b/sys/vm/vm_meter.c @@ -123,15 +123,10 @@ vmtotal(SYSCTL_HANDLER_ARGS) */ sx_slock(&allproc_lock); FOREACH_PROC_IN_SYSTEM(p) { - if (p->p_flag & P_SYSTEM) + if ((p->p_flag & P_SYSTEM) != 0) continue; PROC_LOCK(p); - switch (p->p_state) { - case PRS_NEW: - PROC_UNLOCK(p); - continue; - break; - default: + if (p->p_state != PRS_NEW) { FOREACH_THREAD_IN_PROC(p, td) { thread_lock(td); switch (td->td_state) { @@ -148,15 +143,13 @@ vmtotal(SYSCTL_HANDLER_ARGS) total.t_pw++; } break; - case TDS_CAN_RUN: total.t_sw++; break; case TDS_RUNQ: case TDS_RUNNING: total.t_rq++; - thread_unlock(td); - continue; + break; default: break; } diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c index b688b56..106557c 100644 --- a/sys/vm/vm_page.c +++ b/sys/vm/vm_page.c @@ -1175,9 +1175,11 @@ vm_page_next(vm_page_t m) vm_page_t next; VM_OBJECT_ASSERT_WLOCKED(m->object); - if ((next = TAILQ_NEXT(m, listq)) != NULL && - next->pindex != m->pindex + 1) - next = NULL; + if ((next = TAILQ_NEXT(m, listq)) != NULL) { + MPASS(next->object == m->object); + if (next->pindex != m->pindex + 1) + next = NULL; + } return (next); } @@ -1193,9 +1195,11 @@ vm_page_prev(vm_page_t m) vm_page_t prev; VM_OBJECT_ASSERT_WLOCKED(m->object); - if ((prev = TAILQ_PREV(m, pglist, listq)) != NULL && - prev->pindex != m->pindex - 1) - prev = NULL; + if ((prev = TAILQ_PREV(m, pglist, listq)) != NULL) { + MPASS(prev->object == m->object); + if (prev->pindex != m->pindex - 1) + prev = NULL; + } return (prev); } diff --git a/sys/vm/vm_pager.c b/sys/vm/vm_pager.c index c7d038b..6eb34d9 100644 --- a/sys/vm/vm_pager.c +++ b/sys/vm/vm_pager.c @@ -107,43 +107,35 @@ static vm_object_t dead_pager_alloc(void *handle, vm_ooffset_t size, vm_prot_t prot, vm_ooffset_t off, struct ucred *cred) { - return NULL; + + return (NULL); } static void -dead_pager_putpages(object, m, count, flags, rtvals) - vm_object_t object; - vm_page_t *m; - int count; - int flags; - int *rtvals; +dead_pager_putpages(vm_object_t object, vm_page_t *m, int count, + int flags, int *rtvals) { int i; - for (i = 0; i < count; i++) { + for (i = 0; i < count; i++) rtvals[i] = VM_PAGER_AGAIN; - } } static int -dead_pager_haspage(object, pindex, prev, next) - vm_object_t object; - vm_pindex_t pindex; - int *prev; - int *next; +dead_pager_haspage(vm_object_t object, vm_pindex_t pindex, int *prev, int *next) { - if (prev) + + if (prev != NULL) *prev = 0; - if (next) + if (next != NULL) *next = 0; - return FALSE; + return (FALSE); } static void -dead_pager_dealloc(object) - vm_object_t object; +dead_pager_dealloc(vm_object_t object) { - return; + } static struct pagerops deadpagerops = { @@ -181,7 +173,7 @@ static int bswneeded; vm_offset_t swapbkva; /* swap buffers kva */ void -vm_pager_init() +vm_pager_init(void) { struct pagerops **pgops; @@ -191,11 +183,11 @@ vm_pager_init() */ for (pgops = pagertab; pgops < &pagertab[npagers]; pgops++) if ((*pgops)->pgo_init != NULL) - (*(*pgops)->pgo_init) (); + (*(*pgops)->pgo_init)(); } void -vm_pager_bufferinit() +vm_pager_bufferinit(void) { struct buf *bp; int i; @@ -231,7 +223,7 @@ vm_pager_allocate(objtype_t type, void *handle, vm_ooffset_t size, ops = pagertab[type]; if (ops) - ret = (*ops->pgo_alloc) (handle, size, prot, off, cred); + ret = (*ops->pgo_alloc)(handle, size, prot, off, cred); else ret = NULL; return (ret); @@ -241,8 +233,7 @@ vm_pager_allocate(objtype_t type, void *handle, vm_ooffset_t size, * The object must be locked. */ void -vm_pager_deallocate(object) - vm_object_t object; +vm_pager_deallocate(vm_object_t object) { VM_OBJECT_ASSERT_WLOCKED(object); @@ -291,12 +282,13 @@ vm_pager_object_lookup(struct pagerlst *pg_list, void *handle) static void initpbuf(struct buf *bp) { + KASSERT(bp->b_bufobj == NULL, ("initpbuf with bufobj")); KASSERT(bp->b_vp == NULL, ("initpbuf with vp")); bp->b_rcred = NOCRED; bp->b_wcred = NOCRED; bp->b_qindex = 0; /* On no queue (QUEUE_NONE) */ - bp->b_saveaddr = (caddr_t) (MAXPHYS * (bp - swbuf)) + swapbkva; + bp->b_saveaddr = (caddr_t)(MAXPHYS * (bp - swbuf)) + swapbkva; bp->b_data = bp->b_saveaddr; bp->b_kvabase = bp->b_saveaddr; bp->b_kvasize = MAXPHYS; @@ -329,9 +321,8 @@ getpbuf(int *pfreecnt) struct buf *bp; mtx_lock(&pbuf_mtx); - for (;;) { - if (pfreecnt) { + if (pfreecnt != NULL) { while (*pfreecnt == 0) { msleep(pfreecnt, &pbuf_mtx, PVM, "wswbuf0", 0); } @@ -349,9 +340,8 @@ getpbuf(int *pfreecnt) if (pfreecnt) --*pfreecnt; mtx_unlock(&pbuf_mtx); - initpbuf(bp); - return bp; + return (bp); } /* @@ -371,14 +361,10 @@ trypbuf(int *pfreecnt) return NULL; } TAILQ_REMOVE(&bswlist, bp, b_freelist); - --*pfreecnt; - mtx_unlock(&pbuf_mtx); - initpbuf(bp); - - return bp; + return (bp); } /* diff --git a/tests/sys/kern/Makefile b/tests/sys/kern/Makefile index 53e905a..949c8a2 100644 --- a/tests/sys/kern/Makefile +++ b/tests/sys/kern/Makefile @@ -8,6 +8,7 @@ TESTSDIR= ${TESTSBASE}/sys/kern ATF_TESTS_C+= kern_descrip_test ATF_TESTS_C+= ptrace_test +ATF_TESTS_C+= reaper ATF_TESTS_C+= unix_seqpacket_test ATF_TESTS_C+= unix_passfd_test TEST_METADATA.unix_seqpacket_test+= timeout="15" diff --git a/tests/sys/kern/reaper.c b/tests/sys/kern/reaper.c new file mode 100644 index 0000000..d11ee70 --- /dev/null +++ b/tests/sys/kern/reaper.c @@ -0,0 +1,656 @@ +/*- + * Copyright (c) 2016 Jilles Tjoelker + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + +#include <sys/procctl.h> +#include <sys/wait.h> + +#include <atf-c.h> +#include <errno.h> +#include <signal.h> +#include <unistd.h> + +static void +dummy_sighandler(int sig __unused, siginfo_t *info __unused, void *ctx __unused) +{ +} + +ATF_TC_WITHOUT_HEAD(reaper_wait_child_first); +ATF_TC_BODY(reaper_wait_child_first, tc) +{ + pid_t parent, child, grandchild, pid; + int status, r; + int pip[2]; + + /* Be paranoid. */ + pid = waitpid(-1, NULL, WNOHANG); + ATF_REQUIRE(pid == -1 && errno == ECHILD); + + parent = getpid(); + r = procctl(P_PID, parent, PROC_REAP_ACQUIRE, NULL); + ATF_REQUIRE_EQ(0, r); + + r = pipe(pip); + ATF_REQUIRE_EQ(0, r); + + child = fork(); + ATF_REQUIRE(child != -1); + if (child == 0) { + if (close(pip[1]) != 0) + _exit(100); + grandchild = fork(); + if (grandchild == -1) + _exit(101); + else if (grandchild == 0) { + if (read(pip[0], &(uint8_t){ 0 }, 1) != 0) + _exit(102); + if (getppid() != parent) + _exit(103); + _exit(2); + } else + _exit(3); + } + + pid = waitpid(child, &status, 0); + ATF_REQUIRE_EQ(child, pid); + r = WIFEXITED(status) ? WEXITSTATUS(status) : -1; + ATF_CHECK_EQ(3, r); + + r = close(pip[1]); + ATF_REQUIRE_EQ(0, r); + + pid = waitpid(-1, &status, 0); + ATF_REQUIRE(pid > 0 && pid != child); + r = WIFEXITED(status) ? WEXITSTATUS(status) : -1; + ATF_CHECK_EQ(2, r); + + r = close(pip[0]); + ATF_REQUIRE_EQ(0, r); +} + +ATF_TC_WITHOUT_HEAD(reaper_wait_grandchild_first); +ATF_TC_BODY(reaper_wait_grandchild_first, tc) +{ + pid_t parent, child, grandchild, pid; + int status, r; + + /* Be paranoid. */ + pid = waitpid(-1, NULL, WNOHANG); + ATF_REQUIRE(pid == -1 && errno == ECHILD); + + parent = getpid(); + r = procctl(P_PID, parent, PROC_REAP_ACQUIRE, NULL); + ATF_REQUIRE_EQ(0, r); + + child = fork(); + ATF_REQUIRE(child != -1); + if (child == 0) { + grandchild = fork(); + if (grandchild == -1) + _exit(101); + else if (grandchild == 0) + _exit(2); + else { + if (waitid(P_PID, grandchild, NULL, + WNOWAIT | WEXITED) != 0) + _exit(102); + _exit(3); + } + } + + pid = waitpid(child, &status, 0); + ATF_REQUIRE_EQ(child, pid); + r = WIFEXITED(status) ? WEXITSTATUS(status) : -1; + ATF_CHECK_EQ(3, r); + + pid = waitpid(-1, &status, 0); + ATF_REQUIRE(pid > 0 && pid != child); + r = WIFEXITED(status) ? WEXITSTATUS(status) : -1; + ATF_CHECK_EQ(2, r); +} + +ATF_TC(reaper_sigchld_child_first); +ATF_TC_HEAD(reaper_sigchld_child_first, tc) +{ + atf_tc_set_md_var(tc, "timeout", "2"); +} +ATF_TC_BODY(reaper_sigchld_child_first, tc) +{ + struct sigaction act; + sigset_t mask; + siginfo_t info; + pid_t parent, child, grandchild, pid; + int r; + int pip[2]; + + /* Be paranoid. */ + pid = waitpid(-1, NULL, WNOHANG); + ATF_REQUIRE(pid == -1 && errno == ECHILD); + + act.sa_sigaction = dummy_sighandler; + act.sa_flags = SA_SIGINFO | SA_RESTART; + r = sigemptyset(&act.sa_mask); + ATF_REQUIRE_EQ(0, r); + r = sigaction(SIGCHLD, &act, NULL); + ATF_REQUIRE_EQ(0, r); + + r = sigemptyset(&mask); + ATF_REQUIRE_EQ(0, r); + r = sigaddset(&mask, SIGCHLD); + ATF_REQUIRE_EQ(0, r); + r = sigprocmask(SIG_BLOCK, &mask, NULL); + ATF_REQUIRE_EQ(0, r); + + parent = getpid(); + r = procctl(P_PID, parent, PROC_REAP_ACQUIRE, NULL); + ATF_REQUIRE_EQ(0, r); + + r = pipe(pip); + ATF_REQUIRE_EQ(0, r); + + child = fork(); + ATF_REQUIRE(child != -1); + if (child == 0) { + if (close(pip[1]) != 0) + _exit(100); + grandchild = fork(); + if (grandchild == -1) + _exit(101); + else if (grandchild == 0) { + if (read(pip[0], &(uint8_t){ 0 }, 1) != 0) + _exit(102); + if (getppid() != parent) + _exit(103); + _exit(2); + } else + _exit(3); + } + + r = sigwaitinfo(&mask, &info); + ATF_REQUIRE_EQ(SIGCHLD, r); + ATF_CHECK_EQ(SIGCHLD, info.si_signo); + ATF_CHECK_EQ(CLD_EXITED, info.si_code); + ATF_CHECK_EQ(3, info.si_status); + ATF_CHECK_EQ(child, info.si_pid); + + pid = waitpid(child, NULL, 0); + ATF_REQUIRE_EQ(child, pid); + + r = close(pip[1]); + ATF_REQUIRE_EQ(0, r); + + r = sigwaitinfo(&mask, &info); + ATF_REQUIRE_EQ(SIGCHLD, r); + ATF_CHECK_EQ(SIGCHLD, info.si_signo); + ATF_CHECK_EQ(CLD_EXITED, info.si_code); + ATF_CHECK_EQ(2, info.si_status); + grandchild = info.si_pid; + ATF_REQUIRE(grandchild > 0); + ATF_REQUIRE(grandchild != parent); + ATF_REQUIRE(grandchild != child); + + pid = waitpid(-1, NULL, 0); + ATF_REQUIRE_EQ(grandchild, pid); + + r = close(pip[0]); + ATF_REQUIRE_EQ(0, r); +} + +ATF_TC(reaper_sigchld_grandchild_first); +ATF_TC_HEAD(reaper_sigchld_grandchild_first, tc) +{ + atf_tc_set_md_var(tc, "timeout", "2"); +} +ATF_TC_BODY(reaper_sigchld_grandchild_first, tc) +{ + struct sigaction act; + sigset_t mask; + siginfo_t info; + pid_t parent, child, grandchild, pid; + int r; + + /* Be paranoid. */ + pid = waitpid(-1, NULL, WNOHANG); + ATF_REQUIRE(pid == -1 && errno == ECHILD); + + act.sa_sigaction = dummy_sighandler; + act.sa_flags = SA_SIGINFO | SA_RESTART; + r = sigemptyset(&act.sa_mask); + ATF_REQUIRE_EQ(0, r); + r = sigaction(SIGCHLD, &act, NULL); + ATF_REQUIRE_EQ(0, r); + + r = sigemptyset(&mask); + ATF_REQUIRE_EQ(0, r); + r = sigaddset(&mask, SIGCHLD); + ATF_REQUIRE_EQ(0, r); + r = sigprocmask(SIG_BLOCK, &mask, NULL); + ATF_REQUIRE_EQ(0, r); + + parent = getpid(); + r = procctl(P_PID, parent, PROC_REAP_ACQUIRE, NULL); + ATF_REQUIRE_EQ(0, r); + + child = fork(); + ATF_REQUIRE(child != -1); + if (child == 0) { + grandchild = fork(); + if (grandchild == -1) + _exit(101); + else if (grandchild == 0) + _exit(2); + else { + if (waitid(P_PID, grandchild, NULL, + WNOWAIT | WEXITED) != 0) + _exit(102); + _exit(3); + } + } + + pid = waitpid(child, NULL, 0); + ATF_REQUIRE_EQ(child, pid); + + r = sigwaitinfo(&mask, &info); + ATF_REQUIRE_EQ(SIGCHLD, r); + ATF_CHECK_EQ(SIGCHLD, info.si_signo); + ATF_CHECK_EQ(CLD_EXITED, info.si_code); + ATF_CHECK_EQ(2, info.si_status); + grandchild = info.si_pid; + ATF_REQUIRE(grandchild > 0); + ATF_REQUIRE(grandchild != parent); + ATF_REQUIRE(grandchild != child); + + pid = waitpid(-1, NULL, 0); + ATF_REQUIRE_EQ(grandchild, pid); +} + +ATF_TC_WITHOUT_HEAD(reaper_status); +ATF_TC_BODY(reaper_status, tc) +{ + struct procctl_reaper_status st; + ssize_t sr; + pid_t parent, child, pid; + int r, status; + int pip[2]; + + parent = getpid(); + r = procctl(P_PID, parent, PROC_REAP_STATUS, &st); + ATF_REQUIRE_EQ(0, r); + ATF_CHECK_EQ(0, st.rs_flags & REAPER_STATUS_OWNED); + ATF_CHECK(st.rs_children > 0); + ATF_CHECK(st.rs_descendants > 0); + ATF_CHECK(st.rs_descendants >= st.rs_children); + ATF_CHECK(st.rs_reaper != parent); + ATF_CHECK(st.rs_reaper > 0); + + r = procctl(P_PID, parent, PROC_REAP_ACQUIRE, NULL); + ATF_REQUIRE_EQ(0, r); + + r = procctl(P_PID, parent, PROC_REAP_STATUS, &st); + ATF_REQUIRE_EQ(0, r); + ATF_CHECK_EQ(REAPER_STATUS_OWNED, + st.rs_flags & (REAPER_STATUS_OWNED | REAPER_STATUS_REALINIT)); + ATF_CHECK_EQ(0, st.rs_children); + ATF_CHECK_EQ(0, st.rs_descendants); + ATF_CHECK(st.rs_reaper == parent); + ATF_CHECK_EQ(-1, st.rs_pid); + + r = pipe(pip); + ATF_REQUIRE_EQ(0, r); + child = fork(); + ATF_REQUIRE(child != -1); + if (child == 0) { + if (close(pip[0]) != 0) + _exit(100); + if (procctl(P_PID, parent, PROC_REAP_STATUS, &st) != 0) + _exit(101); + if (write(pip[1], &st, sizeof(st)) != (ssize_t)sizeof(st)) + _exit(102); + if (procctl(P_PID, getpid(), PROC_REAP_STATUS, &st) != 0) + _exit(103); + if (write(pip[1], &st, sizeof(st)) != (ssize_t)sizeof(st)) + _exit(104); + _exit(0); + } + r = close(pip[1]); + ATF_REQUIRE_EQ(0, r); + + sr = read(pip[0], &st, sizeof(st)); + ATF_REQUIRE_EQ((ssize_t)sizeof(st), sr); + ATF_CHECK_EQ(REAPER_STATUS_OWNED, + st.rs_flags & (REAPER_STATUS_OWNED | REAPER_STATUS_REALINIT)); + ATF_CHECK_EQ(1, st.rs_children); + ATF_CHECK_EQ(1, st.rs_descendants); + ATF_CHECK(st.rs_reaper == parent); + ATF_CHECK_EQ(child, st.rs_pid); + sr = read(pip[0], &st, sizeof(st)); + ATF_REQUIRE_EQ((ssize_t)sizeof(st), sr); + ATF_CHECK_EQ(0, + st.rs_flags & (REAPER_STATUS_OWNED | REAPER_STATUS_REALINIT)); + ATF_CHECK_EQ(1, st.rs_children); + ATF_CHECK_EQ(1, st.rs_descendants); + ATF_CHECK(st.rs_reaper == parent); + ATF_CHECK_EQ(child, st.rs_pid); + + r = close(pip[0]); + ATF_REQUIRE_EQ(0, r); + pid = waitpid(child, &status, 0); + ATF_REQUIRE_EQ(child, pid); + ATF_CHECK_EQ(0, status); + + r = procctl(P_PID, parent, PROC_REAP_STATUS, &st); + ATF_REQUIRE_EQ(0, r); + ATF_CHECK_EQ(REAPER_STATUS_OWNED, + st.rs_flags & (REAPER_STATUS_OWNED | REAPER_STATUS_REALINIT)); + ATF_CHECK_EQ(0, st.rs_children); + ATF_CHECK_EQ(0, st.rs_descendants); + ATF_CHECK(st.rs_reaper == parent); + ATF_CHECK_EQ(-1, st.rs_pid); +} + +ATF_TC_WITHOUT_HEAD(reaper_getpids); +ATF_TC_BODY(reaper_getpids, tc) +{ + struct procctl_reaper_pidinfo info[10]; + ssize_t sr; + pid_t parent, child, grandchild, pid; + int r, status, childidx; + int pipa[2], pipb[2]; + + parent = getpid(); + r = procctl(P_PID, parent, PROC_REAP_ACQUIRE, NULL); + ATF_REQUIRE_EQ(0, r); + + memset(info, '\0', sizeof(info)); + r = procctl(P_PID, parent, PROC_REAP_GETPIDS, + &(struct procctl_reaper_pids){ + .rp_count = sizeof(info) / sizeof(info[0]), + .rp_pids = info + }); + ATF_CHECK_EQ(0, r); + ATF_CHECK_EQ(0, info[0].pi_flags & REAPER_PIDINFO_VALID); + + r = pipe(pipa); + ATF_REQUIRE_EQ(0, r); + r = pipe(pipb); + ATF_REQUIRE_EQ(0, r); + child = fork(); + ATF_REQUIRE(child != -1); + if (child == 0) { + if (close(pipa[1]) != 0) + _exit(100); + if (close(pipb[0]) != 0) + _exit(100); + if (read(pipa[0], &(uint8_t){ 0 }, 1) != 1) + _exit(101); + grandchild = fork(); + if (grandchild == -1) + _exit(102); + if (grandchild == 0) { + if (write(pipb[1], &(uint8_t){ 0 }, 1) != 1) + _exit(103); + if (read(pipa[0], &(uint8_t){ 0 }, 1) != 1) + _exit(104); + _exit(0); + } + for (;;) + pause(); + } + r = close(pipa[0]); + ATF_REQUIRE_EQ(0, r); + r = close(pipb[1]); + ATF_REQUIRE_EQ(0, r); + + memset(info, '\0', sizeof(info)); + r = procctl(P_PID, parent, PROC_REAP_GETPIDS, + &(struct procctl_reaper_pids){ + .rp_count = sizeof(info) / sizeof(info[0]), + .rp_pids = info + }); + ATF_CHECK_EQ(0, r); + ATF_CHECK_EQ(REAPER_PIDINFO_VALID | REAPER_PIDINFO_CHILD, + info[0].pi_flags & (REAPER_PIDINFO_VALID | REAPER_PIDINFO_CHILD)); + ATF_CHECK_EQ(child, info[0].pi_pid); + ATF_CHECK_EQ(child, info[0].pi_subtree); + ATF_CHECK_EQ(0, info[1].pi_flags & REAPER_PIDINFO_VALID); + + sr = write(pipa[1], &(uint8_t){ 0 }, 1); + ATF_REQUIRE_EQ(1, sr); + sr = read(pipb[0], &(uint8_t){ 0 }, 1); + ATF_REQUIRE_EQ(1, sr); + + memset(info, '\0', sizeof(info)); + r = procctl(P_PID, parent, PROC_REAP_GETPIDS, + &(struct procctl_reaper_pids){ + .rp_count = sizeof(info) / sizeof(info[0]), + .rp_pids = info + }); + ATF_CHECK_EQ(0, r); + ATF_CHECK_EQ(REAPER_PIDINFO_VALID, + info[0].pi_flags & REAPER_PIDINFO_VALID); + ATF_CHECK_EQ(REAPER_PIDINFO_VALID, + info[1].pi_flags & REAPER_PIDINFO_VALID); + ATF_CHECK_EQ(0, info[2].pi_flags & REAPER_PIDINFO_VALID); + ATF_CHECK_EQ(child, info[0].pi_subtree); + ATF_CHECK_EQ(child, info[1].pi_subtree); + childidx = info[1].pi_pid == child ? 1 : 0; + ATF_CHECK_EQ(REAPER_PIDINFO_CHILD, + info[childidx].pi_flags & REAPER_PIDINFO_CHILD); + ATF_CHECK_EQ(0, info[childidx ^ 1].pi_flags & REAPER_PIDINFO_CHILD); + ATF_CHECK(info[childidx].pi_pid == child); + grandchild = info[childidx ^ 1].pi_pid; + ATF_CHECK(grandchild > 0); + ATF_CHECK(grandchild != child); + ATF_CHECK(grandchild != parent); + + r = kill(child, SIGTERM); + ATF_REQUIRE_EQ(0, r); + + pid = waitpid(child, &status, 0); + ATF_REQUIRE_EQ(child, pid); + ATF_CHECK(WIFSIGNALED(status) && WTERMSIG(status) == SIGTERM); + + memset(info, '\0', sizeof(info)); + r = procctl(P_PID, parent, PROC_REAP_GETPIDS, + &(struct procctl_reaper_pids){ + .rp_count = sizeof(info) / sizeof(info[0]), + .rp_pids = info + }); + ATF_CHECK_EQ(0, r); + ATF_CHECK_EQ(REAPER_PIDINFO_VALID, + info[0].pi_flags & REAPER_PIDINFO_VALID); + ATF_CHECK_EQ(0, info[1].pi_flags & REAPER_PIDINFO_VALID); + ATF_CHECK_EQ(child, info[0].pi_subtree); + ATF_CHECK_EQ(REAPER_PIDINFO_CHILD, + info[0].pi_flags & REAPER_PIDINFO_CHILD); + ATF_CHECK_EQ(grandchild, info[0].pi_pid); + + sr = write(pipa[1], &(uint8_t){ 0 }, 1); + ATF_REQUIRE_EQ(1, sr); + + memset(info, '\0', sizeof(info)); + r = procctl(P_PID, parent, PROC_REAP_GETPIDS, + &(struct procctl_reaper_pids){ + .rp_count = sizeof(info) / sizeof(info[0]), + .rp_pids = info + }); + ATF_CHECK_EQ(0, r); + ATF_CHECK_EQ(REAPER_PIDINFO_VALID, + info[0].pi_flags & REAPER_PIDINFO_VALID); + ATF_CHECK_EQ(0, info[1].pi_flags & REAPER_PIDINFO_VALID); + ATF_CHECK_EQ(child, info[0].pi_subtree); + ATF_CHECK_EQ(REAPER_PIDINFO_CHILD, + info[0].pi_flags & REAPER_PIDINFO_CHILD); + ATF_CHECK_EQ(grandchild, info[0].pi_pid); + + pid = waitpid(grandchild, &status, 0); + ATF_REQUIRE_EQ(grandchild, pid); + ATF_CHECK_EQ(0, status); + + memset(info, '\0', sizeof(info)); + r = procctl(P_PID, parent, PROC_REAP_GETPIDS, + &(struct procctl_reaper_pids){ + .rp_count = sizeof(info) / sizeof(info[0]), + .rp_pids = info + }); + ATF_CHECK_EQ(0, r); + ATF_CHECK_EQ(0, info[0].pi_flags & REAPER_PIDINFO_VALID); + + r = close(pipa[1]); + ATF_REQUIRE_EQ(0, r); + r = close(pipb[0]); + ATF_REQUIRE_EQ(0, r); +} + +ATF_TC_WITHOUT_HEAD(reaper_kill_badsig); +ATF_TC_BODY(reaper_kill_badsig, tc) +{ + struct procctl_reaper_kill params; + pid_t parent; + int r; + + parent = getpid(); + r = procctl(P_PID, parent, PROC_REAP_ACQUIRE, NULL); + ATF_REQUIRE_EQ(0, r); + + params.rk_sig = -1; + params.rk_flags = 0; + r = procctl(P_PID, parent, PROC_REAP_KILL, ¶ms); + ATF_CHECK(r == -1 && errno == EINVAL); +} + +ATF_TC_WITHOUT_HEAD(reaper_kill_sigzero); +ATF_TC_BODY(reaper_kill_sigzero, tc) +{ + struct procctl_reaper_kill params; + pid_t parent; + int r; + + parent = getpid(); + r = procctl(P_PID, parent, PROC_REAP_ACQUIRE, NULL); + ATF_REQUIRE_EQ(0, r); + + params.rk_sig = 0; + params.rk_flags = 0; + r = procctl(P_PID, parent, PROC_REAP_KILL, ¶ms); + ATF_CHECK(r == -1 && errno == EINVAL); +} + +ATF_TC_WITHOUT_HEAD(reaper_kill_empty); +ATF_TC_BODY(reaper_kill_empty, tc) +{ + struct procctl_reaper_kill params; + pid_t parent; + int r; + + parent = getpid(); + r = procctl(P_PID, parent, PROC_REAP_ACQUIRE, NULL); + ATF_REQUIRE_EQ(0, r); + + params.rk_sig = SIGTERM; + params.rk_flags = 0; + params.rk_killed = 77; + r = procctl(P_PID, parent, PROC_REAP_KILL, ¶ms); + ATF_CHECK(r == -1 && errno == ESRCH); + ATF_CHECK_EQ(0, params.rk_killed); +} + +ATF_TC_WITHOUT_HEAD(reaper_kill_normal); +ATF_TC_BODY(reaper_kill_normal, tc) +{ + struct procctl_reaper_kill params; + ssize_t sr; + pid_t parent, child, grandchild, pid; + int r, status; + int pip[2]; + + parent = getpid(); + r = procctl(P_PID, parent, PROC_REAP_ACQUIRE, NULL); + ATF_REQUIRE_EQ(0, r); + + r = pipe(pip); + ATF_REQUIRE_EQ(0, r); + child = fork(); + ATF_REQUIRE(child != -1); + if (child == 0) { + if (close(pip[0]) != 0) + _exit(100); + grandchild = fork(); + if (grandchild == -1) + _exit(101); + if (grandchild == 0) { + if (write(pip[1], &(uint8_t){ 0 }, 1) != 1) + _exit(102); + for (;;) + pause(); + } + for (;;) + pause(); + } + r = close(pip[1]); + ATF_REQUIRE_EQ(0, r); + + sr = read(pip[0], &(uint8_t){ 0 }, 1); + ATF_REQUIRE_EQ(1, sr); + + params.rk_sig = SIGTERM; + params.rk_flags = 0; + params.rk_killed = 77; + r = procctl(P_PID, parent, PROC_REAP_KILL, ¶ms); + ATF_CHECK_EQ(0, r); + ATF_CHECK_EQ(2, params.rk_killed); + + pid = waitpid(child, &status, 0); + ATF_REQUIRE_EQ(child, pid); + ATF_CHECK(WIFSIGNALED(status) && WTERMSIG(status) == SIGTERM); + + pid = waitpid(-1, &status, 0); + ATF_REQUIRE(pid > 0); + ATF_CHECK(pid != parent); + ATF_CHECK(pid != child); + ATF_CHECK(WIFSIGNALED(status) && WTERMSIG(status) == SIGTERM); + + r = close(pip[0]); + ATF_REQUIRE_EQ(0, r); +} + +ATF_TP_ADD_TCS(tp) +{ + + ATF_TP_ADD_TC(tp, reaper_wait_child_first); + ATF_TP_ADD_TC(tp, reaper_wait_grandchild_first); + ATF_TP_ADD_TC(tp, reaper_sigchld_child_first); + ATF_TP_ADD_TC(tp, reaper_sigchld_grandchild_first); + ATF_TP_ADD_TC(tp, reaper_status); + ATF_TP_ADD_TC(tp, reaper_getpids); + ATF_TP_ADD_TC(tp, reaper_kill_badsig); + ATF_TP_ADD_TC(tp, reaper_kill_sigzero); + ATF_TP_ADD_TC(tp, reaper_kill_empty); + ATF_TP_ADD_TC(tp, reaper_kill_normal); + return (atf_no_error()); +} diff --git a/tools/build/mk/OptionalObsoleteFiles.inc b/tools/build/mk/OptionalObsoleteFiles.inc index c92367f..165d8e9 100644 --- a/tools/build/mk/OptionalObsoleteFiles.inc +++ b/tools/build/mk/OptionalObsoleteFiles.inc @@ -406,22 +406,211 @@ OLD_FILES+=usr/share/man/man1/bsnmpget.1.gz OLD_FILES+=usr/share/man/man1/bsnmpset.1.gz OLD_FILES+=usr/share/man/man1/bsnmpwalk.1.gz OLD_FILES+=usr/share/man/man1/gensnmptree.1.gz +# lib/libbsnmp/libbsnmp +OLD_FILES+=usr/share/man/man3/TRUTH_GET.3.gz +OLD_FILES+=usr/share/man/man3/TRUTH_MK.3.gz +OLD_FILES+=usr/share/man/man3/TRUTH_OK.3.gz +OLD_FILES+=usr/share/man/man3/asn1.3.gz +OLD_FILES+=usr/share/man/man3/asn_append_oid.3.gz +OLD_FILES+=usr/share/man/man3/asn_commit_header.3.gz +OLD_FILES+=usr/share/man/man3/asn_compare_oid.3.gz +OLD_FILES+=usr/share/man/man3/asn_get_counter64_raw.3.gz +OLD_FILES+=usr/share/man/man3/asn_get_header.3.gz +OLD_FILES+=usr/share/man/man3/asn_get_integer.3.gz +OLD_FILES+=usr/share/man/man3/asn_get_integer_raw.3.gz +OLD_FILES+=usr/share/man/man3/asn_get_ipaddress.3.gz +OLD_FILES+=usr/share/man/man3/asn_get_ipaddress_raw.3.gz +OLD_FILES+=usr/share/man/man3/asn_get_null.3.gz +OLD_FILES+=usr/share/man/man3/asn_get_null_raw.3.gz +OLD_FILES+=usr/share/man/man3/asn_get_objid.3.gz +OLD_FILES+=usr/share/man/man3/asn_get_objid_raw.3.gz +OLD_FILES+=usr/share/man/man3/asn_get_octetstring.3.gz +OLD_FILES+=usr/share/man/man3/asn_get_octetstring_raw.3.gz +OLD_FILES+=usr/share/man/man3/asn_get_sequence.3.gz +OLD_FILES+=usr/share/man/man3/asn_get_timeticks.3.gz +OLD_FILES+=usr/share/man/man3/asn_get_uint32_raw.3.gz +OLD_FILES+=usr/share/man/man3/asn_is_suboid.3.gz +OLD_FILES+=usr/share/man/man3/asn_oid2str.3.gz +OLD_FILES+=usr/share/man/man3/asn_oid2str_r.3.gz +OLD_FILES+=usr/share/man/man3/asn_put_counter64.3.gz +OLD_FILES+=usr/share/man/man3/asn_put_exception.3.gz +OLD_FILES+=usr/share/man/man3/asn_put_header.3.gz +OLD_FILES+=usr/share/man/man3/asn_put_integer.3.gz +OLD_FILES+=usr/share/man/man3/asn_put_ipaddress.3.gz +OLD_FILES+=usr/share/man/man3/asn_put_null.3.gz +OLD_FILES+=usr/share/man/man3/asn_put_objid.3.gz +OLD_FILES+=usr/share/man/man3/asn_put_octetstring.3.gz +OLD_FILES+=usr/share/man/man3/asn_put_temp_header.3.gz +OLD_FILES+=usr/share/man/man3/asn_put_timeticks.3.gz +OLD_FILES+=usr/share/man/man3/asn_put_uint32.3.gz +OLD_FILES+=usr/share/man/man3/asn_skip.3.gz +OLD_FILES+=usr/share/man/man3/asn_slice_oid.3.gz +OLD_FILES+=usr/share/man/man3/snmp_add_binding.3.gz +OLD_FILES+=usr/share/man/man3/snmp_calc_keychange.3.gz +OLD_FILES+=usr/share/man/man3/snmp_client.3.gz +OLD_FILES+=usr/share/man/man3/snmp_client_init.3.gz +OLD_FILES+=usr/share/man/man3/snmp_client_set_host.3.gz +OLD_FILES+=usr/share/man/man3/snmp_client_set_port.3.gz +OLD_FILES+=usr/share/man/man3/snmp_close.3.gz +OLD_FILES+=usr/share/man/man3/snmp_debug.3.gz +OLD_FILES+=usr/share/man/man3/snmp_dep_commit.3.gz +OLD_FILES+=usr/share/man/man3/snmp_dep_finish.3.gz +OLD_FILES+=usr/share/man/man3/snmp_dep_lookup.3.gz +OLD_FILES+=usr/share/man/man3/snmp_dep_rollback.3.gz +OLD_FILES+=usr/share/man/man3/snmp_depop_t.3.gz +OLD_FILES+=usr/share/man/man3/snmp_dialog.3.gz +OLD_FILES+=usr/share/man/man3/snmp_discover_engine.3.gz +OLD_FILES+=usr/share/man/man3/snmp_get.3.gz +OLD_FILES+=usr/share/man/man3/snmp_get_local_keys.3.gz +OLD_FILES+=usr/share/man/man3/snmp_getbulk.3.gz +OLD_FILES+=usr/share/man/man3/snmp_getnext.3.gz +OLD_FILES+=usr/share/man/man3/snmp_init_context.3.gz +OLD_FILES+=usr/share/man/man3/snmp_make_errresp.3.gz +OLD_FILES+=usr/share/man/man3/snmp_oid_append.3.gz +OLD_FILES+=usr/share/man/man3/snmp_op_t.3.gz +OLD_FILES+=usr/share/man/man3/snmp_open.3.gz +OLD_FILES+=usr/share/man/man3/snmp_parse_server.3.gz +OLD_FILES+=usr/share/man/man3/snmp_passwd_to_keys.3.gz +OLD_FILES+=usr/share/man/man3/snmp_pdu_check.3.gz +OLD_FILES+=usr/share/man/man3/snmp_pdu_create.3.gz +OLD_FILES+=usr/share/man/man3/snmp_pdu_decode.3.gz +OLD_FILES+=usr/share/man/man3/snmp_pdu_decode_header.3.gz +OLD_FILES+=usr/share/man/man3/snmp_pdu_decode_scoped.3.gz +OLD_FILES+=usr/share/man/man3/snmp_pdu_decode_secmode.3.gz +OLD_FILES+=usr/share/man/man3/snmp_pdu_dump.3.gz +OLD_FILES+=usr/share/man/man3/snmp_pdu_encode.3.gz +OLD_FILES+=usr/share/man/man3/snmp_pdu_free.3.gz +OLD_FILES+=usr/share/man/man3/snmp_pdu_init_secparams.3.gz +OLD_FILES+=usr/share/man/man3/snmp_pdu_send.3.gz +OLD_FILES+=usr/share/man/man3/snmp_receive.3.gz +OLD_FILES+=usr/share/man/man3/snmp_send_cb_f.3.gz +OLD_FILES+=usr/share/man/man3/snmp_set.3.gz +OLD_FILES+=usr/share/man/man3/snmp_table_cb_f.3.gz +OLD_FILES+=usr/share/man/man3/snmp_table_fetch.3.gz +OLD_FILES+=usr/share/man/man3/snmp_table_fetch_async.3.gz +OLD_FILES+=usr/share/man/man3/snmp_timeout_cb_f.3.gz +OLD_FILES+=usr/share/man/man3/snmp_timeout_start_f.3.gz +OLD_FILES+=usr/share/man/man3/snmp_timeout_stop_f.3.gz +OLD_FILES+=usr/share/man/man3/snmp_trace.3.gz +OLD_FILES+=usr/share/man/man3/snmp_value_copy.3.gz +OLD_FILES+=usr/share/man/man3/snmp_value_free.3.gz +OLD_FILES+=usr/share/man/man3/snmp_value_parse.3.gz +OLD_FILES+=usr/share/man/man3/tree.3.gz +OLD_FILES+=usr/share/man/man3/tree_size.3.gz +# usr.sbin/bsnmpd/bsnmpd +OLD_FILES+=usr/share/man/man3/FIND_OBJECT_INT.3.gz +OLD_FILES+=usr/share/man/man3/FIND_OBJECT_INT_LINK.3.gz +OLD_FILES+=usr/share/man/man3/FIND_OBJECT_INT_LINK_INDEX.3.gz +OLD_FILES+=usr/share/man/man3/FIND_OBJECT_OID.3.gz +OLD_FILES+=usr/share/man/man3/FIND_OBJECT_OID_LINK.3.gz +OLD_FILES+=usr/share/man/man3/FIND_OBJECT_OID_LINK_INDEX.3.gz +OLD_FILES+=usr/share/man/man3/INSERT_OBJECT_INT.3.gz +OLD_FILES+=usr/share/man/man3/INSERT_OBJECT_INT_LINK.3.gz +OLD_FILES+=usr/share/man/man3/INSERT_OBJECT_INT_LINK_INDEX.3.gz +OLD_FILES+=usr/share/man/man3/INSERT_OBJECT_OID.3.gz +OLD_FILES+=usr/share/man/man3/INSERT_OBJECT_OID_LINK.3.gz +OLD_FILES+=usr/share/man/man3/INSERT_OBJECT_OID_LINK_INDEX.3.gz +OLD_FILES+=usr/share/man/man3/NEXT_OBJECT_INT.3.gz +OLD_FILES+=usr/share/man/man3/NEXT_OBJECT_INT_LINK.3.gz +OLD_FILES+=usr/share/man/man3/NEXT_OBJECT_INT_LINK_INDEX.3.gz +OLD_FILES+=usr/share/man/man3/NEXT_OBJECT_OID.3.gz +OLD_FILES+=usr/share/man/man3/NEXT_OBJECT_OID_LINK.3.gz +OLD_FILES+=usr/share/man/man3/NEXT_OBJECT_OID_LINK_INDEX.3.gz OLD_FILES+=usr/share/man/man3/asn1.3.gz OLD_FILES+=usr/share/man/man3/bsnmpagent.3.gz OLD_FILES+=usr/share/man/man3/bsnmpclient.3.gz +OLD_FILES+=usr/share/man/man3/bsnmpd_get_target_stats.3.gz +OLD_FILES+=usr/share/man/man3/bsnmpd_get_usm_stats.3.gz +OLD_FILES+=usr/share/man/man3/bsnmpd_reset_usm_stats.3.gz OLD_FILES+=usr/share/man/man3/bsnmplib.3.gz +OLD_FILES+=usr/share/man/man3/buf_alloc.3.gz +OLD_FILES+=usr/share/man/man3/buf_size.3.gz +OLD_FILES+=usr/share/man/man3/comm_define.3.gz +OLD_FILES+=usr/share/man/man3/community.3.gz +OLD_FILES+=usr/share/man/man3/fd_deselect.3.gz +OLD_FILES+=usr/share/man/man3/fd_resume.3.gz +OLD_FILES+=usr/share/man/man3/fd_select.3.gz +OLD_FILES+=usr/share/man/man3/fd_suspend.3.gz +OLD_FILES+=usr/share/man/man3/get_ticks.3.gz +OLD_FILES+=usr/share/man/man3/index_append.3.gz +OLD_FILES+=usr/share/man/man3/index_append_off.3.gz +OLD_FILES+=usr/share/man/man3/index_compare.3.gz +OLD_FILES+=usr/share/man/man3/index_compare_off.3.gz +OLD_FILES+=usr/share/man/man3/index_decode.3.gz +OLD_FILES+=usr/share/man/man3/ip_commit.3.gz +OLD_FILES+=usr/share/man/man3/ip_get.3.gz +OLD_FILES+=usr/share/man/man3/ip_rollback.3.gz +OLD_FILES+=usr/share/man/man3/ip_save.3.gz +OLD_FILES+=usr/share/man/man3/or_register.3.gz +OLD_FILES+=usr/share/man/man3/or_unregister.3.gz +OLD_FILES+=usr/share/man/man3/oid_commit.3.gz +OLD_FILES+=usr/share/man/man3/oid_get.3.gz +OLD_FILES+=usr/share/man/man3/oid_rollback.3.gz +OLD_FILES+=usr/share/man/man3/oid_save.3.gz +OLD_FILES+=usr/share/man/man3/oid_usmNotInTimeWindows.3.gz +OLD_FILES+=usr/share/man/man3/oid_usmUnknownEngineIDs.3.gz +OLD_FILES+=usr/share/man/man3/oid_zeroDotZero.3.gz +OLD_FILES+=usr/share/man/man3/reqid_allocate.3.gz +OLD_FILES+=usr/share/man/man3/reqid_base.3.gz +OLD_FILES+=usr/share/man/man3/reqid_istype.3.gz +OLD_FILES+=usr/share/man/man3/reqid_next.3.gz +OLD_FILES+=usr/share/man/man3/reqid_type.3.gz OLD_FILES+=usr/share/man/man3/snmp_atm.3.gz OLD_FILES+=usr/share/man/man3/snmp_bridge.3.gz OLD_FILES+=usr/share/man/man3/snmp_hast.3.gz OLD_FILES+=usr/share/man/man3/snmp_hostres.3.gz +OLD_FILES+=usr/share/man/man3/snmp_input_finish.3.gz +OLD_FILES+=usr/share/man/man3/snmp_input_start.3.gz OLD_FILES+=usr/share/man/man3/snmp_lm75.3.gz OLD_FILES+=usr/share/man/man3/snmp_mibII.3.gz OLD_FILES+=usr/share/man/man3/snmp_netgraph.3.gz +OLD_FILES+=usr/share/man/man3/snmp_output.3.gz +OLD_FILES+=usr/share/man/man3/snmp_pdu_auth_access.3.gz +OLD_FILES+=usr/share/man/man3/snmp_send_port.3.gz +OLD_FILES+=usr/share/man/man3/snmp_send_trap.3.gz OLD_FILES+=usr/share/man/man3/snmp_target.3.gz OLD_FILES+=usr/share/man/man3/snmp_usm.3.gz OLD_FILES+=usr/share/man/man3/snmp_vacm.3.gz OLD_FILES+=usr/share/man/man3/snmp_wlan.3.gz +OLD_FILES+=usr/share/man/man3/snmpd_target_stat.3.gz +OLD_FILES+=usr/share/man/man3/snmpd_usmstats.3.gz OLD_FILES+=usr/share/man/man3/snmpmod.3.gz +OLD_FILES+=usr/share/man/man3/start_tick.3.gz +OLD_FILES+=usr/share/man/man3/string_commit.3.gz +OLD_FILES+=usr/share/man/man3/string_free.3.gz +OLD_FILES+=usr/share/man/man3/string_get.3.gz +OLD_FILES+=usr/share/man/man3/string_get_max.3.gz +OLD_FILES+=usr/share/man/man3/string_rollback.3.gz +OLD_FILES+=usr/share/man/man3/string_save.3.gz +OLD_FILES+=usr/share/man/man3/systemg.3.gz +OLD_FILES+=usr/share/man/man3/this_tick.3.gz +OLD_FILES+=usr/share/man/man3/timer_start.3.gz +OLD_FILES+=usr/share/man/man3/timer_start_repeat.3.gz +OLD_FILES+=usr/share/man/man3/timer_stop.3.gz +OLD_FILES+=usr/share/man/man3/target_activate_address.3.gz +OLD_FILES+=usr/share/man/man3/target_address.3.gz +OLD_FILES+=usr/share/man/man3/target_delete_address.3.gz +OLD_FILES+=usr/share/man/man3/target_delete_notify.3.gz +OLD_FILES+=usr/share/man/man3/target_delete_param.3.gz +OLD_FILES+=usr/share/man/man3/target_first_address.3.gz +OLD_FILES+=usr/share/man/man3/target_first_notify.3.gz +OLD_FILES+=usr/share/man/man3/target_first_param.3.gz +OLD_FILES+=usr/share/man/man3/target_flush_all.3.gz +OLD_FILES+=usr/share/man/man3/target_next_address.3.gz +OLD_FILES+=usr/share/man/man3/target_next_notify.3.gz +OLD_FILES+=usr/share/man/man3/target_next_param.3.gz +OLD_FILES+=usr/share/man/man3/target_new_address.3.gz +OLD_FILES+=usr/share/man/man3/target_new_notify.3.gz +OLD_FILES+=usr/share/man/man3/target_new_param.3.gz +OLD_FILES+=usr/share/man/man3/target_notify.3.gz +OLD_FILES+=usr/share/man/man3/target_param.3.gz +OLD_FILES+=usr/share/man/man3/usm_delete_user.3.gz +OLD_FILES+=usr/share/man/man3/usm_find_user.3.gz +OLD_FILES+=usr/share/man/man3/usm_first_user.3.gz +OLD_FILES+=usr/share/man/man3/usm_flush_users.3.gz +OLD_FILES+=usr/share/man/man3/usm_next_user.3.gz +OLD_FILES+=usr/share/man/man3/usm_new_user.3.gz +OLD_FILES+=usr/share/man/man3/usm_user.3.gz OLD_FILES+=usr/share/snmp/defs/atm_freebsd.def OLD_FILES+=usr/share/snmp/defs/atm_tree.def OLD_FILES+=usr/share/snmp/defs/bridge_tree.def @@ -2229,6 +2418,12 @@ OLD_FILES+=usr/share/man/man5/hast.conf.5.gz OLD_FILES+=usr/share/man/man8/hastctl.8.gz OLD_FILES+=usr/share/man/man8/hastd.8.gz OLD_DIRS+=usr/share/examples/hast +# bsnmp +OLD_FILES+=usr/lib/snmp_hast.so +OLD_LIBS+=usr/lib/snmp_hast.so.6 +OLD_FILES+=usr/share/man/man3/snmp_hast.3.gz +OLD_FILES+=usr/share/snmp/defs/hast_tree.def +OLD_FILES+=usr/share/snmp/mibs/BEGEMOT-HAST-MIB.txt .endif .if ${MK_HESIOD} == no @@ -5506,12 +5701,20 @@ OLD_FILES+=usr/share/man/man8/wlandebug.8.gz OLD_FILES+=usr/share/man/man8/wpa_cli.8.gz OLD_FILES+=usr/share/man/man8/wpa_passphrase.8.gz OLD_FILES+=usr/share/man/man8/wpa_supplicant.8.gz +OLD_FILES+=usr/lib/snmp_wlan.so +OLD_LIBS+=usr/lib/snmp_wlan.so.6 +# bsnmp module +OLD_FILES+=usr/share/man/man3/snmp_wlan.3.gz +OLD_FILES+=usr/share/snmp/defs/wlan_tree.def +OLD_FILES+=usr/share/snmp/mibs/BEGEMOT-WIRELESS-MIB.txt .endif .if ${MK_SVNLITE} == no || ${MK_SVN} == yes OLD_FILES+=usr/bin/svnlite OLD_FILES+=usr/bin/svnliteadmin +OLD_FILES+=usr/bin/svnlitebench OLD_FILES+=usr/bin/svnlitedumpfilter +OLD_FILES+=usr/bin/svnlitefsfs OLD_FILES+=usr/bin/svnlitelook OLD_FILES+=usr/bin/svnlitemucc OLD_FILES+=usr/bin/svnliterdump @@ -5524,7 +5727,9 @@ OLD_FILES+=usr/share/man/man1/svnlite.1.gz .if ${MK_SVN} == no OLD_FILES+=usr/bin/svn OLD_FILES+=usr/bin/svnadmin +OLD_FILES+=usr/bin/svnbench OLD_FILES+=usr/bin/svndumpfilter +OLD_FILES+=usr/bin/svnfsfs OLD_FILES+=usr/bin/svnlook OLD_FILES+=usr/bin/svnmucc OLD_FILES+=usr/bin/svnrdump diff --git a/tools/build/options/WITH_SSP b/tools/build/options/WITH_SSP new file mode 100644 index 0000000..7704e54 --- /dev/null +++ b/tools/build/options/WITH_SSP @@ -0,0 +1,2 @@ +.\" $FreeBSD$ +Set to build world with propolice stack smashing protection. diff --git a/usr.bin/kdump/kdump.c b/usr.bin/kdump/kdump.c index 9ac8b5b..389ded2 100644 --- a/usr.bin/kdump/kdump.c +++ b/usr.bin/kdump/kdump.c @@ -41,10 +41,7 @@ static char sccsid[] = "@(#)kdump.c 8.1 (Berkeley) 6/6/93"; #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -#define _KERNEL -extern int errno; -#include <sys/errno.h> -#undef _KERNEL +#define _WANT_KERNEL_ERRNO #include <sys/param.h> #include <sys/capsicum.h> #include <sys/errno.h> @@ -79,6 +76,7 @@ extern int errno; #include <netdb.h> #include <nl_types.h> #include <pwd.h> +#include <stddef.h> #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -128,6 +126,27 @@ static struct ktr_header ktr_header; #define TIME_FORMAT "%b %e %T %Y" #define eqs(s1, s2) (strcmp((s1), (s2)) == 0) +#define print_number64(first,i,n,c) do { \ + uint64_t __v; \ + \ + if (quad_align && (((ptrdiff_t)((i) - (first))) & 1) == 1) { \ + (i)++; \ + (n)--; \ + } \ + if (quad_slots == 2) \ + __v = (uint64_t)(uint32_t)(i)[0] | \ + ((uint64_t)(uint32_t)(i)[1]) << 32; \ + else \ + __v = (uint64_t)*(i); \ + if (decimal) \ + printf("%c%jd", (c), (intmax_t)__v); \ + else \ + printf("%c%#jx", (c), (uintmax_t)__v); \ + (i) += quad_slots; \ + (n) -= quad_slots; \ + (c) = ','; \ +} while (0) + #define print_number(i,n,c) do { \ if (decimal) \ printf("%c%jd", c, (intmax_t)*i); \ @@ -611,8 +630,9 @@ void ktrsyscall(struct ktr_syscall *ktr, u_int flags) { int narg = ktr->ktr_narg; - register_t *ip; + register_t *ip, *first; intmax_t arg; + int quad_align, quad_slots; if ((flags != 0 && ((flags & SV_ABI_MASK) != SV_ABI_FREEBSD)) || (ktr->ktr_code >= nsyscalls || ktr->ktr_code < 0)) @@ -622,11 +642,19 @@ ktrsyscall(struct ktr_syscall *ktr, u_int flags) if (syscallno) printf("[%d]", ktr->ktr_code); } - ip = &ktr->ktr_args[0]; + ip = first = &ktr->ktr_args[0]; if (narg) { char c = '('; if (fancy && (flags == 0 || (flags & SV_ABI_MASK) == SV_ABI_FREEBSD)) { + quad_align = 0; + if (flags & SV_ILP32) { +#ifdef __powerpc__ + quad_align = 1; +#endif + quad_slots = 2; + } else + quad_slots = 1; switch (ktr->ktr_code) { case SYS_bindat: case SYS_connectat: @@ -708,7 +736,7 @@ ktrsyscall(struct ktr_syscall *ktr, u_int flags) c = ','; ip++; narg--; - print_number(ip, narg, c); + print_number64(first, ip, narg, c); print_number(ip, narg, c); putchar(','); wait6optname(*ip); @@ -907,7 +935,7 @@ ktrsyscall(struct ktr_syscall *ktr, u_int flags) print_number(ip, narg, c); /* Hidden 'pad' argument, not in lseek(2) */ print_number(ip, narg, c); - print_number(ip, narg, c); + print_number64(first, ip, narg, c); putchar(','); whencename(*ip); ip++; @@ -916,8 +944,7 @@ ktrsyscall(struct ktr_syscall *ktr, u_int flags) #endif case SYS_lseek: print_number(ip, narg, c); - /* Hidden 'pad' argument, not in lseek(2) */ - print_number(ip, narg, c); + print_number64(first, ip, narg, c); putchar(','); whencename(*ip); ip++; @@ -1196,7 +1223,7 @@ ktrsyscall(struct ktr_syscall *ktr, u_int flags) c = ','; ip++; narg--; - print_number(ip, narg, c); + print_number64(first, ip, narg, c); putchar(','); procctlcmdname(*ip); ip++; @@ -1222,6 +1249,12 @@ ktrsyscall(struct ktr_syscall *ktr, u_int flags) } ip++; narg--; + break; + case SYS_ftruncate: + case SYS_truncate: + print_number(ip, narg, c); + print_number64(first, ip, narg, c); + break; } } while (narg > 0) { diff --git a/usr.bin/procstat/procstat.c b/usr.bin/procstat/procstat.c index 48a2135..a6774e5 100644 --- a/usr.bin/procstat/procstat.c +++ b/usr.bin/procstat/procstat.c @@ -34,6 +34,7 @@ #include <libprocstat.h> #include <stdio.h> #include <stdlib.h> +#include <string.h> #include <sysexits.h> #include <unistd.h> @@ -115,6 +116,21 @@ kinfo_proc_sort(struct kinfo_proc *kipp, int count) qsort(kipp, count, sizeof(*kipp), kinfo_proc_compare); } +const char * +kinfo_proc_thread_name(const struct kinfo_proc *kipp) +{ + static char name[MAXCOMLEN+1]; + + strlcpy(name, kipp->ki_tdname, sizeof(name)); + strlcat(name, kipp->ki_moretdname, sizeof(name)); + if (name[0] == '\0' || strcmp(kipp->ki_comm, name) == 0) { + name[0] = '-'; + name[1] = '\0'; + } + + return (name); +} + int main(int argc, char *argv[]) { diff --git a/usr.bin/procstat/procstat.h b/usr.bin/procstat/procstat.h index 5079521..4c5242a 100644 --- a/usr.bin/procstat/procstat.h +++ b/usr.bin/procstat/procstat.h @@ -33,6 +33,7 @@ extern int hflag, nflag, Cflag, Hflag; struct kinfo_proc; void kinfo_proc_sort(struct kinfo_proc *kipp, int count); +const char * kinfo_proc_thread_name(const struct kinfo_proc *kipp); void procstat_args(struct procstat *prstat, struct kinfo_proc *kipp); void procstat_auxv(struct procstat *prstat, struct kinfo_proc *kipp); diff --git a/usr.bin/procstat/procstat_cs.c b/usr.bin/procstat/procstat_cs.c index 8ccf1ea..4af29ca 100644 --- a/usr.bin/procstat/procstat_cs.c +++ b/usr.bin/procstat/procstat_cs.c @@ -50,7 +50,7 @@ procstat_cs(struct procstat *procstat, struct kinfo_proc *kipp) int once, twice, lastcpu, cpu; if (!hflag) - printf("%5s %6s %-16s %-16s %2s %4s %-7s\n", "PID", + printf("%5s %6s %-19s %-19s %2s %4s %-7s\n", "PID", "TID", "COMM", "TDNAME", "CPU", "CSID", "CPU MASK"); kip = procstat_getprocs(procstat, KERN_PROC_PID | KERN_PROC_INC_THREAD, @@ -62,11 +62,9 @@ procstat_cs(struct procstat *procstat, struct kinfo_proc *kipp) kipp = &kip[i]; printf("%5d ", kipp->ki_pid); printf("%6d ", kipp->ki_tid); - printf("%-16s ", strlen(kipp->ki_comm) ? + printf("%-19s ", strlen(kipp->ki_comm) ? kipp->ki_comm : "-"); - printf("%-16s ", (strlen(kipp->ki_tdname) && - (strcmp(kipp->ki_comm, kipp->ki_tdname) != 0)) ? - kipp->ki_tdname : "-"); + printf("%-19s ", kinfo_proc_thread_name(kipp)); if (kipp->ki_oncpu != 255) printf("%3d ", kipp->ki_oncpu); else if (kipp->ki_lastcpu != 255) diff --git a/usr.bin/procstat/procstat_kstack.c b/usr.bin/procstat/procstat_kstack.c index 8ffa4f9..10cb5cf 100644 --- a/usr.bin/procstat/procstat_kstack.c +++ b/usr.bin/procstat/procstat_kstack.c @@ -134,7 +134,7 @@ procstat_kstack(struct procstat *procstat, struct kinfo_proc *kipp, int kflag) unsigned int kip_count, kstk_count; if (!hflag) - printf("%5s %6s %-16s %-16s %-29s\n", "PID", "TID", "COMM", + printf("%5s %6s %-19s %-19s %-29s\n", "PID", "TID", "COMM", "TDNAME", "KSTACK"); kkstp = kkstp_free = procstat_getkstack(procstat, kipp, &kstk_count); @@ -171,10 +171,8 @@ procstat_kstack(struct procstat *procstat, struct kinfo_proc *kipp, int kflag) printf("%5d ", kipp->ki_pid); printf("%6d ", kkstp->kkst_tid); - printf("%-16s ", kipp->ki_comm); - printf("%-16s ", (strlen(kipp->ki_tdname) && - (strcmp(kipp->ki_comm, kipp->ki_tdname) != 0)) ? - kipp->ki_tdname : "-"); + printf("%-19s ", kipp->ki_comm); + printf("%-19s ", kinfo_proc_thread_name(kipp)); switch (kkstp->kkst_state) { case KKST_STATE_RUNNING: diff --git a/usr.bin/procstat/procstat_threads.c b/usr.bin/procstat/procstat_threads.c index 6bd88da..f81ec74 100644 --- a/usr.bin/procstat/procstat_threads.c +++ b/usr.bin/procstat/procstat_threads.c @@ -47,7 +47,7 @@ procstat_threads(struct procstat *procstat, struct kinfo_proc *kipp) const char *str; if (!hflag) - printf("%5s %6s %-16s %-16s %2s %4s %-7s %-9s\n", "PID", + printf("%5s %6s %-19s %-19s %2s %4s %-7s %-9s\n", "PID", "TID", "COMM", "TDNAME", "CPU", "PRI", "STATE", "WCHAN"); kip = procstat_getprocs(procstat, KERN_PROC_PID | KERN_PROC_INC_THREAD, @@ -59,11 +59,9 @@ procstat_threads(struct procstat *procstat, struct kinfo_proc *kipp) kipp = &kip[i]; printf("%5d ", kipp->ki_pid); printf("%6d ", kipp->ki_tid); - printf("%-16s ", strlen(kipp->ki_comm) ? + printf("%-19s ", strlen(kipp->ki_comm) ? kipp->ki_comm : "-"); - printf("%-16s ", (strlen(kipp->ki_tdname) && - (strcmp(kipp->ki_comm, kipp->ki_tdname) != 0)) ? - kipp->ki_tdname : "-"); + printf("%-19s ", kinfo_proc_thread_name(kipp)); if (kipp->ki_oncpu != 255) printf("%3d ", kipp->ki_oncpu); else if (kipp->ki_lastcpu != 255) diff --git a/usr.bin/top/machine.c b/usr.bin/top/machine.c index cf4714c..6978060 100644 --- a/usr.bin/top/machine.c +++ b/usr.bin/top/machine.c @@ -889,8 +889,8 @@ format_next_process(caddr_t handle, char *(*get_userid)(int), int flags) if (!(flags & FMT_SHOWARGS)) { if (ps.thread && pp->ki_flag & P_HADTHREADS && pp->ki_tdname[0]) { - snprintf(cmdbuf, cmdlen, "%s{%s}", pp->ki_comm, - pp->ki_tdname); + snprintf(cmdbuf, cmdlen, "%s{%s%s}", pp->ki_comm, + pp->ki_tdname, pp->ki_moretdname); } else { snprintf(cmdbuf, cmdlen, "%s", pp->ki_comm); } @@ -902,7 +902,8 @@ format_next_process(caddr_t handle, char *(*get_userid)(int), int flags) if (ps.thread && pp->ki_flag & P_HADTHREADS && pp->ki_tdname[0]) { snprintf(cmdbuf, cmdlen, - "[%s{%s}]", pp->ki_comm, pp->ki_tdname); + "[%s{%s%s}]", pp->ki_comm, pp->ki_tdname, + pp->ki_moretdname); } else { snprintf(cmdbuf, cmdlen, "[%s]", pp->ki_comm); @@ -950,8 +951,9 @@ format_next_process(caddr_t handle, char *(*get_userid)(int), int flags) if (ps.thread && pp->ki_flag & P_HADTHREADS && pp->ki_tdname[0]) snprintf(cmdbuf, cmdlen, - "%s (%s){%s}", argbuf, pp->ki_comm, - pp->ki_tdname); + "%s (%s){%s%s}", argbuf, + pp->ki_comm, pp->ki_tdname, + pp->ki_moretdname); else snprintf(cmdbuf, cmdlen, "%s (%s)", argbuf, pp->ki_comm); @@ -959,7 +961,8 @@ format_next_process(caddr_t handle, char *(*get_userid)(int), int flags) if (ps.thread && pp->ki_flag & P_HADTHREADS && pp->ki_tdname[0]) snprintf(cmdbuf, cmdlen, - "%s{%s}", argbuf, pp->ki_tdname); + "%s{%s%s}", argbuf, pp->ki_tdname, + pp->ki_moretdname); else strlcpy(cmdbuf, argbuf, cmdlen); } diff --git a/usr.sbin/amd/amd/Makefile b/usr.sbin/amd/amd/Makefile index 7aa0c12..f335ef0 100644 --- a/usr.sbin/amd/amd/Makefile +++ b/usr.sbin/amd/amd/Makefile @@ -12,28 +12,52 @@ PROG= amd MAN= amd.8 -SRCS= conf_parse.y conf_tok.l -SRCS+= am_ops.c amd.c amfs_auto.c amfs_direct.c amfs_error.c amfs_generic.c +SRCS= am_ops.c amd.c amfs_auto.c amfs_direct.c amfs_error.c amfs_generic.c SRCS+= amfs_host.c amfs_link.c amfs_linkx.c amfs_nfsl.c SRCS+= amfs_nfsx.c amfs_program.c amfs_root.c amfs_toplvl.c SRCS+= amfs_union.c amq_subr.c amq_svc.c autil.c clock.c conf.c SRCS+= get_args.c info_exec.c info_file.c info_ndbm.c info_passwd.c +SRCS+= info_sun.c SRCS+= info_union.c map.c mapc.c mntfs.c nfs_prot_svc.c nfs_start.c -SRCS+= nfs_subr.c ops_cdfs.c ops_mfs.c ops_nfs.c ops_nfs3.c -SRCS+= ops_nullfs.c ops_pcfs.c ops_tfs.c ops_ufs.c ops_umapfs.c +SRCS+= nfs_subr.c ops_cdfs.c ops_lustre.c ops_mfs.c ops_nfs.c +SRCS+= ops_nfs3.c ops_nfs4.c +SRCS+= ops_nullfs.c ops_pcfs.c ops_tfs.c ops_tmpfs.c ops_udf.c ops_ufs.c +SRCS+= ops_umapfs.c SRCS+= ops_unionfs.c opts.c readdir.c restart.c rpc_fwd.c sched.c -SRCS+= srvr_amfs_auto.c srvr_nfs.c +SRCS+= srvr_amfs_auto.c srvr_nfs.c sun_map.c CFLAGS+= -I${.CURDIR}/../../../contrib/amd/amd \ + -I${SRCTOP}/contrib/amd/include \ -I${.OBJDIR}/../../../include/rpcsvc DPADD= ${LIBAMU} ${LIBWRAP} LDADD= ${LIBAMU} -lwrap +SRCS+= conf_parse.c conf_parse.h conf_tok.c +SRCS+= sun_map_parse.c sun_map_parse.h sun_map_tok.c CLEANFILES+= conf_parse.c conf_parse.h conf_tok.c +CLEANFILES+= sun_map_parse.c sun_map_parse.h sun_map_tok.c + +conf_tok.c: conf_tok.l + ${LEX} ${LFLAGS} -Pconf_ -o${.TARGET} ${.ALLSRC} + +.ORDER: conf_parse.c conf_parse.h +conf_parse.h: .NOMETA +conf_parse.c conf_parse.h: conf_parse.y + ${YACC} ${YFLAGS} -pconf_ -oconf_parse.c ${.ALLSRC} + +sun_map_tok.c: sun_map_tok.l + ${LEX} ${LFLAGS} -Psun_map_ -o${.TARGET} ${.ALLSRC} + +.ORDER: sun_map_parse.c sun_map_parse.h +sun_map_parse.h: .NOMETA +sun_map_parse.c sun_map_parse.h: sun_map_parse.y + ${YACC} ${YFLAGS} -psun_map_ -osun_map_parse.c ${.ALLSRC} conf_tok.o: conf_parse.h +sun_map_tok.o: sun_map_parse.h + # These are generated at compile time SRCS+= mount_xdr.c CLEANFILES+= mount_xdr.c diff --git a/usr.sbin/amd/fsinfo/Makefile b/usr.sbin/amd/fsinfo/Makefile index 1695a46..275313a 100644 --- a/usr.sbin/amd/fsinfo/Makefile +++ b/usr.sbin/amd/fsinfo/Makefile @@ -9,17 +9,38 @@ PROG= fsinfo MAN= fsinfo.8 -SRCS= fsi_gram.y fsi_lex.l -SRCS+= fsi_analyze.c fsi_dict.c fsi_util.c fsinfo.c wr_atab.c -SRCS+= wr_bparam.c wr_dumpset.c wr_exportfs.c wr_fstab.c +SRCS= fsi_analyze.c fsi_dict.c fsi_util.c fsinfo.c +SRCS+= wr_atab.c wr_bparam.c wr_dumpset.c wr_exportfs.c wr_fstab.c -CFLAGS+= -I${.CURDIR}/../../../contrib/amd/fsinfo +CFLAGS+= -I${.CURDIR}/../../../contrib/amd/fsinfo \ + -I${.CURDIR}/../../../contrib/amd/inculde DPADD= ${LIBAMU} LDADD= ${LIBAMU} +SRCS+= fsi_gram.c fsi_gram.h fsi_lex.c +SRCS+= null_gram.c null_gram.h null_lex.c CLEANFILES+= fsi_gram.c fsi_gram.h fsi_lex.c +CLEANFILES+= null_gram.c null_gram.h null_lex.c + +fsi_lex.c: fsi_lex.l + ${LEX} ${LFLAGS} -Pfsi_ -o${.TARGET} ${.ALLSRC} + +.ORDER: fsi_gram.c fsi_gram.h +fsi_gram.h: .NOMETA +fsi_gram.c fsi_gram.h: fsi_gram.y + ${YACC} ${YFLAGS} -pfsi_ -ofsi_gram.c ${.ALLSRC} + +null_lex.c: null_lex.l + ${LEX} ${LFLAGS} -Pnull_ -o${.TARGET} ${.ALLSRC} + +.ORDER: null_gram.c null_gram.h +null_gram.h: .NOMETA +null_gram.c null_gram.h: null_gram.y + ${YACC} ${YFLAGS} -pnull_ -onull_gram.c ${.ALLSRC} fsi_lex.o: fsi_gram.h +null_gram.o: null_gram.h + .include <bsd.prog.mk> diff --git a/usr.sbin/amd/include/config.h b/usr.sbin/amd/include/config.h index 5817a46..edae5fd 100644 --- a/usr.sbin/amd/include/config.h +++ b/usr.sbin/amd/include/config.h @@ -3,6 +3,9 @@ * * portions derived from * $NetBSD: config.h,v 1.11 1998/08/08 22:33:37 christos Exp $ + * + * Additional portions derived from ports/sysutils/am-utils r416941 + * make configure config.h output. */ #ifndef _CONFIG_H @@ -11,6 +14,9 @@ /* We [FREEBSD-NATIVE] pick some parameters from our local config file */ #include "config_local.h" +/* Define if building universal (internal helper macro) */ +/* #undef AC_APPLE_UNIVERSAL_BUILD */ + /* define name of am-utils' NFS protocol header */ #define AMU_NFS_PROTOCOL_HEADER "./conf/nfs_prot/nfs_prot_freebsd3.h" @@ -18,7 +24,7 @@ #define AUTH_CREATE_GIDLIST_TYPE gid_t /* Define configuration date */ -/* #define CONFIG_DATE "Tue Dec 4 21:39:00 PST 2007" */ +/* #define CONFIG_DATE "Mon Oct 3 21:58:39 PDT 2016" */ /* Turn off general debugging by default */ /* #undef DEBUG */ @@ -176,9 +182,15 @@ /* Define to 1 if `flags' is member of `efs_args_t'. */ /* #undef HAVE_EFS_ARGS_T_FLAGS */ +/* Define to 1 if `version' is member of `efs_args_t'. */ +/* #undef HAVE_EFS_ARGS_T_VERSION */ + /* Define to 1 if `fspec' is member of `efs_args_t'. */ /* #undef HAVE_EFS_ARGS_T_FSPEC */ +/* Define to 1 if `version' is member of `efs_args_t'. */ +/* #undef HAVE_EFS_ARGS_T_VERSION */ + /* Define to 1 if you have the <errno.h> header file. */ #define HAVE_ERRNO_H 1 @@ -320,6 +332,12 @@ /* Define if have EFS filesystem (irix) */ /* #undef HAVE_FS_EFS */ +/* Define to 1 if you have the <fs/efs/efs_mount.h> header file. */ +/* #undef HAVE_FS_EFS_EFS_MOUNT_H */ + +/* Define if have EXT{2,3,4} filesystem (linux) */ +/* #undef HAVE_FS_EXT */ + /* Define if have FFS filesystem */ /* #undef HAVE_FS_FFS */ @@ -329,8 +347,14 @@ /* Define if have LOFS filesystem */ /* #undef HAVE_FS_LOFS */ +/* Define if have LUSTRE filesystem */ +/* #undef HAVE_FS_LUSTRE */ + /* Define if have MFS filesystem */ -/* #undef HAVE_FS_MFS */ +#define HAVE_FS_MFS 1 + +/* Define to 1 if you have the <fs/msdosfs/msdosfsmount.h> header file. */ +/* #undef HAVE_FS_MSDOSFS_MSDOSFSMOUNT_H */ /* Define if have NFS filesystem */ #define HAVE_FS_NFS 1 @@ -338,6 +362,9 @@ /* Define if have NFS3 filesystem */ #define HAVE_FS_NFS3 1 +/* Define if have NFS4 filesystem */ +/* #undef HAVE_FS_NFS4 */ + /* Define if have NULLFS (loopback on bsd44) filesystem */ #define HAVE_FS_NULLFS 1 @@ -348,7 +375,16 @@ /* #undef HAVE_FS_TFS */ /* Define if have TMPFS filesystem */ -/* #undef HAVE_FS_TMPFS */ +#define HAVE_FS_TMPFS 1 + +/* Define to 1 if you have the <fs/tmpfs/tmpfs_args.h> header file. */ +/* #undef HAVE_FS_TMPFS_TMPFS_ARGS_H */ + +/* Define if have UDF filesystem */ +#define HAVE_FS_UDF 1 + +/* Define to 1 if you have the <fs/udf/udf_mount.h> header file. */ +#define HAVE_FS_UDF_UDF_MOUNT_H 1 /* Define if have UFS filesystem */ #define HAVE_FS_UFS 1 @@ -520,6 +556,9 @@ /* Define to 1 if you have the <linux/nfs2.h> header file. */ /* #undef HAVE_LINUX_NFS2_H */ +/* Define to 1 if you have the <linux/nfs4.h> header file. */ +/* #undef HAVE_LINUX_NFS4_H */ + /* Define to 1 if you have the <linux/nfs.h> header file. */ /* #undef HAVE_LINUX_NFS_H */ @@ -575,6 +614,9 @@ /* Define if have PASSWD maps */ #define HAVE_MAP_PASSWD 1 +/* Define if have Sun-syntax maps */ +#define HAVE_MAP_SUN 1 + /* Define if have UNION maps */ #define HAVE_MAP_UNION 1 @@ -695,6 +737,9 @@ /* Define to 1 if `bsize' is member of `nfs_args_t'. */ /* #undef HAVE_NFS_ARGS_T_BSIZE */ +/* Define to 1 if `context' is member of `nfs_args_t'. */ +/* #undef HAVE_NFS_ARGS_T_CONTEXT */ + /* Define to 1 if `fhsize' is member of `nfs_args_t'. */ #define HAVE_NFS_ARGS_T_FHSIZE 1 @@ -710,9 +755,15 @@ /* Define to 1 if `optstr' is member of `nfs_args_t'. */ /* #undef HAVE_NFS_ARGS_T_OPTSTR */ +/* Define to 1 if `pathconf' is member of `nfs_args_t'. */ +/* #undef HAVE_NFS_ARGS_T_PATHCONF */ + /* Define to 1 if `proto' is member of `nfs_args_t'. */ #define HAVE_NFS_ARGS_T_PROTO 1 +/* Define to 1 if `pseudoflavor' is member of `nfs_args_t'. */ +/* #undef HAVE_NFS_ARGS_T_PSEUDOFLAVOR */ + /* Define to 1 if `sotype' is member of `nfs_args_t'. */ #define HAVE_NFS_ARGS_T_SOTYPE 1 @@ -763,6 +814,7 @@ /* Define to 1 if you have the `opendir' function. */ #define HAVE_OPENDIR 1 + /* Define to 1 if `dsttime' is member of `pcfs_args_t'. */ /* #undef HAVE_PCFS_ARGS_T_DSTTIME */ @@ -833,6 +885,9 @@ /* Define to 1 if you have the <rpc/auth_des.h> header file. */ #define HAVE_RPC_AUTH_DES_H 1 +/* Define to 1 if you have the <rpc/auth.h> header file. */ +#define HAVE_RPC_AUTH_H 1 + /* Define to 1 if you have the <rpc/pmap_clnt.h> header file. */ #define HAVE_RPC_PMAP_CLNT_H 1 @@ -1160,6 +1215,24 @@ /* Define to 1 if you have the <tiuser.h> header file. */ /* #undef HAVE_TIUSER_H */ +/* Define to 1 if `ta_nodes_max' is member of `tmpfs_args_t'. */ +/* #undef HAVE_TMPFS_ARGS_T_TA_NODES_MAX */ + +/* Define to 1 if `ta_root_gid' is member of `tmpfs_args_t'. */ +/* #undef HAVE_TMPFS_ARGS_T_TA_ROOT_GID */ + +/* Define to 1 if `ta_root_mode' is member of `tmpfs_args_t'. */ +/* #undef HAVE_TMPFS_ARGS_T_TA_ROOT_MODE */ + +/* Define to 1 if `ta_root_uid' is member of `tmpfs_args_t'. */ +/* #undef HAVE_TMPFS_ARGS_T_TA_ROOT_UID */ + +/* Define to 1 if `ta_size_max' is member of `tmpfs_args_t'. */ +/* #undef HAVE_TMPFS_ARGS_T_TA_SIZE_MAX */ + +/* Define to 1 if `ta_version' is member of `tmpfs_args_t'. */ +/* #undef HAVE_TMPFS_ARGS_T_TA_VERSION */ + /* Define to 1 if you have the <tmpfs/tmp.h> header file. */ /* #undef HAVE_TMPFS_TMP_H */ @@ -1169,6 +1242,36 @@ /* Define to 1 if you have the `ualarm' function. */ #define HAVE_UALARM 1 +/* Define to 1 if `anon_gid' is member of `udf_args_t'. */ +/* #undef HAVE_UDF_ARGS_T_ANON_GID */ + +/* Define to 1 if `anon_uid' is member of `udf_args_t'. */ +/* #undef HAVE_UDF_ARGS_T_ANON_UID */ + +/* Define to 1 if `fspec' is member of `udf_args_t'. */ +/* #undef HAVE_UDF_ARGS_T_FSPEC */ + +/* Define to 1 if `gmtoff' is member of `udf_args_t'. */ +/* #undef HAVE_UDF_ARGS_T_GMTOFF */ + +/* Define to 1 if `nobody_gid' is member of `udf_args_t'. */ +/* #undef HAVE_UDF_ARGS_T_NOBODY_GID */ + +/* Define to 1 if `nobody_uid' is member of `udf_args_t'. */ +/* #undef HAVE_UDF_ARGS_T_NOBODY_UID */ + +/* Define to 1 if `sector_size' is member of `udf_args_t'. */ +/* #undef HAVE_UDF_ARGS_T_SECTOR_SIZE */ + +/* Define to 1 if `sessionnr' is member of `udf_args_t'. */ +/* #undef HAVE_UDF_ARGS_T_SESSIONNR */ + +/* Define to 1 if `udfmflags' is member of `udf_args_t'. */ +/* #undef HAVE_UDF_ARGS_T_UDFMFLAGS */ + +/* Define to 1 if `version' is member of `udf_args_t'. */ +/* #undef HAVE_UDF_ARGS_T_VERSION */ + /* Define to 1 if `flags' is member of `ufs_args_t'. */ /* #undef HAVE_UFS_ARGS_T_FLAGS */ @@ -1355,6 +1458,9 @@ /* Define to 1 if you have the `xdr_symlinkargs' function. */ #define HAVE_XDR_SYMLINKARGS 1 +/* Define to 1 if you have the `xdr_u_int64_t' function. */ +#define HAVE_XDR_U_INT64_T 1 + /* Define to 1 if you have the `xdr_writeargs' function. */ #define HAVE_XDR_WRITEARGS 1 @@ -1395,26 +1501,49 @@ /* #define HOST_NAME "trang.nuxi.org" */ /* Define name and version of host machine (eg. solaris2.5.1) */ -/* #define HOST_OS "freebsd8.0" */ +/* #define HOST_OS "freebsd12.0" */ /* Define only name of host machine OS (eg. solaris2) */ -/* #define HOST_OS_NAME "freebsd8" */ +/* #define HOST_OS_NAME "freebsd12" */ /* Define only version of host machine (eg. 2.5.1) */ -/* #define HOST_OS_VERSION "8.0" */ +/* #define HOST_OS_VERSION "12.0" */ /* Define name of host machine's vendor (eg. sun) */ #define HOST_VENDOR "undermydesk" +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#define LT_OBJDIR ".libs/" + /* Ignore permission bits */ /* #undef MNT2_CDFS_OPT_DEFPERM */ +/* Enable external attributes */ +#define MNT2_CDFS_OPT_EXTATT 0x4 + +/* Show file generations */ +#define MNT2_CDFS_OPT_GENS 0x2 + +/* Disable filename case translation */ +/* #undef MNT2_CDFS_OPT_NOCASETRANS */ + /* Use on-disk permission bits */ /* #undef MNT2_CDFS_OPT_NODEFPERM */ +/* Disable Joliet extensions */ +#define MNT2_CDFS_OPT_NOJOLIET 0x8 + +/* Disable Rock Ridge Interchange Protocol (RRIP) extensions */ +#define MNT2_CDFS_OPT_NORRIP 0x1 + /* Strip off extension from version string */ /* #undef MNT2_CDFS_OPT_NOVERSION */ +/* Enable Rock Ridge Interchange Protocol (RRIP) case insensitive filename + extensions */ +/* #undef MNT2_CDFS_OPT_RRCASEINS */ + /* Use Rock Ridge Interchange Protocol (RRIP) extensions */ /* #undef MNT2_CDFS_OPT_RRIP */ @@ -1454,6 +1583,9 @@ /* journaling filesystem (AIX's UFS/FFS) */ /* #undef MNT2_GEN_OPT_JFS */ +/* honor mandatory locking requests */ +/* #undef MNT2_GEN_OPT_MANDLOCK */ + /* do multi-component lookup on files */ /* #undef MNT2_GEN_OPT_MULTI */ @@ -1463,12 +1595,18 @@ /* NFS mount */ /* #undef MNT2_GEN_OPT_NFS */ +/* don't update access times */ +#define MNT2_GEN_OPT_NOATIME 0x10000000 + /* nocache (what?) */ /* #undef MNT2_GEN_OPT_NOCACHE */ /* do not interpret special device files */ #define MNT2_GEN_OPT_NODEV 0x0 +/* don't update directory access times */ +/* #undef MNT2_GEN_OPT_NODIRATIME */ + /* no exec calls allowed */ #define MNT2_GEN_OPT_NOEXEC 0x4 @@ -1512,7 +1650,7 @@ /* #undef MNT2_GEN_OPT_SYS5 */ /* Union mount */ -/* #undef MNT2_GEN_OPT_UNION */ +#define MNT2_GEN_OPT_UNION 0x20 /* set max secs for dir attr cache */ #define MNT2_NFS_OPT_ACDIRMAX 0x200000 @@ -1532,6 +1670,9 @@ /* hide mount type from df(1) */ /* #undef MNT2_NFS_OPT_AUTO */ +/* Linux broken setuid */ +/* #undef MNT2_NFS_OPT_BROKEN_SUID */ + /* set dead server retry thresh */ #define MNT2_NFS_OPT_DEADTHRESH 0x4000 @@ -1598,11 +1739,14 @@ /* don't cache attributes */ /* #undef MNT2_NFS_OPT_NOAC */ +/* does not support Access Control Lists */ +/* #undef MNT2_NFS_OPT_NOACL */ + /* Don't Connect the socket */ #define MNT2_NFS_OPT_NOCONN 0x80 /* no close-to-open consistency */ -/* #undef MNT2_NFS_OPT_NOCTO */ +#define MNT2_NFS_OPT_NOCTO 0x20000000 /* disallow interrupts on hard mounts */ /* #undef MNT2_NFS_OPT_NOINT */ @@ -1610,6 +1754,9 @@ /* Don't use locking */ /* #undef MNT2_NFS_OPT_NONLM */ +/* does not support readdir+ */ +/* #undef MNT2_NFS_OPT_NORDIRPLUS */ + /* Get lease for lookup */ /* #undef MNT2_NFS_OPT_NQLOOKLEASE */ @@ -1670,6 +1817,9 @@ /* spongy mount */ /* #undef MNT2_NFS_OPT_SPONGY */ +/* Reserved for nfsv4 */ +/* #undef MNT2_NFS_OPT_STRICTLOCK */ + /* set symlink cache time-to-live */ /* #undef MNT2_NFS_OPT_SYMTTL */ @@ -1679,6 +1829,9 @@ /* set initial timeout */ #define MNT2_NFS_OPT_TIMEO 0x8 +/* do not use shared cache for all mountpoints */ +/* #undef MNT2_NFS_OPT_UNSHARED */ + /* linux NFSv3 */ /* #undef MNT2_NFS_OPT_VER3 */ @@ -1781,6 +1934,9 @@ /* Mount Table option string: Don't cache attributes at all */ /* #undef MNTTAB_OPT_NOAC */ +/* Access Control Lists are not supported */ +/* #undef MNTTAB_OPT_NOACL */ + /* Mount Table option string: No auto (what?) */ /* #undef MNTTAB_OPT_NOAUTO */ @@ -1901,20 +2057,35 @@ /* Mount-table entry name for EFS filesystem (irix) */ /* #undef MNTTAB_TYPE_EFS */ +/* Mount-table entry name for EXT2 filesystem (linux) */ +/* #undef MNTTAB_TYPE_EXT2 */ + +/* Mount-table entry name for EXT3 filesystem (linux) */ +/* #undef MNTTAB_TYPE_EXT3 */ + +/* Mount-table entry name for EXT4 filesystem (linux) */ +/* #undef MNTTAB_TYPE_EXT4 */ + /* Mount-table entry name for FFS filesystem */ /* #undef MNTTAB_TYPE_FFS */ /* Mount-table entry name for LOFS filesystem */ /* #undef MNTTAB_TYPE_LOFS */ +/* Mount-table entry name for LUSTRE filesystem */ +/* #undef MNTTAB_TYPE_LUSTRE */ + /* Mount-table entry name for MFS filesystem */ -/* #undef MNTTAB_TYPE_MFS */ +#define MNTTAB_TYPE_MFS "mfs" /* Mount-table entry name for NFS filesystem */ #define MNTTAB_TYPE_NFS "nfs" /* Mount-table entry name for NFS3 filesystem */ -#define MNTTAB_TYPE_NFS3 "nfs3" +#define MNTTAB_TYPE_NFS3 "nfs" + +/* Mount-table entry name for NFS4 filesystem */ +#define MNTTAB_TYPE_NFS4 "nfs" /* Mount-table entry name for NULLFS (loopback on bsd44) filesystem */ #define MNTTAB_TYPE_NULLFS "nullfs" @@ -1925,8 +2096,11 @@ /* Mount-table entry name for TFS filesystem */ /* #undef MNTTAB_TYPE_TFS */ -/* Mount-table entry name for TMPFS filesystem */ -/* #undef MNTTAB_TYPE_TMPFS */ +/* Mount(2) type/name for TMPFS filesystem */ +#define MNTTAB_TYPE_TMPFS "tmpfs" + +/* Mount(2) type/name for UDF filesystem */ +#define MNTTAB_TYPE_UDF "udf" /* Mount-table entry name for UFS filesystem */ #define MNTTAB_TYPE_UFS "ufs" @@ -1958,6 +2132,15 @@ /* Mount(2) type/name for EFS filesystem (irix) */ /* #undef MOUNT_TYPE_EFS */ +/* Mount(2) type/name for EXT2 filesystem (linux) */ +/* #undef MOUNT_TYPE_EXT2 */ + +/* Mount(2) type/name for EXT3 filesystem (linux) */ +/* #undef MOUNT_TYPE_EXT3 */ + +/* Mount(2) type/name for EXT4 filesystem (linux) */ +/* #undef MOUNT_TYPE_EXT4 */ + /* Mount(2) type/name for FFS filesystem */ /* #undef MOUNT_TYPE_FFS */ @@ -1968,7 +2151,7 @@ /* #undef MOUNT_TYPE_LOFS */ /* Mount(2) type/name for MFS filesystem */ -/* #undef MOUNT_TYPE_MFS */ +#define MOUNT_TYPE_MFS "mfs" /* Mount(2) type/name for NFS filesystem */ #define MOUNT_TYPE_NFS "nfs" @@ -1976,6 +2159,9 @@ /* Mount(2) type/name for NFS3 filesystem */ #define MOUNT_TYPE_NFS3 MOUNT_NFS3 +/* Mount(2) type/name for NFS4 filesystem */ +/* #undef MOUNT_TYPE_NFS4 */ + /* Mount(2) type/name for NULLFS (loopback on bsd44) filesystem */ #define MOUNT_TYPE_NULLFS "nullfs" @@ -1984,7 +2170,10 @@ #define MOUNT_TYPE_PCFS "msdosfs" /* Mount(2) type/name for TFS filesystem */ -/* #undef MOUNT_TYPE_TFS */ +#define MOUNT_TYPE_TMPFS "tmpfs" + +/* Mount(2) type/name for UDF filesystem */ +#define MOUNT_TYPE_UDF "udf" /* Mount(2) type/name for TMPFS filesystem */ /* #undef MOUNT_TYPE_TMPFS */ @@ -2030,16 +2219,19 @@ #define PACKAGE_NAME "am-utils" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "am-utils 6.1.5" +#define PACKAGE_STRING "am-utils 6.2" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "am-utils" +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + /* Define to the version of this package. */ -#define PACKAGE_VERSION "6.1.5" +#define PACKAGE_VERSION "6.2" /* Type of the 6th argument to recvfrom() */ -#define RECVFROM_FROMLEN_TYPE int +#define RECVFROM_FROMLEN_TYPE socklen_t /* should signal handlers be reinstalled? */ /* #undef REINSTALL_SIGNAL_HANDLER */ @@ -2066,20 +2258,49 @@ /* #undef TM_IN_SYS_TIME */ /* Define user name */ -/* #define USER_NAME "obrien" */ +/* #define USER_NAME "cy" */ /* define if must NOT use NFS "noconn" option */ #define USE_CONNECTED_NFS_SOCKETS 1 +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# define _ALL_SOURCE 1 +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# define _TANDEM_SOURCE 1 +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif + /* define if must use NFS "noconn" option */ /* #undef USE_UNCONNECTED_NFS_SOCKETS */ /* Version number of package */ -#define VERSION "6.1.5" - -/* Define to 1 if your processor stores words with the most significant byte - first (like Motorola and SPARC, unlike Intel and VAX). */ -/* #undef WORDS_BIGENDIAN */ +#define VERSION "6.2" + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +/* # undef WORDS_BIGENDIAN */ +# endif +#endif /* Define to the type of xdr procedure type */ #define XDRPROC_T_TYPE xdrproc_t @@ -2091,13 +2312,27 @@ `char[]'. */ #define YYTEXT_POINTER 1 -/* Define to 1 if on AIX 3. - System headers sometimes define this. - We just want to avoid a redefinition error message. */ -#ifndef _ALL_SOURCE -/* # undef _ALL_SOURCE */ +/* Enable large inode numbers on Mac OS X 10.5. */ +#ifndef _DARWIN_USE_64_BIT_INODE +# define _DARWIN_USE_64_BIT_INODE 1 #endif +/* Number of bits in a file offset, on hosts where this is settable. */ +/* #undef _FILE_OFFSET_BITS */ + +/* Define for large files, on AIX-style hosts. */ +/* #undef _LARGE_FILES */ + +/* Define to 1 if on MINIX. */ +/* #undef _MINIX */ + +/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +/* #undef _POSIX_1_SOURCE */ + +/* Define to 1 if you need to in order for `stat' and other things to work. */ +/* #undef _POSIX_SOURCE */ + /* Define a type/structure for an NFS V2 filehandle */ #define am_nfs_fh nfs_fh @@ -2155,7 +2390,7 @@ /* Check if rpcvers_t is defined in <rpc/types.h> */ /* #undef rpcvers_t */ -/* Define to `unsigned' if <sys/types.h> does not define. */ +/* Define to `unsigned int' if <sys/types.h> does not define. */ /* #undef size_t */ /* Define to `long' if <sys/types.h> does not define. */ @@ -2164,6 +2399,9 @@ /* Define a type for the tmpfs_args structure */ /* #undef tmpfs_args_t */ +/* Define a type for the udf_args structure */ +/* #undef udf_args_t */ + /* Define a type for the ufs_args structure */ #define ufs_args_t struct ufs_args diff --git a/usr.sbin/bsnmpd/bsnmpd/Makefile b/usr.sbin/bsnmpd/bsnmpd/Makefile index 1724cea..b9e99a0 100644 --- a/usr.sbin/bsnmpd/bsnmpd/Makefile +++ b/usr.sbin/bsnmpd/bsnmpd/Makefile @@ -15,8 +15,107 @@ XSYM= snmpMIB begemotSnmpdModuleTable begemotSnmpd begemotTrapSinkTable \ begemotSnmpdTransUdp begemotSnmpdTransLsock begemotSnmpdLocalPortTable \ freeBSD freeBSDVersion CLEANFILES= oid.h tree.c tree.h + MAN= bsnmpd.1 snmpmod.3 +MLINKS+= snmpmod.3 FIND_OBJECT_INT.3 +MLINKS+= snmpmod.3 FIND_OBJECT_INT_LINK.3 +MLINKS+= snmpmod.3 FIND_OBJECT_INT_LINK_INDEX.3 +MLINKS+= snmpmod.3 FIND_OBJECT_OID.3 +MLINKS+= snmpmod.3 FIND_OBJECT_OID_LINK.3 +MLINKS+= snmpmod.3 FIND_OBJECT_OID_LINK_INDEX.3 +MLINKS+= snmpmod.3 INSERT_OBJECT_INT.3 +MLINKS+= snmpmod.3 INSERT_OBJECT_INT_LINK.3 +MLINKS+= snmpmod.3 INSERT_OBJECT_INT_LINK_INDEX.3 +MLINKS+= snmpmod.3 INSERT_OBJECT_OID.3 +MLINKS+= snmpmod.3 INSERT_OBJECT_OID_LINK.3 +MLINKS+= snmpmod.3 INSERT_OBJECT_OID_LINK_INDEX.3 +MLINKS+= snmpmod.3 NEXT_OBJECT_INT.3 +MLINKS+= snmpmod.3 NEXT_OBJECT_INT_LINK.3 +MLINKS+= snmpmod.3 NEXT_OBJECT_INT_LINK_INDEX.3 +MLINKS+= snmpmod.3 NEXT_OBJECT_OID.3 +MLINKS+= snmpmod.3 NEXT_OBJECT_OID_LINK.3 +MLINKS+= snmpmod.3 NEXT_OBJECT_OID_LINK_INDEX.3 +MLINKS+= snmpmod.3 bsnmpd_get_target_stats.3 +MLINKS+= snmpmod.3 bsnmpd_get_usm_stats.3 +MLINKS+= snmpmod.3 bsnmpd_reset_usm_stats.3 +MLINKS+= snmpmod.3 buf_alloc.3 +MLINKS+= snmpmod.3 buf_size.3 +MLINKS+= snmpmod.3 comm_define.3 +MLINKS+= snmpmod.3 community.3 +MLINKS+= snmpmod.3 fd_deselect.3 +MLINKS+= snmpmod.3 fd_resume.3 +MLINKS+= snmpmod.3 fd_select.3 +MLINKS+= snmpmod.3 fd_suspend.3 +MLINKS+= snmpmod.3 get_ticks.3 +MLINKS+= snmpmod.3 index_append.3 +MLINKS+= snmpmod.3 index_append_off.3 +MLINKS+= snmpmod.3 index_compare.3 +MLINKS+= snmpmod.3 index_compare_off.3 +MLINKS+= snmpmod.3 index_decode.3 +MLINKS+= snmpmod.3 ip_commit.3 +MLINKS+= snmpmod.3 ip_get.3 +MLINKS+= snmpmod.3 ip_rollback.3 +MLINKS+= snmpmod.3 ip_save.3 +MLINKS+= snmpmod.3 or_register.3 +MLINKS+= snmpmod.3 or_unregister.3 +MLINKS+= snmpmod.3 oid_commit.3 +MLINKS+= snmpmod.3 oid_get.3 +MLINKS+= snmpmod.3 oid_rollback.3 +MLINKS+= snmpmod.3 oid_save.3 +MLINKS+= snmpmod.3 oid_usmNotInTimeWindows.3 +MLINKS+= snmpmod.3 oid_usmUnknownEngineIDs.3 +MLINKS+= snmpmod.3 oid_zeroDotZero.3 +MLINKS+= snmpmod.3 reqid_allocate.3 +MLINKS+= snmpmod.3 reqid_base.3 +MLINKS+= snmpmod.3 reqid_istype.3 +MLINKS+= snmpmod.3 reqid_next.3 +MLINKS+= snmpmod.3 reqid_type.3 +MLINKS+= snmpmod.3 snmp_input_finish.3 +MLINKS+= snmpmod.3 snmp_input_start.3 +MLINKS+= snmpmod.3 snmp_output.3 +MLINKS+= snmpmod.3 snmp_pdu_auth_access.3 +MLINKS+= snmpmod.3 snmp_send_port.3 +MLINKS+= snmpmod.3 snmp_send_trap.3 +MLINKS+= snmpmod.3 snmpd_target_stat.3 +MLINKS+= snmpmod.3 snmpd_usmstats.3 +MLINKS+= snmpmod.3 start_tick.3 +MLINKS+= snmpmod.3 string_commit.3 +MLINKS+= snmpmod.3 string_free.3 +MLINKS+= snmpmod.3 string_get.3 +MLINKS+= snmpmod.3 string_get_max.3 +MLINKS+= snmpmod.3 string_rollback.3 +MLINKS+= snmpmod.3 string_save.3 +MLINKS+= snmpmod.3 systemg.3 +MLINKS+= snmpmod.3 this_tick.3 +MLINKS+= snmpmod.3 timer_start.3 +MLINKS+= snmpmod.3 timer_start_repeat.3 +MLINKS+= snmpmod.3 timer_stop.3 +MLINKS+= snmpmod.3 target_activate_address.3 +MLINKS+= snmpmod.3 target_address.3 +MLINKS+= snmpmod.3 target_delete_address.3 +MLINKS+= snmpmod.3 target_delete_notify.3 +MLINKS+= snmpmod.3 target_delete_param.3 +MLINKS+= snmpmod.3 target_first_address.3 +MLINKS+= snmpmod.3 target_first_notify.3 +MLINKS+= snmpmod.3 target_first_param.3 +MLINKS+= snmpmod.3 target_flush_all.3 +MLINKS+= snmpmod.3 target_next_address.3 +MLINKS+= snmpmod.3 target_next_notify.3 +MLINKS+= snmpmod.3 target_next_param.3 +MLINKS+= snmpmod.3 target_new_address.3 +MLINKS+= snmpmod.3 target_new_notify.3 +MLINKS+= snmpmod.3 target_new_param.3 +MLINKS+= snmpmod.3 target_notify.3 +MLINKS+= snmpmod.3 target_param.3 +MLINKS+= snmpmod.3 usm_delete_user.3 +MLINKS+= snmpmod.3 usm_find_user.3 +MLINKS+= snmpmod.3 usm_first_user.3 +MLINKS+= snmpmod.3 usm_flush_users.3 +MLINKS+= snmpmod.3 usm_next_user.3 +MLINKS+= snmpmod.3 usm_new_user.3 +MLINKS+= snmpmod.3 usm_user.3 + FILESGROUPS= BMIBS DEFS BMIBS= FOKUS-MIB.txt BEGEMOT-MIB.txt BEGEMOT-SNMPD.txt @@ -26,10 +125,9 @@ DEFSDIR= ${SHAREDIR}/snmp/defs CFLAGS+= -DSNMPTREE_TYPES CFLAGS+= -I${CONTRIB}/lib -I${CONTRIB}/snmpd -I. -DUSE_LIBBEGEMOT -CFLAGS+= -DUSE_TCPWRAPPERS CFLAGS+= -DHAVE_STDINT_H -DHAVE_INTTYPES_H -DHAVE_ERR_H -DHAVE_STRLCPY -DPADD= ${LIBBEGEMOT} ${LIBBSNMP} ${LIBWRAP} -LDADD= -lbegemot -lbsnmp -lwrap +DPADD= ${LIBBEGEMOT} ${LIBBSNMP} +LDADD= -lbegemot -lbsnmp LDFLAGS= -Wl,-export-dynamic @@ -37,6 +135,12 @@ LDFLAGS= -Wl,-export-dynamic CFLAGS+= -DHAVE_LIBCRYPTO .endif +.if ${MK_TCP_WRAPPERS} != "no" +CFLAGS+= -DUSE_TCPWRAPPERS +DPADD+= ${LIBWRAP} +LDADD+= -lwrap +.endif + oid.h: tree.def Makefile gensnmptree -e ${XSYM} < ${.ALLSRC:M*.def} > ${.TARGET} diff --git a/usr.sbin/bsnmpd/modules/Makefile b/usr.sbin/bsnmpd/modules/Makefile index 45558b7..09598b3 100644 --- a/usr.sbin/bsnmpd/modules/Makefile +++ b/usr.sbin/bsnmpd/modules/Makefile @@ -10,13 +10,15 @@ _snmp_atm= snmp_atm SUBDIR= ${_snmp_atm} \ snmp_bridge \ - snmp_hast \ snmp_hostres \ snmp_mibII \ snmp_target \ snmp_usm \ snmp_vacm \ - snmp_wlan + +.if ${MK_HAST} != "no" +SUBDIR+=snmp_hast +.endif .if ${MK_PF} != "no" SUBDIR+=snmp_pf @@ -26,6 +28,10 @@ SUBDIR+=snmp_pf SUBDIR+=snmp_netgraph .endif +.if ${MK_WIRELESS} != "no" +SUBDIR+=snmp_wlan +.endif + INCS= snmpmod.h INCSDIR= ${INCLUDEDIR}/bsnmp diff --git a/usr.sbin/bsnmpd/modules/snmp_atm/BEGEMOT-ATM-FREEBSD-MIB.txt b/usr.sbin/bsnmpd/modules/snmp_atm/BEGEMOT-ATM-FREEBSD-MIB.txt index 83c4e5c..85339a3 100644 --- a/usr.sbin/bsnmpd/modules/snmp_atm/BEGEMOT-ATM-FREEBSD-MIB.txt +++ b/usr.sbin/bsnmpd/modules/snmp_atm/BEGEMOT-ATM-FREEBSD-MIB.txt @@ -4,7 +4,7 @@ -- All rights reserved. -- -- Author: Hartmut Brandt <harti@freebsd.org> --- +-- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions -- are met: @@ -13,7 +13,7 @@ -- 2. Redistributions in binary form must reproduce the above copyright -- notice, this list of conditions and the following disclaimer in the -- documentation and/or other materials provided with the distribution. --- +-- -- THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND -- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -25,7 +25,7 @@ -- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -- SUCH DAMAGE. --- +-- -- $FreeBSD$ -- -- Private Begemot MIB for ATM interfaces on FreeBSD diff --git a/usr.sbin/bsnmpd/modules/snmp_atm/atm_sys.c b/usr.sbin/bsnmpd/modules/snmp_atm/atm_sys.c index 525e805..c0699f7 100644 --- a/usr.sbin/bsnmpd/modules/snmp_atm/atm_sys.c +++ b/usr.sbin/bsnmpd/modules/snmp_atm/atm_sys.c @@ -7,7 +7,7 @@ * All rights reserved. * * Author: Hartmut Brandt <harti@freebsd.org> - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -16,7 +16,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -215,7 +215,7 @@ atmif_sys_attach_if(struct atmif_priv *aif) return (0); } -/* +/* * Table of all ATM interfaces - Ng part */ int diff --git a/usr.sbin/bsnmpd/modules/snmp_bridge/BEGEMOT-BRIDGE-MIB.txt b/usr.sbin/bsnmpd/modules/snmp_bridge/BEGEMOT-BRIDGE-MIB.txt index d55ea3c..ba3ae49 100644 --- a/usr.sbin/bsnmpd/modules/snmp_bridge/BEGEMOT-BRIDGE-MIB.txt +++ b/usr.sbin/bsnmpd/modules/snmp_bridge/BEGEMOT-BRIDGE-MIB.txt @@ -41,7 +41,7 @@ IMPORTS FROM BEGEMOT-MIB; begemotBridge MODULE-IDENTITY - LAST-UPDATED "200708060000Z" + LAST-UPDATED "201612170000Z" ORGANIZATION "Sofia University St. Kliment Ohridski" CONTACT-INFO " Shteryana Shopova @@ -56,6 +56,9 @@ begemotBridge MODULE-IDENTITY E-Mail: syrinx@FreeBSD.org" DESCRIPTION "The Begemot MIB for managing bridge interfaces." + REVISION "201612170000Z" + DESCRIPTION + "Address some minor typos and grammar mistakes." REVISION "200708060000Z" DESCRIPTION "Third revision adds begemotBridgeBasePortPrivate @@ -108,7 +111,7 @@ begemotBridgePf OBJECT IDENTIFIER ::= { begemotBridge 4 } begemotBridgeConfigObjects OBJECT IDENTIFIER ::= { begemotBridge 5 } -- ---------------------------------------------------------- -- --- the base Bridge interface table +-- the base Bridge interface table -- ---------------------------------------------------------- -- begemotBridgeBaseTable OBJECT-TYPE @@ -177,7 +180,7 @@ begemotBridgeBaseType OBJECT-TYPE perform." ::= { begemotBridgeBaseEntry 4 } -begemotBridgeBaseStatus OBJECT-TYPE +begemotBridgeBaseStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current @@ -187,7 +190,7 @@ begemotBridgeBaseStatus OBJECT-TYPE ::= { begemotBridgeBaseEntry 5 } -- ---------------------------------------------------------- -- --- the base Bridge ports table +-- the base Bridge ports table -- ---------------------------------------------------------- -- begemotBridgeBasePortTable OBJECT-TYPE @@ -289,7 +292,7 @@ begemotBridgeBasePortPrivate OBJECT-TYPE ::= { begemotBridgeBasePortEntry 7 } -- ---------------------------------------------------------- -- --- the Bridge interface STP table +-- the Bridge interface STP table -- ---------------------------------------------------------- -- begemotBridgeStpTable OBJECT-TYPE @@ -526,7 +529,7 @@ begemotBridgeStpTxHoldCount OBJECT-TYPE ::= { begemotBridgeStpEntry 16 } -- ---------------------------------------------------------- -- --- the Bridge STP ports table +-- the Bridge STP ports table -- ---------------------------------------------------------- -- begemotBridgeStpPortTable OBJECT-TYPE @@ -821,7 +824,7 @@ begemotBridgeStpPortAdminPathCost OBJECT-TYPE ::= { begemotBridgeStpExtPortEntry 6 } -- ---------------------------------------------------------- -- --- the Bridge interface Transparent bridging table +-- the Bridge interface Transparent bridging table -- ---------------------------------------------------------- -- begemotBridgeTpTable OBJECT-TYPE @@ -856,7 +859,7 @@ begemotBridgeTpLearnedEntryDiscards OBJECT-TYPE DESCRIPTION "The total number of Forwarding Database entries that would have been learnt, but have been discarded due to Forwarding - Address Table having reached it's maximum entries limit." + Address Table having reached its maximum entries limit." ::= { begemotBridgeTpEntry 1 } begemotBridgeTpAgingTime OBJECT-TYPE @@ -874,7 +877,7 @@ begemotBridgeTpMaxAddresses OBJECT-TYPE MAX-ACCESS read-write STATUS current DESCRIPTION - "The maximum number of entires that this bridge can + "The maximum number of entries that this bridge can learn in it's Forwarding Address Table and use for making forwarding decisions." ::= { begemotBridgeTpEntry 3 } diff --git a/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_addrs.c b/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_addrs.c index 0daceec..33de19f 100644 --- a/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_addrs.c +++ b/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_addrs.c @@ -330,7 +330,7 @@ bridge_addrs_dump(struct bridge_if *bif) */ /* - * Construct the SNMP index from the address DST Mac. + * Construct the SNMP index from the address DST Mac. */ static void bridge_addrs_index_append(struct asn_oid *oid, uint sub, @@ -449,7 +449,7 @@ get: /* * Construct the SNMP index from the bridge interface name - * and the address DST Mac. + * and the address DST Mac. */ static int bridge_addrs_begemot_index_append(struct asn_oid *oid, uint sub, @@ -477,7 +477,7 @@ bridge_addrs_begemot_index_append(struct asn_oid *oid, uint sub, /* * Find a bridge address entry by the bridge interface name - * and the address DST Mac. + * and the address DST Mac. */ static struct tp_entry * bridge_addrs_begemot_get(const struct asn_oid *oid, uint sub) @@ -507,7 +507,7 @@ bridge_addrs_begemot_get(const struct asn_oid *oid, uint sub) /* * Find the next bridge address entry by the bridge interface name - * and the address DST Mac. + * and the address DST Mac. */ static struct tp_entry * bridge_addrs_begemot_getnext(const struct asn_oid *oid, uint sub) diff --git a/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_if.c b/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_if.c index e5f5c50..fd7fba0 100644 --- a/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_if.c +++ b/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_if.c @@ -433,7 +433,7 @@ bridge_update_bif(struct bridge_if *bif) } /* - * Update all bridge interfaces' ports only - + * Update all bridge interfaces' ports only - * make sure each bridge interface exists first. */ void diff --git a/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_port.c b/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_port.c index 0127cea..cbb8dc8 100644 --- a/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_port.c +++ b/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_port.c @@ -626,7 +626,7 @@ op_dot1d_stp_ext_port(struct snmp_context *ctx, struct snmp_value *val, return (SNMP_ERR_NOERROR); case LEAF_dot1dStpPortAdminPointToPoint: - if (val->v.integer < 0 || val->v.integer > + if (val->v.integer < 0 || val->v.integer > StpPortAdminPointToPointType_auto) return (SNMP_ERR_WRONG_VALUE); @@ -864,7 +864,7 @@ bridge_port_index_getnext(const struct asn_oid *oid, uint sub, int8_t status) for (i = 0; i < oid->subs[sub]; i++) bif_name[i] = oid->subs[sub + i + 1]; bif_name[i] = '\0'; - + port_no = oid->subs[sub + i + 1]; if ((bif = bridge_if_find_ifname(bif_name)) == NULL || @@ -937,7 +937,7 @@ bridge_port_set_status(struct snmp_context *ctx, ctx->scratch->int1 = bp->status; bp->status = RowStatus_active; break; - + case RowStatus_notInService: if (bp == NULL || bp->span_enable == 0 || bp->status == RowStatus_active) diff --git a/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_sys.c b/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_sys.c index f8644f4..9caa331 100644 --- a/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_sys.c +++ b/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_sys.c @@ -295,7 +295,7 @@ bridge_set_priority(struct bridge_if *bif, int32_t priority) /* * Re-fetching the data from the driver after that might be a good - * idea, since changing our bridge's priority should invoke + * idea, since changing our bridge's priority should invoke * recalculation of the active spanning tree topology in the network. */ bif->priority = priority; @@ -1319,7 +1319,7 @@ bridge_addrs_getinfo_ifalist(struct bridge_if *bif, struct ifbareq **buf) struct ifbaconf bac; struct ifdrv ifd; - *buf = NULL; + *buf = NULL; strlcpy(ifd.ifd_name, bif->bif_name, IFNAMSIZ); ifd.ifd_cmd = BRDGRTS; ifd.ifd_len = sizeof(bac); @@ -1449,8 +1449,8 @@ static struct { int32_t bridge_get_pfval(uint8_t which) { - if (which > sizeof(bridge_pf_sysctl) / sizeof(bridge_pf_sysctl[0]) - || which < 1) + + if (which > nitems(bridge_pf_sysctl) || which < 1) return (-1); return (bridge_pf_sysctl[which - 1].val); @@ -1472,7 +1472,7 @@ bridge_do_pfctl(int32_t bridge_ctl, enum snmp_op op, int32_t *val) } else s_len = 0; - len = sizeof(i); + len = sizeof(i); strcpy(mib_name, bridge_sysctl); diff --git a/usr.sbin/bsnmpd/modules/snmp_bridge/snmp_bridge.3 b/usr.sbin/bsnmpd/modules/snmp_bridge/snmp_bridge.3 index b77b5f7..39cb059 100644 --- a/usr.sbin/bsnmpd/modules/snmp_bridge/snmp_bridge.3 +++ b/usr.sbin/bsnmpd/modules/snmp_bridge/snmp_bridge.3 @@ -1,7 +1,7 @@ .\"- .\" Copyright (C) 2006 Shteryana Shopova <syrinx@FreeBSD.org> .\" All rights reserved. -.\" +.\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: @@ -10,7 +10,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" +.\" .\" THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_device_tbl.c b/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_device_tbl.c index 1741502..8216acc 100644 --- a/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_device_tbl.c +++ b/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_device_tbl.c @@ -123,7 +123,7 @@ device_entry_create(const char *name, const char *location, const char *descr) if (map == NULL) { /* new object - get a new index */ if (next_device_index > INT_MAX) { - syslog(LOG_ERR, + syslog(LOG_ERR, "%s: hrDeviceTable index wrap", __func__); /* There isn't much we can do here. * If the next_swins_index is consumed diff --git a/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_fs_tbl.c b/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_fs_tbl.c index 91505d5..9470677 100644 --- a/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_fs_tbl.c +++ b/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_fs_tbl.c @@ -131,7 +131,7 @@ static const struct { const struct asn_oid *oid; /* the OID to return */ } fs_type_map[] = { { "ufs", &OIDX_hrFSBerkeleyFFS_c }, - { "zfs", &OIDX_hrFSOther_c }, + { "zfs", &OIDX_hrFSOther_c }, { "cd9660", &OIDX_hrFSiso9660_c }, { "nfs", &OIDX_hrFSNFS_c }, { "ext2fs", &OIDX_hrFSLinuxExt2_c }, @@ -167,7 +167,7 @@ fs_entry_create(const char *name) /* new object - get a new index */ if (next_fs_index > INT_MAX) { /* Unrecoverable error - die clean and quicly*/ - syslog(LOG_ERR, "%s: hrFSTable index wrap", __func__); + syslog(LOG_ERR, "%s: hrFSTable index wrap", __func__); errx(EX_SOFTWARE, "hrFSTable index wrap"); } diff --git a/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_partition_tbl.c b/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_partition_tbl.c index 65c0012..fa0d2bd 100644 --- a/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_partition_tbl.c +++ b/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_partition_tbl.c @@ -177,7 +177,7 @@ partition_entry_create(int32_t ds_index, const char *chunk_name) if (next_partition_index > INT_MAX) { /* Unrecoverable error - die clean and quicly*/ - syslog(LOG_ERR, "%s: hrPartitionTable index wrap", + syslog(LOG_ERR, "%s: hrPartitionTable index wrap", __func__); errx(EX_SOFTWARE, "hrPartitionTable index wrap"); } diff --git a/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_scalars.c b/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_scalars.c index ee7d4b1..6634ae2 100644 --- a/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_scalars.c +++ b/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_scalars.c @@ -33,7 +33,7 @@ * Host Resources MIB scalars implementation for SNMPd. */ -#include <sys/types.h> +#include <sys/param.h> #include <sys/sysctl.h> #include <pwd.h> @@ -85,7 +85,7 @@ OS_getSystemUptime(uint32_t *ut) int mib[2] = { CTL_KERN, KERN_BOOTTIME }; size_t len = sizeof(kernel_boot_timestamp); - if (sysctl(mib, 2, &kernel_boot_timestamp, + if (sysctl(mib, nitems(mib), &kernel_boot_timestamp, &len, NULL, 0) == -1) { syslog(LOG_ERR, "sysctl KERN_BOOTTIME failed: %m"); return (SNMP_ERR_GENERR); @@ -193,7 +193,7 @@ OS_getSystemInitialLoadParameters(u_char **params) syslog(LOG_ERR, "malloc failed"); return (SNMP_ERR_GENERR); } - if (sysctl(mib, 2, buf, &buf_len, NULL, 0)) { + if (sysctl(mib, 2, buf, &buf_len, NULL, 0)) { syslog(LOG_ERR, "sysctl({CTL_KERN,KERN_BOOTFILE}) failed: %m"); free(buf); @@ -296,7 +296,7 @@ OS_getMemorySize(uint32_t *ms) *ms = UINT32_MAX; else *ms = phys_mem_size; - return (SNMP_ERR_NOERROR); + return (SNMP_ERR_NOERROR); } /* @@ -360,7 +360,7 @@ OS_setSystemDate(const struct timeval *timeval_to_set) if (settimeofday(timeval_to_set, NULL) == -1) { syslog(LOG_ERR, "settimeofday failed: %m"); return (SNMP_ERR_GENERR); - } + } return (SNMP_ERR_NOERROR); } @@ -378,7 +378,7 @@ op_hrSystem(struct snmp_context *ctx, struct snmp_value *value, switch (curr_op) { - case SNMP_OP_GET: + case SNMP_OP_GET: switch (value->var.subs[sub - 1]) { case LEAF_hrSystemUptime: diff --git a/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.c b/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.c index 26bd919..4709c9a 100644 --- a/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.c +++ b/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.c @@ -163,7 +163,7 @@ hostres_start(void) start_processor_tbl(hostres_module); start_network_tbl(); - HRDBG("done."); + HRDBG("done."); } /* this identifies the HOST RESOURCES mib module */ @@ -175,8 +175,8 @@ const struct snmp_module config = { NULL, NULL, hostres_start, - NULL, /* proxy a PDU */ - hostres_ctree, /* see the generated hostres_tree.h */ + NULL, /* proxy a PDU */ + hostres_ctree, /* see the generated hostres_tree.h */ hostres_CTREE_SIZE, /* see the generated hostres_tree.h */ NULL }; diff --git a/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_storage_tbl.c b/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_storage_tbl.c index ced7e8d..f7b6537 100644 --- a/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_storage_tbl.c +++ b/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_storage_tbl.c @@ -153,7 +153,7 @@ storage_entry_create(const char *name) if (map == NULL) { /* new object - get a new index */ if (next_storage_index > INT_MAX) { - syslog(LOG_ERR, + syslog(LOG_ERR, "%s: hrStorageTable index wrap", __func__); errx(EX_SOFTWARE, "hrStorageTable index wrap"); } @@ -188,7 +188,7 @@ storage_entry_create(const char *name) syslog(LOG_WARNING, "%s: %m", __func__); return (NULL); } - memset(entry, 0, sizeof(*entry)); + memset(entry, 0, sizeof(*entry)); entry->index = map->hrIndex; @@ -374,10 +374,13 @@ storage_OS_get_memstat(void) static void storage_OS_get_swap(void) { - int nswapdev = 0; - size_t len = sizeof(nswapdev); struct storage_entry *entry; char swap_w_prefix[SE_DESC_MLEN]; + size_t len; + int nswapdev; + + len = sizeof(nswapdev); + nswapdev = 0; if (sysctlbyname("vm.nswapdev", &nswapdev, &len, NULL,0 ) < 0) { syslog(LOG_ERR, diff --git a/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_swinstalled_tbl.c b/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_swinstalled_tbl.c index 5fa5b4c..c7eecc5 100644 --- a/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_swinstalled_tbl.c +++ b/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_swinstalled_tbl.c @@ -50,7 +50,7 @@ #include "hostres_oid.h" #include "hostres_tree.h" -#define CONTENTS_FNAME "+CONTENTS" +#define CONTENTS_FNAME "+CONTENTS" enum SWInstalledType { SWI_UNKNOWN = 1, @@ -136,7 +136,7 @@ swins_entry_create(const char *name) size_t name_len; /* new object - get a new index */ if (next_swins_index > INT_MAX) { - syslog(LOG_ERR, "%s: hrSWInstalledTable index wrap", + syslog(LOG_ERR, "%s: hrSWInstalledTable index wrap", __func__ ); /* There isn't much we can do here. * If the next_swins_index is consumed @@ -292,7 +292,7 @@ swins_get_packages(void) struct stat sb; DIR *p_dir; struct dirent *ent; - struct tm k_ts; + struct tm k_ts; char *pkg_file; struct swins_entry *entry; int ret = 0; @@ -327,7 +327,7 @@ swins_get_packages(void) return (-1); } - while (errno = 0, (ent = readdir(p_dir)) != NULL) { + while (errno = 0, (ent = readdir(p_dir)) != NULL) { HRDBG(" pkg file: %s", ent->d_name); /* check that the contents file is a regular file */ @@ -371,7 +371,7 @@ swins_get_packages(void) entry->type = (int32_t)SWI_APPLICATION; entry->date_len = make_date_time(entry->date, &k_ts, 0); - } + } if (errno != 0) { syslog(LOG_ERR, "hrSWInstalledTable: readdir_r(\"%s\") failed:" diff --git a/usr.sbin/bsnmpd/modules/snmp_hostres/snmp_hostres.3 b/usr.sbin/bsnmpd/modules/snmp_hostres/snmp_hostres.3 index 774c027..1c7e295 100644 --- a/usr.sbin/bsnmpd/modules/snmp_hostres/snmp_hostres.3 +++ b/usr.sbin/bsnmpd/modules/snmp_hostres/snmp_hostres.3 @@ -2,7 +2,7 @@ .\" Copyright (C) 2005-2006 .\" The FreeBSD Project. .\" All rights reserved. -.\" +.\" .\" Author: Harti Brandt <harti@FreeBSD.org> .\" .\" Redistribution and use in source and binary forms, with or without @@ -13,7 +13,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" +.\" .\" THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE diff --git a/usr.sbin/bsnmpd/modules/snmp_netgraph/snmp_netgraph.c b/usr.sbin/bsnmpd/modules/snmp_netgraph/snmp_netgraph.c index d9d136a..4b1da05 100644 --- a/usr.sbin/bsnmpd/modules/snmp_netgraph/snmp_netgraph.c +++ b/usr.sbin/bsnmpd/modules/snmp_netgraph/snmp_netgraph.c @@ -173,7 +173,7 @@ ng_unregister_cookie(void *dd) * Register a function for hook data. */ void * -ng_register_hook(const struct lmodule *mod, const char *hook, +ng_register_hook(const struct lmodule *mod, const char *hook, ng_hook_f *func, void *arg) { struct datareg *d; @@ -893,7 +893,7 @@ ng_peer_hook_id(ng_ID_t node, const char *hook, char *peerhook) else strcpy(peerhook, hooklist->link[i].peerhook); - } else + } else strcpy(peerhook, hooklist->link[i].peerhook); free(resp); @@ -903,7 +903,7 @@ ng_peer_hook_id(ng_ID_t node, const char *hook, char *peerhook) /* - * Now the module is started. Select on the sockets, so that we can get + * Now the module is started. Select on the sockets, so that we can get * unsolicited input. */ static void @@ -926,7 +926,7 @@ ng_start(void) return; } - reg_index = or_register(&oid_begemotNg, + reg_index = or_register(&oid_begemotNg, "The MIB for the NetGraph access module for SNMP.", module); } diff --git a/usr.sbin/bsnmpd/modules/snmp_pf/BEGEMOT-PF-MIB.txt b/usr.sbin/bsnmpd/modules/snmp_pf/BEGEMOT-PF-MIB.txt index d2b247f..d92b6ac 100644 --- a/usr.sbin/bsnmpd/modules/snmp_pf/BEGEMOT-PF-MIB.txt +++ b/usr.sbin/bsnmpd/modules/snmp_pf/BEGEMOT-PF-MIB.txt @@ -1,4 +1,4 @@ --- +-- -- ---------------------------------------------------------------------------- -- "THE BEER-WARE LICENSE" (Revision 42): -- <philip@FreeBSD.org> wrote this file. As long as you retain this notice you @@ -7,7 +7,7 @@ -- ---------------------------------------------------------------------------- -- -- $FreeBSD$ --- +-- BEGEMOT-PF-MIB DEFINITIONS ::= BEGIN @@ -612,7 +612,7 @@ pfInterfacesIfIndex OBJECT-TYPE DESCRIPTION "A unique value, greater than zero, for each interface." ::= { pfInterfacesIfEntry 1 } - + pfInterfacesIfDescr OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only @@ -876,7 +876,7 @@ pfTablesTblTZero OBJECT-TYPE cleared or the time since this table was loaded, whichever is sooner." ::= { pfTablesTblEntry 4 } - + pfTablesTblRefsAnchor OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only @@ -1294,7 +1294,7 @@ pfLabelsLblIndex OBJECT-TYPE STATUS current DESCRIPTION "A unique value, greater than zero, for each label." - ::= { pfLabelsLblEntry 1 } + ::= { pfLabelsLblEntry 1 } pfLabelsLblName OBJECT-TYPE SYNTAX OCTET STRING diff --git a/usr.sbin/bsnmpd/modules/snmp_pf/Makefile b/usr.sbin/bsnmpd/modules/snmp_pf/Makefile index 6218932..efe2e95 100644 --- a/usr.sbin/bsnmpd/modules/snmp_pf/Makefile +++ b/usr.sbin/bsnmpd/modules/snmp_pf/Makefile @@ -1,5 +1,5 @@ # $FreeBSD$ -# +# # Author: Philip Paeps <philip@freebsd.org> MOD= pf diff --git a/usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c b/usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c index 1048ffe..d8206ca 100644 --- a/usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c +++ b/usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c @@ -650,7 +650,7 @@ pf_iftable(struct snmp_context __unused *ctx, struct snmp_value *val, e->pfi.pfik_packets[IPV6][OUT][PASS]; break; case LEAF_pfInterfacesIf6PktsOutBlock: - val->v.counter64 = + val->v.counter64 = e->pfi.pfik_packets[IPV6][OUT][BLOCK]; break; @@ -932,7 +932,7 @@ pf_altq(struct snmp_context __unused *ctx, struct snmp_value *val, abort(); return (SNMP_ERR_GENERR); -} +} int pf_altqq(struct snmp_context __unused *ctx, struct snmp_value *val, @@ -987,7 +987,7 @@ pf_altqq(struct snmp_context __unused *ctx, struct snmp_value *val, case LEAF_pfAltqQueueLimit: val->v.integer = e->altq.qlimit; break; - + default: return (SNMP_ERR_NOSUCHNAME); } @@ -1225,7 +1225,7 @@ pfq_refresh(void) } bzero(&pa, sizeof(pa)); - + if (ioctl(dev, DIOCGETALTQS, &pa)) { syslog(LOG_ERR, "pfq_refresh: ioctl(DIOCGETALTQS): %s", strerror(errno)); @@ -1260,7 +1260,7 @@ pfq_refresh(void) INSERT_OBJECT_INT_LINK_INDEX(e, &pfq_table, link, index); } } - + pfq_table_age = time(NULL); pf_tick = this_tick; @@ -1640,20 +1640,20 @@ err: static int altq_is_enabled(int pfdev) { - struct pfioc_altq pa; + struct pfioc_altq pa; errno = 0; - if (ioctl(pfdev, DIOCGETALTQS, &pa)) { - if (errno == ENODEV) { + if (ioctl(pfdev, DIOCGETALTQS, &pa)) { + if (errno == ENODEV) { syslog(LOG_INFO, "No ALTQ support in kernel\n" "ALTQ related functions disabled\n"); - return (0); - } else - syslog(LOG_ERR, "DIOCGETALTQS returned an error: %s", + return (0); + } else + syslog(LOG_ERR, "DIOCGETALTQS returned an error: %s", strerror(errno)); return (-1); - } - return (1); + } + return (1); } /* @@ -1674,7 +1674,7 @@ pf_init(struct lmodule *mod, int __unused argc, char __unused *argv[]) syslog(LOG_ERR, "pf_init(): altq test failed"); return (-1); } - + /* Prepare internal state */ TAILQ_INIT(&pfi_table); TAILQ_INIT(&pfq_table); @@ -1765,7 +1765,7 @@ pf_dump(void) (intmax_t)pfi_table_age); syslog(LOG_ERR, "Dump: pfi_table_count = %d", pfi_table_count); - + syslog(LOG_ERR, "Dump: pfq_table_age = %jd", (intmax_t)pfq_table_age); syslog(LOG_ERR, "Dump: pfq_table_count = %d", diff --git a/usr.sbin/bsnmpd/modules/snmp_target/Makefile b/usr.sbin/bsnmpd/modules/snmp_target/Makefile index 10141e5..e6216ea 100644 --- a/usr.sbin/bsnmpd/modules/snmp_target/Makefile +++ b/usr.sbin/bsnmpd/modules/snmp_target/Makefile @@ -15,6 +15,6 @@ CFLAGS+= -I${CONTRIB}/lib -I${CONTRIB}/snmpd -DSNMPTREE_TYPES CFLAGS+= -DHAVE_ERR_H -DHAVE_GETADDRINFO -DHAVE_STRLCPY -DHAVE_SYS_TREE_H DEFS= ${MOD}_tree.def -BMIBS= +BMIBS= .include <bsd.snmpmod.mk> diff --git a/usr.sbin/bsnmpd/modules/snmp_usm/Makefile b/usr.sbin/bsnmpd/modules/snmp_usm/Makefile index 4ae818a..1c42245 100644 --- a/usr.sbin/bsnmpd/modules/snmp_usm/Makefile +++ b/usr.sbin/bsnmpd/modules/snmp_usm/Makefile @@ -17,6 +17,6 @@ CFLAGS+= -I${CONTRIB}/lib -I${CONTRIB}/snmpd -DSNMPTREE_TYPES CFLAGS+= -DHAVE_ERR_H -DHAVE_GETADDRINFO -DHAVE_STRLCPY -DHAVE_SYS_TREE_H DEFS= ${MOD}_tree.def -BMIBS= +BMIBS= .include <bsd.snmpmod.mk> diff --git a/usr.sbin/bsnmpd/modules/snmp_vacm/Makefile b/usr.sbin/bsnmpd/modules/snmp_vacm/Makefile index 1be8d62..4a09cde 100644 --- a/usr.sbin/bsnmpd/modules/snmp_vacm/Makefile +++ b/usr.sbin/bsnmpd/modules/snmp_vacm/Makefile @@ -15,6 +15,6 @@ CFLAGS+= -I${CONTRIB}/lib -I${CONTRIB}/snmpd -DSNMPTREE_TYPES CFLAGS+= -DHAVE_ERR_H -DHAVE_GETADDRINFO -DHAVE_STRLCPY -DHAVE_SYS_TREE_H DEFS= ${MOD}_tree.def -BMIBS= +BMIBS= .include <bsd.snmpmod.mk> diff --git a/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_snmp.c b/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_snmp.c index ec94ac6..92091f0 100644 --- a/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_snmp.c +++ b/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_snmp.c @@ -1841,7 +1841,7 @@ op_wlan_wep_iface(struct snmp_context *ctx, struct snmp_value *val, default: abort(); } - + return (SNMP_ERR_NOERROR); } @@ -3435,7 +3435,7 @@ wlan_get_channel_type(struct ieee80211_channel *c) return (WlanChannelType_turbo); if (IEEE80211_IS_CHAN_HT(c)) return (WlanChannelType_ht); - + return (-1); } @@ -3740,7 +3740,7 @@ wlan_scan_add_result(struct wlan_iface *wif, struct wlan_scan_result *sr) SLIST_INSERT_HEAD(&wif->scanlist, sr, wsr); return (0); } - + SLIST_FOREACH(temp, &wif->scanlist, wsr) { if (wlan_scan_compare_result(sr, temp) < 0) break; diff --git a/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_snmp.h b/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_snmp.h index 9e184f5..de6587f 100644 --- a/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_snmp.h +++ b/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_snmp.h @@ -182,7 +182,7 @@ struct wlan_iface { enum wlanHWMPRootMode hwmp_root_mode; uint32_t hwmp_max_hops; struct wlan_mesh_routes mesh_routelist; - + SLIST_ENTRY(wlan_iface) w_if; }; diff --git a/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_sys.c b/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_sys.c index 739f11f..9db30ae 100644 --- a/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_sys.c +++ b/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_sys.c @@ -1,7 +1,7 @@ /*- * Copyright (c) 2010 The FreeBSD Foundation * All rights reserved. - + * This software was developed by Shteryana Sotirova Shopova under * sponsorship from the FreeBSD Foundation. * @@ -158,7 +158,7 @@ wlan_kmodules_load(void) syslog(LOG_NOTICE, "SNMP wlan loaded %s module", wmod_names[WLAN_KMOD_WEP]); - return (0); + return (0); } /* XXX: FIXME */ @@ -2387,7 +2387,7 @@ wlan_get_mac_policy(struct wlan_iface *wif) wif->mac_policy = wlanMACAccessControlPolicy_open; return (0); } - + } wif->macsupported = 1; diff --git a/usr.sbin/bsnmpd/tools/bsnmptools/bsnmpget.c b/usr.sbin/bsnmpd/tools/bsnmptools/bsnmpget.c index 28e2b58..2a214aa 100644 --- a/usr.sbin/bsnmpd/tools/bsnmptools/bsnmpget.c +++ b/usr.sbin/bsnmpd/tools/bsnmptools/bsnmpget.c @@ -394,7 +394,7 @@ snmptool_get(struct snmp_toolinfo *snmptoolctx) GET_NONREP(snmptoolctx)); if (snmp_dialog(&req, &resp) == -1) { - warnx("Snmp dialog - %s", strerror(errno)); + warn("Snmp dialog"); break; } @@ -521,7 +521,7 @@ snmptool_walk(struct snmp_toolinfo *snmptoolctx) snmp_pdu_free(&resp); } else - warnx("Snmp dialog - %s", strerror(errno)); + warn("Snmp dialog"); } if (snmp_object_remove(snmptoolctx, &root) < 0) { @@ -554,8 +554,7 @@ parse_oid_numeric(struct snmp_value *value, char *val) errno = 0; suboid = strtoul(val, &endptr, 10); if (errno != 0) { - warnx("Value %s not supported - %s", val, - strerror(errno)); + warn("Value %s not supported", val); errno = saved_errno; return (-1); } @@ -603,9 +602,9 @@ parse_oid_string(struct snmp_toolinfo *snmptoolctx, static int32_t parse_ip(struct snmp_value * value, char * val) { - uint32_t v; - int32_t i; char *endptr, *str; + int32_t i; + uint32_t v; str = val; for (i = 0; i < 4; i++) { @@ -617,8 +616,8 @@ parse_ip(struct snmp_value * value, char * val) str = endptr + 1; value->v.ipaddress[i] = (uint8_t) v; } - value->syntax = SNMP_SYNTAX_IPADDRESS; + return (0); } @@ -634,7 +633,7 @@ parse_int(struct snmp_value *value, char *val) v = strtol(val, &endptr, 10); if (errno != 0) { - warnx("Value %s not supported - %s", val, strerror(errno)); + warn("Value %s not supported", val); errno = saved_errno; return (-1); } @@ -682,7 +681,7 @@ parse_uint(struct snmp_value *value, char *val) v = strtoul(val, &endptr, 10); if (errno != 0) { - warnx("Value %s not supported - %s", val, strerror(errno)); + warn("Value %s not supported", val); errno = saved_errno; return (-1); } @@ -736,7 +735,7 @@ parse_uint64(struct snmp_value *value, char *val) v = strtoull(val, &endptr, 10); if (errno != 0) { - warnx("Value %s not supported - %s", val, strerror(errno)); + warnx("Value %s not supported", val); errno = saved_errno; return (-1); } @@ -777,7 +776,7 @@ parse_syntax_val(struct snmp_value *value, enum snmp_syntax syntax, char *val) } /* - * Parse a command line argument of type OID=syntax:value and fill in whatever + * Parse a command line argument of type OID=syntax:value and fill in whatever * fields can be derived from the input into snmp_value structure. Reads numeric * OIDs. */ @@ -821,7 +820,7 @@ parse_pair_numoid_val(char *str, struct snmp_value *snmp_val) break; if (ptr[cnt] != '\0') { - warnx("Value string too long - %s",ptr); + warnx("Value string too long - %s", ptr); return (-1); } @@ -830,7 +829,7 @@ parse_pair_numoid_val(char *str, struct snmp_value *snmp_val) * to know syntax to check value boundaries. */ if (snmp_parse_numoid(oid_str, &(snmp_val->var)) < 0) { - warnx("Error parsing OID %s",oid_str); + warnx("Error parsing OID %s", oid_str); return (-1); } @@ -840,10 +839,9 @@ parse_pair_numoid_val(char *str, struct snmp_value *snmp_val) return (1); } -/* XXX-BZ aruments should be swapped. */ static int32_t -parse_syntax_strval(struct snmp_toolinfo *snmptoolctx, char *str, - struct snmp_object *object) +parse_syntax_strval(struct snmp_toolinfo *snmptoolctx, + struct snmp_object *object, char *str) { uint32_t len; enum snmp_syntax syn; @@ -909,13 +907,13 @@ parse_pair_stroid_val(struct snmp_toolinfo *snmptoolctx, if ((ptr = snmptools_parse_stroid(snmptoolctx, obj, argv)) == NULL) return (-1); - + if (*ptr != '=') { warnx("Value to set expected after OID"); return (-1); } - if (parse_syntax_strval(snmptoolctx, ptr + 1, obj) < 0) + if (parse_syntax_strval(snmptoolctx, obj, ptr + 1) < 0) return (-1); return (1); @@ -956,7 +954,7 @@ static int32_t add_octstring_syntax(struct snmp_value *dst, struct snmp_value *src) { if (src->v.octetstring.len > ASN_MAXOCTETSTRING) { - warnx("OctetString len too big - %u",src->v.octetstring.len); + warnx("OctetString len too big - %u", src->v.octetstring.len); return (-1); } @@ -1084,7 +1082,7 @@ snmptool_set(struct snmp_toolinfo *snmptoolctx) while ((snmp_pdu_add_bindings(snmptoolctx, snmpset_verify_vbind, snmpset_add_vbind, &req, SNMP_MAX_BINDINGS)) > 0) { if (snmp_dialog(&req, &resp)) { - warnx("Snmp dialog - %s", strerror(errno)); + warn("Snmp dialog"); break; } @@ -1229,7 +1227,7 @@ main(int argc, char ** argv) } if (snmp_open(NULL, NULL, NULL, NULL)) { - warnx("Failed to open snmp session: %s.", strerror(errno)); + warn("Failed to open snmp session"); snmp_tool_freeall(&snmptoolctx); exit(1); } @@ -1239,7 +1237,7 @@ main(int argc, char ** argv) if (ISSET_EDISCOVER(&snmptoolctx) && snmp_discover_engine(snmptoolctx.passwd) < 0) { - warnx("Unknown SNMP Engine ID: %s.", strerror(errno)); + warn("Unknown SNMP Engine ID"); rc = 1; goto cleanup; } @@ -1255,7 +1253,7 @@ main(int argc, char ** argv) snmp_get_local_keys(&snmp_client.user, snmp_client.engine.engine_id, snmp_client.engine.engine_len) != SNMP_CODE_OK) { - warnx("Failed to get keys: %s.", strerror(errno)); + warn("Failed to get keys"); rc = 1; goto cleanup; } diff --git a/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmpimport.c b/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmpimport.c index 09684ac..d4f305f 100644 --- a/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmpimport.c +++ b/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmpimport.c @@ -53,7 +53,7 @@ * subtype := STRING * * enum := ENUM '(' value ')' - * + * * bits := BITS '(' value ')' * * value := INT STRING | INT STRING value @@ -483,7 +483,7 @@ snmp_import_update_table(enum snmp_tbl_entry te, struct snmp_index_entry *tbl) switch (te) { case ENTRY_NONE: if (table_data.tbl_type == ENTRY_NONE) - return (NULL); + return (NULL); if (table_data.tbl_type == ENTRY_INDEX) table_data.table_idx = NULL; table_data.tbl_type--; @@ -539,7 +539,7 @@ parse_subtype(struct snmp_toolinfo *snmptoolctx, int32_t *tok, warnx("subtype expected after '|'"); return (-1); } - + *tc = snmp_get_tc(nexttok); *tok = gettoken(snmptoolctx); @@ -806,7 +806,7 @@ snmp_import_object(struct snmp_toolinfo *snmptoolctx) if (snmp_suboid_append(¤t_oid, (asn_subid_t) val) < 0) goto error; - /* + /* * Ignore the error for nodes since the .def files currently * contain different strings for 1.3.6.1.2.1 - mibII. Only make * sure the memory is freed and don't complain. diff --git a/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmpmap.c b/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmpmap.c index 7e2b721..abee9c2 100644 --- a/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmpmap.c +++ b/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmpmap.c @@ -29,7 +29,7 @@ * $FreeBSD$ */ -#include <sys/param.h> +#include <sys/param.h> #include <sys/queue.h> #include <sys/uio.h> @@ -636,7 +636,7 @@ snmp_mapping_dumptable(struct snmp_table_index *headp) } } -void +void snmp_mapping_dump(struct snmp_toolinfo *snmptoolctx /* int bits */) { if (!_bsnmptools_debug) diff --git a/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptc.c b/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptc.c index d945b89..dcc4361 100644 --- a/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptc.c +++ b/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptc.c @@ -31,7 +31,7 @@ * $FreeBSD$ */ -#include <sys/param.h> +#include <sys/param.h> #include <sys/queue.h> #include <sys/socket.h> #include <sys/uio.h> @@ -266,13 +266,13 @@ parse_octetstring(struct snmp_value *value, char *val) return (-1); } - value->v.octetstring.len = len; - - if((value->v.octetstring.octets = malloc(len)) == NULL) { - syslog(LOG_ERR,"malloc failed: %s", strerror(errno)); + if ((value->v.octetstring.octets = malloc(len)) == NULL) { + value->v.octetstring.len = 0; + syslog(LOG_ERR, "malloc failed: %s", strerror(errno)); return (-1); } + value->v.octetstring.len = len; memcpy(value->v.octetstring.octets, val, len); value->syntax = SNMP_SYNTAX_OCTETSTRING; @@ -570,7 +570,7 @@ parse_dateandtime(struct snmp_value *sv, char *val) date[10] = v; if ((sv->v.octetstring.octets = malloc(SNMP_DATETIME_OCTETS)) == NULL) { - warnx("malloc() failed - %s", strerror(errno)); + warn("malloc() failed"); return (-1); } @@ -626,7 +626,7 @@ snmp_addr2asn_oid(char *str, struct asn_oid *oid) return (NULL); } if (*endptr != ':') { - warnx("Failed adding oid - %s",str); + warnx("Failed adding oid - %s", str); return (NULL); } if (snmp_suboid_append(oid, (asn_subid_t) v) < 0) @@ -679,7 +679,7 @@ parse_physaddress(struct snmp_value *sv, char *val) phys_addr[5] = v; if ((sv->v.octetstring.octets = malloc(SNMP_PHYSADDR_OCTETS)) == NULL) { - syslog(LOG_ERR,"malloc failed: %s", strerror(errno)); + syslog(LOG_ERR, "malloc failed: %s", strerror(errno)); return (-1); } @@ -743,7 +743,7 @@ snmp_ntp_ts2asn_oid(char *str, struct asn_oid *oid) errno = saved_errno; if (*endptr != '.') { - warnx("Failed adding oid - %s",str); + warnx("Failed adding oid - %s", str); return (NULL); } @@ -824,7 +824,7 @@ parse_ntp_ts(struct snmp_value *sv, char *val) } if ((sv->v.octetstring.octets = malloc(SNMP_NTP_TS_OCTETS)) == NULL) { - syslog(LOG_ERR,"malloc failed: %s", strerror(errno)); + syslog(LOG_ERR, "malloc failed: %s", strerror(errno)); return (-1); } @@ -987,7 +987,7 @@ parse_bridge_id(struct snmp_value *sv, char *string) bridge_id[7] = v; if ((sv->v.octetstring.octets = malloc(SNMP_BRIDGEID_OCTETS)) == NULL) { - syslog(LOG_ERR,"malloc failed: %s", strerror(errno)); + syslog(LOG_ERR, "malloc failed: %s", strerror(errno)); return (-1); } @@ -1098,7 +1098,7 @@ parse_bport_id(struct snmp_value *value, char *string) bport_id[1] = v; if ((value->v.octetstring.octets = malloc(SNMP_BPORT_OCTETS)) == NULL) { - syslog(LOG_ERR,"malloc failed: %s", strerror(errno)); + syslog(LOG_ERR, "malloc failed: %s", strerror(errno)); return (-1); } @@ -1143,7 +1143,7 @@ parse_bport_id(struct snmp_value *value, char *string) ************************************************************** * TODO: FIXME!!! syrinx: Since we do not support checking the * consistency of a varbinding based on the value of a previous - * one, try to guess the type of address based on the + * one, try to guess the type of address based on the * OctetString SIZE - 4 for IPv4, 16 for IPv6, others currently * not supported. */ @@ -1178,7 +1178,7 @@ snmp_oct2inetaddr(uint32_t len, char *octets, char *buf) } if (inet_ntop(af, ip, buf, SNMP_INADDRS_STRSZ) == NULL) { - warnx("inet_ntop failed - %s", strerror(errno)); + warn("inet_ntop failed"); return (NULL); } @@ -1230,7 +1230,7 @@ snmp_bits2oct(char *str, struct asn_oid *oid) v = strtoull(str, &endptr, 16); if (errno != 0) { - warnx("Bad BITS value %s - %s", str, strerror(errno)); + warn("Bad BITS value %s", str); errno = saved_errno; return (NULL); } @@ -1270,7 +1270,7 @@ parse_bits(struct snmp_value *value, char *string) v = strtoull(string, &endptr, 16); if (errno != 0) { - warnx("Bad BITS value %s - %s", string, strerror(errno)); + warn("Bad BITS value %s", string); errno = saved_errno; return (-1); } diff --git a/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptools.c b/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptools.c index 3e11bbc..36b9917 100644 --- a/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptools.c +++ b/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptools.c @@ -31,7 +31,7 @@ * $FreeBSD$ */ -#include <sys/param.h> +#include <sys/param.h> #include <sys/queue.h> #include <sys/uio.h> @@ -117,7 +117,7 @@ static const struct { { "Gauge", SNMP_SYNTAX_GAUGE }, { "TimeTicks", SNMP_SYNTAX_TIMETICKS }, { "Counter64", SNMP_SYNTAX_COUNTER64 }, - { "Unknown", SNMP_SYNTAX_UNKNOWN }, + { "Unknown", SNMP_SYNTAX_UNKNOWN }, }; int @@ -177,7 +177,7 @@ snmptool_init(struct snmp_toolinfo *snmptoolctx) if ((slen = strlen(str)) > MAXSTR) slen = MAXSTR - 1; if ((snmptoolctx->passwd = malloc(slen + 1)) == NULL) { - warnx("malloc() failed - %s", strerror(errno)); + warn("malloc() failed"); return (-1); } if (slen > 0) @@ -189,7 +189,7 @@ snmptool_init(struct snmp_toolinfo *snmptoolctx) #define OBJECT_IDX_LIST(o) o->info->table_idx->index_list -/* +/* * Walk through the file list and import string<->oid mappings from each file. */ int32_t @@ -252,12 +252,12 @@ add_filename(struct snmp_toolinfo *snmptoolctx, const char *filename, } if ((fstring = strdup(filename)) == NULL) { - warnx("strdup() failed - %s", strerror(errno)); + warn("strdup() failed"); return (-1); } if ((entry = calloc(1, sizeof(struct fname))) == NULL) { - warnx("calloc() failed - %s", strerror(errno)); + warn("calloc() failed"); free(fstring); return (-1); } @@ -287,7 +287,7 @@ free_filelist(struct snmp_toolinfo *snmptoolctx) } } -static char +static char isvalid_fchar(char c, int pos) { if (isalpha(c)|| c == '/'|| c == '_' || c == '.' || c == '~' || @@ -652,7 +652,7 @@ parse_user_security(struct snmp_toolinfo *snmptoolctx __unused, char *opt_arg) warnx("Suboption 'engine' - no argument"); return (-1); } - snmp_client.engine.engine_len = parse_ascii(val, + snmp_client.engine.engine_len = parse_ascii(val, snmp_client.engine.engine_id, SNMP_ENGINE_ID_SIZ); if ((int32_t)snmp_client.engine.engine_len == -1) { warnx("Bad EngineID - %s", val); @@ -668,8 +668,7 @@ parse_user_security(struct snmp_toolinfo *snmptoolctx __unused, char *opt_arg) errno = 0; snmp_client.engine.engine_boots = strtoul(val, NULL, 10); if (errno != 0) { - warnx("Bad 'engine-boots' value %s - %s", val, - strerror(errno)); + warn("Bad 'engine-boots' value %s", val); errno = saved_errno; return (-1); } @@ -684,8 +683,7 @@ parse_user_security(struct snmp_toolinfo *snmptoolctx __unused, char *opt_arg) errno = 0; snmp_client.engine.engine_time = strtoul(val, NULL, 10); if (errno != 0) { - warnx("Bad 'engine-time' value %s - %s", val, - strerror(errno)); + warn("Bad 'engine-time' value %s", val); errno = saved_errno; return (-1); } @@ -819,7 +817,7 @@ parse_timeout(char *opt_arg) v = strtol(opt_arg, NULL, 10); if (errno != 0) { - warnx( "Error parsing timeout value - %s", strerror(errno)); + warn("Error parsing timeout value"); errno = saved_errno; return (-1); } @@ -842,7 +840,7 @@ parse_retry(char *opt_arg) v = strtoul(opt_arg, NULL, 10); if (errno != 0) { - warnx("Error parsing retries count - %s", strerror(errno)); + warn("Error parsing retries count"); errno = saved_errno; return (-1); } @@ -865,7 +863,7 @@ parse_version(char *opt_arg) v = strtoul(opt_arg, NULL, 10); if (errno != 0) { - warnx("Error parsing version - %s", strerror(errno)); + warn("Error parsing version"); errno = saved_errno; return (-1); } @@ -917,7 +915,7 @@ parse_buflen(char *opt_arg) size = strtoul(opt_arg, NULL, 10); if (errno != 0) { - warnx("Error parsing buffer size - %s", strerror(errno)); + warn("Error parsing buffer size"); errno = saved_errno; return (-1); } @@ -1040,8 +1038,7 @@ snmp_int2asn_oid(char *str, struct asn_oid *oid) v = strtol(str, &endptr, 10); if (errno != 0) { - warnx("Integer value %s not supported - %s", str, - strerror(errno)); + warn("Integer value %s not supported", str); errno = saved_errno; return (NULL); } @@ -1093,6 +1090,7 @@ snmp_ip2asn_oid(char *str, struct asn_oid *oid) char *endptr, *ptr; ptr = str; + for (i = 0; i < 4; i++) { v = strtoul(ptr, &endptr, 10); if (v > 0xff) @@ -1120,8 +1118,7 @@ snmp_uint2asn_oid(char *str, struct asn_oid *oid) v = strtoul(str, &endptr, 10); if (errno != 0) { - warnx("Integer value %s not supported - %s\n", str, - strerror(errno)); + warn("Integer value %s not supported", str); errno = saved_errno; return (NULL); } @@ -1145,8 +1142,7 @@ snmp_cnt64_2asn_oid(char *str, struct asn_oid *oid) v = strtoull(str, &endptr, 10); if (errno != 0) { - warnx("Integer value %s not supported - %s", str, - strerror(errno)); + warn("Integer value %s not supported", str); errno = saved_errno; return (NULL); } @@ -1470,7 +1466,7 @@ snmp_pdu_add_bindings(struct snmp_toolinfo *snmptoolctx, /* Return 0 in case of no more work todo. */ if (SLIST_EMPTY(&snmptoolctx->snmp_objectlist)) return (0); - + if (maxcount < 0 || maxcount > SNMP_MAX_BINDINGS) { warnx("maxcount out of range: <0 || >SNMP_MAX_BINDINGS"); return (-1); @@ -2007,20 +2003,25 @@ snmp_output_object(struct snmp_toolinfo *snmptoolctx, struct snmp_object *o) void snmp_output_err_resp(struct snmp_toolinfo *snmptoolctx, struct snmp_pdu *pdu) { + struct snmp_object *object; char buf[ASN_OIDSTRLEN]; - struct snmp_object object; if (pdu == NULL || (pdu->error_index > (int32_t) pdu->nbindings)) { - fprintf(stdout,"Invalid error index in PDU\n"); + fprintf(stdout, "Invalid error index in PDU\n"); + return; + } + + if ((object = calloc(1, sizeof(struct snmp_object))) == NULL) { + fprintf(stdout, "calloc: %s", strerror(errno)); return; } fprintf(stdout, "Agent %s:%s returned error \n", snmp_client.chost, snmp_client.cport); - if (!ISSET_NUMERIC(snmptoolctx) && (snmp_fill_object(snmptoolctx, &object, + if (!ISSET_NUMERIC(snmptoolctx) && (snmp_fill_object(snmptoolctx, object, &(pdu->bindings[pdu->error_index - 1])) > 0)) - snmp_output_object(snmptoolctx, &object); + snmp_output_object(snmptoolctx, object); else { asn_oid2str_r(&(pdu->bindings[pdu->error_index - 1].var), buf); fprintf(stdout,"%s", buf); @@ -2032,16 +2033,22 @@ snmp_output_err_resp(struct snmp_toolinfo *snmptoolctx, struct snmp_pdu *pdu) fprintf(stdout, "%s\n", error_strings[pdu->error_status].str); else fprintf(stdout,"%s\n", error_strings[SNMP_ERR_UNKNOWN].str); + + free(object); + object = NULL; } int32_t snmp_output_resp(struct snmp_toolinfo *snmptoolctx, struct snmp_pdu *pdu, struct asn_oid *root) { - int32_t error; + struct snmp_object *object; char p[ASN_OIDSTRLEN]; + int32_t error; uint32_t i; - struct snmp_object object; + + if ((object = calloc(1, sizeof(struct snmp_object))) == NULL) + return (-1); i = error = 0; while (i < pdu->nbindings) { @@ -2051,18 +2058,22 @@ snmp_output_resp(struct snmp_toolinfo *snmptoolctx, struct snmp_pdu *pdu, if (GET_OUTPUT(snmptoolctx) != OUTPUT_QUIET) { if (!ISSET_NUMERIC(snmptoolctx) && - (snmp_fill_object(snmptoolctx, &object, + (snmp_fill_object(snmptoolctx, object, &(pdu->bindings[i])) > 0)) - snmp_output_object(snmptoolctx, &object); + snmp_output_object(snmptoolctx, object); else { asn_oid2str_r(&(pdu->bindings[i].var), p); fprintf(stdout, "%s", p); } } - error |= snmp_output_numval(snmptoolctx, &(pdu->bindings[i]), object.info); + error |= snmp_output_numval(snmptoolctx, &(pdu->bindings[i]), + object->info); i++; } + free(object); + object = NULL; + if (error) return (-1); diff --git a/usr.sbin/ctladm/ctladm.8 b/usr.sbin/ctladm/ctladm.8 index ebdd973..5be1ba1 100644 --- a/usr.sbin/ctladm/ctladm.8 +++ b/usr.sbin/ctladm/ctladm.8 @@ -35,7 +35,7 @@ .\" $Id: //depot/users/kenm/FreeBSD-test2/usr.sbin/ctladm/ctladm.8#3 $ .\" $FreeBSD$ .\" -.Dd October 15, 2016 +.Dd December 21, 2016 .Dt CTLADM 8 .Os .Sh NAME @@ -859,9 +859,12 @@ Specifies LUN SCSI name string. Specifies LUN EUI-64 identifier. .It Va naa Specifies LUN NAA identifier. -Either EUI or NAA identifier should be set to UNIQUE value to allow +.It Va uuid +Specifies LUN locally assigned RFC 4122 UUID identifier. +EUI, NAA or UUID identifier should be set to UNIQUE value to allow EXTENDED COPY command access the LUN. Non-unique LUN identifiers may lead to data corruption. +Some initiators may not support later introduced UUID identifiers. .It Va ha_role Setting to "primary" or "secondary" overrides default role of the node in HA cluster, set by kern.cam.ctl.ha_role sysctl. diff --git a/usr.sbin/hyperv/Makefile b/usr.sbin/hyperv/Makefile index c11b341..d42817f4 100644 --- a/usr.sbin/hyperv/Makefile +++ b/usr.sbin/hyperv/Makefile @@ -2,6 +2,8 @@ .include <bsd.own.mk> -SUBDIR = tools +SUBDIR= \ + tools/kvp \ + tools/vss .include <bsd.subdir.mk> diff --git a/usr.sbin/hyperv/tools/Makefile.inc b/usr.sbin/hyperv/tools/Makefile.inc new file mode 100644 index 0000000..7e09f32 --- /dev/null +++ b/usr.sbin/hyperv/tools/Makefile.inc @@ -0,0 +1,4 @@ +# $FreeBSD$ + +CFLAGS.gcc+= -Wno-uninitialized +.include "../../Makefile.inc" diff --git a/usr.sbin/hyperv/tools/Makefile b/usr.sbin/hyperv/tools/kvp/Makefile index 3cfc001..e1bc47c 100644 --- a/usr.sbin/hyperv/tools/Makefile +++ b/usr.sbin/hyperv/tools/kvp/Makefile @@ -2,12 +2,12 @@ .include <bsd.own.mk> -HV_KVP_DAEMON_DISTDIR?= ${.CURDIR}/../../../contrib/hyperv/tools +HV_KVP_DAEMON_DISTDIR?= ${.CURDIR}/../../../../contrib/hyperv/tools .PATH: ${HV_KVP_DAEMON_DISTDIR} PROG= hv_kvp_daemon MAN= hv_kvp_daemon.8 -CFLAGS+= -I${.CURDIR}/../../../sys/dev/hyperv/utilities +CFLAGS+= -I${.CURDIR}/../../../../sys/dev/hyperv/utilities .include <bsd.prog.mk> diff --git a/usr.sbin/hyperv/tools/kvp/Makefile.depend b/usr.sbin/hyperv/tools/kvp/Makefile.depend new file mode 100644 index 0000000..54c1f6f --- /dev/null +++ b/usr.sbin/hyperv/tools/kvp/Makefile.depend @@ -0,0 +1,19 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/arpa \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + + +.include <dirdeps.mk> + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif diff --git a/usr.sbin/hyperv/tools/vss/Makefile b/usr.sbin/hyperv/tools/vss/Makefile new file mode 100644 index 0000000..c9a2e6a --- /dev/null +++ b/usr.sbin/hyperv/tools/vss/Makefile @@ -0,0 +1,14 @@ +# $FreeBSD$ +DIRDEPS = lib/libc + +.include <bsd.own.mk> + +HV_VSS_DAEMON_DISTDIR?= ${.CURDIR}/../../../../contrib/hyperv/tools +.PATH: ${HV_VSS_DAEMON_DISTDIR} + +PROG= hv_vss_daemon +MAN= hv_vss_daemon.8 + +CFLAGS+= -I${.CURDIR}/../../../../sys/dev/hyperv/utilities + +.include <bsd.prog.mk> diff --git a/usr.sbin/hyperv/tools/vss/Makefile.depend b/usr.sbin/hyperv/tools/vss/Makefile.depend new file mode 100644 index 0000000..3646e2e --- /dev/null +++ b/usr.sbin/hyperv/tools/vss/Makefile.depend @@ -0,0 +1,18 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + + +.include <dirdeps.mk> + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif diff --git a/usr.sbin/jail/jail.c b/usr.sbin/jail/jail.c index 82cd6ae..fb473f9 100644 --- a/usr.sbin/jail/jail.c +++ b/usr.sbin/jail/jail.c @@ -806,8 +806,7 @@ rdtun_params(struct cfjail *j, int dofail) if (jailparam_get(rtparams, nrt, bool_param(j->intparams[IP_ALLOW_DYING]) ? JAIL_DYING : 0) > 0) { rtjp = rtparams + 1; - for (jp = j->jp, rtjp = rtparams + 1; rtjp < rtparams + nrt; - jp++) { + for (jp = j->jp; rtjp < rtparams + nrt; jp++) { if (JP_RDTUN(jp) && strcmp(jp->jp_name, "jid")) { if (!((jp->jp_flags & (JP_BOOL | JP_NOBOOL)) && jp->jp_valuelen == 0 && diff --git a/usr.sbin/ntp/doc/ntp.conf.5 b/usr.sbin/ntp/doc/ntp.conf.5 index 8a79f67..22c0cd3 100644 --- a/usr.sbin/ntp/doc/ntp.conf.5 +++ b/usr.sbin/ntp/doc/ntp.conf.5 @@ -200,7 +200,7 @@ provided in .It Ic pool For type s addresses, this command mobilizes a persistent client mode association with a number of remote servers. -In this mode the local clock can synchronized to the +In this mode the local clock can be synchronized to the remote server, but the remote server can never be synchronized to the local clock. .It Ic server diff --git a/usr.sbin/pstat/pstat.c b/usr.sbin/pstat/pstat.c index 2017841..b5ceb2e 100644 --- a/usr.sbin/pstat/pstat.c +++ b/usr.sbin/pstat/pstat.c @@ -174,8 +174,6 @@ main(int argc, char *argv[]) default: usage(); } - argc -= optind; - argv += optind; /* * Initialize symbol names list. @@ -339,7 +337,7 @@ static void ttyprt(struct xtty *xt) { int i, j; - char *name; + const char *name; if (xt->xt_size != sizeof *xt) errx(1, "struct xtty size mismatch"); diff --git a/usr.sbin/pw/grupd.c b/usr.sbin/pw/grupd.c index 38d5e5b..5d0df02 100644 --- a/usr.sbin/pw/grupd.c +++ b/usr.sbin/pw/grupd.c @@ -77,6 +77,7 @@ gr_update(struct group * grp, char const * group) close(tfd); err(1, "gr_copy()"); } + fsync(tfd); close(tfd); if (gr_mkdb() == -1) { gr_fini(); diff --git a/usr.sbin/pw/pw_nis.c b/usr.sbin/pw/pw_nis.c index 35b26ea..087c946 100644 --- a/usr.sbin/pw/pw_nis.c +++ b/usr.sbin/pw/pw_nis.c @@ -67,6 +67,7 @@ pw_nisupdate(const char * path, struct passwd * pwd, char const * user) close(tfd); err(1, "pw_copy()"); } + fsync(tfd); close(tfd); if (chmod(pw_tempname(), 0644) == -1) err(1, "chmod()"); diff --git a/usr.sbin/pw/pwupd.c b/usr.sbin/pw/pwupd.c index 3bcb95f..87c3c99 100644 --- a/usr.sbin/pw/pwupd.c +++ b/usr.sbin/pw/pwupd.c @@ -114,6 +114,7 @@ pw_update(struct passwd * pwd, char const * user) close(tfd); err(1, "pw_copy()"); } + fsync(tfd); close(tfd); /* * in case of deletion of a user, the whole database |