From rionda@utenti.gufi.org  Thu Dec 23 07:43:44 2004
Return-Path: <rionda@utenti.gufi.org>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id D074116A4CE
	for <FreeBSD-gnats-submit@freebsd.org>; Thu, 23 Dec 2004 07:43:44 +0000 (GMT)
Received: from relay.gufi.org (civetta.gufi.org [193.27.203.173])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 493FC43D5A
	for <FreeBSD-gnats-submit@freebsd.org>; Thu, 23 Dec 2004 07:43:43 +0000 (GMT)
	(envelope-from rionda@utenti.gufi.org)
Received: from utenti.gufi.org (utenti.gufi.org [193.27.203.174])
	by relay.gufi.org (Postfix) with ESMTP id 4B55C2102C
	for <FreeBSD-gnats-submit@freebsd.org>; Thu, 23 Dec 2004 08:43:42 +0100 (CET)
Received: (from rionda@localhost)
	by utenti.gufi.org (8.12.11/8.12.11/Submit) id iBN7hfEa084858;
	Thu, 23 Dec 2004 08:43:41 +0100 (CET)
	(envelope-from rionda)
Message-Id: <200412230743.iBN7hfEa084858@utenti.gufi.org>
Date: Thu, 23 Dec 2004 08:43:41 +0100 (CET)
From: Matteo Riondato <rionda@gufi.org>
Reply-To: Matteo Riondato <rionda@gufi.org>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: [patch] syntax mistakes and obscurity in firewall chapter
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         75422
>Category:       docs
>Synopsis:       [patch] syntax mistakes and obscurity in firewall chapter
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    ceri
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          doc-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Dec 23 07:50:21 GMT 2004
>Closed-Date:    Sat Jan 01 13:19:21 GMT 2005
>Last-Modified:  Sat Jan 01 13:19:21 GMT 2005
>Originator:     Matteo Riondato
>Release:        FreeBSD 6.0-CURRENT i386
>Organization:
GUFI
>Environment:
FreeBSD kaiser.sig11.org 6.0-CURRENT FreeBSD 6.0-CURRENT #1: Fri Dec 10 15:41:10 CET 2004     root@kaiser.sig11.org:/usr/obj/usr/src/sys/KAISER  i386

	
>Description:
	Handbook Firewall chapter is a bit confused and obscure. There are many syntax mistakes (such as "it's" instead of "its")
>How-To-Repeat:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/firewalls.html
>Fix:

--- chapter.sgml.orig   Wed Dec 22 19:38:28 2004
+++ chapter.sgml        Wed Dec 22 21:18:52 2004
@@ -114,7 +114,7 @@
     <para>There are two basic ways to create firewall rulesets:
       <quote>inclusive</quote> or <quote>exclusive</quote>.  An
       exclusive firewall allows all traffic through except for the
-      traffic matching the ruleset.  An inclusive firewall does the
+      traffic matching the rule set.  An inclusive firewall does the
       reverse.  It only allows traffic matching the rules through and
       blocks everything else.</para>
 
@@ -137,18 +137,18 @@
   <sect1 id="firewalls-apps">
     <title>Firewall Software Applications</title>
 
