<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://bugs.gentoo.org/bugzilla.dtd">

<bugzilla version="2.22.7"
          urlbase="http://bugs.gentoo.org/"
          maintainer="bugzilla@gentoo.org"
>

    <bug>
          <bug_id>158702</bug_id>
          
          <creation_ts>2006-12-20 20:55 0000</creation_ts>
          <short_desc>mail-filter/dspam-3.6.8-r1:  Multiple Issues</short_desc>
          <delta_ts>2007-01-08 15:49:16 0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Gentoo Linux</product>
          <component>Ebuilds</component>
          <version>2006.1</version>
          <rep_platform>All</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>kparent@enersea.net</reporter>
          <assigned_to>mrness@gentoo.org</assigned_to>
          <cc>st_lim@gentoo.org</cc>

      

      
          <long_desc isprivate="0">
            <who>kparent@enersea.net</who>
            <bug_when>2006-12-20 20:55:10 0000</bug_when>
            <thetext>original bug references
bug 135917 - status closed
bug 140649 - status duplicate of 135917

First off, a big thanks to everyone who has contributed to getting dspam into portage and improving the ebuilds.  Good to see it&apos;s finally gettin some love!

I&apos;ve been using dspam for a while now.  Had to manually install dspam because I had problems with the ebuilds and I didn&apos;t like the defaults.  I decided to give the ebuild another shot, and still have multiple issues.

Don&apos;t worry, I won&apos;t gripe without supplying a fix ;)

=====================================================================
1.  The command &quot;dspam --version&quot; 
	doesn&apos;t display &quot;Configuration parameters&quot; correctly
=====================================================================

With dspam-3.6.8

Configuration parameters: /usr/share/config.site /usr/etc/config.site


It should display:

Configuration parameters: --prefix=/usr --host=i686-pc-linux-gnu --mandir=/usr/share/man
--infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --enable-long-usernames --enable-syslog --enable-domain-scale --enable-debug --enable-verbose-debug --enable-bnr-debug --enable-preferences-extension --with-mysql-includes=/usr/include/mysql --with-mysql-libraries=/usr/lib/mysql --with-storage-driver=mysql_drv --with-dspam-home=/var/spool/dspam --sysconfdir=/etc/mail/dspam --enable-daemon --disable-ldap --disable-clamav --with-dspam-group=dspam --with-dspam-home-group=dspam --with-logdir=/var/log/dspam --build=i686-pc-linux-gnu

Now, with 3.6.8-r1 it displays:

Configuration parameters:  &apos;--prefix=/usr&apos; &apos;--host=i686-pc-linux-gnu&apos; &apos;--mandir=/usr/share/man&apos; &apos;--infodir=/usr/share/info&apos; &apos;--datadir=/usr/share&apos; &apos;--sysconfdir=/etc&apos; &apos;--localstatedir=/var/lib&apos; &apos;--enable-long-usernames&apos; &apos;--enable-syslog&apos; &apos;--enable-domain-scale&apos; &apos;--enable-debug&apos; &apos;--enable-verbose-debug&apos; &apos;--enable-bnr-debug&apos; &apos;--enable-preferences-extension&apos; &apos;--with-mysql-includes=/usr/include/mysql&apos; &apos;--with-mysql-libraries=/usr/lib/mysql&apos; &apos;--with-storage-driver=mysql_drv&apos; &apos;--with-dspam-home=/var/spool/dspam&apos; &apos;--sysconfdir=/etc/mail/dspam&apos; &apos;--enable-daemon&apos; &apos;--disable-ldap&apos; &apos;--disable-clamav&apos; &apos;--with-dspam-group=dspam&apos; &apos;--with-dspam-home-group=dspam&apos; &apos;--with-logdir=/var/log/dspam&apos; &apos;--build=i686-pc-linux-gnu&apos; &apos;build_alias=i686-pc-linux-gnu&apos; &apos;host_alias=i686-pc-linux-gnu&apos; &apos;CFLAGS=-march=athlon-xp -O2 -msse2 -pipe&apos; &apos;CXXFLAGS=-march=athlon-xp -O2 -msse2 -pipe&apos;

Compiling manually without the patches, the configure options are displayed correctly.

The problem is a cascading issue with the patches.  The patches:

	02_all_link-dynamically.patch	
	03_all_clean-warnings.patch
	13_all_txt-confdir.patch

modify either Makefile.am or .m4 src files, requiring the ebuild to use eautoreconf function which results in a new configure script.  

Looks like the variable &quot;CONFIG_SITE&quot; never gets set in the newly regenerated configure script. (see attached patch)

Patching the eautoreconf generated configure script AFTER eautoreconf runs with the attached patch and then recompiling results in the &quot;Configuration paramaters&quot; to be displyed correctly, ie no single quotes.

I&apos;ve tested it on both x86 and amd64 and the patch is applied sucessfully.

=====================================================================
2. Patches supplied by dspam-3.6.8.ebuild
=====================================================================

The more of these patches I see, the more I&apos;m starting to worry about their goodness...

Most of the patches seem fairly minor except for one:

02_all_link-dynamically.patch

Originally created for dspam-3.6.2 - either the config options of &quot;--enable-shared&quot; and &quot;--enabled-static&quot; were not available with that version of dspam or the author of the patch couldn&apos;t find them.


dspam-3.6.8 # ./configure --help | less

... begin snip ...

  --enable-shared[=PKGS]
                          build shared libraries [default=yes]
  --enable-static[=PKGS]
                          build static libraries [default=yes]
... end snip ...

Using the switch &quot;--disable-static&quot; will cause dspam to compile dynamically linked with no patchset.  Even if the &quot;02_all_link-dynamically.patch&quot; is omitted from the patchset and &quot;--diable-shared --enable static&quot; are used, it doesnt seem to build statically when comparing the binaries sizes with an unpatched compile with the same options - its not even close!  So it seems that the patchset is neutering the ability to build statically.  What else are the patches unintentionally doing?

Then there&apos;s the 14_all_autodetct-conf.patch that restores the &quot;Configuration parameters&quot; as mentioned above, but it does so with the options in single quotes. That&apos;s not the original design.

Another one is the 12_all_logrotate-preserve-state.patch.  Nothing wrong with it, but it&apos;s not the same as the one I found on the dspam mailing list.  Tne one which JZ says will be included, but isn&apos;t :(

I Propose a &quot;debian-patchset&quot; use flag.  I&apos;m probably not the only one who doesnt want them or need them.  I also suggest that a CVS ebuild be created.  If one wants the latest and greatest, get the new code from the source, not from year old patches.

=====================================================================
3.  default config options
=====================================================================

--enable-long-usernames 
Propose selectable/use flag and disabled by default

--enable-domain-scale 
Propose scales should be selectable and have use flags.  Default is small scale. Seperate optional use flags for large-scale or domain-scale

--enable-syslog and &quot;LOGDIR=/var/log/dspam&quot;
syslog should be selectable/use flag.  Propose disable syslog by default
Personally I like the default of /var/spool/dspam/log, but we&apos;ll leave it at /var/log/dspam.

--disable-static
added use flag that disables static in default setup.  dspam by default is --enable-shared --enable-static.

=====================================================================
4. non-default options
=====================================================================

--enable-debug 
shouldn&apos;t enable ALL debugging options.  Docs state that verbose implies debug.  So if verbose is used, debug shouldn&apos;t be set.  Propose options should have their own use flags:
debug
debug-verbose (is known to cause problems)
debug-bnr
sanity check to prevent both debug and verbose from being selected

=====================================================================
5. Default permissions for dspam binary
=====================================================================

dspam binary
/usr/bin/dspam should be install as default with perms 2510 (r-x--s--) as default.  If world executable is desired,create a use (world-exec) flag for option and assign perms &quot;--with-dspam-mode=2511&quot; instead of chmod&apos;ing it by default.

=====================================================================
6. Cosmetic/minor changes
=====================================================================

Note:  These changes are NOT in the attached patch or ebuild files.

/etc/mail/dspam/ contains executable .sql files.  Shouldn&apos;t they be read only?

remove logrotate flag and use dspam_logrotate in dspam.cron

AFAIK, suexec user and group min id&apos;s on stock gentoo system are
# suexec2 -V

 -D AP_DOC_ROOT=&quot;/var/www&quot;
 -D AP_GID_MIN=100
 -D AP_HTTPD_USER=&quot;apache&quot;
 -D AP_LOG_EXEC=&quot;/var/log/apache2/suexec_log&quot;
 -D AP_SAFE_PATH=&quot;/usr/local/bin:/usr/bin:/bin&quot;
 -D AP_SUEXEC_UMASK=077
 -D AP_UID_MIN=1000
 -D AP_USERDIR_SUFFIX=&quot;public_html&quot;

so GID min is 100, not 1000 like the ebuild shows.
=====================================================================

I don&apos;t mean to step on anyone&apos;s toes, just trying to help make a better ebuild. :)</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>kparent@enersea.net</who>
            <bug_when>2006-12-20 21:01:00 0000</bug_when>
            <thetext>Created an attachment (id=104489)
patch for eautoreconf generated configure script to restore correct dspam --version output.

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>kparent@enersea.net</who>
            <bug_when>2006-12-20 21:05:08 0000</bug_when>
            <thetext>Created an attachment (id=104490)
ebuild with new use flags and defaults.

I&apos;ve also added a selectable patch option.  If you enable the debian-patchset flag, one can specify which patches to omit.  The variable is defined right unther the &quot;some FHS like structure&quot; variables near the top of the ebuild.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>kparent@enersea.net</who>
            <bug_when>2006-12-20 21:18:36 0000</bug_when>
            <thetext>(From update of attachment 104490)
The &quot;OMIT&quot; variable should default to OMIT= not OMIT=&quot;02&quot;</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>kparent@enersea.net</who>
            <bug_when>2006-12-20 21:30:28 0000</bug_when>
            <thetext>Created an attachment (id=104492)
changed OMIT=&quot;02&quot; to OMIT=

Sry bout that.  Left over testing artifact.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>kparent@enersea.net</who>
            <bug_when>2006-12-20 21:46:23 0000</bug_when>
            <thetext>(From update of attachment 104492)
forgot the syslog flag.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>kparent@enersea.net</who>
            <bug_when>2006-12-20 21:47:47 0000</bug_when>
            <thetext>Created an attachment (id=104493)
with syslog flag

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mrness@gentoo.org</who>
            <bug_when>2006-12-21 14:52:50 0000</bug_when>
            <thetext> 1) 3.6.8-r1 fixed dspam --version, which apparently was broken by autoconf-2.60. The fix is 14_all_autodetect-conf.patch; I am aware of the inutile quotes displayed by --version, but technically speaking, it is of no consequence. Either if configure params are quoted or not, dspam-web is able to autodetect these parameters and act upon them.

  2) I don&apos;t patch configure script. The right way of fixing it is through patching the source files that generated the script. 

  3) 02_all_link-dynamically.patch - I think you are right on this one. Still, nothing would be gained if I&apos;ll replace with --disable-static.

  4) 12_all_logrotate-preserve-state.patch is fruit of my experience. It is the right thing to do, but if you have a better solution, you are welcome to prove me wrong.

  5) Inventing flags like debian-patchset is definitely wrong. One, because those patches have nothing to do with debian (although some of them were inspired from theirs) and second because it has 0 significance. Would be just another esoteric USE flag that no-one knows what signifies.

  6) Since we don&apos;t have debug levels, debug USE flag must enable all debug options, even if they&apos;re redundant. What guarantees do I have it would be redundant in future versions?

  7) You are way too USE flag happy. Flags are supposed to be useful.
     long-usernames - can&apos;t imagine a scenario with this disabled. Verdict: useless.
     domain-scale &amp; large-scale vs large-domain - almost useless. The only uncovered scenario is --disable-large-scale --disable-domain-scale, but the only &quot;advantange of such configuration would be a shorter path to the dspam user data dirs (no /local). I think is safe to say it isn&apos;t worth it. 
     syslog - This shouldn&apos;t even be a configure option. The place of such switch is in the dspam.conf.
     
  8) dspam shouldn&apos;t be world-executable. So you want to control who has the right to use dspam through dspam group members list? Even if you use dspam daemon, users still need to have executable permission on dspam. Yet another no.

  9) --with-dspam-mode : point taken

  10) logrotate is used to rotate logs in /var/log/dspam. Since apparently it is used only by debug, I guess I can drop it.

  11) use dspam_logrotate in dspam.cron : agreed

  12) suexec&apos;s GID_MIN=100 : at that time, GID_MIN had been 1000. Better keep this limit (you never know when they rise it again).

  13) etc/mail/dspam/ contains executable .sql files : current version do not install *.sql files with executable permissions.

Did I missed something? 
Please keep it short, it was damn hard to read this jumbo-bug.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>kparent@enersea.net</who>
            <bug_when>2006-12-21 17:48:29 0000</bug_when>
            <thetext>(In reply to comment #7)
&gt;  1) 3.6.8-r1 fixed dspam --version, which apparently was broken by
&gt; autoconf-2.60. The fix is 14_all_autodetect-conf.patch; I am aware of the
&gt; inutile quotes displayed by --version, but technically speaking, it is of no
&gt; consequence. Either if configure params are quoted or not, dspam-web is able to
&gt; autodetect these parameters and act upon them.

Indeed it works.  Would be nice it if worked as original designed.

&gt; 
&gt;   2) I don&apos;t patch configure script. The right way of fixing it is through
&gt; patching the source files that generated the script. 
&gt; 

I thought about that.  Looks like the orignal code is coming from libtool - /usr/share/libtool/libltdl/configure.  I didn&apos;t want to bork anything else so patching the affected configure script seemed like a better option.

&gt;   3) 02_all_link-dynamically.patch - I think you are right on this one. Still,
&gt; nothing would be gained if I&apos;ll replace with --disable-static.

Just worried about what else it might affect.  Why include it if there is a configure switch already included with dspam?

&gt; 
&gt;   4) 12_all_logrotate-preserve-state.patch is fruit of my experience. It is the
&gt; right thing to do, but if you have a better solution, you are welcome to prove
&gt; me wrong.

No biggy.  Yours seems to do the job.  I&apos;ll attach the patch I found for kicks.
&gt; 
&gt;   5) Inventing flags like debian-patchset is definitely wrong. One, because
&gt; those patches have nothing to do with debian (although some of them were
&gt; inspired from theirs) and second because it has 0 significance. Would be just
&gt; another esoteric USE flag that no-one knows what signifies.

Some of &apos;em?  Most of them look like they came from that debiam tarball that was attached to the other closed bug.

&gt; 
&gt;   6) Since we don&apos;t have debug levels, debug USE flag must enable all debug
&gt; options, even if they&apos;re redundant. What guarantees do I have it would be
&gt; redundant in future versions?

I take issue with this one.  The author strongly suggests NOT to compile with verbose unless absolutely necessary.  Apparently is flaky and causes problems (or maybe exposes bad code?).  Looks like I&apos;ll have a dspam ebuild in my overlay forever. lol

&gt; 
&gt;   7) You are way too USE flag happy. Flags are supposed to be useful.
&gt;      long-usernames - can&apos;t imagine a scenario with this disabled. Verdict:
&gt; useless.

lol, good one!  Look at php.  Seriously though, there are quite a few options with dspam -file locations, owner and group settings, etc.  It would be nice to cover the basics so one can still use an ebuild via use flags instead of having to hack about.  I know its unreasonable to make everything available on every ebuild in gentoo and someone has to draw the line on where to stop.

&gt;      domain-scale &amp; large-scale vs large-domain - almost useless. The only
&gt; uncovered scenario is --disable-large-scale --disable-domain-scale, but the
&gt; only &quot;advantange of such configuration would be a shorter path to the dspam
&gt; user data dirs (no /local). I think is safe to say it isn&apos;t worth it. 

Good point.

&gt;      syslog - This shouldn&apos;t even be a configure option. The place of such
&gt; switch is in the dspam.conf.

Yeah, you&apos;re right.  I brought it up because its enabled by default.  Just offered up a flag to be able to toggle it since it was already included in the ebuild.

&gt;
&gt;   8) dspam shouldn&apos;t be world-executable. So you want to control who has the
&gt; right to use dspam through dspam group members list? 

You made my point for me.  3.6.8 and 3.6.8-r1 both install the dspam binary as world executable.

	make DESTDIR=&quot;${D}&quot; install || die &quot;make install failed&quot;
	chgrp dspam &quot;${D}/usr/bin/dspam&quot;
	chmod g+xs,o+x &quot;${D}/usr/bin/dspam&quot;

Touch a file and chmod it 500.  Then issue chmod g+xs,o+x and see what you end with - world executable, r-x--s--x. mode 2511.  Owner is x, group is x and setgid, and others is x.

Like you said, it SHOULDN&apos;T be world executable.  It should be r-x--s--- or 2510.  Again, since it was there, just made a switch to toggle it.  Some like it world executable, I dont have any use for it.

&gt; Even if you use dspam daemon, users still need to have executable permission
&gt; on dspam. Yet another no.

I haven&apos;t run into any instance where I users needed executable permissions.
 
&gt;   9) --with-dspam-mode : point taken

Same point as above - should be with mode 2510, dspam default.

&gt;   10) logrotate is used to rotate logs in /var/log/dspam. Since apparently it
&gt; is used only by debug, I guess I can drop it.

Those files can get HUGE if you forget to turn off debug.  Better leave it on second thought.
 
&gt;   11) use dspam_logrotate in dspam.cron : agreed
&gt; 
&gt;   12) suexec&apos;s GID_MIN=100 : at that time, GID_MIN had been 1000. Better keep
&gt; this limit (you never know when they rise it again).

True 

&gt;   13) etc/mail/dspam/ contains executable .sql files : current version do not
&gt; install *.sql files with executable permissions.
 
No? I just tested it....

# ls -l /etc/mail/dspam/
total 60
-rw-r--r-- 1 root dspam 27689 Dec 21 19:45 dspam.conf
-rw-r----- 1 root dspam    65 Dec 21 19:45 mysql.data
-rwxr-xr-x 1 root root   1303 Dec 21 19:45 mysql_objects-4.1.sql*
-rwxr-xr-x 1 root root   1266 Dec 21 19:45 mysql_objects-space.sql*
-rwxr-xr-x 1 root root   1249 Dec 21 19:45 mysql_objects-speed.sql*
-rwxr-xr-x 1 root root   1314 Dec 21 19:45 mysql_purge-4.1.sql*
-rwxr-xr-x 1 root root    537 Dec 21 19:45 mysql_purge.sql*
-rwxr-xr-x 1 root root    262 Dec 20 11:56 mysql_virtual_users.sql*
drwxr-xr-x 2 root root   4096 Dec 13 15:35 txt/

They look executable to me...

&gt; Did I missed something? 
&gt; Please keep it short, it was damn hard to read this jumbo-bug.
&gt; 

I think we covered it.  Thanks for the effort and your contributions to Gentoo.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>kparent@enersea.net</who>
            <bug_when>2006-12-21 18:01:56 0000</bug_when>
            <thetext>Created an attachment (id=104551)
dspam_logrotate patch to preserve owner, group, and permissions

Found this in the dspam mailing list archive</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mrness@gentoo.org</who>
            <bug_when>2006-12-22 00:00:21 0000</bug_when>
            <thetext>(In reply to comment #8)
&gt; &gt;   4) 12_all_logrotate-preserve-state.patch ...
&gt; No biggy.  Yours seems to do the job.  I&apos;ll attach the patch I found for kicks.

Looks the same. No reason for replacing my patch.

&gt; &gt;   5) Inventing flags like debian-patchset is definitely wrong...
&gt; 
&gt; Some of &apos;em?  Most of them look like they came from that debiam tarball that
&gt; was attached to the other closed bug.

And yet they aren&apos;t exactly the same. I&apos;ve added only patches that makes sense to Gentoo. I will not add a patch filtering USE flag just because you dislike some patches. Prove that a patch is wrong or shouldn&apos;t be applied in some cases and I will fix it. Till then you failed to point that.

&gt; &gt;   6) Since we don&apos;t have debug levels, debug USE flag must enable all debug
&gt; &gt; options, even if they&apos;re redundant. What guarantees do I have it would be
&gt; &gt; redundant in future versions?
&gt; 
&gt; I take issue with this one.  The author strongly suggests NOT to compile with
&gt; verbose unless absolutely necessary.  Apparently is flaky and causes problems
&gt; (or maybe exposes bad code?).  Looks like I&apos;ll have a dspam ebuild in my
&gt; overlay forever. lol

Overlay just for debug? Who are you, the dspam developer?
I&apos;ll remove --debug-verbose if you say is flaky.

&gt; &gt;   7) You are way too USE flag happy. Flags are supposed to be useful.
...
&gt; &gt;      syslog - This shouldn&apos;t even be a configure option. The place of such
&gt; &gt; switch is in the dspam.conf.
&gt; 
&gt; Yeah, you&apos;re right.  I brought it up because its enabled by default.  Just
&gt; offered up a flag to be able to toggle it since it was already included in the
&gt; ebuild.

I kinda like having --enable-syslog. Does --disable-syslog fit your needs? If it does, I will add this one.

&gt; &gt;   8) dspam shouldn&apos;t be world-executable. So you want to control who has the
&gt; &gt; right to use dspam through dspam group members list? 
&gt; Like you said, it SHOULDN&apos;T be world executable.  It should be r-x--s--- or
&gt; 2510.  Again, since it was there, just made a switch to toggle it.  Some like
&gt; it world executable, I dont have any use for it.

As a matter of fact, I couldn&apos;t use it if postfix wouldn&apos;t be able to run dspam (it switches to user:group before running MDA). Also, users wouldn&apos;t be able to run it from their procmailrcs. The point is all users should be able to run it.

&gt; &gt;   13) etc/mail/dspam/ contains executable .sql files : current version do not
&gt; &gt; install *.sql files with executable permissions.
&gt; 
&gt; No? I just tested it....

Probably you had dspam already installed. As you know, file permissions into protected areas aren&apos;t altered by a subsequent emerges. Test it on a system without already installed *.sql files and you&apos;ll see.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>kparent@enersea.net</who>
            <bug_when>2006-12-22 20:11:48 0000</bug_when>
            <thetext>(In reply to comment #10)

&gt; &gt; &gt;   5) Inventing flags like debian-patchset is definitely wrong...
&gt; &gt; 
&gt; &gt; Some of &apos;em?  Most of them look like they came from that debiam tarball that
&gt; &gt; was attached to the other closed bug.
&gt; 
&gt; And yet they aren&apos;t exactly the same. I&apos;ve added only patches that makes sense
&gt; to Gentoo. I will not add a patch filtering USE flag just because you dislike
&gt; some patches. Prove that a patch is wrong or shouldn&apos;t be applied in some cases
&gt; and I will fix it. Till then you failed to point that.

I&apos;m not lobbying for that flag any longer.  Though I think we can agree that the 02_all_dynamic-link.patch can be excluded and should be replaced with --disable-static.  I know you said there is no gain - outcome is the same.  But why patch for something that is already an option?  Should I submit a patch for --enable-syslog?

I&apos;d like to think that 14_all_autodetect-conf is temporary as well.

&gt; &gt; &gt;   6) Since we don&apos;t have debug levels, debug USE flag must enable all debug
&gt; &gt; &gt; options, even if they&apos;re redundant. What guarantees do I have it would be
&gt; &gt; &gt; redundant in future versions?
&gt; &gt; 
&gt; &gt; I take issue with this one.  The author strongly suggests NOT to compile with
&gt; &gt; verbose unless absolutely necessary.  Apparently is flaky and causes problems
&gt; &gt; (or maybe exposes bad code?).  Looks like I&apos;ll have a dspam ebuild in my
&gt; &gt; overlay forever. lol
&gt; 
&gt; Overlay just for debug? Who are you, the dspam developer?
&gt; I&apos;ll remove --debug-verbose if you say is flaky.

lol, no dpsam developer here.  I had some past issues with dspam and it was related the the verbose setting.  Don&apos;t recall exactly what the problem was, but removing verbose solved the problem.

&gt; &gt; &gt;   7) You are way too USE flag happy. Flags are supposed to be useful.
&gt; ...
&gt; &gt; &gt;      syslog - This shouldn&apos;t even be a configure option. The place of such
&gt; &gt; &gt; switch is in the dspam.conf.
&gt; &gt; 
&gt; &gt; Yeah, you&apos;re right.  I brought it up because its enabled by default.  Just
&gt; &gt; offered up a flag to be able to toggle it since it was already included in the
&gt; &gt; ebuild.
&gt; 
&gt; I kinda like having --enable-syslog. Does --disable-syslog fit your needs? If
&gt; it does, I will add this one.

Not a big deal to me either way.  I only added flags for defaults that existed, and for options I wished to change.  I didn&apos;t want to force my settings on anyone, nor did I want the defaults already in the ebuild forced on me.  I can live with or without the syslog feature.  Might as well leave it.
 
&gt; &gt; &gt;   8) dspam shouldn&apos;t be world-executable. So you want to control who has the
&gt; &gt; &gt; right to use dspam through dspam group members list? 
&gt; &gt; Like you said, it SHOULDN&apos;T be world executable.  It should be r-x--s--- or
&gt; &gt; 2510.  Again, since it was there, just made a switch to toggle it.  Some like
&gt; &gt; it world executable, I dont have any use for it.
&gt; 
&gt; As a matter of fact, I couldn&apos;t use it if postfix wouldn&apos;t be able to run dspam
&gt; (it switches to user:group before running MDA).

Sure you could.  You would just have to use it differently.  I use dspam on two postfix systems, and I don&apos;t need it.  Depends how you integrate dspam into the mail-server picture.  I have a dspam transport setup in master.cf and use the mailbox_transport in main.cf to send the messages to the dspam transport.  dspam delivers it to procmail on one system and to lmtp (cyrus) on the other.

&gt; Also, users wouldn&apos;t be able to run it from their procmailrcs. The point is &gt;all users should be able to run it.

This is exactly why I proposed the world-exec flag (or whatever you want to call it).  There are so many combinations of MTA -&gt; MDA/LDA/pop-imap and different stages where dspam can be inserted into the chain that different combinations need different options.  dspam supplies options to facilitate integration into nearly any situation, but the ebuild doesn&apos;t.  I don&apos;t expect ebuild to supply ALL of dspams permutations.

Some people need world-executable, but other people do not.  dspam by default is NOT world executable.  Should one be forced to use world exe on a SETGID program when ones setup doesn&apos;t require it? Alternatively, Should one be forced to use dspam in default mode when one&apos;s setup needs world executable?

If not a flag, how about a variable for the default mode? Then set the mode with the variable instead of hard code.

DSPAMMODE=2511
....
                myconf=&quot;--dspam-mode=${DSPAMMODE}, ... &quot;

or is that a gentoo ebuild no-no too?

&gt; &gt; &gt;   13) etc/mail/dspam/ contains executable .sql files : current version do not
&gt; &gt; &gt; install *.sql files with executable permissions.
&gt; &gt; 
&gt; &gt; No? I just tested it....
&gt; 
&gt; Probably you had dspam already installed. As you know, file permissions into
&gt; protected areas aren&apos;t altered by a subsequent emerges. Test it on a system
&gt; without already installed *.sql files and you&apos;ll see.

Check the timestamps.  I did. Several times. And one more time. Here&apos;s the before...

ls -lF /etc/mail
total 20
-rw-r--r-- 1 root root  1104 Dec 22 18:07 aliases
-rw-r--r-- 1 root root 12288 Dec 22 18:07 aliases.db
drwxr-xr-x 3 root root  4096 Nov 23 13:36 spamassassin/


and the after:

polly mythtv # ls -lF /etc/mail
total 24
-rw-r--r-- 1 root  root   1104 Dec 22 18:07 aliases
-rw-r--r-- 1 root  root  12288 Dec 22 18:07 aliases.db
drwxrwx--- 3 dspam dspam  4096 Dec 22 18:11 dspam/
drwxr-xr-x 3 root  root   4096 Nov 23 13:36 spamassassin/

ls -lF /etc/mail/dspam/
total 56
-rw-r----- 1 dspam dspam 27619 Dec 22 18:11 dspam.conf
-rw-r----- 1 root  dspam    66 Dec 22 18:11 mysql.data
-rwxr-xr-x 1 root  root   1303 Dec 22 18:11 mysql_objects-4.1.sql*
-rwxr-xr-x 1 root  root   1266 Dec 22 18:11 mysql_objects-space.sql*
-rwxr-xr-x 1 root  root   1249 Dec 22 18:11 mysql_objects-speed.sql*
-rwxr-xr-x 1 root  root   1314 Dec 22 18:11 mysql_purge-4.1.sql*
-rwxr-xr-x 1 root  root    537 Dec 22 18:11 mysql_purge.sql*
drwxr-xr-x 2 root  root   4096 Dec 22 18:11 txt/

Even txt/ and its files are executable.

# ls -lF /etc/mail/dspam/txt/
total 12
-rwxr-xr-x 1 root root 2257 Dec 22 18:11 firstrun.txt*
-rwxr-xr-x 1 root root 1315 Dec 22 18:11 firstspam.txt*
-rwxr-xr-x 1 root root 1283 Dec 22 18:11 quarantinefull.txt*
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>kparent@enersea.net</who>
            <bug_when>2006-12-28 10:59:30 0000</bug_when>
            <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; 
&gt; &gt; &gt; &gt;   5) Inventing flags like debian-patchset is definitely wrong...
&gt; &gt; &gt; 
&gt; &gt; &gt; Some of &apos;em?  Most of them look like they came from that debiam tarball that
&gt; &gt; &gt; was attached to the other closed bug.
&gt; &gt; 
&gt; &gt; And yet they aren&apos;t exactly the same. I&apos;ve added only patches that makes sense
&gt; &gt; to Gentoo. I will not add a patch filtering USE flag just because you dislike
&gt; &gt; some patches. Prove that a patch is wrong or shouldn&apos;t be applied in some cases
&gt; &gt; and I will fix it. Till then you failed to point that.
&gt; 
&gt; I&apos;m not lobbying for that flag any longer.  Though I think we can agree that
&gt; the 02_all_dynamic-link.patch can be excluded and should be replaced with
&gt; --disable-static.  I know you said there is no gain - outcome is the same.  But
&gt; why patch for something that is already an option?  Should I submit a patch for

Hope you had a great holiday season!

I did a little research on the patches.  See the attachment for my
comments.

&gt; &gt; &gt; &gt;   6) Since we don&apos;t have debug levels, debug USE flag must enable all debug
&gt; &gt; &gt; &gt; options, even if they&apos;re redundant. What guarantees do I have it would be
&gt; &gt; &gt; &gt; redundant in future versions?
&gt; &gt; &gt; 
&gt; &gt; &gt; I take issue with this one.  The author strongly suggests NOT to compile with
&gt; &gt; &gt; verbose unless absolutely necessary.  Apparently is flaky and causes problems
&gt; &gt; &gt; (or maybe exposes bad code?).  Looks like I&apos;ll have a dspam ebuild in my
&gt; &gt; &gt; overlay forever. lol
&gt; &gt; 
&gt; &gt; Overlay just for debug? Who are you, the dspam developer?
&gt; &gt; I&apos;ll remove --debug-verbose if you say is flaky.
&gt; 
&gt; lol, no dpsam developer here.  I had some past issues with dspam and it was
&gt; related the the verbose setting.  Don&apos;t recall exactly what the problem was,
&gt; but removing verbose solved the problem.

Don&apos;t just take my word for it.  From README:

DEBUGGING SWITCHES

 --enable-debug
 Turns on support for debugging output. This option allows you to turn on 
 debugging messages for all or some users by editing dspam.conf or setting
 --debug on the commandline. Enabling debug in configure only adds support 
 for debug to be compiled in, it must still be activated using one of the 
 options prescribed above. Debugging support itself doesn&apos;t use up very 
 many additional resources, so it should be safe to leave enabled on 
 non-enterprise class systems.

 --enable-verbose-debug
 Turns on extremely verbose debugging output. --enable-debug is implied.
 Never use this on production builds! 

 Note:

 When verbose debug is compiled in, DSPAM performs many additional
 mathematical calculations regardless of whether or not it&apos;s been
 activated. You shouldn&apos;t use --enable-verbose for production builds
 unless you have serious issues you can&apos;t resolve.
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>kparent@enersea.net</who>
            <bug_when>2006-12-28 11:01:44 0000</bug_when>
            <thetext>Created an attachment (id=104867)
patch.comments.txt

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mrness@gentoo.org</who>
            <bug_when>2007-01-08 15:49:16 0000</bug_when>
            <thetext>-r2 is now in cvs.

Summary:
1) not changed - I tought about removing quotes but then I saw the CFLAGS/CXXFLAGS there. Better leave it as is (I don&apos;t really understand your problem with current variant anyway).

3) not changed. (--disable-static do nothing it can be used in makefile, check configure script for yourself) 

6) --enable-verbose-debug has been removed.

8) added DSPAMPERMS variable in ebuild

9) modified as suggested.

11) modified as suggested.

13) fixed.</thetext>
          </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104489</attachid>
            <date>2006-12-20 21:01 0000</date>
            <desc>patch for eautoreconf generated configure script to restore correct dspam --version output.</desc>
            <filename>dspam_--version_output.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">LS0tIGRzcGFtLTMuNi44LW5ldy9jb25maWd1cmUJMjAwNi0xMi0xNyAxOToyODo0OC4wMDAwMDAw
MDAgLTA2MDAKKysrIGRzcGFtLTMuNi44L2NvbmZpZ3VyZQkyMDA2LTEyLTE3IDE4OjU0OjQzLjAw
MDAwMDAwMCAtMDYwMApAQCAtMTkzNiwxNyArMTkzNiwxNCBAQAogCiAjIExldCB0aGUgc2l0ZSBm
aWxlIHNlbGVjdCBhbiBhbHRlcm5hdGUgY2FjaGUgZmlsZSBpZiBpdCB3YW50cyB0by4KICMgUHJl
ZmVyIGV4cGxpY2l0bHkgc2VsZWN0ZWQgZmlsZSB0byBhdXRvbWF0aWNhbGx5IHNlbGVjdGVkIG9u
ZXMuCi1pZiB0ZXN0IC1uICIkQ09ORklHX1NJVEUiOyB0aGVuCi0gIHNldCB4ICIkQ09ORklHX1NJ
VEUiCi1lbGlmIHRlc3QgIngkcHJlZml4IiAhPSB4Tk9ORTsgdGhlbgotICBzZXQgeCAiJHByZWZp
eC9zaGFyZS9jb25maWcuc2l0ZSIgIiRwcmVmaXgvZXRjL2NvbmZpZy5zaXRlIgotZWxzZQotICBz
ZXQgeCAiJGFjX2RlZmF1bHRfcHJlZml4L3NoYXJlL2NvbmZpZy5zaXRlIiBcCi0JIiRhY19kZWZh
dWx0X3ByZWZpeC9ldGMvY29uZmlnLnNpdGUiCitpZiB0ZXN0IC16ICIkQ09ORklHX1NJVEUiOyB0
aGVuCisgIGlmIHRlc3QgIngkcHJlZml4IiAhPSB4Tk9ORTsgdGhlbgorICAgIENPTkZJR19TSVRF
PSIkcHJlZml4L3NoYXJlL2NvbmZpZy5zaXRlICRwcmVmaXgvZXRjL2NvbmZpZy5zaXRlIgorICBl
bHNlCisgICAgQ09ORklHX1NJVEU9IiRhY19kZWZhdWx0X3ByZWZpeC9zaGFyZS9jb25maWcuc2l0
ZSAkYWNfZGVmYXVsdF9wcmVmaXgvZXRjL2NvbmZpZy5zaXRlIgorICBmaQogZmkKLXNoaWZ0Ci1m
b3IgYWNfc2l0ZV9maWxlCi1kbworZm9yIGFjX3NpdGVfZmlsZSBpbiAkQ09ORklHX1NJVEU7IGRv
CiAgIGlmIHRlc3QgLXIgIiRhY19zaXRlX2ZpbGUiOyB0aGVuCiAgICAgeyBlY2hvICIkYXNfbWU6
JExJTkVOTzogbG9hZGluZyBzaXRlIHNjcmlwdCAkYWNfc2l0ZV9maWxlIiA+JjUKIGVjaG8gIiRh
c19tZTogbG9hZGluZyBzaXRlIHNjcmlwdCAkYWNfc2l0ZV9maWxlIiA+JjY7fQo=
</data>        

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>104490</attachid>
            <date>2006-12-20 21:05 0000</date>
            <desc>ebuild with new use flags and defaults.</desc>
            <filename>dspam-3.6.8-r1.ebuild</filename>
            <type>text/plain</type>
            <data encoding="base64">IyBDb3B5cmlnaHQgMTk5OS0yMDA2IEdlbnRvbyBGb3VuZGF0aW9uCiMgRGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2MgojICRIZWFk
ZXI6IC92YXIvY3Zzcm9vdC9nZW50b28teDg2L21haWwtZmlsdGVyL2RzcGFtL2RzcGFtLTMuNi44
LXIxLmVidWlsZCx2IDEuMSAyMDA2LzEyLzE5IDA5OjQ2OjA2IG1ybmVzcyBFeHAgJAoKaW5oZXJp
dCBldXRpbHMgYXV0b3Rvb2xzIGZsYWctby1tYXRpYwoKREVTQ1JJUFRJT049IkEgc3RhdGlzdGlj
YWwtYWxnb3JpdGhtaWMgaHlicmlkIGFudGktc3BhbSBmaWx0ZXIiCkhPTUVQQUdFPSJodHRwOi8v
ZHNwYW0ubnVjbGVhcmVsZXBoYW50LmNvbS8iClNSQ19VUkk9Imh0dHA6Ly9kc3BhbS5udWNsZWFy
ZWxlcGhhbnQuY29tL3NvdXJjZXMvJHtQfS50YXIuZ3oKCW1pcnJvcjovL2dlbnRvby8ke1B9LXBh
dGNoZXMtMjAwNjEyMTkudGFyLmd6CglodHRwOi8vZHNwYW0ubnVjbGVhcmVsZXBoYW50LmNvbS9z
b3VyY2VzL2V4dHJhcy9kc3BhbV9zYV90cmFpbmVyLnRhci5neiIKCkxJQ0VOU0U9IkdQTC0yIgpT
TE9UPSIwIgpJVVNFPSJjbGFtYXYgZGFlbW9uIGRlYmlhbi1wYXRjaHNldCBkZWJ1ZyBkZWJ1Zy1i
bnIgZG9tYWluLXNjYWxlIGxhcmdlLXNjYWxlIFwKICAgICAgICBsZGFwIGxvZ3JvdGF0ZSBsb25n
LXVzZXJuYW1lcyBteXNxbCBvcmFjbGUgcG9zdGdyZXMgc3FsaXRlIHNxbGl0ZTMgXAogICAgICAg
IHN0YXRpYyB1c2VyLWhvbWVkaXJzIHZlcmJvc2UgdmlydHVhbC11c2VycyB3b3JsZC1leGVjIgoK
REVQRU5EPSJjbGFtYXY/CQkoID49YXBwLWFudGl2aXJ1cy9jbGFtYXYtMC44NiApCglsZGFwPwkJ
KCA+PW5ldC1uZHMvb3BlbmxkYXAtMi4yICkKCW15c3FsPwkJKCB2aXJ0dWFsL215c3FsICkKCXBv
c3RncmVzPwkoID49ZGV2LWRiL3Bvc3RncmVzcWwtNy40LjMgKQoJc3FsaXRlPwkJKCA8ZGV2LWRi
L3NxbGl0ZS0zICkKCXNxbGl0ZTM/CSggPWRldi1kYi9zcWxpdGUtMyogKSIKClJERVBFTkQ9IiR7
REVQRU5EfQoJc3lzLXByb2Nlc3MvY3JvbmJhc2UKCXZpcnR1YWwvbG9nZ2VyCglsb2dyb3RhdGU/
ICggYXBwLWFkbWluL2xvZ3JvdGF0ZSApIgoKS0VZV09SRFM9In5hbHBoYSB+YW1kNjQgfnBwYyB+
c3BhcmMgfng4NiIKCiMgc29tZSBGSFMtbGlrZSBzdHJ1Y3R1cmUKSE9NRURJUj0iL3Zhci9zcG9v
bC9kc3BhbSIKQ09ORkRJUj0iL2V0Yy9tYWlsL2RzcGFtIgpMT0dESVI9Ii92YXIvbG9nL2RzcGFt
IgoKIyBGb3Igc2VsZWN0aXZlIGRlYmlhbi1wYXRjaHNldAojIEV4YW1wbGU6IE9NSVQ9IjAyIDAz
IDEzIgoKT01JVD0iMDIiCgpjcmVhdGVfZHNwYW1fdXNlcmdyb3VwKCkgewoJbG9jYWwgZWdpZCBl
dWlkCgkjTmVlZCBhIFVJRCBhbmQgR0lEID49IDEwMDAsIGZvciBiZWluZyBhYmxlIHRvIHVzZSBz
dWV4ZWMgaW4gYXBhY2hlCglmb3IgZXVpZCBpbiAkKHNlcSAxMDAwIDUwMDAgKSA7IGRvCgkJW1sg
LXogJChlZ2V0ZW50IHBhc3N3ZCAke2V1aWR9KSBdXSAmJiBicmVhawoJZG9uZQoJZm9yIGVnaWQg
aW4gJChzZXEgMTAwMCA1MDAwICkgOyBkbwoJCVtbIC16ICQoZWdldGVudCBncm91cCAke2VnaWR9
KSBdXSAmJiBicmVhawoJZG9uZQoKCWVuZXdncm91cCBkc3BhbSAke2VnaWR9CgllbmV3dXNlciBk
c3BhbSAke2V1aWR9IC0xICR7SE9NRURJUn0gZHNwYW0sbWFpbAp9Cgpwa2dfc2V0dXAoKSB7Cglp
ZiB1c2UgdmlydHVhbC11c2VycyAmJiB1c2UgdXNlci1ob21lZGlycyA7IHRoZW4KCQllZXJyb3IK
CQllZXJyb3IgIklmIHRoZSB1c2VycyBhcmUgdmlydHVhbCwgdGhlbiB0aGV5IHByb2JhYmx5IHNo
b3VsZCBub3QiCgkJZWVycm9yICJoYXZlIGhvbWUgZGlyZWN0b3JpZXMuIgoJCWVlcnJvcgoJCWRp
ZSAiSW5jb21wYXRpYmxlIFVTRSBmbGFnIHNlbGVjdGlvbiIKCWZpCgoJaWYgdXNlIGxhcmdlLXNj
YWxlICYmIHVzZSBkb21haW4tc2NhbGUgOyB0aGVuCgkJZWVycm9yCgkJZWVycm9yICJZb3UgaGF2
ZSBib3RoIGxhcmdlLXNjYWxlIGFuZCBkb21haW4tc2NhbGUgVVNFIGZsYWdzIHNldC4iCgkJZWVy
cm9yICJTZXQgb25seSBvbmUgb2YgdGhlbS4gIElmIG5laXRoZXIgYXJlIHNlbGVjdGVkLCB0aGUg
ZGVmYXVsdCIKCQllZXJyb3IgIm9mIHNtYWxsLXNjYWxlIHdpbGwgYmUgdXNlZC4iCgkJZWVycm9y
CgkJZGllICJJbmNvbXBhdGlibGUgVVNFIGZsYWcgc2VsZWN0aW9uIgoJZmkKCglpZiB1c2UgZGVi
dWcgJiYgdXNlIHZlcmJvc2UgOyB0aGVuCgkJZWVycm9yCgkJZWVycm9yICIgWW91IGhhdmUgYm90
aCBkZWJ1ZyBhbmQgdmVyYm9zZSBVU0UgZmxhZ3Mgc2V0LiIKCQllZXJyb3IgIiB2ZXJib3NlIGlt
cGxpZXMgZGVidWcgc28gaXQgaXMgdW5uZWNlc3NhcnkgdG8iCgkJZWVycm9yICIgc2V0IGJvdGgu
IgoJCWVlcnJvcgoJCWVlcnJvciAiQkVXQVJFISwgVkVSQk9TRSBTSE9VTEQgTk9UIEJFIFVTRUQg
VU5MRVNTIEFCU09MVVRFTFkiCgkJZWVycm9yICJORUNFU1NBUlkuIgoJCWVlcnJvcgoJCWRpZSAi
SW5jb21wYXRpYmxlIFVTRSBmbGFnIHNlbGVjdGlvbiIKCWZpCgoJY3JlYXRlX2RzcGFtX3VzZXJn
cm91cAp9CgpzcmNfdW5wYWNrKCkgewoJdW5wYWNrICR7QX0KCWNkICIke1N9IgoKCUVQQVRDSF9T
VUZGSVg9InBhdGNoIgoKCWlmIHVzZSBkZWJpYW4tcGF0Y2hzZXQ7IHRoZW4KICAgICAgICAgICAg
ICAgIGlmIHVzZSBzdGF0aWM7IHRoZW4gcm0gJHtXT1JLRElSfS9wYXRjaGVzLzAyKjsgZmkKCQlp
ZiBbIC1uICIke09NSVR9IiBdOyB0aGVuIGZvciBpIGluICR7T01JVH07IGRvCgkJcm0gJHtXT1JL
RElSfS9wYXRjaGVzLyRpKjsgZG9uZTsgZmkKCQlybSAke1dPUktESVJ9L3BhdGNoZXMvMTQqCgkJ
ZXBhdGNoICIke1dPUktESVJ9Ii9wYXRjaGVzCglmaQoKCSMgRml4IExhenkgYmluZGluZ3MKCWFw
cGVuZC1mbGFncyAkKGJpbmRub3ctZmxhZ3MpCgoJaWYgdXNlIGRlYmlhbi1wYXRjaHNldDsgdGhl
bgoJZm9yIGkgaW4gYGxzICR7V09SS0RJUn0vcGF0Y2hlcy9gOyBkbwoJCWlmIFtbICRpID0gIjAy
IiogfHwgJGkgPSAiMDMiKiB8fCAkaSA9ICIxMyIqIF1dOyB0aGVuCiAgICAgICAgCQlBVF9NNERJ
Uj0iJHtTfS9tNCIKCQkJZWF1dG9yZWNvbmYKCQkJZXBhdGNoICIke0ZJTEVTRElSfSIvZHNwYW1f
LS12ZXJzaW9uX291dHB1dC5wYXRjaAoJCQlicmVhawoJCWZpCglkb25lCglmaQp9CgpzcmNfY29t
cGlsZSgpIHsKCWxvY2FsIG15Y29uZgoKCXVzZSBsYXJnZS1zY2FsZSAmJiBteWNvbmY9IiR7bXlj
b25mfSAtLWVuYWJsZS1sYXJnZS1zY2FsZSIKCgl1c2UgZG9tYWluLXNjYWxlICYmIG15Y29uZj0i
JHtteWNvbmZ9IC0tZW5hYmxlLWRvbWFpbi1zY2FsZSIgCgoJdXNlIHVzZXItaG9tZWRpcnMgJiYg
bXljb25mPSIke215Y29uZn0gLS1lbmFibGUtaG9tZWRpciIKCgl1c2UgZGVidWcgJiYgbXljb25m
PSIke215Y29uZn0gLS1lbmFibGUtZGVidWciCgl1c2UgdmVyYm9zZSAmJiBteWNvbmY9IiR7bXlj
b25mfSAtLWVuYWJsZS12ZXJib3NlLWRlYnVnIgoJdXNlIGRlYnVnLWJuciAmJiBteWNvbmY9IiR7
bXljb25mfSAtLWVuYWJsZS1ibnItZGVidWciCgoJdXNlIHdvcmxkLWV4ZWMgJiYgbXljb25mPSIk
e215Y29uZn0gLS13aXRoLWRzcGFtLW1vZGU9MjUxMSIKCglpZiB1c2UgdmlydHVhbC11c2VycyA7
IHRoZW4KCQlpZiB1c2UgbXlzcWwgfHwgdXNlIHBvc3RncmVzIHx8IHVzZSBvcmFjbGUgOyB0aGVu
CgkJCW15Y29uZj0iJHtteWNvbmZ9IC0tZW5hYmxlLXZpcnR1YWwtdXNlcnMiCgkJZmkKCWZpCgoJ
aWYgdXNlIG15c3FsIHx8IHVzZSBwb3N0Z3JlcyA7IHRoZW4KCQlteWNvbmY9IiR7bXljb25mfSAt
LWVuYWJsZS1wcmVmZXJlbmNlcy1leHRlbnNpb24iCglmaQoKCWxvY2FsIFNUT1JBR0UKCSMgc2Vs
ZWN0IHN0b3JhZ2UgZHJpdmVyCglpZiB1c2Ugc3FsaXRlIDsgdGhlbgoJCWlmIFsgIiRTVE9SQUdF
IiBdIDsgdGhlbiBTVE9SQUdFPSIke1NUT1JBR0V9LCIgOyBmaQoJCVNUT1JBR0U9IiR7U1RPUkFH
RX1zcWxpdGVfZHJ2IgoJZmkKCWlmIHVzZSBzcWxpdGUzIDsgdGhlbgoJCWlmIFsgIiRTVE9SQUdF
IiBdIDsgdGhlbiBTVE9SQUdFPSIke1NUT1JBR0V9LCIgOyBmaQoJCVNUT1JBR0U9IiR7U1RPUkFH
RX1zcWxpdGUzX2RydiIKCWZpCglpZiB1c2UgbXlzcWw7IHRoZW4KCQlpZiBbICIkU1RPUkFHRSIg
XSA7IHRoZW4gU1RPUkFHRT0iJHtTVE9SQUdFfSwiIDsgZmkKCQlTVE9SQUdFPSIke1NUT1JBR0V9
bXlzcWxfZHJ2IgoJCW15Y29uZj0iJHtteWNvbmZ9IC0td2l0aC1teXNxbC1pbmNsdWRlcz0vdXNy
L2luY2x1ZGUvbXlzcWwiCgkJbXljb25mPSIke215Y29uZn0gLS13aXRoLW15c3FsLWxpYnJhcmll
cz0vdXNyL2xpYi9teXNxbCIKCWZpCglpZiB1c2UgcG9zdGdyZXMgOyB0aGVuCgkJaWYgWyAiJFNU
T1JBR0UiIF0gOyB0aGVuIFNUT1JBR0U9IiR7U1RPUkFHRX0sIiA7IGZpCgkJU1RPUkFHRT0iJHtT
VE9SQUdFfXBnc3FsX2RydiIKCQlteWNvbmY9IiR7bXljb25mfSAtLXdpdGgtcGdzcWwtaW5jbHVk
ZXM9L3Vzci9pbmNsdWRlL3Bvc3RncmVzcWwiCgkJbXljb25mPSIke215Y29uZn0gLS13aXRoLXBn
c3FsLWxpYnJhcmllcz0vdXNyL2xpYi9wb3N0Z3Jlc3FsIgoJZmkKCWlmIHVzZSBvcmFjbGUgOyB0
aGVuCgkJaWYgWyAiJFNUT1JBR0UiIF0gOyB0aGVuIFNUT1JBR0U9IiR7U1RPUkFHRX0sIiA7IGZp
CgkJU1RPUkFHRT0iJHtTVE9SQUdFfW9yYV9kcnYiCgkJbXljb25mPSIke215Y29uZn0gLS13aXRo
LW9yYWNsZS1ob21lPSR7T1JBQ0xFX0hPTUV9IgoKCQkjIEkgYW0gaW4gbm8gd2F5IGEgT3JhY2xl
IHNwZWNpYWxpc3QuIElmIHNvbWVvbmUga25vd3MKCQkjIGhvdyB0byBxdWVyeSB0aGUgdmVyc2lv
biBvZiBPcmFjbGUsIHRoZW4gbGV0IG1lIGtub3cuCgkJaWYgKGV4cHIgJHtPUkFDTEVfSE9NRS8q
XC99IDogMTAgMT4vZGV2L251bGwgMj4mMSk7IHRoZW4KCQkJbXljb25mPSIke215Y29uZn0gLS13
aXRoLW9yYWNsZS12ZXJzaW9uPTEwIgoJCWZpCglmaQoJaWYgW1sgLXogIiR7U1RPUkFHRX0iIF1d
OyB0aGVuCgkJU1RPUkFHRT0iJHtTVE9SQUdFfWhhc2hfZHJ2IgoJZmkKCgllY29uZiAke215Y29u
Zn0gLS13aXRoLXN0b3JhZ2UtZHJpdmVyPSR7U1RPUkFHRX0gXAoJCQktLXdpdGgtZHNwYW0taG9t
ZT0ke0hPTUVESVJ9IFwKCQkJLS1zeXNjb25mZGlyPSR7Q09ORkRJUn0gXAoJCQkkKHVzZV9lbmFi
bGUgZGFlbW9uKSBcCgkJCSQodXNlX2VuYWJsZSBsZGFwKSBcCgkJCSQodXNlX2VuYWJsZSBjbGFt
YXYpIFwKCQkJJCh1c2VfZW5hYmxlIHN0YXRpYykgXAoJCQkkKHVzZV9lbmFibGUgbG9uZy11c2Vy
bmFtZXMpIFwKCQkgICAgICAgIC0td2l0aC1kc3BhbS1ncm91cD1kc3BhbSBcCgkJICAgICAgICAt
LXdpdGgtZHNwYW0taG9tZS1ncm91cD1kc3BhbSBcCgkJCS0td2l0aC1sb2dkaXI9JHtMT0dESVJ9
IHx8IGRpZSAiZWNvbmYgZmFpbGVkIgoJZW1ha2UgfHwgZGllICJlbWFrZSBmYWlsZWQiCn0KCnNy
Y19pbnN0YWxsICgpIHsKCWRpcm9wdHMgLW0wNzcwIC1vIGRzcGFtIC1nIGRzcGFtCglkb2RpciAk
e0NPTkZESVJ9CglpbnNpbnRvICR7Q09ORkRJUn0KCWluc29wdHMgLW02NDAgLW8gZHNwYW0gLWcg
ZHNwYW0KCWRvaW5zIHNyYy9kc3BhbS5jb25mCgoJZG9zeW0gL2V0Yy9tYWlsL2RzcGFtIC9ldGMv
ZHNwYW0KCgkjIG1ha2UgaW5zdGFsbAoJbWFrZSBERVNURElSPSIke0R9IiBpbnN0YWxsIHx8IGRp
ZSAibWFrZSBpbnN0YWxsIGZhaWxlZCIKCglkb2RpciAvdXNyL2xpYi9kc3BhbQoJbXYgIiR7RH0i
L3Vzci9saWIvKmRydiogIiR7RH0iL3Vzci9saWIvZHNwYW0vCgoJZGlyb3B0cyAtbTA3NTUgLW8g
ZHNwYW0gLWcgZHNwYW0KCWtlZXBkaXIgL3Zhci9ydW4vZHNwYW0KCgkjIGNyZWF0ZSBsb2dkaXIK
CWRpcm9wdHMgLW0wNzcwIC1vIGRzcGFtIC1nIGRzcGFtCglrZWVwZGlyICR7TE9HRElSfQoKCSNj
bGVhbiBvcHRpb25zCglkaXJvcHRzCglpbnNvcHRzCgoJaWYgdXNlIGRhZW1vbjsgdGhlbgoJCSMg
V2UgdXNlIHNvY2tldHMgZm9yIHRoZSBkYWVtb24gaW5zdGVhZCBvZiB0Y3AgcG9ydCAyNAoJCXNl
ZCAtZSAnczpeIypcKFNlcnZlckRvbWFpblNvY2tldFBhdGhbXHQgXVx7MSxcfVwpLio6XDFcIi92
YXIvcnVuL2RzcGFtL2RzcGFtLnNvY2tcIjpnSScgXAoJCQktZSAnczpeIypcKFNlcnZlclBJRFtc
dCBdXHsxLFx9XCkuKjpcMS92YXIvcnVuL2RzcGFtL2RzcGFtLnBpZDpnSScgXAoJCQktaSAiJHtE
fS8ke0NPTkZESVJ9L2RzcGFtLmNvbmYiCgoJCW5ld2luaXRkICIke0ZJTEVTRElSfS9kc3BhbS5y
YyIgZHNwYW0KCWZpCgoJIyBnZW5lcmF0ZSByYW5kb20gcGFzc3dvcmQKCWxvY2FsIFBBU1NXT1JE
PSIke1JBTkRPTX0ke1JBTkRPTX0ke1JBTkRPTX0ke1JBTkRPTX0iCgoJIyBkYXRhYmFzZSByZWxh
dGVkIGNvbmZpZ3VyYXRpb24gYW5kIHNjcmlwdHMKCWlmIHVzZSBzcWxpdGU7IHRoZW4KCQlpbnNp
bnRvICR7Q09ORkRJUn0KCQluZXdpbnMgc3JjL3Rvb2xzLnNxbGl0ZV9kcnYvcHVyZ2UtMi5zcWwg
c3FsaXRlX3B1cmdlLnNxbAoJZmkKCWlmIHVzZSBzcWxpdGUzOyB0aGVuCgkJaW5zaW50byAke0NP
TkZESVJ9CgkJbmV3aW5zIHNyYy90b29scy5zcWxpdGVfZHJ2L3B1cmdlLTMuc3FsIHNxbGl0ZTNf
cHVyZ2Uuc3FsCglmaQoJaWYgdXNlIG15c3FsOyB0aGVuCgkJIyBVc2UgZXhpc3RpbmcgY29uZmln
dXJhdGlvbiBpZiBwb3NzaWJsZQoJCWlmIFtbIC1mICIke1JPT1R9JHtDT05GRElSfS9teXNxbC5k
YXRhIiBdXTsgdGhlbgoJCQlEU1BBTV9EQl9EQVRBPSggJChzZWQgInM6XltcdCBdKiQ6IyMjOmdJ
IiAiJHtST09UfSR7Q09ORkRJUn0vbXlzcWwuZGF0YSIpICkKCQkJZm9yIERCX0RBVEFfSU5ERVgg
aW4gJChzZXEgMCAkKCgkeyNEU1BBTV9EQl9EQVRBW0BdfSAtIDEpKSk7IGRvCgkJCQlbWyAiJHtE
U1BBTV9EQl9EQVRBWyREQl9EQVRBX0lOREVYXX0iID0gIiMjIyIgXV0gJiYgRFNQQU1fREJfREFU
QVskREJfREFUQV9JTkRFWF09IiIKCQkJZG9uZQoJCWVsc2UKCQkJRFNQQU1fREJfREFUQVswXT0i
L3Zhci9ydW4vbXlzcWxkL215c3FsZC5zb2NrIgoJCQlEU1BBTV9EQl9EQVRBWzFdPSIiCgkJCURT
UEFNX0RCX0RBVEFbMl09ImRzcGFtIgoJCQlEU1BBTV9EQl9EQVRBWzNdPSIke1BBU1NXT1JEfSIK
CQkJRFNQQU1fREJfREFUQVs0XT0iZHNwYW0iCgkJCURTUEFNX0RCX0RBVEFbNV09InRydWUiCgkJ
ZmkKCgkJIyBNb2RpZnkgY29uZmlndXJhdGlvbiBhbmQgY3JlYXRlIG15c3FsLmRhdGEgZmlsZQoJ
CXNlZCAtZSAiczpeIypcKE15U1FMU2VydmVyW1x0IF1cezEsXH1cKS4qOlwxJHtEU1BBTV9EQl9E
QVRBWzBdfTpnSSIgXAoJCQktZSAiczpeIypcKE15U1FMUG9ydFtcdCBdXHsxLFx9XCkuKjpcMSR7
RFNQQU1fREJfREFUQVsxXX06Z0kiIFwKCQkJLWUgInM6XiMqXChNeVNRTFVzZXJbXHQgXVx7MSxc
fVwpLio6XDEke0RTUEFNX0RCX0RBVEFbMl19OmdJIiBcCgkJCS1lICJzOl4jKlwoTXlTUUxQYXNz
W1x0IF1cezEsXH1cKS4qOlwxJHtEU1BBTV9EQl9EQVRBWzNdfTpnSSIgXAoJCQktZSAiczpeIypc
KE15U1FMRGJbXHQgXVx7MSxcfVwpLio6XDEke0RTUEFNX0RCX0RBVEFbNF19OmdJIiBcCgkJCS1l
ICJzOl4jKlwoTXlTUUxDb21wcmVzc1tcdCBdXHsxLFx9XCkuKjpcMSR7RFNQQU1fREJfREFUQVs1
XX06Z0kiIFwKCQkJLWkgIiR7RH0iLyR7Q09ORkRJUn0vZHNwYW0uY29uZgoJCWZvciBEQl9EQVRB
X0lOREVYIGluICQoc2VxIDAgJCgoJHsjRFNQQU1fREJfREFUQVtAXX0gLSAxKSkpOyBkbwoJCQll
Y2hvICIke0RTUEFNX0RCX0RBVEFbJERCX0RBVEFfSU5ERVhdfSIgPj4gJHtEfS8ke0NPTkZESVJ9
L215c3FsLmRhdGEKCQlkb25lCgoJCWluc2ludG8gJHtDT05GRElSfQoJCW5ld2lucyBzcmMvdG9v
bHMubXlzcWxfZHJ2L215c3FsX29iamVjdHMtc3BhY2Uuc3FsIG15c3FsX29iamVjdHMtc3BhY2Uu
c3FsCgkJbmV3aW5zIHNyYy90b29scy5teXNxbF9kcnYvbXlzcWxfb2JqZWN0cy1zcGVlZC5zcWwg
bXlzcWxfb2JqZWN0cy1zcGVlZC5zcWwKCQluZXdpbnMgc3JjL3Rvb2xzLm15c3FsX2Rydi9teXNx
bF9vYmplY3RzLTQuMS5zcWwgbXlzcWxfb2JqZWN0cy00LjEuc3FsCgkJaWYgdXNlIHZpcnR1YWwt
dXNlcnMgOyB0aGVuCgkJCW5ld2lucyBzcmMvdG9vbHMubXlzcWxfZHJ2L3ZpcnR1YWxfdXNlcnMu
c3FsIG15c3FsX3ZpcnR1YWxfdXNlcnMuc3FsCgkJCW5ld2lucyBzcmMvdG9vbHMubXlzcWxfZHJ2
L3ZpcnR1YWxfdXNlcl9hbGlhc2VzLnNxbCBteXNxbF92aXJ0dWFsX3VzZXJfYWxpYXNlcy5zcWwK
CQlmaQoJCW5ld2lucyBzcmMvdG9vbHMubXlzcWxfZHJ2L3B1cmdlLnNxbCBteXNxbF9wdXJnZS5z
cWwKCQluZXdpbnMgc3JjL3Rvb2xzLm15c3FsX2Rydi9wdXJnZS00LjEuc3FsIG15c3FsX3B1cmdl
LTQuMS5zcWwKCgkJZnBlcm1zIDY0MCAke0NPTkZESVJ9L215c3FsLmRhdGEKCQlmb3duZXJzIHJv
b3Q6ZHNwYW0gJHtDT05GRElSfS9teXNxbC5kYXRhCglmaQoJaWYgdXNlIHBvc3RncmVzIDsgdGhl
bgoJCSMgVXNlIGV4aXN0aW5nIGNvbmZpZ3VyYXRpb24gaWYgcG9zc2libGUKCQlpZiBbIC1mICR7
Uk9PVH0ke0NPTkZESVJ9L3Bnc3FsLmRhdGEgXTsgdGhlbgoJCQlEU1BBTV9EQl9EQVRBPSggJChj
YXQgIiR7Uk9PVH0ke0NPTkZESVJ9L3Bnc3FsLmRhdGEiKSApCgkJCWZvciBEQl9EQVRBX0lOREVY
IGluICQoc2VxIDAgJCgoJHsjRFNQQU1fREJfREFUQVtAXX0gLSAxKSkpOyBkbwoJCQkJW1sgIiR7
RFNQQU1fREJfREFUQVskREJfREFUQV9JTkRFWF19IiA9ICIjIyMiIF1dICYmIERTUEFNX0RCX0RB
VEFbJERCX0RBVEFfSU5ERVhdPSIiCgkJCWRvbmUKCQllbHNlCgkJCURTUEFNX0RCX0RBVEFbMF09
IjEyNy4wLjAuMSIKCQkJRFNQQU1fREJfREFUQVsxXT0iNTQzMiIKCQkJRFNQQU1fREJfREFUQVsy
XT0iZHNwYW0iCgkJCURTUEFNX0RCX0RBVEFbM109IiR7UEFTU1dPUkR9IgoJCQlEU1BBTV9EQl9E
QVRBWzRdPSJkc3BhbSIKCQlmaQoKCQkjIE1vZGlmeSBjb25maWd1cmF0aW9uIGFuZCBjcmVhdGUg
cGdzcWwuZGF0YSBmaWxlCgkJc2VkIC1lICJzOl4jKlwoUGdTUUxTZXJ2ZXJbXHQgXVx7MSxcfVwp
Lio6XDEke0RTUEFNX0RCX0RBVEFbMF19OmdJIiBcCgkJCS1lICJzOl4jKlwoUGdTUUxQb3J0W1x0
IF1cezEsXH1cKS4qOlwxJHtEU1BBTV9EQl9EQVRBWzFdfTpnSSIgXAoJCQktZSAiczpeIypcKFBn
U1FMVXNlcltcdCBdXHsxLFx9XCkuKjpcMSR7RFNQQU1fREJfREFUQVsyXX06Z0kiIFwKCQkJLWUg
InM6XiMqXChQZ1NRTFBhc3NbXHQgXVx7MSxcfVwpLio6XDEke0RTUEFNX0RCX0RBVEFbM119OmdJ
IiBcCgkJCS1lICJzOl4jKlwoUGdTUUxEYltcdCBdXHsxLFx9XCkuKjpcMSR7RFNQQU1fREJfREFU
QVs0XX06Z0kiIFwKCQkJLWUgInM6XiMqXChQZ1NRTENvbm5lY3Rpb25DYWNoZVtcdCBdKi5cKTpc
MTpnSSIgXAoJCQktaSAke0R9LyR7Q09ORkRJUn0vZHNwYW0uY29uZgoJCWZvciBEQl9EQVRBX0lO
REVYIGluICQoc2VxIDAgJCgoJHsjRFNQQU1fREJfREFUQVtAXX0gLSAxKSkpOyBkbwoJCQllY2hv
ICIke0RTUEFNX0RCX0RBVEFbJERCX0RBVEFfSU5ERVhdfSIgPj4gJHtEfS8ke0NPTkZESVJ9L3Bn
c3FsLmRhdGEKCQlkb25lCgoJCWluc2ludG8gJHtDT05GRElSfQoJCW5ld2lucyBzcmMvdG9vbHMu
cGdzcWxfZHJ2L3Bnc3FsX29iamVjdHMuc3FsIHBnc3FsX29iamVjdHMuc3FsCgkJaWYgdXNlIHZp
cnR1YWwtdXNlcnMgOyB0aGVuCgkJCW5ld2lucyBzcmMvdG9vbHMucGdzcWxfZHJ2L3ZpcnR1YWxf
dXNlcnMuc3FsIHBnc3FsX3ZpcnR1YWxfdXNlcnMuc3FsCgkJZmkKCQluZXdpbnMgc3JjL3Rvb2xz
LnBnc3FsX2Rydi9wdXJnZS5zcWwgcGdzcWxfcHVyZ2Uuc3FsCgoJCWZwZXJtcyA2NDAgJHtDT05G
RElSfS9wZ3NxbC5kYXRhCgkJZm93bmVycyByb290OmRzcGFtICR7Q09ORkRJUn0vcGdzcWwuZGF0
YQoJZmkKCWlmIHVzZSBvcmFjbGUgOyB0aGVuCgkJIyBVc2UgZXhpc3RpbmcgY29uZmlndXJhdGlv
biBpZiBwb3NzaWJsZQoJCWlmIFsgLWYgJHtST09UfSR7Q09ORkRJUn0vb3JhY2xlLmRhdGEgXTsg
dGhlbgoJCQlEU1BBTV9EQl9EQVRBPSggJChjYXQgIiR7Uk9PVH0ke0NPTkZESVJ9L29yYWNsZS5k
YXRhIikgKQoJCQlmb3IgREJfREFUQV9JTkRFWCBpbiAkKHNlcSAwICQoKCR7I0RTUEFNX0RCX0RB
VEFbQF19IC0gMSkpKTsgZG8KCQkJCVtbICIke0RTUEFNX0RCX0RBVEFbJERCX0RBVEFfSU5ERVhd
fSIgPSAiIyMjIiBdXSAmJiBEU1BBTV9EQl9EQVRBWyREQl9EQVRBX0lOREVYXT0iIgoJCQlkb25l
CgkJZWxzZQoJCQlEU1BBTV9EQl9EQVRBWzBdPSIoREVTQ1JJUFRJT049KEFERFJFU1M9KFBST1RP
Q09MPVRDUCkoSE9TVD0xMjcuMC4wLjEpKFBPUlQ9MTUyMSkpKENPTk5FQ1RfREFUQT0oU0lEPVBS
T0QpKSkiCgkJCURTUEFNX0RCX0RBVEFbMV09ImRzcGFtIgoJCQlEU1BBTV9EQl9EQVRBWzJdPSIk
e1BBU1NXT1JEfSIKCQkJRFNQQU1fREJfREFUQVszXT0iZHNwYW0iCgkJZmkKCgkJIyBNb2RpZnkg
Y29uZmlndXJhdGlvbiBhbmQgY3JlYXRlIG9yYWNsZS5kYXRhIGZpbGUKCQlzZWQgLWUgInM6XiMq
XChPcmFTZXJ2ZXJbXHQgXVx7MSxcfVwpLio6XDEke0RTUEFNX0RCX0RBVEFbMF19OmdJIiBcCgkJ
CS1lICJzOl5cKE9yYVVzZXJbXHQgXVx7MSxcfVwpLio6XDEke0RTUEFNX0RCX0RBVEFbMV19OmdJ
IiBcCgkJCS1lICJzOl5cKE9yYVBhc3NbXHQgXVx7MSxcfVwpLio6XDEke0RTUEFNX0RCX0RBVEFb
Ml19OmdJIiBcCgkJCS1lICJzOl5cKE9yYVNjaGVtYVtcdCBdXHsxLFx9XCkuKjpcMSR7RFNQQU1f
REJfREFUQVszXX06Z0kiXAoJCSAgIAktaSAiJHtEfSIvJHtDT05GRElSfS9kc3BhbS5jb25mCgkJ
Zm9yIERCX0RBVEFfSU5ERVggaW4gJChzZXEgMCAkKCgkeyNEU1BBTV9EQl9EQVRBW0BdfSAtIDEp
KSk7IGRvCgkJCWVjaG8gIiR7RFNQQU1fREJfREFUQVskREJfREFUQV9JTkRFWF19IiA+PiAiJHtE
fSIvJHtDT05GRElSfS9vcmFjbGUuZGF0YQoJCWRvbmUKCgkJaW5zaW50byAke0NPTkZESVJ9CgkJ
bmV3aW5zIHNyYy90b29scy5vcmFfZHJ2L29yYWxfb2JqZWN0cy5zcWwgb3JhX29iamVjdHMuc3Fs
CgkJaWYgdXNlIHZpcnR1YWwtdXNlcnMgOyB0aGVuCgkJCW5ld2lucyBzcmMvdG9vbHMub3JhX2Ry
di92aXJ0dWFsX3VzZXJzLnNxbCBvcmFfdmlydHVhbF91c2Vycy5zcWwKCQlmaQoJCW5ld2lucyBz
cmMvdG9vbHMub3JhX2Rydi9wdXJnZS5zcWwgb3JhX3B1cmdlLnNxbAoKCQlmcGVybXMgNjQwICR7
Q09ORkRJUn0vb3JhY2xlLmRhdGEKCQlmb3duZXJzIHJvb3Q6ZHNwYW0gJHtDT05GRElSfS9vcmFj
bGUuZGF0YQoJZmkKCglzZWQgLWUgInM6XlwoUHVyZ2UuKlwpOiMjI1wxOmciIFwKCQktZSAiczpe
I1woUHVyZ2UuKlwpOlwxOmciIFwKCQktZSAiczpeIyMjXChQdXJnZS4qXCk6I1wxOmciIFwKCQkt
aSAiJHtEfSIvJHtDT05GRElSfS9kc3BhbS5jb25mCgoJIyBpbnN0YWxscyB0aGUgbm90aWZpY2F0
aW9uIG1lc3NhZ2VzCgkjIC0+IFRoZSBkb2N1bWVudGF0aW9uIGlzIHdyb25nISBUaGUgZmlsZXMg
bmVlZCB0byBiZSBpbiAuL3R4dAoJaW5zaW50byAke0NPTkZESVJ9L3R4dAoJZG9pbnMgIiR7U30i
L3R4dC8qLnR4dAoKCSMgQ3JlYXRlIHRoZSBvcHQtaW4gLyBvcHQtb3V0IGRpcmVjdG9yaWVzCglk
aXJvcHRzIC1tMDc3MCAtbyBkc3BhbSAtZyBkc3BhbQoJZG9kaXIgJHtIT01FRElSfQoJa2VlcGRp
ciAke0hPTUVESVJ9L29wdC1pbgoJa2VlcGRpciAke0hPTUVESVJ9L29wdC1vdXQKCWRpcm9wdHMK
CgkjIGxvZ3JvdGF0aW9uIHNjcmlwdHMKCWlmIHVzZSBsb2dyb3RhdGUgJiYgdXNlIGRlYnVnIDsg
dGhlbgoJCWluc2ludG8gL2V0Yy9sb2dyb3RhdGUuZAoJCW5ld2lucyAiJHtGSUxFU0RJUn0vbG9n
cm90YXRlLmRzcGFtIiBkc3BhbQoJZmkKCgkjIGRzcGFtIGNyb24gam9iCglleGVpbnRvIC9ldGMv
Y3Jvbi5kYWlseQoJZG9leGUgIiR7RklMRVNESVJ9L2RzcGFtLmNyb24iCgoJIyBkb2N1bWVudGF0
aW9uCglkb2RvYyBDSEFOR0VMT0cgUkVBRE1FKiBSRUxFQVNFLk5PVEVTIFVQR1JBRElORwoJZG9j
aW50byBkb2MKCWRvZG9jIGRvYy8qLnR4dAoJZG9jaW50byBnZW50b28KCWRvZG9jICIke0ZJTEVT
RElSfS9SRUFETUUucG9zdGZpeCIgIiR7RklMRVNESVJ9L1JFQURNRS5xbWFpbCIKCWRvY2ludG8g
c2FfdHJhaW4KCWRvZG9jICIke1dPUktESVJ9Ii9kc3BhbV9zYV90cmFpbmVyLyoKCWRvbWFuIG1h
bi9kc3BhbSoKfQoKcGtnX3Bvc3RpbnN0KCkgewoJIyBuZWVkIGVuZXdncm91cC9lbmV3dXNlciBp
biB0aGlzIGZ1bmN0aW9uIGZvciBiaW5hcnkgaW5zdGFsbC4KCWNyZWF0ZV9kc3BhbV91c2VyZ3Jv
dXAKCglpZiB1c2UgbXlzcWwgfHwgdXNlIHBvc3RncmVzIHx8IHVzZSBvcmFjbGU7IHRoZW4KCQll
Y2hvCgkJZWluZm8gIlRvIHNldHVwIERTUEFNIHRvIHJ1biBvdXQtb2YtdGhlLWJveCBvbiB5b3Vy
IHN5c3RlbSB3aXRoIGEgTXlTUUwsIgoJCWVpbmZvICJQb3N0Z3JlU1FMIG9yIE9yYWNsZSBkYXRh
YmFzZSwgcnVuOiIKCQllaW5mbyAiZW1lcmdlIC0tY29uZmlnID0ke1BGfSIKCWZpCgoJaWYgdXNl
IHBvc3RncmVzICYmIGhhc192ZXJzaW9uICI+ZGV2LWRiL3Bvc3RncmVzcWwtOC4wIjsgdGhlbgoJ
CWVjaG8KCQllaW5mbyAiQmVmb3JlIGV4ZWN1dGluZyB0aGUgY29uZmlndXJhdGlvbiBjb21tYW5k
IG1lbnRpb25lZCBhYm92ZSB5b3UgaGF2ZSIKCQllaW5mbyAidG8gZXhlY3V0ZSB0aGUgZm9sbG93
aW5nIGNvbW1hbmQ6IgoJCWVpbmZvICJjcmVhdGVsYW5nIHBscGdzcWwgLVUgcG9zdGdyZXMgZHNw
YW0iCglmaQoKCWlmIHVzZSBkYWVtb247IHRoZW4KCQllY2hvCgkJZWluZm8gIklmIHlvdSB3YW50
IHRvIHJ1biBEU1BBTSBpbiB0aGUgbmV3IGRhZW1vbiBtb2RlIHJlbWVtYmVyIgoJCWVpbmZvICJ0
byBtYWtlIHRoZSBEU1BBTSBkYWVtb24gc3RhcnQgZHVyaW5nIGJvb3Q6IgoJCWVpbmZvICIgIHJj
LXVwZGF0ZSBhZGQgZHNwYW0gZGVmYXVsdCIKCWZpCglpZiB1c2UgZGFlbW9uIDsgdGhlbgoJCWVp
bmZvICJUbyB1c2UgdGhlIERTUEFNIGRhZW1vbiBtb2RlLCB0aGUgdXNlZCBzdG9yYWdlIGRyaXZl
ciBtdXN0IGJlIHRocmVhZC1zYWZlLiIKCWZpCgoJZWluZm8gIkVkaXQgL2V0Yy9tYWlsL2RzcGFt
LmNvbmYgd2l0aCB5b3VyIGRlbGl2ZXJ5IGFnZW50IgoJZWluZm8gIlNlZSBodHRwOi8vZHNwYW13
aWtpLmV4cGFzcy5kZS9JbnN0YWxsYXRpb24gZm9yIG1vcmUgaW5mbyIKfQoKcGtnX2NvbmZpZyAo
KSB7Cglsb2NhbCBBVkFJTF9CQUNLRU5EUz0oKQoJdXNlIG15c3FsICYmIEFWQUlMX0JBQ0tFTkRT
PSggJHtBVkFJTF9CQUNLRU5EU1sqXX0gbXlzcWwgKQoJdXNlIHBvc3RncmVzICYmIEFWQUlMX0JB
Q0tFTkRTPSggJHtBVkFJTF9CQUNLRU5EU1sqXX0gcG9zdGdyZXMgKQoJdXNlIHNxbGl0ZSAmJiBB
VkFJTF9CQUNLRU5EUz0oICR7QVZBSUxfQkFDS0VORFNbKl19IHNxbGl0ZSApCgl1c2Ugc3FsaXRl
MyAmJiBBVkFJTF9CQUNLRU5EUz0oICR7QVZBSUxfQkFDS0VORFNbKl19IHNxbGl0ZTMgKQoJdXNl
IG9yYWNsZSAmJiBBVkFJTF9CQUNLRU5EUz0oICR7QVZBSUxfQkFDS0VORFNbKl19IG9yYWNsZSAp
Cglsb2NhbCBVU0VfQkFDS0VORAoJcmVhZCAtcCAiV2hpY2ggYmFja2VuZCBkbyB5b3Ugd2FudCB0
byBjb25maWd1cmU/IChhdmFpbGFibGUgYmFja2VuZHMgYXJlICR7QVZBSUxfQkFDS0VORFNbKl19
KSAiIFVTRV9CQUNLRU5ECglpZiBbWyAiICR7QVZBSUxfQkFDS0VORFNbKl19ICIgIT0gKiIgJHtV
U0VfQkFDS0VORH0gIiogXV0KCXRoZW4KCQllZXJyb3IgIlRoZSAnJHtVU0VfQkFDS0VORH0nIGJh
Y2tlbmQgaXMgbm90IGF2YWlsYWJsZS4iCgkJcmV0dXJuIDEKCWZpCgoJY2FzZSAiJHtVU0VfQkFD
S0VORH0iIGluCgoJCXNxbGl0ZSB8IHNxbGl0ZTMpCgkJCWVpbmZvICJzcWxpdGVfZHJ2IHdpbGwg
YXV0b21hdGljYWxseSBjcmVhdGUgdGhlIG5lY2Vzc2FyeSBkYXRhYmFzZSIKCQkJOzsKCgkJbXlz
cWwpCgkJCURTUEFNX0RCX0RBVEE9KCAkKHNlZCAiczpeW1x0IF0qJDojIyM6Z0kiICIke1JPT1R9
JHtDT05GRElSfS9teXNxbC5kYXRhIikgKQoJCQlmb3IgREJfREFUQV9JTkRFWCBpbiAkKHNlcSAw
ICQoKCR7I0RTUEFNX0RCX0RBVEFbQF19IC0gMSkpKTsgZG8KCQkJCVtbICIke0RTUEFNX0RCX0RB
VEFbJERCX0RBVEFfSU5ERVhdfSIgPSAiIyMjIiBdXSAmJiBEU1BBTV9EQl9EQVRBWyREQl9EQVRB
X0lOREVYXT0iIgoJCQlkb25lCgkJCURTUEFNX015U1FMX1VTRVI9IiR7RFNQQU1fREJfREFUQVsy
XX0iCgkJCURTUEFNX015U1FMX1BXRD0iJHtEU1BBTV9EQl9EQVRBWzNdfSIKCQkJRFNQQU1fTXlT
UUxfREI9IiR7RFNQQU1fREJfREFUQVs0XX0iCgoJCQlld2FybiAiV2hlbiBwcm9tcHRlZCBmb3Ig
YSBwYXNzd29yZCwgcGxlYXNlIGVudGVyIHlvdXIgTXlTUUwgcm9vdCBwYXNzd29yZCIKCQkJZXdh
cm4KCgkJCWVpbmZvICJDcmVhdGluZyBEU1BBTSBNeVNRTCBkYXRhYmFzZSBcIiR7RFNQQU1fTXlT
UUxfREJ9XCIiCgkJCS91c3IvYmluL215c3FsYWRtaW4gLXUgcm9vdCAtcCBjcmVhdGUgJHtEU1BB
TV9NeVNRTF9EQn0KCgoJCQlpZiBoYXNfdmVyc2lvbiAiPj12aXJ0dWFsL215c3FsLTQuMSI7IHRo
ZW4KCQkJCS91c3IvYmluL215c3FsIC11IHJvb3QgLXAgJHtEU1BBTV9NeVNRTF9EQn0gPCAke0NP
TkZESVJ9L215c3FsX29iamVjdHMtNC4xLnNxbAoJCQllbHNlCgkJCQllaW5mbyAiQ3JlYXRpbmcg
RFNQQU0gTXlTUUwgdGFibGVzIGZvciBkYXRhIG9iamVjdHMiCgkJCQllaW5mbyAiICBQbGVhc2Ug
c2VsZWN0IHdoYXQga2luZCBvZiBvYmplY3QgZGF0YWJhc2UgeW91IGxpa2UgdG8gdXNlLiIKCQkJ
CWVpbmZvICIgICAgWzFdIFNwYWNlIG9wdGltaXplZCBkYXRhYmFzZSIKCQkJCWVpbmZvICIgICAg
WzJdIFNwZWVkIG9wdGltaXplZCBkYXRhYmFzZSIKCQkJCWVpbmZvCgkJCQl3aGlsZSB0cnVlCgkJ
CQlkbwoJCQkJCXJlYWQgLW4gMSAtcyAtcCAiICBQcmVzcyAxIG9yIDIgb24gdGhlIGtleWJvYXJk
IHRvIHNlbGVjdCBkYXRhYmFzZSIgRFNQQU1fTXlTUUxfREJfVHlwZQoJCQkJCVtbICIke0RTUEFN
X015U1FMX0RCX1R5cGV9IiA9PSAiMSIgfHwgIiR7RFNQQU1fTXlTUUxfREJfVHlwZX0iID09ICIy
IiBdXSAmJiBlY2hvICYmIGJyZWFrCgkJCQlkb25lCgoJCQkJaWYgWyAiJHtEU1BBTV9NeVNRTF9E
Ql9UeXBlfSIgPT0gIjEiIF0KCQkJCXRoZW4KCQkJCQkvdXNyL2Jpbi9teXNxbCAtdSByb290IC1w
ICR7RFNQQU1fTXlTUUxfREJ9IDwgJHtDT05GRElSfS9teXNxbF9vYmplY3RzLXNwYWNlLnNxbAoJ
CQkJZWxzZQoJCQkJCS91c3IvYmluL215c3FsIC11IHJvb3QgLXAgJHtEU1BBTV9NeVNRTF9EQn0g
PCAke0NPTkZESVJ9L215c3FsX29iamVjdHMtc3BlZWQuc3FsCgkJCQlmaQoJCQlmaQoKCQkJaWYg
dXNlIHZpcnR1YWwtdXNlcnMgOyB0aGVuCgkJCQllaW5mbyAiQ3JlYXRpbmcgRFNQQU0gTXlTUUwg
ZGF0YWJhc2UgZm9yIHZpcnR1YWwtdXNlcnMgdXNlcnMiCgkJCQllaW5mbyAiICBQbGVhc2Ugc2Vs
ZWN0IHdoYXQga2luZCBvZiB2aXJ0dWFsX3VpZHMgdGFibGUgeW91IGxpa2UgdG8gdXNlLiIKCQkJ
CWVpbmZvICIgICAgWzFdIFZpcnR1YWwgdXNlcnMgYWRkZWQgYXV0b21hdGljYWxseSAodXNlIHRo
aXMgaWYgdGhpcyBzZXJ2ZXIgaXMgdGhlIHByaW1hcnkgTVgpIgoJCQkJZWluZm8gIiAgICBbMl0g
VmlydHVhbCB1c2VycyBhZGRlZCBtYW51YWxseSAodXNlIGl0IGlmIHRoaXMgc2VydmVyIGlzIGEg
c2Vjb25kYXJ5IE1YKSIKCQkJCWVpbmZvCgkJCQl3aGlsZSB0cnVlCgkJCQlkbwoJCQkJCXJlYWQg
LW4gMSAtcyAtcCAiICBQcmVzcyAxIG9yIDIgb24gdGhlIGtleWJvYXJkIHRvIHNlbGVjdCB0YWJs
ZSB0eXBlIiBEU1BBTV9NeVNRTF9EQl9UeXBlCgkJCQkJW1sgIiR7RFNQQU1fTXlTUUxfREJfVHlw
ZX0iID09ICIxIiB8fCAiJHtEU1BBTV9NeVNRTF9EQl9UeXBlfSIgPT0gIjIiIF1dICYmIGVjaG8g
JiYgYnJlYWsKCQkJCWRvbmUKCgkJCQlpZiBbICIke0RTUEFNX015U1FMX0RCX1R5cGV9IiA9PSAi
MSIgXQoJCQkJdGhlbgoJCQkJCS91c3IvYmluL215c3FsIC11IHJvb3QgLXAgJHtEU1BBTV9NeVNR
TF9EQn0gPCAke0NPTkZESVJ9L215c3FsX3ZpcnR1YWxfdXNlcnMuc3FsCgkJCQllbHNlCgkJCQkJ
L3Vzci9iaW4vbXlzcWwgLXUgcm9vdCAtcCAke0RTUEFNX015U1FMX0RCfSA8ICR7Q09ORkRJUn0v
bXlzcWxfdmlydHVhbF91c2VyX2FsaWFzZXMuc3FsCgkJCQlmaQoJCQlmaQoKCQkJZWluZm8gIkNy
ZWF0aW5nIERTUEFNIE15U1FMIHVzZXIgXCIke0RTUEFNX015U1FMX1VTRVJ9XCIiCgkJCS91c3Iv
YmluL215c3FsIC11IHJvb3QgLXAgLWUgIkdSQU5UIFNFTEVDVCxJTlNFUlQsVVBEQVRFLERFTEVU
RSBPTiAke0RTUEFNX015U1FMX0RCfS4qIFRPICR7RFNQQU1fTXlTUUxfVVNFUn1AbG9jYWxob3N0
IElERU5USUZJRUQgQlkgJyR7RFNQQU1fTXlTUUxfUFdEfSc7RkxVU0ggUFJJVklMRUdFUzsiIC1E
IG15c3FsCgkJCTs7CgoJCXBvc3RncmVzKQoJCQlEU1BBTV9EQl9EQVRBPSggJChzZWQgInM6Xltc
dCBdKiQ6IyMjOmdJIiAiJHtST09UfSR7Q09ORkRJUn0vcGdzcWwuZGF0YSIpICkKCQkJZm9yIERC
X0RBVEFfSU5ERVggaW4gJChzZXEgMCAkKCgkeyNEU1BBTV9EQl9EQVRBW0BdfSAtIDEpKSk7IGRv
CgkJCQlbWyAiJHtEU1BBTV9EQl9EQVRBWyREQl9EQVRBX0lOREVYXX0iID0gIiMjIyIgXV0gJiYg
RFNQQU1fREJfREFUQVskREJfREFUQV9JTkRFWF09IiIKCQkJZG9uZQoJCQlEU1BBTV9QZ1NRTF9V
U0VSPSIke0RTUEFNX0RCX0RBVEFbMl19IgoJCQlEU1BBTV9QZ1NRTF9QV0Q9IiR7RFNQQU1fREJf
REFUQVszXX0iCgkJCURTUEFNX1BnU1FMX0RCPSIke0RTUEFNX0RCX0RBVEFbNF19IgoKCQkJZXdh
cm4gIldoZW4gcHJvbXB0ZWQgZm9yIGEgcGFzc3dvcmQsIHBsZWFzZSBlbnRlciB5b3VyIFBnU1FM
IHBvc3RncmVzIHBhc3N3b3JkIgoJCQlld2FybgoKCQkJZWluZm8gIkNyZWF0aW5nIERTUEFNIFBv
c3RncmVTUUwgZGF0YWJhc2UgXCIke0RTUEFNX1BnU1FMX0RCfVwiIGFuZCB1c2VyIFwiJHtEU1BB
TV9QZ1NRTF9VU0VSfVwiIgoJCQkvdXNyL2Jpbi9wc3FsIC1oIGxvY2FsaG9zdCAtZCB0ZW1wbGF0
ZTEgLVUgcG9zdGdyZXMgLWMgIkNSRUFURSBVU0VSICR7RFNQQU1fUGdTUUxfVVNFUn0gV0lUSCBQ
QVNTV09SRCAnJHtEU1BBTV9QZ1NRTF9QV0R9JyBOT0NSRUFURURCIE5PQ1JFQVRFVVNFUjsgQ1JF
QVRFIERBVEFCQVNFICR7RFNQQU1fUGdTUUxfREJ9OyBHUkFOVCBBTEwgUFJJVklMRUdFUyBPTiBE
QVRBQkFTRSAke0RTUEFNX1BnU1FMX0RCfSBUTyAke0RTUEFNX1BnU1FMX1VTRVJ9OyBHUkFOVCBB
TEwgUFJJVklMRUdFUyBPTiBTQ0hFTUEgcHVibGljIFRPICR7RFNQQU1fUGdTUUxfVVNFUn07IFVQ
REFURSBwZ19kYXRhYmFzZSBTRVQgZGF0ZGJhPShTRUxFQ1QgdXNlc3lzaWQgRlJPTSBwZ19zaGFk
b3cgV0hFUkUgdXNlbmFtZT0nJHtEU1BBTV9QZ1NRTF9VU0VSfScpIFdIRVJFIGRhdG5hbWU9JyR7
RFNQQU1fUGdTUUxfREJ9JzsiCgoJCQllaW5mbyAiQ3JlYXRpbmcgRFNQQU0gUG9zdGdyZVNRTCB0
YWJsZXMiCgkJCVBHVVNFUj0ke0RTUEFNX1BnU1FMX1VTRVJ9IFBHUEFTU1dPUkQ9JHtEU1BBTV9Q
Z1NRTF9QV0R9IC91c3IvYmluL3BzcWwgLWQgJHtEU1BBTV9QZ1NRTF9EQn0gLVUgJHtEU1BBTV9Q
Z1NRTF9VU0VSfSAtZiAke0NPTkZESVJ9L3Bnc3FsX29iamVjdHMuc3FsIDE+L2Rldi9udWxsIDI+
JjEKCgkJCWlmIHVzZSB2aXJ0dWFsLXVzZXJzIDsgdGhlbgoJCQkJZWluZm8gIkNyZWF0aW5nIERT
UEFNIFBvc3RncmVTUUwgZGF0YWJhc2UgZm9yIHZpcnR1YWwtdXNlcnMgdXNlcnMiCgkJCQlQR1VT
RVI9JHtEU1BBTV9QZ1NRTF9VU0VSfSBQR1BBU1NXT1JEPSR7RFNQQU1fUGdTUUxfUFdEfSAvdXNy
L2Jpbi9wc3FsIC1kICR7RFNQQU1fUGdTUUxfREJ9IC1VICR7RFNQQU1fUGdTUUxfVVNFUn0gLWYg
JHtDT05GRElSfS9wZ3NxbF92aXJ0dWFsX3VzZXJzLnNxbCAxPi9kZXYvbnVsbCAyPiYxCgkJCWZp
CgkJCTs7CgoJCW9yYWNsZSkKCQkJZWluZm8gIldlIGhhdmUgbm90IGVub3VnaHQgT3JhY2xlIGtu
b3dsZWRnZSB0byBjb25maWd1cmUgT3JhY2xlIgoJCQllaW5mbyAiYXV0b21hdGljYWxseS4gSWYg
eW91IGtub3cgaG93LCBwbGVhc2UgcG9zdCBhIG1lc3NhZ2UgaW4iCgkJCWVpbmZvICJHZW50b28g
QnVnemlsbGEuIgoJCQllaW5mbwoJCQllaW5mbyAiWW91IG5lZWQgbWFudWFsbHkgdG8gY3JlYXRl
IHRoZSBPcmFjbGUgdXNlciBmb3IgRFNQQU0gYW5kIgoJCQllaW5mbyAidGhlIG5lY2Vzc2FyeSBk
YXRhYmFzZS4iCgkJCWVpbmZvICJCdXQgdGhlIERTUEFNIGNvbmZpZ3VyYXRpb24gZmlsZSBkc3Bh
bS5jb25mIGFuZCBvcmFjbGUuZGF0YSIKCQkJZWluZm8gIndhcyBhbHJlYWR5IGNvbmZpZ3VyZWQg
d2l0aCB0aGUgbmVjZXNzYXJ5IGluZm9ybWF0aW9uIHRvIgoJCQllaW5mbyAiYWNjZXNzIHRoZSBk
YXRhYmFzZS4iCgkJCWVpbmZvICJQbGVhc2UgcmVhZCB5b3VyIGRzcGFtLmNvbmYsIG9yYWNsZS5k
YXRhIGFuZCB0aGUgUkVBRE1FIGZvciIKCQkJZWluZm8gIm1vcmUgaW5mbyBvbiBob3cgdG8gc2V0
dXAgRFNQQU0gd2l0aCBPcmFjbGUuIgoJCQllaW5mbyAib2JqZWN0cyBmb3IgZWFjaCB1c2VyIHVw
b24gZmlyc3QgdXNlIG9mIERTUEFNIGJ5IHRoYXQgdXNlci4iCgkJCTs7CgoJZXNhYwp9Cg==
</data>        

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>104492</attachid>
            <date>2006-12-20 21:30 0000</date>
            <desc>changed OMIT=&quot;02&quot; to OMIT=</desc>
            <filename>dspam-3.6.8-r1.ebuild</filename>
            <type>text/plain</type>
            <data encoding="base64">IyBDb3B5cmlnaHQgMTk5OS0yMDA2IEdlbnRvbyBGb3VuZGF0aW9uCiMgRGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2MgojICRIZWFk
ZXI6IC92YXIvY3Zzcm9vdC9nZW50b28teDg2L21haWwtZmlsdGVyL2RzcGFtL2RzcGFtLTMuNi44
LXIxLmVidWlsZCx2IDEuMSAyMDA2LzEyLzE5IDA5OjQ2OjA2IG1ybmVzcyBFeHAgJAoKaW5oZXJp
dCBldXRpbHMgYXV0b3Rvb2xzIGZsYWctby1tYXRpYwoKREVTQ1JJUFRJT049IkEgc3RhdGlzdGlj
YWwtYWxnb3JpdGhtaWMgaHlicmlkIGFudGktc3BhbSBmaWx0ZXIiCkhPTUVQQUdFPSJodHRwOi8v
ZHNwYW0ubnVjbGVhcmVsZXBoYW50LmNvbS8iClNSQ19VUkk9Imh0dHA6Ly9kc3BhbS5udWNsZWFy
ZWxlcGhhbnQuY29tL3NvdXJjZXMvJHtQfS50YXIuZ3oKCW1pcnJvcjovL2dlbnRvby8ke1B9LXBh
dGNoZXMtMjAwNjEyMTkudGFyLmd6CglodHRwOi8vZHNwYW0ubnVjbGVhcmVsZXBoYW50LmNvbS9z
b3VyY2VzL2V4dHJhcy9kc3BhbV9zYV90cmFpbmVyLnRhci5neiIKCkxJQ0VOU0U9IkdQTC0yIgpT
TE9UPSIwIgpJVVNFPSJjbGFtYXYgZGFlbW9uIGRlYmlhbi1wYXRjaHNldCBkZWJ1ZyBkZWJ1Zy1i
bnIgZG9tYWluLXNjYWxlIGxhcmdlLXNjYWxlIFwKICAgICAgICBsZGFwIGxvZ3JvdGF0ZSBsb25n
LXVzZXJuYW1lcyBteXNxbCBvcmFjbGUgcG9zdGdyZXMgc3FsaXRlIHNxbGl0ZTMgXAogICAgICAg
IHN0YXRpYyB1c2VyLWhvbWVkaXJzIHZlcmJvc2UgdmlydHVhbC11c2VycyB3b3JsZC1leGVjIgoK
REVQRU5EPSJjbGFtYXY/CQkoID49YXBwLWFudGl2aXJ1cy9jbGFtYXYtMC44NiApCglsZGFwPwkJ
KCA+PW5ldC1uZHMvb3BlbmxkYXAtMi4yICkKCW15c3FsPwkJKCB2aXJ0dWFsL215c3FsICkKCXBv
c3RncmVzPwkoID49ZGV2LWRiL3Bvc3RncmVzcWwtNy40LjMgKQoJc3FsaXRlPwkJKCA8ZGV2LWRi
L3NxbGl0ZS0zICkKCXNxbGl0ZTM/CSggPWRldi1kYi9zcWxpdGUtMyogKSIKClJERVBFTkQ9IiR7
REVQRU5EfQoJc3lzLXByb2Nlc3MvY3JvbmJhc2UKCXZpcnR1YWwvbG9nZ2VyCglsb2dyb3RhdGU/
ICggYXBwLWFkbWluL2xvZ3JvdGF0ZSApIgoKS0VZV09SRFM9In5hbHBoYSB+YW1kNjQgfnBwYyB+
c3BhcmMgfng4NiIKCiMgc29tZSBGSFMtbGlrZSBzdHJ1Y3R1cmUKSE9NRURJUj0iL3Zhci9zcG9v
bC9kc3BhbSIKQ09ORkRJUj0iL2V0Yy9tYWlsL2RzcGFtIgpMT0dESVI9Ii92YXIvbG9nL2RzcGFt
IgoKIyBGb3Igc2VsZWN0aXZlIGRlYmlhbi1wYXRjaHNldAojIEV4YW1wbGU6IE9NSVQ9IjAyIDAz
IDEzIgoKT01JVD0KCmNyZWF0ZV9kc3BhbV91c2VyZ3JvdXAoKSB7Cglsb2NhbCBlZ2lkIGV1aWQK
CSNOZWVkIGEgVUlEIGFuZCBHSUQgPj0gMTAwMCwgZm9yIGJlaW5nIGFibGUgdG8gdXNlIHN1ZXhl
YyBpbiBhcGFjaGUKCWZvciBldWlkIGluICQoc2VxIDEwMDAgNTAwMCApIDsgZG8KCQlbWyAteiAk
KGVnZXRlbnQgcGFzc3dkICR7ZXVpZH0pIF1dICYmIGJyZWFrCglkb25lCglmb3IgZWdpZCBpbiAk
KHNlcSAxMDAwIDUwMDAgKSA7IGRvCgkJW1sgLXogJChlZ2V0ZW50IGdyb3VwICR7ZWdpZH0pIF1d
ICYmIGJyZWFrCglkb25lCgoJZW5ld2dyb3VwIGRzcGFtICR7ZWdpZH0KCWVuZXd1c2VyIGRzcGFt
ICR7ZXVpZH0gLTEgJHtIT01FRElSfSBkc3BhbSxtYWlsCn0KCnBrZ19zZXR1cCgpIHsKCWlmIHVz
ZSB2aXJ0dWFsLXVzZXJzICYmIHVzZSB1c2VyLWhvbWVkaXJzIDsgdGhlbgoJCWVlcnJvcgoJCWVl
cnJvciAiSWYgdGhlIHVzZXJzIGFyZSB2aXJ0dWFsLCB0aGVuIHRoZXkgcHJvYmFibHkgc2hvdWxk
IG5vdCIKCQllZXJyb3IgImhhdmUgaG9tZSBkaXJlY3Rvcmllcy4iCgkJZWVycm9yCgkJZGllICJJ
bmNvbXBhdGlibGUgVVNFIGZsYWcgc2VsZWN0aW9uIgoJZmkKCglpZiB1c2UgbGFyZ2Utc2NhbGUg
JiYgdXNlIGRvbWFpbi1zY2FsZSA7IHRoZW4KCQllZXJyb3IKCQllZXJyb3IgIllvdSBoYXZlIGJv
dGggbGFyZ2Utc2NhbGUgYW5kIGRvbWFpbi1zY2FsZSBVU0UgZmxhZ3Mgc2V0LiIKCQllZXJyb3Ig
IlNldCBvbmx5IG9uZSBvZiB0aGVtLiAgSWYgbmVpdGhlciBhcmUgc2VsZWN0ZWQsIHRoZSBkZWZh
dWx0IgoJCWVlcnJvciAib2Ygc21hbGwtc2NhbGUgd2lsbCBiZSB1c2VkLiIKCQllZXJyb3IKCQlk
aWUgIkluY29tcGF0aWJsZSBVU0UgZmxhZyBzZWxlY3Rpb24iCglmaQoKCWlmIHVzZSBkZWJ1ZyAm
JiB1c2UgdmVyYm9zZSA7IHRoZW4KCQllZXJyb3IKCQllZXJyb3IgIiBZb3UgaGF2ZSBib3RoIGRl
YnVnIGFuZCB2ZXJib3NlIFVTRSBmbGFncyBzZXQuIgoJCWVlcnJvciAiIHZlcmJvc2UgaW1wbGll
cyBkZWJ1ZyBzbyBpdCBpcyB1bm5lY2Vzc2FyeSB0byIKCQllZXJyb3IgIiBzZXQgYm90aC4iCgkJ
ZWVycm9yCgkJZWVycm9yICJCRVdBUkUhLCBWRVJCT1NFIFNIT1VMRCBOT1QgQkUgVVNFRCBVTkxF
U1MgQUJTT0xVVEVMWSIKCQllZXJyb3IgIk5FQ0VTU0FSWS4iCgkJZWVycm9yCgkJZGllICJJbmNv
bXBhdGlibGUgVVNFIGZsYWcgc2VsZWN0aW9uIgoJZmkKCgljcmVhdGVfZHNwYW1fdXNlcmdyb3Vw
Cn0KCnNyY191bnBhY2soKSB7Cgl1bnBhY2sgJHtBfQoJY2QgIiR7U30iCgoJRVBBVENIX1NVRkZJ
WD0icGF0Y2giCgoJaWYgdXNlIGRlYmlhbi1wYXRjaHNldDsgdGhlbgogICAgICAgICAgICAgICAg
aWYgdXNlIHN0YXRpYzsgdGhlbiBybSAke1dPUktESVJ9L3BhdGNoZXMvMDIqOyBmaQoJCWlmIFsg
LW4gIiR7T01JVH0iIF07IHRoZW4gZm9yIGkgaW4gJHtPTUlUfTsgZG8KCQlybSAke1dPUktESVJ9
L3BhdGNoZXMvJGkqOyBkb25lOyBmaQoJCXJtICR7V09SS0RJUn0vcGF0Y2hlcy8xNCoKCQllcGF0
Y2ggIiR7V09SS0RJUn0iL3BhdGNoZXMKCWZpCgoJIyBGaXggTGF6eSBiaW5kaW5ncwoJYXBwZW5k
LWZsYWdzICQoYmluZG5vdy1mbGFncykKCglpZiB1c2UgZGViaWFuLXBhdGNoc2V0OyB0aGVuCglm
b3IgaSBpbiBgbHMgJHtXT1JLRElSfS9wYXRjaGVzL2A7IGRvCgkJaWYgW1sgJGkgPSAiMDIiKiB8
fCAkaSA9ICIwMyIqIHx8ICRpID0gIjEzIiogXV07IHRoZW4KICAgICAgICAJCUFUX000RElSPSIk
e1N9L200IgoJCQllYXV0b3JlY29uZgoJCQllcGF0Y2ggIiR7RklMRVNESVJ9Ii9kc3BhbV8tLXZl
cnNpb25fb3V0cHV0LnBhdGNoCgkJCWJyZWFrCgkJZmkKCWRvbmUKCWZpCn0KCnNyY19jb21waWxl
KCkgewoJbG9jYWwgbXljb25mCgoJdXNlIGxhcmdlLXNjYWxlICYmIG15Y29uZj0iJHtteWNvbmZ9
IC0tZW5hYmxlLWxhcmdlLXNjYWxlIgoKCXVzZSBkb21haW4tc2NhbGUgJiYgbXljb25mPSIke215
Y29uZn0gLS1lbmFibGUtZG9tYWluLXNjYWxlIiAKCgl1c2UgdXNlci1ob21lZGlycyAmJiBteWNv
bmY9IiR7bXljb25mfSAtLWVuYWJsZS1ob21lZGlyIgoKCXVzZSBkZWJ1ZyAmJiBteWNvbmY9IiR7
bXljb25mfSAtLWVuYWJsZS1kZWJ1ZyIKCXVzZSB2ZXJib3NlICYmIG15Y29uZj0iJHtteWNvbmZ9
IC0tZW5hYmxlLXZlcmJvc2UtZGVidWciCgl1c2UgZGVidWctYm5yICYmIG15Y29uZj0iJHtteWNv
bmZ9IC0tZW5hYmxlLWJuci1kZWJ1ZyIKCgl1c2Ugd29ybGQtZXhlYyAmJiBteWNvbmY9IiR7bXlj
b25mfSAtLXdpdGgtZHNwYW0tbW9kZT0yNTExIgoKCWlmIHVzZSB2aXJ0dWFsLXVzZXJzIDsgdGhl
bgoJCWlmIHVzZSBteXNxbCB8fCB1c2UgcG9zdGdyZXMgfHwgdXNlIG9yYWNsZSA7IHRoZW4KCQkJ
bXljb25mPSIke215Y29uZn0gLS1lbmFibGUtdmlydHVhbC11c2VycyIKCQlmaQoJZmkKCglpZiB1
c2UgbXlzcWwgfHwgdXNlIHBvc3RncmVzIDsgdGhlbgoJCW15Y29uZj0iJHtteWNvbmZ9IC0tZW5h
YmxlLXByZWZlcmVuY2VzLWV4dGVuc2lvbiIKCWZpCgoJbG9jYWwgU1RPUkFHRQoJIyBzZWxlY3Qg
c3RvcmFnZSBkcml2ZXIKCWlmIHVzZSBzcWxpdGUgOyB0aGVuCgkJaWYgWyAiJFNUT1JBR0UiIF0g
OyB0aGVuIFNUT1JBR0U9IiR7U1RPUkFHRX0sIiA7IGZpCgkJU1RPUkFHRT0iJHtTVE9SQUdFfXNx
bGl0ZV9kcnYiCglmaQoJaWYgdXNlIHNxbGl0ZTMgOyB0aGVuCgkJaWYgWyAiJFNUT1JBR0UiIF0g
OyB0aGVuIFNUT1JBR0U9IiR7U1RPUkFHRX0sIiA7IGZpCgkJU1RPUkFHRT0iJHtTVE9SQUdFfXNx
bGl0ZTNfZHJ2IgoJZmkKCWlmIHVzZSBteXNxbDsgdGhlbgoJCWlmIFsgIiRTVE9SQUdFIiBdIDsg
dGhlbiBTVE9SQUdFPSIke1NUT1JBR0V9LCIgOyBmaQoJCVNUT1JBR0U9IiR7U1RPUkFHRX1teXNx
bF9kcnYiCgkJbXljb25mPSIke215Y29uZn0gLS13aXRoLW15c3FsLWluY2x1ZGVzPS91c3IvaW5j
bHVkZS9teXNxbCIKCQlteWNvbmY9IiR7bXljb25mfSAtLXdpdGgtbXlzcWwtbGlicmFyaWVzPS91
c3IvbGliL215c3FsIgoJZmkKCWlmIHVzZSBwb3N0Z3JlcyA7IHRoZW4KCQlpZiBbICIkU1RPUkFH
RSIgXSA7IHRoZW4gU1RPUkFHRT0iJHtTVE9SQUdFfSwiIDsgZmkKCQlTVE9SQUdFPSIke1NUT1JB
R0V9cGdzcWxfZHJ2IgoJCW15Y29uZj0iJHtteWNvbmZ9IC0td2l0aC1wZ3NxbC1pbmNsdWRlcz0v
dXNyL2luY2x1ZGUvcG9zdGdyZXNxbCIKCQlteWNvbmY9IiR7bXljb25mfSAtLXdpdGgtcGdzcWwt
bGlicmFyaWVzPS91c3IvbGliL3Bvc3RncmVzcWwiCglmaQoJaWYgdXNlIG9yYWNsZSA7IHRoZW4K
CQlpZiBbICIkU1RPUkFHRSIgXSA7IHRoZW4gU1RPUkFHRT0iJHtTVE9SQUdFfSwiIDsgZmkKCQlT
VE9SQUdFPSIke1NUT1JBR0V9b3JhX2RydiIKCQlteWNvbmY9IiR7bXljb25mfSAtLXdpdGgtb3Jh
Y2xlLWhvbWU9JHtPUkFDTEVfSE9NRX0iCgoJCSMgSSBhbSBpbiBubyB3YXkgYSBPcmFjbGUgc3Bl
Y2lhbGlzdC4gSWYgc29tZW9uZSBrbm93cwoJCSMgaG93IHRvIHF1ZXJ5IHRoZSB2ZXJzaW9uIG9m
IE9yYWNsZSwgdGhlbiBsZXQgbWUga25vdy4KCQlpZiAoZXhwciAke09SQUNMRV9IT01FLypcL30g
OiAxMCAxPi9kZXYvbnVsbCAyPiYxKTsgdGhlbgoJCQlteWNvbmY9IiR7bXljb25mfSAtLXdpdGgt
b3JhY2xlLXZlcnNpb249MTAiCgkJZmkKCWZpCglpZiBbWyAteiAiJHtTVE9SQUdFfSIgXV07IHRo
ZW4KCQlTVE9SQUdFPSIke1NUT1JBR0V9aGFzaF9kcnYiCglmaQoKCWVjb25mICR7bXljb25mfSAt
LXdpdGgtc3RvcmFnZS1kcml2ZXI9JHtTVE9SQUdFfSBcCgkJCS0td2l0aC1kc3BhbS1ob21lPSR7
SE9NRURJUn0gXAoJCQktLXN5c2NvbmZkaXI9JHtDT05GRElSfSBcCgkJCSQodXNlX2VuYWJsZSBk
YWVtb24pIFwKCQkJJCh1c2VfZW5hYmxlIGxkYXApIFwKCQkJJCh1c2VfZW5hYmxlIGNsYW1hdikg
XAoJCQkkKHVzZV9lbmFibGUgc3RhdGljKSBcCgkJCSQodXNlX2VuYWJsZSBsb25nLXVzZXJuYW1l
cykgXAoJCSAgICAgICAgLS13aXRoLWRzcGFtLWdyb3VwPWRzcGFtIFwKCQkgICAgICAgIC0td2l0
aC1kc3BhbS1ob21lLWdyb3VwPWRzcGFtIFwKCQkJLS13aXRoLWxvZ2Rpcj0ke0xPR0RJUn0gfHwg
ZGllICJlY29uZiBmYWlsZWQiCgllbWFrZSB8fCBkaWUgImVtYWtlIGZhaWxlZCIKfQoKc3JjX2lu
c3RhbGwgKCkgewoJZGlyb3B0cyAtbTA3NzAgLW8gZHNwYW0gLWcgZHNwYW0KCWRvZGlyICR7Q09O
RkRJUn0KCWluc2ludG8gJHtDT05GRElSfQoJaW5zb3B0cyAtbTY0MCAtbyBkc3BhbSAtZyBkc3Bh
bQoJZG9pbnMgc3JjL2RzcGFtLmNvbmYKCglkb3N5bSAvZXRjL21haWwvZHNwYW0gL2V0Yy9kc3Bh
bQoKCSMgbWFrZSBpbnN0YWxsCgltYWtlIERFU1RESVI9IiR7RH0iIGluc3RhbGwgfHwgZGllICJt
YWtlIGluc3RhbGwgZmFpbGVkIgoKCWRvZGlyIC91c3IvbGliL2RzcGFtCgltdiAiJHtEfSIvdXNy
L2xpYi8qZHJ2KiAiJHtEfSIvdXNyL2xpYi9kc3BhbS8KCglkaXJvcHRzIC1tMDc1NSAtbyBkc3Bh
bSAtZyBkc3BhbQoJa2VlcGRpciAvdmFyL3J1bi9kc3BhbQoKCSMgY3JlYXRlIGxvZ2RpcgoJZGly
b3B0cyAtbTA3NzAgLW8gZHNwYW0gLWcgZHNwYW0KCWtlZXBkaXIgJHtMT0dESVJ9CgoJI2NsZWFu
IG9wdGlvbnMKCWRpcm9wdHMKCWluc29wdHMKCglpZiB1c2UgZGFlbW9uOyB0aGVuCgkJIyBXZSB1
c2Ugc29ja2V0cyBmb3IgdGhlIGRhZW1vbiBpbnN0ZWFkIG9mIHRjcCBwb3J0IDI0CgkJc2VkIC1l
ICdzOl4jKlwoU2VydmVyRG9tYWluU29ja2V0UGF0aFtcdCBdXHsxLFx9XCkuKjpcMVwiL3Zhci9y
dW4vZHNwYW0vZHNwYW0uc29ja1wiOmdJJyBcCgkJCS1lICdzOl4jKlwoU2VydmVyUElEW1x0IF1c
ezEsXH1cKS4qOlwxL3Zhci9ydW4vZHNwYW0vZHNwYW0ucGlkOmdJJyBcCgkJCS1pICIke0R9LyR7
Q09ORkRJUn0vZHNwYW0uY29uZiIKCgkJbmV3aW5pdGQgIiR7RklMRVNESVJ9L2RzcGFtLnJjIiBk
c3BhbQoJZmkKCgkjIGdlbmVyYXRlIHJhbmRvbSBwYXNzd29yZAoJbG9jYWwgUEFTU1dPUkQ9IiR7
UkFORE9NfSR7UkFORE9NfSR7UkFORE9NfSR7UkFORE9NfSIKCgkjIGRhdGFiYXNlIHJlbGF0ZWQg
Y29uZmlndXJhdGlvbiBhbmQgc2NyaXB0cwoJaWYgdXNlIHNxbGl0ZTsgdGhlbgoJCWluc2ludG8g
JHtDT05GRElSfQoJCW5ld2lucyBzcmMvdG9vbHMuc3FsaXRlX2Rydi9wdXJnZS0yLnNxbCBzcWxp
dGVfcHVyZ2Uuc3FsCglmaQoJaWYgdXNlIHNxbGl0ZTM7IHRoZW4KCQlpbnNpbnRvICR7Q09ORkRJ
Un0KCQluZXdpbnMgc3JjL3Rvb2xzLnNxbGl0ZV9kcnYvcHVyZ2UtMy5zcWwgc3FsaXRlM19wdXJn
ZS5zcWwKCWZpCglpZiB1c2UgbXlzcWw7IHRoZW4KCQkjIFVzZSBleGlzdGluZyBjb25maWd1cmF0
aW9uIGlmIHBvc3NpYmxlCgkJaWYgW1sgLWYgIiR7Uk9PVH0ke0NPTkZESVJ9L215c3FsLmRhdGEi
IF1dOyB0aGVuCgkJCURTUEFNX0RCX0RBVEE9KCAkKHNlZCAiczpeW1x0IF0qJDojIyM6Z0kiICIk
e1JPT1R9JHtDT05GRElSfS9teXNxbC5kYXRhIikgKQoJCQlmb3IgREJfREFUQV9JTkRFWCBpbiAk
KHNlcSAwICQoKCR7I0RTUEFNX0RCX0RBVEFbQF19IC0gMSkpKTsgZG8KCQkJCVtbICIke0RTUEFN
X0RCX0RBVEFbJERCX0RBVEFfSU5ERVhdfSIgPSAiIyMjIiBdXSAmJiBEU1BBTV9EQl9EQVRBWyRE
Ql9EQVRBX0lOREVYXT0iIgoJCQlkb25lCgkJZWxzZQoJCQlEU1BBTV9EQl9EQVRBWzBdPSIvdmFy
L3J1bi9teXNxbGQvbXlzcWxkLnNvY2siCgkJCURTUEFNX0RCX0RBVEFbMV09IiIKCQkJRFNQQU1f
REJfREFUQVsyXT0iZHNwYW0iCgkJCURTUEFNX0RCX0RBVEFbM109IiR7UEFTU1dPUkR9IgoJCQlE
U1BBTV9EQl9EQVRBWzRdPSJkc3BhbSIKCQkJRFNQQU1fREJfREFUQVs1XT0idHJ1ZSIKCQlmaQoK
CQkjIE1vZGlmeSBjb25maWd1cmF0aW9uIGFuZCBjcmVhdGUgbXlzcWwuZGF0YSBmaWxlCgkJc2Vk
IC1lICJzOl4jKlwoTXlTUUxTZXJ2ZXJbXHQgXVx7MSxcfVwpLio6XDEke0RTUEFNX0RCX0RBVEFb
MF19OmdJIiBcCgkJCS1lICJzOl4jKlwoTXlTUUxQb3J0W1x0IF1cezEsXH1cKS4qOlwxJHtEU1BB
TV9EQl9EQVRBWzFdfTpnSSIgXAoJCQktZSAiczpeIypcKE15U1FMVXNlcltcdCBdXHsxLFx9XCku
KjpcMSR7RFNQQU1fREJfREFUQVsyXX06Z0kiIFwKCQkJLWUgInM6XiMqXChNeVNRTFBhc3NbXHQg
XVx7MSxcfVwpLio6XDEke0RTUEFNX0RCX0RBVEFbM119OmdJIiBcCgkJCS1lICJzOl4jKlwoTXlT
UUxEYltcdCBdXHsxLFx9XCkuKjpcMSR7RFNQQU1fREJfREFUQVs0XX06Z0kiIFwKCQkJLWUgInM6
XiMqXChNeVNRTENvbXByZXNzW1x0IF1cezEsXH1cKS4qOlwxJHtEU1BBTV9EQl9EQVRBWzVdfTpn
SSIgXAoJCQktaSAiJHtEfSIvJHtDT05GRElSfS9kc3BhbS5jb25mCgkJZm9yIERCX0RBVEFfSU5E
RVggaW4gJChzZXEgMCAkKCgkeyNEU1BBTV9EQl9EQVRBW0BdfSAtIDEpKSk7IGRvCgkJCWVjaG8g
IiR7RFNQQU1fREJfREFUQVskREJfREFUQV9JTkRFWF19IiA+PiAke0R9LyR7Q09ORkRJUn0vbXlz
cWwuZGF0YQoJCWRvbmUKCgkJaW5zaW50byAke0NPTkZESVJ9CgkJbmV3aW5zIHNyYy90b29scy5t
eXNxbF9kcnYvbXlzcWxfb2JqZWN0cy1zcGFjZS5zcWwgbXlzcWxfb2JqZWN0cy1zcGFjZS5zcWwK
CQluZXdpbnMgc3JjL3Rvb2xzLm15c3FsX2Rydi9teXNxbF9vYmplY3RzLXNwZWVkLnNxbCBteXNx
bF9vYmplY3RzLXNwZWVkLnNxbAoJCW5ld2lucyBzcmMvdG9vbHMubXlzcWxfZHJ2L215c3FsX29i
amVjdHMtNC4xLnNxbCBteXNxbF9vYmplY3RzLTQuMS5zcWwKCQlpZiB1c2UgdmlydHVhbC11c2Vy
cyA7IHRoZW4KCQkJbmV3aW5zIHNyYy90b29scy5teXNxbF9kcnYvdmlydHVhbF91c2Vycy5zcWwg
bXlzcWxfdmlydHVhbF91c2Vycy5zcWwKCQkJbmV3aW5zIHNyYy90b29scy5teXNxbF9kcnYvdmly
dHVhbF91c2VyX2FsaWFzZXMuc3FsIG15c3FsX3ZpcnR1YWxfdXNlcl9hbGlhc2VzLnNxbAoJCWZp
CgkJbmV3aW5zIHNyYy90b29scy5teXNxbF9kcnYvcHVyZ2Uuc3FsIG15c3FsX3B1cmdlLnNxbAoJ
CW5ld2lucyBzcmMvdG9vbHMubXlzcWxfZHJ2L3B1cmdlLTQuMS5zcWwgbXlzcWxfcHVyZ2UtNC4x
LnNxbAoKCQlmcGVybXMgNjQwICR7Q09ORkRJUn0vbXlzcWwuZGF0YQoJCWZvd25lcnMgcm9vdDpk
c3BhbSAke0NPTkZESVJ9L215c3FsLmRhdGEKCWZpCglpZiB1c2UgcG9zdGdyZXMgOyB0aGVuCgkJ
IyBVc2UgZXhpc3RpbmcgY29uZmlndXJhdGlvbiBpZiBwb3NzaWJsZQoJCWlmIFsgLWYgJHtST09U
fSR7Q09ORkRJUn0vcGdzcWwuZGF0YSBdOyB0aGVuCgkJCURTUEFNX0RCX0RBVEE9KCAkKGNhdCAi
JHtST09UfSR7Q09ORkRJUn0vcGdzcWwuZGF0YSIpICkKCQkJZm9yIERCX0RBVEFfSU5ERVggaW4g
JChzZXEgMCAkKCgkeyNEU1BBTV9EQl9EQVRBW0BdfSAtIDEpKSk7IGRvCgkJCQlbWyAiJHtEU1BB
TV9EQl9EQVRBWyREQl9EQVRBX0lOREVYXX0iID0gIiMjIyIgXV0gJiYgRFNQQU1fREJfREFUQVsk
REJfREFUQV9JTkRFWF09IiIKCQkJZG9uZQoJCWVsc2UKCQkJRFNQQU1fREJfREFUQVswXT0iMTI3
LjAuMC4xIgoJCQlEU1BBTV9EQl9EQVRBWzFdPSI1NDMyIgoJCQlEU1BBTV9EQl9EQVRBWzJdPSJk
c3BhbSIKCQkJRFNQQU1fREJfREFUQVszXT0iJHtQQVNTV09SRH0iCgkJCURTUEFNX0RCX0RBVEFb
NF09ImRzcGFtIgoJCWZpCgoJCSMgTW9kaWZ5IGNvbmZpZ3VyYXRpb24gYW5kIGNyZWF0ZSBwZ3Nx
bC5kYXRhIGZpbGUKCQlzZWQgLWUgInM6XiMqXChQZ1NRTFNlcnZlcltcdCBdXHsxLFx9XCkuKjpc
MSR7RFNQQU1fREJfREFUQVswXX06Z0kiIFwKCQkJLWUgInM6XiMqXChQZ1NRTFBvcnRbXHQgXVx7
MSxcfVwpLio6XDEke0RTUEFNX0RCX0RBVEFbMV19OmdJIiBcCgkJCS1lICJzOl4jKlwoUGdTUUxV
c2VyW1x0IF1cezEsXH1cKS4qOlwxJHtEU1BBTV9EQl9EQVRBWzJdfTpnSSIgXAoJCQktZSAiczpe
IypcKFBnU1FMUGFzc1tcdCBdXHsxLFx9XCkuKjpcMSR7RFNQQU1fREJfREFUQVszXX06Z0kiIFwK
CQkJLWUgInM6XiMqXChQZ1NRTERiW1x0IF1cezEsXH1cKS4qOlwxJHtEU1BBTV9EQl9EQVRBWzRd
fTpnSSIgXAoJCQktZSAiczpeIypcKFBnU1FMQ29ubmVjdGlvbkNhY2hlW1x0IF0qLlwpOlwxOmdJ
IiBcCgkJCS1pICR7RH0vJHtDT05GRElSfS9kc3BhbS5jb25mCgkJZm9yIERCX0RBVEFfSU5ERVgg
aW4gJChzZXEgMCAkKCgkeyNEU1BBTV9EQl9EQVRBW0BdfSAtIDEpKSk7IGRvCgkJCWVjaG8gIiR7
RFNQQU1fREJfREFUQVskREJfREFUQV9JTkRFWF19IiA+PiAke0R9LyR7Q09ORkRJUn0vcGdzcWwu
ZGF0YQoJCWRvbmUKCgkJaW5zaW50byAke0NPTkZESVJ9CgkJbmV3aW5zIHNyYy90b29scy5wZ3Nx
bF9kcnYvcGdzcWxfb2JqZWN0cy5zcWwgcGdzcWxfb2JqZWN0cy5zcWwKCQlpZiB1c2UgdmlydHVh
bC11c2VycyA7IHRoZW4KCQkJbmV3aW5zIHNyYy90b29scy5wZ3NxbF9kcnYvdmlydHVhbF91c2Vy
cy5zcWwgcGdzcWxfdmlydHVhbF91c2Vycy5zcWwKCQlmaQoJCW5ld2lucyBzcmMvdG9vbHMucGdz
cWxfZHJ2L3B1cmdlLnNxbCBwZ3NxbF9wdXJnZS5zcWwKCgkJZnBlcm1zIDY0MCAke0NPTkZESVJ9
L3Bnc3FsLmRhdGEKCQlmb3duZXJzIHJvb3Q6ZHNwYW0gJHtDT05GRElSfS9wZ3NxbC5kYXRhCglm
aQoJaWYgdXNlIG9yYWNsZSA7IHRoZW4KCQkjIFVzZSBleGlzdGluZyBjb25maWd1cmF0aW9uIGlm
IHBvc3NpYmxlCgkJaWYgWyAtZiAke1JPT1R9JHtDT05GRElSfS9vcmFjbGUuZGF0YSBdOyB0aGVu
CgkJCURTUEFNX0RCX0RBVEE9KCAkKGNhdCAiJHtST09UfSR7Q09ORkRJUn0vb3JhY2xlLmRhdGEi
KSApCgkJCWZvciBEQl9EQVRBX0lOREVYIGluICQoc2VxIDAgJCgoJHsjRFNQQU1fREJfREFUQVtA
XX0gLSAxKSkpOyBkbwoJCQkJW1sgIiR7RFNQQU1fREJfREFUQVskREJfREFUQV9JTkRFWF19IiA9
ICIjIyMiIF1dICYmIERTUEFNX0RCX0RBVEFbJERCX0RBVEFfSU5ERVhdPSIiCgkJCWRvbmUKCQll
bHNlCgkJCURTUEFNX0RCX0RBVEFbMF09IihERVNDUklQVElPTj0oQUREUkVTUz0oUFJPVE9DT0w9
VENQKShIT1NUPTEyNy4wLjAuMSkoUE9SVD0xNTIxKSkoQ09OTkVDVF9EQVRBPShTSUQ9UFJPRCkp
KSIKCQkJRFNQQU1fREJfREFUQVsxXT0iZHNwYW0iCgkJCURTUEFNX0RCX0RBVEFbMl09IiR7UEFT
U1dPUkR9IgoJCQlEU1BBTV9EQl9EQVRBWzNdPSJkc3BhbSIKCQlmaQoKCQkjIE1vZGlmeSBjb25m
aWd1cmF0aW9uIGFuZCBjcmVhdGUgb3JhY2xlLmRhdGEgZmlsZQoJCXNlZCAtZSAiczpeIypcKE9y
YVNlcnZlcltcdCBdXHsxLFx9XCkuKjpcMSR7RFNQQU1fREJfREFUQVswXX06Z0kiIFwKCQkJLWUg
InM6XlwoT3JhVXNlcltcdCBdXHsxLFx9XCkuKjpcMSR7RFNQQU1fREJfREFUQVsxXX06Z0kiIFwK
CQkJLWUgInM6XlwoT3JhUGFzc1tcdCBdXHsxLFx9XCkuKjpcMSR7RFNQQU1fREJfREFUQVsyXX06
Z0kiIFwKCQkJLWUgInM6XlwoT3JhU2NoZW1hW1x0IF1cezEsXH1cKS4qOlwxJHtEU1BBTV9EQl9E
QVRBWzNdfTpnSSJcCgkJICAgCS1pICIke0R9Ii8ke0NPTkZESVJ9L2RzcGFtLmNvbmYKCQlmb3Ig
REJfREFUQV9JTkRFWCBpbiAkKHNlcSAwICQoKCR7I0RTUEFNX0RCX0RBVEFbQF19IC0gMSkpKTsg
ZG8KCQkJZWNobyAiJHtEU1BBTV9EQl9EQVRBWyREQl9EQVRBX0lOREVYXX0iID4+ICIke0R9Ii8k
e0NPTkZESVJ9L29yYWNsZS5kYXRhCgkJZG9uZQoKCQlpbnNpbnRvICR7Q09ORkRJUn0KCQluZXdp
bnMgc3JjL3Rvb2xzLm9yYV9kcnYvb3JhbF9vYmplY3RzLnNxbCBvcmFfb2JqZWN0cy5zcWwKCQlp
ZiB1c2UgdmlydHVhbC11c2VycyA7IHRoZW4KCQkJbmV3aW5zIHNyYy90b29scy5vcmFfZHJ2L3Zp
cnR1YWxfdXNlcnMuc3FsIG9yYV92aXJ0dWFsX3VzZXJzLnNxbAoJCWZpCgkJbmV3aW5zIHNyYy90
b29scy5vcmFfZHJ2L3B1cmdlLnNxbCBvcmFfcHVyZ2Uuc3FsCgoJCWZwZXJtcyA2NDAgJHtDT05G
RElSfS9vcmFjbGUuZGF0YQoJCWZvd25lcnMgcm9vdDpkc3BhbSAke0NPTkZESVJ9L29yYWNsZS5k
YXRhCglmaQoKCXNlZCAtZSAiczpeXChQdXJnZS4qXCk6IyMjXDE6ZyIgXAoJCS1lICJzOl4jXChQ
dXJnZS4qXCk6XDE6ZyIgXAoJCS1lICJzOl4jIyNcKFB1cmdlLipcKTojXDE6ZyIgXAoJCS1pICIk
e0R9Ii8ke0NPTkZESVJ9L2RzcGFtLmNvbmYKCgkjIGluc3RhbGxzIHRoZSBub3RpZmljYXRpb24g
bWVzc2FnZXMKCSMgLT4gVGhlIGRvY3VtZW50YXRpb24gaXMgd3JvbmchIFRoZSBmaWxlcyBuZWVk
IHRvIGJlIGluIC4vdHh0CglpbnNpbnRvICR7Q09ORkRJUn0vdHh0Cglkb2lucyAiJHtTfSIvdHh0
LyoudHh0CgoJIyBDcmVhdGUgdGhlIG9wdC1pbiAvIG9wdC1vdXQgZGlyZWN0b3JpZXMKCWRpcm9w
dHMgLW0wNzcwIC1vIGRzcGFtIC1nIGRzcGFtCglkb2RpciAke0hPTUVESVJ9CglrZWVwZGlyICR7
SE9NRURJUn0vb3B0LWluCglrZWVwZGlyICR7SE9NRURJUn0vb3B0LW91dAoJZGlyb3B0cwoKCSMg
bG9ncm90YXRpb24gc2NyaXB0cwoJaWYgdXNlIGxvZ3JvdGF0ZSAmJiB1c2UgZGVidWcgOyB0aGVu
CgkJaW5zaW50byAvZXRjL2xvZ3JvdGF0ZS5kCgkJbmV3aW5zICIke0ZJTEVTRElSfS9sb2dyb3Rh
dGUuZHNwYW0iIGRzcGFtCglmaQoKCSMgZHNwYW0gY3JvbiBqb2IKCWV4ZWludG8gL2V0Yy9jcm9u
LmRhaWx5Cglkb2V4ZSAiJHtGSUxFU0RJUn0vZHNwYW0uY3JvbiIKCgkjIGRvY3VtZW50YXRpb24K
CWRvZG9jIENIQU5HRUxPRyBSRUFETUUqIFJFTEVBU0UuTk9URVMgVVBHUkFESU5HCglkb2NpbnRv
IGRvYwoJZG9kb2MgZG9jLyoudHh0Cglkb2NpbnRvIGdlbnRvbwoJZG9kb2MgIiR7RklMRVNESVJ9
L1JFQURNRS5wb3N0Zml4IiAiJHtGSUxFU0RJUn0vUkVBRE1FLnFtYWlsIgoJZG9jaW50byBzYV90
cmFpbgoJZG9kb2MgIiR7V09SS0RJUn0iL2RzcGFtX3NhX3RyYWluZXIvKgoJZG9tYW4gbWFuL2Rz
cGFtKgp9Cgpwa2dfcG9zdGluc3QoKSB7CgkjIG5lZWQgZW5ld2dyb3VwL2VuZXd1c2VyIGluIHRo
aXMgZnVuY3Rpb24gZm9yIGJpbmFyeSBpbnN0YWxsLgoJY3JlYXRlX2RzcGFtX3VzZXJncm91cAoK
CWlmIHVzZSBteXNxbCB8fCB1c2UgcG9zdGdyZXMgfHwgdXNlIG9yYWNsZTsgdGhlbgoJCWVjaG8K
CQllaW5mbyAiVG8gc2V0dXAgRFNQQU0gdG8gcnVuIG91dC1vZi10aGUtYm94IG9uIHlvdXIgc3lz
dGVtIHdpdGggYSBNeVNRTCwiCgkJZWluZm8gIlBvc3RncmVTUUwgb3IgT3JhY2xlIGRhdGFiYXNl
LCBydW46IgoJCWVpbmZvICJlbWVyZ2UgLS1jb25maWcgPSR7UEZ9IgoJZmkKCglpZiB1c2UgcG9z
dGdyZXMgJiYgaGFzX3ZlcnNpb24gIj5kZXYtZGIvcG9zdGdyZXNxbC04LjAiOyB0aGVuCgkJZWNo
bwoJCWVpbmZvICJCZWZvcmUgZXhlY3V0aW5nIHRoZSBjb25maWd1cmF0aW9uIGNvbW1hbmQgbWVu
dGlvbmVkIGFib3ZlIHlvdSBoYXZlIgoJCWVpbmZvICJ0byBleGVjdXRlIHRoZSBmb2xsb3dpbmcg
Y29tbWFuZDoiCgkJZWluZm8gImNyZWF0ZWxhbmcgcGxwZ3NxbCAtVSBwb3N0Z3JlcyBkc3BhbSIK
CWZpCgoJaWYgdXNlIGRhZW1vbjsgdGhlbgoJCWVjaG8KCQllaW5mbyAiSWYgeW91IHdhbnQgdG8g
cnVuIERTUEFNIGluIHRoZSBuZXcgZGFlbW9uIG1vZGUgcmVtZW1iZXIiCgkJZWluZm8gInRvIG1h
a2UgdGhlIERTUEFNIGRhZW1vbiBzdGFydCBkdXJpbmcgYm9vdDoiCgkJZWluZm8gIiAgcmMtdXBk
YXRlIGFkZCBkc3BhbSBkZWZhdWx0IgoJZmkKCWlmIHVzZSBkYWVtb24gOyB0aGVuCgkJZWluZm8g
IlRvIHVzZSB0aGUgRFNQQU0gZGFlbW9uIG1vZGUsIHRoZSB1c2VkIHN0b3JhZ2UgZHJpdmVyIG11
c3QgYmUgdGhyZWFkLXNhZmUuIgoJZmkKCgllaW5mbyAiRWRpdCAvZXRjL21haWwvZHNwYW0uY29u
ZiB3aXRoIHlvdXIgZGVsaXZlcnkgYWdlbnQiCgllaW5mbyAiU2VlIGh0dHA6Ly9kc3BhbXdpa2ku
ZXhwYXNzLmRlL0luc3RhbGxhdGlvbiBmb3IgbW9yZSBpbmZvIgp9Cgpwa2dfY29uZmlnICgpIHsK
CWxvY2FsIEFWQUlMX0JBQ0tFTkRTPSgpCgl1c2UgbXlzcWwgJiYgQVZBSUxfQkFDS0VORFM9KCAk
e0FWQUlMX0JBQ0tFTkRTWypdfSBteXNxbCApCgl1c2UgcG9zdGdyZXMgJiYgQVZBSUxfQkFDS0VO
RFM9KCAke0FWQUlMX0JBQ0tFTkRTWypdfSBwb3N0Z3JlcyApCgl1c2Ugc3FsaXRlICYmIEFWQUlM
X0JBQ0tFTkRTPSggJHtBVkFJTF9CQUNLRU5EU1sqXX0gc3FsaXRlICkKCXVzZSBzcWxpdGUzICYm
IEFWQUlMX0JBQ0tFTkRTPSggJHtBVkFJTF9CQUNLRU5EU1sqXX0gc3FsaXRlMyApCgl1c2Ugb3Jh
Y2xlICYmIEFWQUlMX0JBQ0tFTkRTPSggJHtBVkFJTF9CQUNLRU5EU1sqXX0gb3JhY2xlICkKCWxv
Y2FsIFVTRV9CQUNLRU5ECglyZWFkIC1wICJXaGljaCBiYWNrZW5kIGRvIHlvdSB3YW50IHRvIGNv
bmZpZ3VyZT8gKGF2YWlsYWJsZSBiYWNrZW5kcyBhcmUgJHtBVkFJTF9CQUNLRU5EU1sqXX0pICIg
VVNFX0JBQ0tFTkQKCWlmIFtbICIgJHtBVkFJTF9CQUNLRU5EU1sqXX0gIiAhPSAqIiAke1VTRV9C
QUNLRU5EfSAiKiBdXQoJdGhlbgoJCWVlcnJvciAiVGhlICcke1VTRV9CQUNLRU5EfScgYmFja2Vu
ZCBpcyBub3QgYXZhaWxhYmxlLiIKCQlyZXR1cm4gMQoJZmkKCgljYXNlICIke1VTRV9CQUNLRU5E
fSIgaW4KCgkJc3FsaXRlIHwgc3FsaXRlMykKCQkJZWluZm8gInNxbGl0ZV9kcnYgd2lsbCBhdXRv
bWF0aWNhbGx5IGNyZWF0ZSB0aGUgbmVjZXNzYXJ5IGRhdGFiYXNlIgoJCQk7OwoKCQlteXNxbCkK
CQkJRFNQQU1fREJfREFUQT0oICQoc2VkICJzOl5bXHQgXSokOiMjIzpnSSIgIiR7Uk9PVH0ke0NP
TkZESVJ9L215c3FsLmRhdGEiKSApCgkJCWZvciBEQl9EQVRBX0lOREVYIGluICQoc2VxIDAgJCgo
JHsjRFNQQU1fREJfREFUQVtAXX0gLSAxKSkpOyBkbwoJCQkJW1sgIiR7RFNQQU1fREJfREFUQVsk
REJfREFUQV9JTkRFWF19IiA9ICIjIyMiIF1dICYmIERTUEFNX0RCX0RBVEFbJERCX0RBVEFfSU5E
RVhdPSIiCgkJCWRvbmUKCQkJRFNQQU1fTXlTUUxfVVNFUj0iJHtEU1BBTV9EQl9EQVRBWzJdfSIK
CQkJRFNQQU1fTXlTUUxfUFdEPSIke0RTUEFNX0RCX0RBVEFbM119IgoJCQlEU1BBTV9NeVNRTF9E
Qj0iJHtEU1BBTV9EQl9EQVRBWzRdfSIKCgkJCWV3YXJuICJXaGVuIHByb21wdGVkIGZvciBhIHBh
c3N3b3JkLCBwbGVhc2UgZW50ZXIgeW91ciBNeVNRTCByb290IHBhc3N3b3JkIgoJCQlld2FybgoK
CQkJZWluZm8gIkNyZWF0aW5nIERTUEFNIE15U1FMIGRhdGFiYXNlIFwiJHtEU1BBTV9NeVNRTF9E
Qn1cIiIKCQkJL3Vzci9iaW4vbXlzcWxhZG1pbiAtdSByb290IC1wIGNyZWF0ZSAke0RTUEFNX015
U1FMX0RCfQoKCgkJCWlmIGhhc192ZXJzaW9uICI+PXZpcnR1YWwvbXlzcWwtNC4xIjsgdGhlbgoJ
CQkJL3Vzci9iaW4vbXlzcWwgLXUgcm9vdCAtcCAke0RTUEFNX015U1FMX0RCfSA8ICR7Q09ORkRJ
Un0vbXlzcWxfb2JqZWN0cy00LjEuc3FsCgkJCWVsc2UKCQkJCWVpbmZvICJDcmVhdGluZyBEU1BB
TSBNeVNRTCB0YWJsZXMgZm9yIGRhdGEgb2JqZWN0cyIKCQkJCWVpbmZvICIgIFBsZWFzZSBzZWxl
Y3Qgd2hhdCBraW5kIG9mIG9iamVjdCBkYXRhYmFzZSB5b3UgbGlrZSB0byB1c2UuIgoJCQkJZWlu
Zm8gIiAgICBbMV0gU3BhY2Ugb3B0aW1pemVkIGRhdGFiYXNlIgoJCQkJZWluZm8gIiAgICBbMl0g
U3BlZWQgb3B0aW1pemVkIGRhdGFiYXNlIgoJCQkJZWluZm8KCQkJCXdoaWxlIHRydWUKCQkJCWRv
CgkJCQkJcmVhZCAtbiAxIC1zIC1wICIgIFByZXNzIDEgb3IgMiBvbiB0aGUga2V5Ym9hcmQgdG8g
c2VsZWN0IGRhdGFiYXNlIiBEU1BBTV9NeVNRTF9EQl9UeXBlCgkJCQkJW1sgIiR7RFNQQU1fTXlT
UUxfREJfVHlwZX0iID09ICIxIiB8fCAiJHtEU1BBTV9NeVNRTF9EQl9UeXBlfSIgPT0gIjIiIF1d
ICYmIGVjaG8gJiYgYnJlYWsKCQkJCWRvbmUKCgkJCQlpZiBbICIke0RTUEFNX015U1FMX0RCX1R5
cGV9IiA9PSAiMSIgXQoJCQkJdGhlbgoJCQkJCS91c3IvYmluL215c3FsIC11IHJvb3QgLXAgJHtE
U1BBTV9NeVNRTF9EQn0gPCAke0NPTkZESVJ9L215c3FsX29iamVjdHMtc3BhY2Uuc3FsCgkJCQll
bHNlCgkJCQkJL3Vzci9iaW4vbXlzcWwgLXUgcm9vdCAtcCAke0RTUEFNX015U1FMX0RCfSA8ICR7
Q09ORkRJUn0vbXlzcWxfb2JqZWN0cy1zcGVlZC5zcWwKCQkJCWZpCgkJCWZpCgoJCQlpZiB1c2Ug
dmlydHVhbC11c2VycyA7IHRoZW4KCQkJCWVpbmZvICJDcmVhdGluZyBEU1BBTSBNeVNRTCBkYXRh
YmFzZSBmb3IgdmlydHVhbC11c2VycyB1c2VycyIKCQkJCWVpbmZvICIgIFBsZWFzZSBzZWxlY3Qg
d2hhdCBraW5kIG9mIHZpcnR1YWxfdWlkcyB0YWJsZSB5b3UgbGlrZSB0byB1c2UuIgoJCQkJZWlu
Zm8gIiAgICBbMV0gVmlydHVhbCB1c2VycyBhZGRlZCBhdXRvbWF0aWNhbGx5ICh1c2UgdGhpcyBp
ZiB0aGlzIHNlcnZlciBpcyB0aGUgcHJpbWFyeSBNWCkiCgkJCQllaW5mbyAiICAgIFsyXSBWaXJ0
dWFsIHVzZXJzIGFkZGVkIG1hbnVhbGx5ICh1c2UgaXQgaWYgdGhpcyBzZXJ2ZXIgaXMgYSBzZWNv
bmRhcnkgTVgpIgoJCQkJZWluZm8KCQkJCXdoaWxlIHRydWUKCQkJCWRvCgkJCQkJcmVhZCAtbiAx
IC1zIC1wICIgIFByZXNzIDEgb3IgMiBvbiB0aGUga2V5Ym9hcmQgdG8gc2VsZWN0IHRhYmxlIHR5
cGUiIERTUEFNX015U1FMX0RCX1R5cGUKCQkJCQlbWyAiJHtEU1BBTV9NeVNRTF9EQl9UeXBlfSIg
PT0gIjEiIHx8ICIke0RTUEFNX015U1FMX0RCX1R5cGV9IiA9PSAiMiIgXV0gJiYgZWNobyAmJiBi
cmVhawoJCQkJZG9uZQoKCQkJCWlmIFsgIiR7RFNQQU1fTXlTUUxfREJfVHlwZX0iID09ICIxIiBd
CgkJCQl0aGVuCgkJCQkJL3Vzci9iaW4vbXlzcWwgLXUgcm9vdCAtcCAke0RTUEFNX015U1FMX0RC
fSA8ICR7Q09ORkRJUn0vbXlzcWxfdmlydHVhbF91c2Vycy5zcWwKCQkJCWVsc2UKCQkJCQkvdXNy
L2Jpbi9teXNxbCAtdSByb290IC1wICR7RFNQQU1fTXlTUUxfREJ9IDwgJHtDT05GRElSfS9teXNx
bF92aXJ0dWFsX3VzZXJfYWxpYXNlcy5zcWwKCQkJCWZpCgkJCWZpCgoJCQllaW5mbyAiQ3JlYXRp
bmcgRFNQQU0gTXlTUUwgdXNlciBcIiR7RFNQQU1fTXlTUUxfVVNFUn1cIiIKCQkJL3Vzci9iaW4v
bXlzcWwgLXUgcm9vdCAtcCAtZSAiR1JBTlQgU0VMRUNULElOU0VSVCxVUERBVEUsREVMRVRFIE9O
ICR7RFNQQU1fTXlTUUxfREJ9LiogVE8gJHtEU1BBTV9NeVNRTF9VU0VSfUBsb2NhbGhvc3QgSURF
TlRJRklFRCBCWSAnJHtEU1BBTV9NeVNRTF9QV0R9JztGTFVTSCBQUklWSUxFR0VTOyIgLUQgbXlz
cWwKCQkJOzsKCgkJcG9zdGdyZXMpCgkJCURTUEFNX0RCX0RBVEE9KCAkKHNlZCAiczpeW1x0IF0q
JDojIyM6Z0kiICIke1JPT1R9JHtDT05GRElSfS9wZ3NxbC5kYXRhIikgKQoJCQlmb3IgREJfREFU
QV9JTkRFWCBpbiAkKHNlcSAwICQoKCR7I0RTUEFNX0RCX0RBVEFbQF19IC0gMSkpKTsgZG8KCQkJ
CVtbICIke0RTUEFNX0RCX0RBVEFbJERCX0RBVEFfSU5ERVhdfSIgPSAiIyMjIiBdXSAmJiBEU1BB
TV9EQl9EQVRBWyREQl9EQVRBX0lOREVYXT0iIgoJCQlkb25lCgkJCURTUEFNX1BnU1FMX1VTRVI9
IiR7RFNQQU1fREJfREFUQVsyXX0iCgkJCURTUEFNX1BnU1FMX1BXRD0iJHtEU1BBTV9EQl9EQVRB
WzNdfSIKCQkJRFNQQU1fUGdTUUxfREI9IiR7RFNQQU1fREJfREFUQVs0XX0iCgoJCQlld2FybiAi
V2hlbiBwcm9tcHRlZCBmb3IgYSBwYXNzd29yZCwgcGxlYXNlIGVudGVyIHlvdXIgUGdTUUwgcG9z
dGdyZXMgcGFzc3dvcmQiCgkJCWV3YXJuCgoJCQllaW5mbyAiQ3JlYXRpbmcgRFNQQU0gUG9zdGdy
ZVNRTCBkYXRhYmFzZSBcIiR7RFNQQU1fUGdTUUxfREJ9XCIgYW5kIHVzZXIgXCIke0RTUEFNX1Bn
U1FMX1VTRVJ9XCIiCgkJCS91c3IvYmluL3BzcWwgLWggbG9jYWxob3N0IC1kIHRlbXBsYXRlMSAt
VSBwb3N0Z3JlcyAtYyAiQ1JFQVRFIFVTRVIgJHtEU1BBTV9QZ1NRTF9VU0VSfSBXSVRIIFBBU1NX
T1JEICcke0RTUEFNX1BnU1FMX1BXRH0nIE5PQ1JFQVRFREIgTk9DUkVBVEVVU0VSOyBDUkVBVEUg
REFUQUJBU0UgJHtEU1BBTV9QZ1NRTF9EQn07IEdSQU5UIEFMTCBQUklWSUxFR0VTIE9OIERBVEFC
QVNFICR7RFNQQU1fUGdTUUxfREJ9IFRPICR7RFNQQU1fUGdTUUxfVVNFUn07IEdSQU5UIEFMTCBQ
UklWSUxFR0VTIE9OIFNDSEVNQSBwdWJsaWMgVE8gJHtEU1BBTV9QZ1NRTF9VU0VSfTsgVVBEQVRF
IHBnX2RhdGFiYXNlIFNFVCBkYXRkYmE9KFNFTEVDVCB1c2VzeXNpZCBGUk9NIHBnX3NoYWRvdyBX
SEVSRSB1c2VuYW1lPScke0RTUEFNX1BnU1FMX1VTRVJ9JykgV0hFUkUgZGF0bmFtZT0nJHtEU1BB
TV9QZ1NRTF9EQn0nOyIKCgkJCWVpbmZvICJDcmVhdGluZyBEU1BBTSBQb3N0Z3JlU1FMIHRhYmxl
cyIKCQkJUEdVU0VSPSR7RFNQQU1fUGdTUUxfVVNFUn0gUEdQQVNTV09SRD0ke0RTUEFNX1BnU1FM
X1BXRH0gL3Vzci9iaW4vcHNxbCAtZCAke0RTUEFNX1BnU1FMX0RCfSAtVSAke0RTUEFNX1BnU1FM
X1VTRVJ9IC1mICR7Q09ORkRJUn0vcGdzcWxfb2JqZWN0cy5zcWwgMT4vZGV2L251bGwgMj4mMQoK
CQkJaWYgdXNlIHZpcnR1YWwtdXNlcnMgOyB0aGVuCgkJCQllaW5mbyAiQ3JlYXRpbmcgRFNQQU0g
UG9zdGdyZVNRTCBkYXRhYmFzZSBmb3IgdmlydHVhbC11c2VycyB1c2VycyIKCQkJCVBHVVNFUj0k
e0RTUEFNX1BnU1FMX1VTRVJ9IFBHUEFTU1dPUkQ9JHtEU1BBTV9QZ1NRTF9QV0R9IC91c3IvYmlu
L3BzcWwgLWQgJHtEU1BBTV9QZ1NRTF9EQn0gLVUgJHtEU1BBTV9QZ1NRTF9VU0VSfSAtZiAke0NP
TkZESVJ9L3Bnc3FsX3ZpcnR1YWxfdXNlcnMuc3FsIDE+L2Rldi9udWxsIDI+JjEKCQkJZmkKCQkJ
OzsKCgkJb3JhY2xlKQoJCQllaW5mbyAiV2UgaGF2ZSBub3QgZW5vdWdodCBPcmFjbGUga25vd2xl
ZGdlIHRvIGNvbmZpZ3VyZSBPcmFjbGUiCgkJCWVpbmZvICJhdXRvbWF0aWNhbGx5LiBJZiB5b3Ug
a25vdyBob3csIHBsZWFzZSBwb3N0IGEgbWVzc2FnZSBpbiIKCQkJZWluZm8gIkdlbnRvbyBCdWd6
aWxsYS4iCgkJCWVpbmZvCgkJCWVpbmZvICJZb3UgbmVlZCBtYW51YWxseSB0byBjcmVhdGUgdGhl
IE9yYWNsZSB1c2VyIGZvciBEU1BBTSBhbmQiCgkJCWVpbmZvICJ0aGUgbmVjZXNzYXJ5IGRhdGFi
YXNlLiIKCQkJZWluZm8gIkJ1dCB0aGUgRFNQQU0gY29uZmlndXJhdGlvbiBmaWxlIGRzcGFtLmNv
bmYgYW5kIG9yYWNsZS5kYXRhIgoJCQllaW5mbyAid2FzIGFscmVhZHkgY29uZmlndXJlZCB3aXRo
IHRoZSBuZWNlc3NhcnkgaW5mb3JtYXRpb24gdG8iCgkJCWVpbmZvICJhY2Nlc3MgdGhlIGRhdGFi
YXNlLiIKCQkJZWluZm8gIlBsZWFzZSByZWFkIHlvdXIgZHNwYW0uY29uZiwgb3JhY2xlLmRhdGEg
YW5kIHRoZSBSRUFETUUgZm9yIgoJCQllaW5mbyAibW9yZSBpbmZvIG9uIGhvdyB0byBzZXR1cCBE
U1BBTSB3aXRoIE9yYWNsZS4iCgkJCWVpbmZvICJvYmplY3RzIGZvciBlYWNoIHVzZXIgdXBvbiBm
aXJzdCB1c2Ugb2YgRFNQQU0gYnkgdGhhdCB1c2VyLiIKCQkJOzsKCgllc2FjCn0K
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>104493</attachid>
            <date>2006-12-20 21:47 0000</date>
            <desc>with syslog flag</desc>
            <filename>dspam-3.6.8-r1.ebuild</filename>
            <type>text/plain</type>
            <data encoding="base64">IyBDb3B5cmlnaHQgMTk5OS0yMDA2IEdlbnRvbyBGb3VuZGF0aW9uCiMgRGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2MgojICRIZWFk
ZXI6IC92YXIvY3Zzcm9vdC9nZW50b28teDg2L21haWwtZmlsdGVyL2RzcGFtL2RzcGFtLTMuNi44
LXIxLmVidWlsZCx2IDEuMSAyMDA2LzEyLzE5IDA5OjQ2OjA2IG1ybmVzcyBFeHAgJAoKaW5oZXJp
dCBldXRpbHMgYXV0b3Rvb2xzIGZsYWctby1tYXRpYwoKREVTQ1JJUFRJT049IkEgc3RhdGlzdGlj
YWwtYWxnb3JpdGhtaWMgaHlicmlkIGFudGktc3BhbSBmaWx0ZXIiCkhPTUVQQUdFPSJodHRwOi8v
ZHNwYW0ubnVjbGVhcmVsZXBoYW50LmNvbS8iClNSQ19VUkk9Imh0dHA6Ly9kc3BhbS5udWNsZWFy
ZWxlcGhhbnQuY29tL3NvdXJjZXMvJHtQfS50YXIuZ3oKCW1pcnJvcjovL2dlbnRvby8ke1B9LXBh
dGNoZXMtMjAwNjEyMTkudGFyLmd6CglodHRwOi8vZHNwYW0ubnVjbGVhcmVsZXBoYW50LmNvbS9z
b3VyY2VzL2V4dHJhcy9kc3BhbV9zYV90cmFpbmVyLnRhci5neiIKCkxJQ0VOU0U9IkdQTC0yIgpT
TE9UPSIwIgpJVVNFPSJjbGFtYXYgZGFlbW9uIGRlYmlhbi1wYXRjaHNldCBkZWJ1ZyBkZWJ1Zy1i
bnIgZG9tYWluLXNjYWxlIGxhcmdlLXNjYWxlIFwKICAgICAgICBsZGFwIGxvZ3JvdGF0ZSBsb25n
LXVzZXJuYW1lcyBteXNxbCBvcmFjbGUgcG9zdGdyZXMgc3FsaXRlIHNxbGl0ZTMgXAogICAgICAg
IHN0YXRpYyBzeXNsb2cgdXNlci1ob21lZGlycyB2ZXJib3NlIHZpcnR1YWwtdXNlcnMgd29ybGQt
ZXhlYyIKCkRFUEVORD0iY2xhbWF2PwkJKCA+PWFwcC1hbnRpdmlydXMvY2xhbWF2LTAuODYgKQoJ
bGRhcD8JCSggPj1uZXQtbmRzL29wZW5sZGFwLTIuMiApCglteXNxbD8JCSggdmlydHVhbC9teXNx
bCApCglwb3N0Z3Jlcz8JKCA+PWRldi1kYi9wb3N0Z3Jlc3FsLTcuNC4zICkKCXNxbGl0ZT8JCSgg
PGRldi1kYi9zcWxpdGUtMyApCglzcWxpdGUzPwkoID1kZXYtZGIvc3FsaXRlLTMqICkiCgpSREVQ
RU5EPSIke0RFUEVORH0KCXN5cy1wcm9jZXNzL2Nyb25iYXNlCgl2aXJ0dWFsL2xvZ2dlcgoJbG9n
cm90YXRlPyAoIGFwcC1hZG1pbi9sb2dyb3RhdGUgKSIKCktFWVdPUkRTPSJ+YWxwaGEgfmFtZDY0
IH5wcGMgfnNwYXJjIH54ODYiCgojIHNvbWUgRkhTLWxpa2Ugc3RydWN0dXJlCkhPTUVESVI9Ii92
YXIvc3Bvb2wvZHNwYW0iCkNPTkZESVI9Ii9ldGMvbWFpbC9kc3BhbSIKTE9HRElSPSIvdmFyL2xv
Zy9kc3BhbSIKCiMgRm9yIHNlbGVjdGl2ZSBkZWJpYW4tcGF0Y2hzZXQKIyBFeGFtcGxlOiBPTUlU
PSIwMiAwMyAxMyIKCk9NSVQ9CgpjcmVhdGVfZHNwYW1fdXNlcmdyb3VwKCkgewoJbG9jYWwgZWdp
ZCBldWlkCgkjTmVlZCBhIFVJRCBhbmQgR0lEID49IDEwMDAsIGZvciBiZWluZyBhYmxlIHRvIHVz
ZSBzdWV4ZWMgaW4gYXBhY2hlCglmb3IgZXVpZCBpbiAkKHNlcSAxMDAwIDUwMDAgKSA7IGRvCgkJ
W1sgLXogJChlZ2V0ZW50IHBhc3N3ZCAke2V1aWR9KSBdXSAmJiBicmVhawoJZG9uZQoJZm9yIGVn
aWQgaW4gJChzZXEgMTAwMCA1MDAwICkgOyBkbwoJCVtbIC16ICQoZWdldGVudCBncm91cCAke2Vn
aWR9KSBdXSAmJiBicmVhawoJZG9uZQoKCWVuZXdncm91cCBkc3BhbSAke2VnaWR9CgllbmV3dXNl
ciBkc3BhbSAke2V1aWR9IC0xICR7SE9NRURJUn0gZHNwYW0sbWFpbAp9Cgpwa2dfc2V0dXAoKSB7
CglpZiB1c2UgdmlydHVhbC11c2VycyAmJiB1c2UgdXNlci1ob21lZGlycyA7IHRoZW4KCQllZXJy
b3IKCQllZXJyb3IgIklmIHRoZSB1c2VycyBhcmUgdmlydHVhbCwgdGhlbiB0aGV5IHByb2JhYmx5
IHNob3VsZCBub3QiCgkJZWVycm9yICJoYXZlIGhvbWUgZGlyZWN0b3JpZXMuIgoJCWVlcnJvcgoJ
CWRpZSAiSW5jb21wYXRpYmxlIFVTRSBmbGFnIHNlbGVjdGlvbiIKCWZpCgoJaWYgdXNlIGxhcmdl
LXNjYWxlICYmIHVzZSBkb21haW4tc2NhbGUgOyB0aGVuCgkJZWVycm9yCgkJZWVycm9yICJZb3Ug
aGF2ZSBib3RoIGxhcmdlLXNjYWxlIGFuZCBkb21haW4tc2NhbGUgVVNFIGZsYWdzIHNldC4iCgkJ
ZWVycm9yICJTZXQgb25seSBvbmUgb2YgdGhlbS4gIElmIG5laXRoZXIgYXJlIHNlbGVjdGVkLCB0
aGUgZGVmYXVsdCIKCQllZXJyb3IgIm9mIHNtYWxsLXNjYWxlIHdpbGwgYmUgdXNlZC4iCgkJZWVy
cm9yCgkJZGllICJJbmNvbXBhdGlibGUgVVNFIGZsYWcgc2VsZWN0aW9uIgoJZmkKCglpZiB1c2Ug
ZGVidWcgJiYgdXNlIHZlcmJvc2UgOyB0aGVuCgkJZWVycm9yCgkJZWVycm9yICIgWW91IGhhdmUg
Ym90aCBkZWJ1ZyBhbmQgdmVyYm9zZSBVU0UgZmxhZ3Mgc2V0LiIKCQllZXJyb3IgIiB2ZXJib3Nl
IGltcGxpZXMgZGVidWcgc28gaXQgaXMgdW5uZWNlc3NhcnkgdG8iCgkJZWVycm9yICIgc2V0IGJv
dGguIgoJCWVlcnJvcgoJCWVlcnJvciAiQkVXQVJFISwgVkVSQk9TRSBTSE9VTEQgTk9UIEJFIFVT
RUQgVU5MRVNTIEFCU09MVVRFTFkiCgkJZWVycm9yICJORUNFU1NBUlkuIgoJCWVlcnJvcgoJCWRp
ZSAiSW5jb21wYXRpYmxlIFVTRSBmbGFnIHNlbGVjdGlvbiIKCWZpCgoJY3JlYXRlX2RzcGFtX3Vz
ZXJncm91cAp9CgpzcmNfdW5wYWNrKCkgewoJdW5wYWNrICR7QX0KCWNkICIke1N9IgoKCUVQQVRD
SF9TVUZGSVg9InBhdGNoIgoKCWlmIHVzZSBkZWJpYW4tcGF0Y2hzZXQ7IHRoZW4KICAgICAgICAg
ICAgICAgIGlmIHVzZSBzdGF0aWM7IHRoZW4gcm0gJHtXT1JLRElSfS9wYXRjaGVzLzAyKjsgZmkK
CQlpZiBbIC1uICIke09NSVR9IiBdOyB0aGVuIGZvciBpIGluICR7T01JVH07IGRvCgkJcm0gJHtX
T1JLRElSfS9wYXRjaGVzLyRpKjsgZG9uZTsgZmkKCQlybSAke1dPUktESVJ9L3BhdGNoZXMvMTQq
CgkJZXBhdGNoICIke1dPUktESVJ9Ii9wYXRjaGVzCglmaQoKCSMgRml4IExhenkgYmluZGluZ3MK
CWFwcGVuZC1mbGFncyAkKGJpbmRub3ctZmxhZ3MpCgoJaWYgdXNlIGRlYmlhbi1wYXRjaHNldDsg
dGhlbgoJZm9yIGkgaW4gYGxzICR7V09SS0RJUn0vcGF0Y2hlcy9gOyBkbwoJCWlmIFtbICRpID0g
IjAyIiogfHwgJGkgPSAiMDMiKiB8fCAkaSA9ICIxMyIqIF1dOyB0aGVuCiAgICAgICAgCQlBVF9N
NERJUj0iJHtTfS9tNCIKCQkJZWF1dG9yZWNvbmYKCQkJZXBhdGNoICIke0ZJTEVTRElSfSIvZHNw
YW1fLS12ZXJzaW9uX291dHB1dC5wYXRjaAoJCQlicmVhawoJCWZpCglkb25lCglmaQp9CgpzcmNf
Y29tcGlsZSgpIHsKCWxvY2FsIG15Y29uZgoKCXVzZSBsYXJnZS1zY2FsZSAmJiBteWNvbmY9IiR7
bXljb25mfSAtLWVuYWJsZS1sYXJnZS1zY2FsZSIKCgl1c2UgZG9tYWluLXNjYWxlICYmIG15Y29u
Zj0iJHtteWNvbmZ9IC0tZW5hYmxlLWRvbWFpbi1zY2FsZSIgCgoJdXNlIHVzZXItaG9tZWRpcnMg
JiYgbXljb25mPSIke215Y29uZn0gLS1lbmFibGUtaG9tZWRpciIKCgl1c2UgZGVidWcgJiYgbXlj
b25mPSIke215Y29uZn0gLS1lbmFibGUtZGVidWciCgl1c2UgdmVyYm9zZSAmJiBteWNvbmY9IiR7
bXljb25mfSAtLWVuYWJsZS12ZXJib3NlLWRlYnVnIgoJdXNlIGRlYnVnLWJuciAmJiBteWNvbmY9
IiR7bXljb25mfSAtLWVuYWJsZS1ibnItZGVidWciCgoJdXNlIHdvcmxkLWV4ZWMgJiYgbXljb25m
PSIke215Y29uZn0gLS13aXRoLWRzcGFtLW1vZGU9MjUxMSIKCglpZiB1c2UgdmlydHVhbC11c2Vy
cyA7IHRoZW4KCQlpZiB1c2UgbXlzcWwgfHwgdXNlIHBvc3RncmVzIHx8IHVzZSBvcmFjbGUgOyB0
aGVuCgkJCW15Y29uZj0iJHtteWNvbmZ9IC0tZW5hYmxlLXZpcnR1YWwtdXNlcnMiCgkJZmkKCWZp
CgoJaWYgdXNlIG15c3FsIHx8IHVzZSBwb3N0Z3JlcyA7IHRoZW4KCQlteWNvbmY9IiR7bXljb25m
fSAtLWVuYWJsZS1wcmVmZXJlbmNlcy1leHRlbnNpb24iCglmaQoKCWxvY2FsIFNUT1JBR0UKCSMg
c2VsZWN0IHN0b3JhZ2UgZHJpdmVyCglpZiB1c2Ugc3FsaXRlIDsgdGhlbgoJCWlmIFsgIiRTVE9S
QUdFIiBdIDsgdGhlbiBTVE9SQUdFPSIke1NUT1JBR0V9LCIgOyBmaQoJCVNUT1JBR0U9IiR7U1RP
UkFHRX1zcWxpdGVfZHJ2IgoJZmkKCWlmIHVzZSBzcWxpdGUzIDsgdGhlbgoJCWlmIFsgIiRTVE9S
QUdFIiBdIDsgdGhlbiBTVE9SQUdFPSIke1NUT1JBR0V9LCIgOyBmaQoJCVNUT1JBR0U9IiR7U1RP
UkFHRX1zcWxpdGUzX2RydiIKCWZpCglpZiB1c2UgbXlzcWw7IHRoZW4KCQlpZiBbICIkU1RPUkFH
RSIgXSA7IHRoZW4gU1RPUkFHRT0iJHtTVE9SQUdFfSwiIDsgZmkKCQlTVE9SQUdFPSIke1NUT1JB
R0V9bXlzcWxfZHJ2IgoJCW15Y29uZj0iJHtteWNvbmZ9IC0td2l0aC1teXNxbC1pbmNsdWRlcz0v
dXNyL2luY2x1ZGUvbXlzcWwiCgkJbXljb25mPSIke215Y29uZn0gLS13aXRoLW15c3FsLWxpYnJh
cmllcz0vdXNyL2xpYi9teXNxbCIKCWZpCglpZiB1c2UgcG9zdGdyZXMgOyB0aGVuCgkJaWYgWyAi
JFNUT1JBR0UiIF0gOyB0aGVuIFNUT1JBR0U9IiR7U1RPUkFHRX0sIiA7IGZpCgkJU1RPUkFHRT0i
JHtTVE9SQUdFfXBnc3FsX2RydiIKCQlteWNvbmY9IiR7bXljb25mfSAtLXdpdGgtcGdzcWwtaW5j
bHVkZXM9L3Vzci9pbmNsdWRlL3Bvc3RncmVzcWwiCgkJbXljb25mPSIke215Y29uZn0gLS13aXRo
LXBnc3FsLWxpYnJhcmllcz0vdXNyL2xpYi9wb3N0Z3Jlc3FsIgoJZmkKCWlmIHVzZSBvcmFjbGUg
OyB0aGVuCgkJaWYgWyAiJFNUT1JBR0UiIF0gOyB0aGVuIFNUT1JBR0U9IiR7U1RPUkFHRX0sIiA7
IGZpCgkJU1RPUkFHRT0iJHtTVE9SQUdFfW9yYV9kcnYiCgkJbXljb25mPSIke215Y29uZn0gLS13
aXRoLW9yYWNsZS1ob21lPSR7T1JBQ0xFX0hPTUV9IgoKCQkjIEkgYW0gaW4gbm8gd2F5IGEgT3Jh
Y2xlIHNwZWNpYWxpc3QuIElmIHNvbWVvbmUga25vd3MKCQkjIGhvdyB0byBxdWVyeSB0aGUgdmVy
c2lvbiBvZiBPcmFjbGUsIHRoZW4gbGV0IG1lIGtub3cuCgkJaWYgKGV4cHIgJHtPUkFDTEVfSE9N
RS8qXC99IDogMTAgMT4vZGV2L251bGwgMj4mMSk7IHRoZW4KCQkJbXljb25mPSIke215Y29uZn0g
LS13aXRoLW9yYWNsZS12ZXJzaW9uPTEwIgoJCWZpCglmaQoJaWYgW1sgLXogIiR7U1RPUkFHRX0i
IF1dOyB0aGVuCgkJU1RPUkFHRT0iJHtTVE9SQUdFfWhhc2hfZHJ2IgoJZmkKCgllY29uZiAke215
Y29uZn0gLS13aXRoLXN0b3JhZ2UtZHJpdmVyPSR7U1RPUkFHRX0gXAoJCQktLXdpdGgtZHNwYW0t
aG9tZT0ke0hPTUVESVJ9IFwKCQkJLS1zeXNjb25mZGlyPSR7Q09ORkRJUn0gXAoJCQkkKHVzZV9l
bmFibGUgZGFlbW9uKSBcCgkJCSQodXNlX2VuYWJsZSBsZGFwKSBcCgkJCSQodXNlX2VuYWJsZSBj
bGFtYXYpIFwKCQkJJCh1c2VfZW5hYmxlIHN0YXRpYykgXAoJCQkkKHVzZV9lbmFibGUgc3lzbG9n
KSBcCgkJCSQodXNlX2VuYWJsZSBsb25nLXVzZXJuYW1lcykgXAoJCSAgICAgICAgLS13aXRoLWRz
cGFtLWdyb3VwPWRzcGFtIFwKCQkgICAgICAgIC0td2l0aC1kc3BhbS1ob21lLWdyb3VwPWRzcGFt
IFwKCQkJLS13aXRoLWxvZ2Rpcj0ke0xPR0RJUn0gfHwgZGllICJlY29uZiBmYWlsZWQiCgllbWFr
ZSB8fCBkaWUgImVtYWtlIGZhaWxlZCIKfQoKc3JjX2luc3RhbGwgKCkgewoJZGlyb3B0cyAtbTA3
NzAgLW8gZHNwYW0gLWcgZHNwYW0KCWRvZGlyICR7Q09ORkRJUn0KCWluc2ludG8gJHtDT05GRElS
fQoJaW5zb3B0cyAtbTY0MCAtbyBkc3BhbSAtZyBkc3BhbQoJZG9pbnMgc3JjL2RzcGFtLmNvbmYK
Cglkb3N5bSAvZXRjL21haWwvZHNwYW0gL2V0Yy9kc3BhbQoKCSMgbWFrZSBpbnN0YWxsCgltYWtl
IERFU1RESVI9IiR7RH0iIGluc3RhbGwgfHwgZGllICJtYWtlIGluc3RhbGwgZmFpbGVkIgoKCWRv
ZGlyIC91c3IvbGliL2RzcGFtCgltdiAiJHtEfSIvdXNyL2xpYi8qZHJ2KiAiJHtEfSIvdXNyL2xp
Yi9kc3BhbS8KCglkaXJvcHRzIC1tMDc1NSAtbyBkc3BhbSAtZyBkc3BhbQoJa2VlcGRpciAvdmFy
L3J1bi9kc3BhbQoKCSMgY3JlYXRlIGxvZ2RpcgoJZGlyb3B0cyAtbTA3NzAgLW8gZHNwYW0gLWcg
ZHNwYW0KCWtlZXBkaXIgJHtMT0dESVJ9CgoJI2NsZWFuIG9wdGlvbnMKCWRpcm9wdHMKCWluc29w
dHMKCglpZiB1c2UgZGFlbW9uOyB0aGVuCgkJIyBXZSB1c2Ugc29ja2V0cyBmb3IgdGhlIGRhZW1v
biBpbnN0ZWFkIG9mIHRjcCBwb3J0IDI0CgkJc2VkIC1lICdzOl4jKlwoU2VydmVyRG9tYWluU29j
a2V0UGF0aFtcdCBdXHsxLFx9XCkuKjpcMVwiL3Zhci9ydW4vZHNwYW0vZHNwYW0uc29ja1wiOmdJ
JyBcCgkJCS1lICdzOl4jKlwoU2VydmVyUElEW1x0IF1cezEsXH1cKS4qOlwxL3Zhci9ydW4vZHNw
YW0vZHNwYW0ucGlkOmdJJyBcCgkJCS1pICIke0R9LyR7Q09ORkRJUn0vZHNwYW0uY29uZiIKCgkJ
bmV3aW5pdGQgIiR7RklMRVNESVJ9L2RzcGFtLnJjIiBkc3BhbQoJZmkKCgkjIGdlbmVyYXRlIHJh
bmRvbSBwYXNzd29yZAoJbG9jYWwgUEFTU1dPUkQ9IiR7UkFORE9NfSR7UkFORE9NfSR7UkFORE9N
fSR7UkFORE9NfSIKCgkjIGRhdGFiYXNlIHJlbGF0ZWQgY29uZmlndXJhdGlvbiBhbmQgc2NyaXB0
cwoJaWYgdXNlIHNxbGl0ZTsgdGhlbgoJCWluc2ludG8gJHtDT05GRElSfQoJCW5ld2lucyBzcmMv
dG9vbHMuc3FsaXRlX2Rydi9wdXJnZS0yLnNxbCBzcWxpdGVfcHVyZ2Uuc3FsCglmaQoJaWYgdXNl
IHNxbGl0ZTM7IHRoZW4KCQlpbnNpbnRvICR7Q09ORkRJUn0KCQluZXdpbnMgc3JjL3Rvb2xzLnNx
bGl0ZV9kcnYvcHVyZ2UtMy5zcWwgc3FsaXRlM19wdXJnZS5zcWwKCWZpCglpZiB1c2UgbXlzcWw7
IHRoZW4KCQkjIFVzZSBleGlzdGluZyBjb25maWd1cmF0aW9uIGlmIHBvc3NpYmxlCgkJaWYgW1sg
LWYgIiR7Uk9PVH0ke0NPTkZESVJ9L215c3FsLmRhdGEiIF1dOyB0aGVuCgkJCURTUEFNX0RCX0RB
VEE9KCAkKHNlZCAiczpeW1x0IF0qJDojIyM6Z0kiICIke1JPT1R9JHtDT05GRElSfS9teXNxbC5k
YXRhIikgKQoJCQlmb3IgREJfREFUQV9JTkRFWCBpbiAkKHNlcSAwICQoKCR7I0RTUEFNX0RCX0RB
VEFbQF19IC0gMSkpKTsgZG8KCQkJCVtbICIke0RTUEFNX0RCX0RBVEFbJERCX0RBVEFfSU5ERVhd
fSIgPSAiIyMjIiBdXSAmJiBEU1BBTV9EQl9EQVRBWyREQl9EQVRBX0lOREVYXT0iIgoJCQlkb25l
CgkJZWxzZQoJCQlEU1BBTV9EQl9EQVRBWzBdPSIvdmFyL3J1bi9teXNxbGQvbXlzcWxkLnNvY2si
CgkJCURTUEFNX0RCX0RBVEFbMV09IiIKCQkJRFNQQU1fREJfREFUQVsyXT0iZHNwYW0iCgkJCURT
UEFNX0RCX0RBVEFbM109IiR7UEFTU1dPUkR9IgoJCQlEU1BBTV9EQl9EQVRBWzRdPSJkc3BhbSIK
CQkJRFNQQU1fREJfREFUQVs1XT0idHJ1ZSIKCQlmaQoKCQkjIE1vZGlmeSBjb25maWd1cmF0aW9u
IGFuZCBjcmVhdGUgbXlzcWwuZGF0YSBmaWxlCgkJc2VkIC1lICJzOl4jKlwoTXlTUUxTZXJ2ZXJb
XHQgXVx7MSxcfVwpLio6XDEke0RTUEFNX0RCX0RBVEFbMF19OmdJIiBcCgkJCS1lICJzOl4jKlwo
TXlTUUxQb3J0W1x0IF1cezEsXH1cKS4qOlwxJHtEU1BBTV9EQl9EQVRBWzFdfTpnSSIgXAoJCQkt
ZSAiczpeIypcKE15U1FMVXNlcltcdCBdXHsxLFx9XCkuKjpcMSR7RFNQQU1fREJfREFUQVsyXX06
Z0kiIFwKCQkJLWUgInM6XiMqXChNeVNRTFBhc3NbXHQgXVx7MSxcfVwpLio6XDEke0RTUEFNX0RC
X0RBVEFbM119OmdJIiBcCgkJCS1lICJzOl4jKlwoTXlTUUxEYltcdCBdXHsxLFx9XCkuKjpcMSR7
RFNQQU1fREJfREFUQVs0XX06Z0kiIFwKCQkJLWUgInM6XiMqXChNeVNRTENvbXByZXNzW1x0IF1c
ezEsXH1cKS4qOlwxJHtEU1BBTV9EQl9EQVRBWzVdfTpnSSIgXAoJCQktaSAiJHtEfSIvJHtDT05G
RElSfS9kc3BhbS5jb25mCgkJZm9yIERCX0RBVEFfSU5ERVggaW4gJChzZXEgMCAkKCgkeyNEU1BB
TV9EQl9EQVRBW0BdfSAtIDEpKSk7IGRvCgkJCWVjaG8gIiR7RFNQQU1fREJfREFUQVskREJfREFU
QV9JTkRFWF19IiA+PiAke0R9LyR7Q09ORkRJUn0vbXlzcWwuZGF0YQoJCWRvbmUKCgkJaW5zaW50
byAke0NPTkZESVJ9CgkJbmV3aW5zIHNyYy90b29scy5teXNxbF9kcnYvbXlzcWxfb2JqZWN0cy1z
cGFjZS5zcWwgbXlzcWxfb2JqZWN0cy1zcGFjZS5zcWwKCQluZXdpbnMgc3JjL3Rvb2xzLm15c3Fs
X2Rydi9teXNxbF9vYmplY3RzLXNwZWVkLnNxbCBteXNxbF9vYmplY3RzLXNwZWVkLnNxbAoJCW5l
d2lucyBzcmMvdG9vbHMubXlzcWxfZHJ2L215c3FsX29iamVjdHMtNC4xLnNxbCBteXNxbF9vYmpl
Y3RzLTQuMS5zcWwKCQlpZiB1c2UgdmlydHVhbC11c2VycyA7IHRoZW4KCQkJbmV3aW5zIHNyYy90
b29scy5teXNxbF9kcnYvdmlydHVhbF91c2Vycy5zcWwgbXlzcWxfdmlydHVhbF91c2Vycy5zcWwK
CQkJbmV3aW5zIHNyYy90b29scy5teXNxbF9kcnYvdmlydHVhbF91c2VyX2FsaWFzZXMuc3FsIG15
c3FsX3ZpcnR1YWxfdXNlcl9hbGlhc2VzLnNxbAoJCWZpCgkJbmV3aW5zIHNyYy90b29scy5teXNx
bF9kcnYvcHVyZ2Uuc3FsIG15c3FsX3B1cmdlLnNxbAoJCW5ld2lucyBzcmMvdG9vbHMubXlzcWxf
ZHJ2L3B1cmdlLTQuMS5zcWwgbXlzcWxfcHVyZ2UtNC4xLnNxbAoKCQlmcGVybXMgNjQwICR7Q09O
RkRJUn0vbXlzcWwuZGF0YQoJCWZvd25lcnMgcm9vdDpkc3BhbSAke0NPTkZESVJ9L215c3FsLmRh
dGEKCWZpCglpZiB1c2UgcG9zdGdyZXMgOyB0aGVuCgkJIyBVc2UgZXhpc3RpbmcgY29uZmlndXJh
dGlvbiBpZiBwb3NzaWJsZQoJCWlmIFsgLWYgJHtST09UfSR7Q09ORkRJUn0vcGdzcWwuZGF0YSBd
OyB0aGVuCgkJCURTUEFNX0RCX0RBVEE9KCAkKGNhdCAiJHtST09UfSR7Q09ORkRJUn0vcGdzcWwu
ZGF0YSIpICkKCQkJZm9yIERCX0RBVEFfSU5ERVggaW4gJChzZXEgMCAkKCgkeyNEU1BBTV9EQl9E
QVRBW0BdfSAtIDEpKSk7IGRvCgkJCQlbWyAiJHtEU1BBTV9EQl9EQVRBWyREQl9EQVRBX0lOREVY
XX0iID0gIiMjIyIgXV0gJiYgRFNQQU1fREJfREFUQVskREJfREFUQV9JTkRFWF09IiIKCQkJZG9u
ZQoJCWVsc2UKCQkJRFNQQU1fREJfREFUQVswXT0iMTI3LjAuMC4xIgoJCQlEU1BBTV9EQl9EQVRB
WzFdPSI1NDMyIgoJCQlEU1BBTV9EQl9EQVRBWzJdPSJkc3BhbSIKCQkJRFNQQU1fREJfREFUQVsz
XT0iJHtQQVNTV09SRH0iCgkJCURTUEFNX0RCX0RBVEFbNF09ImRzcGFtIgoJCWZpCgoJCSMgTW9k
aWZ5IGNvbmZpZ3VyYXRpb24gYW5kIGNyZWF0ZSBwZ3NxbC5kYXRhIGZpbGUKCQlzZWQgLWUgInM6
XiMqXChQZ1NRTFNlcnZlcltcdCBdXHsxLFx9XCkuKjpcMSR7RFNQQU1fREJfREFUQVswXX06Z0ki
IFwKCQkJLWUgInM6XiMqXChQZ1NRTFBvcnRbXHQgXVx7MSxcfVwpLio6XDEke0RTUEFNX0RCX0RB
VEFbMV19OmdJIiBcCgkJCS1lICJzOl4jKlwoUGdTUUxVc2VyW1x0IF1cezEsXH1cKS4qOlwxJHtE
U1BBTV9EQl9EQVRBWzJdfTpnSSIgXAoJCQktZSAiczpeIypcKFBnU1FMUGFzc1tcdCBdXHsxLFx9
XCkuKjpcMSR7RFNQQU1fREJfREFUQVszXX06Z0kiIFwKCQkJLWUgInM6XiMqXChQZ1NRTERiW1x0
IF1cezEsXH1cKS4qOlwxJHtEU1BBTV9EQl9EQVRBWzRdfTpnSSIgXAoJCQktZSAiczpeIypcKFBn
U1FMQ29ubmVjdGlvbkNhY2hlW1x0IF0qLlwpOlwxOmdJIiBcCgkJCS1pICR7RH0vJHtDT05GRElS
fS9kc3BhbS5jb25mCgkJZm9yIERCX0RBVEFfSU5ERVggaW4gJChzZXEgMCAkKCgkeyNEU1BBTV9E
Ql9EQVRBW0BdfSAtIDEpKSk7IGRvCgkJCWVjaG8gIiR7RFNQQU1fREJfREFUQVskREJfREFUQV9J
TkRFWF19IiA+PiAke0R9LyR7Q09ORkRJUn0vcGdzcWwuZGF0YQoJCWRvbmUKCgkJaW5zaW50byAk
e0NPTkZESVJ9CgkJbmV3aW5zIHNyYy90b29scy5wZ3NxbF9kcnYvcGdzcWxfb2JqZWN0cy5zcWwg
cGdzcWxfb2JqZWN0cy5zcWwKCQlpZiB1c2UgdmlydHVhbC11c2VycyA7IHRoZW4KCQkJbmV3aW5z
IHNyYy90b29scy5wZ3NxbF9kcnYvdmlydHVhbF91c2Vycy5zcWwgcGdzcWxfdmlydHVhbF91c2Vy
cy5zcWwKCQlmaQoJCW5ld2lucyBzcmMvdG9vbHMucGdzcWxfZHJ2L3B1cmdlLnNxbCBwZ3NxbF9w
dXJnZS5zcWwKCgkJZnBlcm1zIDY0MCAke0NPTkZESVJ9L3Bnc3FsLmRhdGEKCQlmb3duZXJzIHJv
b3Q6ZHNwYW0gJHtDT05GRElSfS9wZ3NxbC5kYXRhCglmaQoJaWYgdXNlIG9yYWNsZSA7IHRoZW4K
CQkjIFVzZSBleGlzdGluZyBjb25maWd1cmF0aW9uIGlmIHBvc3NpYmxlCgkJaWYgWyAtZiAke1JP
T1R9JHtDT05GRElSfS9vcmFjbGUuZGF0YSBdOyB0aGVuCgkJCURTUEFNX0RCX0RBVEE9KCAkKGNh
dCAiJHtST09UfSR7Q09ORkRJUn0vb3JhY2xlLmRhdGEiKSApCgkJCWZvciBEQl9EQVRBX0lOREVY
IGluICQoc2VxIDAgJCgoJHsjRFNQQU1fREJfREFUQVtAXX0gLSAxKSkpOyBkbwoJCQkJW1sgIiR7
RFNQQU1fREJfREFUQVskREJfREFUQV9JTkRFWF19IiA9ICIjIyMiIF1dICYmIERTUEFNX0RCX0RB
VEFbJERCX0RBVEFfSU5ERVhdPSIiCgkJCWRvbmUKCQllbHNlCgkJCURTUEFNX0RCX0RBVEFbMF09
IihERVNDUklQVElPTj0oQUREUkVTUz0oUFJPVE9DT0w9VENQKShIT1NUPTEyNy4wLjAuMSkoUE9S
VD0xNTIxKSkoQ09OTkVDVF9EQVRBPShTSUQ9UFJPRCkpKSIKCQkJRFNQQU1fREJfREFUQVsxXT0i
ZHNwYW0iCgkJCURTUEFNX0RCX0RBVEFbMl09IiR7UEFTU1dPUkR9IgoJCQlEU1BBTV9EQl9EQVRB
WzNdPSJkc3BhbSIKCQlmaQoKCQkjIE1vZGlmeSBjb25maWd1cmF0aW9uIGFuZCBjcmVhdGUgb3Jh
Y2xlLmRhdGEgZmlsZQoJCXNlZCAtZSAiczpeIypcKE9yYVNlcnZlcltcdCBdXHsxLFx9XCkuKjpc
MSR7RFNQQU1fREJfREFUQVswXX06Z0kiIFwKCQkJLWUgInM6XlwoT3JhVXNlcltcdCBdXHsxLFx9
XCkuKjpcMSR7RFNQQU1fREJfREFUQVsxXX06Z0kiIFwKCQkJLWUgInM6XlwoT3JhUGFzc1tcdCBd
XHsxLFx9XCkuKjpcMSR7RFNQQU1fREJfREFUQVsyXX06Z0kiIFwKCQkJLWUgInM6XlwoT3JhU2No
ZW1hW1x0IF1cezEsXH1cKS4qOlwxJHtEU1BBTV9EQl9EQVRBWzNdfTpnSSJcCgkJICAgCS1pICIk
e0R9Ii8ke0NPTkZESVJ9L2RzcGFtLmNvbmYKCQlmb3IgREJfREFUQV9JTkRFWCBpbiAkKHNlcSAw
ICQoKCR7I0RTUEFNX0RCX0RBVEFbQF19IC0gMSkpKTsgZG8KCQkJZWNobyAiJHtEU1BBTV9EQl9E
QVRBWyREQl9EQVRBX0lOREVYXX0iID4+ICIke0R9Ii8ke0NPTkZESVJ9L29yYWNsZS5kYXRhCgkJ
ZG9uZQoKCQlpbnNpbnRvICR7Q09ORkRJUn0KCQluZXdpbnMgc3JjL3Rvb2xzLm9yYV9kcnYvb3Jh
bF9vYmplY3RzLnNxbCBvcmFfb2JqZWN0cy5zcWwKCQlpZiB1c2UgdmlydHVhbC11c2VycyA7IHRo
ZW4KCQkJbmV3aW5zIHNyYy90b29scy5vcmFfZHJ2L3ZpcnR1YWxfdXNlcnMuc3FsIG9yYV92aXJ0
dWFsX3VzZXJzLnNxbAoJCWZpCgkJbmV3aW5zIHNyYy90b29scy5vcmFfZHJ2L3B1cmdlLnNxbCBv
cmFfcHVyZ2Uuc3FsCgoJCWZwZXJtcyA2NDAgJHtDT05GRElSfS9vcmFjbGUuZGF0YQoJCWZvd25l
cnMgcm9vdDpkc3BhbSAke0NPTkZESVJ9L29yYWNsZS5kYXRhCglmaQoKCXNlZCAtZSAiczpeXChQ
dXJnZS4qXCk6IyMjXDE6ZyIgXAoJCS1lICJzOl4jXChQdXJnZS4qXCk6XDE6ZyIgXAoJCS1lICJz
Ol4jIyNcKFB1cmdlLipcKTojXDE6ZyIgXAoJCS1pICIke0R9Ii8ke0NPTkZESVJ9L2RzcGFtLmNv
bmYKCgkjIGluc3RhbGxzIHRoZSBub3RpZmljYXRpb24gbWVzc2FnZXMKCSMgLT4gVGhlIGRvY3Vt
ZW50YXRpb24gaXMgd3JvbmchIFRoZSBmaWxlcyBuZWVkIHRvIGJlIGluIC4vdHh0CglpbnNpbnRv
ICR7Q09ORkRJUn0vdHh0Cglkb2lucyAiJHtTfSIvdHh0LyoudHh0CgoJIyBDcmVhdGUgdGhlIG9w
dC1pbiAvIG9wdC1vdXQgZGlyZWN0b3JpZXMKCWRpcm9wdHMgLW0wNzcwIC1vIGRzcGFtIC1nIGRz
cGFtCglkb2RpciAke0hPTUVESVJ9CglrZWVwZGlyICR7SE9NRURJUn0vb3B0LWluCglrZWVwZGly
ICR7SE9NRURJUn0vb3B0LW91dAoJZGlyb3B0cwoKCSMgbG9ncm90YXRpb24gc2NyaXB0cwoJaWYg
dXNlIGxvZ3JvdGF0ZSAmJiB1c2UgZGVidWcgOyB0aGVuCgkJaW5zaW50byAvZXRjL2xvZ3JvdGF0
ZS5kCgkJbmV3aW5zICIke0ZJTEVTRElSfS9sb2dyb3RhdGUuZHNwYW0iIGRzcGFtCglmaQoKCSMg
ZHNwYW0gY3JvbiBqb2IKCWV4ZWludG8gL2V0Yy9jcm9uLmRhaWx5Cglkb2V4ZSAiJHtGSUxFU0RJ
Un0vZHNwYW0uY3JvbiIKCgkjIGRvY3VtZW50YXRpb24KCWRvZG9jIENIQU5HRUxPRyBSRUFETUUq
IFJFTEVBU0UuTk9URVMgVVBHUkFESU5HCglkb2NpbnRvIGRvYwoJZG9kb2MgZG9jLyoudHh0Cglk
b2NpbnRvIGdlbnRvbwoJZG9kb2MgIiR7RklMRVNESVJ9L1JFQURNRS5wb3N0Zml4IiAiJHtGSUxF
U0RJUn0vUkVBRE1FLnFtYWlsIgoJZG9jaW50byBzYV90cmFpbgoJZG9kb2MgIiR7V09SS0RJUn0i
L2RzcGFtX3NhX3RyYWluZXIvKgoJZG9tYW4gbWFuL2RzcGFtKgp9Cgpwa2dfcG9zdGluc3QoKSB7
CgkjIG5lZWQgZW5ld2dyb3VwL2VuZXd1c2VyIGluIHRoaXMgZnVuY3Rpb24gZm9yIGJpbmFyeSBp
bnN0YWxsLgoJY3JlYXRlX2RzcGFtX3VzZXJncm91cAoKCWlmIHVzZSBteXNxbCB8fCB1c2UgcG9z
dGdyZXMgfHwgdXNlIG9yYWNsZTsgdGhlbgoJCWVjaG8KCQllaW5mbyAiVG8gc2V0dXAgRFNQQU0g
dG8gcnVuIG91dC1vZi10aGUtYm94IG9uIHlvdXIgc3lzdGVtIHdpdGggYSBNeVNRTCwiCgkJZWlu
Zm8gIlBvc3RncmVTUUwgb3IgT3JhY2xlIGRhdGFiYXNlLCBydW46IgoJCWVpbmZvICJlbWVyZ2Ug
LS1jb25maWcgPSR7UEZ9IgoJZmkKCglpZiB1c2UgcG9zdGdyZXMgJiYgaGFzX3ZlcnNpb24gIj5k
ZXYtZGIvcG9zdGdyZXNxbC04LjAiOyB0aGVuCgkJZWNobwoJCWVpbmZvICJCZWZvcmUgZXhlY3V0
aW5nIHRoZSBjb25maWd1cmF0aW9uIGNvbW1hbmQgbWVudGlvbmVkIGFib3ZlIHlvdSBoYXZlIgoJ
CWVpbmZvICJ0byBleGVjdXRlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoiCgkJZWluZm8gImNyZWF0
ZWxhbmcgcGxwZ3NxbCAtVSBwb3N0Z3JlcyBkc3BhbSIKCWZpCgoJaWYgdXNlIGRhZW1vbjsgdGhl
bgoJCWVjaG8KCQllaW5mbyAiSWYgeW91IHdhbnQgdG8gcnVuIERTUEFNIGluIHRoZSBuZXcgZGFl
bW9uIG1vZGUgcmVtZW1iZXIiCgkJZWluZm8gInRvIG1ha2UgdGhlIERTUEFNIGRhZW1vbiBzdGFy
dCBkdXJpbmcgYm9vdDoiCgkJZWluZm8gIiAgcmMtdXBkYXRlIGFkZCBkc3BhbSBkZWZhdWx0IgoJ
ZmkKCWlmIHVzZSBkYWVtb24gOyB0aGVuCgkJZWluZm8gIlRvIHVzZSB0aGUgRFNQQU0gZGFlbW9u
IG1vZGUsIHRoZSB1c2VkIHN0b3JhZ2UgZHJpdmVyIG11c3QgYmUgdGhyZWFkLXNhZmUuIgoJZmkK
CgllaW5mbyAiRWRpdCAvZXRjL21haWwvZHNwYW0uY29uZiB3aXRoIHlvdXIgZGVsaXZlcnkgYWdl
bnQiCgllaW5mbyAiU2VlIGh0dHA6Ly9kc3BhbXdpa2kuZXhwYXNzLmRlL0luc3RhbGxhdGlvbiBm
b3IgbW9yZSBpbmZvIgp9Cgpwa2dfY29uZmlnICgpIHsKCWxvY2FsIEFWQUlMX0JBQ0tFTkRTPSgp
Cgl1c2UgbXlzcWwgJiYgQVZBSUxfQkFDS0VORFM9KCAke0FWQUlMX0JBQ0tFTkRTWypdfSBteXNx
bCApCgl1c2UgcG9zdGdyZXMgJiYgQVZBSUxfQkFDS0VORFM9KCAke0FWQUlMX0JBQ0tFTkRTWypd
fSBwb3N0Z3JlcyApCgl1c2Ugc3FsaXRlICYmIEFWQUlMX0JBQ0tFTkRTPSggJHtBVkFJTF9CQUNL
RU5EU1sqXX0gc3FsaXRlICkKCXVzZSBzcWxpdGUzICYmIEFWQUlMX0JBQ0tFTkRTPSggJHtBVkFJ
TF9CQUNLRU5EU1sqXX0gc3FsaXRlMyApCgl1c2Ugb3JhY2xlICYmIEFWQUlMX0JBQ0tFTkRTPSgg
JHtBVkFJTF9CQUNLRU5EU1sqXX0gb3JhY2xlICkKCWxvY2FsIFVTRV9CQUNLRU5ECglyZWFkIC1w
ICJXaGljaCBiYWNrZW5kIGRvIHlvdSB3YW50IHRvIGNvbmZpZ3VyZT8gKGF2YWlsYWJsZSBiYWNr
ZW5kcyBhcmUgJHtBVkFJTF9CQUNLRU5EU1sqXX0pICIgVVNFX0JBQ0tFTkQKCWlmIFtbICIgJHtB
VkFJTF9CQUNLRU5EU1sqXX0gIiAhPSAqIiAke1VTRV9CQUNLRU5EfSAiKiBdXQoJdGhlbgoJCWVl
cnJvciAiVGhlICcke1VTRV9CQUNLRU5EfScgYmFja2VuZCBpcyBub3QgYXZhaWxhYmxlLiIKCQly
ZXR1cm4gMQoJZmkKCgljYXNlICIke1VTRV9CQUNLRU5EfSIgaW4KCgkJc3FsaXRlIHwgc3FsaXRl
MykKCQkJZWluZm8gInNxbGl0ZV9kcnYgd2lsbCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSB0aGUgbmVj
ZXNzYXJ5IGRhdGFiYXNlIgoJCQk7OwoKCQlteXNxbCkKCQkJRFNQQU1fREJfREFUQT0oICQoc2Vk
ICJzOl5bXHQgXSokOiMjIzpnSSIgIiR7Uk9PVH0ke0NPTkZESVJ9L215c3FsLmRhdGEiKSApCgkJ
CWZvciBEQl9EQVRBX0lOREVYIGluICQoc2VxIDAgJCgoJHsjRFNQQU1fREJfREFUQVtAXX0gLSAx
KSkpOyBkbwoJCQkJW1sgIiR7RFNQQU1fREJfREFUQVskREJfREFUQV9JTkRFWF19IiA9ICIjIyMi
IF1dICYmIERTUEFNX0RCX0RBVEFbJERCX0RBVEFfSU5ERVhdPSIiCgkJCWRvbmUKCQkJRFNQQU1f
TXlTUUxfVVNFUj0iJHtEU1BBTV9EQl9EQVRBWzJdfSIKCQkJRFNQQU1fTXlTUUxfUFdEPSIke0RT
UEFNX0RCX0RBVEFbM119IgoJCQlEU1BBTV9NeVNRTF9EQj0iJHtEU1BBTV9EQl9EQVRBWzRdfSIK
CgkJCWV3YXJuICJXaGVuIHByb21wdGVkIGZvciBhIHBhc3N3b3JkLCBwbGVhc2UgZW50ZXIgeW91
ciBNeVNRTCByb290IHBhc3N3b3JkIgoJCQlld2FybgoKCQkJZWluZm8gIkNyZWF0aW5nIERTUEFN
IE15U1FMIGRhdGFiYXNlIFwiJHtEU1BBTV9NeVNRTF9EQn1cIiIKCQkJL3Vzci9iaW4vbXlzcWxh
ZG1pbiAtdSByb290IC1wIGNyZWF0ZSAke0RTUEFNX015U1FMX0RCfQoKCgkJCWlmIGhhc192ZXJz
aW9uICI+PXZpcnR1YWwvbXlzcWwtNC4xIjsgdGhlbgoJCQkJL3Vzci9iaW4vbXlzcWwgLXUgcm9v
dCAtcCAke0RTUEFNX015U1FMX0RCfSA8ICR7Q09ORkRJUn0vbXlzcWxfb2JqZWN0cy00LjEuc3Fs
CgkJCWVsc2UKCQkJCWVpbmZvICJDcmVhdGluZyBEU1BBTSBNeVNRTCB0YWJsZXMgZm9yIGRhdGEg
b2JqZWN0cyIKCQkJCWVpbmZvICIgIFBsZWFzZSBzZWxlY3Qgd2hhdCBraW5kIG9mIG9iamVjdCBk
YXRhYmFzZSB5b3UgbGlrZSB0byB1c2UuIgoJCQkJZWluZm8gIiAgICBbMV0gU3BhY2Ugb3B0aW1p
emVkIGRhdGFiYXNlIgoJCQkJZWluZm8gIiAgICBbMl0gU3BlZWQgb3B0aW1pemVkIGRhdGFiYXNl
IgoJCQkJZWluZm8KCQkJCXdoaWxlIHRydWUKCQkJCWRvCgkJCQkJcmVhZCAtbiAxIC1zIC1wICIg
IFByZXNzIDEgb3IgMiBvbiB0aGUga2V5Ym9hcmQgdG8gc2VsZWN0IGRhdGFiYXNlIiBEU1BBTV9N
eVNRTF9EQl9UeXBlCgkJCQkJW1sgIiR7RFNQQU1fTXlTUUxfREJfVHlwZX0iID09ICIxIiB8fCAi
JHtEU1BBTV9NeVNRTF9EQl9UeXBlfSIgPT0gIjIiIF1dICYmIGVjaG8gJiYgYnJlYWsKCQkJCWRv
bmUKCgkJCQlpZiBbICIke0RTUEFNX015U1FMX0RCX1R5cGV9IiA9PSAiMSIgXQoJCQkJdGhlbgoJ
CQkJCS91c3IvYmluL215c3FsIC11IHJvb3QgLXAgJHtEU1BBTV9NeVNRTF9EQn0gPCAke0NPTkZE
SVJ9L215c3FsX29iamVjdHMtc3BhY2Uuc3FsCgkJCQllbHNlCgkJCQkJL3Vzci9iaW4vbXlzcWwg
LXUgcm9vdCAtcCAke0RTUEFNX015U1FMX0RCfSA8ICR7Q09ORkRJUn0vbXlzcWxfb2JqZWN0cy1z
cGVlZC5zcWwKCQkJCWZpCgkJCWZpCgoJCQlpZiB1c2UgdmlydHVhbC11c2VycyA7IHRoZW4KCQkJ
CWVpbmZvICJDcmVhdGluZyBEU1BBTSBNeVNRTCBkYXRhYmFzZSBmb3IgdmlydHVhbC11c2VycyB1
c2VycyIKCQkJCWVpbmZvICIgIFBsZWFzZSBzZWxlY3Qgd2hhdCBraW5kIG9mIHZpcnR1YWxfdWlk
cyB0YWJsZSB5b3UgbGlrZSB0byB1c2UuIgoJCQkJZWluZm8gIiAgICBbMV0gVmlydHVhbCB1c2Vy
cyBhZGRlZCBhdXRvbWF0aWNhbGx5ICh1c2UgdGhpcyBpZiB0aGlzIHNlcnZlciBpcyB0aGUgcHJp
bWFyeSBNWCkiCgkJCQllaW5mbyAiICAgIFsyXSBWaXJ0dWFsIHVzZXJzIGFkZGVkIG1hbnVhbGx5
ICh1c2UgaXQgaWYgdGhpcyBzZXJ2ZXIgaXMgYSBzZWNvbmRhcnkgTVgpIgoJCQkJZWluZm8KCQkJ
CXdoaWxlIHRydWUKCQkJCWRvCgkJCQkJcmVhZCAtbiAxIC1zIC1wICIgIFByZXNzIDEgb3IgMiBv
biB0aGUga2V5Ym9hcmQgdG8gc2VsZWN0IHRhYmxlIHR5cGUiIERTUEFNX015U1FMX0RCX1R5cGUK
CQkJCQlbWyAiJHtEU1BBTV9NeVNRTF9EQl9UeXBlfSIgPT0gIjEiIHx8ICIke0RTUEFNX015U1FM
X0RCX1R5cGV9IiA9PSAiMiIgXV0gJiYgZWNobyAmJiBicmVhawoJCQkJZG9uZQoKCQkJCWlmIFsg
IiR7RFNQQU1fTXlTUUxfREJfVHlwZX0iID09ICIxIiBdCgkJCQl0aGVuCgkJCQkJL3Vzci9iaW4v
bXlzcWwgLXUgcm9vdCAtcCAke0RTUEFNX015U1FMX0RCfSA8ICR7Q09ORkRJUn0vbXlzcWxfdmly
dHVhbF91c2Vycy5zcWwKCQkJCWVsc2UKCQkJCQkvdXNyL2Jpbi9teXNxbCAtdSByb290IC1wICR7
RFNQQU1fTXlTUUxfREJ9IDwgJHtDT05GRElSfS9teXNxbF92aXJ0dWFsX3VzZXJfYWxpYXNlcy5z
cWwKCQkJCWZpCgkJCWZpCgoJCQllaW5mbyAiQ3JlYXRpbmcgRFNQQU0gTXlTUUwgdXNlciBcIiR7
RFNQQU1fTXlTUUxfVVNFUn1cIiIKCQkJL3Vzci9iaW4vbXlzcWwgLXUgcm9vdCAtcCAtZSAiR1JB
TlQgU0VMRUNULElOU0VSVCxVUERBVEUsREVMRVRFIE9OICR7RFNQQU1fTXlTUUxfREJ9LiogVE8g
JHtEU1BBTV9NeVNRTF9VU0VSfUBsb2NhbGhvc3QgSURFTlRJRklFRCBCWSAnJHtEU1BBTV9NeVNR
TF9QV0R9JztGTFVTSCBQUklWSUxFR0VTOyIgLUQgbXlzcWwKCQkJOzsKCgkJcG9zdGdyZXMpCgkJ
CURTUEFNX0RCX0RBVEE9KCAkKHNlZCAiczpeW1x0IF0qJDojIyM6Z0kiICIke1JPT1R9JHtDT05G
RElSfS9wZ3NxbC5kYXRhIikgKQoJCQlmb3IgREJfREFUQV9JTkRFWCBpbiAkKHNlcSAwICQoKCR7
I0RTUEFNX0RCX0RBVEFbQF19IC0gMSkpKTsgZG8KCQkJCVtbICIke0RTUEFNX0RCX0RBVEFbJERC
X0RBVEFfSU5ERVhdfSIgPSAiIyMjIiBdXSAmJiBEU1BBTV9EQl9EQVRBWyREQl9EQVRBX0lOREVY
XT0iIgoJCQlkb25lCgkJCURTUEFNX1BnU1FMX1VTRVI9IiR7RFNQQU1fREJfREFUQVsyXX0iCgkJ
CURTUEFNX1BnU1FMX1BXRD0iJHtEU1BBTV9EQl9EQVRBWzNdfSIKCQkJRFNQQU1fUGdTUUxfREI9
IiR7RFNQQU1fREJfREFUQVs0XX0iCgoJCQlld2FybiAiV2hlbiBwcm9tcHRlZCBmb3IgYSBwYXNz
d29yZCwgcGxlYXNlIGVudGVyIHlvdXIgUGdTUUwgcG9zdGdyZXMgcGFzc3dvcmQiCgkJCWV3YXJu
CgoJCQllaW5mbyAiQ3JlYXRpbmcgRFNQQU0gUG9zdGdyZVNRTCBkYXRhYmFzZSBcIiR7RFNQQU1f
UGdTUUxfREJ9XCIgYW5kIHVzZXIgXCIke0RTUEFNX1BnU1FMX1VTRVJ9XCIiCgkJCS91c3IvYmlu
L3BzcWwgLWggbG9jYWxob3N0IC1kIHRlbXBsYXRlMSAtVSBwb3N0Z3JlcyAtYyAiQ1JFQVRFIFVT
RVIgJHtEU1BBTV9QZ1NRTF9VU0VSfSBXSVRIIFBBU1NXT1JEICcke0RTUEFNX1BnU1FMX1BXRH0n
IE5PQ1JFQVRFREIgTk9DUkVBVEVVU0VSOyBDUkVBVEUgREFUQUJBU0UgJHtEU1BBTV9QZ1NRTF9E
Qn07IEdSQU5UIEFMTCBQUklWSUxFR0VTIE9OIERBVEFCQVNFICR7RFNQQU1fUGdTUUxfREJ9IFRP
ICR7RFNQQU1fUGdTUUxfVVNFUn07IEdSQU5UIEFMTCBQUklWSUxFR0VTIE9OIFNDSEVNQSBwdWJs
aWMgVE8gJHtEU1BBTV9QZ1NRTF9VU0VSfTsgVVBEQVRFIHBnX2RhdGFiYXNlIFNFVCBkYXRkYmE9
KFNFTEVDVCB1c2VzeXNpZCBGUk9NIHBnX3NoYWRvdyBXSEVSRSB1c2VuYW1lPScke0RTUEFNX1Bn
U1FMX1VTRVJ9JykgV0hFUkUgZGF0bmFtZT0nJHtEU1BBTV9QZ1NRTF9EQn0nOyIKCgkJCWVpbmZv
ICJDcmVhdGluZyBEU1BBTSBQb3N0Z3JlU1FMIHRhYmxlcyIKCQkJUEdVU0VSPSR7RFNQQU1fUGdT
UUxfVVNFUn0gUEdQQVNTV09SRD0ke0RTUEFNX1BnU1FMX1BXRH0gL3Vzci9iaW4vcHNxbCAtZCAk
e0RTUEFNX1BnU1FMX0RCfSAtVSAke0RTUEFNX1BnU1FMX1VTRVJ9IC1mICR7Q09ORkRJUn0vcGdz
cWxfb2JqZWN0cy5zcWwgMT4vZGV2L251bGwgMj4mMQoKCQkJaWYgdXNlIHZpcnR1YWwtdXNlcnMg
OyB0aGVuCgkJCQllaW5mbyAiQ3JlYXRpbmcgRFNQQU0gUG9zdGdyZVNRTCBkYXRhYmFzZSBmb3Ig
dmlydHVhbC11c2VycyB1c2VycyIKCQkJCVBHVVNFUj0ke0RTUEFNX1BnU1FMX1VTRVJ9IFBHUEFT
U1dPUkQ9JHtEU1BBTV9QZ1NRTF9QV0R9IC91c3IvYmluL3BzcWwgLWQgJHtEU1BBTV9QZ1NRTF9E
Qn0gLVUgJHtEU1BBTV9QZ1NRTF9VU0VSfSAtZiAke0NPTkZESVJ9L3Bnc3FsX3ZpcnR1YWxfdXNl
cnMuc3FsIDE+L2Rldi9udWxsIDI+JjEKCQkJZmkKCQkJOzsKCgkJb3JhY2xlKQoJCQllaW5mbyAi
V2UgaGF2ZSBub3QgZW5vdWdodCBPcmFjbGUga25vd2xlZGdlIHRvIGNvbmZpZ3VyZSBPcmFjbGUi
CgkJCWVpbmZvICJhdXRvbWF0aWNhbGx5LiBJZiB5b3Uga25vdyBob3csIHBsZWFzZSBwb3N0IGEg
bWVzc2FnZSBpbiIKCQkJZWluZm8gIkdlbnRvbyBCdWd6aWxsYS4iCgkJCWVpbmZvCgkJCWVpbmZv
ICJZb3UgbmVlZCBtYW51YWxseSB0byBjcmVhdGUgdGhlIE9yYWNsZSB1c2VyIGZvciBEU1BBTSBh
bmQiCgkJCWVpbmZvICJ0aGUgbmVjZXNzYXJ5IGRhdGFiYXNlLiIKCQkJZWluZm8gIkJ1dCB0aGUg
RFNQQU0gY29uZmlndXJhdGlvbiBmaWxlIGRzcGFtLmNvbmYgYW5kIG9yYWNsZS5kYXRhIgoJCQll
aW5mbyAid2FzIGFscmVhZHkgY29uZmlndXJlZCB3aXRoIHRoZSBuZWNlc3NhcnkgaW5mb3JtYXRp
b24gdG8iCgkJCWVpbmZvICJhY2Nlc3MgdGhlIGRhdGFiYXNlLiIKCQkJZWluZm8gIlBsZWFzZSBy
ZWFkIHlvdXIgZHNwYW0uY29uZiwgb3JhY2xlLmRhdGEgYW5kIHRoZSBSRUFETUUgZm9yIgoJCQll
aW5mbyAibW9yZSBpbmZvIG9uIGhvdyB0byBzZXR1cCBEU1BBTSB3aXRoIE9yYWNsZS4iCgkJCWVp
bmZvICJvYmplY3RzIGZvciBlYWNoIHVzZXIgdXBvbiBmaXJzdCB1c2Ugb2YgRFNQQU0gYnkgdGhh
dCB1c2VyLiIKCQkJOzsKCgllc2FjCn0K
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104551</attachid>
            <date>2006-12-21 18:01 0000</date>
            <desc>dspam_logrotate patch to preserve owner, group, and permissions</desc>
            <filename>dspam_logrotate.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">LS0tIGRzcGFtX2xvZ3JvdGF0ZQkyMDA2LTAxLTEwIDA5OjAxOjQzLjAwMDAwMDAwMCAtMDYwMAor
KysgZHNwYW1fbG9ncm90YXRlCTIwMDYtMTItMDggMTE6MTA6NTIuMDAwMDAwMDAwIC0wNjAwCkBA
IC0zNiw2ICszNiwxMCBAQAogICAgIG15KCRwcmludFN0YXRzKTsKICAgICAoJGZpbGVuYW1lLCAk
Y3V0b2ZmVGltZXN0YW1wLCAkcHJpbnRTdGF0cykgPSBAXzsKIAorICAgICNwcmVzZXJ2ZSB0aW1l
c3RhbXBzIGFuZCBvd25lcnNoaXAgb2YgdGhlIGZpbGVzCisgICAgbXkgKCAkbW9kZSwgJHVpZCwg
JGdpZCApID0gKCBzdGF0KCRmaWxlbmFtZSkgKVsgMiwgNCwgNSBdOworICAgICRtb2RlID0gJG1v
ZGUgJiAwNzc3NzsKKwogICAgICMgR2VuZXJhdGUgbmFtZXMgZm9yIHRoZSB0ZW1wb3JhcnkgZmls
ZXMuCiAgICAgbXkoJHRlbXBJbnB1dEZpbGUpID0gJGZpbGVuYW1lIC4gIi5pbiI7CiAgICAgbXko
JHRlbXBPdXRwdXRGaWxlKSA9ICRmaWxlbmFtZSAuICIub3V0IjsKQEAgLTc5LDYgKzgzLDEyIEBA
CiAKICAgICAjIFJlbmFtZSBvdXIgdGVtcG9yYXJ5IG91dHB1dCBmaWxlIHRvIHRoZSBvcmlnaW5h
bCBsb2cgZmlsZSBuYW1lLgogICAgIGNsb3NlIE9VVEZJTEU7CisKKyAgICAjYXBwbHkgcHJldmlv
dXMgcGVybWlzc2lvbnMgYW5kIG93bmVyc2hpcHMgdG8gdGVtcCBmaWxlIGJlZm9yZSByZW5hbWlu
ZworCisgICAgY2htb2QgJG1vZGUsICR0ZW1wT3V0cHV0RmlsZTsKKyAgICBjaG93biAkdWlkLCAk
Z2lkLCAkdGVtcE91dHB1dEZpbGU7CisKICAgICByZW5hbWUgJHRlbXBPdXRwdXRGaWxlLCAkZmls
ZW5hbWU7CiAKICAgICAjIFJlbW92ZSBvdXIgdGVtcG9yYXJ5IGlucHV0IGZpbGUuCg==
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>104867</attachid>
            <date>2006-12-28 11:01 0000</date>
            <desc>patch.comments.txt</desc>
            <filename>patch-comments.txt</filename>
            <type>text/plain</type>
            <data encoding="base64">PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
MDFfYWxsX21hbnBhZ2UtaW4tcmlnaHQtc2VjdGlvbi5wYXRjaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpWZXJ5IG1pbm9yIGFuZCBjb3Nt
ZXRpYy4gIFNob3VsZCBiZSBzdWJtaXR0ZWQgdXBzdHJlYW0gYXMgd2VsbAoKZGViaWFuIGNoYW5n
ZWxvZyBkc3BhbSAzLjYuNC0xCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQowMl9hbGxfbGluay1keW5hbWljYWxseS5wYXRjaAkJCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpJIGRv
bid0IHRoaW5rIHRoaXMgc2hvdWxkIGJlIGFwcGxpZWQgYXQgYWxsLiAgLS1kaXNhYmxlLXN0YXRp
YwppcyB0aGUgY29ycmVjdCB3YXkgdG8gY29tcGlsZSBkc3BhbSB3aXRoIGR5bmFtaWMgbGlua3Ms
IG5vdAphIHBhdGNoIHRvIGRvIGl0LiAgVXNlIC0tZGlzYWJsZS1zdGF0aWMKCmRlYmlhbiBjaGFu
Z2xvZyBkc3BhbSAzLjYuMi0yCiogVXBkYXRlZCBsaW5rLWR5bmFtaWNhbGx5IHBhdGNoIHRvIGxp
bmsgYWxsIHRvb2xzIGR5bmFtaWNhbGx5IAp0byBsaWJkc3BhbTcKCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQowM19hbGxfY2xlYW4td2Fy
bmluZ3MucGF0Y2gKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09CmRzcGFtIENIQU5HRUxPRwpWZXJzaW9uIDMuNi42Ci0tLS0tLS0tLS0tLS0K
WzIwMDYwNTEzLjExMDBdIGpvbno6IGZpeGVkIGNvbXBpbGVyIHdhcm5pbmdzIG9uIHNxbGl0ZSBk
cml2ZXJzCnNpZ25lZC1uZXNzIHdhcm5pbmdzLCBub3RoaW5nIHNpZ25pZmljYW50CgpkZWJpYW4g
YnVncmVwb3J0OgpodHRwOi8vYnVncy5kZWJpYW4ub3JnL2NnaS1iaW4vYnVncmVwb3J0LmNnaT9i
dWc9MzY5NDI2CihhY3R1YWwgYnVnIHRleHQgYmVsb3cpCgpkZWJpYW4gY2hhbmdlbG9nIGRzcGFt
IDMuNi42LTIKKiBDbGVhbiB1cCBtaW5vciB3YXJuaW5ncyBpbiBkc3BhbS4gUGF0Y2ggZnJvbSBE
YW5pZWwgS2FobiBHaWxsbW9yCihDbG9zZXM6ICMzNjk0MjYpCgpJdHMgYSB3aXNobGlzdCEhIQoK
V2h5IGlzIG15c3FsIGJlaW5nIHBhdGNoZWQgaWYgdGhpcyBpcyBhIHNxbGl0ZSBpc3N1ZT8KSGF2
ZSBzcWxpdGUgdXNlcnMgY29tcGxhaW5pbmcgYWJvdXQgY29tcGlsZXIgZXJyb3JzPwpMb29rcyBs
aWtlIGl0cyBiZWVuIHRha2VuIGNhcmUgb2YgYWxyZWFkeSBwZXIgdXBzdHJlYW0gY2hhbmdlbG9n
LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CjA0X2FsbF9tYWtlLWRhZW1vbi1xdWlldC5wYXRjaAkJCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpMb29rcyBjb3NtZXRpYyB0byBt
ZQoKZGViaWFuIGJ1ZwpodHRwOi8vYnVncy5kZWJpYW4ub3JnL2NnaS1iaW4vYnVncmVwb3J0LmNn
aT9idWc9MzY4ODIyCgpmcm9tIGNoYW5nZWxvZyBkc3BhbSAzLjYuOC1yMQoqIFVwZGF0ZWQgcGF0
Y2ggbWFrZS1kYWVtb24tcXVpZXQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KMDVfYWxsX21ha2UtZHNwYW1fY2xlYW4tcXVpZXQucGF0
Y2gKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CmRlYmlhbiBidWcKaHR0cDovL2J1Z3MuZGViaWFuLm9yZy9jZ2ktYmluL2J1Z3JlcG9ydC5j
Z2k/YnVnPTM2ODgyMgoKZGViaWFuIGNoYW5nZWxvZyBkc3BhbSAzLjYuNi0xCiogTWFrZSBkc3Bh
bV9jbGVhbiBhIGJpdCBtb3JlIHF1aWV0LiAoQ2xvc2VzOiAjMzY4ODIyKQoKUGF0Y2ggdGhlIHNv
dXJjZSBjb2RlIGJlY2F1c2UgYW5hY3JvbiBzZW5kcyBhIG5vdGlmaWNhdGlvbiBtZXNzYWdlPwpC
ZXR0ZXIgdG8gaGF2ZSB0aGUgY3JvbiBqb2IgcmVkaXJlY3QgdGhlIG5vdGljZSB0byAvZGV2L251
bGwgaW5zdGVhZAppZiB0aGF0IGlzIGRlc2lyZWQgYmVoYXZpb3IuICBEb2Vzbid0IGRzcGFtLmNy
b24gYWxyZWFkeSBkbyB0aGF0PwoKL3Vzci9wb3J0YWdlL21haWwtZmlsdGVyL2RzcGFtL2ZpbGVz
L2RzcGFtLmNyb246Ci4uLgogICAgICAgIFtbICEgLWYgIi91c3IvYmluL2RzcGFtX2NsZWFuIiBd
XSAmJiBleGl0IDQKICAgICAgICAvdXNyL2Jpbi9kc3BhbV9jbGVhbiAtcyAtcCAtdSAxPi9kZXYv
bnVsbCAyPiYxCiAgICAgICAgZXhpdCAkPwoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CjA2X2FsbF9pbXByb3Blci1xdW90YXRpb24tZml4
LnBhdGNoCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQpJdCdzIHN0aWxsIGluIENWUy4gZWRpdHMgc3JjL3Bnc3FsLmRydi4KUG9zdGdyZXMg
YnVnLiAgTm8gbmVlZCB0byBwYXRjaCB1bmxlc3Mgb25lIGlzIHVzaW5nIApwZ3NxbC4gIFN1Ym1p
dCB1cHN0cmVhbT8KCmRlYmlhbiBidWdyZXBvcnQKaHR0cDovL2J1Z3MuZGViaWFuLm9yZy9jZ2kt
YmluL2J1Z3JlcG9ydC5jZ2k/YnVnPTM2OTE3OQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjA3X2FsbF9kZWZhdWx0LXNlcnZlci1waWRm
aWxlLnBhdGNoCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpUaGlzIHBhdGNoIGZyb20gdGhlIHNhbWUgZ3V5IHdobyBkaWQgdGhlIGxpbmst
ZHluYW1pY2FsbHkgcGF0Y2ggYW5kCmFuYWNyb24gbm90aWNlIChkc3BhbS1jbGVhbikgcGF0Y2gu
CgpkZWJpYW4gY2hhbmdlbG9nIGRzcGFtIDMuNi4yLTIKKiBXaGVuIHN0YXJ0aW5nIGFzIGRhZW1v
biBhbmQgbm8gcGlkZmlsZSB3YXMgZ2l2ZW4gdGhlIHBpZGZpbGUgaXNuJ3QKY3JlYXRlZC4gQWRk
ZWQgYSBwYXRjaCB0aGF0IGZpeGVzIHRoaXMgcHJvYmxlbQoKTG9va3MgbGlrZSBnZW50b28gcGF0
Y2ggaXMgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUgZGViaWFuIHBhdGNoLgkKCklzIHRoaXMgc3Rp
bGwgYW4gaXNzdWUgd2l0aCAzLjYuOD8gIHBpZGZpbGUgaXMgc3BlY2lmaWVkIGluIGRzcGFtLmNv
bmYuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KMDhfYWxsX3ZpcnVzLW5vdGlmaWNhdGlvbnMucGF0Y2gKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRlYmlhbiBidWcgaHR0cDov
L2J1Z3MuZGViaWFuLm9yZy9jZ2ktYmluL2J1Z3JlcG9ydC5jZ2k/YnVnPTM2OTQzNAoKZGViaWFu
IGNoYW5nZWxvZyBkc3BhbSAzLjYuNi0yCiogQWRkIGEgcGF0Y2ggdGhhdCBhZGRzIGEgdmlydXMg
bm90aWZpY2F0aW9uIHRvIHRoZSBsb2cuIFBhdGNoIGZyb20KSnVsaWVuIFZhbHJvZiAoQ2xvc2Vz
OiAjMzY5NDM0KQoKZm91bmQgcmVmZXJlbmNlIGhlcmU6Cmh0dHA6Ly93d3cuYXJjaGl2ZXNhdC5j
b20vZHNwYW1fZGV2L3RocmVhZDEzMzY0MDkuaHRtCmh0dHA6Ly93d3cuYXJjaGl2ZXNhdC5jb20v
ZHNwYW1fZGV2L3RocmVhZDE3MTIxMjUuaHRtCgpkc3BhbSBDSEFOR0VMT0c6ClsyMDA2MDQxOC4x
NDM1XSBqb256OiBmaXggZm9yIHNlZ2ZhdWx0IG9uIGNsYW1hdiBjb25uZWN0IGVycm9yCmZpeGVk
IGEgYnVnIHdoZXJlIGNlcnRhaW4gcHJvYmxlbXMgZXN0YWJsaXNoaW5nIGNvbm5lY3Rpdml0eSB0
byBjbGFtYXYKY2FuIHNlZ2ZhdWx0IGRzcGFtCgpbMjAwNjA0MTIuMDkwMF0gam9uejogZml4IGZv
ciBzZWdmYXVsdCBvbiBlbXB0eSB1c2VybmFtZQpmaXhlZCBhIGJ1ZyB3aGVyZSBhIE5VTEwgdXNl
cm5hbWUgY2FuIHNuZWFrIGluIGFuZCBjYXVzZSBhIHNlZ2ZhdWx0IG9uCnN0cmR1cAoKWzIwMDYw
MzMxLjA4MDBdIGpvbno6IGZpeCBmb3IgQ2xhbUFWIGFwcGxpZWQgcGF0Y2ggdG8gZml4IGNsYW1h
diBpc3N1ZXMKCkxvb2tzIGxpa2UgYW5vdGhlciBjb3NtZXRpYyB0aGluZywgYWRkaW5nIHZpcnVz
IG5vdGlmaWNhdGlvbnMgdG8KbG9nLiAgSSB1c2UgYW1hdmlzIGZvciB2aXJ1cyBzY2FubmluZyBz
byBJIGdldCBlbWFpbCBub3RpZmljYXRpb24KdmlhIGFtYXZpcy4KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjA5X2FsbF9lbmFibGUtZG9t
YWluLXF1YXJhbnRpbmUucGF0Y2gKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Cmxvb2tzIGxpa2UgaXRzIGZvciBjeXJ1cyArIGFkZHJlc3Nl
ZCBtYWlscwoKZGViaWFuIGJ1Z3JlcG9ydCBkc2FwbSAzLjYuNi0yCmh0dHA6Ly9idWdzLmRlYmlh
bi5vcmcvY2dpLWJpbi9idWdyZXBvcnQuY2dpP2J1Zz0zNjk0MzIKCmRlYmlhbiBjaGFuZ2Vsb2cg
ZHNwYW0gMy42LjYtMgoqIFRoZSBRdWFyYW50YWluZU1haWxib3ggb3B0aW9uIGRvZXMgbm90IHdv
cmsgcHJvcGVybHkgaWYgdGhlCnVzZXIgaXMgZG9tYWluIHF1YWxpZmllZC4gQWRkZWQgcGF0Y2gg
ZnJvbSBEYW5pZWwgS2FobiBHaWxsbW9yLgooQ2xvc2VzOiAjMzY5NDMyKQoKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjEwX2FsbF91cGRh
dGUtZHNwYW0uY29uZi5wYXRjaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KZGViaWFuIGNoYW5nZWxvZyBkc3BhbSAzLjYuMi0yCiogVXBk
YXRlZCB0aGUgZHNwYW0uY29uZiBhbmQgVHJ1c3QgdXNlciBkc3BhbS4gKE90aGVyd2lzZSBpdCBp
c24ndApwb3NzaWJsZSB0byB0cmFpbiBtZXNzYWdlcyBpbiB0aGUgd2ViIGludGVyZmFjZSkKCmRl
YmlhbiBjaGFuZ2Vsb2cgZHNwYW0gMy42LjgtMwpVcGRhdGUgdXBkYXRlLWRzcGFtLmNvbmYgU2Vy
dmVyUElEIHBhcmFtZXRlciwgcGlkZmlsZSBpcyBub3cgaW4KL3Zhci9ydW4vZHNwYW0uIChOb3Qg
aW4gZ2VudG9vIHBhdGNoKQoKR2VudG9vIHZlcnNpb24gb2YgdGhpcyBwYXRjaCBjaGFuZ2VzIGRz
cGFtLmNvbmYgZmlsZSB2YWx1ZSBvZgovdXNyL2xpYi9zdG9yYWdlZHJpdmVyIHRvIC91c3IvbGli
L2RzcGFtL3N0b3JhZ2Vkcml2ZXIgYW5kIGFkZHMKZHNwYW0gYW5kIGFwYWNoZSB0byAiVHJ1c3Qi
CgpVc2UgLS1saWJkaXI9L3Vzci9saWIvZHNwYW0gYW5kIHJlbW92ZSB0aGF0IHNlY3Rpb24uICAi
LS1saWJkaXI9IiBhbHNvCmVsaW1pbmF0ZXMgdGhlIG5lZWQgZm9yIHRoZSBzZWN0aW9uIGluIHRo
ZSBlYnVpbGQ6CgogIGRvZGlyIC91c3IvbGliL2RzcGFtCiAgbXYgIiR7RH0iL3Vzci9saWIvKmRy
diogIiR7RH0iL3Vzci9saWIvZHNwYW0vCgpkc3BhbSBhbmQgYXBhY2hlIHVzZXJzIHNob3VsZCBi
ZSBhZGRlZCB3aXRoIGRzcGFtLXdlYiBlYnVpbGQgc2luY2UKdGhpcyBpcyBhIHdlYnVpIHJlbGF0
ZWQgaXNzdWUuICBNYXkgYmUgd2lzZSB0byB1c2Ugc2VkIGluIGNhc2Ugb2YgZHNwYW0uY29uZiBm
aWxlIGNoYW5nZXMgaW4gZnV0dXJlLgoJCk92ZXJhbGwsIHRoaXMgaXNuJ3QgY3JpdGljYWwgYXMg
ZmFyIGFzIHRoZSBTdG9yYWdlRHJpdmVyIHBhcmFtZXRlcgppcyBjb25jZXJuZWQgdW5sZXNzIHR3
byBvciBtb3JlIGJhY2tlbmRzIGFyZSBzcGVjaWZpZWQgaW4gY29uZmlndXJlCm9wdGlvbnMvdXNl
IGZsYWdzLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CjExX2FsbF9maXgtbmF2LXBlcmZvcm1hbmNlLnBhdGNoCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpGaW5lLCBjaGFuZ2Vz
IHlvdXJkb21haW4gdG8gJExPQ0FMRE9NQUlOJCBpbiBjZ2kuCm1pbm9yIGFuZCBjb3NtZXRpYwoK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CjEyX2FsbF9sb2dyb3RhdGUtcHJlc2VydmUtc3RhdGUucGF0Y2gKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CldvcmtzIGZpbmUuICBVcHN0
cmVhbSBtYXkgc3VwcGx5IGRpZmZlcmVudCBmaXggaW4gZnV0dXJlLgpXaHkgZG9uJ3QgeW91IHN1
Ym1pdCB5b3VyIHNvbHV0aW9uPwoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CjEzX2FsbF90eHQtY29uZmRpci5wYXRjaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KTW92ZXMgdHh0
LyB0byBjb25mZGlyIGFzIHdlbGwgYXMgaG9tZWRpci4gIEVkaXRzIGJvdGggZHNwYW0uYyAKYW5k
IHNyYy9NYWtlZmlsZS5hbQoKZWJ1aWxkcyBjaGFuZ2VkIGZyb20gJEhPTUVESVIvdHh0IGluIGRz
cGFtIDMuNC1yYzMgdG8gJENPTkZESVIvdHh0IAppbiBkc3BhbS0zLjYuMAoKV2h5PyAgRm9yIExp
bnV4IEZpbGVzeXN0ZW0gSGllcmNoeSBjb21wbGlhbmNlPyAgSXQgd29ya3MgaW4gCmRzcGFtaG9t
ZS90eHQsIHNvIHdoeSBwYXRjaCB0byBtb3ZlIGl0IGFuZCBtYWtlIGl0IGRpZmZlciBmcm9tCnVw
c3RyZWFtL3NvdXJjZT8gIEkgZG9uJ3Qgc2VlIHRoZSBuZWVkIHRvIHBhdGNoIHRvIG1vdmUgaXQg
aWYKaXQgYWxyZWFkeSB3b3JrcyBpbiB0aGUgb3JpZ2luYWwgbG9jYXRpb24uCgpBbHNvLCB0aGUg
ZWJ1aWxkIGhhcyBhIHN0YXRlbWVudDoKIlRoZSBkb2N1bWVudGF0aW9uIGlzIHdyb25nISBUaGUg
ZmlsZXMgbmVlZCB0byBiZSBpbiAuL3R4dAoKaW4gUkVBRE1FOgpUaGVzZSBub3RpZmljYXRpb25z
IGNhbiBiZSBhY3RpdmF0ZWQgYnkgY29weWluZyB0aGUgdHh0LyBkaXJlY3RvcnkKZnJvbSB0aGUg
ZGlzdHJpYnV0aW9uIGludG8gRFNQQU0ncyBob21lIChieSBkZWZhdWx0IC91c3IvbG9jYWwvdmFy
L2RzcGFtKS4iCgpjb3B5IHRoZSB0eHQvIGRpciB0byBIT01FRElSIGlzbid0IHdyb25nLCB1bmxl
c3Mgb25lIGFwcGxpZXMgdGhpcwpwYXRjaC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoxNF9hbGxfYXV0b2RldGVjdC1jb25mLnBhdGNo
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpFZGl0cyBjb25maWd1cmUuYWMgIERvZXNuJ3QgcmVzdG9yZSBkZWZhdWx0IGJlaGF2aW9yIGFu
ZCBhZGQgcXVvdGVzIAphbmQgb3RoZXIgY29uZmlnIG9wdGlvbnMgdGhhdCB3ZXJlIE5PVCBvcmln
aW5hbGx5IHByZXNlbnQgaWU6CgonYnVpbGRfYWxpYXM9aTY4Ni1wYy1saW51eC1nbnUnICdob3N0
X2FsaWFzPWk2ODYtcGMtbGludXgtZ251JwonQ0ZMQUdTPS1tYXJjaD1hdGhsb24teHAgLU8yIC1t
c3NlMiAtcGlwZSAtV2wsLXosbm93JwonQ1hYRkxBR1M9LW1hcmNoPWF0aGxvbi14cCAtTzIgLW1z
c2UyIC1waXBlIC1XbCwteixub3cnCgpDaGFuZ2VzIGNvbmZpZ3VyZS5hYzoKLUFDX0RFRklORV9V
TlFVT1RFRChDT05GSUdVUkVfQVJHUywgWyIkQ09ORklHVVJFX0FSR1MiXSwKK0FDX0RFRklORV9V
TlFVT1RFRChDT05GSUdVUkVfQVJHUyxbIiRhY19jb25maWd1cmVfYXJncyJdLAoKVGhpcyBwYXRj
aCBpcyBub3QgcmVxdWlyZWQgaWYgcGF0Y2hlcyAwMiwgMDMsIGFuZCAxMyBhcmVuJ3QgdXNlZCwK
d2hpY2ggYXJlIHF1ZXN0aW9uYWJsZSBwYXRjaGVzIGF0IGJlc3QuICBUaG9zZSBwYXRjaGVzIHJl
cXVpcmUgCmVhdXRvcmVjb25mIGluIHRoZSBlYnVpbGQsIHdoaWNoIHRoZW4gY29ycnVwdHMgdGhl
IG91dHB1dCBvZiB0aGUgCmNvbW1hbmQgImRzcGFtIC0tdmVyc2lvbi4KCkkgdHJhY2tlZCB0aGlz
IGJlaGF2aW9yIGRvd24gdG8gYXV0b2NvbmYtMi42MCBhbmQgc3VibWl0dGVkIGEgYnVnCnJlcG9y
dCBmb3IgYXV0b2NvbmYtMi42MC4gYnVnIDE1OTI5NgoKU28sIGluIHN1bW1hcnk6CgpOTyA9IDAy
LCAwMywgMDUsIDEwKiwgMTMsIDE0CllFUz0gMDEsIDA0LCAwNioqLCAwNywgMDgsIDA5LCAxMSwg
MTIKCiogMTAgLSBkc3BhbSwgYXBhY2hlIHVzZXJzIHNob3VsZCBiZSBhZGRlZCB0byAiVHJ1c3Qi
CglpbiBkc3BhbS5jb25mIHdpdGggdGhlIGRzcGFtLXdlYiBlYnVpbGQuICBUaGUKCVN0b3JhZ2VE
cml2ZXIgcG9ydGlvbiBjYW4gYmUgcmVtb3ZlZCBhbmQgcmVwbGFjZWQKCXdpdGggIi0tbGliZGly
PS91c3IvbGliL2RzcGFtIiBjb25maWd1cmUgb3B0aW9uLgoqKiAwNiAtIHBhdGNoIGZvciAiaWYg
dXNlIHBvc3RncmVzIgo=
</data>        

          </attachment>
    </bug>

</bugzilla>