-    <para>&os; has three different firewall software products built into
-      the base system. They are IPFILTER (also known as IPF),
-      IPFIREWALL (also known as IPFW) and PF (OpenBSD's PacketFilter).  IPFIREWALL has the built
-      in DUMMYNET traffic shaper facilities for controlling bandwidth
-      usage. IPFILTER does not have a built in traffic shaper facility
-      for controlling bandwidth usage, but the ALTQ port application
-      can be used to accomplish the same function.  The DUMMYNET
-      feature and <acronym>ALTQ</acronym> is generally useful only to
-      large ISPs or commercial users.  IPF, IPFW and PF use rules to
-      control the access of packets to and from your system, although
-      they go about it different ways and have different rule
-      syntaxes.</para>
+    <para>&os; has three different firewall software products built
+      into the base system. They are IPFILTER (also known as IPF),
+      IPFIREWALL (also known as IPFW) and PF (OpenBSD's PacketFilter).
+      IPFIREWALL has the built in DUMMYNET traffic shaper facilities
+      for controlling bandwidth usage. IPFILTER does not have a built
+      in traffic shaper facility for controlling bandwidth usage, but
+      the ALTQ framework can be used to accomplish the same
+      function.  The DUMMYNET feature and <acronym>ALTQ</acronym> is
+      generally useful only to large ISPs or commercial users.  IPF,
+      IPFW and PF use rules to control the access of packets to and
+      from your system, although they go about it different ways and
+      have different rule syntaxes.</para>
 
     <para>The IPFW sample rule set (found in
       <filename>/etc/rc.firewall</filename>) delivered in the basic
@@ -197,9 +197,9 @@
       known as <acronym>PF</acronym> was ported to &os;&nbsp;5.3.
       <acronym>PF</acronym> is a complete, fully featured firewall
       that contains <acronym>ALTQ</acronym> for bandwidth usage
-      management in a way similar to the dummynet provides in
+      management in a way similar to what DUMMYNET provides for
       <acronym>IPFW</acronym>.  The OpenBSD project does an
-      outstanding job of maintaining the PF users' guide that it will
+      outstanding job of maintaining the PF user's guide that it will
       not be made part of this handbook firewall section as that would
       just be duplicated effort.</para>
 
@@ -223,9 +223,9 @@
     <sect2>
       <title>Enabling PF</title>
       <para>PF is included in the basic &os; install for versions newer than
-        5.3 as a separate run time loadable module. PF will dynamically load
-               its kernel loadable module when the rc.conf statement
-        <literal>pf_enable="YES"</literal> is used. The
+        5.3 as a separate run time loadable module. The system will
+        dynamically load PF kernel loadable module when the rc.conf
+        statement <literal>pf_enable="YES"</literal> is used. The
         loadable module was created with &man.pflog.4; logging
         enabled.</para>
     </sect2>
@@ -256,7 +256,7 @@
       <para><literal>device pfsync</literal> enables the optional
         &man.pfsync.4; pseudo network device that is used to monitor
         <quote>state changes</quote>. As this is not part of the loadable
-        module one has to build a custom kernel to use it.</para>
+        module a custom kernel is needed to use it.</para>
 
       <para>These settings will take affect only after you have built and
                 installed a kernel with them set.</para>
@@ -288,11 +288,10 @@
     <title>The IPFILTER (IPF) Firewall</title>
 
     <para>The author of IPFILTER is Darren Reed. IPFILTER is not
-      operating system dependent. IPFILTER is a open source
-      application and has been ported to &os;, NetBSD, OpenBSD, SunOS,
-      HP/UX, and Solaris operating systems. IPFILTER is actively being
-      supported and maintained, with updated versions being released
-      regularly.</para>
+      operating system dependent: is a open source application and has
+      been ported to &os;, NetBSD, OpenBSD, SunOS, HP/UX, and Solaris
+      operating systems. IPFILTER is actively being supported and
+      maintained, with updated versions being released regularly.</para>
 
     <para>IPFILTER is based on a kernel-side firewall and
       <acronym>NAT</acronym> mechanism that can be controlled and
@@ -326,10 +325,10 @@
       and also control the services which can originate from the
       public Internet accessing your private network. Everything else
       is blocked and logged by default design. Inclusive firewalls are
-      much, much more secure than exclusive firewall rule sets and is
-      the only rule set type covered here in.</para>
+      much, much more secure than exclusive ones and only this rule
+      set type is covered here.</para>
 
-    <para>For detailed explanation of the legacy rules processing
+    <para>For a detailed explanation of the legacy rules processing
       method see: <ulink
       url="http://www.obfuscation.org/ipf/ipf-howto.html#TOC_1"></ulink>
       and <ulink
@@ -340,16 +339,16 @@
       url="http://www.phildev.net/ipf/index.html"></ulink>.</para>
 
     <sect2>
-      <title>Enabling IPF</title>
+      <title>Enabling IPF</title> 
       <para>IPF is included in the basic &os; install as a separate
-        run time loadable module. IPF will dynamically load its kernel
-        loadable module when the rc.conf statement <literal>
-        ipfilter_enable="YES"</literal> is used. The loadable
-        module was created with logging enabled and the <literal>default
-        pass all</literal> options. You do not need to compile IPF into
-        the &os; kernel just to change the default to <literal>block all
-        </literal>, you can do that by just coding a block all rule at
-        the end of your rule set.</para>
+        run time loadable module. The system will dynamically load IPF
+        kernel loadable module when the rc.conf statement <literal>
+        ipfilter_enable="YES"</literal> is used. The loadable module
+        was created with logging enabled and the <literal>default pass
+        all</literal> option. You do not need to compile IPF into the
+        &os; kernel just to change the default to <literal>block all
+        </literal>, you can do that by just coding a <literal>block
+        all</literal> rule at the end of your rule set.</para> 
     </sect2>
 
     <sect2>
@@ -369,8 +368,8 @@
 options IPFILTER_LOG
 options IPFILTER_DEFAULT_BLOCK</programlisting>
 
-      <para><literal>options IPFILTER</literal> tells the compile
-        to include IPFILTER as part of its core kernel.</para>
+      <para><literal>options IPFILTER</literal> enables support for
+      the <quote>IPFILTER</quote> firewall.</para>
 
       <para><literal>options IPFILTER_LOG</literal> enables the
         option to have IPF log traffic by writing to the ipl packet
@@ -416,15 +415,16 @@
 
      <programlisting><command>ipf -Fa -f /etc/ipf.rules</command></programlisting>
 
-     <para><option>-Fa</option> means flush all internal rules tables.</para>
-     <para><option>-f</option> means this is the file to read for the rules to load.</para>
+     <para><option>-Fa</option> means "flush all internal rules tables".</para>
+     <para><option>-f</option> means "this is the file to read for the
+     rules to load".</para>
 
-     <para>This gives you the ability to make changes to their custom
-       rules file, run the above IPF command thus updating the running
+     <para>This gives you the ability to make changes to a custom
+       rules file. Run the above IPF command thus updating the running
        firewall with a fresh copy of all the rules without having to
-       reboot the system. This method is very convenient for testing new
-       rules as the procedure can be executed as many times as needed.
-       </para>
+       reboot the system. This method is very convenient for testing
+       new rules as the procedure can be executed as many times as
+       needed.  </para>
      <para>See the &man.ipf.8; manual page for details on the other flags
        available with this command.</para>
@@ -433,7 +433,7 @@
        standard text file. It will not accept a rules file written as a
        script with symbolic substitution.</para>
 
-     <para>There is a way to build IPF rules that utilities the power of
+     <para>There is a way to build IPF rules that use the power of
        script symbolic substitution.  For more information, see <xref
        linkend="firewalls-ipfw-rules-script">.</para>
      </sect2>
@@ -557,7 +557,7 @@
      <sect2>
        <title>IPMON Logging</title>
 
-       <para>Syslogd uses its own special method for segregation of log
+       <para>Syslogd uses its own special method for aggregation of log
          data. It uses special grouping called <quote>facility</quote>
          and <quote>level.</quote> IPMON in <option>-Ds</option> mode uses Local0 as the
          <quote>facility</quote> name. All IPMON logged data goes to
@@ -575,8 +575,9 @@
 
        <programlisting><command>touch /var/log/ipfilter.log</command></programlisting>
 
-       <para>The syslog function is controlled by definition statements
-         in the <filename>/etc/syslog.conf</filename> file. The <filename>syslog.conf</filename> file offers
+       <para>The syslog function is controlled by definition
+         statements in the <filename>/etc/syslog.conf</filename>
+         file. The <filename>syslog.conf</filename> file offers
          considerable flexibility in how syslog will deal with system
          messages issued by software applications like IPF.</para>
 
@@ -585,16 +586,18 @@
 
        <programlisting>Local0.* /var/log/ipfilter.log</programlisting>
 
-       <para>The <literal>Local0.*</literal> means to write all the logged messages to the
-         coded file location.</para>
+       <para>The <literal>Local0.*</literal> means to write all the
+         logged messages to the coded file location.</para>
 
-       <para>To activate the changes to <filename>/etc/syslog.conf
-         </filename> you can reboot or bump the syslog task into
-         re-reading <filename>/etc/syslog.conf</filename> by <command>
-         kill -HUP &lt;pid&gt;</command>. You get the pid (i.e. process
-         number) by listing the tasks with the <command>ps -ax</command>
-         command. Find syslog in the display and the pid is the number
-         in the left column.</para>
+       <para>To activate the changes made to
+         <filename>/etc/syslog.conf </filename> you can reboot or bump
+         the syslog task into re-reading
+         <filename>/etc/syslog.conf</filename> by
+         <command>/etc/rc.d/syslogd restart</command> or <command>kill
+         -HUP <literal>pid</literal></command> on &os; 4.X systems. You
+         get the pid (i.e. process number) by listing the tasks with
+         the <command>ps -ax</command> command. Find syslog in the
+         display and the pid is the number in the left column.</para>
 
        <para>Do not forget to change <filename>/etc/newsyslog.conf
          </filename> to rotate the new log you just created above.
@@ -643,7 +646,7 @@
          </listitem>
 
          <listitem>
-           <para>The addresses. This is actually three fields: the
+           <para>The addresses. This is actuactually three fields: the
              source address and port (separated by a comma), the ->
              symbol, and the destination address and port.
              209.53.17.22,80 -> 198.73.220.17,1722.</para>
@@ -703,7 +706,7 @@
 <programlisting>############# Start of IPF rules script ########################
 
 oif="dc0"            # name of the outbound interface
-odns="192.0.2.11"    # ISP's dns server IP address Symbolic&gt;
+odns="192.0.2.11"    # ISP's DNS server IP address
 myip="192.0.2.7"     # My Static IP address from ISP
 ks="keep state"
 fks="flags S keep state"
@@ -716,7 +719,7 @@
 # after the EOF line to work correctly.
 /sbin/ipf -Fa -f - &lt;&lt; EOF
 
-# Allow out access to my ISP's Domain name server.
+# Allow out access to my ISP's Domain Name server.
 pass out quick on &dollar;oif proto tcp from any to &dollar;odns port = 53 &dollar;fks
 pass out quick on &dollar;oif proto udp from any to &dollar;odns port = 53 &dollar;ks
 
@@ -728,10 +731,11 @@
 EOF
 ################## End of IPF rules script ########################</programlisting>
 
-       <para>That is all there is to it. The rules are not important in
-         this example, how the Symbolic substitution field are populated
-         and used are. If the above example was in <filename>/etc/ipf.rules.script</filename>
-         file, you could reload these rules by entering this on the command
+       <para>That is all there is to it. The rules are not important
+         in this example, how the Symbolic substitution field are
+         populated and used are. If the above example was in
+         <filename>/etc/ipf.rules.script</filename> file, you could
+         reload these rules by entering the following on the command
          line:</para>
 
        <programlisting><command>sh /etc/ipf.rules.script</command>
@@ -761,7 +765,7 @@
 
        <programlisting><command>chmod 700 /usr/local/etc/rc.d/ipf.loadrules.sh</command></programlisting>
 
-       <para>Now when you system boots your IPF rules will be loaded
+       <para>Now when your system boots, your IPF rules will be loaded
          using the script.</para>
 
      </sect2>
@@ -774,7 +778,7 @@
          session conversation. The firewall rule set processes the
          packet 2 times, once on its arrival from the public Internet
          host and again as it leaves for its return trip back to the
-         public Internet host. Each tcp/ip service (i.e. telnet, www,
+         public Internet host. Each TCP/IP service (i.e. telnet, www,
          mail, etc.) is predefined by its protocol, source and
          destination IP address, or the source and destination port
          number. This is the basic selection criteria used to create
@@ -814,9 +818,9 @@
          rule wins</quote> logic. For the complete legacy rule syntax
          description see the &man.ipf.8; manual page.</para>
 
-       <para><literal>#</literal> is used to mark the start of a comment and may appear at
-         the end of a rule line or on its own lines. Blank lines are
-         ignored.</para>
+       <para><literal>#</literal> is used to mark the start of a
+         comment and may appear at the end of a rule line or on its
+         own lines. Blank lines are ignored.</para>
 
        <para>Rules contain keywords, These keywords have to be coded in
          a specific order from left to right on the line. Keywords are
@@ -859,8 +863,9 @@
            <title>ACTION</title>
 
            <para>The action indicates what to do with the packet if it
-             matches the rest of the filter rule. Each rule <emphasis>must</emphasis> have a
-             action. The following actions are recognized:</para>
+             matches the rest of the filter rule. Each rule
+             <emphasis>must</emphasis> have a action. The following
+             actions are recognized:</para>
 
            <para>block indicates that the packet should be dropped if
              the selection parameters match the packet.</para>
@@ -877,11 +882,11 @@
              other has to be coded or the rule will not pass syntax
              check.</para>
 
-           <para>in means this rule is being applied against an inbound
+           <para>"in" means this rule is being applied against an inbound
              packet which has just been received on the interface
              facing the public Internet.</para>
 
-           <para>out means this rule is being applied against an
+           <para>"out" means this rule is being applied against an
              outbound packet destined for the interface facing the public
              Internet.</para>
          </sect3>
@@ -893,18 +898,18 @@
                </para>
            </note>
 
-           <para>log indicates that the packet header will be written to
+           <para>"log" indicates that the packet header will be written to
              the ipl log (as described in the LOGGING section below) if
              the selection parameters match the packet.</para>
 
-           <para>quick indicates that if the selection parameters match
+           <para>"quick" indicates that if the selection parameters match
              the packet, this rule will be the last rule checked,
              allowing a "short-circuit" path to avoid processing any
              following rules for this packet. This option is a mandatory
              requirement for the modernized rules processing logic.
              </para>
 
-           <para>on indicates the interface name to be incorporated into
+           <para>"on" indicates the interface name to be incorporated into
              the selection parameters. Interface names are as displayed
              by ifconfig. Using this option, the rule will only match if
              the packet is going through that interface in the specified
@@ -916,10 +921,10 @@
              Immediately following the log keyword, the following
              qualifiers may be used (in this order):</para>
 
-           <para>body indicates that the first 128 bytes of the packet
+           <para>"body" indicates that the first 128 bytes of the packet
              contents will be logged after the headers.</para>
 
-           <para>first If the 'log' keyword is being used in conjunction
+           <para>"first" If the 'log' keyword is being used in conjunction
              with a "keep state" option, it is recommended that this
              option is also applied so that only the triggering packet
              is logged and not every packet which there after matches
@@ -958,7 +963,7 @@
            <para>The 'all' keyword is essentially a synonym for "from
              any to any" with no other match parameters.</para>
 
-           <para>from src to dst The from and to keywords are used to
+           <para>"from src to dst" The from and to keywords are used to
              match against IP addresses. Rules must specify BOTH source
              and destination parameters. .any. is a special keyword that
              matches any IP address. As in 'from any to any' or 'from
@@ -1042,12 +1047,13 @@
           do not properly fit the session conversation template are
           automatically rejected as impostors.</para>
 
-        <para>Keep state will also allow ICMP packets related to a <acronym>TCP</acronym>
-          or UDP session through. So if you get ICMP type 3 code 4 in
-          response to some web surfing allowed out by a keep state rule,
-          they will be automatically allowed in. Any packet that IPF can
-          be certain is part of a active session, even if it is a
-          different protocol, will be let in.</para>
+        <para>Keep state will also allow ICMP packets related to a
+          <acronym>TCP</acronym> or UDP session through. So if you get
+          ICMP type 3 code 4 in response to some web surfing allowed
+          out by a keep state rule, they will be automatically allowed
+          in. Any packet that IPF can be certain is part of a active
+          session, even if it is a different protocol, will be let
+          in.</para>
 
         <para>What happens is:</para>
 
@@ -1090,16 +1096,16 @@
         interfaces which have to have rules to allow the firewall to
         function.</para>
 
-      <para>All Unix flavored systems including &os; are designed to
-        use interface l0 and IP address 127.0.0.1 for internal
-        communication with in the &os; operating system. The firewall
+      <para>All &unix; flavored systems including &os; are designed to
+        use interface lo0 and IP address 127.0.0.1 for internal
+        communication with in the operating system. The firewall
         rules must contain rules to allow free unmolested movement of
         these special internally used packets.</para>
 
       <para>The interface which faces the public Internet, is the one
         which you code your rules to authorize and control access out
         to the public Internet and access requests arriving from the
-        public Internet. This can be your .user ppp. tun0 interface or
+        public Internet. This can be your 'user ppp' tun0 interface or
         your NIC card that is cabled to your DSL or cable modem.</para>
 
       <para>In cases where one or more than one NICs are cabled to
@@ -1107,7 +1113,7 @@
         interfaces must have a rule coded to allow free unmolested
         movement of packets originating from those LAN interfaces.</para>
 
-      <para>The rules should be first organized into three major
+      <para>The rule set should be first organized into three major
         sections, all the free unmolested interfaces, public interface
         outbound, and the public interface inbound.</para>
 
@@ -1139,13 +1145,13 @@
         create the legal evidence needed to prosecute the people who
         are attacking your system.</para>
 
-      <para>Another thing you should take note of, is there is no
+      <para>There is another thing you should take note of: there is no
         response returned for any of the undesirable stuff, their
         packets just get dropped and vanish. This way the attackers
         has no knowledge if his packets have reached your system.  The
         less the attackers can learn about your system the more secure
         it is. The inbound 'nmap OS fingerprint' attempts rule I log
-        the first occurrence because this is something a attacker
+        the first occurrence because this is something an attacker
         would do.</para>
 
       <para>Any time you see log messages on a rule with .log first.
@@ -1182,8 +1188,8 @@
         <filename>/etc/ipf.rules</filename>:</para>
 
       <programlisting>#################################################################
-# No restrictions on Inside Lan Interface for private network
-# Not needed unless you have Lan
+# No restrictions on Inside LAN Interface for private network
+# Not needed unless you have LAN
 #################################################################
 
 #pass out quick on xl0 all
@@ -1203,7 +1209,7 @@
 #################################################################
 
 # Allow out access to my ISP's Domain name server.
-# xxx must be the IP address of your ISP.s DNS.
+# xxx must be the IP address of your ISP's DNS.
 # Dup these lines if your ISP has more than one DNS server
 # Get the IP addresses from /etc/resolv.conf file
 pass out quick on dc0 proto tcp from any to xxx port = 53 flags S keep state
@@ -1322,7 +1328,7 @@
 # used in the outbound section.
 pass in quick on dc0 proto udp from z.z.z.z to any port = 68 keep state
 
-# Allow in standard www function because I have apache server
+# Allow in standard www function because I have Apache server
 pass in quick on dc0 proto tcp from any to any port = 80 flags S keep state
 
 # Allow in non-secure Telnet session from public Internet
@@ -1336,7 +1342,7 @@
 
 # Block and log only first occurrence of all remaining traffic
 # coming into the firewall. The logging of only the first
-# occurrence stops a .denial of service. attack targeted
+# occurrence stops a 'Denial of Service' attack targeted
 # at filling up your log file space.
 # This rule enforces the block all by default logic.
 block in log first quick on dc0 all
@@ -1370,7 +1376,7 @@
         lines.</para>
 
       <para>With <acronym>NAT</acronym> you only need a single account
-        with your ISP, then cable your other 4 PC.s to a switch and
+        with your ISP, then cable your other 4 PC's to a switch and
         the switch to the NIC in your &os; system which is going to
         service your LAN as a gateway. <acronym>NAT</acronym> will
         automatically translate the private LAN IP address for each
@@ -1436,13 +1442,13 @@
         for details.</para>
 
       <para>When changing the <acronym>NAT</acronym> rules after
-        <acronym>NAT</acronym> has been started, Make your changes to
+        <acronym>NAT</acronym> has been started, make your changes to
         the file containing the nat rules, then run ipnat command with
         the <option>-CF</option> flags to delete the internal in use
         <acronym>NAT</acronym> rules and flush the contents of the
         translation table of all active entries.</para>
 
-      <para>To reload the <acronym>NAT</acronym> rules issue a command
+      <para>To reload the <acronym>NAT</acronym> rules, issue a command
         like this:</para>
 
       <programlisting>ipnat -CF -f /etc/ipnat.rules</programlisting>
@@ -1554,7 +1560,7 @@
       <sect3>
         <title>Assigning Ports to Use</title>
 
-        <para>XXXBLAH</para>
+        <para></para>
 
         <programlisting>map dc0 192.168.1.0/24 -> 0.32</programlisting>
 
@@ -1731,7 +1737,7 @@
 
     <para>The IPFIREWALL (IPFW) is a &os; sponsored firewall software
       application authored and maintained by &os; volunteer staff
-      members. It uses the legacy Stateless rules and a legacy rule
+      members. It uses the legacy stateless rules and a legacy rule
       coding technique to achieve what is referred to as Simple
       Stateful logic.</para>
 
@@ -1748,21 +1754,23 @@
 
     <para>IPFW is composed of 7 components, the primary component is
       the kernel firewall filter rule processor and its integrated
-      packet accounting facility, the logging facility, the 'divert'
-      rule which triggers the <acronym>NAT</acronym> facility, and the
-      advanced special purpose facilities, the dummynet traffic shaper
-      facilities, the 'fwd rule' forward facility, the bridge
-      facility, and the ipstealth facility.</para>
+      packet accounting facility, then come the logging facility, the
+      'divert' rule which triggers the <acronym>NAT</acronym>
+      facility, and the advanced special purpose facilities, the
+      dummynet traffic shaper facilities, the 'fwd rule' forward
+      facility, the bridge facility, and the ipstealth
+      facility.</para>
 
     <sect2 id="firewalls-ipfw-enable">
       <title>Enabling IPFW</title>
 
       <para>IPFW is included in the basic &os; install as a separate
-        run time loadable module. IPFW will dynamically load the
-        kernel module when the <filename>rc.conf</filename> statement
-        <literal>firewall_enable="YES"</literal> is used. You do not
-        need to compile IPFW into the &os; kernel unless you want
-        <acronym>NAT</acronym> function enabled.</para>
+        run time loadable module. The system will dynamically load
+        IPFW kernel module when the <filename>rc.conf</filename>
+        statement <literal>firewall_enable="YES"</literal> is
+        used. You do not need to compile IPFW into the &os; kernel
+        unless you want <acronym>NAT</acronym> function
+        enabled.</para>
 
       <para>After rebooting your system with
         <literal>firewall_enable="YES"</literal> in
@@ -1870,7 +1878,7 @@
         firewall rules with changes you made to the files content is
         the recommended method used here.</para>
 
-      <para>The IPFW command is still a very useful to display the
+      <para>The ipfw command is still very useful to display the
         running firewall rules to the console screen. The IPFW
         accounting facility dynamically creates a counter for each
         rule that counts each packet that matches the rule. During the
@@ -2063,11 +2071,11 @@
 
           <para>The from and to keywords are used to match against IP
             addresses. Rules must specify BOTH source and destination
-            parameters. any is a special keyword that matches any IP
-            address. me is a special keyword that matches any IP
+            parameters. 'any' is a special keyword that matches any IP
+            address. 'me' is a special keyword that matches any IP
             address configured on an interface in your &os; system to
-            represent the PC the firewall is running on. (i.e. this
-            box) As in from me to any or from any to me or from
+            represent the PC the firewall is running on (i.e. this
+            box). As in from me to any or from any to me or from
             0.0.0.0/0 to any or from any to 0.0.0.0/0 or from 0.0.0.0
             to any or from any to 0.0.0.0 or from me to 0.0.0.0. IP
             addresses are specified as a dotted IP address numeric
@@ -2225,7 +2233,7 @@
           <para>The script syntax used here is compatible with the 'sh',
             'csh', 'tcsh' shells. Symbolic substitution fields are
             prefixed with a dollar sign &dollar;. Symbolic fields do not have
-            the &dollar; prefix. The value to populate the Symbolic field must
+            the &dollar; prefix. The value to populate the symbolic field must
             be enclosed to "double quotes".</para>
 
           <para>Start your rules file like this:</para>
@@ -2235,7 +2243,7 @@
 ipfw -q -f flush       # Delete all rules
 # Set defaults
 oif="tun0"             # out interface
-odns="192.0.2.11"      # ISP's dns server IP address
+odns="192.0.2.11"      # ISP's DNS server IP address
 cmd="ipfw -q add "     # build rule prefix
 ks="keep-state"        # just too lazy to key this each time
 &dollar;cmd 00500 check-state
@@ -2247,7 +2255,7 @@
 ################### End of example ipfw rules script ############</programlisting>
 
           <para>That is all there is to it. The rules are not important
-            in this example, how the Symbolic substitution field are
+            in this example, how the symbolic substitution field are
             populated and used are.</para>
 
           <para>If the above example was in
@@ -2274,7 +2282,7 @@
 
         </sect3>
         <sect3>
-          <title>Stateful Ruleset</title>
+          <title>Stateful Rule Set</title>
           <para>The following non-<acronym>NAT</acronym>ed rule set is a example of how to
             code a very secure 'inclusive' type of firewall. An
             inclusive firewall only allows services matching pass rules
@@ -2283,7 +2291,7 @@
             allow the firewall to function.</para>
 
           <para>All &unix; flavored operating systems, &os; included, are designed to
-            use interface lo and IP address
+            use interface lo0 and IP address
             <hostid role="ipaddr">127.0.0.1</hostid> for internal
             communication with in &os;. The firewall rules must contain
             rules to allow free unmolested movement of these special
@@ -2292,9 +2300,9 @@
           <para>The interface which faces the public Internet, is the
             one which you code your rules to authorize and control
             access out to the public Internet and access requests
-            arriving from the public Internet. This can be your ppp tun0
-            interface or your NIC that is connected to your DSL or cable
-            modem.</para>
+            arriving from the public Internet. This can be your 'user
+            ppp' tun0 interface or your NIC that is connected to your
+            DSL or cable modem.</para>
 
           <para>In cases where one or more than one NIC are connected to
             a private LANs behind the firewall, those interfaces must
@@ -2349,9 +2357,9 @@
             .</para>
         </sect3>
         <sect3>
-          <title>An Example Inclusive Ruleset</title>
+          <title>An Example Inclusive Rule Set</title>
           <para>The following non-<acronym>NAT</acronym>ed rule set is a complete inclusive
-            type ruleset. You can not go wrong using this rule set for
+            type rule set. You can not go wrong using this rule set for
             you own.  Just comment out any pass rules for services you
             do not want.  If you see messages in your log that you want to
             stop seeing just add a deny rule in the inbound section. You
@@ -2398,7 +2406,7 @@
                         # facing the public Internet
 
 #################################################################
-# No restrictions on Inside Lan Interface for private network
+# No restrictions on Inside LAN Interface for private network
 # Not needed unless you have Lan.
 # Change xl0 to your Lan Nic card interface name
 #################################################################
@@ -2540,15 +2548,18 @@
         </sect3>
 
         <sect3>
-          <title>An Example <acronym>NAT</acronym> and Stateful Ruleset</title>
-          <para>There are some additional configuration statements that
-            need to be enabled to activate the <acronym>NAT</acronym> function of IPFW. The
-            kernel source needs 'option divert' statement added to the
-            other IPFIREWALL statements compiled into a custom kernel.
+          <title>An Example <acronym>NAT</acronym> and Stateful Rule
+          Set</title> 
+
+          <para>There are some additional configuration statements
+            that need to be enabled to activate the
+            <acronym>NAT</acronym> function of IPFW. The kernel
+            needs 'option divert' statement added to the other
+            IPFIREWALL statements compiled into a custom kernel.
             </para>
 
           <para>In addition to the normal IPFW options in
-            <filename>/etc/rc.conf</filename>, the following are needed.
+            <filename>/etc/rc.conf</filename>, the following are needed:
             </para>
 
           <programlisting>natd_enable="YES"                   # Enable <acronym>NAT</acronym>D function
@@ -2571,70 +2582,73 @@
 
           <para>The processing flow starts with the first rule from the
             top of the rule file and progress one rule at a time deeper
-            into the file until the end is reach or the packet being
+            into the file until the end is reached or the packet being
             tested to the selection criteria matches and the packet is
             released out of the firewall.  It is important to take notice
             of the location of rule numbers 100 101, 450, 500, and 510.
             These rules control the translation of the outbound and
             inbound packets so their entries in the keep-state dynamic
-            table always register the private Lan IP address. Next
+            table always register the private LAN IP address. Next
             notice that all the allow and deny rules specified the
             direction the packet is going (IE outbound or inbound) and
             the interface. Also notice that all the start outbound
             session requests all skipto rule 500 for the network address
             translation.</para>
 
-          <para>Lets say a LAN user uses their web browser to get a web
-            page. Web pages use port 80 to communicate over. So the
-            packet enters the firewall, It does not match 100 because
-            it is headed out not in. It passes rule 101 because this is
-            the first packet so it has not been posted to the keep-state
-            dynamic table yet. The packet finally comes to rule 125 a
-            matches.  It is outbound through the NIC facing the public
-            Internet. The packet still has it's source IP address as a
-            private Lan IP address. On the match to this rule, two
-            actions take place.  The keep-state option will post this rule
-            into the keep-state dynamic rules table and the specified
-            action is executed. The action is part of the info posted to
-            the dynamic table.  In this case it is "skipto rule 500".  Rule
-            500 <acronym>NAT</acronym>s the packet IP address and out it goes. Remember
-            this, this is very important. This packet makes it's way to
-            the destination and returns and enters the top of the rule
-            set. This time it does match rule 100 and has it destination
-            IP address mapped back to it's corresponding Lan IP address.
-            It then is processed by the check-state rule, it's found in
-            the table as an existing session conversation and released
-            to the LAN. It goes to the LAN PC that sent it and a new
-            packet is sent requesting another segment of the data from
-            the remote server. This time it gets checked by the
-            check-state rule and it's outbound entry is found,  the
+          <para>Lets say a LAN user uses their web browser to get a
+            web page. Web pages use port 80 to communicate over. So
+            the packet enters the firewall. It does not match 100
+            because it is headed out not in. It passes rule 101
+            because this is the first packet so it has not been posted
+            to the keep-state dynamic table yet. The packet finally
+            comes to rule 125 a matches. It is outbound through the
+            NIC facing the public Internet. The packet source IP
+            address is still a private LAN IP address. On the match to
+            this rule, two actions take place. The keep-state option
+            will post this rule into the keep-state dynamic rules
+            table and the specified action is executed. The action is
+            part of the info posted to the dynamic table.  In this
+            case it is "skipto rule 500".  Rule 500
+            <acronym>NAT</acronym>s the packet IP address and out it
+            goes. Remember this, this is very important. This packet
+            makes its way to the destination and returns and enters
+            the top of the rule set. This time it does match rule 100
+            and has it destination IP address mapped back to it's
+            corresponding Lan IP address.  Then it is processed by the
+            check-state rule, it's found in the table as belonging to
+            an existing session conversation and released to the
+            LAN. It goes to the LAN PC that sent it and a new packet
+            is sent requesting another segment of the data from the
+            remote server. This time it gets checked by the
+            check-state rule and, as its outbound entry is found, the
             associated action, 'skipto 500', is executed.  The packet
-            jumps to rule 500 gets <acronym>NAT</acronym>ed and released on it's way out.
-            </para>
+            jumps to rule 500 gets <acronym>NAT</acronym>ed and
+            released on it's way out.  </para>
 
           <para>On the inbound side, everything coming in that is part
             of an existing session conversation is being automatically
             handled by the check-state rule and the properly placed
-            divert natd rules. All we have to address is denying all the
-            bad packets and only allowing in the authorized services.
-            Lets say there is a apache server running on the firewall
-            box and we want people on the public Internet to be able to
-            access the local web site. The new inbound start request
-            packet matches rule 100 and its IP address is mapped to LAN
-            IP for the firewall box. The packet is them matched against
-            all the nasty things we want to check for and finally
-            matches against rule 425. On a match two things occur, the
-            limit option is an extension to keep-state. The packet rule
-            is posted to the keep-state dynamic table but this time any
-            new session requests originating from that source IP address
-            is limited to 2. This defends against DoS attacks of service
-            IP for the firewall box. The packet is them matched against
-            all the nasty things we want to check for and finally
-            matches against rule 425. On a match two things occur, the
-            limit option is an extension to keep-state. The packet rule
-            is posted to the keep-state dynamic table but this time any
-            new session requests originating from that source IP address
-            is limited to 2. This defends against DoS attacks of service
-            running on the specified port number. The action is allow so
-            the packet is released to the LAN. On return the check-state
-            rule recognizes the packet as belonging to an existing
-            session conversation sends it to rule 500 for <acronym>NAT</acronym>ing and
-            released to outbound interface.</para>
+            divert natd rules. All we have to address is denying all
+            the bad packets and only allowing in the authorized
+            services.  Lets say there is a apache server running on
+            the firewall box and we want people on the public Internet
+            to be able to access the local web site. The new inbound
+            start request packet matches rule 100 and its IP address
+            is mapped to LAN IP for the firewall box. The packet is
+            them matched against all the nasty things we want to check
+            for and finally matches against rule 425. On a match two
+            things occur. The packet rule is posted to the keep-state
+            dynamic table but this time the number of new session
+            requests originating from that source IP address is
+            limited to 2. This defends against DoS attacks of service
+            running on the specified port number. The action is allow
+            so the packet is released to the LAN. On return the
+            check-state rule recognizes the packet as belonging to an
+            existing session conversation sends it to rule 500 for
+            <acronym>NAT</acronym>ing and released to outbound
+            interface.</para>
 
-          <para>Example Ruleset #1:</para>
+          <para>Example Rule Set #1:</para>
 
           <programlisting>#!/bin/sh
 cmd="ipfw -q add"
@@ -2645,7 +2659,7 @@
 
 ipfw -q -f flush
 
-&dollar;cmd 002 allow all from any to any via xl0  # exclude Lan traffic
+&dollar;cmd 002 allow all from any to any via xl0  # exclude LAN traffic
 &dollar;cmd 003 allow all from any to any via lo0  # exclude loopback traffic
 
 &dollar;cmd 100 divert natd ip from any to any in via &dollar;pif
@@ -2688,7 +2702,7 @@
             to help the inexperienced IPFW rule writer to better
             understand what the rules are doing.</para>
 
-          <para>Example Ruleset #2:</para>
+          <para>Example Rule Set #2:</para>
 
           <programlisting>
 #!/bin/sh


>Release-Note:
>Audit-Trail:

From: "Simon L. Nielsen" <simon@FreeBSD.org>
To: Matteo Riondato <rionda@gufi.org>
Cc: FreeBSD-gnats-submit@FreeBSD.org
Subject: Re: docs/75422: [patch] syntax mistakes and obscurity in firewall chapter
Date: Sun, 26 Dec 2004 00:02:07 +0100

 --pWyiEgJYm5f9v55/
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 Content-Transfer-Encoding: quoted-printable
 
 On 2004.12.23 08:43:41 +0100, Matteo Riondato wrote:
 
 > Handbook Firewall chapter is a bit confused and obscure. There are
 > many syntax mistakes (such as "it's" instead of "its")
 
 Thanks for working on this, unfortunatly the patch mixes whitespace
 and content changes, making it very hard to see what has actually been
 changed.  Could you please update the patch to only include content
 changes?
 
 Also "ruleset" is actually OK, according to the O'Reilly Word List.
 
 --=20
 Simon L. Nielsen
 
 --pWyiEgJYm5f9v55/
 Content-Type: application/pgp-signature
 Content-Disposition: inline
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.2.6 (FreeBSD)
 
 iD8DBQFBzfFuh9pcDSc1mlERAuBEAJ9p4ekyoWuB2Kxi0bcgVF4LuuuKrACgtSnW
 KJO0XaaTKezNNJyeGEr0yfw=
 =qhAP
 -----END PGP SIGNATURE-----
 
 --pWyiEgJYm5f9v55/--

From: Matteo Riondato <rionda@gufi.org>
To: "Simon L. Nielsen" <simon@FreeBSD.org>,
	FreeBSD-gnats-submit@FreeBSD.org
Cc: bug-followup@FreeBSD.org
Subject: Re: docs/75422: [patch] syntax mistakes and obscurity in firewall
	chapter
Date: Sun, 26 Dec 2004 17:04:46 +0100

 --=-nJrkqYtMbMZRfDDC4mQM
 Content-Type: multipart/mixed; boundary="=-YGXksNBBJkCF2hitBO7r"
 
 
 --=-YGXksNBBJkCF2hitBO7r
 Content-Type: text/plain
 Content-Transfer-Encoding: quoted-printable
 
 Simon L. Nielsen wrote
 > Could you please update the patch to only include content
 > changes?
 
 Here you are.
 Best Regards
 --=20
 Rionda aka Matteo Riondato
 GUFI Staff Member (http://www.gufi.org)
 FreeSBIE Developer (http://www.freesbie.org)
 BSD-FAQ-it Main Developer (http://utenti.gufi.org/~rionda)
 Sent from: kaiser.sig11.org running FreeBSD-6.0-CURRENT
 
 --=-YGXksNBBJkCF2hitBO7r
 Content-Disposition: attachment; filename=firewall.diff
 Content-Transfer-Encoding: base64
 Content-Type: text/x-patch; name=firewall.diff; charset=ISO-8859-1
 
 LS0tIGNoYXB0ZXIuc2dtbC5vcmlnCVdlZCBEZWMgMjIgMTk6Mzg6MjggMjAwNA0KKysrIGNoYXB0
 ZXIuc2dtbAlTdW4gRGVjIDI2IDE3OjAwOjMwIDIwMDQNCkBAIC0zMiw3ICszMiw3IEBADQogICA8
 c2VjdDEgaWQ9ImZpcmV3YWxscy1pbnRybyI+DQogICAgIDx0aXRsZT5JbnRyb2R1Y3Rpb248L3Rp
 dGxlPg0KIA0KLSAgICA8cGFyYT5GaXJld2FsbHMgbWFrZSBpdCBwb3NzYmlsZSB0byBmaWx0ZXIN
 CisgICAgPHBhcmE+RmlyZXdhbGxzIG1ha2UgaXQgcG9zc2libGUgdG8gZmlsdGVyDQogICAgICAg
 aW5jb21pbmcgYW5kIG91dGdvaW5nIHRyYWZmaWMgdGhhdCBmbG93cyB0aHJvdWdoIHlvdXIgc3lz
 dGVtLg0KICAgICAgIEEgZmlyZXdhbGwgY2FuIHVzZSBvbmUgb3IgbW9yZSBzZXRzIG9mIDxxdW90
 ZT5ydWxlczwvcXVvdGU+IHRvDQogICAgICAgaW5zcGVjdCB0aGUgbmV0d29yayBwYWNrZXRzIGFz
 IHRoZXkgY29tZSBpbiBvciBnbyBvdXQgb2YgeW91cg0KQEAgLTEyNSw3ICsxMjUsNyBAQA0KICAg
 ICA8cGFyYT5TZWN1cml0eSBjYW4gYmUgdGlnaHRlbmVkIGZ1cnRoZXIgdXNpbmcgYSA8cXVvdGU+
 c3RhdGVmdWwNCiAJZmlyZXdhbGw8L3F1b3RlPi4gIFdpdGggYSBzdGF0ZWZ1bCBmaXJld2FsbCB0
 aGUgZmlyZXdhbGwga2VlcHMNCiAgICAgICB0cmFjayBvZiB3aGljaCBjb25uZWN0aW9ucyBhcmUg
 b3BlbmVkIHRocm91Z2ggdGhlIGZpcmV3YWxsIGFuZA0KLSAgICAgIHdpbGwgb25seSBhbGxvdyB0
 cmFmZmljIHRocm91Z2ggd2hpY2ggZWl0aGVyIG1hdGNoZXMgYSBleGlzdGluZw0KKyAgICAgIHdp
 bGwgb25seSBhbGxvdyB0cmFmZmljIHRocm91Z2ggd2hpY2ggZWl0aGVyIG1hdGNoZXMgYW4gZXhp
 c3RpbmcNCiAgICAgICBjb25uZWN0aW9uIG9yIG9wZW5zIGEgbmV3IG9uZS4gIFRoZSBkaXNhZHZh
 bnRhZ2Ugb2YgYSBzdGF0ZWZ1bA0KICAgICAgIGZpcmV3YWxsIGlzIHRoYXQgaXQgY2FuIGJlIHZ1
 bG5lcmFibGUgdG8gRGVuaWFsIG9mIFNlcnZpY2UNCiAgICAgICAoPGFjcm9ueW0+RG9TPC9hY3Jv
 bnltPikgYXR0YWNrcyBpZiBhIGxvdCBvZiBuZXcgY29ubmVjdGlvbnMgYXJlDQpAQCAtMTk3LDcg
 KzE5Nyw3IEBADQogICAgICAga25vd24gYXMgPGFjcm9ueW0+UEY8L2Fjcm9ueW0+IHdhcyBwb3J0
 ZWQgdG8gJm9zOyZuYnNwOzUuMy4NCiAgICAgICA8YWNyb255bT5QRjwvYWNyb255bT4gaXMgYSBj
 b21wbGV0ZSwgZnVsbHkgZmVhdHVyZWQgZmlyZXdhbGwNCiAgICAgICB0aGF0IGNvbnRhaW5zIDxh
 Y3JvbnltPkFMVFE8L2Fjcm9ueW0+IGZvciBiYW5kd2lkdGggdXNhZ2UNCi0gICAgICBtYW5hZ2Vt
 ZW50IGluIGEgd2F5IHNpbWlsYXIgdG8gdGhlIGR1bW15bmV0IHByb3ZpZGVzIGluDQorICAgICAg
 bWFuYWdlbWVudCBpbiBhIHdheSBzaW1pbGFyIHRvIHdoYXQgRFVNTVlORVQgcHJvdmlkZXMgaW4N
 CiAgICAgICA8YWNyb255bT5JUEZXPC9hY3JvbnltPi4gIFRoZSBPcGVuQlNEIHByb2plY3QgZG9l
 cyBhbg0KICAgICAgIG91dHN0YW5kaW5nIGpvYiBvZiBtYWludGFpbmluZyB0aGUgUEYgdXNlcnMn
 IGd1aWRlIHRoYXQgaXQgd2lsbA0KICAgICAgIG5vdCBiZSBtYWRlIHBhcnQgb2YgdGhpcyBoYW5k
 Ym9vayBmaXJld2FsbCBzZWN0aW9uIGFzIHRoYXQgd291bGQNCkBAIC0yMjMsOCArMjIzLDggQEAN
 CiAgICAgPHNlY3QyPg0KICAgICAgIDx0aXRsZT5FbmFibGluZyBQRjwvdGl0bGU+DQogICAgICAg
 PHBhcmE+UEYgaXMgaW5jbHVkZWQgaW4gdGhlIGJhc2ljICZvczsgaW5zdGFsbCBmb3IgdmVyc2lv
 bnMgbmV3ZXIgdGhhbg0KLSAgICAgICAgNS4zIGFzIGEgc2VwYXJhdGUgcnVuIHRpbWUgbG9hZGFi
 bGUgbW9kdWxlLiBQRiB3aWxsIGR5bmFtaWNhbGx5IGxvYWQNCi0JICAgICAgICBpdHMga2VybmVs
 IGxvYWRhYmxlIG1vZHVsZSB3aGVuIHRoZSByYy5jb25mIHN0YXRlbWVudA0KKyAgICAgICAgNS4z
 IGFzIGEgc2VwYXJhdGUgcnVuIHRpbWUgbG9hZGFibGUgbW9kdWxlLiBUaGUgc3lzdGVtIHdpbGwg
 ZHluYW1pY2FsbHkgbG9hZA0KKwkgICAgICAgIFBGIGtlcm5lbCBsb2FkYWJsZSBtb2R1bGUgd2hl
 biB0aGUgcmMuY29uZiBzdGF0ZW1lbnQNCiAgICAgICAgIDxsaXRlcmFsPnBmX2VuYWJsZT0iWUVT
 IjwvbGl0ZXJhbD4gaXMgdXNlZC4gVGhlDQogICAgICAgICBsb2FkYWJsZSBtb2R1bGUgd2FzIGNy
 ZWF0ZWQgd2l0aCAmbWFuLnBmbG9nLjQ7IGxvZ2dpbmcNCiAgICAgICAgIGVuYWJsZWQuPC9wYXJh
 Pg0KQEAgLTI1OCw3ICsyNTgsNyBAQA0KICAgICAgICAgPHF1b3RlPnN0YXRlIGNoYW5nZXM8L3F1
 b3RlPi4gQXMgdGhpcyBpcyBub3QgcGFydCBvZiB0aGUgbG9hZGFibGUNCiAgICAgICAgIG1vZHVs
 ZSBvbmUgaGFzIHRvIGJ1aWxkIGEgY3VzdG9tIGtlcm5lbCB0byB1c2UgaXQuPC9wYXJhPg0KIA0K
 LSAgICAgIDxwYXJhPlRoZXNlIHNldHRpbmdzIHdpbGwgdGFrZSBhZmZlY3Qgb25seSBhZnRlciB5
 b3UgaGF2ZSBidWlsdCBhbmQNCisgICAgICA8cGFyYT5UaGVzZSBzZXR0aW5ncyB3aWxsIHRha2Ug
 ZWZmZWN0IG9ubHkgYWZ0ZXIgeW91IGhhdmUgYnVpbHQgYW5kDQogICAgICAgICAgICAgICAgIGlu
 c3RhbGxlZCBhIGtlcm5lbCB3aXRoIHRoZW0gc2V0LjwvcGFyYT4NCiAgICAgPC9zZWN0Mj4NCiAN
 CkBAIC0yNzYsNyArMjc2LDcgQEANCiBwZmxvZ19mbGFncz0iIiAgICAgICAgICAgICAgICAgICMg
 YWRkaXRpb25hbCBmbGFncyBmb3IgcGZsb2dkIHN0YXJ0dXA8L3Byb2dyYW1saXN0aW5nPg0KIA0K
 ICAgICAgIDxwYXJhPklmIHlvdSBoYXZlIGEgTEFOIGJlaGluZCB0aGlzIGZpcmV3YWxsIGFuZCBo
 YXZlIHRvIGZvcndhcmQNCi0gICAgICAgIHBhY2tldHMgZm9yIHRoZSBjb21wdXRlcnMgaW4gdGhl
 IExBTiBvciB3YW50IHRvIGRvIE5BVCB5b3UgaGF2ZSB0bw0KKyAgICAgICAgcGFja2V0cyBmb3Ig
 dGhlIGNvbXB1dGVycyBpbiB0aGUgTEFOIG9yIHdhbnQgdG8gZG8gTkFULCB5b3UgaGF2ZSB0bw0K
 ICAgICAgICAgZW5hYmxlIHRoZSBmb2xsb3dpbmcgb3B0aW9uIGFzIHdlbGw6PC9wYXJhPg0KIA0K
 ICAgICAgIDxwcm9ncmFtbGlzdGluZz5nYXRld2F5X2VuYWJsZT0iWUVTIiAgICAgICAgICAgICMg
 RW5hYmxlIGFzIExhbiBnYXRld2F5PC9wcm9ncmFtbGlzdGluZz4NCkBAIC0yODgsNyArMjg4LDcg
 QEANCiAgICAgPHRpdGxlPlRoZSBJUEZJTFRFUiAoSVBGKSBGaXJld2FsbDwvdGl0bGU+DQogDQog
 ICAgIDxwYXJhPlRoZSBhdXRob3Igb2YgSVBGSUxURVIgaXMgRGFycmVuIFJlZWQuIElQRklMVEVS
 IGlzIG5vdA0KLSAgICAgIG9wZXJhdGluZyBzeXN0ZW0gZGVwZW5kZW50LiBJUEZJTFRFUiBpcyBh
 IG9wZW4gc291cmNlDQorICAgICAgb3BlcmF0aW5nIHN5c3RlbSBkZXBlbmRlbnQ6IGlzIGFuIG9w
 ZW4gc291cmNlDQogICAgICAgYXBwbGljYXRpb24gYW5kIGhhcyBiZWVuIHBvcnRlZCB0byAmb3M7
 LCBOZXRCU0QsIE9wZW5CU0QsIFN1bk9TLA0KICAgICAgIEhQL1VYLCBhbmQgU29sYXJpcyBvcGVy
 YXRpbmcgc3lzdGVtcy4gSVBGSUxURVIgaXMgYWN0aXZlbHkgYmVpbmcNCiAgICAgICBzdXBwb3J0
 ZWQgYW5kIG1haW50YWluZWQsIHdpdGggdXBkYXRlZCB2ZXJzaW9ucyBiZWluZyByZWxlYXNlZA0K
 QEAgLTM0Miw3ICszNDIsNyBAQA0KICAgICA8c2VjdDI+DQogICAgICAgPHRpdGxlPkVuYWJsaW5n
 IElQRjwvdGl0bGU+DQogICAgICAgPHBhcmE+SVBGIGlzIGluY2x1ZGVkIGluIHRoZSBiYXNpYyAm
 b3M7IGluc3RhbGwgYXMgYSBzZXBhcmF0ZQ0KLSAgICAgICAgcnVuIHRpbWUgbG9hZGFibGUgbW9k
 dWxlLiBJUEYgd2lsbCBkeW5hbWljYWxseSBsb2FkIGl0cyBrZXJuZWwNCisgICAgICAgIHJ1biB0
 aW1lIGxvYWRhYmxlIG1vZHVsZS4gVGhlIHN5c3RlbSB3aWxsIGR5bmFtaWNhbGx5IGxvYWQgSVBG
 IGtlcm5lbA0KICAgICAgICAgbG9hZGFibGUgbW9kdWxlIHdoZW4gdGhlIHJjLmNvbmYgc3RhdGVt
 ZW50IDxsaXRlcmFsPg0KICAgICAgICAgaXBmaWx0ZXJfZW5hYmxlPSJZRVMiPC9saXRlcmFsPiBp
 cyB1c2VkLiBUaGUgbG9hZGFibGUNCiAgICAgICAgIG1vZHVsZSB3YXMgY3JlYXRlZCB3aXRoIGxv
 Z2dpbmcgZW5hYmxlZCBhbmQgdGhlIDxsaXRlcmFsPmRlZmF1bHQNCkBAIC0zNjksOCArMzY5LDgg
 QEANCiBvcHRpb25zIElQRklMVEVSX0xPRw0KIG9wdGlvbnMgSVBGSUxURVJfREVGQVVMVF9CTE9D
 SzwvcHJvZ3JhbWxpc3Rpbmc+DQogDQotICAgICAgPHBhcmE+PGxpdGVyYWw+b3B0aW9ucyBJUEZJ
 TFRFUjwvbGl0ZXJhbD4gdGVsbHMgdGhlIGNvbXBpbGUNCi0gICAgICAgIHRvIGluY2x1ZGUgSVBG
 SUxURVIgYXMgcGFydCBvZiBpdHMgY29yZSBrZXJuZWwuPC9wYXJhPg0KKyAgICAgIDxwYXJhPjxs
 aXRlcmFsPm9wdGlvbnMgSVBGSUxURVI8L2xpdGVyYWw+IGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhl
 DQorCTxxdW90ZT5JUEZJTFRFUjwvcXVvdGU+IGZpcmV3YWxsLjwvcGFyYT4NCiANCiAgICAgICA8
 cGFyYT48bGl0ZXJhbD5vcHRpb25zIElQRklMVEVSX0xPRzwvbGl0ZXJhbD4gZW5hYmxlcyB0aGUN
 CiAgICAgICAgIG9wdGlvbiB0byBoYXZlIElQRiBsb2cgdHJhZmZpYyBieSB3cml0aW5nIHRvIHRo
 ZSBpcGwgcGFja2V0DQpAQCAtMzgxLDcgKzM4MSw3IEBADQogICAgICAgICBjaGFuZ2VzIHRoZSBk
 ZWZhdWx0IGJlaGF2aW9yIHNvIGFueSBwYWNrZXQgbm90IG1hdGNoaW5nIGENCiAgICAgICAgIGZp
 cmV3YWxsIDxsaXRlcmFsPnBhc3M8L2xpdGVyYWw+IHJ1bGUgZ2V0cyBibG9ja2VkLjwvcGFyYT4N
 CiANCi0gICAgICA8cGFyYT5UaGVzZSBzZXR0aW5ncyB3aWxsIHRha2UgYWZmZWN0IG9ubHkgYWZ0
 ZXIgeW91IGhhdmUgYnVpbHQNCisgICAgICA8cGFyYT5UaGVzZSBzZXR0aW5ncyB3aWxsIHRha2Ug
 ZWZmZWN0IG9ubHkgYWZ0ZXIgeW91IGhhdmUgYnVpbHQNCiAgICAgICAgIGFuZCBpbnN0YWxsZWQg
 YSBrZXJuZWwgd2l0aCB0aGVtIHNldC48L3BhcmE+DQogICAgIDwvc2VjdDI+DQogDQpAQCAtMzkz
 LDcgKzM5Myw3IEBADQogICAgICAgPHByb2dyYW1saXN0aW5nPmlwZmlsdGVyX2VuYWJsZT0iWUVT
 IiAgICAgICAgICAgICAjIFN0YXJ0IGlwZiBmaXJld2FsbA0KIGlwZmlsdGVyX3J1bGVzPSIvZXRj
 L2lwZi5ydWxlcyIgICAjIGxvYWRzIHJ1bGVzIGRlZmluaXRpb24gdGV4dCBmaWxlDQogaXBtb25f
 ZW5hYmxlPSJZRVMiICAgICAgICAgICAgICAgICMgU3RhcnQgSVAgbW9uaXRvciBsb2cNCi1pcG1v
 bl9mbGFncz0iLURzIiAgICAgICAgICAgICAgICAjIEQgPSBzdGFydCBhcyBkYWVtb24NCitpcG1v
 bl9mbGFncz0iLURzIiAgICAgICAgICAgICAgICAgIyBEID0gc3RhcnQgYXMgZGFlbW9uDQogICAg
 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcyA9IGxvZyB0byBzeXNsb2cNCiAgICAg
 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB2ID0gbG9nIHRjcCB3aW5kb3csIGFjaywg
 c2VxDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgbiA9IG1hcCBJUCAmIHBv
 cnQgdG8gbmFtZXM8L3Byb2dyYW1saXN0aW5nPg0KQEAgLTQxOSw3ICs0MTksNyBAQA0KICAgICAg
 PHBhcmE+PG9wdGlvbj4tRmE8L29wdGlvbj4gbWVhbnMgZmx1c2ggYWxsIGludGVybmFsIHJ1bGVz
 IHRhYmxlcy48L3BhcmE+DQogICAgICA8cGFyYT48b3B0aW9uPi1mPC9vcHRpb24+IG1lYW5zIHRo
 aXMgaXMgdGhlIGZpbGUgdG8gcmVhZCBmb3IgdGhlIHJ1bGVzIHRvIGxvYWQuPC9wYXJhPg0KIA0K
 LSAgICAgPHBhcmE+VGhpcyBnaXZlcyB5b3UgdGhlIGFiaWxpdHkgdG8gbWFrZSBjaGFuZ2VzIHRv
 IHRoZWlyIGN1c3RvbQ0KKyAgICAgPHBhcmE+VGhpcyBnaXZlcyB5b3UgdGhlIGFiaWxpdHkgdG8g
 bWFrZSBjaGFuZ2VzIHRvIHlvdXIgY3VzdG9tDQogICAgICAgIHJ1bGVzIGZpbGUsIHJ1biB0aGUg
 YWJvdmUgSVBGIGNvbW1hbmQgdGh1cyB1cGRhdGluZyB0aGUgcnVubmluZw0KICAgICAgICBmaXJl
 d2FsbCB3aXRoIGEgZnJlc2ggY29weSBvZiBhbGwgdGhlIHJ1bGVzIHdpdGhvdXQgaGF2aW5nIHRv
 DQogICAgICAgIHJlYm9vdCB0aGUgc3lzdGVtLiBUaGlzIG1ldGhvZCBpcyB2ZXJ5IGNvbnZlbmll
 bnQgZm9yIHRlc3RpbmcgbmV3DQpAQCAtNTkwLDExICs1OTAsMTIgQEANCiANCiAgICAgICAgPHBh
 cmE+VG8gYWN0aXZhdGUgdGhlIGNoYW5nZXMgdG8gPGZpbGVuYW1lPi9ldGMvc3lzbG9nLmNvbmYN
 CiAgICAgICAgICA8L2ZpbGVuYW1lPiB5b3UgY2FuIHJlYm9vdCBvciBidW1wIHRoZSBzeXNsb2cg
 dGFzayBpbnRvDQotICAgICAgICAgcmUtcmVhZGluZyA8ZmlsZW5hbWU+L2V0Yy9zeXNsb2cuY29u
 ZjwvZmlsZW5hbWU+IGJ5IDxjb21tYW5kPg0KLSAgICAgICAgIGtpbGwgLUhVUCAmbHQ7cGlkJmd0
 OzwvY29tbWFuZD4uIFlvdSBnZXQgdGhlIHBpZCAoaS5lLiBwcm9jZXNzDQorICAgICAgICAgcmUt
 cmVhZGluZyA8ZmlsZW5hbWU+L2V0Yy9zeXNsb2cuY29uZjwvZmlsZW5hbWU+IGJ5DQorICAgICAg
 ICAgPGNvbW1hbmQ+L2V0Yy9yYy5kL3N5c2xvZ2QgcmVzdGF0PC9jb21tYW5kPiAoPGNvbW1hbmQ+
 DQorICAgICAgICAga2lsbCAtSFVQICZsdDtwaWQmZ3Q7PC9jb21tYW5kPiBpbiAmb3M7IDQueC4g
 WW91IGdldCB0aGUgcGlkIChpLmUuIHByb2Nlc3MNCiAgICAgICAgICBudW1iZXIpIGJ5IGxpc3Rp
 bmcgdGhlIHRhc2tzIHdpdGggdGhlIDxjb21tYW5kPnBzIC1heDwvY29tbWFuZD4NCiAgICAgICAg
 ICBjb21tYW5kLiBGaW5kIHN5c2xvZyBpbiB0aGUgZGlzcGxheSBhbmQgdGhlIHBpZCBpcyB0aGUg
 bnVtYmVyDQotICAgICAgICAgaW4gdGhlIGxlZnQgY29sdW1uLjwvcGFyYT4NCisgICAgICAgICBp
 biB0aGUgbGVmdCBjb2x1bW4pLjwvcGFyYT4NCiANCiAgICAgICAgPHBhcmE+RG8gbm90IGZvcmdl
 dCB0byBjaGFuZ2UgPGZpbGVuYW1lPi9ldGMvbmV3c3lzbG9nLmNvbmYNCiAgICAgICAgICA8L2Zp
 bGVuYW1lPiB0byByb3RhdGUgdGhlIG5ldyBsb2cgeW91IGp1c3QgY3JlYXRlZCBhYm92ZS4NCkBA
 IC02NTAsMTIgKzY1MSwxMiBAQA0KICAgICAgICAgIDwvbGlzdGl0ZW0+DQogDQogICAgICAgICAg
 PGxpc3RpdGVtPg0KLSAgICAgICAgICAgPHBhcmE+UFIgZm9sbG93ZWQgYnkgdGhlIHByb3RvY29s
 IG5hbWUgb3IgbnVtYmVyLCBlLmcuIFBSDQorICAgICAgICAgICA8cGFyYT48bGl0ZXJhbD5QUjwv
 bGl0ZXJhbD4gZm9sbG93ZWQgYnkgdGhlIHByb3RvY29sIG5hbWUgb3IgbnVtYmVyLCBlLmcuIFBS
 DQogICAgICAgICAgICAgIHRjcC48L3BhcmE+DQogICAgICAgICAgPC9saXN0aXRlbT4NCiANCiAg
 ICAgICAgICA8bGlzdGl0ZW0+DQotICAgICAgICAgICA8cGFyYT5sZW4gZm9sbG93ZWQgYnkgdGhl
 IGhlYWRlciBsZW5ndGggYW5kIHRvdGFsIGxlbmd0aCBvZg0KKyAgICAgICAgICAgPHBhcmE+PGxp
 dGVyYWw+bGVuPC9saXRlcmFsPiBmb2xsb3dlZCBieSB0aGUgaGVhZGVyIGxlbmd0aCBhbmQgdG90
 YWwgbGVuZ3RoIG9mDQogICAgICAgICAgICAgIHRoZSBwYWNrZXQsIGUuZy4gbGVuIDIwIDQwLjwv
 cGFyYT4NCiAgICAgICAgICA8L2xpc3RpdGVtPg0KICAgICAgICA8L29yZGVyZWRsaXN0Pg0KQEAg
 LTcwMyw4ICs3MDQsOCBAQA0KIDxwcm9ncmFtbGlzdGluZz4jIyMjIyMjIyMjIyMjIFN0YXJ0IG9m
 IElQRiBydWxlcyBzY3JpcHQgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQogDQogb2lmPSJkYzAi
 ICAgICAgICAgICAgIyBuYW1lIG9mIHRoZSBvdXRib3VuZCBpbnRlcmZhY2UNCi1vZG5zPSIxOTIu
 MC4yLjExIiAgICAjIElTUCdzIGRucyBzZXJ2ZXIgSVAgYWRkcmVzcyBTeW1ib2xpYyZndDsNCi1t
 eWlwPSIxOTIuMC4yLjciICAgICAjIE15IFN0YXRpYyBJUCBhZGRyZXNzIGZyb20gSVNQDQorb2Ru
 cz0iMTkyLjAuMi4xMSIgICAgIyBJU1AncyBkbnMgc2VydmVyIElQIGFkZHJlc3MNCitteWlwPSIx
 OTIuMC4yLjciICAgICAjIG15IHN0YXRpYyBJUCBhZGRyZXNzIGZyb20gSVNQDQoga3M9ImtlZXAg
 c3RhdGUiDQogZmtzPSJmbGFncyBTIGtlZXAgc3RhdGUiDQogDQpAQCAtNzQyLDcgKzc0Myw3IEBA
 DQogICAgICAgICAgc2NyaXB0cyB0aGF0IHJlYWQgPGZpbGVuYW1lPnJjLmNvbmY8L2ZpbGVuYW1l
 PiB3aWxsIGhhdmUNCiAgICAgICAgICBwcm9ibGVtcy48L3BhcmE+DQogDQotICAgICAgIDxwYXJh
 PlRvIGdldCBhcm91bmQgdGhpcyBsaW1pdGF0aW9uIHdpdGggYSByYyBzY3JpcHRzLCByZW1vdmUN
 CisgICAgICAgPHBhcmE+VG8gZ2V0IGFyb3VuZCB0aGlzIGxpbWl0YXRpb24gd2l0aCBhIHJjIHNj
 cmlwdCwgcmVtb3ZlDQogICAgICAgICAgdGhlIGZvbGxvd2luZyBsaW5lOjwvcGFyYT4NCiANCiAg
 ICAgICAgPHByb2dyYW1saXN0aW5nPjxjb21tYW5kPmlwZmlsdGVyX3J1bGVzPTwvY29tbWFuZD4N
 CkBAIC03NTAsNyArNzUxLDcgQEANCiANCiAgICAgICAgPHBhcmE+QWRkIGEgc2NyaXB0IGxpa2Ug
 dGhlIGZvbGxvd2luZyB0byB5b3VyIDxmaWxlbmFtZT4NCiAgICAgICAgICAvdXNyL2xvY2FsL2V0
 Yy9yYy5kLzwvZmlsZW5hbWU+IHN0YXJ0dXAgZGlyZWN0b3J5LiBUaGUgc2NyaXB0DQotICAgICAg
 ICAgc2hvdWxkIGhhdmUgYSBvYnZpb3VzIG5hbWUgbGlrZSA8ZmlsZW5hbWU+bG9hZGlwZnJ1bGVz
 LnNoDQorICAgICAgICAgc2hvdWxkIGhhdmUgYW4gb2J2aW91cyBuYW1lIGxpa2UgPGZpbGVuYW1l
 PmxvYWRpcGZydWxlcy5zaA0KICAgICAgICAgIDwvZmlsZW5hbWU+LiBUaGUgPGZpbGVuYW1lPi5z
 aDwvZmlsZW5hbWU+IGV4dGVuc2lvbiBpcyBtYW5kYXRvcnkuDQogDQogICAgICAgIDxwcm9ncmFt
 bGlzdGluZz4jIS9iaW4vc2gNCkBAIC03NzQsMjAgKzc3NSwyMCBAQA0KICAgICAgICAgIHNlc3Np
 b24gY29udmVyc2F0aW9uLiBUaGUgZmlyZXdhbGwgcnVsZSBzZXQgcHJvY2Vzc2VzIHRoZQ0KICAg
 ICAgICAgIHBhY2tldCAyIHRpbWVzLCBvbmNlIG9uIGl0cyBhcnJpdmFsIGZyb20gdGhlIHB1Ymxp
 YyBJbnRlcm5ldA0KICAgICAgICAgIGhvc3QgYW5kIGFnYWluIGFzIGl0IGxlYXZlcyBmb3IgaXRz
 IHJldHVybiB0cmlwIGJhY2sgdG8gdGhlDQotICAgICAgICAgcHVibGljIEludGVybmV0IGhvc3Qu
 IEVhY2ggdGNwL2lwIHNlcnZpY2UgKGkuZS4gdGVsbmV0LCB3d3csDQorICAgICAgICAgcHVibGlj
 IEludGVybmV0IGhvc3QuIEVhY2ggVENQL0lQIHNlcnZpY2UgKGkuZS4gdGVsbmV0LCB3d3csDQog
 ICAgICAgICAgbWFpbCwgZXRjLikgaXMgcHJlZGVmaW5lZCBieSBpdHMgcHJvdG9jb2wsIHNvdXJj
 ZSBhbmQNCiAgICAgICAgICBkZXN0aW5hdGlvbiBJUCBhZGRyZXNzLCBvciB0aGUgc291cmNlIGFu
 ZCBkZXN0aW5hdGlvbiBwb3J0DQogICAgICAgICAgbnVtYmVyLiBUaGlzIGlzIHRoZSBiYXNpYyBz
 ZWxlY3Rpb24gY3JpdGVyaWEgdXNlZCB0byBjcmVhdGUNCiAgICAgICAgICBydWxlcyB3aGljaCB3
 aWxsIHBhc3Mgb3IgYmxvY2sgc2VydmljZXMuPC9wYXJhPg0KIA0KICAgICAgICA8cGFyYT5JUEYg
 d2FzIG9yaWdpbmFsbHkgd3JpdHRlbiB1c2luZyBhIHJ1bGVzIHByb2Nlc3NpbmcgbG9naWMNCi0g
 ICAgICAgICBvZiAndGhlIGxhc3QgbWF0Y2hpbmcgcnVsZSB3aW5zJyBhbmQgdXNlZCBvbmx5IHN0
 YXRlbGVzcw0KKyAgICAgICAgIG9mIDxxdW90ZT50aGUgbGFzdCBtYXRjaGluZyBydWxlIHdpbnM8
 L3F1b3RlPiBhbmQgdXNlZCBvbmx5IHN0YXRlbGVzcw0KICAgICAgICAgIHJ1bGVzLiBPdmVyIHRp
 bWUgSVBGIGhhcyBiZWVuIGVuaGFuY2VkIHRvIGluY2x1ZGUgYSAncXVpY2snDQogICAgICAgICAg
 b3B0aW9uIGFuZCBhIHN0YXRlZnVsICdrZWVwIHN0YXRlJyBvcHRpb24gd2hpY2ggZHJhc3RpY2Fs
 bHkNCiAgICAgICAgICBtb2Rlcm5pemVkIHRoZSBydWxlcyBwcm9jZXNzaW5nIGxvZ2ljLjwvcGFy
 YT4NCiANCiAgICAgICAgPHBhcmE+VGhlIGluc3RydWN0aW9ucyBjb250YWluZWQgaW4gdGhpcyBz
 ZWN0aW9uIGlzIGJhc2VkIG9uDQotICAgICAgICAgdXNpbmcgcnVsZXMgdGhhdCBjb250YWluIHRo
 ZSAncXVpY2snIG9wdGlvbi4gYW5kIHRoZSBzdGF0ZWZ1bA0KKyAgICAgICAgIHVzaW5nIHJ1bGVz
 IHRoYXQgY29udGFpbiB0aGUgJ3F1aWNrJyBvcHRpb24gYW5kIHRoZSBzdGF0ZWZ1bA0KICAgICAg
 ICAgICdrZWVwIHN0YXRlJyBvcHRpb24uIFRoaXMgaXMgdGhlIGJhc2ljIGZyYW1ld29yayBmb3Ig
 Y29kaW5nIGFuDQogICAgICAgICAgaW5jbHVzaXZlIGZpcmV3YWxsIHJ1bGUgc2V0LjwvcGFyYT4N
 CiANCkBAIC04MTgsMTAgKzgxOSwxMCBAQA0KICAgICAgICAgIHRoZSBlbmQgb2YgYSBydWxlIGxp
 bmUgb3Igb24gaXRzIG93biBsaW5lcy4gQmxhbmsgbGluZXMgYXJlDQogICAgICAgICAgaWdub3Jl
 ZC48L3BhcmE+DQogDQotICAgICAgIDxwYXJhPlJ1bGVzIGNvbnRhaW4ga2V5d29yZHMsIFRoZXNl
 IGtleXdvcmRzIGhhdmUgdG8gYmUgY29kZWQgaW4NCisgICAgICAgPHBhcmE+UnVsZXMgY29udGFp
 biBrZXl3b3Jkcy4gVGhlc2Uga2V5d29yZHMgaGF2ZSB0byBiZSBjb2RlZCBpbg0KICAgICAgICAg
 IGEgc3BlY2lmaWMgb3JkZXIgZnJvbSBsZWZ0IHRvIHJpZ2h0IG9uIHRoZSBsaW5lLiBLZXl3b3Jk
 cyBhcmUNCiAgICAgICAgICBpZGVudGlmaWVkIGluIGJvbGQgdHlwZS4gU29tZSBrZXl3b3JkcyBo
 YXZlIHN1Yi1vcHRpb25zIHdoaWNoDQotICAgICAgICAgbWF5IGJlIGtleXdvcmRzIHRoZW0gc2Vs
 dmVzIGFuZCBhbHNvIGluY2x1ZGUgbW9yZSBzdWItb3B0aW9ucy4NCisgICAgICAgICBtYXkgYmUg
 a2V5d29yZHMgdGhlbXNlbHZlcyBhbmQgYWxzbyBpbmNsdWRlIG1vcmUgc3ViLW9wdGlvbnMuDQog
 ICAgICAgICAgRWFjaCBvZiB0aGUgaGVhZGluZ3MgaW4gdGhlIGJlbG93IHN5bnRheCBoYXMgYSBi
 b2xkIHNlY3Rpb24NCiAgICAgICAgICBoZWFkZXIgd2hpY2ggZXhwYW5kcyBvbiB0aGUgY29udGVu
 dC48L3BhcmE+DQogDQpAQCAtODc3LDExICs4NzgsMTEgQEANCiAgICAgICAgICAgICAgb3RoZXIg
 aGFzIHRvIGJlIGNvZGVkIG9yIHRoZSBydWxlIHdpbGwgbm90IHBhc3Mgc3ludGF4DQogICAgICAg
 ICAgICAgIGNoZWNrLjwvcGFyYT4NCiANCi0gICAgICAgICAgIDxwYXJhPmluIG1lYW5zIHRoaXMg
 cnVsZSBpcyBiZWluZyBhcHBsaWVkIGFnYWluc3QgYW4gaW5ib3VuZA0KKyAgICAgICAgICAgPHBh
 cmE+PGxpdGVyYWw+aW48L2xpdGVyYWw+IG1lYW5zIHRoaXMgcnVsZSBpcyBiZWluZyBhcHBsaWVk
 IGFnYWluc3QgYW4gaW5ib3VuZA0KICAgICAgICAgICAgICBwYWNrZXQgd2hpY2ggaGFzIGp1c3Qg
 YmVlbiByZWNlaXZlZCBvbiB0aGUgaW50ZXJmYWNlDQogICAgICAgICAgICAgIGZhY2luZyB0aGUg
 cHVibGljIEludGVybmV0LjwvcGFyYT4NCiANCi0gICAgICAgICAgIDxwYXJhPm91dCBtZWFucyB0
 aGlzIHJ1bGUgaXMgYmVpbmcgYXBwbGllZCBhZ2FpbnN0IGFuDQorICAgICAgICAgICA8cGFyYT48
 bGl0ZXJhbD5vdXQ8L2xpdGVyYWw+IG1lYW5zIHRoaXMgcnVsZSBpcyBiZWluZyBhcHBsaWVkIGFn
 YWluc3QgYW4NCiAgICAgICAgICAgICAgb3V0Ym91bmQgcGFja2V0IGRlc3RpbmVkIGZvciB0aGUg
 aW50ZXJmYWNlIGZhY2luZyB0aGUgcHVibGljDQogICAgICAgICAgICAgIEludGVybmV0LjwvcGFy
 YT4NCiAgICAgICAgICA8L3NlY3QzPg0KQEAgLTg5MywxOCArODk0LDE4IEBADQogICAgICAgICAg
 ICAgICAgPC9wYXJhPg0KICAgICAgICAgICAgPC9ub3RlPg0KIA0KLSAgICAgICAgICAgPHBhcmE+
 bG9nIGluZGljYXRlcyB0aGF0IHRoZSBwYWNrZXQgaGVhZGVyIHdpbGwgYmUgd3JpdHRlbiB0bw0K
 KyAgICAgICAgICAgPHBhcmE+PGxpdGVyYWw+bG9nPC9saXRlcmFsPiBpbmRpY2F0ZXMgdGhhdCB0
 aGUgcGFja2V0IGhlYWRlciB3aWxsIGJlIHdyaXR0ZW4gdG8NCiAgICAgICAgICAgICAgdGhlIGlw
 bCBsb2cgKGFzIGRlc2NyaWJlZCBpbiB0aGUgTE9HR0lORyBzZWN0aW9uIGJlbG93KSBpZg0KICAg
 ICAgICAgICAgICB0aGUgc2VsZWN0aW9uIHBhcmFtZXRlcnMgbWF0Y2ggdGhlIHBhY2tldC48L3Bh
 cmE+DQogDQotICAgICAgICAgICA8cGFyYT5xdWljayBpbmRpY2F0ZXMgdGhhdCBpZiB0aGUgc2Vs
 ZWN0aW9uIHBhcmFtZXRlcnMgbWF0Y2gNCisgICAgICAgICAgIDxwYXJhPjxsaXRlcmFsPnF1aWNr
 PC9saXRlcmFsPiBpbmRpY2F0ZXMgdGhhdCBpZiB0aGUgc2VsZWN0aW9uIHBhcmFtZXRlcnMgbWF0
 Y2gNCiAgICAgICAgICAgICAgdGhlIHBhY2tldCwgdGhpcyBydWxlIHdpbGwgYmUgdGhlIGxhc3Qg
 cnVsZSBjaGVja2VkLA0KICAgICAgICAgICAgICBhbGxvd2luZyBhICJzaG9ydC1jaXJjdWl0IiBw
 YXRoIHRvIGF2b2lkIHByb2Nlc3NpbmcgYW55DQogICAgICAgICAgICAgIGZvbGxvd2luZyBydWxl
 cyBmb3IgdGhpcyBwYWNrZXQuIFRoaXMgb3B0aW9uIGlzIGEgbWFuZGF0b3J5DQogICAgICAgICAg
 ICAgIHJlcXVpcmVtZW50IGZvciB0aGUgbW9kZXJuaXplZCBydWxlcyBwcm9jZXNzaW5nIGxvZ2lj
 Lg0KICAgICAgICAgICAgICA8L3BhcmE+DQogDQotICAgICAgICAgICA8cGFyYT5vbiBpbmRpY2F0
 ZXMgdGhlIGludGVyZmFjZSBuYW1lIHRvIGJlIGluY29ycG9yYXRlZCBpbnRvDQorICAgICAgICAg
 ICA8cGFyYT48bGl0ZXJhbD5vbjwvbGl0ZXJhbD4gaW5kaWNhdGVzIHRoZSBpbnRlcmZhY2UgbmFt
 ZSB0byBiZSBpbmNvcnBvcmF0ZWQgaW50bw0KICAgICAgICAgICAgICB0aGUgc2VsZWN0aW9uIHBh
 cmFtZXRlcnMuIEludGVyZmFjZSBuYW1lcyBhcmUgYXMgZGlzcGxheWVkDQogICAgICAgICAgICAg
 IGJ5IGlmY29uZmlnLiBVc2luZyB0aGlzIG9wdGlvbiwgdGhlIHJ1bGUgd2lsbCBvbmx5IG1hdGNo
 IGlmDQogICAgICAgICAgICAgIHRoZSBwYWNrZXQgaXMgZ29pbmcgdGhyb3VnaCB0aGF0IGludGVy
 ZmFjZSBpbiB0aGUgc3BlY2lmaWVkDQpAQCAtOTE2LDEwICs5MTcsMTAgQEANCiAgICAgICAgICAg
 ICAgSW1tZWRpYXRlbHkgZm9sbG93aW5nIHRoZSBsb2cga2V5d29yZCwgdGhlIGZvbGxvd2luZw0K
 ICAgICAgICAgICAgICBxdWFsaWZpZXJzIG1heSBiZSB1c2VkIChpbiB0aGlzIG9yZGVyKTo8L3Bh
 cmE+DQogDQotICAgICAgICAgICA8cGFyYT5ib2R5IGluZGljYXRlcyB0aGF0IHRoZSBmaXJzdCAx
 MjggYnl0ZXMgb2YgdGhlIHBhY2tldA0KKyAgICAgICAgICAgPHBhcmE+PGxpdGVyYWw+Ym9keTwv
 bGl0ZXJhbD4gaW5kaWNhdGVzIHRoYXQgdGhlIGZpcnN0IDEyOCBieXRlcyBvZiB0aGUgcGFja2V0
 DQogICAgICAgICAgICAgIGNvbnRlbnRzIHdpbGwgYmUgbG9nZ2VkIGFmdGVyIHRoZSBoZWFkZXJz
 LjwvcGFyYT4NCiANCi0gICAgICAgICAgIDxwYXJhPmZpcnN0IElmIHRoZSAnbG9nJyBrZXl3b3Jk
 IGlzIGJlaW5nIHVzZWQgaW4gY29uanVuY3Rpb24NCisgICAgICAgICAgIDxwYXJhPjxsaXRlcmFs
 PmZpcnN0PC9saXRlcmFsPiBJZiB0aGUgJ2xvZycga2V5d29yZCBpcyBiZWluZyB1c2VkIGluIGNv
 bmp1bmN0aW9uDQogICAgICAgICAgICAgIHdpdGggYSAia2VlcCBzdGF0ZSIgb3B0aW9uLCBpdCBp
 cyByZWNvbW1lbmRlZCB0aGF0IHRoaXMNCiAgICAgICAgICAgICAgb3B0aW9uIGlzIGFsc28gYXBw
 bGllZCBzbyB0aGF0IG9ubHkgdGhlIHRyaWdnZXJpbmcgcGFja2V0DQogICAgICAgICAgICAgIGlz
 IGxvZ2dlZCBhbmQgbm90IGV2ZXJ5IHBhY2tldCB3aGljaCB0aGVyZSBhZnRlciBtYXRjaGVzDQpA
 QCAtOTM5LDE1ICs5NDAsMTUgQEANCiANCiAgICAgICAgICA8c2VjdDM+DQogICAgICAgICAgICA8
 dGl0bGU+UFJPVE88L3RpdGxlPg0KLSAgICAgICAgICAgPHBhcmE+UHJvdG8gaXMgdGhlIHN1Ympl
 Y3Qga2V5d29yZCwgaXQgbXVzdCBiZSBjb2RlZCBhbG9uZw0KKyAgICAgICAgICAgPHBhcmE+PGxp
 dGVyYWw+cHJvdG88L2xpdGVyYWw+IGlzIHRoZSBzdWJqZWN0IGtleXdvcmQsIGl0IG11c3QgYmUg
 Y29kZWQgYWxvbmcNCiAgICAgICAgICAgICAgd2l0aCBvbmUgb2YgaXQucyBjb3JyZXNwb25kaW5n
 IGtleXdvcmQgc3ViLW9wdGlvbiB2YWx1ZXMuDQogICAgICAgICAgICAgIFRoZSB2YWx1ZSBhbGxv
 d3MgYSBzcGVjaWZpYyBwcm90b2NvbCB0byBiZSBtYXRjaGVkIGFnYWluc3QuDQogICAgICAgICAg
 ICAgIFRoaXMgb3B0aW9uIGlzIGEgbWFuZGF0b3J5IHJlcXVpcmVtZW50IGZvciB0aGUgbW9kZXJu
 aXplZA0KICAgICAgICAgICAgICBydWxlcyBwcm9jZXNzaW5nIGxvZ2ljLjwvcGFyYT4NCiANCi0g
 ICAgICAgICAgIDxwYXJhPnRjcC91ZHAgfCB1ZHAgfCB0Y3AgfCBpY21wIG9yIGFueSBwcm90b2Nv
 bCBuYW1lcyBmb3VuZA0KLSAgICAgICAgICAgICBpbiAvZXRjL3Byb3RvY29scyBhcmUgcmVjb2du
 aXplZCBhbmQgbWF5IGJlIHVzZWQuIFRoZQ0KLSAgICAgICAgICAgICBzcGVjaWFsIHByb3RvY29s
 IGtleXdvcmQgdGNwL3VkcCBtYXkgYmUgdXNlZCB0byBtYXRjaA0KKyAgICAgICAgICAgPHBhcmE+
 PGxpdGVyYWw+dGNwL3VkcCB8IHVkcCB8IHRjcCB8IGljbXA8L2xpdGVyYWw+IG9yIGFueSBwcm90
 b2NvbCBuYW1lcyBmb3VuZA0KKyAgICAgICAgICAgICBpbiA8ZmlsZW5hbWU+L2V0Yy9wcm90b2Nv
 bHM8L2ZpbGVuYW1lPiBhcmUgcmVjb2duaXplZCBhbmQgbWF5IGJlIHVzZWQuIFRoZQ0KKyAgICAg
 ICAgICAgICBzcGVjaWFsIHByb3RvY29sIGtleXdvcmQgPGxpdGVyYWw+dGNwL3VkcDwvbGl0ZXJh
 bD4gbWF5IGJlIHVzZWQgdG8gbWF0Y2gNCiAgICAgICAgICAgICAgZWl0aGVyIGEgPGFjcm9ueW0+
 VENQPC9hY3JvbnltPiBvciBhIFVEUCBwYWNrZXQsIGFuZCBoYXMgYmVlbiBhZGRlZCBhcyBhDQog
 ICAgICAgICAgICAgIGNvbnZlbmllbmNlIHRvIHNhdmUgZHVwbGljYXRpb24gb2Ygb3RoZXJ3aXNl
 IGlkZW50aWNhbA0KICAgICAgICAgICAgICBydWxlcy48L3BhcmE+DQpAQCAtOTU1LDEyICs5NTYs
 MTIgQEANCiANCiAgICAgICAgICA8c2VjdDM+DQogICAgICAgICAgICA8dGl0bGU+U1JDX0FERFIv
 RFNUX0FERFI8L3RpdGxlPg0KLSAgICAgICAgICAgPHBhcmE+VGhlICdhbGwnIGtleXdvcmQgaXMg
 ZXNzZW50aWFsbHkgYSBzeW5vbnltIGZvciAiZnJvbQ0KKyAgICAgICAgICAgPHBhcmE+VGhlIDxs
 aXRlcmFsPmFsbDwvbGl0ZXJhbD4ga2V5d29yZCBpcyBlc3NlbnRpYWxseSBhIHN5bm9ueW0gZm9y
 ICJmcm9tDQogICAgICAgICAgICAgIGFueSB0byBhbnkiIHdpdGggbm8gb3RoZXIgbWF0Y2ggcGFy
 YW1ldGVycy48L3BhcmE+DQogDQotICAgICAgICAgICA8cGFyYT5mcm9tIHNyYyB0byBkc3QgVGhl
 IGZyb20gYW5kIHRvIGtleXdvcmRzIGFyZSB1c2VkIHRvDQorICAgICAgICAgICA8cGFyYT48bGl0
 ZXJhbD5mcm9tIHNyYyB0byBkc3Q8L2xpdGVyYWw+OiB0aGUgZnJvbSBhbmQgdG8ga2V5d29yZHMg
 YXJlIHVzZWQgdG8NCiAgICAgICAgICAgICAgbWF0Y2ggYWdhaW5zdCBJUCBhZGRyZXNzZXMuIFJ1
 bGVzIG11c3Qgc3BlY2lmeSBCT1RIIHNvdXJjZQ0KLSAgICAgICAgICAgICBhbmQgZGVzdGluYXRp
 b24gcGFyYW1ldGVycy4gLmFueS4gaXMgYSBzcGVjaWFsIGtleXdvcmQgdGhhdA0KKyAgICAgICAg
 ICAgICBhbmQgZGVzdGluYXRpb24gcGFyYW1ldGVycy4gPGxpdGVyYWw+YW55PC9saXRlcmFsPiBp
 cyBhIHNwZWNpYWwga2V5d29yZCB0aGF0DQogICAgICAgICAgICAgIG1hdGNoZXMgYW55IElQIGFk
 ZHJlc3MuIEFzIGluICdmcm9tIGFueSB0byBhbnknIG9yICdmcm9tDQogICAgICAgICAgICAgIDAu
 MC4wLjAvMCB0byBhbnknIG9yICdmcm9tIGFueSB0byAwLjAuMC4wLzAnIG9yICdmcm9tDQogICAg
 ICAgICAgICAgIDAuMC4wLjAgdG8gYW55JyBvciAnZnJvbSBhbnkgdG8gMC4wLjAuMCc8L3BhcmE+
 DQpAQCAtOTgwLDExICs5ODEsMTEgQEANCiAgICAgICAgICAgIDxwYXJhPklmIGEgcG9ydCBtYXRj
 aCBpcyBpbmNsdWRlZCwgZm9yIGVpdGhlciBvciBib3RoIG9mDQogICAgICAgICAgICAgIHNvdXJj
 ZSBhbmQgZGVzdGluYXRpb24sIHRoZW4gaXQgaXMgb25seSBhcHBsaWVkIHRvIDxhY3JvbnltPlRD
 UDwvYWNyb255bT4gYW5kDQogICAgICAgICAgICAgIFVEUCBwYWNrZXRzLiBXaGVuIGNvbXBvc2lu
 ZyBwb3J0IGNvbXBhcmlzb25zLCBlaXRoZXIgdGhlDQotICAgICAgICAgICAgIHNlcnZpY2UgbmFt
 ZSBmcm9tIC9ldGMvc2VydmljZXMgb3IgYW4gaW50ZWdlciBwb3J0IG51bWJlcg0KKyAgICAgICAg
 ICAgICBzZXJ2aWNlIG5hbWUgZnJvbSA8ZmlsZW5hbWU+L2V0Yy9zZXJ2aWNlczwvZmlsZW5hbWU+
 IG9yIGFuIGludGVnZXIgcG9ydCBudW1iZXINCiAgICAgICAgICAgICAgbWF5IGJlIHVzZWQuIFdo
 ZW4gdGhlIHBvcnQgYXBwZWFycyBhcyBwYXJ0IG9mIHRoZSBmcm9tDQogICAgICAgICAgICAgIG9i
 amVjdCwgaXQgbWF0Y2hlcyB0aGUgc291cmNlIHBvcnQgbnVtYmVyLCB3aGVuIGl0IGFwcGVhcnMN
 CiAgICAgICAgICAgICAgYXMgcGFydCBvZiB0aGUgdG8gb2JqZWN0LCBpdCBtYXRjaGVzIHRoZSBk
 ZXN0aW5hdGlvbiBwb3J0DQotICAgICAgICAgICAgIG51bWJlci4gVGhlIHVzZSBvZiB0aGUgcG9y
 dCBvcHRpb24gd2l0aCB0aGUgLnRvLiBvYmplY3QgaXMNCisgICAgICAgICAgICAgbnVtYmVyLiBU
 aGUgdXNlIG9mIHRoZSBwb3J0IG9wdGlvbiB3aXRoIHRoZSA8bGl0ZXJhbD50bzwvbGl0ZXJhbD4g
 b2JqZWN0IGlzDQogICAgICAgICAgICAgIGEgbWFuZGF0b3J5IHJlcXVpcmVtZW50IGZvciB0aGUg
 bW9kZXJuaXplZCBydWxlcyBwcm9jZXNzaW5nDQogICAgICAgICAgICAgIGxvZ2ljLiBBcyBpbiAn
 ZnJvbSBhbnkgdG8gYW55IHBvcnQgPSA4MCc8L3BhcmE+DQogDQpAQCAtMTAxOCw3ICsxMDE5LDcg
 QEANCiANCiAgICAgICAgICA8c2VjdDM+DQogICAgICAgICAgICA8dGl0bGU+U1RBVEVGVUw8L3Rp
 dGxlPg0KLSAgICAgICAgICAgPHBhcmE+J2tlZXAgc3RhdGUnIGluZGljYXRlcyB0aGF0IG9uIGEg
 cGFzcyBydWxlLCBhbnkgcGFja2V0cw0KKyAgICAgICAgICAgPHBhcmE+PGxpdGVyYWw+a2VlcCBz
 dGF0ZTwvbGl0ZXJhbD4gaW5kaWNhdGVzIHRoYXQgb24gYSBwYXNzIHJ1bGUsIGFueSBwYWNrZXRz
 DQogICAgICAgICAgICAgIHRoYXQgbWF0Y2ggdGhlIHJ1bGVzIHNlbGVjdGlvbiBwYXJhbWV0ZXJz
 IGlzIHRvIGFjdGl2YXRlDQogICAgICAgICAgICAgIHRoZSBzdGF0ZWZ1bCBmaWx0ZXJpbmcgZmFj
 aWxpdHkuPC9wYXJhPg0KIA0KQEAgLTEwNDYsNyArMTA0Nyw3IEBADQogICAgICAgICAgIG9yIFVE
 UCBzZXNzaW9uIHRocm91Z2guIFNvIGlmIHlvdSBnZXQgSUNNUCB0eXBlIDMgY29kZSA0IGluDQog
 ICAgICAgICAgIHJlc3BvbnNlIHRvIHNvbWUgd2ViIHN1cmZpbmcgYWxsb3dlZCBvdXQgYnkgYSBr
 ZWVwIHN0YXRlIHJ1bGUsDQogICAgICAgICAgIHRoZXkgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGFs
 bG93ZWQgaW4uIEFueSBwYWNrZXQgdGhhdCBJUEYgY2FuDQotICAgICAgICAgIGJlIGNlcnRhaW4g
 aXMgcGFydCBvZiBhIGFjdGl2ZSBzZXNzaW9uLCBldmVuIGlmIGl0IGlzIGENCisgICAgICAgICAg
 YmUgY2VydGFpbiBpcyBwYXJ0IG9mIGFuIGFjdGl2ZSBzZXNzaW9uLCBldmVuIGlmIGl0IGlzIGEN
 CiAgICAgICAgICAgZGlmZmVyZW50IHByb3RvY29sLCB3aWxsIGJlIGxldCBpbi48L3BhcmE+DQog
 DQogICAgICAgICA8cGFyYT5XaGF0IGhhcHBlbnMgaXM6PC9wYXJhPg0KQEAgLTEwOTAsMTYgKzEw
 OTEsMTYgQEANCiAgICAgICAgIGludGVyZmFjZXMgd2hpY2ggaGF2ZSB0byBoYXZlIHJ1bGVzIHRv
 IGFsbG93IHRoZSBmaXJld2FsbCB0bw0KICAgICAgICAgZnVuY3Rpb24uPC9wYXJhPg0KIA0KLSAg
 ICAgIDxwYXJhPkFsbCBVbml4IGZsYXZvcmVkIHN5c3RlbXMgaW5jbHVkaW5nICZvczsgYXJlIGRl
 c2lnbmVkIHRvDQotICAgICAgICB1c2UgaW50ZXJmYWNlIGwwIGFuZCBJUCBhZGRyZXNzIDEyNy4w
 LjAuMSBmb3IgaW50ZXJuYWwNCi0gICAgICAgIGNvbW11bmljYXRpb24gd2l0aCBpbiB0aGUgJm9z
 OyBvcGVyYXRpbmcgc3lzdGVtLiBUaGUgZmlyZXdhbGwNCisgICAgICA8cGFyYT5BbGwgJnVuaXg7
 IGZsYXZvcmVkIHN5c3RlbXMgaW5jbHVkaW5nICZvczsgYXJlIGRlc2lnbmVkIHRvDQorICAgICAg
 ICB1c2UgaW50ZXJmYWNlIDxkZXZpY2VuYW1lPmxvMDwvZGV2aWNlbmFtZT4gYW5kIElQIGFkZHJl
 c3MgMTI3LjAuMC4xIGZvciBpbnRlcm5hbA0KKyAgICAgICAgY29tbXVuaWNhdGlvbiB3aXRoIGlu
 IHRoZSBvcGVyYXRpbmcgc3lzdGVtLiBUaGUgZmlyZXdhbGwNCiAgICAgICAgIHJ1bGVzIG11c3Qg
 Y29udGFpbiBydWxlcyB0byBhbGxvdyBmcmVlIHVubW9sZXN0ZWQgbW92ZW1lbnQgb2YNCiAgICAg
 ICAgIHRoZXNlIHNwZWNpYWwgaW50ZXJuYWxseSB1c2VkIHBhY2tldHMuPC9wYXJhPg0KIA0KICAg
 ICAgIDxwYXJhPlRoZSBpbnRlcmZhY2Ugd2hpY2ggZmFjZXMgdGhlIHB1YmxpYyBJbnRlcm5ldCwg
 aXMgdGhlIG9uZQ0KICAgICAgICAgd2hpY2ggeW91IGNvZGUgeW91ciBydWxlcyB0byBhdXRob3Jp
 emUgYW5kIGNvbnRyb2wgYWNjZXNzIG91dA0KICAgICAgICAgdG8gdGhlIHB1YmxpYyBJbnRlcm5l
 dCBhbmQgYWNjZXNzIHJlcXVlc3RzIGFycml2aW5nIGZyb20gdGhlDQotICAgICAgICBwdWJsaWMg
 SW50ZXJuZXQuIFRoaXMgY2FuIGJlIHlvdXIgLnVzZXIgcHBwLiB0dW4wIGludGVyZmFjZSBvcg0K
 KyAgICAgICAgcHVibGljIEludGVybmV0LiBUaGlzIGNhbiBiZSB5b3VyICd1c2VyIHBwcCcgPGRl
 dmljZW5hbWU+dHVuMDwvZGV2aWNlbmFtZT4gaW50ZXJmYWNlIG9yDQogICAgICAgICB5b3VyIE5J
 QyBjYXJkIHRoYXQgaXMgY2FibGVkIHRvIHlvdXIgRFNMIG9yIGNhYmxlIG1vZGVtLjwvcGFyYT4N
 CiANCiAgICAgICA8cGFyYT5JbiBjYXNlcyB3aGVyZSBvbmUgb3IgbW9yZSB0aGFuIG9uZSBOSUNz
 IGFyZSBjYWJsZWQgdG8NCkBAIC0xMTQ4LDEzICsxMTQ5LDEzIEBADQogICAgICAgICB0aGUgZmly
 c3Qgb2NjdXJyZW5jZSBiZWNhdXNlIHRoaXMgaXMgc29tZXRoaW5nIGEgYXR0YWNrZXINCiAgICAg
 ICAgIHdvdWxkIGRvLjwvcGFyYT4NCiANCi0gICAgICA8cGFyYT5BbnkgdGltZSB5b3Ugc2VlIGxv
 ZyBtZXNzYWdlcyBvbiBhIHJ1bGUgd2l0aCAubG9nIGZpcnN0Lg0KKyAgICAgIDxwYXJhPkFueSB0
 aW1lIHlvdSBzZWUgbG9nIG1lc3NhZ2VzIG9uIGEgcnVsZSB3aXRoICdsb2cgZmlyc3QnLg0KICAg
 ICAgICAgWW91IHNob3VsZCBkbyBhbiA8Y29tbWFuZD5pcGZzdGF0IC1oaW88L2NvbW1hbmQ+IGNv
 bW1hbmQgdG8NCiAgICAgICAgIHNlZSB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoZSBydWxlIGhhcyBi
 ZWVuIG1hdGNoZWQgc28geW91IGtub3cNCiAgICAgICAgIGlmIHlvdXIgYXJlIGJlaW5nIGZsb29k
 ZWQsIGkuZS4gdW5kZXIgYXR0YWNrLjwvcGFyYT4NCiANCiAgICAgICA8cGFyYT5XaGVuIHlvdSBs
 b2cgcGFja2V0cyB3aXRoIHBvcnQgbnVtYmVycyB5b3UgZG8gbm90DQotICAgICAgICByZWNvZ25p
 emUsIGdvIHRvIDx1bGluaw0KKyAgICAgICAgcmVjb2duaXplLCBsb29rIGl0IHVwIGluIDxmaWxl
 bmFtZT4vZXRjL3NlcnZpY2VzPC9maWxlbmFtZT4gb3IgZ28gdG8gPHVsaW5rDQogICAgICAgICB1
 cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlzdGF0cy5jb20vdG9vbHMvcG9ydHNlYXJjaC5waHAiPjwv
 dWxpbms+DQogICAgICAgICBhbmQgZG8gYSBwb3J0IG51bWJlciBsb29rdXAgdG8gZmluZCB3aGF0
 IHRoZSBwdXJwb3NlIG9mIHRoYXQNCiAgICAgICAgIHBvcnQgbnVtYmVyIGlzLjwvcGFyYT4NCkBA
 IC0xMTY3LDcgKzExNjgsNyBAQA0KICAgICAgIDxwYXJhPlRoZSBmb2xsb3dpbmcgcnVsZSBzZXQg
 aXMgYSBjb21wbGV0ZSB2ZXJ5IHNlY3VyZQ0KICAgICAgICAgJ2luY2x1c2l2ZScgdHlwZSBvZiBm
 aXJld2FsbCBydWxlIHNldCB0aGF0IEkgaGF2ZSB1c2VkIG9uIG15DQogICAgICAgICBzeXN0ZW0u
 IFlvdSBjYW4gbm90IGdvIHdyb25nIHVzaW5nIHRoaXMgcnVsZSBzZXQgZm9yIHlvdXIgb3duLg0K
 LSAgICAgICAgSnVzdCBjb21tZW50IG91dCBhbnkgcGFzcyBydWxlcyBmb3Igc2VydmljZXMgdG8g
 ZG9uLnQgd2FudCB0bw0KKyAgICAgICAgSnVzdCBjb21tZW50IG91dCBhbnkgcGFzcyBydWxlcyBm
 b3Igc2VydmljZXMgdG8gZG9uJ3Qgd2FudCB0bw0KICAgICAgICAgYXV0aG9yaXplLjwvcGFyYT4N
 CiANCiAgICAgICA8cGFyYT5JZiB5b3Ugc2VlIG1lc3NhZ2VzIGluIHlvdXIgbG9nIHRoYXQgeW91
 IHdhbnQgdG8gc3RvcA0KQEAgLTExODIsOCArMTE4Myw4IEBADQogICAgICAgICA8ZmlsZW5hbWU+
 L2V0Yy9pcGYucnVsZXM8L2ZpbGVuYW1lPjo8L3BhcmE+DQogDQogICAgICAgPHByb2dyYW1saXN0
 aW5nPiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
 IyMjIyMjIyMjIyMjDQotIyBObyByZXN0cmljdGlvbnMgb24gSW5zaWRlIExhbiBJbnRlcmZhY2Ug
 Zm9yIHByaXZhdGUgbmV0d29yaw0KLSMgTm90IG5lZWRlZCB1bmxlc3MgeW91IGhhdmUgTGFuDQor
 IyBObyByZXN0cmljdGlvbnMgb24gSW5zaWRlIExBTiBJbnRlcmZhY2UgZm9yIHByaXZhdGUgbmV0
 d29yaw0KKyMgTm90IG5lZWRlZCB1bmxlc3MgeW91IGhhdmUgTEFODQogIyMjIyMjIyMjIyMjIyMj
 IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiANCiAj
 cGFzcyBvdXQgcXVpY2sgb24geGwwIGFsbA0KQEAgLTEyMDMsMTQgKzEyMDQsMTQgQEANCiAjIyMj
 IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
 IyMjIw0KIA0KICMgQWxsb3cgb3V0IGFjY2VzcyB0byBteSBJU1AncyBEb21haW4gbmFtZSBzZXJ2
 ZXIuDQotIyB4eHggbXVzdCBiZSB0aGUgSVAgYWRkcmVzcyBvZiB5b3VyIElTUC5zIEROUy4NCisj
 IHh4eCBtdXN0IGJlIHRoZSBJUCBhZGRyZXNzIG9mIHlvdXIgSVNQJ3MgRE5TLg0KICMgRHVwIHRo
 ZXNlIGxpbmVzIGlmIHlvdXIgSVNQIGhhcyBtb3JlIHRoYW4gb25lIEROUyBzZXJ2ZXINCiAjIEdl
 dCB0aGUgSVAgYWRkcmVzc2VzIGZyb20gL2V0Yy9yZXNvbHYuY29uZiBmaWxlDQogcGFzcyBvdXQg
 cXVpY2sgb24gZGMwIHByb3RvIHRjcCBmcm9tIGFueSB0byB4eHggcG9ydCA9IDUzIGZsYWdzIFMg
 a2VlcCBzdGF0ZQ0KIHBhc3Mgb3V0IHF1aWNrIG9uIGRjMCBwcm90byB1ZHAgZnJvbSBhbnkgdG8g
 eHh4IHBvcnQgPSA1MyBrZWVwIHN0YXRlDQogDQogIyBBbGxvdyBvdXQgYWNjZXNzIHRvIG15IElT
 UCdzIERIQ1Agc2VydmVyIGZvciBjYWJsZSBvciBEU0wgbmV0d29ya3MuDQotIyBUaGlzIHJ1bGUg
 aXMgbm90IG5lZWRlZCBmb3IgLnVzZXIgcHBwLiB0eXBlIGNvbm5lY3Rpb24gdG8gdGhlDQorIyBU
 aGlzIHJ1bGUgaXMgbm90IG5lZWRlZCBmb3IgJ3VzZXIgcHBwJyB0eXBlIGNvbm5lY3Rpb24gdG8g
 dGhlDQogIyBwdWJsaWMgSW50ZXJuZXQsIHNvIHlvdSBjYW4gZGVsZXRlIHRoaXMgd2hvbGUgZ3Jv
 dXAuDQogIyBVc2UgdGhlIGZvbGxvd2luZyBydWxlIGFuZCBjaGVjayBsb2cgZm9yIElQIGFkZHJl
 c3MuDQogIyBUaGVuIHB1dCBJUCBhZGRyZXNzIGluIGNvbW1lbnRlZCBvdXQgcnVsZSAmIGRlbGV0
 ZSBmaXJzdCBydWxlDQpAQCAtMTI1OCw3ICsxMjU5LDcgQEANCiBwYXNzIG91dCBxdWljayBvbiBk
 YzAgcHJvdG8gdGNwIGZyb20gYW55IHRvIGFueSBwb3J0ID0gNDMgZmxhZ3MgUyBrZWVwIHN0YXRl
 DQogDQogIyBCbG9jayBhbmQgbG9nIG9ubHkgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgZXZlcnl0
 aGluZw0KLSMgZWxzZSB0aGF0LnMgdHJ5aW5nIHRvIGdldCBvdXQuDQorIyBlbHNlIHRoYXQncyB0
 cnlpbmcgdG8gZ2V0IG91dC4NCiAjIFRoaXMgcnVsZSBlbmZvcmNlcyB0aGUgYmxvY2sgYWxsIGJ5
 IGRlZmF1bHQgbG9naWMuDQogYmxvY2sgb3V0IGxvZyBmaXJzdCBxdWljayBvbiBkYzAgYWxsDQog
 DQpAQCAtMTMxNCwxMCArMTMxNSwxMCBAQA0KIGJsb2NrIGluIGxvZyBmaXJzdCBxdWljayBvbiBk
 YzAgcHJvdG8gdGNwL3VkcCBmcm9tIGFueSB0byBhbnkgcG9ydCA9IDgxDQogDQogIyBBbGxvdyB0
 cmFmZmljIGluIGZyb20gSVNQJ3MgREhDUCBzZXJ2ZXIuIFRoaXMgcnVsZSBtdXN0IGNvbnRhaW4N
 Ci0jIHRoZSBJUCBhZGRyZXNzIG9mIHlvdXIgSVNQLnMgREhDUCBzZXJ2ZXIgYXMgaXQucyB0aGUg
 b25seQ0KKyMgdGhlIElQIGFkZHJlc3Mgb2YgeW91ciBJU1AncyBESENQIHNlcnZlciBhcyBpdCdz
 IHRoZSBvbmx5DQogIyBhdXRob3JpemVkIHNvdXJjZSB0byBzZW5kIHRoaXMgcGFja2V0IHR5cGUu
 IE9ubHkgbmVjZXNzYXJ5IGZvcg0KICMgY2FibGUgb3IgRFNMIGNvbmZpZ3VyYXRpb25zLiBUaGlz
 IHJ1bGUgaXMgbm90IG5lZWRlZCBmb3INCi0jIC51c2VyIHBwcC4gdHlwZSBjb25uZWN0aW9uIHRv
 IHRoZSBwdWJsaWMgSW50ZXJuZXQuDQorIyAndXNlciBwcHAnIHR5cGUgY29ubmVjdGlvbiB0byB0
 aGUgcHVibGljIEludGVybmV0Lg0KICMgVGhpcyBpcyB0aGUgc2FtZSBJUCBhZGRyZXNzIHlvdSBj
 YXB0dXJlZCBhbmQNCiAjIHVzZWQgaW4gdGhlIG91dGJvdW5kIHNlY3Rpb24uDQogcGFzcyBpbiBx
 dWljayBvbiBkYzAgcHJvdG8gdWRwIGZyb20gei56LnoueiB0byBhbnkgcG9ydCA9IDY4IGtlZXAg
 c3RhdGUNCkBAIC0xNDMwLDE0ICsxNDMxLDE0IEBADQogICAgIDxzZWN0Mj4NCiAgICAgICA8dGl0
 bGU+SVA8YWNyb255bT5OQVQ8L2Fjcm9ueW0+PC90aXRsZT4NCiANCi0gICAgICA8cGFyYT48YWNy
 b255bT5OQVQ8L2Fjcm9ueW0+IHJ1bGVzIGFyZSBsb2FkZWQgYnkgdXNpbmcgdGhlIGlwbmF0DQor
 ICAgICAgPHBhcmE+PGFjcm9ueW0+TkFUPC9hY3JvbnltPiBydWxlcyBhcmUgbG9hZGVkIGJ5IHVz
 aW5nIHRoZSA8Y29tbWFuZD5pcG5hdDwvY29tbWFuZD4NCiAgICAgICAgIGNvbW1hbmQuIFR5cGlj
 YWxseSB0aGUgPGFjcm9ueW0+TkFUPC9hY3JvbnltPiBydWxlcyBhcmUgc3RvcmVkDQogICAgICAg
 ICBpbiA8ZmlsZW5hbWU+L2V0Yy9pcG5hdC5ydWxlcyA8L2ZpbGVuYW1lPi4gU2VlICZtYW4uaXBu
 YXQuMQ0KICAgICAgICAgZm9yIGRldGFpbHMuPC9wYXJhPg0KIA0KICAgICAgIDxwYXJhPldoZW4g
 Y2hhbmdpbmcgdGhlIDxhY3JvbnltPk5BVDwvYWNyb255bT4gcnVsZXMgYWZ0ZXINCi0gICAgICAg
 IDxhY3JvbnltPk5BVDwvYWNyb255bT4gaGFzIGJlZW4gc3RhcnRlZCwgTWFrZSB5b3VyIGNoYW5n
 ZXMgdG8NCi0gICAgICAgIHRoZSBmaWxlIGNvbnRhaW5pbmcgdGhlIG5hdCBydWxlcywgdGhlbiBy
 dW4gaXBuYXQgY29tbWFuZCB3aXRoDQorICAgICAgICA8YWNyb255bT5OQVQ8L2Fjcm9ueW0+IGhh
 cyBiZWVuIHN0YXJ0ZWQsIG1ha2UgeW91ciBjaGFuZ2VzIHRvDQorICAgICAgICB0aGUgZmlsZSBj
 b250YWluaW5nIHRoZSBOQVQgcnVsZXMsIHRoZW4gcnVuIGlwbmF0IGNvbW1hbmQgd2l0aA0KICAg
 ICAgICAgdGhlIDxvcHRpb24+LUNGPC9vcHRpb24+IGZsYWdzIHRvIGRlbGV0ZSB0aGUgaW50ZXJu
 YWwgaW4gdXNlDQogICAgICAgICA8YWNyb255bT5OQVQ8L2Fjcm9ueW0+IHJ1bGVzIGFuZCBmbHVz
 aCB0aGUgY29udGVudHMgb2YgdGhlDQogICAgICAgICB0cmFuc2xhdGlvbiB0YWJsZSBvZiBhbGwg
 YWN0aXZlIGVudHJpZXMuPC9wYXJhPg0KQEAgLTE1MjYsNyArMTUyNyw3IEBADQogICAgICAgICA8
 ZmlsZW5hbWU+L2V0Yy9yYy5jb25mPC9maWxlbmFtZT48L3BhcmE+DQogDQogICAgICAgPHBhcmE+
 VG8gZW5hYmxlIHlvdXIgbWFjaGluZSB0byByb3V0ZSB0cmFmZmljIGJldHdlZW4NCi0gICAgICAg
 IGludGVyZmFjZXMuPC9wYXJhPg0KKyAgICAgICAgaW50ZXJmYWNlczo8L3BhcmE+DQogDQogICAg
 ICAgPHByb2dyYW1saXN0aW5nPmdhdGV3YXlfZW5hYmxlPSJZRVMiPC9wcm9ncmFtbGlzdGluZz4N
 CiANCkBAIC0xNTM1LDcgKzE1MzYsNyBAQA0KICAgICAgIDxwcm9ncmFtbGlzdGluZz5pcG5hdF9l
 bmFibGU9IllFUyI8L3Byb2dyYW1saXN0aW5nPg0KIA0KICAgICAgIDxwYXJhPlRvIHNwZWNpZnkg
 d2hlcmUgdG8gbG9hZCB0aGUgSVA8YWNyb255bT5OQVQ8L2Fjcm9ueW0+DQotICAgICAgICBydWxl
 cyBmcm9tPC9wYXJhPg0KKyAgICAgICAgcnVsZXMgZnJvbTo8L3BhcmE+DQogDQogICAgICAgPHBy
 b2dyYW1saXN0aW5nPmlwbmF0X3J1bGVzPSIvZXRjL2lwbmF0LnJ1bGVzIjwvcHJvZ3JhbWxpc3Rp
 bmc+DQogICAgIDwvc2VjdDI+DQpAQCAtMTU0Myw3ICsxNTQ0LDcgQEANCiAgICAgPHNlY3QyPg0K
 ICAgICAgIDx0aXRsZT48YWNyb255bT5OQVQ8L2Fjcm9ueW0+IGZvciBhIHZlcnkgbGFyZ2UgTEFO
 PC90aXRsZT4NCiANCi0gICAgICA8cGFyYT5Gb3IgbmV0d29ya3MgdGhhdCBoYXZlIGxhcmdlIG51
 bWJlcnMgb2YgUEMncyBvbiB0aGUgTGFuIG9yDQorICAgICAgPHBhcmE+Rm9yIG5ldHdvcmtzIHRo
 YXQgaGF2ZSBsYXJnZSBudW1iZXJzIG9mIFBDJ3Mgb24gdGhlIExBTiBvcg0KICAgICAgICAgbmV0
 d29ya3Mgd2l0aCBtb3JlIHRoYXQgYSBzaW5nbGUgTEFOIHRoZSBwcm9jZXNzIG9mIGZ1bm5lbGlu
 Zw0KICAgICAgICAgYWxsIHRob3NlIHByaXZhdGUgSVAgYWRkcmVzcyBpbnRvIGEgc2luZ2xlIHB1
 YmxpYyBJUCBhZGRyZXNzDQogICAgICAgICBiZWNvbWVzIGEgcmVzb3VyY2UgcHJvYmxlbSB0aGF0
 IG1heSBjYXVzZSBwcm9ibGVtcyB3aXRoIHNhbWUNCkBAIC0xNTUzLDcgKzE1NTQsNyBAQA0KIA0K
 ICAgICAgIDxzZWN0Mz4NCiAgICAgICAgIDx0aXRsZT5Bc3NpZ25pbmcgUG9ydHMgdG8gVXNlPC90
 aXRsZT4NCi0NCisgICAgICAgIDwhLS0gV2hhdCBkb2VzIGl0IG1lYW4gPyBJcyB0aGVyZSBzb21l
 dGhpbmcgbWlzc2luZyA/LS0+DQogICAgICAgICA8cGFyYT5YWFhCTEFIPC9wYXJhPg0KIA0KICAg
 ICAgICAgPHByb2dyYW1saXN0aW5nPm1hcCBkYzAgMTkyLjE2OC4xLjAvMjQgLT4gMC4zMjwvcHJv
 Z3JhbWxpc3Rpbmc+DQpAQCAtMTU5OSw3ICsxNjAwLDcgQEANCiAgICAgPHNlY3QyPg0KICAgICAg
 IDx0aXRsZT5Qb3J0IFJlZGlyZWN0aW9uPC90aXRsZT4NCiANCi0gICAgICA8cGFyYT5BbiB2ZXJ5
 IGNvbW1vbiBwcmFjdGljZSBpcyB0byBoYXZlIGEgd2ViIHNlcnZlciwgZW1haWwNCisgICAgICA8
 cGFyYT5BIHZlcnkgY29tbW9uIHByYWN0aWNlIGlzIHRvIGhhdmUgYSB3ZWIgc2VydmVyLCBlbWFp
 bA0KICAgICAgICAgc2VydmVyLCBkYXRhYmFzZSBzZXJ2ZXIgYW5kIEROUyBzZXJ2ZXIgZWFjaCBz
 ZWdyZWdhdGVkIHRvIGENCiAgICAgICAgIGRpZmZlcmVudCBQQyBvbiB0aGUgTEFOLiBJbiB0aGlz
 IGNhc2UgdGhlIHRyYWZmaWMgZnJvbSB0aGVzZQ0KICAgICAgICAgc2VydmVycyBzdGlsbCBoYXZl
 IHRvIGJlIDxhY3JvbnltPk5BVDwvYWNyb255bT5lZCwgYnV0IHRoZXJlDQpAQCAtMTczMSw3ICsx
 NzMyLDcgQEANCiANCiAgICAgPHBhcmE+VGhlIElQRklSRVdBTEwgKElQRlcpIGlzIGEgJm9zOyBz
 cG9uc29yZWQgZmlyZXdhbGwgc29mdHdhcmUNCiAgICAgICBhcHBsaWNhdGlvbiBhdXRob3JlZCBh
 bmQgbWFpbnRhaW5lZCBieSAmb3M7IHZvbHVudGVlciBzdGFmZg0KLSAgICAgIG1lbWJlcnMuIEl0
 IHVzZXMgdGhlIGxlZ2FjeSBTdGF0ZWxlc3MgcnVsZXMgYW5kIGEgbGVnYWN5IHJ1bGUNCisgICAg
 ICBtZW1iZXJzLiBJdCB1c2VzIHRoZSBsZWdhY3kgc3RhdGVsZXNzIHJ1bGVzIGFuZCBhIGxlZ2Fj
 eSBydWxlDQogICAgICAgY29kaW5nIHRlY2huaXF1ZSB0byBhY2hpZXZlIHdoYXQgaXMgcmVmZXJy
 ZWQgdG8gYXMgU2ltcGxlDQogICAgICAgU3RhdGVmdWwgbG9naWMuPC9wYXJhPg0KIA0KQEAgLTE3
 NTgsNyArMTc1OSw3IEBADQogICAgICAgPHRpdGxlPkVuYWJsaW5nIElQRlc8L3RpdGxlPg0KIA0K
 ICAgICAgIDxwYXJhPklQRlcgaXMgaW5jbHVkZWQgaW4gdGhlIGJhc2ljICZvczsgaW5zdGFsbCBh
 cyBhIHNlcGFyYXRlDQotICAgICAgICBydW4gdGltZSBsb2FkYWJsZSBtb2R1bGUuIElQRlcgd2ls
 bCBkeW5hbWljYWxseSBsb2FkIHRoZQ0KKyAgICAgICAgcnVuIHRpbWUgbG9hZGFibGUgbW9kdWxl
 LiBUaGUgc3lzdGVtIHdpbGwgZHluYW1pY2FsbHkgbG9hZCB0aGUNCiAgICAgICAgIGtlcm5lbCBt
 b2R1bGUgd2hlbiB0aGUgPGZpbGVuYW1lPnJjLmNvbmY8L2ZpbGVuYW1lPiBzdGF0ZW1lbnQNCiAg
 ICAgICAgIDxsaXRlcmFsPmZpcmV3YWxsX2VuYWJsZT0iWUVTIjwvbGl0ZXJhbD4gaXMgdXNlZC4g
 WW91IGRvIG5vdA0KICAgICAgICAgbmVlZCB0byBjb21waWxlIElQRlcgaW50byB0aGUgJm9zOyBr
 ZXJuZWwgdW5sZXNzIHlvdSB3YW50DQpAQCAtMTgxNSw3ICsxODE2LDcgQEANCiAgICAgICA8cHJv
 Z3JhbWxpc3Rpbmc+b3B0aW9ucyAgICBJUEZJUkVXQUxMX0RFRkFVTFRfVE9fQUNDRVBUPC9wcm9n
 cmFtbGlzdGluZz4NCiANCiAgICAgICA8cGFyYT5UaGlzIG9wdGlvbiB3aWxsIGFsbG93IGV2ZXJ5
 dGhpbmcgdG8gcGFzcyB0aHJvdWdoIHRoZQ0KLSAgICAgICAgZmlyZXdhbGwgYnkgZGVmYXVsdC4g
 V2hpY2ggaXMgYSBnb29kIGlkZWEgd2hlbiB5b3UgYXJlIGZpcnN0DQorICAgICAgICBmaXJld2Fs
 bCBieSBkZWZhdWx0LCB3aGljaCBpcyBhIGdvb2QgaWRlYSB3aGVuIHlvdSBhcmUgZmlyc3QNCiAg
 ICAgICAgIHNldHRpbmcgdXAgeW91ciBmaXJld2FsbC48L3BhcmE+DQogDQogICAgICAgPHByb2dy
 YW1saXN0aW5nPm9wdGlvbnMgICAgSVBWNkZJUkVXQUxMDQpAQCAtMTg3MCw3ICsxODcxLDcgQEAN
 CiAgICAgICAgIGZpcmV3YWxsIHJ1bGVzIHdpdGggY2hhbmdlcyB5b3UgbWFkZSB0byB0aGUgZmls
 ZXMgY29udGVudCBpcw0KICAgICAgICAgdGhlIHJlY29tbWVuZGVkIG1ldGhvZCB1c2VkIGhlcmUu
 PC9wYXJhPg0KIA0KLSAgICAgIDxwYXJhPlRoZSBJUEZXIGNvbW1hbmQgaXMgc3RpbGwgYSB2ZXJ5
 IHVzZWZ1bCB0byBkaXNwbGF5IHRoZQ0KKyAgICAgIDxwYXJhPlRoZSBpcGZ3IGNvbW1hbmQgaXMg
 c3RpbGwgYSB2ZXJ5IHVzZWZ1bCB0byBkaXNwbGF5IHRoZQ0KICAgICAgICAgcnVubmluZyBmaXJl
 d2FsbCBydWxlcyB0byB0aGUgY29uc29sZSBzY3JlZW4uIFRoZSBJUEZXDQogICAgICAgICBhY2Nv
 dW50aW5nIGZhY2lsaXR5IGR5bmFtaWNhbGx5IGNyZWF0ZXMgYSBjb3VudGVyIGZvciBlYWNoDQog
 ICAgICAgICBydWxlIHRoYXQgY291bnRzIGVhY2ggcGFja2V0IHRoYXQgbWF0Y2hlcyB0aGUgcnVs
 ZS4gRHVyaW5nIHRoZQ0KQEAgLTE5MzMsNyArMTkzNCw3IEBADQogICAgICAgICBzZXF1ZW5jZSBv
 cmRlci4gV2hlbiB0aGUgcGFja2V0IG1hdGNoZXMgYSBydWxlIHNlbGVjdGlvbg0KICAgICAgICAg
 cGFyYW1ldGVycywgdGhlIHJ1bGVzIGFjdGlvbiBmaWVsZCB2YWx1ZSBpcyBleGVjdXRlZCBhbmQg
 dGhlDQogICAgICAgICBzZWFyY2ggb2YgdGhlIHJ1bGUgc2V0IHRlcm1pbmF0ZXMgZm9yIHRoYXQg
 cGFja2V0LiAgVGhpcyBpcw0KLSAgICAgICAgcmVmZXJyZWQgdG8gYXMgdGhlICdmaXJzdCBtYXRj
 aCB3aW5zJyBzZWFyY2ggbWV0aG9kLiAgSWYgdGhlDQorICAgICAgICByZWZlcnJlZCB0byBhcyA8
 cXVvdGU+dGhlIGZpcnN0IG1hdGNoIHdpbnM8L3F1b3RlPiBzZWFyY2ggbWV0aG9kLiAgSWYgdGhl
 DQogICAgICAgICBwYWNrZXQgZG9lcyBub3QgbWF0Y2ggYW55IG9mIHRoZSBydWxlcywgaXQgZ2V0
 cyBjYXVnaHQgYnkgdGhlDQogICAgICAgICBtYW5kYXRvcnkgaXBmdyBkZWZhdWx0IHJ1bGUsIG51
 bWJlciA2NTUzNSB3aGljaCBkZW5pZXMgYWxsDQogICAgICAgICBwYWNrZXRzIGFuZCBkaXNjYXJk
 cyB0aGVtIHdpdGhvdXQgYW55IHJlcGx5IGJhY2sgdG8gdGhlDQpAQCAtMTk2Niw3ICsxOTY3LDcg
 QEANCiAgICAgICAgICAgZmlyZXdhbGwgcnVsZSBzZXQuIEZvciBhIGNvbXBsZXRlIHJ1bGUgc3lu
 dGF4IGRlc2NyaXB0aW9uDQogICAgICAgICAgIHNlZSB0aGUgJm1hbi5pcGZ3Ljg7IG1hbnVhbCBw
 YWdlLjwvcGFyYT4NCiANCi0gICAgICAgIDxwYXJhPlJ1bGVzIGNvbnRhaW4ga2V5d29yZHMsIFRo
 ZXNlIGtleXdvcmRzIGhhdmUgdG8gYmUgY29kZWQNCisgICAgICAgIDxwYXJhPlJ1bGVzIGNvbnRh
 aW4ga2V5d29yZHM6IHRoZXNlIGtleXdvcmRzIGhhdmUgdG8gYmUgY29kZWQNCiAgICAgICAgICAg
 aW4gYSBzcGVjaWZpYyBvcmRlciBmcm9tIGxlZnQgdG8gcmlnaHQgb24gdGhlIGxpbmUuIEtleXdv
 cmRzDQogICAgICAgICAgIGFyZSBpZGVudGlmaWVkIGluIGJvbGQgdHlwZS4gU29tZSBrZXl3b3Jk
 cyBoYXZlIHN1Yi1vcHRpb25zDQogICAgICAgICAgIHdoaWNoIG1heSBiZSBrZXl3b3JkcyB0aGVt
 IHNlbHZlcyBhbmQgYWxzbyBpbmNsdWRlIG1vcmUNCkBAIC0yMDEwLDcgKzIwMTEsNyBAQA0KICAg
 ICAgICAgICA8cGFyYT5DaGVja3MgdGhlIHBhY2tldCBhZ2FpbnN0IHRoZSBkeW5hbWljIHJ1bGVz
 IHRhYmxlLiBJZg0KICAgICAgICAgICAgIGEgbWF0Y2ggaXMgZm91bmQsIGV4ZWN1dGUgdGhlIGFj
 dGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlDQogICAgICAgICAgICAgcnVsZSB3aGljaCBnZW5lcmF0
 ZWQgdGhpcyBkeW5hbWljIHJ1bGUsIG90aGVyd2lzZSBtb3ZlIHRvDQotICAgICAgICAgICAgdGhl
 IG5leHQgcnVsZS4gVGhlIENoZWNrLXN0YXRlIHJ1bGUgZG9lcyBub3QgaGF2ZQ0KKyAgICAgICAg
 ICAgIHRoZSBuZXh0IHJ1bGUuIFRoZSBjaGVjay1zdGF0ZSBydWxlIGRvZXMgbm90IGhhdmUNCiAg
 ICAgICAgICAgICBzZWxlY3Rpb24gY3JpdGVyaW9uLiBJZiBubyBjaGVjay1zdGF0ZSBydWxlIGlz
 IHByZXNlbnQgaW4NCiAgICAgICAgICAgICB0aGUgcnVsZSBzZXQsIHRoZSBkeW5hbWljIHJ1bGVz
 IHRhYmxlIGlzIGNoZWNrZWQgYXQgdGhlDQogICAgICAgICAgICAgZmlyc3Qga2VlcC1zdGF0ZSBv
 ciBsaW1pdCBydWxlLjwvcGFyYT4NCkBAIC0yMDI2LDcgKzIwMjcsNyBAQA0KICAgICAgICAgICA8
 cGFyYT48cGFyYW1ldGVyPmxvZzwvcGFyYW1ldGVyPiBvcg0KICAgICAgICAgICAgIDxwYXJhbWV0
 ZXI+bG9nYW1vdW50PC9wYXJhbWV0ZXI+PC9wYXJhPg0KIA0KLSAgICAgICAgICA8cGFyYT4gV2hl
 biBhIHBhY2tldCBtYXRjaGVzIGEgcnVsZSB3aXRoIHRoZSBsb2cga2V5d29yZCwgYQ0KKyAgICAg
 ICAgICA8cGFyYT5XaGVuIGEgcGFja2V0IG1hdGNoZXMgYSBydWxlIHdpdGggdGhlIGxvZyBrZXl3
 b3JkLCBhDQogICAgICAgICAgICAgIG1lc3NhZ2Ugd2lsbCBiZSBsb2dnZWQgdG8gc3lzbG9nZCB3
 aXRoIGEgZmFjaWxpdHkgbmFtZSBvZg0KICAgICAgICAgICAgICBTRUNVUklUWS4gVGhlIGxvZ2dp
 bmcgb25seSBvY2N1cnMgaWYgdGhlIG51bWJlciBvZg0KICAgICAgICAgICAgICBwYWNrZXRzIGxv
 Z2dlZCBzbyBmYXIgZm9yIHRoYXQgcGFydGljdWxhciBydWxlIGRvZXMgbm90DQpAQCAtMjA1NCw3
 ICsyMDU1LDcgQEANCiANCiAgICAgICAgICAgPHBhcmE+PHBhcmFtZXRlcj51ZHAgfCB0Y3AgfCBp
 Y21wPC9wYXJhbWV0ZXI+PC9wYXJhPg0KIA0KLSAgICAgICAgICA8cGFyYT5vciBhbnkgcHJvdG9j
 b2wgbmFtZXMgZm91bmQgaW4gL2V0Yy9wcm90b2NvbHMgYXJlDQorICAgICAgICAgIDxwYXJhPm9y
 IGFueSBwcm90b2NvbCBuYW1lcyBmb3VuZCBpbiA8ZmlsZW5hbWU+L2V0Yy9wcm90b2NvbHM8L2Zp
 bGVuYW1lPiBhcmUNCiAgICAgICAgICAgICByZWNvZ25pemVkIGFuZCBtYXkgYmUgdXNlZC4gVGhl
 IHZhbHVlIHNwZWNpZmllZCBpcw0KICAgICAgICAgICAgIHByb3RvY29sIHRvIGJlIG1hdGNoZWQg
 YWdhaW5zdC4gVGhpcyBpcyBhIG1hbmRhdG9yeQ0KICAgICAgICAgICAgIHJlcXVpcmVtZW50Ljwv
 cGFyYT4NCkBAIC0yMDYzLDEzICsyMDY0LDEzIEBADQogDQogICAgICAgICAgIDxwYXJhPlRoZSBm
 cm9tIGFuZCB0byBrZXl3b3JkcyBhcmUgdXNlZCB0byBtYXRjaCBhZ2FpbnN0IElQDQogICAgICAg
 ICAgICAgYWRkcmVzc2VzLiBSdWxlcyBtdXN0IHNwZWNpZnkgQk9USCBzb3VyY2UgYW5kIGRlc3Rp
 bmF0aW9uDQotICAgICAgICAgICAgcGFyYW1ldGVycy4gYW55IGlzIGEgc3BlY2lhbCBrZXl3b3Jk
 IHRoYXQgbWF0Y2hlcyBhbnkgSVANCi0gICAgICAgICAgICBhZGRyZXNzLiBtZSBpcyBhIHNwZWNp
 YWwga2V5d29yZCB0aGF0IG1hdGNoZXMgYW55IElQDQorICAgICAgICAgICAgcGFyYW1ldGVycy4g
 PGxpdGVyYWw+YW55PC9saXRlcmFsPiBpcyBhIHNwZWNpYWwga2V5d29yZCB0aGF0IG1hdGNoZXMg
 YW55IElQDQorICAgICAgICAgICAgYWRkcmVzcy4gPGxpdGVyYWw+bWU8L2xpdGVyYWw+IGlzIGEg
 c3BlY2lhbCBrZXl3b3JkIHRoYXQgbWF0Y2hlcyBhbnkgSVANCiAgICAgICAgICAgICBhZGRyZXNz
 IGNvbmZpZ3VyZWQgb24gYW4gaW50ZXJmYWNlIGluIHlvdXIgJm9zOyBzeXN0ZW0gdG8NCi0gICAg
 ICAgICAgICByZXByZXNlbnQgdGhlIFBDIHRoZSBmaXJld2FsbCBpcyBydW5uaW5nIG9uLiAoaS5l
 LiB0aGlzDQotICAgICAgICAgICAgYm94KSBBcyBpbiBmcm9tIG1lIHRvIGFueSBvciBmcm9tIGFu
 eSB0byBtZSBvciBmcm9tDQotICAgICAgICAgICAgMC4wLjAuMC8wIHRvIGFueSBvciBmcm9tIGFu
 eSB0byAwLjAuMC4wLzAgb3IgZnJvbSAwLjAuMC4wDQotICAgICAgICAgICAgdG8gYW55IG9yIGZy
 b20gYW55IHRvIDAuMC4wLjAgb3IgZnJvbSBtZSB0byAwLjAuMC4wLiBJUA0KKyAgICAgICAgICAg
 IHJlcHJlc2VudCB0aGUgUEMgdGhlIGZpcmV3YWxsIGlzIHJ1bm5pbmcgb24gKGkuZS4gdGhpcw0K
 KyAgICAgICAgICAgIGJveCkgYXMgaW4gJ2Zyb20gbWUgdG8gYW55JyBvciAnZnJvbSBhbnkgdG8g
 bWUnIG9yICdmcm9tDQorICAgICAgICAgICAgMC4wLjAuMC8wIHRvIGFueScgb3IgJ2Zyb20gYW55
 IHRvIDAuMC4wLjAvMCcgb3IgJ2Zyb20gMC4wLjAuMA0KKyAgICAgICAgICAgIHRvIGFueScgb3Ig
 J2Zyb20gYW55IHRvIDAuMC4wLjAnIG9yICdmcm9tIG1lIHRvIDAuMC4wLjAnLiBJUA0KICAgICAg
 ICAgICAgIGFkZHJlc3NlcyBhcmUgc3BlY2lmaWVkIGFzIGEgZG90dGVkIElQIGFkZHJlc3MgbnVt
 ZXJpYw0KICAgICAgICAgICAgIGZvcm0vbWFzay1sZW5ndGgsIG9yIGFzIHNpbmdsZSBkb3R0ZWQg
 SVAgYWRkcmVzcyBudW1lcmljDQogICAgICAgICAgICAgZm9ybS4gVGhpcyBpcyBhIG1hbmRhdG9y
 eSByZXF1aXJlbWVudC4gU2VlIHRoaXMgbGluayBmb3INCkBAIC0yMDk1LDcgKzIwOTYsNyBAQA0K
 ICAgICAgICAgICA8cGFyYT48cGFyYW1ldGVyPnZpYSBJRjwvcGFyYW1ldGVyPjwvcGFyYT4NCiAN
 CiAgICAgICAgICAgPHBhcmE+TWF0Y2hlcyBwYWNrZXRzIGdvaW5nIHRocm91Z2ggdGhlIGludGVy
 ZmFjZSBzcGVjaWZpZWQNCi0gICAgICAgICAgICBieSBleGFjdCBuYW1lLiBUaGUgdmlhIGtleXdv
 cmQgY2F1c2VzIHRoZSBpbnRlcmZhY2UgdG8NCisgICAgICAgICAgICBieSBleGFjdCBuYW1lLiBU
 aGUgPGxpdGVyYWw+dmlhPC9saXRlcmFsPiBrZXl3b3JkIGNhdXNlcyB0aGUgaW50ZXJmYWNlIHRv
 DQogICAgICAgICAgICAgYWx3YXlzIGJlIGNoZWNrZWQgYXMgcGFydCBvZiB0aGUgbWF0Y2ggcHJv
 Y2Vzcy48L3BhcmE+DQogDQogICAgICAgICAgIDxwYXJhPjxwYXJhbWV0ZXI+c2V0dXA8L3BhcmFt
 ZXRlcj48L3BhcmE+DQpAQCAtMjE2Miw3ICsyMTYzLDcgQEANCiANCiAgICAgICAgIDxzZWN0Mz4N
 CiAgICAgICAgICAgPHRpdGxlPkxvZ2dpbmcgRmlyZXdhbGwgTWVzc2FnZXM8L3RpdGxlPg0KLSAg
 ICAgICAgICA8cGFyYT5UaGUgYmVuZWZpdHMgb2YgbG9nZ2luZyBhcmUgb2J2aW91cywgcHJvdmlk
 ZXMgdGhlDQorICAgICAgICAgIDxwYXJhPlRoZSBiZW5lZml0cyBvZiBsb2dnaW5nIGFyZSBvYnZp
 b3VzOiBpdCBwcm92aWRlcyB0aGUNCiAgICAgICAgICAgICBhYmlsaXR5IHRvIHJldmlldyBhZnRl
 ciB0aGUgZmFjdCB0aGUgcnVsZXMgeW91IGFjdGl2YXRlZA0KICAgICAgICAgICAgIGxvZ2dpbmcg
 b24gd2hpY2ggcHJvdmlkZXMgaW5mb3JtYXRpb24gbGlrZSwgd2hhdCBwYWNrZXRzIGhhZA0KICAg
 ICAgICAgICAgIGJlZW4gZHJvcHBlZCwgd2hhdCBhZGRyZXNzZXMgdGhleSBjYW1lIGZyb20sIHdo
 ZXJlIHRoZXkgd2VyZQ0KQEAgLTIxNzMsNyArMjE3NCw3IEBADQogICAgICAgICAgICAgZ2VuZXJh
 dGUgYW55IHJ1bGUgbG9nZ2luZyBvbiBpdCdzIG93bi4gVGhlIGZpcmV3YWxsDQogICAgICAgICAg
 ICAgYWRtaW5pc3RyYXRvciBkZWNpZGVzIHdoYXQgcnVsZXMgaW4gdGhlIHJ1bGUgc2V0IGhlIHdh
 bnRzDQogICAgICAgICAgICAgdG8gbG9nIGFuZCBhZGRzIHRoZSBsb2cgdmVyYiB0byB0aG9zZSBy
 dWxlcy4gTm9ybWFsbHkgb25seQ0KLSAgICAgICAgICAgIGRlbnkgcnVsZXMgYXJlIGxvZ2dlZC4g
 TGlrZSB0aGUgZGVueSBydWxlIGZvciBpbmNvbWluZw0KKyAgICAgICAgICAgIGRlbnkgcnVsZXMg
 YXJlIGxvZ2dlZCwgbGlrZSB0aGUgZGVueSBydWxlIGZvciBpbmNvbWluZw0KICAgICAgICAgICAg
 IDxhY3JvbnltPklDTVA8L2Fjcm9ueW0+IHBpbmdzLiAgSXQgaXMgdmVyeSBjdXN0b21hcnkgdG8N
 CiAgICAgICAgICAgICBkdXBsaWNhdGUgdGhlIGlwZncgZGVmYXVsdCBkZW55IGV2ZXJ5dGhpbmcg
 cnVsZSB3aXRoIHRoZQ0KICAgICAgICAgICAgIGxvZyB2ZXJiIGluY2x1ZGVkIGFzIHlvdXIgbGFz
 dCBydWxlIGluIHRoZSBydWxlIHNldC4gVGhpcw0KQEAgLTIyMzUsNyArMjIzNiw3IEBADQogaXBm
 dyAtcSAtZiBmbHVzaCAgICAgICAjIERlbGV0ZSBhbGwgcnVsZXMNCiAjIFNldCBkZWZhdWx0cw0K
 IG9pZj0idHVuMCIgICAgICAgICAgICAgIyBvdXQgaW50ZXJmYWNlDQotb2Rucz0iMTkyLjAuMi4x
 MSIgICAgICAjIElTUCdzIGRucyBzZXJ2ZXIgSVAgYWRkcmVzcw0KK29kbnM9IjE5Mi4wLjIuMTEi
 ICAgICAgIyBJU1AncyBETlMgc2VydmVyIElQIGFkZHJlc3MNCiBjbWQ9ImlwZncgLXEgYWRkICIg
 ICAgICMgYnVpbGQgcnVsZSBwcmVmaXgNCiBrcz0ia2VlcC1zdGF0ZSIgICAgICAgICMganVzdCB0
 b28gbGF6eSB0byBrZXkgdGhpcyBlYWNoIHRpbWUNCiAmZG9sbGFyO2NtZCAwMDUwMCBjaGVjay1z
 dGF0ZQ0KQEAgLTIyODMsMTYgKzIyODQsMTYgQEANCiAgICAgICAgICAgICBhbGxvdyB0aGUgZmly
 ZXdhbGwgdG8gZnVuY3Rpb24uPC9wYXJhPg0KIA0KICAgICAgICAgICA8cGFyYT5BbGwgJnVuaXg7
 IGZsYXZvcmVkIG9wZXJhdGluZyBzeXN0ZW1zLCAmb3M7IGluY2x1ZGVkLCBhcmUgZGVzaWduZWQg
 dG8NCi0gICAgICAgICAgICB1c2UgaW50ZXJmYWNlIGxvIGFuZCBJUCBhZGRyZXNzDQorICAgICAg
 ICAgICAgdXNlIGludGVyZmFjZSA8ZGV2aWNlbmFtZT5sbzA8L2RldmljZW5hbWU+IGFuZCBJUCBh
 ZGRyZXNzDQogICAgICAgICAgICAgPGhvc3RpZCByb2xlPSJpcGFkZHIiPjEyNy4wLjAuMTwvaG9z
 dGlkPiBmb3IgaW50ZXJuYWwNCi0gICAgICAgICAgICBjb21tdW5pY2F0aW9uIHdpdGggaW4gJm9z
 Oy4gVGhlIGZpcmV3YWxsIHJ1bGVzIG11c3QgY29udGFpbg0KKyAgICAgICAgICAgIGNvbW11bmlj
 YXRpb24gd2l0aCBpbiB0aGUgb3BlcmF0aW5nIHN5c3RlbS4gVGhlIGZpcmV3YWxsIHJ1bGVzIG11
 c3QgY29udGFpbg0KICAgICAgICAgICAgIHJ1bGVzIHRvIGFsbG93IGZyZWUgdW5tb2xlc3RlZCBt
 b3ZlbWVudCBvZiB0aGVzZSBzcGVjaWFsDQogICAgICAgICAgICAgaW50ZXJuYWxseSB1c2VkIHBh
 Y2tldHMuPC9wYXJhPg0KIA0KICAgICAgICAgICA8cGFyYT5UaGUgaW50ZXJmYWNlIHdoaWNoIGZh
 Y2VzIHRoZSBwdWJsaWMgSW50ZXJuZXQsIGlzIHRoZQ0KICAgICAgICAgICAgIG9uZSB3aGljaCB5
 b3UgY29kZSB5b3VyIHJ1bGVzIHRvIGF1dGhvcml6ZSBhbmQgY29udHJvbA0KICAgICAgICAgICAg
 IGFjY2VzcyBvdXQgdG8gdGhlIHB1YmxpYyBJbnRlcm5ldCBhbmQgYWNjZXNzIHJlcXVlc3RzDQot
 ICAgICAgICAgICAgYXJyaXZpbmcgZnJvbSB0aGUgcHVibGljIEludGVybmV0LiBUaGlzIGNhbiBi
 ZSB5b3VyIHBwcCB0dW4wDQorICAgICAgICAgICAgYXJyaXZpbmcgZnJvbSB0aGUgcHVibGljIElu
 dGVybmV0LiBUaGlzIGNhbiBiZSB5b3VyIHBwcCA8ZGV2aWNlbmFtZT50dW4wPC9kZXZpY2VuYW1l
 Pg0KICAgICAgICAgICAgIGludGVyZmFjZSBvciB5b3VyIE5JQyB0aGF0IGlzIGNvbm5lY3RlZCB0
 byB5b3VyIERTTCBvciBjYWJsZQ0KICAgICAgICAgICAgIG1vZGVtLjwvcGFyYT4NCiANCkBAIC0y
 MzQwLDcgKzIzNDEsNyBAQA0KICAgICAgICAgICAgIGhhcyBubyBrbm93bGVkZ2UgaWYgaGlzIHBh
 Y2tldHMgaGF2ZSByZWFjaGVkIHlvdXIgc3lzdGVtLg0KICAgICAgICAgICAgIFRoZSBsZXNzIHRo
 ZSBhdHRhY2tlcnMgY2FuIGxlYXJuIGFib3V0IHlvdXIgc3lzdGVtIHRoZSBtb3JlDQogICAgICAg
 ICAgICAgc2VjdXJlIGl0IGlzLiBXaGVuIHlvdSBsb2cgcGFja2V0cyB3aXRoIHBvcnQgbnVtYmVy
 cyB5b3UgZG8NCi0gICAgICAgICAgICBub3QgcmVjb2duaXplLCBnbyB0bw0KKyAgICAgICAgICAg
 IG5vdCByZWNvZ25pemUsIGxvb2sgdGhlIG51bWJlcnMgdXAgaW4gPGZpbGVuYW1lPi9ldGMvc2Vy
 dmljZXMvPC9maWxlbmFtZT4gb3IgZ28gdG8NCiAgICAgICAgICAgICA8dWxpbmsgdXJsPSJodHRw
 Oi8vd3d3LnNlY3VyaXR5c3RhdHMuY29tL3Rvb2xzL3BvcnRzZWFyY2gucGhwIj48L3VsaW5rPg0K
 ICAgICAgICAgICAgIGFuZCBkbyBhIHBvcnQgbnVtYmVyIGxvb2t1cCB0byBmaW5kIHdoYXQgdGhl
 IHB1cnBvc2Ugb2YgdGhhdA0KICAgICAgICAgICAgIHBvcnQgbnVtYmVyIGlzLiBDaGVjayBvdXQg
 dGhpcyBsaW5rIGZvciBwb3J0IG51bWJlcnMgdXNlZCBieQ0KQEAgLTIzOTgsOSArMjM5OSw5IEBA
 DQogICAgICAgICAgICAgICAgICAgICAgICAgIyBmYWNpbmcgdGhlIHB1YmxpYyBJbnRlcm5ldA0K
 IA0KICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
 IyMjIyMjIyMjIyMjDQotIyBObyByZXN0cmljdGlvbnMgb24gSW5zaWRlIExhbiBJbnRlcmZhY2Ug
 Zm9yIHByaXZhdGUgbmV0d29yaw0KLSMgTm90IG5lZWRlZCB1bmxlc3MgeW91IGhhdmUgTGFuLg0K
 LSMgQ2hhbmdlIHhsMCB0byB5b3VyIExhbiBOaWMgY2FyZCBpbnRlcmZhY2UgbmFtZQ0KKyMgTm8g
 cmVzdHJpY3Rpb25zIG9uIEluc2lkZSBMQU4gSW50ZXJmYWNlIGZvciBwcml2YXRlIG5ldHdvcmsN
 CisjIE5vdCBuZWVkZWQgdW5sZXNzIHlvdSBoYXZlIExBTi4NCisjIENoYW5nZSB4bDAgdG8geW91
 ciBMQU4gTklDIGNhcmQgaW50ZXJmYWNlIG5hbWUNCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
 IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KICMmZG9sbGFyO2NtZCAw
 MDAwNSBhbGxvdyBhbGwgZnJvbSBhbnkgdG8gYW55IHZpYSB4bDANCiANCkBAIC0yNTk4LDE2ICsy
 NTk5LDE2IEBADQogICAgICAgICAgICAgYWN0aW9uIGlzIGV4ZWN1dGVkLiBUaGUgYWN0aW9uIGlz
 IHBhcnQgb2YgdGhlIGluZm8gcG9zdGVkIHRvDQogICAgICAgICAgICAgdGhlIGR5bmFtaWMgdGFi
 bGUuICBJbiB0aGlzIGNhc2UgaXQgaXMgInNraXB0byBydWxlIDUwMCIuICBSdWxlDQogICAgICAg
 ICAgICAgNTAwIDxhY3JvbnltPk5BVDwvYWNyb255bT5zIHRoZSBwYWNrZXQgSVAgYWRkcmVzcyBh
 bmQgb3V0IGl0IGdvZXMuIFJlbWVtYmVyDQotICAgICAgICAgICAgdGhpcywgdGhpcyBpcyB2ZXJ5
 IGltcG9ydGFudC4gVGhpcyBwYWNrZXQgbWFrZXMgaXQncyB3YXkgdG8NCisgICAgICAgICAgICB0
 aGlzLCB0aGlzIGlzIHZlcnkgaW1wb3J0YW50LiBUaGlzIHBhY2tldCBtYWtlcyBpdHMgd2F5IHRv
 DQogICAgICAgICAgICAgdGhlIGRlc3RpbmF0aW9uIGFuZCByZXR1cm5zIGFuZCBlbnRlcnMgdGhl
 IHRvcCBvZiB0aGUgcnVsZQ0KICAgICAgICAgICAgIHNldC4gVGhpcyB0aW1lIGl0IGRvZXMgbWF0
 Y2ggcnVsZSAxMDAgYW5kIGhhcyBpdCBkZXN0aW5hdGlvbg0KLSAgICAgICAgICAgIElQIGFkZHJl
 c3MgbWFwcGVkIGJhY2sgdG8gaXQncyBjb3JyZXNwb25kaW5nIExhbiBJUCBhZGRyZXNzLg0KKyAg
 ICAgICAgICAgIElQIGFkZHJlc3MgbWFwcGVkIGJhY2sgdG8gaXRzIGNvcnJlc3BvbmRpbmcgTGFu
 IElQIGFkZHJlc3MuDQogICAgICAgICAgICAgSXQgdGhlbiBpcyBwcm9jZXNzZWQgYnkgdGhlIGNo
 ZWNrLXN0YXRlIHJ1bGUsIGl0J3MgZm91bmQgaW4NCiAgICAgICAgICAgICB0aGUgdGFibGUgYXMg
 YW4gZXhpc3Rpbmcgc2Vzc2lvbiBjb252ZXJzYXRpb24gYW5kIHJlbGVhc2VkDQogICAgICAgICAg
 ICAgdG8gdGhlIExBTi4gSXQgZ29lcyB0byB0aGUgTEFOIFBDIHRoYXQgc2VudCBpdCBhbmQgYSBu
 ZXcNCiAgICAgICAgICAgICBwYWNrZXQgaXMgc2VudCByZXF1ZXN0aW5nIGFub3RoZXIgc2VnbWVu
 dCBvZiB0aGUgZGF0YSBmcm9tDQogICAgICAgICAgICAgdGhlIHJlbW90ZSBzZXJ2ZXIuIFRoaXMg
 dGltZSBpdCBnZXRzIGNoZWNrZWQgYnkgdGhlDQotICAgICAgICAgICAgY2hlY2stc3RhdGUgcnVs
 ZSBhbmQgaXQncyBvdXRib3VuZCBlbnRyeSBpcyBmb3VuZCwgIHRoZQ0KKyAgICAgICAgICAgIGNo
 ZWNrLXN0YXRlIHJ1bGUgYW5kIGl0cyBvdXRib3VuZCBlbnRyeSBpcyBmb3VuZCwgIHRoZQ0KICAg
 ICAgICAgICAgIGFzc29jaWF0ZWQgYWN0aW9uLCAnc2tpcHRvIDUwMCcsIGlzIGV4ZWN1dGVkLiAg
 VGhlIHBhY2tldA0KICAgICAgICAgICAgIGp1bXBzIHRvIHJ1bGUgNTAwIGdldHMgPGFjcm9ueW0+
 TkFUPC9hY3JvbnltPmVkIGFuZCByZWxlYXNlZCBvbiBpdCdzIHdheSBvdXQuDQogICAgICAgICAg
 ICAgPC9wYXJhPg0KQEAgLTI2MjMsOCArMjYyNCw4IEBADQogICAgICAgICAgICAgcGFja2V0IG1h
 dGNoZXMgcnVsZSAxMDAgYW5kIGl0cyBJUCBhZGRyZXNzIGlzIG1hcHBlZCB0byBMQU4NCiAgICAg
 ICAgICAgICBJUCBmb3IgdGhlIGZpcmV3YWxsIGJveC4gVGhlIHBhY2tldCBpcyB0aGVtIG1hdGNo
 ZWQgYWdhaW5zdA0KICAgICAgICAgICAgIGFsbCB0aGUgbmFzdHkgdGhpbmdzIHdlIHdhbnQgdG8g
 Y2hlY2sgZm9yIGFuZCBmaW5hbGx5DQotICAgICAgICAgICAgbWF0Y2hlcyBhZ2FpbnN0IHJ1bGUg
 NDI1LiBPbiBhIG1hdGNoIHR3byB0aGluZ3Mgb2NjdXIsIHRoZQ0KLSAgICAgICAgICAgIGxpbWl0
 IG9wdGlvbiBpcyBhbiBleHRlbnNpb24gdG8ga2VlcC1zdGF0ZS4gVGhlIHBhY2tldCBydWxlDQor
 ICAgICAgICAgICAgbWF0Y2hlcyBhZ2FpbnN0IHJ1bGUgNDI1LiBPbiBhIG1hdGNoIHR3byB0aGlu
 Z3Mgb2NjdXINCisgICAgICAgICAgICBUaGUgcGFja2V0IHJ1bGUNCiAgICAgICAgICAgICBpcyBw
 b3N0ZWQgdG8gdGhlIGtlZXAtc3RhdGUgZHluYW1pYyB0YWJsZSBidXQgdGhpcyB0aW1lIGFueQ0K
 ICAgICAgICAgICAgIG5ldyBzZXNzaW9uIHJlcXVlc3RzIG9yaWdpbmF0aW5nIGZyb20gdGhhdCBz
 b3VyY2UgSVAgYWRkcmVzcw0KICAgICAgICAgICAgIGlzIGxpbWl0ZWQgdG8gMi4gVGhpcyBkZWZl
 bmRzIGFnYWluc3QgRG9TIGF0dGFja3Mgb2Ygc2VydmljZQ0KQEAgLTI2NDUsNyArMjY0Niw3IEBA
 DQogDQogaXBmdyAtcSAtZiBmbHVzaA0KIA0KLSZkb2xsYXI7Y21kIDAwMiBhbGxvdyBhbGwgZnJv
 bSBhbnkgdG8gYW55IHZpYSB4bDAgICMgZXhjbHVkZSBMYW4gdHJhZmZpYw0KKyZkb2xsYXI7Y21k
 IDAwMiBhbGxvdyBhbGwgZnJvbSBhbnkgdG8gYW55IHZpYSB4bDAgICMgZXhjbHVkZSBMQU4gdHJh
 ZmZpYw0KICZkb2xsYXI7Y21kIDAwMyBhbGxvdyBhbGwgZnJvbSBhbnkgdG8gYW55IHZpYSBsbzAg
 ICMgZXhjbHVkZSBsb29wYmFjayB0cmFmZmljDQogDQogJmRvbGxhcjtjbWQgMTAwIGRpdmVydCBu
 YXRkIGlwIGZyb20gYW55IHRvIGFueSBpbiB2aWEgJmRvbGxhcjtwaWYNCkBAIC0yNjk5LDEyICsy
 NzAwLDEyIEBADQogIyBTZXQgcnVsZXMgY29tbWFuZCBwcmVmaXgNCiBjbWQ9ImlwZncgLXEgYWRk
 Ig0KIHNraXA9InNraXB0byA4MDAiDQotcGlmPSJybDAiICAgICAjIHB1YmxpYyBpbnRlcmZhY2Ug
 bmFtZSBvZiBOaWMgY2FyZA0KK3BpZj0icmwwIiAgICAgIyBwdWJsaWMgaW50ZXJmYWNlIG5hbWUg
 b2YgTklDIGNhcmQNCiAgICAgICAgICAgICAgICMgZmFjaW5nIHRoZSBwdWJsaWMgSW50ZXJuZXQN
 CiANCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
 IyMjIyMjIyMjIyMjIw0KLSMgTm8gcmVzdHJpY3Rpb25zIG9uIEluc2lkZSBMYW4gSW50ZXJmYWNl
 IGZvciBwcml2YXRlIG5ldHdvcmsNCi0jIENoYW5nZSB4bDAgdG8geW91ciBMYW4gTmljIGNhcmQg
 aW50ZXJmYWNlIG5hbWUNCisjIE5vIHJlc3RyaWN0aW9ucyBvbiBJbnNpZGUgTEFOIEludGVyZmFj
 ZSBmb3IgcHJpdmF0ZSBuZXR3b3JrDQorIyBDaGFuZ2UgeGwwIHRvIHlvdXIgTEFOIE5JQyBjYXJk
 IGludGVyZmFjZSBuYW1lDQogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
 IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiAmZG9sbGFyO2NtZCAwMDUgYWxsb3cgYWxsIGZy
 b20gYW55IHRvIGFueSB2aWEgeGwwDQogDQpAQCAtMjgxNyw3ICsyODE4LDcgQEANCiAjIGFuZCB1
 c2VkIGluIHRoZSBvdXRib3VuZCBzZWN0aW9uLg0KICZkb2xsYXI7Y21kIDM2MCBhbGxvdyB1ZHAg
 ZnJvbSB4LngueC54IHRvIGFueSA2OCBpbiB2aWEgJmRvbGxhcjtwaWYga2VlcC1zdGF0ZQ0KIA0K
 LSMgQWxsb3cgaW4gc3RhbmRhcmQgd3d3IGZ1bmN0aW9uIGJlY2F1c2UgSSBoYXZlIGFwYWNoZSBz
 ZXJ2ZXINCisjIEFsbG93IGluIHN0YW5kYXJkIHd3dyBmdW5jdGlvbiBiZWNhdXNlIEkgaGF2ZSBB
 cGFjaGUgc2VydmVyDQogJmRvbGxhcjtjbWQgMzcwIGFsbG93IHRjcCBmcm9tIGFueSB0byBtZSA4
 MCBpbiB2aWEgJmRvbGxhcjtwaWYgc2V0dXAgbGltaXQgc3JjLWFkZHIgMg0KIA0KICMgQWxsb3cg
 aW4gc2VjdXJlIEZUUCwgVGVsbmV0LCBhbmQgU0NQIGZyb20gcHVibGljIEludGVybmV0DQo=
 
 
 --=-YGXksNBBJkCF2hitBO7r--
 
 --=-nJrkqYtMbMZRfDDC4mQM
 Content-Type: application/pgp-signature; name=signature.asc
 Content-Description: Questa parte del messaggio =?ISO-8859-1?Q?=E8?= firmata
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.2.6 (FreeBSD)
 
 iD8DBQBBzuEe2Mp4pR7Fa+wRAk7iAJ95LVE9x7kluW9xOHF7mM0TWkfxEQCgn1m4
 Pc5GA3TQasrk69CNGvLVGmc=
 =u/4L
 -----END PGP SIGNATURE-----
 
 --=-nJrkqYtMbMZRfDDC4mQM--
 

From: Matteo Riondato <rionda@gufi.org>
To: "Simon L. Nielsen" <simon@FreeBSD.org>,
	FreeBSD-gnats-submit@FreeBSD.org
Cc: bug-followup@FreeBSD.org
Subject: Re: docs/75422: [patch] syntax mistakes and obscurity in firewall
	chapter
Date: Sun, 26 Dec 2004 17:04:46 +0100

 --=-nJrkqYtMbMZRfDDC4mQM
 Content-Type: multipart/mixed; boundary="=-YGXksNBBJkCF2hitBO7r"
 
 
 --=-YGXksNBBJkCF2hitBO7r
 Content-Type: text/plain
 Content-Transfer-Encoding: quoted-printable
 
 Simon L. Nielsen wrote
 > Could you please update the patch to only include content
 > changes?
 
 Here you are.
 Best Regards
 --=20
 Rionda aka Matteo Riondato
 GUFI Staff Member (http://www.gufi.org)
 FreeSBIE Developer (http://www.freesbie.org)
 BSD-FAQ-it Main Developer (http://utenti.gufi.org/~rionda)
 Sent from: kaiser.sig11.org running FreeBSD-6.0-CURRENT
 
 --=-YGXksNBBJkCF2hitBO7r
 Content-Disposition: attachment; filename=firewall.diff
 Content-Transfer-Encoding: base64
 Content-Type: text/x-patch; name=firewall.diff; charset=ISO-8859-1
 
 LS0tIGNoYXB0ZXIuc2dtbC5vcmlnCVdlZCBEZWMgMjIgMTk6Mzg6MjggMjAwNA0KKysrIGNoYXB0
 ZXIuc2dtbAlTdW4gRGVjIDI2IDE3OjAwOjMwIDIwMDQNCkBAIC0zMiw3ICszMiw3IEBADQogICA8
 c2VjdDEgaWQ9ImZpcmV3YWxscy1pbnRybyI+DQogICAgIDx0aXRsZT5JbnRyb2R1Y3Rpb248L3Rp
 dGxlPg0KIA0KLSAgICA8cGFyYT5GaXJld2FsbHMgbWFrZSBpdCBwb3NzYmlsZSB0byBmaWx0ZXIN
 CisgICAgPHBhcmE+RmlyZXdhbGxzIG1ha2UgaXQgcG9zc2libGUgdG8gZmlsdGVyDQogICAgICAg
 aW5jb21pbmcgYW5kIG91dGdvaW5nIHRyYWZmaWMgdGhhdCBmbG93cyB0aHJvdWdoIHlvdXIgc3lz
 dGVtLg0KICAgICAgIEEgZmlyZXdhbGwgY2FuIHVzZSBvbmUgb3IgbW9yZSBzZXRzIG9mIDxxdW90
 ZT5ydWxlczwvcXVvdGU+IHRvDQogICAgICAgaW5zcGVjdCB0aGUgbmV0d29yayBwYWNrZXRzIGFz
 IHRoZXkgY29tZSBpbiBvciBnbyBvdXQgb2YgeW91cg0KQEAgLTEyNSw3ICsxMjUsNyBAQA0KICAg
 ICA8cGFyYT5TZWN1cml0eSBjYW4gYmUgdGlnaHRlbmVkIGZ1cnRoZXIgdXNpbmcgYSA8cXVvdGU+
 c3RhdGVmdWwNCiAJZmlyZXdhbGw8L3F1b3RlPi4gIFdpdGggYSBzdGF0ZWZ1bCBmaXJld2FsbCB0
 aGUgZmlyZXdhbGwga2VlcHMNCiAgICAgICB0cmFjayBvZiB3aGljaCBjb25uZWN0aW9ucyBhcmUg
 b3BlbmVkIHRocm91Z2ggdGhlIGZpcmV3YWxsIGFuZA0KLSAgICAgIHdpbGwgb25seSBhbGxvdyB0
 cmFmZmljIHRocm91Z2ggd2hpY2ggZWl0aGVyIG1hdGNoZXMgYSBleGlzdGluZw0KKyAgICAgIHdp
 bGwgb25seSBhbGxvdyB0cmFmZmljIHRocm91Z2ggd2hpY2ggZWl0aGVyIG1hdGNoZXMgYW4gZXhp
 c3RpbmcNCiAgICAgICBjb25uZWN0aW9uIG9yIG9wZW5zIGEgbmV3IG9uZS4gIFRoZSBkaXNhZHZh
 bnRhZ2Ugb2YgYSBzdGF0ZWZ1bA0KICAgICAgIGZpcmV3YWxsIGlzIHRoYXQgaXQgY2FuIGJlIHZ1
 bG5lcmFibGUgdG8gRGVuaWFsIG9mIFNlcnZpY2UNCiAgICAgICAoPGFjcm9ueW0+RG9TPC9hY3Jv
 bnltPikgYXR0YWNrcyBpZiBhIGxvdCBvZiBuZXcgY29ubmVjdGlvbnMgYXJlDQpAQCAtMTk3LDcg
 KzE5Nyw3IEBADQogICAgICAga25vd24gYXMgPGFjcm9ueW0+UEY8L2Fjcm9ueW0+IHdhcyBwb3J0
 ZWQgdG8gJm9zOyZuYnNwOzUuMy4NCiAgICAgICA8YWNyb255bT5QRjwvYWNyb255bT4gaXMgYSBj
 b21wbGV0ZSwgZnVsbHkgZmVhdHVyZWQgZmlyZXdhbGwNCiAgICAgICB0aGF0IGNvbnRhaW5zIDxh
 Y3JvbnltPkFMVFE8L2Fjcm9ueW0+IGZvciBiYW5kd2lkdGggdXNhZ2UNCi0gICAgICBtYW5hZ2Vt
 ZW50IGluIGEgd2F5IHNpbWlsYXIgdG8gdGhlIGR1bW15bmV0IHByb3ZpZGVzIGluDQorICAgICAg
 bWFuYWdlbWVudCBpbiBhIHdheSBzaW1pbGFyIHRvIHdoYXQgRFVNTVlORVQgcHJvdmlkZXMgaW4N
 CiAgICAgICA8YWNyb255bT5JUEZXPC9hY3JvbnltPi4gIFRoZSBPcGVuQlNEIHByb2plY3QgZG9l
 cyBhbg0KICAgICAgIG91dHN0YW5kaW5nIGpvYiBvZiBtYWludGFpbmluZyB0aGUgUEYgdXNlcnMn
 IGd1aWRlIHRoYXQgaXQgd2lsbA0KICAgICAgIG5vdCBiZSBtYWRlIHBhcnQgb2YgdGhpcyBoYW5k
 Ym9vayBmaXJld2FsbCBzZWN0aW9uIGFzIHRoYXQgd291bGQNCkBAIC0yMjMsOCArMjIzLDggQEAN
 CiAgICAgPHNlY3QyPg0KICAgICAgIDx0aXRsZT5FbmFibGluZyBQRjwvdGl0bGU+DQogICAgICAg
 PHBhcmE+UEYgaXMgaW5jbHVkZWQgaW4gdGhlIGJhc2ljICZvczsgaW5zdGFsbCBmb3IgdmVyc2lv
 bnMgbmV3ZXIgdGhhbg0KLSAgICAgICAgNS4zIGFzIGEgc2VwYXJhdGUgcnVuIHRpbWUgbG9hZGFi
 bGUgbW9kdWxlLiBQRiB3aWxsIGR5bmFtaWNhbGx5IGxvYWQNCi0JICAgICAgICBpdHMga2VybmVs
 IGxvYWRhYmxlIG1vZHVsZSB3aGVuIHRoZSByYy5jb25mIHN0YXRlbWVudA0KKyAgICAgICAgNS4z
 IGFzIGEgc2VwYXJhdGUgcnVuIHRpbWUgbG9hZGFibGUgbW9kdWxlLiBUaGUgc3lzdGVtIHdpbGwg
 ZHluYW1pY2FsbHkgbG9hZA0KKwkgICAgICAgIFBGIGtlcm5lbCBsb2FkYWJsZSBtb2R1bGUgd2hl
 biB0aGUgcmMuY29uZiBzdGF0ZW1lbnQNCiAgICAgICAgIDxsaXRlcmFsPnBmX2VuYWJsZT0iWUVT
 IjwvbGl0ZXJhbD4gaXMgdXNlZC4gVGhlDQogICAgICAgICBsb2FkYWJsZSBtb2R1bGUgd2FzIGNy
 ZWF0ZWQgd2l0aCAmbWFuLnBmbG9nLjQ7IGxvZ2dpbmcNCiAgICAgICAgIGVuYWJsZWQuPC9wYXJh
 Pg0KQEAgLTI1OCw3ICsyNTgsNyBAQA0KICAgICAgICAgPHF1b3RlPnN0YXRlIGNoYW5nZXM8L3F1
 b3RlPi4gQXMgdGhpcyBpcyBub3QgcGFydCBvZiB0aGUgbG9hZGFibGUNCiAgICAgICAgIG1vZHVs
 ZSBvbmUgaGFzIHRvIGJ1aWxkIGEgY3VzdG9tIGtlcm5lbCB0byB1c2UgaXQuPC9wYXJhPg0KIA0K
 LSAgICAgIDxwYXJhPlRoZXNlIHNldHRpbmdzIHdpbGwgdGFrZSBhZmZlY3Qgb25seSBhZnRlciB5
 b3UgaGF2ZSBidWlsdCBhbmQNCisgICAgICA8cGFyYT5UaGVzZSBzZXR0aW5ncyB3aWxsIHRha2Ug
 ZWZmZWN0IG9ubHkgYWZ0ZXIgeW91IGhhdmUgYnVpbHQgYW5kDQogICAgICAgICAgICAgICAgIGlu
 c3RhbGxlZCBhIGtlcm5lbCB3aXRoIHRoZW0gc2V0LjwvcGFyYT4NCiAgICAgPC9zZWN0Mj4NCiAN
 CkBAIC0yNzYsNyArMjc2LDcgQEANCiBwZmxvZ19mbGFncz0iIiAgICAgICAgICAgICAgICAgICMg
 YWRkaXRpb25hbCBmbGFncyBmb3IgcGZsb2dkIHN0YXJ0dXA8L3Byb2dyYW1saXN0aW5nPg0KIA0K
 ICAgICAgIDxwYXJhPklmIHlvdSBoYXZlIGEgTEFOIGJlaGluZCB0aGlzIGZpcmV3YWxsIGFuZCBo
 YXZlIHRvIGZvcndhcmQNCi0gICAgICAgIHBhY2tldHMgZm9yIHRoZSBjb21wdXRlcnMgaW4gdGhl
 IExBTiBvciB3YW50IHRvIGRvIE5BVCB5b3UgaGF2ZSB0bw0KKyAgICAgICAgcGFja2V0cyBmb3Ig
 dGhlIGNvbXB1dGVycyBpbiB0aGUgTEFOIG9yIHdhbnQgdG8gZG8gTkFULCB5b3UgaGF2ZSB0bw0K
 ICAgICAgICAgZW5hYmxlIHRoZSBmb2xsb3dpbmcgb3B0aW9uIGFzIHdlbGw6PC9wYXJhPg0KIA0K
 ICAgICAgIDxwcm9ncmFtbGlzdGluZz5nYXRld2F5X2VuYWJsZT0iWUVTIiAgICAgICAgICAgICMg
 RW5hYmxlIGFzIExhbiBnYXRld2F5PC9wcm9ncmFtbGlzdGluZz4NCkBAIC0yODgsNyArMjg4LDcg
 QEANCiAgICAgPHRpdGxlPlRoZSBJUEZJTFRFUiAoSVBGKSBGaXJld2FsbDwvdGl0bGU+DQogDQog
 ICAgIDxwYXJhPlRoZSBhdXRob3Igb2YgSVBGSUxURVIgaXMgRGFycmVuIFJlZWQuIElQRklMVEVS
 IGlzIG5vdA0KLSAgICAgIG9wZXJhdGluZyBzeXN0ZW0gZGVwZW5kZW50LiBJUEZJTFRFUiBpcyBh
 IG9wZW4gc291cmNlDQorICAgICAgb3BlcmF0aW5nIHN5c3RlbSBkZXBlbmRlbnQ6IGlzIGFuIG9w
 ZW4gc291cmNlDQogICAgICAgYXBwbGljYXRpb24gYW5kIGhhcyBiZWVuIHBvcnRlZCB0byAmb3M7
 LCBOZXRCU0QsIE9wZW5CU0QsIFN1bk9TLA0KICAgICAgIEhQL1VYLCBhbmQgU29sYXJpcyBvcGVy
 YXRpbmcgc3lzdGVtcy4gSVBGSUxURVIgaXMgYWN0aXZlbHkgYmVpbmcNCiAgICAgICBzdXBwb3J0
 ZWQgYW5kIG1haW50YWluZWQsIHdpdGggdXBkYXRlZCB2ZXJzaW9ucyBiZWluZyByZWxlYXNlZA0K
 QEAgLTM0Miw3ICszNDIsNyBAQA0KICAgICA8c2VjdDI+DQogICAgICAgPHRpdGxlPkVuYWJsaW5n
 IElQRjwvdGl0bGU+DQogICAgICAgPHBhcmE+SVBGIGlzIGluY2x1ZGVkIGluIHRoZSBiYXNpYyAm
 b3M7IGluc3RhbGwgYXMgYSBzZXBhcmF0ZQ0KLSAgICAgICAgcnVuIHRpbWUgbG9hZGFibGUgbW9k
 dWxlLiBJUEYgd2lsbCBkeW5hbWljYWxseSBsb2FkIGl0cyBrZXJuZWwNCisgICAgICAgIHJ1biB0
 aW1lIGxvYWRhYmxlIG1vZHVsZS4gVGhlIHN5c3RlbSB3aWxsIGR5bmFtaWNhbGx5IGxvYWQgSVBG
 IGtlcm5lbA0KICAgICAgICAgbG9hZGFibGUgbW9kdWxlIHdoZW4gdGhlIHJjLmNvbmYgc3RhdGVt
 ZW50IDxsaXRlcmFsPg0KICAgICAgICAgaXBmaWx0ZXJfZW5hYmxlPSJZRVMiPC9saXRlcmFsPiBp
 cyB1c2VkLiBUaGUgbG9hZGFibGUNCiAgICAgICAgIG1vZHVsZSB3YXMgY3JlYXRlZCB3aXRoIGxv
 Z2dpbmcgZW5hYmxlZCBhbmQgdGhlIDxsaXRlcmFsPmRlZmF1bHQNCkBAIC0zNjksOCArMzY5LDgg
 QEANCiBvcHRpb25zIElQRklMVEVSX0xPRw0KIG9wdGlvbnMgSVBGSUxURVJfREVGQVVMVF9CTE9D
 SzwvcHJvZ3JhbWxpc3Rpbmc+DQogDQotICAgICAgPHBhcmE+PGxpdGVyYWw+b3B0aW9ucyBJUEZJ
 TFRFUjwvbGl0ZXJhbD4gdGVsbHMgdGhlIGNvbXBpbGUNCi0gICAgICAgIHRvIGluY2x1ZGUgSVBG
 SUxURVIgYXMgcGFydCBvZiBpdHMgY29yZSBrZXJuZWwuPC9wYXJhPg0KKyAgICAgIDxwYXJhPjxs
 aXRlcmFsPm9wdGlvbnMgSVBGSUxURVI8L2xpdGVyYWw+IGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhl
 DQorCTxxdW90ZT5JUEZJTFRFUjwvcXVvdGU+IGZpcmV3YWxsLjwvcGFyYT4NCiANCiAgICAgICA8
 cGFyYT48bGl0ZXJhbD5vcHRpb25zIElQRklMVEVSX0xPRzwvbGl0ZXJhbD4gZW5hYmxlcyB0aGUN
 CiAgICAgICAgIG9wdGlvbiB0byBoYXZlIElQRiBsb2cgdHJhZmZpYyBieSB3cml0aW5nIHRvIHRo
 ZSBpcGwgcGFja2V0DQpAQCAtMzgxLDcgKzM4MSw3IEBADQogICAgICAgICBjaGFuZ2VzIHRoZSBk
 ZWZhdWx0IGJlaGF2aW9yIHNvIGFueSBwYWNrZXQgbm90IG1hdGNoaW5nIGENCiAgICAgICAgIGZp
 cmV3YWxsIDxsaXRlcmFsPnBhc3M8L2xpdGVyYWw+IHJ1bGUgZ2V0cyBibG9ja2VkLjwvcGFyYT4N
 CiANCi0gICAgICA8cGFyYT5UaGVzZSBzZXR0aW5ncyB3aWxsIHRha2UgYWZmZWN0IG9ubHkgYWZ0
 ZXIgeW91IGhhdmUgYnVpbHQNCisgICAgICA8cGFyYT5UaGVzZSBzZXR0aW5ncyB3aWxsIHRha2Ug
 ZWZmZWN0IG9ubHkgYWZ0ZXIgeW91IGhhdmUgYnVpbHQNCiAgICAgICAgIGFuZCBpbnN0YWxsZWQg
 YSBrZXJuZWwgd2l0aCB0aGVtIHNldC48L3BhcmE+DQogICAgIDwvc2VjdDI+DQogDQpAQCAtMzkz
 LDcgKzM5Myw3IEBADQogICAgICAgPHByb2dyYW1saXN0aW5nPmlwZmlsdGVyX2VuYWJsZT0iWUVT
 IiAgICAgICAgICAgICAjIFN0YXJ0IGlwZiBmaXJld2FsbA0KIGlwZmlsdGVyX3J1bGVzPSIvZXRj
 L2lwZi5ydWxlcyIgICAjIGxvYWRzIHJ1bGVzIGRlZmluaXRpb24gdGV4dCBmaWxlDQogaXBtb25f
 ZW5hYmxlPSJZRVMiICAgICAgICAgICAgICAgICMgU3RhcnQgSVAgbW9uaXRvciBsb2cNCi1pcG1v
 bl9mbGFncz0iLURzIiAgICAgICAgICAgICAgICAjIEQgPSBzdGFydCBhcyBkYWVtb24NCitpcG1v
 bl9mbGFncz0iLURzIiAgICAgICAgICAgICAgICAgIyBEID0gc3RhcnQgYXMgZGFlbW9uDQogICAg
 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcyA9IGxvZyB0byBzeXNsb2cNCiAgICAg
 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB2ID0gbG9nIHRjcCB3aW5kb3csIGFjaywg
 c2VxDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgbiA9IG1hcCBJUCAmIHBv
 cnQgdG8gbmFtZXM8L3Byb2dyYW1saXN0aW5nPg0KQEAgLTQxOSw3ICs0MTksNyBAQA0KICAgICAg
 PHBhcmE+PG9wdGlvbj4tRmE8L29wdGlvbj4gbWVhbnMgZmx1c2ggYWxsIGludGVybmFsIHJ1bGVz
 IHRhYmxlcy48L3BhcmE+DQogICAgICA8cGFyYT48b3B0aW9uPi1mPC9vcHRpb24+IG1lYW5zIHRo
 aXMgaXMgdGhlIGZpbGUgdG8gcmVhZCBmb3IgdGhlIHJ1bGVzIHRvIGxvYWQuPC9wYXJhPg0KIA0K
 LSAgICAgPHBhcmE+VGhpcyBnaXZlcyB5b3UgdGhlIGFiaWxpdHkgdG8gbWFrZSBjaGFuZ2VzIHRv
 IHRoZWlyIGN1c3RvbQ0KKyAgICAgPHBhcmE+VGhpcyBnaXZlcyB5b3UgdGhlIGFiaWxpdHkgdG8g
 bWFrZSBjaGFuZ2VzIHRvIHlvdXIgY3VzdG9tDQogICAgICAgIHJ1bGVzIGZpbGUsIHJ1biB0aGUg
 YWJvdmUgSVBGIGNvbW1hbmQgdGh1cyB1cGRhdGluZyB0aGUgcnVubmluZw0KICAgICAgICBmaXJl
 d2FsbCB3aXRoIGEgZnJlc2ggY29weSBvZiBhbGwgdGhlIHJ1bGVzIHdpdGhvdXQgaGF2aW5nIHRv
 DQogICAgICAgIHJlYm9vdCB0aGUgc3lzdGVtLiBUaGlzIG1ldGhvZCBpcyB2ZXJ5IGNvbnZlbmll
 bnQgZm9yIHRlc3RpbmcgbmV3DQpAQCAtNTkwLDExICs1OTAsMTIgQEANCiANCiAgICAgICAgPHBh
 cmE+VG8gYWN0aXZhdGUgdGhlIGNoYW5nZXMgdG8gPGZpbGVuYW1lPi9ldGMvc3lzbG9nLmNvbmYN
 CiAgICAgICAgICA8L2ZpbGVuYW1lPiB5b3UgY2FuIHJlYm9vdCBvciBidW1wIHRoZSBzeXNsb2cg
 dGFzayBpbnRvDQotICAgICAgICAgcmUtcmVhZGluZyA8ZmlsZW5hbWU+L2V0Yy9zeXNsb2cuY29u
 ZjwvZmlsZW5hbWU+IGJ5IDxjb21tYW5kPg0KLSAgICAgICAgIGtpbGwgLUhVUCAmbHQ7cGlkJmd0
 OzwvY29tbWFuZD4uIFlvdSBnZXQgdGhlIHBpZCAoaS5lLiBwcm9jZXNzDQorICAgICAgICAgcmUt
 cmVhZGluZyA8ZmlsZW5hbWU+L2V0Yy9zeXNsb2cuY29uZjwvZmlsZW5hbWU+IGJ5DQorICAgICAg
 ICAgPGNvbW1hbmQ+L2V0Yy9yYy5kL3N5c2xvZ2QgcmVzdGF0PC9jb21tYW5kPiAoPGNvbW1hbmQ+
 DQorICAgICAgICAga2lsbCAtSFVQICZsdDtwaWQmZ3Q7PC9jb21tYW5kPiBpbiAmb3M7IDQueC4g
 WW91IGdldCB0aGUgcGlkIChpLmUuIHByb2Nlc3MNCiAgICAgICAgICBudW1iZXIpIGJ5IGxpc3Rp
 bmcgdGhlIHRhc2tzIHdpdGggdGhlIDxjb21tYW5kPnBzIC1heDwvY29tbWFuZD4NCiAgICAgICAg
 ICBjb21tYW5kLiBGaW5kIHN5c2xvZyBpbiB0aGUgZGlzcGxheSBhbmQgdGhlIHBpZCBpcyB0aGUg
 bnVtYmVyDQotICAgICAgICAgaW4gdGhlIGxlZnQgY29sdW1uLjwvcGFyYT4NCisgICAgICAgICBp
 biB0aGUgbGVmdCBjb2x1bW4pLjwvcGFyYT4NCiANCiAgICAgICAgPHBhcmE+RG8gbm90IGZvcmdl
 dCB0byBjaGFuZ2UgPGZpbGVuYW1lPi9ldGMvbmV3c3lzbG9nLmNvbmYNCiAgICAgICAgICA8L2Zp
 bGVuYW1lPiB0byByb3RhdGUgdGhlIG5ldyBsb2cgeW91IGp1c3QgY3JlYXRlZCBhYm92ZS4NCkBA
 IC02NTAsMTIgKzY1MSwxMiBAQA0KICAgICAgICAgIDwvbGlzdGl0ZW0+DQogDQogICAgICAgICAg
 PGxpc3RpdGVtPg0KLSAgICAgICAgICAgPHBhcmE+UFIgZm9sbG93ZWQgYnkgdGhlIHByb3RvY29s
 IG5hbWUgb3IgbnVtYmVyLCBlLmcuIFBSDQorICAgICAgICAgICA8cGFyYT48bGl0ZXJhbD5QUjwv
 bGl0ZXJhbD4gZm9sbG93ZWQgYnkgdGhlIHByb3RvY29sIG5hbWUgb3IgbnVtYmVyLCBlLmcuIFBS
 DQogICAgICAgICAgICAgIHRjcC48L3BhcmE+DQogICAgICAgICAgPC9saXN0aXRlbT4NCiANCiAg
 ICAgICAgICA8bGlzdGl0ZW0+DQotICAgICAgICAgICA8cGFyYT5sZW4gZm9sbG93ZWQgYnkgdGhl
 IGhlYWRlciBsZW5ndGggYW5kIHRvdGFsIGxlbmd0aCBvZg0KKyAgICAgICAgICAgPHBhcmE+PGxp
 dGVyYWw+bGVuPC9saXRlcmFsPiBmb2xsb3dlZCBieSB0aGUgaGVhZGVyIGxlbmd0aCBhbmQgdG90
 YWwgbGVuZ3RoIG9mDQogICAgICAgICAgICAgIHRoZSBwYWNrZXQsIGUuZy4gbGVuIDIwIDQwLjwv
 cGFyYT4NCiAgICAgICAgICA8L2xpc3RpdGVtPg0KICAgICAgICA8L29yZGVyZWRsaXN0Pg0KQEAg
 LTcwMyw4ICs3MDQsOCBAQA0KIDxwcm9ncmFtbGlzdGluZz4jIyMjIyMjIyMjIyMjIFN0YXJ0IG9m
 IElQRiBydWxlcyBzY3JpcHQgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQogDQogb2lmPSJkYzAi
 ICAgICAgICAgICAgIyBuYW1lIG9mIHRoZSBvdXRib3VuZCBpbnRlcmZhY2UNCi1vZG5zPSIxOTIu
 MC4yLjExIiAgICAjIElTUCdzIGRucyBzZXJ2ZXIgSVAgYWRkcmVzcyBTeW1ib2xpYyZndDsNCi1t
 eWlwPSIxOTIuMC4yLjciICAgICAjIE15IFN0YXRpYyBJUCBhZGRyZXNzIGZyb20gSVNQDQorb2Ru
 cz0iMTkyLjAuMi4xMSIgICAgIyBJU1AncyBkbnMgc2VydmVyIElQIGFkZHJlc3MNCitteWlwPSIx
 OTIuMC4yLjciICAgICAjIG15IHN0YXRpYyBJUCBhZGRyZXNzIGZyb20gSVNQDQoga3M9ImtlZXAg
 c3RhdGUiDQogZmtzPSJmbGFncyBTIGtlZXAgc3RhdGUiDQogDQpAQCAtNzQyLDcgKzc0Myw3IEBA
 DQogICAgICAgICAgc2NyaXB0cyB0aGF0IHJlYWQgPGZpbGVuYW1lPnJjLmNvbmY8L2ZpbGVuYW1l
 PiB3aWxsIGhhdmUNCiAgICAgICAgICBwcm9ibGVtcy48L3BhcmE+DQogDQotICAgICAgIDxwYXJh
 PlRvIGdldCBhcm91bmQgdGhpcyBsaW1pdGF0aW9uIHdpdGggYSByYyBzY3JpcHRzLCByZW1vdmUN
 CisgICAgICAgPHBhcmE+VG8gZ2V0IGFyb3VuZCB0aGlzIGxpbWl0YXRpb24gd2l0aCBhIHJjIHNj
 cmlwdCwgcmVtb3ZlDQogICAgICAgICAgdGhlIGZvbGxvd2luZyBsaW5lOjwvcGFyYT4NCiANCiAg
 ICAgICAgPHByb2dyYW1saXN0aW5nPjxjb21tYW5kPmlwZmlsdGVyX3J1bGVzPTwvY29tbWFuZD4N
 CkBAIC03NTAsNyArNzUxLDcgQEANCiANCiAgICAgICAgPHBhcmE+QWRkIGEgc2NyaXB0IGxpa2Ug
 dGhlIGZvbGxvd2luZyB0byB5b3VyIDxmaWxlbmFtZT4NCiAgICAgICAgICAvdXNyL2xvY2FsL2V0
 Yy9yYy5kLzwvZmlsZW5hbWU+IHN0YXJ0dXAgZGlyZWN0b3J5LiBUaGUgc2NyaXB0DQotICAgICAg
 ICAgc2hvdWxkIGhhdmUgYSBvYnZpb3VzIG5hbWUgbGlrZSA8ZmlsZW5hbWU+bG9hZGlwZnJ1bGVz
 LnNoDQorICAgICAgICAgc2hvdWxkIGhhdmUgYW4gb2J2aW91cyBuYW1lIGxpa2UgPGZpbGVuYW1l
 PmxvYWRpcGZydWxlcy5zaA0KICAgICAgICAgIDwvZmlsZW5hbWU+LiBUaGUgPGZpbGVuYW1lPi5z
 aDwvZmlsZW5hbWU+IGV4dGVuc2lvbiBpcyBtYW5kYXRvcnkuDQogDQogICAgICAgIDxwcm9ncmFt
 bGlzdGluZz4jIS9iaW4vc2gNCkBAIC03NzQsMjAgKzc3NSwyMCBAQA0KICAgICAgICAgIHNlc3Np
 b24gY29udmVyc2F0aW9uLiBUaGUgZmlyZXdhbGwgcnVsZSBzZXQgcHJvY2Vzc2VzIHRoZQ0KICAg
 ICAgICAgIHBhY2tldCAyIHRpbWVzLCBvbmNlIG9uIGl0cyBhcnJpdmFsIGZyb20gdGhlIHB1Ymxp
 YyBJbnRlcm5ldA0KICAgICAgICAgIGhvc3QgYW5kIGFnYWluIGFzIGl0IGxlYXZlcyBmb3IgaXRz
 IHJldHVybiB0cmlwIGJhY2sgdG8gdGhlDQotICAgICAgICAgcHVibGljIEludGVybmV0IGhvc3Qu
 IEVhY2ggdGNwL2lwIHNlcnZpY2UgKGkuZS4gdGVsbmV0LCB3d3csDQorICAgICAgICAgcHVibGlj
 IEludGVybmV0IGhvc3QuIEVhY2ggVENQL0lQIHNlcnZpY2UgKGkuZS4gdGVsbmV0LCB3d3csDQog
 ICAgICAgICAgbWFpbCwgZXRjLikgaXMgcHJlZGVmaW5lZCBieSBpdHMgcHJvdG9jb2wsIHNvdXJj
 ZSBhbmQNCiAgICAgICAgICBkZXN0aW5hdGlvbiBJUCBhZGRyZXNzLCBvciB0aGUgc291cmNlIGFu
 ZCBkZXN0aW5hdGlvbiBwb3J0DQogICAgICAgICAgbnVtYmVyLiBUaGlzIGlzIHRoZSBiYXNpYyBz
 ZWxlY3Rpb24gY3JpdGVyaWEgdXNlZCB0byBjcmVhdGUNCiAgICAgICAgICBydWxlcyB3aGljaCB3
 aWxsIHBhc3Mgb3IgYmxvY2sgc2VydmljZXMuPC9wYXJhPg0KIA0KICAgICAgICA8cGFyYT5JUEYg
 d2FzIG9yaWdpbmFsbHkgd3JpdHRlbiB1c2luZyBhIHJ1bGVzIHByb2Nlc3NpbmcgbG9naWMNCi0g
 ICAgICAgICBvZiAndGhlIGxhc3QgbWF0Y2hpbmcgcnVsZSB3aW5zJyBhbmQgdXNlZCBvbmx5IHN0
 YXRlbGVzcw0KKyAgICAgICAgIG9mIDxxdW90ZT50aGUgbGFzdCBtYXRjaGluZyBydWxlIHdpbnM8
 L3F1b3RlPiBhbmQgdXNlZCBvbmx5IHN0YXRlbGVzcw0KICAgICAgICAgIHJ1bGVzLiBPdmVyIHRp
 bWUgSVBGIGhhcyBiZWVuIGVuaGFuY2VkIHRvIGluY2x1ZGUgYSAncXVpY2snDQogICAgICAgICAg
 b3B0aW9uIGFuZCBhIHN0YXRlZnVsICdrZWVwIHN0YXRlJyBvcHRpb24gd2hpY2ggZHJhc3RpY2Fs
 bHkNCiAgICAgICAgICBtb2Rlcm5pemVkIHRoZSBydWxlcyBwcm9jZXNzaW5nIGxvZ2ljLjwvcGFy
 YT4NCiANCiAgICAgICAgPHBhcmE+VGhlIGluc3RydWN0aW9ucyBjb250YWluZWQgaW4gdGhpcyBz
 ZWN0aW9uIGlzIGJhc2VkIG9uDQotICAgICAgICAgdXNpbmcgcnVsZXMgdGhhdCBjb250YWluIHRo
 ZSAncXVpY2snIG9wdGlvbi4gYW5kIHRoZSBzdGF0ZWZ1bA0KKyAgICAgICAgIHVzaW5nIHJ1bGVz
 IHRoYXQgY29udGFpbiB0aGUgJ3F1aWNrJyBvcHRpb24gYW5kIHRoZSBzdGF0ZWZ1bA0KICAgICAg
 ICAgICdrZWVwIHN0YXRlJyBvcHRpb24uIFRoaXMgaXMgdGhlIGJhc2ljIGZyYW1ld29yayBmb3Ig
 Y29kaW5nIGFuDQogICAgICAgICAgaW5jbHVzaXZlIGZpcmV3YWxsIHJ1bGUgc2V0LjwvcGFyYT4N
 CiANCkBAIC04MTgsMTAgKzgxOSwxMCBAQA0KICAgICAgICAgIHRoZSBlbmQgb2YgYSBydWxlIGxp
 bmUgb3Igb24gaXRzIG93biBsaW5lcy4gQmxhbmsgbGluZXMgYXJlDQogICAgICAgICAgaWdub3Jl
 ZC48L3BhcmE+DQogDQotICAgICAgIDxwYXJhPlJ1bGVzIGNvbnRhaW4ga2V5d29yZHMsIFRoZXNl
 IGtleXdvcmRzIGhhdmUgdG8gYmUgY29kZWQgaW4NCisgICAgICAgPHBhcmE+UnVsZXMgY29udGFp
 biBrZXl3b3Jkcy4gVGhlc2Uga2V5d29yZHMgaGF2ZSB0byBiZSBjb2RlZCBpbg0KICAgICAgICAg
 IGEgc3BlY2lmaWMgb3JkZXIgZnJvbSBsZWZ0IHRvIHJpZ2h0IG9uIHRoZSBsaW5lLiBLZXl3b3Jk
 cyBhcmUNCiAgICAgICAgICBpZGVudGlmaWVkIGluIGJvbGQgdHlwZS4gU29tZSBrZXl3b3JkcyBo
 YXZlIHN1Yi1vcHRpb25zIHdoaWNoDQotICAgICAgICAgbWF5IGJlIGtleXdvcmRzIHRoZW0gc2Vs
 dmVzIGFuZCBhbHNvIGluY2x1ZGUgbW9yZSBzdWItb3B0aW9ucy4NCisgICAgICAgICBtYXkgYmUg
 a2V5d29yZHMgdGhlbXNlbHZlcyBhbmQgYWxzbyBpbmNsdWRlIG1vcmUgc3ViLW9wdGlvbnMuDQog
 ICAgICAgICAgRWFjaCBvZiB0aGUgaGVhZGluZ3MgaW4gdGhlIGJlbG93IHN5bnRheCBoYXMgYSBi
 b2xkIHNlY3Rpb24NCiAgICAgICAgICBoZWFkZXIgd2hpY2ggZXhwYW5kcyBvbiB0aGUgY29udGVu
 dC48L3BhcmE+DQogDQpAQCAtODc3LDExICs4NzgsMTEgQEANCiAgICAgICAgICAgICAgb3RoZXIg
 aGFzIHRvIGJlIGNvZGVkIG9yIHRoZSBydWxlIHdpbGwgbm90IHBhc3Mgc3ludGF4DQogICAgICAg
 ICAgICAgIGNoZWNrLjwvcGFyYT4NCiANCi0gICAgICAgICAgIDxwYXJhPmluIG1lYW5zIHRoaXMg
 cnVsZSBpcyBiZWluZyBhcHBsaWVkIGFnYWluc3QgYW4gaW5ib3VuZA0KKyAgICAgICAgICAgPHBh
 cmE+PGxpdGVyYWw+aW48L2xpdGVyYWw+IG1lYW5zIHRoaXMgcnVsZSBpcyBiZWluZyBhcHBsaWVk
 IGFnYWluc3QgYW4gaW5ib3VuZA0KICAgICAgICAgICAgICBwYWNrZXQgd2hpY2ggaGFzIGp1c3Qg
 YmVlbiByZWNlaXZlZCBvbiB0aGUgaW50ZXJmYWNlDQogICAgICAgICAgICAgIGZhY2luZyB0aGUg
 cHVibGljIEludGVybmV0LjwvcGFyYT4NCiANCi0gICAgICAgICAgIDxwYXJhPm91dCBtZWFucyB0
 aGlzIHJ1bGUgaXMgYmVpbmcgYXBwbGllZCBhZ2FpbnN0IGFuDQorICAgICAgICAgICA8cGFyYT48
 bGl0ZXJhbD5vdXQ8L2xpdGVyYWw+IG1lYW5zIHRoaXMgcnVsZSBpcyBiZWluZyBhcHBsaWVkIGFn
 YWluc3QgYW4NCiAgICAgICAgICAgICAgb3V0Ym91bmQgcGFja2V0IGRlc3RpbmVkIGZvciB0aGUg
 aW50ZXJmYWNlIGZhY2luZyB0aGUgcHVibGljDQogICAgICAgICAgICAgIEludGVybmV0LjwvcGFy
 YT4NCiAgICAgICAgICA8L3NlY3QzPg0KQEAgLTg5MywxOCArODk0LDE4IEBADQogICAgICAgICAg
 ICAgICAgPC9wYXJhPg0KICAgICAgICAgICAgPC9ub3RlPg0KIA0KLSAgICAgICAgICAgPHBhcmE+
 bG9nIGluZGljYXRlcyB0aGF0IHRoZSBwYWNrZXQgaGVhZGVyIHdpbGwgYmUgd3JpdHRlbiB0bw0K
 KyAgICAgICAgICAgPHBhcmE+PGxpdGVyYWw+bG9nPC9saXRlcmFsPiBpbmRpY2F0ZXMgdGhhdCB0
 aGUgcGFja2V0IGhlYWRlciB3aWxsIGJlIHdyaXR0ZW4gdG8NCiAgICAgICAgICAgICAgdGhlIGlw
 bCBsb2cgKGFzIGRlc2NyaWJlZCBpbiB0aGUgTE9HR0lORyBzZWN0aW9uIGJlbG93KSBpZg0KICAg
 ICAgICAgICAgICB0aGUgc2VsZWN0aW9uIHBhcmFtZXRlcnMgbWF0Y2ggdGhlIHBhY2tldC48L3Bh
 cmE+DQogDQotICAgICAgICAgICA8cGFyYT5xdWljayBpbmRpY2F0ZXMgdGhhdCBpZiB0aGUgc2Vs
 ZWN0aW9uIHBhcmFtZXRlcnMgbWF0Y2gNCisgICAgICAgICAgIDxwYXJhPjxsaXRlcmFsPnF1aWNr
 PC9saXRlcmFsPiBpbmRpY2F0ZXMgdGhhdCBpZiB0aGUgc2VsZWN0aW9uIHBhcmFtZXRlcnMgbWF0
 Y2gNCiAgICAgICAgICAgICAgdGhlIHBhY2tldCwgdGhpcyBydWxlIHdpbGwgYmUgdGhlIGxhc3Qg
 cnVsZSBjaGVja2VkLA0KICAgICAgICAgICAgICBhbGxvd2luZyBhICJzaG9ydC1jaXJjdWl0IiBw
 YXRoIHRvIGF2b2lkIHByb2Nlc3NpbmcgYW55DQogICAgICAgICAgICAgIGZvbGxvd2luZyBydWxl
 cyBmb3IgdGhpcyBwYWNrZXQuIFRoaXMgb3B0aW9uIGlzIGEgbWFuZGF0b3J5DQogICAgICAgICAg
 ICAgIHJlcXVpcmVtZW50IGZvciB0aGUgbW9kZXJuaXplZCBydWxlcyBwcm9jZXNzaW5nIGxvZ2lj
 Lg0KICAgICAgICAgICAgICA8L3BhcmE+DQogDQotICAgICAgICAgICA8cGFyYT5vbiBpbmRpY2F0
 ZXMgdGhlIGludGVyZmFjZSBuYW1lIHRvIGJlIGluY29ycG9yYXRlZCBpbnRvDQorICAgICAgICAg
 ICA8cGFyYT48bGl0ZXJhbD5vbjwvbGl0ZXJhbD4gaW5kaWNhdGVzIHRoZSBpbnRlcmZhY2UgbmFt
 ZSB0byBiZSBpbmNvcnBvcmF0ZWQgaW50bw0KICAgICAgICAgICAgICB0aGUgc2VsZWN0aW9uIHBh
 cmFtZXRlcnMuIEludGVyZmFjZSBuYW1lcyBhcmUgYXMgZGlzcGxheWVkDQogICAgICAgICAgICAg
 IGJ5IGlmY29uZmlnLiBVc2luZyB0aGlzIG9wdGlvbiwgdGhlIHJ1bGUgd2lsbCBvbmx5IG1hdGNo
 IGlmDQogICAgICAgICAgICAgIHRoZSBwYWNrZXQgaXMgZ29pbmcgdGhyb3VnaCB0aGF0IGludGVy
 ZmFjZSBpbiB0aGUgc3BlY2lmaWVkDQpAQCAtOTE2LDEwICs5MTcsMTAgQEANCiAgICAgICAgICAg
 ICAgSW1tZWRpYXRlbHkgZm9sbG93aW5nIHRoZSBsb2cga2V5d29yZCwgdGhlIGZvbGxvd2luZw0K
 ICAgICAgICAgICAgICBxdWFsaWZpZXJzIG1heSBiZSB1c2VkIChpbiB0aGlzIG9yZGVyKTo8L3Bh
 cmE+DQogDQotICAgICAgICAgICA8cGFyYT5ib2R5IGluZGljYXRlcyB0aGF0IHRoZSBmaXJzdCAx
 MjggYnl0ZXMgb2YgdGhlIHBhY2tldA0KKyAgICAgICAgICAgPHBhcmE+PGxpdGVyYWw+Ym9keTwv
 bGl0ZXJhbD4gaW5kaWNhdGVzIHRoYXQgdGhlIGZpcnN0IDEyOCBieXRlcyBvZiB0aGUgcGFja2V0
 DQogICAgICAgICAgICAgIGNvbnRlbnRzIHdpbGwgYmUgbG9nZ2VkIGFmdGVyIHRoZSBoZWFkZXJz
 LjwvcGFyYT4NCiANCi0gICAgICAgICAgIDxwYXJhPmZpcnN0IElmIHRoZSAnbG9nJyBrZXl3b3Jk
 IGlzIGJlaW5nIHVzZWQgaW4gY29uanVuY3Rpb24NCisgICAgICAgICAgIDxwYXJhPjxsaXRlcmFs
 PmZpcnN0PC9saXRlcmFsPiBJZiB0aGUgJ2xvZycga2V5d29yZCBpcyBiZWluZyB1c2VkIGluIGNv
 bmp1bmN0aW9uDQogICAgICAgICAgICAgIHdpdGggYSAia2VlcCBzdGF0ZSIgb3B0aW9uLCBpdCBp
 cyByZWNvbW1lbmRlZCB0aGF0IHRoaXMNCiAgICAgICAgICAgICAgb3B0aW9uIGlzIGFsc28gYXBw
 bGllZCBzbyB0aGF0IG9ubHkgdGhlIHRyaWdnZXJpbmcgcGFja2V0DQogICAgICAgICAgICAgIGlz
 IGxvZ2dlZCBhbmQgbm90IGV2ZXJ5IHBhY2tldCB3aGljaCB0aGVyZSBhZnRlciBtYXRjaGVzDQpA
 QCAtOTM5LDE1ICs5NDAsMTUgQEANCiANCiAgICAgICAgICA8c2VjdDM+DQogICAgICAgICAgICA8
 dGl0bGU+UFJPVE88L3RpdGxlPg0KLSAgICAgICAgICAgPHBhcmE+UHJvdG8gaXMgdGhlIHN1Ympl
 Y3Qga2V5d29yZCwgaXQgbXVzdCBiZSBjb2RlZCBhbG9uZw0KKyAgICAgICAgICAgPHBhcmE+PGxp
 dGVyYWw+cHJvdG88L2xpdGVyYWw+IGlzIHRoZSBzdWJqZWN0IGtleXdvcmQsIGl0IG11c3QgYmUg
 Y29kZWQgYWxvbmcNCiAgICAgICAgICAgICAgd2l0aCBvbmUgb2YgaXQucyBjb3JyZXNwb25kaW5n
 IGtleXdvcmQgc3ViLW9wdGlvbiB2YWx1ZXMuDQogICAgICAgICAgICAgIFRoZSB2YWx1ZSBhbGxv
 d3MgYSBzcGVjaWZpYyBwcm90b2NvbCB0byBiZSBtYXRjaGVkIGFnYWluc3QuDQogICAgICAgICAg
 ICAgIFRoaXMgb3B0aW9uIGlzIGEgbWFuZGF0b3J5IHJlcXVpcmVtZW50IGZvciB0aGUgbW9kZXJu
 aXplZA0KICAgICAgICAgICAgICBydWxlcyBwcm9jZXNzaW5nIGxvZ2ljLjwvcGFyYT4NCiANCi0g
 ICAgICAgICAgIDxwYXJhPnRjcC91ZHAgfCB1ZHAgfCB0Y3AgfCBpY21wIG9yIGFueSBwcm90b2Nv
 bCBuYW1lcyBmb3VuZA0KLSAgICAgICAgICAgICBpbiAvZXRjL3Byb3RvY29scyBhcmUgcmVjb2du
 aXplZCBhbmQgbWF5IGJlIHVzZWQuIFRoZQ0KLSAgICAgICAgICAgICBzcGVjaWFsIHByb3RvY29s
 IGtleXdvcmQgdGNwL3VkcCBtYXkgYmUgdXNlZCB0byBtYXRjaA0KKyAgICAgICAgICAgPHBhcmE+
 PGxpdGVyYWw+dGNwL3VkcCB8IHVkcCB8IHRjcCB8IGljbXA8L2xpdGVyYWw+IG9yIGFueSBwcm90
 b2NvbCBuYW1lcyBmb3VuZA0KKyAgICAgICAgICAgICBpbiA8ZmlsZW5hbWU+L2V0Yy9wcm90b2Nv
 bHM8L2ZpbGVuYW1lPiBhcmUgcmVjb2duaXplZCBhbmQgbWF5IGJlIHVzZWQuIFRoZQ0KKyAgICAg
 ICAgICAgICBzcGVjaWFsIHByb3RvY29sIGtleXdvcmQgPGxpdGVyYWw+dGNwL3VkcDwvbGl0ZXJh
 bD4gbWF5IGJlIHVzZWQgdG8gbWF0Y2gNCiAgICAgICAgICAgICAgZWl0aGVyIGEgPGFjcm9ueW0+
 VENQPC9hY3JvbnltPiBvciBhIFVEUCBwYWNrZXQsIGFuZCBoYXMgYmVlbiBhZGRlZCBhcyBhDQog
 ICAgICAgICAgICAgIGNvbnZlbmllbmNlIHRvIHNhdmUgZHVwbGljYXRpb24gb2Ygb3RoZXJ3aXNl
 IGlkZW50aWNhbA0KICAgICAgICAgICAgICBydWxlcy48L3BhcmE+DQpAQCAtOTU1LDEyICs5NTYs
 MTIgQEANCiANCiAgICAgICAgICA8c2VjdDM+DQogICAgICAgICAgICA8dGl0bGU+U1JDX0FERFIv
 RFNUX0FERFI8L3RpdGxlPg0KLSAgICAgICAgICAgPHBhcmE+VGhlICdhbGwnIGtleXdvcmQgaXMg
 ZXNzZW50aWFsbHkgYSBzeW5vbnltIGZvciAiZnJvbQ0KKyAgICAgICAgICAgPHBhcmE+VGhlIDxs
 aXRlcmFsPmFsbDwvbGl0ZXJhbD4ga2V5d29yZCBpcyBlc3NlbnRpYWxseSBhIHN5bm9ueW0gZm9y
 ICJmcm9tDQogICAgICAgICAgICAgIGFueSB0byBhbnkiIHdpdGggbm8gb3RoZXIgbWF0Y2ggcGFy
 YW1ldGVycy48L3BhcmE+DQogDQotICAgICAgICAgICA8cGFyYT5mcm9tIHNyYyB0byBkc3QgVGhl
 IGZyb20gYW5kIHRvIGtleXdvcmRzIGFyZSB1c2VkIHRvDQorICAgICAgICAgICA8cGFyYT48bGl0
 ZXJhbD5mcm9tIHNyYyB0byBkc3Q8L2xpdGVyYWw+OiB0aGUgZnJvbSBhbmQgdG8ga2V5d29yZHMg
 YXJlIHVzZWQgdG8NCiAgICAgICAgICAgICAgbWF0Y2ggYWdhaW5zdCBJUCBhZGRyZXNzZXMuIFJ1
 bGVzIG11c3Qgc3BlY2lmeSBCT1RIIHNvdXJjZQ0KLSAgICAgICAgICAgICBhbmQgZGVzdGluYXRp
 b24gcGFyYW1ldGVycy4gLmFueS4gaXMgYSBzcGVjaWFsIGtleXdvcmQgdGhhdA0KKyAgICAgICAg
 ICAgICBhbmQgZGVzdGluYXRpb24gcGFyYW1ldGVycy4gPGxpdGVyYWw+YW55PC9saXRlcmFsPiBp
 cyBhIHNwZWNpYWwga2V5d29yZCB0aGF0DQogICAgICAgICAgICAgIG1hdGNoZXMgYW55IElQIGFk
 ZHJlc3MuIEFzIGluICdmcm9tIGFueSB0byBhbnknIG9yICdmcm9tDQogICAgICAgICAgICAgIDAu
 MC4wLjAvMCB0byBhbnknIG9yICdmcm9tIGFueSB0byAwLjAuMC4wLzAnIG9yICdmcm9tDQogICAg
 ICAgICAgICAgIDAuMC4wLjAgdG8gYW55JyBvciAnZnJvbSBhbnkgdG8gMC4wLjAuMCc8L3BhcmE+
 DQpAQCAtOTgwLDExICs5ODEsMTEgQEANCiAgICAgICAgICAgIDxwYXJhPklmIGEgcG9ydCBtYXRj
 aCBpcyBpbmNsdWRlZCwgZm9yIGVpdGhlciBvciBib3RoIG9mDQogICAgICAgICAgICAgIHNvdXJj
 ZSBhbmQgZGVzdGluYXRpb24sIHRoZW4gaXQgaXMgb25seSBhcHBsaWVkIHRvIDxhY3JvbnltPlRD
 UDwvYWNyb255bT4gYW5kDQogICAgICAgICAgICAgIFVEUCBwYWNrZXRzLiBXaGVuIGNvbXBvc2lu
 ZyBwb3J0IGNvbXBhcmlzb25zLCBlaXRoZXIgdGhlDQotICAgICAgICAgICAgIHNlcnZpY2UgbmFt
 ZSBmcm9tIC9ldGMvc2VydmljZXMgb3IgYW4gaW50ZWdlciBwb3J0IG51bWJlcg0KKyAgICAgICAg
 ICAgICBzZXJ2aWNlIG5hbWUgZnJvbSA8ZmlsZW5hbWU+L2V0Yy9zZXJ2aWNlczwvZmlsZW5hbWU+
 IG9yIGFuIGludGVnZXIgcG9ydCBudW1iZXINCiAgICAgICAgICAgICAgbWF5IGJlIHVzZWQuIFdo
 ZW4gdGhlIHBvcnQgYXBwZWFycyBhcyBwYXJ0IG9mIHRoZSBmcm9tDQogICAgICAgICAgICAgIG9i
 amVjdCwgaXQgbWF0Y2hlcyB0aGUgc291cmNlIHBvcnQgbnVtYmVyLCB3aGVuIGl0IGFwcGVhcnMN
 CiAgICAgICAgICAgICAgYXMgcGFydCBvZiB0aGUgdG8gb2JqZWN0LCBpdCBtYXRjaGVzIHRoZSBk
 ZXN0aW5hdGlvbiBwb3J0DQotICAgICAgICAgICAgIG51bWJlci4gVGhlIHVzZSBvZiB0aGUgcG9y
 dCBvcHRpb24gd2l0aCB0aGUgLnRvLiBvYmplY3QgaXMNCisgICAgICAgICAgICAgbnVtYmVyLiBU
 aGUgdXNlIG9mIHRoZSBwb3J0IG9wdGlvbiB3aXRoIHRoZSA8bGl0ZXJhbD50bzwvbGl0ZXJhbD4g
 b2JqZWN0IGlzDQogICAgICAgICAgICAgIGEgbWFuZGF0b3J5IHJlcXVpcmVtZW50IGZvciB0aGUg
 bW9kZXJuaXplZCBydWxlcyBwcm9jZXNzaW5nDQogICAgICAgICAgICAgIGxvZ2ljLiBBcyBpbiAn
 ZnJvbSBhbnkgdG8gYW55IHBvcnQgPSA4MCc8L3BhcmE+DQogDQpAQCAtMTAxOCw3ICsxMDE5LDcg
 QEANCiANCiAgICAgICAgICA8c2VjdDM+DQogICAgICAgICAgICA8dGl0bGU+U1RBVEVGVUw8L3Rp
 dGxlPg0KLSAgICAgICAgICAgPHBhcmE+J2tlZXAgc3RhdGUnIGluZGljYXRlcyB0aGF0IG9uIGEg
 cGFzcyBydWxlLCBhbnkgcGFja2V0cw0KKyAgICAgICAgICAgPHBhcmE+PGxpdGVyYWw+a2VlcCBz
 dGF0ZTwvbGl0ZXJhbD4gaW5kaWNhdGVzIHRoYXQgb24gYSBwYXNzIHJ1bGUsIGFueSBwYWNrZXRz
 DQogICAgICAgICAgICAgIHRoYXQgbWF0Y2ggdGhlIHJ1bGVzIHNlbGVjdGlvbiBwYXJhbWV0ZXJz
 IGlzIHRvIGFjdGl2YXRlDQogICAgICAgICAgICAgIHRoZSBzdGF0ZWZ1bCBmaWx0ZXJpbmcgZmFj
 aWxpdHkuPC9wYXJhPg0KIA0KQEAgLTEwNDYsNyArMTA0Nyw3IEBADQogICAgICAgICAgIG9yIFVE
 UCBzZXNzaW9uIHRocm91Z2guIFNvIGlmIHlvdSBnZXQgSUNNUCB0eXBlIDMgY29kZSA0IGluDQog
 ICAgICAgICAgIHJlc3BvbnNlIHRvIHNvbWUgd2ViIHN1cmZpbmcgYWxsb3dlZCBvdXQgYnkgYSBr
 ZWVwIHN0YXRlIHJ1bGUsDQogICAgICAgICAgIHRoZXkgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGFs
 bG93ZWQgaW4uIEFueSBwYWNrZXQgdGhhdCBJUEYgY2FuDQotICAgICAgICAgIGJlIGNlcnRhaW4g
 aXMgcGFydCBvZiBhIGFjdGl2ZSBzZXNzaW9uLCBldmVuIGlmIGl0IGlzIGENCisgICAgICAgICAg
 YmUgY2VydGFpbiBpcyBwYXJ0IG9mIGFuIGFjdGl2ZSBzZXNzaW9uLCBldmVuIGlmIGl0IGlzIGEN
 CiAgICAgICAgICAgZGlmZmVyZW50IHByb3RvY29sLCB3aWxsIGJlIGxldCBpbi48L3BhcmE+DQog
 DQogICAgICAgICA8cGFyYT5XaGF0IGhhcHBlbnMgaXM6PC9wYXJhPg0KQEAgLTEwOTAsMTYgKzEw
 OTEsMTYgQEANCiAgICAgICAgIGludGVyZmFjZXMgd2hpY2ggaGF2ZSB0byBoYXZlIHJ1bGVzIHRv
 IGFsbG93IHRoZSBmaXJld2FsbCB0bw0KICAgICAgICAgZnVuY3Rpb24uPC9wYXJhPg0KIA0KLSAg
 ICAgIDxwYXJhPkFsbCBVbml4IGZsYXZvcmVkIHN5c3RlbXMgaW5jbHVkaW5nICZvczsgYXJlIGRl
 c2lnbmVkIHRvDQotICAgICAgICB1c2UgaW50ZXJmYWNlIGwwIGFuZCBJUCBhZGRyZXNzIDEyNy4w
 LjAuMSBmb3IgaW50ZXJuYWwNCi0gICAgICAgIGNvbW11bmljYXRpb24gd2l0aCBpbiB0aGUgJm9z
 OyBvcGVyYXRpbmcgc3lzdGVtLiBUaGUgZmlyZXdhbGwNCisgICAgICA8cGFyYT5BbGwgJnVuaXg7
 IGZsYXZvcmVkIHN5c3RlbXMgaW5jbHVkaW5nICZvczsgYXJlIGRlc2lnbmVkIHRvDQorICAgICAg
 ICB1c2UgaW50ZXJmYWNlIDxkZXZpY2VuYW1lPmxvMDwvZGV2aWNlbmFtZT4gYW5kIElQIGFkZHJl
 c3MgMTI3LjAuMC4xIGZvciBpbnRlcm5hbA0KKyAgICAgICAgY29tbXVuaWNhdGlvbiB3aXRoIGlu
 IHRoZSBvcGVyYXRpbmcgc3lzdGVtLiBUaGUgZmlyZXdhbGwNCiAgICAgICAgIHJ1bGVzIG11c3Qg
 Y29udGFpbiBydWxlcyB0byBhbGxvdyBmcmVlIHVubW9sZXN0ZWQgbW92ZW1lbnQgb2YNCiAgICAg
 ICAgIHRoZXNlIHNwZWNpYWwgaW50ZXJuYWxseSB1c2VkIHBhY2tldHMuPC9wYXJhPg0KIA0KICAg
 ICAgIDxwYXJhPlRoZSBpbnRlcmZhY2Ugd2hpY2ggZmFjZXMgdGhlIHB1YmxpYyBJbnRlcm5ldCwg
 aXMgdGhlIG9uZQ0KICAgICAgICAgd2hpY2ggeW91IGNvZGUgeW91ciBydWxlcyB0byBhdXRob3Jp
 emUgYW5kIGNvbnRyb2wgYWNjZXNzIG91dA0KICAgICAgICAgdG8gdGhlIHB1YmxpYyBJbnRlcm5l
 dCBhbmQgYWNjZXNzIHJlcXVlc3RzIGFycml2aW5nIGZyb20gdGhlDQotICAgICAgICBwdWJsaWMg
 SW50ZXJuZXQuIFRoaXMgY2FuIGJlIHlvdXIgLnVzZXIgcHBwLiB0dW4wIGludGVyZmFjZSBvcg0K
 KyAgICAgICAgcHVibGljIEludGVybmV0LiBUaGlzIGNhbiBiZSB5b3VyICd1c2VyIHBwcCcgPGRl
 dmljZW5hbWU+dHVuMDwvZGV2aWNlbmFtZT4gaW50ZXJmYWNlIG9yDQogICAgICAgICB5b3VyIE5J
 QyBjYXJkIHRoYXQgaXMgY2FibGVkIHRvIHlvdXIgRFNMIG9yIGNhYmxlIG1vZGVtLjwvcGFyYT4N
 CiANCiAgICAgICA8cGFyYT5JbiBjYXNlcyB3aGVyZSBvbmUgb3IgbW9yZSB0aGFuIG9uZSBOSUNz
 IGFyZSBjYWJsZWQgdG8NCkBAIC0xMTQ4LDEzICsxMTQ5LDEzIEBADQogICAgICAgICB0aGUgZmly
 c3Qgb2NjdXJyZW5jZSBiZWNhdXNlIHRoaXMgaXMgc29tZXRoaW5nIGEgYXR0YWNrZXINCiAgICAg
 ICAgIHdvdWxkIGRvLjwvcGFyYT4NCiANCi0gICAgICA8cGFyYT5BbnkgdGltZSB5b3Ugc2VlIGxv
 ZyBtZXNzYWdlcyBvbiBhIHJ1bGUgd2l0aCAubG9nIGZpcnN0Lg0KKyAgICAgIDxwYXJhPkFueSB0
 aW1lIHlvdSBzZWUgbG9nIG1lc3NhZ2VzIG9uIGEgcnVsZSB3aXRoICdsb2cgZmlyc3QnLg0KICAg
 ICAgICAgWW91IHNob3VsZCBkbyBhbiA8Y29tbWFuZD5pcGZzdGF0IC1oaW88L2NvbW1hbmQ+IGNv
 bW1hbmQgdG8NCiAgICAgICAgIHNlZSB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoZSBydWxlIGhhcyBi
 ZWVuIG1hdGNoZWQgc28geW91IGtub3cNCiAgICAgICAgIGlmIHlvdXIgYXJlIGJlaW5nIGZsb29k
 ZWQsIGkuZS4gdW5kZXIgYXR0YWNrLjwvcGFyYT4NCiANCiAgICAgICA8cGFyYT5XaGVuIHlvdSBs
 b2cgcGFja2V0cyB3aXRoIHBvcnQgbnVtYmVycyB5b3UgZG8gbm90DQotICAgICAgICByZWNvZ25p
 emUsIGdvIHRvIDx1bGluaw0KKyAgICAgICAgcmVjb2duaXplLCBsb29rIGl0IHVwIGluIDxmaWxl
 bmFtZT4vZXRjL3NlcnZpY2VzPC9maWxlbmFtZT4gb3IgZ28gdG8gPHVsaW5rDQogICAgICAgICB1
 cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlzdGF0cy5jb20vdG9vbHMvcG9ydHNlYXJjaC5waHAiPjwv
 dWxpbms+DQogICAgICAgICBhbmQgZG8gYSBwb3J0IG51bWJlciBsb29rdXAgdG8gZmluZCB3aGF0
 IHRoZSBwdXJwb3NlIG9mIHRoYXQNCiAgICAgICAgIHBvcnQgbnVtYmVyIGlzLjwvcGFyYT4NCkBA
 IC0xMTY3LDcgKzExNjgsNyBAQA0KICAgICAgIDxwYXJhPlRoZSBmb2xsb3dpbmcgcnVsZSBzZXQg
 aXMgYSBjb21wbGV0ZSB2ZXJ5IHNlY3VyZQ0KICAgICAgICAgJ2luY2x1c2l2ZScgdHlwZSBvZiBm
 aXJld2FsbCBydWxlIHNldCB0aGF0IEkgaGF2ZSB1c2VkIG9uIG15DQogICAgICAgICBzeXN0ZW0u
 IFlvdSBjYW4gbm90IGdvIHdyb25nIHVzaW5nIHRoaXMgcnVsZSBzZXQgZm9yIHlvdXIgb3duLg0K
 LSAgICAgICAgSnVzdCBjb21tZW50IG91dCBhbnkgcGFzcyBydWxlcyBmb3Igc2VydmljZXMgdG8g
 ZG9uLnQgd2FudCB0bw0KKyAgICAgICAgSnVzdCBjb21tZW50IG91dCBhbnkgcGFzcyBydWxlcyBm
 b3Igc2VydmljZXMgdG8gZG9uJ3Qgd2FudCB0bw0KICAgICAgICAgYXV0aG9yaXplLjwvcGFyYT4N
 CiANCiAgICAgICA8cGFyYT5JZiB5b3Ugc2VlIG1lc3NhZ2VzIGluIHlvdXIgbG9nIHRoYXQgeW91
 IHdhbnQgdG8gc3RvcA0KQEAgLTExODIsOCArMTE4Myw4IEBADQogICAgICAgICA8ZmlsZW5hbWU+
 L2V0Yy9pcGYucnVsZXM8L2ZpbGVuYW1lPjo8L3BhcmE+DQogDQogICAgICAgPHByb2dyYW1saXN0
 aW5nPiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
 IyMjIyMjIyMjIyMjDQotIyBObyByZXN0cmljdGlvbnMgb24gSW5zaWRlIExhbiBJbnRlcmZhY2Ug
 Zm9yIHByaXZhdGUgbmV0d29yaw0KLSMgTm90IG5lZWRlZCB1bmxlc3MgeW91IGhhdmUgTGFuDQor
 IyBObyByZXN0cmljdGlvbnMgb24gSW5zaWRlIExBTiBJbnRlcmZhY2UgZm9yIHByaXZhdGUgbmV0
 d29yaw0KKyMgTm90IG5lZWRlZCB1bmxlc3MgeW91IGhhdmUgTEFODQogIyMjIyMjIyMjIyMjIyMj
 IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiANCiAj
 cGFzcyBvdXQgcXVpY2sgb24geGwwIGFsbA0KQEAgLTEyMDMsMTQgKzEyMDQsMTQgQEANCiAjIyMj
 IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
 IyMjIw0KIA0KICMgQWxsb3cgb3V0IGFjY2VzcyB0byBteSBJU1AncyBEb21haW4gbmFtZSBzZXJ2
 ZXIuDQotIyB4eHggbXVzdCBiZSB0aGUgSVAgYWRkcmVzcyBvZiB5b3VyIElTUC5zIEROUy4NCisj
 IHh4eCBtdXN0IGJlIHRoZSBJUCBhZGRyZXNzIG9mIHlvdXIgSVNQJ3MgRE5TLg0KICMgRHVwIHRo
 ZXNlIGxpbmVzIGlmIHlvdXIgSVNQIGhhcyBtb3JlIHRoYW4gb25lIEROUyBzZXJ2ZXINCiAjIEdl
 dCB0aGUgSVAgYWRkcmVzc2VzIGZyb20gL2V0Yy9yZXNvbHYuY29uZiBmaWxlDQogcGFzcyBvdXQg
 cXVpY2sgb24gZGMwIHByb3RvIHRjcCBmcm9tIGFueSB0byB4eHggcG9ydCA9IDUzIGZsYWdzIFMg
 a2VlcCBzdGF0ZQ0KIHBhc3Mgb3V0IHF1aWNrIG9uIGRjMCBwcm90byB1ZHAgZnJvbSBhbnkgdG8g
 eHh4IHBvcnQgPSA1MyBrZWVwIHN0YXRlDQogDQogIyBBbGxvdyBvdXQgYWNjZXNzIHRvIG15IElT
 UCdzIERIQ1Agc2VydmVyIGZvciBjYWJsZSBvciBEU0wgbmV0d29ya3MuDQotIyBUaGlzIHJ1bGUg
 aXMgbm90IG5lZWRlZCBmb3IgLnVzZXIgcHBwLiB0eXBlIGNvbm5lY3Rpb24gdG8gdGhlDQorIyBU
 aGlzIHJ1bGUgaXMgbm90IG5lZWRlZCBmb3IgJ3VzZXIgcHBwJyB0eXBlIGNvbm5lY3Rpb24gdG8g
 dGhlDQogIyBwdWJsaWMgSW50ZXJuZXQsIHNvIHlvdSBjYW4gZGVsZXRlIHRoaXMgd2hvbGUgZ3Jv
 dXAuDQogIyBVc2UgdGhlIGZvbGxvd2luZyBydWxlIGFuZCBjaGVjayBsb2cgZm9yIElQIGFkZHJl
 c3MuDQogIyBUaGVuIHB1dCBJUCBhZGRyZXNzIGluIGNvbW1lbnRlZCBvdXQgcnVsZSAmIGRlbGV0
 ZSBmaXJzdCBydWxlDQpAQCAtMTI1OCw3ICsxMjU5LDcgQEANCiBwYXNzIG91dCBxdWljayBvbiBk
 YzAgcHJvdG8gdGNwIGZyb20gYW55IHRvIGFueSBwb3J0ID0gNDMgZmxhZ3MgUyBrZWVwIHN0YXRl
 DQogDQogIyBCbG9jayBhbmQgbG9nIG9ubHkgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgZXZlcnl0
 aGluZw0KLSMgZWxzZSB0aGF0LnMgdHJ5aW5nIHRvIGdldCBvdXQuDQorIyBlbHNlIHRoYXQncyB0
 cnlpbmcgdG8gZ2V0IG91dC4NCiAjIFRoaXMgcnVsZSBlbmZvcmNlcyB0aGUgYmxvY2sgYWxsIGJ5
 IGRlZmF1bHQgbG9naWMuDQogYmxvY2sgb3V0IGxvZyBmaXJzdCBxdWljayBvbiBkYzAgYWxsDQog
 DQpAQCAtMTMxNCwxMCArMTMxNSwxMCBAQA0KIGJsb2NrIGluIGxvZyBmaXJzdCBxdWljayBvbiBk
 YzAgcHJvdG8gdGNwL3VkcCBmcm9tIGFueSB0byBhbnkgcG9ydCA9IDgxDQogDQogIyBBbGxvdyB0
 cmFmZmljIGluIGZyb20gSVNQJ3MgREhDUCBzZXJ2ZXIuIFRoaXMgcnVsZSBtdXN0IGNvbnRhaW4N
 Ci0jIHRoZSBJUCBhZGRyZXNzIG9mIHlvdXIgSVNQLnMgREhDUCBzZXJ2ZXIgYXMgaXQucyB0aGUg
 b25seQ0KKyMgdGhlIElQIGFkZHJlc3Mgb2YgeW91ciBJU1AncyBESENQIHNlcnZlciBhcyBpdCdz
 IHRoZSBvbmx5DQogIyBhdXRob3JpemVkIHNvdXJjZSB0byBzZW5kIHRoaXMgcGFja2V0IHR5cGUu
 IE9ubHkgbmVjZXNzYXJ5IGZvcg0KICMgY2FibGUgb3IgRFNMIGNvbmZpZ3VyYXRpb25zLiBUaGlz
 IHJ1bGUgaXMgbm90IG5lZWRlZCBmb3INCi0jIC51c2VyIHBwcC4gdHlwZSBjb25uZWN0aW9uIHRv
 IHRoZSBwdWJsaWMgSW50ZXJuZXQuDQorIyAndXNlciBwcHAnIHR5cGUgY29ubmVjdGlvbiB0byB0
 aGUgcHVibGljIEludGVybmV0Lg0KICMgVGhpcyBpcyB0aGUgc2FtZSBJUCBhZGRyZXNzIHlvdSBj
 YXB0dXJlZCBhbmQNCiAjIHVzZWQgaW4gdGhlIG91dGJvdW5kIHNlY3Rpb24uDQogcGFzcyBpbiBx
 dWljayBvbiBkYzAgcHJvdG8gdWRwIGZyb20gei56LnoueiB0byBhbnkgcG9ydCA9IDY4IGtlZXAg
 c3RhdGUNCkBAIC0xNDMwLDE0ICsxNDMxLDE0IEBADQogICAgIDxzZWN0Mj4NCiAgICAgICA8dGl0
 bGU+SVA8YWNyb255bT5OQVQ8L2Fjcm9ueW0+PC90aXRsZT4NCiANCi0gICAgICA8cGFyYT48YWNy
 b255bT5OQVQ8L2Fjcm9ueW0+IHJ1bGVzIGFyZSBsb2FkZWQgYnkgdXNpbmcgdGhlIGlwbmF0DQor
 ICAgICAgPHBhcmE+PGFjcm9ueW0+TkFUPC9hY3JvbnltPiBydWxlcyBhcmUgbG9hZGVkIGJ5IHVz
 aW5nIHRoZSA8Y29tbWFuZD5pcG5hdDwvY29tbWFuZD4NCiAgICAgICAgIGNvbW1hbmQuIFR5cGlj
 YWxseSB0aGUgPGFjcm9ueW0+TkFUPC9hY3JvbnltPiBydWxlcyBhcmUgc3RvcmVkDQogICAgICAg
 ICBpbiA8ZmlsZW5hbWU+L2V0Yy9pcG5hdC5ydWxlcyA8L2ZpbGVuYW1lPi4gU2VlICZtYW4uaXBu
 YXQuMQ0KICAgICAgICAgZm9yIGRldGFpbHMuPC9wYXJhPg0KIA0KICAgICAgIDxwYXJhPldoZW4g
 Y2hhbmdpbmcgdGhlIDxhY3JvbnltPk5BVDwvYWNyb255bT4gcnVsZXMgYWZ0ZXINCi0gICAgICAg
 IDxhY3JvbnltPk5BVDwvYWNyb255bT4gaGFzIGJlZW4gc3RhcnRlZCwgTWFrZSB5b3VyIGNoYW5n
 ZXMgdG8NCi0gICAgICAgIHRoZSBmaWxlIGNvbnRhaW5pbmcgdGhlIG5hdCBydWxlcywgdGhlbiBy
 dW4gaXBuYXQgY29tbWFuZCB3aXRoDQorICAgICAgICA8YWNyb255bT5OQVQ8L2Fjcm9ueW0+IGhh
 cyBiZWVuIHN0YXJ0ZWQsIG1ha2UgeW91ciBjaGFuZ2VzIHRvDQorICAgICAgICB0aGUgZmlsZSBj
 b250YWluaW5nIHRoZSBOQVQgcnVsZXMsIHRoZW4gcnVuIGlwbmF0IGNvbW1hbmQgd2l0aA0KICAg
 ICAgICAgdGhlIDxvcHRpb24+LUNGPC9vcHRpb24+IGZsYWdzIHRvIGRlbGV0ZSB0aGUgaW50ZXJu
 YWwgaW4gdXNlDQogICAgICAgICA8YWNyb255bT5OQVQ8L2Fjcm9ueW0+IHJ1bGVzIGFuZCBmbHVz
 aCB0aGUgY29udGVudHMgb2YgdGhlDQogICAgICAgICB0cmFuc2xhdGlvbiB0YWJsZSBvZiBhbGwg
 YWN0aXZlIGVudHJpZXMuPC9wYXJhPg0KQEAgLTE1MjYsNyArMTUyNyw3IEBADQogICAgICAgICA8
 ZmlsZW5hbWU+L2V0Yy9yYy5jb25mPC9maWxlbmFtZT48L3BhcmE+DQogDQogICAgICAgPHBhcmE+
 VG8gZW5hYmxlIHlvdXIgbWFjaGluZSB0byByb3V0ZSB0cmFmZmljIGJldHdlZW4NCi0gICAgICAg
 IGludGVyZmFjZXMuPC9wYXJhPg0KKyAgICAgICAgaW50ZXJmYWNlczo8L3BhcmE+DQogDQogICAg
 ICAgPHByb2dyYW1saXN0aW5nPmdhdGV3YXlfZW5hYmxlPSJZRVMiPC9wcm9ncmFtbGlzdGluZz4N
 CiANCkBAIC0xNTM1LDcgKzE1MzYsNyBAQA0KICAgICAgIDxwcm9ncmFtbGlzdGluZz5pcG5hdF9l
 bmFibGU9IllFUyI8L3Byb2dyYW1saXN0aW5nPg0KIA0KICAgICAgIDxwYXJhPlRvIHNwZWNpZnkg
 d2hlcmUgdG8gbG9hZCB0aGUgSVA8YWNyb255bT5OQVQ8L2Fjcm9ueW0+DQotICAgICAgICBydWxl
 cyBmcm9tPC9wYXJhPg0KKyAgICAgICAgcnVsZXMgZnJvbTo8L3BhcmE+DQogDQogICAgICAgPHBy
 b2dyYW1saXN0aW5nPmlwbmF0X3J1bGVzPSIvZXRjL2lwbmF0LnJ1bGVzIjwvcHJvZ3JhbWxpc3Rp
 bmc+DQogICAgIDwvc2VjdDI+DQpAQCAtMTU0Myw3ICsxNTQ0LDcgQEANCiAgICAgPHNlY3QyPg0K
 ICAgICAgIDx0aXRsZT48YWNyb255bT5OQVQ8L2Fjcm9ueW0+IGZvciBhIHZlcnkgbGFyZ2UgTEFO
 PC90aXRsZT4NCiANCi0gICAgICA8cGFyYT5Gb3IgbmV0d29ya3MgdGhhdCBoYXZlIGxhcmdlIG51
 bWJlcnMgb2YgUEMncyBvbiB0aGUgTGFuIG9yDQorICAgICAgPHBhcmE+Rm9yIG5ldHdvcmtzIHRo
 YXQgaGF2ZSBsYXJnZSBudW1iZXJzIG9mIFBDJ3Mgb24gdGhlIExBTiBvcg0KICAgICAgICAgbmV0
 d29ya3Mgd2l0aCBtb3JlIHRoYXQgYSBzaW5nbGUgTEFOIHRoZSBwcm9jZXNzIG9mIGZ1bm5lbGlu
 Zw0KICAgICAgICAgYWxsIHRob3NlIHByaXZhdGUgSVAgYWRkcmVzcyBpbnRvIGEgc2luZ2xlIHB1
 YmxpYyBJUCBhZGRyZXNzDQogICAgICAgICBiZWNvbWVzIGEgcmVzb3VyY2UgcHJvYmxlbSB0aGF0
 IG1heSBjYXVzZSBwcm9ibGVtcyB3aXRoIHNhbWUNCkBAIC0xNTUzLDcgKzE1NTQsNyBAQA0KIA0K
 ICAgICAgIDxzZWN0Mz4NCiAgICAgICAgIDx0aXRsZT5Bc3NpZ25pbmcgUG9ydHMgdG8gVXNlPC90
 aXRsZT4NCi0NCisgICAgICAgIDwhLS0gV2hhdCBkb2VzIGl0IG1lYW4gPyBJcyB0aGVyZSBzb21l
 dGhpbmcgbWlzc2luZyA/LS0+DQogICAgICAgICA8cGFyYT5YWFhCTEFIPC9wYXJhPg0KIA0KICAg
 ICAgICAgPHByb2dyYW1saXN0aW5nPm1hcCBkYzAgMTkyLjE2OC4xLjAvMjQgLT4gMC4zMjwvcHJv
 Z3JhbWxpc3Rpbmc+DQpAQCAtMTU5OSw3ICsxNjAwLDcgQEANCiAgICAgPHNlY3QyPg0KICAgICAg
 IDx0aXRsZT5Qb3J0IFJlZGlyZWN0aW9uPC90aXRsZT4NCiANCi0gICAgICA8cGFyYT5BbiB2ZXJ5
 IGNvbW1vbiBwcmFjdGljZSBpcyB0byBoYXZlIGEgd2ViIHNlcnZlciwgZW1haWwNCisgICAgICA8
 cGFyYT5BIHZlcnkgY29tbW9uIHByYWN0aWNlIGlzIHRvIGhhdmUgYSB3ZWIgc2VydmVyLCBlbWFp
 bA0KICAgICAgICAgc2VydmVyLCBkYXRhYmFzZSBzZXJ2ZXIgYW5kIEROUyBzZXJ2ZXIgZWFjaCBz
 ZWdyZWdhdGVkIHRvIGENCiAgICAgICAgIGRpZmZlcmVudCBQQyBvbiB0aGUgTEFOLiBJbiB0aGlz
 IGNhc2UgdGhlIHRyYWZmaWMgZnJvbSB0aGVzZQ0KICAgICAgICAgc2VydmVycyBzdGlsbCBoYXZl
 IHRvIGJlIDxhY3JvbnltPk5BVDwvYWNyb255bT5lZCwgYnV0IHRoZXJlDQpAQCAtMTczMSw3ICsx
 NzMyLDcgQEANCiANCiAgICAgPHBhcmE+VGhlIElQRklSRVdBTEwgKElQRlcpIGlzIGEgJm9zOyBz
 cG9uc29yZWQgZmlyZXdhbGwgc29mdHdhcmUNCiAgICAgICBhcHBsaWNhdGlvbiBhdXRob3JlZCBh
 bmQgbWFpbnRhaW5lZCBieSAmb3M7IHZvbHVudGVlciBzdGFmZg0KLSAgICAgIG1lbWJlcnMuIEl0
 IHVzZXMgdGhlIGxlZ2FjeSBTdGF0ZWxlc3MgcnVsZXMgYW5kIGEgbGVnYWN5IHJ1bGUNCisgICAg
 ICBtZW1iZXJzLiBJdCB1c2VzIHRoZSBsZWdhY3kgc3RhdGVsZXNzIHJ1bGVzIGFuZCBhIGxlZ2Fj
 eSBydWxlDQogICAgICAgY29kaW5nIHRlY2huaXF1ZSB0byBhY2hpZXZlIHdoYXQgaXMgcmVmZXJy
 ZWQgdG8gYXMgU2ltcGxlDQogICAgICAgU3RhdGVmdWwgbG9naWMuPC9wYXJhPg0KIA0KQEAgLTE3
 NTgsNyArMTc1OSw3IEBADQogICAgICAgPHRpdGxlPkVuYWJsaW5nIElQRlc8L3RpdGxlPg0KIA0K
 ICAgICAgIDxwYXJhPklQRlcgaXMgaW5jbHVkZWQgaW4gdGhlIGJhc2ljICZvczsgaW5zdGFsbCBh
 cyBhIHNlcGFyYXRlDQotICAgICAgICBydW4gdGltZSBsb2FkYWJsZSBtb2R1bGUuIElQRlcgd2ls
 bCBkeW5hbWljYWxseSBsb2FkIHRoZQ0KKyAgICAgICAgcnVuIHRpbWUgbG9hZGFibGUgbW9kdWxl
 LiBUaGUgc3lzdGVtIHdpbGwgZHluYW1pY2FsbHkgbG9hZCB0aGUNCiAgICAgICAgIGtlcm5lbCBt
 b2R1bGUgd2hlbiB0aGUgPGZpbGVuYW1lPnJjLmNvbmY8L2ZpbGVuYW1lPiBzdGF0ZW1lbnQNCiAg
 ICAgICAgIDxsaXRlcmFsPmZpcmV3YWxsX2VuYWJsZT0iWUVTIjwvbGl0ZXJhbD4gaXMgdXNlZC4g
 WW91IGRvIG5vdA0KICAgICAgICAgbmVlZCB0byBjb21waWxlIElQRlcgaW50byB0aGUgJm9zOyBr
 ZXJuZWwgdW5sZXNzIHlvdSB3YW50DQpAQCAtMTgxNSw3ICsxODE2LDcgQEANCiAgICAgICA8cHJv
 Z3JhbWxpc3Rpbmc+b3B0aW9ucyAgICBJUEZJUkVXQUxMX0RFRkFVTFRfVE9fQUNDRVBUPC9wcm9n
 cmFtbGlzdGluZz4NCiANCiAgICAgICA8cGFyYT5UaGlzIG9wdGlvbiB3aWxsIGFsbG93IGV2ZXJ5
 dGhpbmcgdG8gcGFzcyB0aHJvdWdoIHRoZQ0KLSAgICAgICAgZmlyZXdhbGwgYnkgZGVmYXVsdC4g
 V2hpY2ggaXMgYSBnb29kIGlkZWEgd2hlbiB5b3UgYXJlIGZpcnN0DQorICAgICAgICBmaXJld2Fs
 bCBieSBkZWZhdWx0LCB3aGljaCBpcyBhIGdvb2QgaWRlYSB3aGVuIHlvdSBhcmUgZmlyc3QNCiAg
 ICAgICAgIHNldHRpbmcgdXAgeW91ciBmaXJld2FsbC48L3BhcmE+DQogDQogICAgICAgPHByb2dy
 YW1saXN0aW5nPm9wdGlvbnMgICAgSVBWNkZJUkVXQUxMDQpAQCAtMTg3MCw3ICsxODcxLDcgQEAN
 CiAgICAgICAgIGZpcmV3YWxsIHJ1bGVzIHdpdGggY2hhbmdlcyB5b3UgbWFkZSB0byB0aGUgZmls
 ZXMgY29udGVudCBpcw0KICAgICAgICAgdGhlIHJlY29tbWVuZGVkIG1ldGhvZCB1c2VkIGhlcmUu
 PC9wYXJhPg0KIA0KLSAgICAgIDxwYXJhPlRoZSBJUEZXIGNvbW1hbmQgaXMgc3RpbGwgYSB2ZXJ5
 IHVzZWZ1bCB0byBkaXNwbGF5IHRoZQ0KKyAgICAgIDxwYXJhPlRoZSBpcGZ3IGNvbW1hbmQgaXMg
 c3RpbGwgYSB2ZXJ5IHVzZWZ1bCB0byBkaXNwbGF5IHRoZQ0KICAgICAgICAgcnVubmluZyBmaXJl
 d2FsbCBydWxlcyB0byB0aGUgY29uc29sZSBzY3JlZW4uIFRoZSBJUEZXDQogICAgICAgICBhY2Nv
 dW50aW5nIGZhY2lsaXR5IGR5bmFtaWNhbGx5IGNyZWF0ZXMgYSBjb3VudGVyIGZvciBlYWNoDQog
 ICAgICAgICBydWxlIHRoYXQgY291bnRzIGVhY2ggcGFja2V0IHRoYXQgbWF0Y2hlcyB0aGUgcnVs
 ZS4gRHVyaW5nIHRoZQ0KQEAgLTE5MzMsNyArMTkzNCw3IEBADQogICAgICAgICBzZXF1ZW5jZSBv
 cmRlci4gV2hlbiB0aGUgcGFja2V0IG1hdGNoZXMgYSBydWxlIHNlbGVjdGlvbg0KICAgICAgICAg
 cGFyYW1ldGVycywgdGhlIHJ1bGVzIGFjdGlvbiBmaWVsZCB2YWx1ZSBpcyBleGVjdXRlZCBhbmQg
 dGhlDQogICAgICAgICBzZWFyY2ggb2YgdGhlIHJ1bGUgc2V0IHRlcm1pbmF0ZXMgZm9yIHRoYXQg
 cGFja2V0LiAgVGhpcyBpcw0KLSAgICAgICAgcmVmZXJyZWQgdG8gYXMgdGhlICdmaXJzdCBtYXRj
 aCB3aW5zJyBzZWFyY2ggbWV0aG9kLiAgSWYgdGhlDQorICAgICAgICByZWZlcnJlZCB0byBhcyA8
 cXVvdGU+dGhlIGZpcnN0IG1hdGNoIHdpbnM8L3F1b3RlPiBzZWFyY2ggbWV0aG9kLiAgSWYgdGhl
 DQogICAgICAgICBwYWNrZXQgZG9lcyBub3QgbWF0Y2ggYW55IG9mIHRoZSBydWxlcywgaXQgZ2V0
 cyBjYXVnaHQgYnkgdGhlDQogICAgICAgICBtYW5kYXRvcnkgaXBmdyBkZWZhdWx0IHJ1bGUsIG51
 bWJlciA2NTUzNSB3aGljaCBkZW5pZXMgYWxsDQogICAgICAgICBwYWNrZXRzIGFuZCBkaXNjYXJk
 cyB0aGVtIHdpdGhvdXQgYW55IHJlcGx5IGJhY2sgdG8gdGhlDQpAQCAtMTk2Niw3ICsxOTY3LDcg
 QEANCiAgICAgICAgICAgZmlyZXdhbGwgcnVsZSBzZXQuIEZvciBhIGNvbXBsZXRlIHJ1bGUgc3lu
 dGF4IGRlc2NyaXB0aW9uDQogICAgICAgICAgIHNlZSB0aGUgJm1hbi5pcGZ3Ljg7IG1hbnVhbCBw
 YWdlLjwvcGFyYT4NCiANCi0gICAgICAgIDxwYXJhPlJ1bGVzIGNvbnRhaW4ga2V5d29yZHMsIFRo
 ZXNlIGtleXdvcmRzIGhhdmUgdG8gYmUgY29kZWQNCisgICAgICAgIDxwYXJhPlJ1bGVzIGNvbnRh
 aW4ga2V5d29yZHM6IHRoZXNlIGtleXdvcmRzIGhhdmUgdG8gYmUgY29kZWQNCiAgICAgICAgICAg
 aW4gYSBzcGVjaWZpYyBvcmRlciBmcm9tIGxlZnQgdG8gcmlnaHQgb24gdGhlIGxpbmUuIEtleXdv
 cmRzDQogICAgICAgICAgIGFyZSBpZGVudGlmaWVkIGluIGJvbGQgdHlwZS4gU29tZSBrZXl3b3Jk
 cyBoYXZlIHN1Yi1vcHRpb25zDQogICAgICAgICAgIHdoaWNoIG1heSBiZSBrZXl3b3JkcyB0aGVt
 IHNlbHZlcyBhbmQgYWxzbyBpbmNsdWRlIG1vcmUNCkBAIC0yMDEwLDcgKzIwMTEsNyBAQA0KICAg
 ICAgICAgICA8cGFyYT5DaGVja3MgdGhlIHBhY2tldCBhZ2FpbnN0IHRoZSBkeW5hbWljIHJ1bGVz
 IHRhYmxlLiBJZg0KICAgICAgICAgICAgIGEgbWF0Y2ggaXMgZm91bmQsIGV4ZWN1dGUgdGhlIGFj
 dGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlDQogICAgICAgICAgICAgcnVsZSB3aGljaCBnZW5lcmF0
 ZWQgdGhpcyBkeW5hbWljIHJ1bGUsIG90aGVyd2lzZSBtb3ZlIHRvDQotICAgICAgICAgICAgdGhl
 IG5leHQgcnVsZS4gVGhlIENoZWNrLXN0YXRlIHJ1bGUgZG9lcyBub3QgaGF2ZQ0KKyAgICAgICAg
 ICAgIHRoZSBuZXh0IHJ1bGUuIFRoZSBjaGVjay1zdGF0ZSBydWxlIGRvZXMgbm90IGhhdmUNCiAg
 ICAgICAgICAgICBzZWxlY3Rpb24gY3JpdGVyaW9uLiBJZiBubyBjaGVjay1zdGF0ZSBydWxlIGlz
 IHByZXNlbnQgaW4NCiAgICAgICAgICAgICB0aGUgcnVsZSBzZXQsIHRoZSBkeW5hbWljIHJ1bGVz
 IHRhYmxlIGlzIGNoZWNrZWQgYXQgdGhlDQogICAgICAgICAgICAgZmlyc3Qga2VlcC1zdGF0ZSBv
 ciBsaW1pdCBydWxlLjwvcGFyYT4NCkBAIC0yMDI2LDcgKzIwMjcsNyBAQA0KICAgICAgICAgICA8
 cGFyYT48cGFyYW1ldGVyPmxvZzwvcGFyYW1ldGVyPiBvcg0KICAgICAgICAgICAgIDxwYXJhbWV0
 ZXI+bG9nYW1vdW50PC9wYXJhbWV0ZXI+PC9wYXJhPg0KIA0KLSAgICAgICAgICA8cGFyYT4gV2hl
 biBhIHBhY2tldCBtYXRjaGVzIGEgcnVsZSB3aXRoIHRoZSBsb2cga2V5d29yZCwgYQ0KKyAgICAg
 ICAgICA8cGFyYT5XaGVuIGEgcGFja2V0IG1hdGNoZXMgYSBydWxlIHdpdGggdGhlIGxvZyBrZXl3
 b3JkLCBhDQogICAgICAgICAgICAgIG1lc3NhZ2Ugd2lsbCBiZSBsb2dnZWQgdG8gc3lzbG9nZCB3
 aXRoIGEgZmFjaWxpdHkgbmFtZSBvZg0KICAgICAgICAgICAgICBTRUNVUklUWS4gVGhlIGxvZ2dp
 bmcgb25seSBvY2N1cnMgaWYgdGhlIG51bWJlciBvZg0KICAgICAgICAgICAgICBwYWNrZXRzIGxv
 Z2dlZCBzbyBmYXIgZm9yIHRoYXQgcGFydGljdWxhciBydWxlIGRvZXMgbm90DQpAQCAtMjA1NCw3
 ICsyMDU1LDcgQEANCiANCiAgICAgICAgICAgPHBhcmE+PHBhcmFtZXRlcj51ZHAgfCB0Y3AgfCBp
 Y21wPC9wYXJhbWV0ZXI+PC9wYXJhPg0KIA0KLSAgICAgICAgICA8cGFyYT5vciBhbnkgcHJvdG9j
 b2wgbmFtZXMgZm91bmQgaW4gL2V0Yy9wcm90b2NvbHMgYXJlDQorICAgICAgICAgIDxwYXJhPm9y
 IGFueSBwcm90b2NvbCBuYW1lcyBmb3VuZCBpbiA8ZmlsZW5hbWU+L2V0Yy9wcm90b2NvbHM8L2Zp
 bGVuYW1lPiBhcmUNCiAgICAgICAgICAgICByZWNvZ25pemVkIGFuZCBtYXkgYmUgdXNlZC4gVGhl
 IHZhbHVlIHNwZWNpZmllZCBpcw0KICAgICAgICAgICAgIHByb3RvY29sIHRvIGJlIG1hdGNoZWQg
 YWdhaW5zdC4gVGhpcyBpcyBhIG1hbmRhdG9yeQ0KICAgICAgICAgICAgIHJlcXVpcmVtZW50Ljwv
 cGFyYT4NCkBAIC0yMDYzLDEzICsyMDY0LDEzIEBADQogDQogICAgICAgICAgIDxwYXJhPlRoZSBm
 cm9tIGFuZCB0byBrZXl3b3JkcyBhcmUgdXNlZCB0byBtYXRjaCBhZ2FpbnN0IElQDQogICAgICAg
 ICAgICAgYWRkcmVzc2VzLiBSdWxlcyBtdXN0IHNwZWNpZnkgQk9USCBzb3VyY2UgYW5kIGRlc3Rp
 bmF0aW9uDQotICAgICAgICAgICAgcGFyYW1ldGVycy4gYW55IGlzIGEgc3BlY2lhbCBrZXl3b3Jk
 IHRoYXQgbWF0Y2hlcyBhbnkgSVANCi0gICAgICAgICAgICBhZGRyZXNzLiBtZSBpcyBhIHNwZWNp
 YWwga2V5d29yZCB0aGF0IG1hdGNoZXMgYW55IElQDQorICAgICAgICAgICAgcGFyYW1ldGVycy4g
 PGxpdGVyYWw+YW55PC9saXRlcmFsPiBpcyBhIHNwZWNpYWwga2V5d29yZCB0aGF0IG1hdGNoZXMg
 YW55IElQDQorICAgICAgICAgICAgYWRkcmVzcy4gPGxpdGVyYWw+bWU8L2xpdGVyYWw+IGlzIGEg
 c3BlY2lhbCBrZXl3b3JkIHRoYXQgbWF0Y2hlcyBhbnkgSVANCiAgICAgICAgICAgICBhZGRyZXNz
 IGNvbmZpZ3VyZWQgb24gYW4gaW50ZXJmYWNlIGluIHlvdXIgJm9zOyBzeXN0ZW0gdG8NCi0gICAg
 ICAgICAgICByZXByZXNlbnQgdGhlIFBDIHRoZSBmaXJld2FsbCBpcyBydW5uaW5nIG9uLiAoaS5l
 LiB0aGlzDQotICAgICAgICAgICAgYm94KSBBcyBpbiBmcm9tIG1lIHRvIGFueSBvciBmcm9tIGFu
 eSB0byBtZSBvciBmcm9tDQotICAgICAgICAgICAgMC4wLjAuMC8wIHRvIGFueSBvciBmcm9tIGFu
 eSB0byAwLjAuMC4wLzAgb3IgZnJvbSAwLjAuMC4wDQotICAgICAgICAgICAgdG8gYW55IG9yIGZy
 b20gYW55IHRvIDAuMC4wLjAgb3IgZnJvbSBtZSB0byAwLjAuMC4wLiBJUA0KKyAgICAgICAgICAg
 IHJlcHJlc2VudCB0aGUgUEMgdGhlIGZpcmV3YWxsIGlzIHJ1bm5pbmcgb24gKGkuZS4gdGhpcw0K
 KyAgICAgICAgICAgIGJveCkgYXMgaW4gJ2Zyb20gbWUgdG8gYW55JyBvciAnZnJvbSBhbnkgdG8g
 bWUnIG9yICdmcm9tDQorICAgICAgICAgICAgMC4wLjAuMC8wIHRvIGFueScgb3IgJ2Zyb20gYW55
 IHRvIDAuMC4wLjAvMCcgb3IgJ2Zyb20gMC4wLjAuMA0KKyAgICAgICAgICAgIHRvIGFueScgb3Ig
 J2Zyb20gYW55IHRvIDAuMC4wLjAnIG9yICdmcm9tIG1lIHRvIDAuMC4wLjAnLiBJUA0KICAgICAg
 ICAgICAgIGFkZHJlc3NlcyBhcmUgc3BlY2lmaWVkIGFzIGEgZG90dGVkIElQIGFkZHJlc3MgbnVt
 ZXJpYw0KICAgICAgICAgICAgIGZvcm0vbWFzay1sZW5ndGgsIG9yIGFzIHNpbmdsZSBkb3R0ZWQg
 SVAgYWRkcmVzcyBudW1lcmljDQogICAgICAgICAgICAgZm9ybS4gVGhpcyBpcyBhIG1hbmRhdG9y
 eSByZXF1aXJlbWVudC4gU2VlIHRoaXMgbGluayBmb3INCkBAIC0yMDk1LDcgKzIwOTYsNyBAQA0K
 ICAgICAgICAgICA8cGFyYT48cGFyYW1ldGVyPnZpYSBJRjwvcGFyYW1ldGVyPjwvcGFyYT4NCiAN
 CiAgICAgICAgICAgPHBhcmE+TWF0Y2hlcyBwYWNrZXRzIGdvaW5nIHRocm91Z2ggdGhlIGludGVy
 ZmFjZSBzcGVjaWZpZWQNCi0gICAgICAgICAgICBieSBleGFjdCBuYW1lLiBUaGUgdmlhIGtleXdv
 cmQgY2F1c2VzIHRoZSBpbnRlcmZhY2UgdG8NCisgICAgICAgICAgICBieSBleGFjdCBuYW1lLiBU
 aGUgPGxpdGVyYWw+dmlhPC9saXRlcmFsPiBrZXl3b3JkIGNhdXNlcyB0aGUgaW50ZXJmYWNlIHRv
 DQogICAgICAgICAgICAgYWx3YXlzIGJlIGNoZWNrZWQgYXMgcGFydCBvZiB0aGUgbWF0Y2ggcHJv
 Y2Vzcy48L3BhcmE+DQogDQogICAgICAgICAgIDxwYXJhPjxwYXJhbWV0ZXI+c2V0dXA8L3BhcmFt
 ZXRlcj48L3BhcmE+DQpAQCAtMjE2Miw3ICsyMTYzLDcgQEANCiANCiAgICAgICAgIDxzZWN0Mz4N
 CiAgICAgICAgICAgPHRpdGxlPkxvZ2dpbmcgRmlyZXdhbGwgTWVzc2FnZXM8L3RpdGxlPg0KLSAg
 ICAgICAgICA8cGFyYT5UaGUgYmVuZWZpdHMgb2YgbG9nZ2luZyBhcmUgb2J2aW91cywgcHJvdmlk
 ZXMgdGhlDQorICAgICAgICAgIDxwYXJhPlRoZSBiZW5lZml0cyBvZiBsb2dnaW5nIGFyZSBvYnZp
 b3VzOiBpdCBwcm92aWRlcyB0aGUNCiAgICAgICAgICAgICBhYmlsaXR5IHRvIHJldmlldyBhZnRl
 ciB0aGUgZmFjdCB0aGUgcnVsZXMgeW91IGFjdGl2YXRlZA0KICAgICAgICAgICAgIGxvZ2dpbmcg
 b24gd2hpY2ggcHJvdmlkZXMgaW5mb3JtYXRpb24gbGlrZSwgd2hhdCBwYWNrZXRzIGhhZA0KICAg
 ICAgICAgICAgIGJlZW4gZHJvcHBlZCwgd2hhdCBhZGRyZXNzZXMgdGhleSBjYW1lIGZyb20sIHdo
 ZXJlIHRoZXkgd2VyZQ0KQEAgLTIxNzMsNyArMjE3NCw3IEBADQogICAgICAgICAgICAgZ2VuZXJh
 dGUgYW55IHJ1bGUgbG9nZ2luZyBvbiBpdCdzIG93bi4gVGhlIGZpcmV3YWxsDQogICAgICAgICAg
 ICAgYWRtaW5pc3RyYXRvciBkZWNpZGVzIHdoYXQgcnVsZXMgaW4gdGhlIHJ1bGUgc2V0IGhlIHdh
 bnRzDQogICAgICAgICAgICAgdG8gbG9nIGFuZCBhZGRzIHRoZSBsb2cgdmVyYiB0byB0aG9zZSBy
 dWxlcy4gTm9ybWFsbHkgb25seQ0KLSAgICAgICAgICAgIGRlbnkgcnVsZXMgYXJlIGxvZ2dlZC4g
 TGlrZSB0aGUgZGVueSBydWxlIGZvciBpbmNvbWluZw0KKyAgICAgICAgICAgIGRlbnkgcnVsZXMg
 YXJlIGxvZ2dlZCwgbGlrZSB0aGUgZGVueSBydWxlIGZvciBpbmNvbWluZw0KICAgICAgICAgICAg
 IDxhY3JvbnltPklDTVA8L2Fjcm9ueW0+IHBpbmdzLiAgSXQgaXMgdmVyeSBjdXN0b21hcnkgdG8N
 CiAgICAgICAgICAgICBkdXBsaWNhdGUgdGhlIGlwZncgZGVmYXVsdCBkZW55IGV2ZXJ5dGhpbmcg
 cnVsZSB3aXRoIHRoZQ0KICAgICAgICAgICAgIGxvZyB2ZXJiIGluY2x1ZGVkIGFzIHlvdXIgbGFz
 dCBydWxlIGluIHRoZSBydWxlIHNldC4gVGhpcw0KQEAgLTIyMzUsNyArMjIzNiw3IEBADQogaXBm
 dyAtcSAtZiBmbHVzaCAgICAgICAjIERlbGV0ZSBhbGwgcnVsZXMNCiAjIFNldCBkZWZhdWx0cw0K
 IG9pZj0idHVuMCIgICAgICAgICAgICAgIyBvdXQgaW50ZXJmYWNlDQotb2Rucz0iMTkyLjAuMi4x
 MSIgICAgICAjIElTUCdzIGRucyBzZXJ2ZXIgSVAgYWRkcmVzcw0KK29kbnM9IjE5Mi4wLjIuMTEi
 ICAgICAgIyBJU1AncyBETlMgc2VydmVyIElQIGFkZHJlc3MNCiBjbWQ9ImlwZncgLXEgYWRkICIg
 ICAgICMgYnVpbGQgcnVsZSBwcmVmaXgNCiBrcz0ia2VlcC1zdGF0ZSIgICAgICAgICMganVzdCB0
 b28gbGF6eSB0byBrZXkgdGhpcyBlYWNoIHRpbWUNCiAmZG9sbGFyO2NtZCAwMDUwMCBjaGVjay1z
 dGF0ZQ0KQEAgLTIyODMsMTYgKzIyODQsMTYgQEANCiAgICAgICAgICAgICBhbGxvdyB0aGUgZmly
 ZXdhbGwgdG8gZnVuY3Rpb24uPC9wYXJhPg0KIA0KICAgICAgICAgICA8cGFyYT5BbGwgJnVuaXg7
 IGZsYXZvcmVkIG9wZXJhdGluZyBzeXN0ZW1zLCAmb3M7IGluY2x1ZGVkLCBhcmUgZGVzaWduZWQg
 dG8NCi0gICAgICAgICAgICB1c2UgaW50ZXJmYWNlIGxvIGFuZCBJUCBhZGRyZXNzDQorICAgICAg
 ICAgICAgdXNlIGludGVyZmFjZSA8ZGV2aWNlbmFtZT5sbzA8L2RldmljZW5hbWU+IGFuZCBJUCBh
 ZGRyZXNzDQogICAgICAgICAgICAgPGhvc3RpZCByb2xlPSJpcGFkZHIiPjEyNy4wLjAuMTwvaG9z
 dGlkPiBmb3IgaW50ZXJuYWwNCi0gICAgICAgICAgICBjb21tdW5pY2F0aW9uIHdpdGggaW4gJm9z
 Oy4gVGhlIGZpcmV3YWxsIHJ1bGVzIG11c3QgY29udGFpbg0KKyAgICAgICAgICAgIGNvbW11bmlj
 YXRpb24gd2l0aCBpbiB0aGUgb3BlcmF0aW5nIHN5c3RlbS4gVGhlIGZpcmV3YWxsIHJ1bGVzIG11
 c3QgY29udGFpbg0KICAgICAgICAgICAgIHJ1bGVzIHRvIGFsbG93IGZyZWUgdW5tb2xlc3RlZCBt
 b3ZlbWVudCBvZiB0aGVzZSBzcGVjaWFsDQogICAgICAgICAgICAgaW50ZXJuYWxseSB1c2VkIHBh
 Y2tldHMuPC9wYXJhPg0KIA0KICAgICAgICAgICA8cGFyYT5UaGUgaW50ZXJmYWNlIHdoaWNoIGZh
 Y2VzIHRoZSBwdWJsaWMgSW50ZXJuZXQsIGlzIHRoZQ0KICAgICAgICAgICAgIG9uZSB3aGljaCB5
 b3UgY29kZSB5b3VyIHJ1bGVzIHRvIGF1dGhvcml6ZSBhbmQgY29udHJvbA0KICAgICAgICAgICAg
 IGFjY2VzcyBvdXQgdG8gdGhlIHB1YmxpYyBJbnRlcm5ldCBhbmQgYWNjZXNzIHJlcXVlc3RzDQot
 ICAgICAgICAgICAgYXJyaXZpbmcgZnJvbSB0aGUgcHVibGljIEludGVybmV0LiBUaGlzIGNhbiBi
 ZSB5b3VyIHBwcCB0dW4wDQorICAgICAgICAgICAgYXJyaXZpbmcgZnJvbSB0aGUgcHVibGljIElu
 dGVybmV0LiBUaGlzIGNhbiBiZSB5b3VyIHBwcCA8ZGV2aWNlbmFtZT50dW4wPC9kZXZpY2VuYW1l
 Pg0KICAgICAgICAgICAgIGludGVyZmFjZSBvciB5b3VyIE5JQyB0aGF0IGlzIGNvbm5lY3RlZCB0
 byB5b3VyIERTTCBvciBjYWJsZQ0KICAgICAgICAgICAgIG1vZGVtLjwvcGFyYT4NCiANCkBAIC0y
 MzQwLDcgKzIzNDEsNyBAQA0KICAgICAgICAgICAgIGhhcyBubyBrbm93bGVkZ2UgaWYgaGlzIHBh
 Y2tldHMgaGF2ZSByZWFjaGVkIHlvdXIgc3lzdGVtLg0KICAgICAgICAgICAgIFRoZSBsZXNzIHRo
 ZSBhdHRhY2tlcnMgY2FuIGxlYXJuIGFib3V0IHlvdXIgc3lzdGVtIHRoZSBtb3JlDQogICAgICAg
 ICAgICAgc2VjdXJlIGl0IGlzLiBXaGVuIHlvdSBsb2cgcGFja2V0cyB3aXRoIHBvcnQgbnVtYmVy
 cyB5b3UgZG8NCi0gICAgICAgICAgICBub3QgcmVjb2duaXplLCBnbyB0bw0KKyAgICAgICAgICAg
 IG5vdCByZWNvZ25pemUsIGxvb2sgdGhlIG51bWJlcnMgdXAgaW4gPGZpbGVuYW1lPi9ldGMvc2Vy
 dmljZXMvPC9maWxlbmFtZT4gb3IgZ28gdG8NCiAgICAgICAgICAgICA8dWxpbmsgdXJsPSJodHRw
 Oi8vd3d3LnNlY3VyaXR5c3RhdHMuY29tL3Rvb2xzL3BvcnRzZWFyY2gucGhwIj48L3VsaW5rPg0K
 ICAgICAgICAgICAgIGFuZCBkbyBhIHBvcnQgbnVtYmVyIGxvb2t1cCB0byBmaW5kIHdoYXQgdGhl
 IHB1cnBvc2Ugb2YgdGhhdA0KICAgICAgICAgICAgIHBvcnQgbnVtYmVyIGlzLiBDaGVjayBvdXQg
 dGhpcyBsaW5rIGZvciBwb3J0IG51bWJlcnMgdXNlZCBieQ0KQEAgLTIzOTgsOSArMjM5OSw5IEBA
 DQogICAgICAgICAgICAgICAgICAgICAgICAgIyBmYWNpbmcgdGhlIHB1YmxpYyBJbnRlcm5ldA0K
 IA0KICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
 IyMjIyMjIyMjIyMjDQotIyBObyByZXN0cmljdGlvbnMgb24gSW5zaWRlIExhbiBJbnRlcmZhY2Ug
 Zm9yIHByaXZhdGUgbmV0d29yaw0KLSMgTm90IG5lZWRlZCB1bmxlc3MgeW91IGhhdmUgTGFuLg0K
 LSMgQ2hhbmdlIHhsMCB0byB5b3VyIExhbiBOaWMgY2FyZCBpbnRlcmZhY2UgbmFtZQ0KKyMgTm8g
 cmVzdHJpY3Rpb25zIG9uIEluc2lkZSBMQU4gSW50ZXJmYWNlIGZvciBwcml2YXRlIG5ldHdvcmsN
 CisjIE5vdCBuZWVkZWQgdW5sZXNzIHlvdSBoYXZlIExBTi4NCisjIENoYW5nZSB4bDAgdG8geW91
 ciBMQU4gTklDIGNhcmQgaW50ZXJmYWNlIG5hbWUNCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
 IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KICMmZG9sbGFyO2NtZCAw
 MDAwNSBhbGxvdyBhbGwgZnJvbSBhbnkgdG8gYW55IHZpYSB4bDANCiANCkBAIC0yNTk4LDE2ICsy
 NTk5LDE2IEBADQogICAgICAgICAgICAgYWN0aW9uIGlzIGV4ZWN1dGVkLiBUaGUgYWN0aW9uIGlz
 IHBhcnQgb2YgdGhlIGluZm8gcG9zdGVkIHRvDQogICAgICAgICAgICAgdGhlIGR5bmFtaWMgdGFi
 bGUuICBJbiB0aGlzIGNhc2UgaXQgaXMgInNraXB0byBydWxlIDUwMCIuICBSdWxlDQogICAgICAg
 ICAgICAgNTAwIDxhY3JvbnltPk5BVDwvYWNyb255bT5zIHRoZSBwYWNrZXQgSVAgYWRkcmVzcyBh
 bmQgb3V0IGl0IGdvZXMuIFJlbWVtYmVyDQotICAgICAgICAgICAgdGhpcywgdGhpcyBpcyB2ZXJ5
 IGltcG9ydGFudC4gVGhpcyBwYWNrZXQgbWFrZXMgaXQncyB3YXkgdG8NCisgICAgICAgICAgICB0
 aGlzLCB0aGlzIGlzIHZlcnkgaW1wb3J0YW50LiBUaGlzIHBhY2tldCBtYWtlcyBpdHMgd2F5IHRv
 DQogICAgICAgICAgICAgdGhlIGRlc3RpbmF0aW9uIGFuZCByZXR1cm5zIGFuZCBlbnRlcnMgdGhl
 IHRvcCBvZiB0aGUgcnVsZQ0KICAgICAgICAgICAgIHNldC4gVGhpcyB0aW1lIGl0IGRvZXMgbWF0
 Y2ggcnVsZSAxMDAgYW5kIGhhcyBpdCBkZXN0aW5hdGlvbg0KLSAgICAgICAgICAgIElQIGFkZHJl
 c3MgbWFwcGVkIGJhY2sgdG8gaXQncyBjb3JyZXNwb25kaW5nIExhbiBJUCBhZGRyZXNzLg0KKyAg
 ICAgICAgICAgIElQIGFkZHJlc3MgbWFwcGVkIGJhY2sgdG8gaXRzIGNvcnJlc3BvbmRpbmcgTGFu
 IElQIGFkZHJlc3MuDQogICAgICAgICAgICAgSXQgdGhlbiBpcyBwcm9jZXNzZWQgYnkgdGhlIGNo
 ZWNrLXN0YXRlIHJ1bGUsIGl0J3MgZm91bmQgaW4NCiAgICAgICAgICAgICB0aGUgdGFibGUgYXMg
 YW4gZXhpc3Rpbmcgc2Vzc2lvbiBjb252ZXJzYXRpb24gYW5kIHJlbGVhc2VkDQogICAgICAgICAg
 ICAgdG8gdGhlIExBTi4gSXQgZ29lcyB0byB0aGUgTEFOIFBDIHRoYXQgc2VudCBpdCBhbmQgYSBu
 ZXcNCiAgICAgICAgICAgICBwYWNrZXQgaXMgc2VudCByZXF1ZXN0aW5nIGFub3RoZXIgc2VnbWVu
 dCBvZiB0aGUgZGF0YSBmcm9tDQogICAgICAgICAgICAgdGhlIHJlbW90ZSBzZXJ2ZXIuIFRoaXMg
 dGltZSBpdCBnZXRzIGNoZWNrZWQgYnkgdGhlDQotICAgICAgICAgICAgY2hlY2stc3RhdGUgcnVs
 ZSBhbmQgaXQncyBvdXRib3VuZCBlbnRyeSBpcyBmb3VuZCwgIHRoZQ0KKyAgICAgICAgICAgIGNo
 ZWNrLXN0YXRlIHJ1bGUgYW5kIGl0cyBvdXRib3VuZCBlbnRyeSBpcyBmb3VuZCwgIHRoZQ0KICAg
 ICAgICAgICAgIGFzc29jaWF0ZWQgYWN0aW9uLCAnc2tpcHRvIDUwMCcsIGlzIGV4ZWN1dGVkLiAg
 VGhlIHBhY2tldA0KICAgICAgICAgICAgIGp1bXBzIHRvIHJ1bGUgNTAwIGdldHMgPGFjcm9ueW0+
 TkFUPC9hY3JvbnltPmVkIGFuZCByZWxlYXNlZCBvbiBpdCdzIHdheSBvdXQuDQogICAgICAgICAg
 ICAgPC9wYXJhPg0KQEAgLTI2MjMsOCArMjYyNCw4IEBADQogICAgICAgICAgICAgcGFja2V0IG1h
 dGNoZXMgcnVsZSAxMDAgYW5kIGl0cyBJUCBhZGRyZXNzIGlzIG1hcHBlZCB0byBMQU4NCiAgICAg
 ICAgICAgICBJUCBmb3IgdGhlIGZpcmV3YWxsIGJveC4gVGhlIHBhY2tldCBpcyB0aGVtIG1hdGNo
 ZWQgYWdhaW5zdA0KICAgICAgICAgICAgIGFsbCB0aGUgbmFzdHkgdGhpbmdzIHdlIHdhbnQgdG8g
 Y2hlY2sgZm9yIGFuZCBmaW5hbGx5DQotICAgICAgICAgICAgbWF0Y2hlcyBhZ2FpbnN0IHJ1bGUg
 NDI1LiBPbiBhIG1hdGNoIHR3byB0aGluZ3Mgb2NjdXIsIHRoZQ0KLSAgICAgICAgICAgIGxpbWl0
 IG9wdGlvbiBpcyBhbiBleHRlbnNpb24gdG8ga2VlcC1zdGF0ZS4gVGhlIHBhY2tldCBydWxlDQor
 ICAgICAgICAgICAgbWF0Y2hlcyBhZ2FpbnN0IHJ1bGUgNDI1LiBPbiBhIG1hdGNoIHR3byB0aGlu
 Z3Mgb2NjdXINCisgICAgICAgICAgICBUaGUgcGFja2V0IHJ1bGUNCiAgICAgICAgICAgICBpcyBw
 b3N0ZWQgdG8gdGhlIGtlZXAtc3RhdGUgZHluYW1pYyB0YWJsZSBidXQgdGhpcyB0aW1lIGFueQ0K
 ICAgICAgICAgICAgIG5ldyBzZXNzaW9uIHJlcXVlc3RzIG9yaWdpbmF0aW5nIGZyb20gdGhhdCBz
 b3VyY2UgSVAgYWRkcmVzcw0KICAgICAgICAgICAgIGlzIGxpbWl0ZWQgdG8gMi4gVGhpcyBkZWZl
 bmRzIGFnYWluc3QgRG9TIGF0dGFja3Mgb2Ygc2VydmljZQ0KQEAgLTI2NDUsNyArMjY0Niw3IEBA
 DQogDQogaXBmdyAtcSAtZiBmbHVzaA0KIA0KLSZkb2xsYXI7Y21kIDAwMiBhbGxvdyBhbGwgZnJv
 bSBhbnkgdG8gYW55IHZpYSB4bDAgICMgZXhjbHVkZSBMYW4gdHJhZmZpYw0KKyZkb2xsYXI7Y21k
 IDAwMiBhbGxvdyBhbGwgZnJvbSBhbnkgdG8gYW55IHZpYSB4bDAgICMgZXhjbHVkZSBMQU4gdHJh
 ZmZpYw0KICZkb2xsYXI7Y21kIDAwMyBhbGxvdyBhbGwgZnJvbSBhbnkgdG8gYW55IHZpYSBsbzAg
 ICMgZXhjbHVkZSBsb29wYmFjayB0cmFmZmljDQogDQogJmRvbGxhcjtjbWQgMTAwIGRpdmVydCBu
 YXRkIGlwIGZyb20gYW55IHRvIGFueSBpbiB2aWEgJmRvbGxhcjtwaWYNCkBAIC0yNjk5LDEyICsy
 NzAwLDEyIEBADQogIyBTZXQgcnVsZXMgY29tbWFuZCBwcmVmaXgNCiBjbWQ9ImlwZncgLXEgYWRk
 Ig0KIHNraXA9InNraXB0byA4MDAiDQotcGlmPSJybDAiICAgICAjIHB1YmxpYyBpbnRlcmZhY2Ug
 bmFtZSBvZiBOaWMgY2FyZA0KK3BpZj0icmwwIiAgICAgIyBwdWJsaWMgaW50ZXJmYWNlIG5hbWUg
 b2YgTklDIGNhcmQNCiAgICAgICAgICAgICAgICMgZmFjaW5nIHRoZSBwdWJsaWMgSW50ZXJuZXQN
 CiANCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
 IyMjIyMjIyMjIyMjIw0KLSMgTm8gcmVzdHJpY3Rpb25zIG9uIEluc2lkZSBMYW4gSW50ZXJmYWNl
 IGZvciBwcml2YXRlIG5ldHdvcmsNCi0jIENoYW5nZSB4bDAgdG8geW91ciBMYW4gTmljIGNhcmQg
 aW50ZXJmYWNlIG5hbWUNCisjIE5vIHJlc3RyaWN0aW9ucyBvbiBJbnNpZGUgTEFOIEludGVyZmFj
 ZSBmb3IgcHJpdmF0ZSBuZXR3b3JrDQorIyBDaGFuZ2UgeGwwIHRvIHlvdXIgTEFOIE5JQyBjYXJk
 IGludGVyZmFjZSBuYW1lDQogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
 IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiAmZG9sbGFyO2NtZCAwMDUgYWxsb3cgYWxsIGZy
 b20gYW55IHRvIGFueSB2aWEgeGwwDQogDQpAQCAtMjgxNyw3ICsyODE4LDcgQEANCiAjIGFuZCB1
 c2VkIGluIHRoZSBvdXRib3VuZCBzZWN0aW9uLg0KICZkb2xsYXI7Y21kIDM2MCBhbGxvdyB1ZHAg
 ZnJvbSB4LngueC54IHRvIGFueSA2OCBpbiB2aWEgJmRvbGxhcjtwaWYga2VlcC1zdGF0ZQ0KIA0K
 LSMgQWxsb3cgaW4gc3RhbmRhcmQgd3d3IGZ1bmN0aW9uIGJlY2F1c2UgSSBoYXZlIGFwYWNoZSBz
 ZXJ2ZXINCisjIEFsbG93IGluIHN0YW5kYXJkIHd3dyBmdW5jdGlvbiBiZWNhdXNlIEkgaGF2ZSBB
 cGFjaGUgc2VydmVyDQogJmRvbGxhcjtjbWQgMzcwIGFsbG93IHRjcCBmcm9tIGFueSB0byBtZSA4
 MCBpbiB2aWEgJmRvbGxhcjtwaWYgc2V0dXAgbGltaXQgc3JjLWFkZHIgMg0KIA0KICMgQWxsb3cg
 aW4gc2VjdXJlIEZUUCwgVGVsbmV0LCBhbmQgU0NQIGZyb20gcHVibGljIEludGVybmV0DQo=
 
 
 --=-YGXksNBBJkCF2hitBO7r--
 
 --=-nJrkqYtMbMZRfDDC4mQM
 Content-Type: application/pgp-signature; name=signature.asc
 Content-Description: Questa parte del messaggio =?ISO-8859-1?Q?=E8?= firmata
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.2.6 (FreeBSD)
 
 iD8DBQBBzuEe2Mp4pR7Fa+wRAk7iAJ95LVE9x7kluW9xOHF7mM0TWkfxEQCgn1m4
 Pc5GA3TQasrk69CNGvLVGmc=
 =u/4L
 -----END PGP SIGNATURE-----
 
 --=-nJrkqYtMbMZRfDDC4mQM--
 

From: Matteo Riondato <rionda@gufi.org>
To: "Simon L. Nielsen" <simon@FreeBSD.org>,
	">" <FreeBSD-gnats-submit@FreeBSD.org>
Cc:  
Subject: Re: docs/75422: [patch] syntax mistakes and obscurity in firewall
	chapter
Date: Sun, 26 Dec 2004 17:21:50 +0100

 Simon L. Nielsen wrote:
 > changed.  Could you please update the patch to only include content
 > changes?
 
 Uh. Some problems with the patch I attached. It can be found at
 http://utenti.gufi.org/~rionda/firewall.diff
 
 Best regards
 
 
 -- 
 Rionda aka Matteo Riondato
 GUFI Staff Member (http://www.gufi.org)
 FreeSBIE Developer (http://www.freesbie.org)
 BSD-FAQ-it Main Developer (http://utenti.gufi.org/~rionda)
 Sent from: kaiser.sig11.org running FreeBSD-6.0-CURRENT
 

From: Matteo Riondato <rionda@gufi.org>
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: docs/75422: [patch] syntax mistakes and obscurity in firewall
	chapter
Date: Sun, 26 Dec 2004 17:24:44 +0100

 --=-T7330q/K1VzaCU0B0V8K
 Content-Type: text/plain
 Content-Transfer-Encoding: quoted-printable
 
 Simon L. Nielsen wrote:
 > changed.  Could you please update the patch to only include content
 > changes?
 
 Uh. Some problems with the patch I attached. It can be found at
 http://utenti.gufi.org/~rionda/firewall.diff
 
 Best regards
 
 
 --=20
 Rionda aka Matteo Riondato
 GUFI Staff Member (http://www.gufi.org)
 FreeSBIE Developer (http://www.freesbie.org)
 BSD-FAQ-it Main Developer (http://utenti.gufi.org/~rionda)
 Sent from: kaiser.sig11.org running FreeBSD-6.0-CURRENT
 
 --=-T7330q/K1VzaCU0B0V8K
 Content-Type: application/pgp-signature; name=signature.asc
 Content-Description: Questa parte del messaggio =?ISO-8859-1?Q?=E8?= firmata
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.2.6 (FreeBSD)
 
 iD8DBQBBzuXM2Mp4pR7Fa+wRArJuAJ4s/AuRItxIevU78c709c+a6xLJnQCgwzOe
 J64fbsYSeUoMwIVKWNCveos=
 =QW0j
 -----END PGP SIGNATURE-----
 
 --=-T7330q/K1VzaCU0B0V8K--
 
Responsible-Changed-From-To: freebsd-doc->ceri 
Responsible-Changed-By: ceri 
Responsible-Changed-When: Sat Jan 1 12:08:38 GMT 2005 
Responsible-Changed-Why:  
I'll work on this. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=75422 
State-Changed-From-To: open->closed 
State-Changed-By: ceri 
State-Changed-When: Sat Jan 1 13:18:56 GMT 2005 
State-Changed-Why:  
Applied with some changes - thanks! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=75422 
>Unformatted:
