<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.3.8) -->
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc inline="yes"?>
<?rfc strict="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-opsawg-pcapng-06" category="info" tocInclude="true" sortRefs="false" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.32.0 -->
  <front>
    <title abbrev="pcapng">PCAP Now Generic (pcapng) Capture File Format</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-pcapng-06"/>
    <author initials="M." surname="Tuexen" fullname="Michael Tuexen">
      <organization abbrev="Muenster Univ. of Appl. Sciences">Muenster University of Applied Sciences</organization>
      <address>
        <postal>
          <street>Stegerwaldstrasse 39</street>
          <city>Steinfurt</city>
          <code>48565</code>
          <country>DE</country>
        </postal>
        <email>tuexen@fh-muenster.de</email>
      </address>
    </author>
    <author initials="F." surname="Risso" fullname="Fulvio Risso">
      <organization>Politecnico di Torino</organization>
      <address>
        <postal>
          <street>Corso Duca degli Abruzzi, 24</street>
          <city>Torino</city>
          <code>10129</code>
          <country>IT</country>
        </postal>
        <email>fulvio.risso@polito.it</email>
      </address>
    </author>
    <author initials="G." surname="Harris" fullname="Guy Harris">
      <organization/>
      <address>
        <email>gharris@sonic.net</email>
      </address>
    </author>
    <author initials="M." surname="Richardson" fullname="Michael C. Richardson" role="editor">
      <organization abbrev="Sandelman">Sandelman Software Works</organization>
      <address>
        <email>mcr+ietf@sandelman.ca</email>
        <uri>http://www.sandelman.ca/</uri>
      </address>
    </author>
    <date year="2026" month="September" day="19"/>
    <abstract>
      <?line 86?>

<t>This document describes a format to record captured packets to a
file. This format is extensible; Wireshark can currently read and write
it, and libpcap can currently read some pcapng files.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-opsawg-pcapng/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        opsawg Working Group mailing list (<eref target="mailto:opsawg@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/opsawg/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/opsawg/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/IETF-OPSAWG-WG/pcapng"/>.</t>
    </note>
  </front>
  <middle>
    <?line 93?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The problem of exchanging packet traces becomes more and more
critical every day; unfortunately, no standard solutions exist for
this task right now. One of the most accepted packet interchange
formats is the one defined by libpcap, which is rather old and is
lacking in functionality for more modern applications particularly
from the extensibility point of view.</t>
      <t>This document proposes a new format for recording packet traces. The
following goals are being pursued:</t>
      <dl>
        <dt>Extensibility:</dt>
        <dd>
          <t>It should be possible to add new standard capabilities to the file
format over time, and third parties should be able to enrich the
information embedded in the file with proprietary extensions, with
tools unaware of newer extensions being able to ignore them.</t>
        </dd>
        <dt>Portability:</dt>
        <dd>
          <t>A capture trace must contain all the information needed to read data
independently from network, hardware and operating system of the
machine that made the capture.</t>
        </dd>
        <dt>Merge/Append data:</dt>
        <dd>
          <t>It should be possible to add data at the end of a given file, and
the resulting file must still be readable.</t>
        </dd>
      </dl>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
<?line -6?>
      </t>
      <section anchor="acronyms">
        <name>Acronyms</name>
        <t>The following acronyms are used throughout this document:</t>
        <dl>
          <dt>SHB:</dt>
          <dd>
            <t>Section Header Block</t>
          </dd>
          <dt>IDB:</dt>
          <dd>
            <t>Interface Description Block</t>
          </dd>
          <dt>ISB:</dt>
          <dd>
            <t>Interface Statistics Block</t>
          </dd>
          <dt>EPB:</dt>
          <dd>
            <t>Enhanced Packet Block</t>
          </dd>
          <dt>SPB:</dt>
          <dd>
            <t>Simple Packet Block</t>
          </dd>
          <dt>NRB:</dt>
          <dd>
            <t>Name Resolution Block</t>
          </dd>
          <dt>CB:</dt>
          <dd>
            <t>Custom Block</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="general-file-structure">
      <name>General File Structure</name>
      <section anchor="section_block">
        <name>General Block Structure</name>
        <t>A capture file is organized in blocks, that are appended one to
another to form the file. All the blocks share a common format, which
is shown in <xref target="formatblock"/>.</t>
        <figure anchor="formatblock">
          <name>Basic block structure.</name>
          <artwork align="center"><![CDATA[
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 0 |                          Block Type                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 4 |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 8 /                          Block Body                           /
   /              variable length, padded to 32 bits               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The fields have the following meaning:</t>
        <ul spacing="normal">
          <li>
            <t>Block Type (32 bits): a unique unsigned integer that
identifies the block. Values whose Most Significant Bit
(MSB) is equal to 1 are reserved for local use. They can be
used to make extensions to the file format to save private
data to the file. The list of currently defined types can
be found in <xref target="section_block_code_registry"/>.</t>
          </li>
          <li>
            <t>Block Total Length (32 bits): an unsigned integer giving
the total size of this block, in octets. For instance, the
length of a block that does not have a body is 12 octets: 4
octets for the Block Type, 4 octets for the initial Block
Total Length and 4 octets for the trailing Block Total
Length. This value MUST be a multiple of 4.</t>
          </li>
          <li>
            <t>Block Body: content of the block.</t>
          </li>
          <li>
            <t>Block Total Length: total size of this block, in octets. This
field is duplicated to permit backward file navigation.</t>
          </li>
        </ul>
        <t>This structure, shared among all blocks, makes it easy to process a
file and to skip unneeded or unknown blocks. Some blocks can contain
other blocks inside (nested blocks). Some of the blocks are mandatory,
i.e. a capture file is not valid if they are not present, other are
optional.</t>
        <t>The General Block Structure allows defining other blocks if needed.
A parser that does not understand them can simply ignore their
content.</t>
      </section>
      <section anchor="block-types">
        <name>Block Types</name>
        <t>The currently standardized Block Type codes are specified in <xref target="section_block_code_registry"/>; they have been grouped in the
following four categories:</t>
        <t>(1) Mandatory: The following block MUST appear at least once in each file:</t>
        <ul spacing="normal">
          <li>
            <t><xref target="section_shb">Section Header Block</xref>: it defines the most important characteristics of the
capture file.</t>
          </li>
        </ul>
        <t>(2) Optional: The following blocks MAY appear in a file:</t>
        <ul spacing="normal">
          <li>
            <t><xref target="section_idb">Interface Description Block</xref>:
it defines the most important characteristics of the interface(s)
used for capturing traffic. This block is required in certain
cases, as described later.</t>
          </li>
          <li>
            <t><xref target="section_epb">Enhanced Packet Block</xref>: it
contains a single captured packet, or a portion of it. It
represents an evolution of the original, now obsolete, <xref target="appendix_pb">Packet Block</xref>. If this appears in a
file, an Interface Description Block is also required, before this
block.</t>
          </li>
          <li>
            <t><xref target="section_spb">Simple Packet Block</xref>: it
contains a single captured packet, or a portion of it, with only a
minimal set of information about it. If this appears in a file, an
Interface Description Block is also required, before this
block.</t>
          </li>
          <li>
            <t><xref target="section_nrb">Name Resolution Block</xref>: it
defines the mapping from numeric addresses present in the packet
capture and the canonical name counterpart.</t>
          </li>
          <li>
            <t><xref target="section_isb">Interface Statistics Block</xref>: it
defines how to store some statistical data (e.g. packet dropped,
etc) which can be useful to understand the conditions in which the
capture has been made. If this appears in a file, an Interface
Description Block is also required, before this block.</t>
          </li>
          <li>
            <t><xref target="section_custom_block">Custom Block</xref>: it
contains vendor-specific data in a portable fashion.</t>
          </li>
        </ul>
        <t>(3) Obsolete: The following block SHOULD NOT appear in newly written
files (but is documented in the Appendix for reference):</t>
        <ul spacing="normal">
          <li>
            <t><xref target="appendix_pb">Packet Block</xref>: it contains a
single captured packet, or a portion of it. It is OBSOLETE, and
superseded by the <xref target="section_epb">Enhanced Packet Block</xref>.</t>
          </li>
        </ul>
        <t>(4) Experimental: The following blocks are considered interesting but
the authors believe that they deserve more in-depth discussion before
being defined:</t>
        <ul spacing="normal">
          <li>
            <t>Alternative Packet Blocks</t>
          </li>
          <li>
            <t>Compression Block</t>
          </li>
          <li>
            <t>Encryption Block</t>
          </li>
          <li>
            <t>Fixed Length Block</t>
          </li>
          <li>
            <t>Directory Block</t>
          </li>
          <li>
            <t>Traffic Statistics and Monitoring Blocks</t>
          </li>
          <li>
            <t>Event/Security Blocks</t>
          </li>
        </ul>
        <t>Requests for new standardized Block Type codes should be made by
creating a pull request to update this document as described in
<xref target="section_block_code_registry"/>.</t>
      </section>
      <section anchor="logical-block-hierarchy">
        <name>Logical Block Hierarchy</name>
        <t>The blocks build a logical hierarchy as they refer to each other. <xref target="block-hierarchy"/> shows the logical hierarchy of the
currently defined blocks in the form of a "tree view":</t>
        <figure anchor="block-hierarchy">
          <name>Logical Block Hierarchy of a pcapng File</name>
          <artwork align="left"><![CDATA[
Section Header
|
+- Interface Description
|  +- Simple Packet
|  +- Enhanced Packet
|  +- Interface Statistics
|
+- Name Resolution
]]></artwork>
        </figure>
        <t>For example: each captured packet refers to a specific capture
interface, the interface itself refers to a specific section.</t>
      </section>
      <section anchor="physical-file-layout">
        <name>Physical File Layout</name>
        <t>The file MUST begin with a Section Header Block. However, more than
one Section Header Block can be present in the capture file, each one
covering the data following it until the next one (or the end of
file). A Section includes the data delimited by two Section Header
Blocks (or by a Section Header Block and the end of the file),
including the first Section Header Block.</t>
        <t>In case an application cannot read a Section because of different
version number, it MUST skip everything until the next Section Header
Block. Note that, in order to properly skip the blocks until the next
section, all blocks MUST have the fields Type and Length at the
beginning. In order to properly skip blocks in the backward direction,
all blocks MUST have the Length repeated at the end of the block.
These are mandatory requirements that MUST be maintained in future
versions of the block format.</t>
        <t><xref target="fssample-SHB"/> shows a typical file layout, with a
single Section Header that covers the whole file.</t>
        <figure anchor="fssample-SHB">
          <name>File structure example: Typical layout with a single Section Header Block</name>
          <artwork align="left"><![CDATA[
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SHB v1.0  |                      Data                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t><xref target="fssample-SHB3"/> shows a file that contains three headers, and is normally the result
of file concatenation. An application that understands only version
1.0 of the file format skips the intermediate section and restart
processing the packets after the third Section Header.</t>
        <figure anchor="fssample-SHB3">
          <name>File structure example: three Section Header Blocks in a single file</name>
          <artwork align="left"><![CDATA[
|--   1st Section   --|--   2nd Section   --|--  3rd Section  --|
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SHB v1.0  |  Data   | SHB V1.1  |  Data   | SHB V1.0  |  Data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t><xref target="fssample-minimum"/> shows a file comparable to a "classic libpcap" file - the minimum for
a useful capture file. It contains a single Section Header Block
(SHB), a single Interface Description Block (IDB) and a few Enhanced
Packet Blocks (EPB).</t>
        <figure anchor="fssample-minimum">
          <name>File structure example: a pcapng file similar to a classical libpcap file</name>
          <artwork align="left"><![CDATA[
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SHB | IDB | EPB | EPB |    ...    | EPB |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t><xref target="fssample-full"/> shows a complex example file. In addition to the minimum file above,
it contains packets captured from three interfaces, capturing on the
third of which begins after packets have arrived on other interfaces,
and also includes some Name Resolution Blocks (NRB) and an Interface
Statistics Block (ISB).</t>
        <figure anchor="fssample-full">
          <name>File structure example: complex pcapng file</name>
          <artwork align="left"><![CDATA[
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SHB | IDB | IDB | EPB | NRB |...| IDB | EPB | ISB | NRB | EPB |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The last example should make it obvious that the block structure
makes the file format very flexible compared to the classical libpcap
format.</t>
      </section>
      <section anchor="section_opt">
        <name>Options</name>
        <t>All the block bodies MAY embed optional fields.
Optional fields can be used to insert some information that may be
useful when reading data, but that is not really needed for packet
processing. Therefore, each tool can either read the content of the
optional fields (if any), or skip some of them or even all at
once.</t>
        <t>A block that may contain options must be structured so that
the number of octets of data in the Block Body that precede the
options can be determined from that data; that allows the
beginning of the options to be found.  That is true for all
standard blocks that support options; for Custom Blocks that
support options, the Custom Data must be structured in such a
fashion.  This means that the Block Length field (present in
the General Block Structure, see <xref target="section_block"/>) can be used to determine how
many octets of optional fields, if any, are present in the block.
That number can be used to determine whether the block has
optional fields (if it is zero, there are no optional fields),
to check, when processing optional fields, whether any optional
fields remain, and to skip all the optional fields at once.</t>
        <t>Options are a list of Type - Length - Value fields, each one
containing a single value:</t>
        <ul spacing="normal">
          <li>
            <t>Option Type (16 bits): an unsigned integer that contains
the code that specifies the type of the current TLV record.
Option types whose Most Significant Bit is equal to one are
reserved for local use; therefore, there is no guarantee
that the code used is unique among all capture files
(generated by other applications), and is most certainly not
portable.  For cross-platform globally unique
vendor-specific extensions, the Custom Option MUST be used
instead, as defined in <xref target="section_custom_option"/>).</t>
          </li>
          <li>
            <t>Option Length (16 bits): an unsigned integer that contains
the actual length of the following 'Option Value' field
without the padding octets.</t>
          </li>
          <li>
            <t>Option Value (variable length): the value of the given
option, padded to a 32-bit boundary. The actual length of
this field (i.e. without the padding octets) is specified
by the Option Length field.</t>
          </li>
        </ul>
        <t>Requests for new standardized option codes for a given block
should be made by creating a pull request to update this document
as described in <xref target="section_block_code_registry"/>.</t>
        <t>A given option may have a fixed length, in which case all
instances of that option have a length that is equal to the
specified fixed length, or a variable length, in which case
the option has a minimum length and all instances of that
option must have a length equal to or greater than the specified
minimum length. The length of fixed-length options, and the
minimum length of variable-length options, is specified in the
description of the option; if the minimum length of a
variable-length option is not specified, a zero-length option is
valid. Software that reads these files SHOULD report options
that have an invalid length as errors; the software MAY stop
processing the file if it sees an option that has invalid
length, or MAY ignore the option and continue processing it.
Software that writes these files MUST NOT write files with
options that have invalid lengths.</t>
        <t>If an option's value is a string, the value is not necessarily
zero-terminated. Software that reads these files MUST NOT assume that
strings are zero-terminated, and MUST treat a zero-value octet as a
string terminator.</t>
        <t>Some options may be repeated several times; for example, a
block can have multiple comments, and an Interface Description
Block can give multiple IPv4 or IPv6 addresses for the
interface if it has multiple IPv4 or IPv6 addresses assigned to
it.  Other options may appear at most once in a given block.</t>
        <t>The option list is terminated by an option which uses the
special 'End of Option' code (opt_endofopt).  Code that
writes pcapng files MUST put an opt_endofopt option at the end
of an option list.  Code that reads pcapng files MUST NOT assume
an option list will have an opt_endofopt option at the end; it
MUST also check for the end of the block, and SHOULD treat
blocks where the option list has no opt_endofopt option as if
the option list had an opt_endofopt option at the end.</t>
        <t>The format of the optional fields is shown in <xref target="formatopt"/>.</t>
        <figure anchor="formatopt">
          <name>Options Format</name>
          <artwork align="center"><![CDATA[
                     1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      Option Type              |         Option Length         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/                       Option Value                            /
/              variable length, padded to 32 bits               /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/                                                               /
/                 . . . other options . . .                     /
/                                                               /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Option Type == opt_endofopt |   Option Length == 0          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The following codes can always be present in any optional field:</t>
        <table anchor="optionsall">
          <name>Common Options</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Type</th>
              <th align="left">Length</th>
              <th align="left">Multiple allowed?</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">opt_endofopt</td>
              <td align="left">0</td>
              <td align="left">0</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">opt_comment</td>
              <td align="left">1</td>
              <td align="left">variable</td>
              <td align="left">yes</td>
            </tr>
            <tr>
              <td align="left">opt_custom</td>
              <td align="left">2988/2989/19372/19373</td>
              <td align="left">variable, minimum 4</td>
              <td align="left">yes</td>
            </tr>
          </tbody>
        </table>
        <dl indent="8" newline="true">
          <dt>opt_endofopt:</dt>
          <dd>
            <t>The
opt_endofopt option delimits the end of the optional fields. This
option MUST NOT be repeated within a given list of options.</t>
          </dd>
        </dl>
        <dl indent="8" newline="true">
          <dt>opt_comment:</dt>
          <dd>
            <t>The
opt_comment option is a UTF-8 string containing human-readable
comment text that is associated to the current block. Line
separators SHOULD be a carriage-return + linefeed ('\r\n') or just
linefeed ('\n'); either form may appear and be considered a line
separator. The string is not zero-terminated.</t>
          </dd>
        </dl>
        <t>Examples: "This packet is the beginning of all of our
problems", "Packets 17-23 showing a bogus TCP retransmission!\r\n
This is reported in bugzilla entry 1486.\nIt will be fixed in the
future.".</t>
        <dl indent="8" newline="true">
          <dt>opt_custom:</dt>
          <dd>
            <t>This option is
described in detail in <xref target="section_custom_option"/>.</t>
          </dd>
        </dl>
        <section anchor="section_custom_option">
          <name>Custom Options</name>
          <t>Customs Options are used for portable, vendor-specific data
related to the block they're in. A Custom Option can be in any block
type that can have options, can be repeated any number of times in a
block, and may come before or after other option types - except the
opt_endofopt option, which is always the last option. Different Custom
Options, of different type codes and/or different Private Enterprise
Numbers, may be used in the same pcapng file. See <xref target="section_vendor"/> for additional details.</t>
          <figure anchor="formatcustomopt">
            <name>Custom Options Format</name>
            <artwork align="center"><![CDATA[
                     1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Custom Option Type        |         Option Length         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                Private Enterprise Number (PEN)                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/                        Custom Data                            /
/              variable length, padded to 32 bits               /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>The Custom Option has the following fields:</t>
          <ul spacing="normal">
            <li>
              <t>Custom Option Type: The type code number for the Custom Option, which
can be one of the following decimal numbers:  </t>
              <dl indent="8" newline="true">
                <dt>2988:</dt>
                <dd>
                  <t>This option type code
identifies a Custom Option containing a UTF-8 string in the
Custom Data portion.  The string is not zero-terminated.
  This Custom Option can be safely copied to a new file if
the pcapng file is manipulated by an application; otherwise
19372 should be used instead. See <xref target="section_vendor_copy"/> for details.</t>
                </dd>
              </dl>
              <dl indent="8" newline="true">
                <dt>2989:</dt>
                <dd>
                  <t>This option type code
identifies a Custom Option containing binary octets in the
Custom Data portion. This Custom Option can be safely copied
to a new file if the pcapng file is manipulated by an
application; otherwise 19373 should be used instead. See <xref target="section_vendor_copy"/> for details.</t>
                </dd>
              </dl>
              <dl indent="8" newline="true">
                <dt>19372:</dt>
                <dd>
                  <t>This option type code
identifies a Custom Option containing a UTF-8 string in the
Custom Data portion.  The string is not zero-terminated.
This Custom Option should not be copied to a new file if
the pcapng file is manipulated by an application. See <xref target="section_vendor_copy"/> for details.</t>
                </dd>
              </dl>
              <dl indent="8" newline="true">
                <dt>19373:</dt>
                <dd>
                  <t>This option type code
identifies a Custom Option containing binary octets in the
Custom Data portion. This Custom Option should not be copied
to a new file if the pcapng file is manipulated by an
application. See <xref target="section_vendor_copy"/> for
details.</t>
                </dd>
              </dl>
            </li>
            <li>
              <t>Option Length: as described in <xref target="section_block"/>,
this contains the length of the option's value, which includes the
4-octet Private Enterprise Number and variable-length Custom Data
fields, without the padding octets.</t>
            </li>
            <li>
              <t>Private Enterprise Number: An IANA-assigned Private Enterprise
Number identifying the organization which defined the Custom
Option. See <xref target="section_vendor_uses"/> for details. The
PEN MUST be encoded using the same endianness as the Section
Header Block it is within the scope of.</t>
            </li>
            <li>
              <t>Custom Data: the custom data, padded to a 32-bit boundary.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="data-format">
        <name>Data format</name>
        <section anchor="endianness">
          <name>Endianness</name>
          <t>Data contained in each section will always be saved according to
the characteristics (little-endian / big-endian) of the capturing
machine. This refers to all the fields that are saved as numbers and
that span over two or more octets.</t>
          <t>The approach of having each section saved in the native format of
the generating host is more efficient because it avoids translation
of data when reading / writing on the host itself, which is the most
common case when generating/processing capture captures.</t>
          <t>Please note: The endianness is indicated by the <xref target="section_shb">Section Header Block</xref>. Since this block
can appear several times in a pcapng file, a single file can contain
both endianness variants.</t>
        </section>
        <section anchor="alignment">
          <name>Alignment</name>
          <t>All fields of this specification use proper alignment for 16-
and 32-bit values. This makes it easier and faster to read/write
file contents if using techniques like memory mapped files.</t>
          <t>The alignment octets (marked in this document e.g. with "padded to
32 bits") MUST be filled with zeroes.</t>
          <t>Please note: 64-bit values are not aligned to 64-bit boundaries.
This is because the file is naturally aligned to 32-bit boundaries
only. Special care MUST be taken when reading and writing such
values. (Note also that some 64-bit values are represented as a
64-bit integer in the endianness of the machine that wrote the
file, and others are represented as 2 32-bit values, one
containing the upper 32 bits of the value and one containing
the lower 32 bits of the value, each written as 32-bit
integers in the endianness of the machine that wrote the file.
Neither of these formats guarantee 64-bit alignment.)</t>
        </section>
        <section anchor="strings">
          <name>Strings</name>
          <t>If a string is specified as being encoded as UTF-8, software that reads
that string MUST NOT assume that the string's value is valid UTF-8.
Implementations MAY discard a string that are invalid UTF-8 or MAY repair the string by
replacing invalid octet sequences with valid sequences.
For example such using the sequence for a Unicode REPLACEMENT CHARACTER.
Implementations that write string fields MUST write only valid UTF-8 strings.</t>
        </section>
      </section>
    </section>
    <section anchor="section_block_definition">
      <name>Block Definition</name>
      <t>This section details the format of the blocks currently defined.</t>
      <section anchor="section_shb">
        <name>Section Header Block</name>
        <t>The Section Header Block (SHB) is mandatory. It identifies the
beginning of a section of the capture file. The Section Header
Block does not contain data but it rather identifies a list of blocks
(interfaces, packets) that are logically correlated. Its format is
shown in <xref target="format_shb"/>.</t>
        <figure anchor="format_shb">
          <name>Section Header Block Format</name>
          <artwork align="center"><![CDATA[
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 0 |                   Block Type = 0x0A0D0D0A                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 4 |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 8 |                      Byte-Order Magic                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 |          Major Version        |         Minor Version         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
16 |                                                               |
   |                          Section Length                       |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
24 /                                                               /
   /                      Options (variable)                       /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The meaning of the fields is:</t>
        <ul spacing="normal">
          <li>
            <t>Block Type: The block type of the Section Header Block is the
integer corresponding to the 4-char string "\n\r\r\n"
(0x0A0D0D0A). This particular value is used for 2 reasons:  </t>
            <ol spacing="normal" type="1"><li>
                <t>This number is used to detect if a file has been transferred
  via FTP or HTTP from a machine to another with an inappropriate
  ASCII conversion. In this case, the value of this field will
  differ from the standard one ("\n\r\r\n") and the reader can
  detect a possibly corrupted file.</t>
              </li>
              <li>
                <t>This value is palindromic, so that the reader is able to
  recognize the Section Header Block regardless of the endianness
  of the section. The endianness is recognized by reading the
  Byte-Order Magic, which is located 8 octets after the Block Type.</t>
              </li>
            </ol>
          </li>
          <li>
            <t>Block Total Length: total size of this block, as described in <xref target="section_block"/>.</t>
          </li>
          <li>
            <t>Byte-Order Magic (32 bits): an unsigned magic number,
whose value is the hexadecimal number 0x1A2B3C4D. This
number can be used to distinguish sections that have been
saved on little-endian machines from the ones saved on
big-endian machines, and to heuristically identify pcapng
files.</t>
          </li>
          <li>
            <t>Major Version (16 bits): an unsigned integer, giving the
number of the current major version of the format. The
value for the current version of the format is 1
(big-endian 0x00 0x01 or little-endian 0x01 0x00).</t>
          </li>
          <li>
            <t>Minor Version (16 bits): an unsigned integer, giving the
number of the current minor version of the format. The
value for the current version of the format is 0.</t>
          </li>
          <li>
            <t>Section Length (64 bits): a signed integer specifying the
length in octets of the following section, excluding the
Section Header Block itself.  This field can be used to skip
the section, for faster navigation inside large files. If
the Section Length is -1 (0xFFFFFFFFFFFFFFFF), this means
that the size of the section is not specified, and the only
way to skip the section is to parse the blocks that it
contains. Please note that if this field is valid (i.e.
not negative), its value is always a multiple of 4, as all
the blocks are aligned to and padded to 32-bit (4 octet)
boundaries. Also, special care should be taken in accessing
this field: since the alignment of all the blocks in the
file is 32-bits, this field is not guaranteed to be aligned
to a 64-bit boundary.  This could be a problem on 64-bit
processors.</t>
          </li>
          <li>
            <t>Options: optionally, a list of options (formatted according to
the rules defined in <xref target="section_opt"/>) can be present.</t>
          </li>
        </ul>
        <t>Writers of pcapng files MUST NOT write SHBs with a Major Version other
than 1 or a Minor Version other than 0.  If they do so, they will write
a file that many readers of pcapng files, such as programs using libpcap
to read pcapng files (including, but not limited to, tcpdump),
Wireshark, and possibly other programs not to be able to read their
files.</t>
        <t>Some pcapng file writers have used a minor version of 2, but the file
format did not change incompatibly (new block types were added); Readers
of pcapng files MUST treat a Minor Version of 2 as equivalent to a Minor
Version of 0 (and, if they also write a pcapng file based on the results
of reading one or more pcapng files, they MUST NOT, as per the previous
sentence, write an SHB with a Minor Version of 2, even if they read an
SHB with a Minor Version of 2).  As indicated above, using a minor
version number other than 0 when writing a section of a pcapng file will
produce a section that most existing software will not be able to read;
future versions of some of that software will be able to read sections
with a version of 1.2, but older copies of that software that are not
updated to the latest version will still not be able to read them.</t>
        <t>The Major Version would be changed only if a new version of this
specification, for a later major version of the file format, were
created.  Such a version would only be created if the format were to
change in such a way that code that reads the new format could not read
the old format (i.e., code to read both formats would have to check the
version number and use different code paths for the two formats) and
code that reads the old format could not read the new format.  An
incompatible change to the format of an existing block or an existing
option would be such a change; the addition of a new block or a new
option would not be such a change.  An example of such an incompatible
change would be the addition of an additional field to the Section
Header Block, following the Minor Version field and before the Snaplen
field; software expecting the new SHB format would not correctly read
the old SHB format, and software expecting the old SHB format would not
correctly read the new SHB format.  (Note that a change to the SHB must
leave the Block Type, Block Total Length, Byte-Order Magic, Major
Version, and Minor Version fields at the same offsets from the beginning
of the SHB and with the same lengths, must keep the value of the Block
Type the same, must keep the two possible values of the Byte-Order
Magic the same, depending on the block's byte order, so that the rest of
the SHB can be correctly interpreted.)</t>
        <t>The Minor Version would be changed only if a new version of this
specification, for a later minor version of the file format, were
created.  Such a version would only be created if the format were to
change in such a way that code that reads the new format could read the
old format without checking the version number but code that reads the
old format could not read all files in the new format.  A
backward-compatible change to the format of an existing block or an
existing option would be such a change; the addition of a new block or
a new option would not be such a change.  An example of such a
backward-compatible but not forward-compatible change would be a change
to the Interface Description block (see below) to use the current
Reserved field to indicate the presence of additional fields before the
Options, with a zero value indicate no such fields are present.</t>
        <t>I.e., adding new block types or options would not require that either
the Major Version or the Minor Version be changed, as code that does not
know about the block type or option should just skip it; only if
skipping a block or option does not work should the minor version number
be changed.</t>
        <t>Aside from the options defined in <xref target="section_opt"/>, the
following options are valid within this block:</t>
        <table anchor="options_shb">
          <name>Section Header Block Options</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Type</th>
              <th align="left">Length</th>
              <th align="left">Multiple allowed?</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">shb_hardware</td>
              <td align="left">2</td>
              <td align="left">variable</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">shb_os</td>
              <td align="left">3</td>
              <td align="left">variable</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">shb_userappl</td>
              <td align="left">4</td>
              <td align="left">variable</td>
              <td align="left">no</td>
            </tr>
          </tbody>
        </table>
        <dl indent="8" newline="true">
          <dt>shb_hardware:</dt>
          <dd>
            <t>The
shb_hardware option is a UTF-8 string containing the description
of the hardware used to create this section. The string is
not zero-terminated.</t>
          </dd>
        </dl>
        <t>Examples: "x86 Personal Computer", "Sun Sparc Workstation".</t>
        <dl indent="8" newline="true">
          <dt>shb_os:</dt>
          <dd>
            <t>The shb_os option
is a UTF-8 string containing the name of the operating system used
to create this section. The string is not zero-terminated.</t>
          </dd>
        </dl>
        <t>Examples: "Windows XP SP2", "openSUSE 10.2".</t>
        <dl indent="8" newline="true">
          <dt>shb_userappl:</dt>
          <dd>
            <t>The
shb_userappl option is a UTF-8 string containing the name of the
application used to create this section. The string is not
zero-terminated.</t>
          </dd>
        </dl>
        <t>Examples: "dumpcap V0.99.7".</t>
        <t>[Open issue: does a program which re-writes a capture file change
the original hardware/os/application info?]</t>
      </section>
      <section anchor="section_idb">
        <name>Interface Description Block</name>
        <t>An Interface Description Block (IDB) is the container for
information describing an interface on which packet data is
captured.</t>
        <t>Tools that write / read the capture file associate an incrementing
32-bit unsigned integer (starting from '0') to each Interface
Definition Block, called the Interface ID for the interface in
question. This number is unique within each Section and
identifies the interface to which the IDB refers; it is only
unique inside the current section, so, two Sections can have
different interfaces identified by the same Interface ID values.
This unique identifier is referenced by other blocks, such as
Enhanced Packet Blocks and Interface Statistic Blocks, to
indicate the interface to which the block refers (such the
interface that was used to capture the packet that an Enhanced
Packet Block contains or to which the statistics in an Interface
Statistic Block refer).</t>
        <t>Within a section, there must be an Interface Description Block for each
interface to which another block within that section refers.  Blocks
such as an Enhanced Packet Block or an Interface Statistics Block
contain an Interface ID value referring to a particular interface, and a
Simple Packet Block implicitly refers to an interface with an Interface
ID of 0.  If the file does not contain any blocks that use an Interface
ID, then the file does not need to have any IDBs.</t>
        <t>There is no requirement that all Interface Description Blocks occur
within a section before all blocks of other types, as long as the
Interface Description Block for an interface occurs before any block
that refers to that interface.</t>
        <t>An Interface Description Block is valid only inside the section
to which it belongs. The structure of an Interface Description Block is
shown in <xref target="format_idb"/>.</t>
        <figure anchor="format_idb">
          <name>Interface Description Block Format</name>
          <artwork align="center"><![CDATA[
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 0 |                    Block Type = 0x00000001                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 4 |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 8 |           LinkType            |           Reserved            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 |                            SnapLen                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
16 /                                                               /
   /                      Options (variable)                       /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The meaning of the fields is:</t>
        <ul spacing="normal">
          <li>
            <t>Block Type: The block type of the Interface Description Block
is 1.</t>
          </li>
          <li>
            <t>Block Total Length: total size of this block, as described in <xref target="section_block"/>.</t>
          </li>
          <li>
            <t>LinkType (16 bits): an unsigned integer that indicates the link layer
type of this interface; it is a value as defined in the PCAP-related
LinkType List registry, as defined in <xref target="I-D.ietf-opsawg-pcaplinktype"/>.</t>
          </li>
          <li>
            <t>Reserved (16 bits): not used - MUST be filled with 0 by
pcapng file writers, and MUST be ignored by pcapng file
readers.</t>
          </li>
          <li>
            <t>SnapLen (32 bits): an unsigned integer that indicates the
maximum number of octets captured from each packet.  The
portion of each packet that exceeds this value will not be
stored in the file. A value of zero indicates no limit.</t>
          </li>
          <li>
            <t>Options: optionally, a list of options (formatted according to
the rules defined in <xref target="section_opt"/>) can be present.</t>
          </li>
        </ul>
        <t>In addition to the options defined in <xref target="section_opt"/>,
the following options are valid within this block:</t>
        <table anchor="optionsifb">
          <name>Interface Description Block Options</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Type</th>
              <th align="left">Length</th>
              <th align="left">Multiple allowed?</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">if_name</td>
              <td align="left">2</td>
              <td align="left">variable</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_description</td>
              <td align="left">3</td>
              <td align="left">variable</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_IPv4addr</td>
              <td align="left">4</td>
              <td align="left">8</td>
              <td align="left">yes</td>
            </tr>
            <tr>
              <td align="left">if_IPv6addr</td>
              <td align="left">5</td>
              <td align="left">17</td>
              <td align="left">yes</td>
            </tr>
            <tr>
              <td align="left">if_MACaddr</td>
              <td align="left">6</td>
              <td align="left">6</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_EUIaddr</td>
              <td align="left">7</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_speed</td>
              <td align="left">8</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_tsresol</td>
              <td align="left">9</td>
              <td align="left">1</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_tzone</td>
              <td align="left">10</td>
              <td align="left">4</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_filter</td>
              <td align="left">11</td>
              <td align="left">variable, minimum 1</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_os</td>
              <td align="left">12</td>
              <td align="left">variable</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_fcslen</td>
              <td align="left">13</td>
              <td align="left">1</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_tsoffset</td>
              <td align="left">14</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_hardware</td>
              <td align="left">15</td>
              <td align="left">variable</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_txspeed</td>
              <td align="left">16</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_rxspeed</td>
              <td align="left">17</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_iana_tzname</td>
              <td align="left">18</td>
              <td align="left">variable</td>
              <td align="left">no</td>
            </tr>
          </tbody>
        </table>
        <dl indent="8" newline="true">
          <dt>if_name:</dt>
          <dd>
            <t>The if_name option
is a UTF-8 string containing the name of the device used to
capture data. The string is not zero-terminated.</t>
          </dd>
        </dl>
        <t>Examples: "eth0", "\Device\NPF_{AD1CE675-96D0-47C5-ADD0-2504B9126B68}".</t>
        <dl indent="8" newline="true">
          <dt>if_description:</dt>
          <dd>
            <t>The
if_description option is a UTF-8 string containing the description
of the device used to capture data. The string is not
zero-terminated.</t>
          </dd>
        </dl>
        <t>Examples: "Wi-Fi", "Local Area Connection", "Wireless
Network Connection", "First Ethernet Interface".</t>
        <dl indent="8" newline="true">
          <dt>if_IPv4addr:</dt>
          <dd>
            <t>The if_IPv4addr
option is an IPv4 network address and corresponding netmask for
the interface. The first four octets are the IP address, and
the next four octets are the netmask. This option can be repeated
multiple times within the same Interface Description Block when
multiple IPv4 addresses are assigned to the interface. Note that
the IP address and netmask are both treated as four octets, one
for each octet of the address or mask; they are not 32-bit
numbers, and thus the endianness of the SHB does not affect
this field's value.</t>
          </dd>
        </dl>
        <t>Examples: '192 168 1 1 255 255 255 0'.</t>
        <dl indent="8" newline="true">
          <dt>if_IPv6addr:</dt>
          <dd>
            <t>The
if_IPv6addr option is an IPv6 network address and corresponding
prefix length for the interface. The first 16 octets are the
IP address and the next octet is the prefix length. This option
can be repeated multiple times within the same Interface
Description Block when multiple IPv6 addresses are assigned to
the interface.</t>
          </dd>
        </dl>
        <t>Example: 2001:0db8:85a3:08d3:1319:8a2e:0370:7344/64 is written
(in hex) as '20 01 0d b8 85 a3 08 d3 13 19 8a 2e 03 70 73 44
40'.</t>
        <dl indent="8" newline="true">
          <dt>if_MACaddr:</dt>
          <dd>
            <t>The if_MACaddr
option is the Interface Hardware EUI-48 (MAC) address (48 bits), if
available.</t>
          </dd>
        </dl>
        <t>Example: '00 01 02 03 04 05'.</t>
        <dl indent="8" newline="true">
          <dt>if_EUIaddr:</dt>
          <dd>
            <t>The if_EUIaddr
option is the Interface Hardware EUI-64 address (64 bits), if
available.</t>
          </dd>
        </dl>
        <t>Example: '02 34 56 FF FE 78 9A BC'.</t>
        <dl indent="8" newline="true">
          <dt>if_speed:</dt>
          <dd>
            <t>The if_speed
option is a 64-bit unsigned integer that indicates the interface
speed, in bits per second.</t>
          </dd>
        </dl>
        <t>Example: the 64-bit decimal number 100000000 for 100Mbps.</t>
        <dl indent="8" newline="true">
          <dt>if_tsresol:</dt>
          <dd>
            <t>The if_tsresol
option identifies the resolution of timestamps. If the Most
Significant Bit is equal to zero, the remaining bits indicates the
resolution of the timestamp as a negative power of 10 (e.g. 6
means microsecond resolution, timestamps are the number of
microseconds since 1970-01-01 00:00:00 UTC). If the Most
Significant Bit is equal to one, the remaining bits indicates
the resolution as negative power of 2 (e.g. 10 means 1/1024
of second). If this option is not present, a resolution of
10^-6 is assumed (i.e. timestamps have the same resolution of
the standard 'libpcap' timestamps).</t>
          </dd>
        </dl>
        <t>Example: '6'.</t>
        <dl indent="8" newline="true">
          <dt>if_tzone:</dt>
          <dd>
            <t>The if_tzone
option identifies the time zone for GMT support.  This option has
never been specified in greater detail, and, unless it were to
identify something such as an <eref target="https://www.iana.org/time-zones">IANA time zone database</eref>
timezone, would be insufficient for converting between UTC and local
time.  Therefore, it SHOULD NOT be used; instead, the if_iana_tzname
option SHOULD be used if time zone information is to be specified.</t>
          </dd>
        </dl>
        <t>Example: none</t>
        <dl indent="8" newline="true">
          <dt>if_filter:</dt>
          <dd>
            <t>The if_filter
option identifies the filter (e.g. "capture only TCP traffic")
used to capture traffic. The first octet of the Option Data keeps a
code of the filter used (e.g. if this is a libpcap string, or BPF
bytecode, and more). More details about this format will be
presented in Appendix XXX (TODO). (TODO: better use different
options for different fields? e.g. if_filter_pcap, if_filter_bpf,
...)</t>
          </dd>
        </dl>
        <t>Example: '00'"tcp port 23 and host 192.0.2.5".</t>
        <dl indent="8" newline="true">
          <dt>if_os:</dt>
          <dd>
            <t>The if_os option is
a UTF-8 string containing the name of the operating system of the
machine in which this interface is installed. This can be
different from the same information that can be contained by the
Section Header Block (<xref target="section_shb"/>) because the
capture can have been done on a remote machine. The string is
not zero-terminated.</t>
          </dd>
        </dl>
        <t>Examples: "Windows XP SP2", "openSUSE 10.2".</t>
        <dl indent="8" newline="true">
          <dt>if_fcslen:</dt>
          <dd>
            <t>The if_fcslen
option is an 8-bit unsigned integer that specifies the
length of the Frame Check Sequence (in bits) for this interface.
For link layers whose FCS length can change during time, the
Enhanced Packet Block epb_flags Option can be used in each
Enhanced Packet Block (see <xref target="section_epb_flags"/>).</t>
          </dd>
        </dl>
        <t>Example: '4'.</t>
        <dl indent="8" newline="true">
          <dt>if_tsoffset:</dt>
          <dd>
            <t>The
if_tsoffset option is a 64-bit signed integer that
specifies an offset (in seconds) that must be added to the
timestamp of each packet to obtain the absolute timestamp of
a packet. If the option is not present, an offset of 0 is assumed
(i.e., timestamps in blocks are absolute timestamps).
</t>
            <t>This offset is not intended to be used as an offset between local
time and UTC; for this purpose, the if_iana_tzname option SHOULD be
used to specify a timezone.</t>
          </dd>
        </dl>
        <t>Example: '1234'.</t>
        <dl indent="8" newline="true">
          <dt>if_hardware:</dt>
          <dd>
            <t>The
if_hardware option is a UTF-8 string containing the description
of the interface hardware. The string is not zero-terminated.</t>
          </dd>
        </dl>
        <t>Examples: "Broadcom NetXtreme", "Intel(R) PRO/1000 MT
Network Connection", "NETGEAR WNA1000Mv2 N150 Wireless USB
Micro Adapter".</t>
        <dl indent="8" newline="true">
          <dt>if_txspeed:</dt>
          <dd>
            <t>The
if_txspeed option is a 64-bit unsigned integer
that indicates the interface transmit speed in bits per
second.</t>
          </dd>
        </dl>
        <t>Example: the 64-bit decimal number 1024000 for
1024Kbps.</t>
        <dl indent="8" newline="true">
          <dt>if_rxspeed:</dt>
          <dd>
            <t>The
if_rxspeed option is a 64-bit unsigned integer
that indicates the interface receive speed, in bits per
second.</t>
          </dd>
        </dl>
        <t>Example: the 64-bit decimal number 8192000 for
8192Kbps.</t>
        <t>If the interface transmit speed and receive speed are the
same, the if_speed option MUST be used and the if_txspeed and
if_rxspeed options MUST NOT be used.  If the transmit speed is
unknown, the if_speed and if_txspeed options MUST NOT be used;
if the receive speed is unknown, the if_speed and if_rxspeed
options MUST NOT be used.</t>
        <dl indent="8" newline="true">
          <dt>if_iana_tzname:</dt>
          <dd>
            <t>The if_iana_tzname
option is a UTF-8 string that indicates the <eref target="https://www.iana.org/time-zones">IANA time zone database</eref>
timezone name for the IANA database timezone in which the interface
is located. The string is not zero-terminated.</t>
          </dd>
        </dl>
        <t>Examples: "Africa/Nairobi", "Asia/Kolkata", "America/Sao_Paulo",
"Europe/Berlin".</t>
      </section>
      <section anchor="section_epb">
        <name>Enhanced Packet Block</name>
        <t>An Enhanced Packet Block (EPB) is the standard container for
storing the packets coming from the network. The Enhanced Packet Block
is optional because packets can be stored either by means of this
block or the Simple Packet Block, which can be used to speed up
capture file generation; or a file may have no packets in it. The
format of an Enhanced Packet Block is shown in <xref target="format_epb"/>.</t>
        <t>The Enhanced Packet Block is an improvement over the original, now
obsolete, <xref target="appendix_pb">Packet Block</xref>:</t>
        <ul spacing="normal">
          <li>
            <t>it stores the Interface Identifier as a 32-bit unsigned integer.
This is a requirement when a capture stores packets coming from a
large number of interfaces;</t>
          </li>
          <li>
            <t>unlike the <xref target="appendix_pb">Packet Block</xref>, the
number of packets dropped by the capture system between this
packet and the previous one is not stored in the header, but
rather in an option of the block itself.</t>
          </li>
        </ul>
        <figure anchor="format_epb">
          <name>Enhanced Packet Block Format</name>
          <artwork align="center"><![CDATA[
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 0 |                    Block Type = 0x00000006                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 4 |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 8 |                         Interface ID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 |                       (Upper 32 bits)                         |
   + - - - - - - - - - - - -  Timestamp  - - - - - - - - - - - - - +
16 |                       (Lower 32 bits)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
20 |                    Captured Packet Length                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
24 |                    Original Packet Length                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
28 /                                                               /
   /                          Packet Data                          /
   /              variable length, padded to 32 bits               /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   /                                                               /
   /                      Options (variable)                       /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The Enhanced Packet Block has the following fields:</t>
        <ul spacing="normal">
          <li>
            <t>Block Type: The block type of the Enhanced Packet Block is 6.</t>
          </li>
          <li>
            <t>Block Total Length: total size of this block, as described in <xref target="section_block"/>.</t>
          </li>
          <li>
            <t>Interface ID (32 bits): an unsigned integer that specifies the
interface on which this packet was received or transmitted;
the correct interface will be the one whose Interface
Description Block (within the current Section of the file) is
identified by the same number (see <xref target="section_idb"/>)
of this field. The interface ID MUST be valid, which means that an
matching interface description block MUST exist.</t>
          </li>
          <li>
            <t>Timestamp (64 bits): two 32-bit unsigned integers, representing a single
64-bit unsigned integer, with the first value being the upper 32 bits
of that integer and the second value being the lower 32 bits of that
integer.  The 64-bit unsigned integer is a count of units of time.  </t>
            <t>
The length of a unit of time is specified by the 'if_tsresol' option
(see <xref target="format_idb"/>) of the Interface Description Block specified by
the Interface ID.  </t>
            <t>
The 'if_tsoffset' option value, converted from seconds to units of
time, plus the timestamp value, represents the number of units of
time that have elapsed since 1970-01-01 00:00:00 UTC.  </t>
            <t>
Note that, unlike timestamps in the pcap file format, timestamps in
Enhanced Packet Blocks are not saved as two 32-bit values
that represent the seconds and microseconds that have
elapsed since 1970-01-01 00:00:00 UTC. Timestamps in Enhanced
Packet Blocks are saved as two 32-bit words that represent
the upper and lower 32 bits of a single 64-bit quantity.</t>
          </li>
          <li>
            <t>Captured Packet Length (32 bits): an unsigned integer that
indicates the number of octets captured from the packet
(i.e., the length of the Packet Data field). It will be the
minimum value among the Original Packet Length and the
snapshot length for the interface (SnapLen, defined in
<xref target="format_idb"/>). The value of this field does not include the padding
octets added at the end of the Packet Data field to align the Packet
Data field to a 32-bit boundary.</t>
          </li>
          <li>
            <t>Original Packet Length (32 bits): an unsigned integer that indicates the
number of octets of packet data that would have been provided had the
packet not been truncated to the snapshot length for the interface or
to a length limit imposed by the capture mechanism.  If no truncation
was done, it will be the same as the Captured Packet Length, but it
will be different from the Captured Packet Length if the packet has
been truncated by the capture process. It SHOULD NOT be less than the
Captured Packet Length.  </t>
            <t>
A pcapng file writer MAY write an Original Packet Length that is less
than the Captured Packet Length if both the Captured Packet Length and
the Original Packet length came from a file in which a packet had an
Original Packet Length less than the Captured Packet Length;
otherwise, it MUST write an Original Packet Length that is greater
than or equal to the Captured Packet Length.  </t>
            <t>
A pcapng file reader MAY convert an Original Packet Length that is
less than the Captured Packet Length to a value that is greater than
or equal to the Captured Packet Length.</t>
          </li>
          <li>
            <t>Packet Data: the data coming from the network, including
link-layer headers. The actual length of this field is
Captured Packet Length plus the padding to a 32-bit
boundary. The format of the link-layer headers depends on
the LinkType field specified in the Interface Description
Block (see <xref target="section_idb"/>) and it is specified
in the entry for that format in <xref target="I-D.ietf-opsawg-pcaplinktype"/>.</t>
          </li>
          <li>
            <t>Options: optionally, a list of options (formatted according to
the rules defined in <xref target="section_opt"/>) can be present.</t>
          </li>
        </ul>
        <t>In addition to the options defined in <xref target="section_opt"/>,
the following options are valid within this block:</t>
        <table anchor="options_epb">
          <name>Enhanced Packet Block Options</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Type</th>
              <th align="left">Length</th>
              <th align="left">Multiple allowed?</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">epb_flags</td>
              <td align="left">2</td>
              <td align="left">4</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">epb_hash</td>
              <td align="left">3</td>
              <td align="left">variable, minimum hash type-dependent</td>
              <td align="left">yes</td>
            </tr>
            <tr>
              <td align="left">epb_dropcount</td>
              <td align="left">4</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">epb_packetid</td>
              <td align="left">5</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">epb_queue</td>
              <td align="left">6</td>
              <td align="left">4</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">epb_verdict</td>
              <td align="left">7</td>
              <td align="left">variable, minimum verdict type-dependent</td>
              <td align="left">yes</td>
            </tr>
            <tr>
              <td align="left">epb_processid_threadid</td>
              <td align="left">8</td>
              <td align="left">8</td>
              <td align="left">yes</td>
            </tr>
          </tbody>
        </table>
        <dl indent="8" newline="true">
          <dt>epb_flags:</dt>
          <dd>
            <t>The epb_flags
option is a 32-bit flags word containing link-layer information. A
complete specification of the allowed flags can be found in <xref target="section_epb_flags"/>.</t>
          </dd>
        </dl>
        <t>Example: '0'.</t>
        <dl indent="8" newline="true">
          <dt>epb_hash:</dt>
          <dd>
            <t>The epb_hash
option contains a hash of the packet. The first octet specifies the
hashing algorithm, while the following octets contain the actual
hash, whose size depends on the hashing algorithm, and hence from
the value in the first octet. The hashing algorithm can be: 2s
complement (algorithm octet = 0, size = XXX), XOR (algorithm octet =
1, size=XXX), CRC32 (algorithm octet = 2, size = 4), MD-5
(algorithm octet = 3, size = 16), SHA-1 (algorithm octet = 4,
size = 20), Toeplitz (algorithm octet = 5, size = 4). The hash covers
only the packet, not the header added by the capture driver: this
gives the possibility to calculate it inside the network card. The
hash allows easier comparison/merging of different capture files,
and reliable data transfer between the data acquisition system and
the capture library.</t>
          </dd>
        </dl>
        <t>Examples: '02 EC 1D 87 97', '03 45 6E C2 17 7C 10 1E 3C 2E 99 6E C2 9A 3D
50 8E'.</t>
        <dl indent="8" newline="true">
          <dt>epb_dropcount:</dt>
          <dd>
            <t>The
epb_dropcount option is a 64-bit unsigned integer
specifying the number of packets lost (by the interface and
the operating system) between this packet and the preceding
one for the same interface or, for the first packet for an
interface, between this packet and the start of the capture
process.</t>
          </dd>
        </dl>
        <t>Example: '0'.</t>
        <dl indent="8" newline="true">
          <dt>epb_packetid:</dt>
          <dd>
            <t>The
epb_packetid option is a 64-bit unsigned integer that uniquely
identifies the packet. If the same packet is seen by multiple
interfaces and there is a way for the capture application to
correlate them, the same epb_packetid value must be used. An
example could be a router that captures packets on all its
interfaces in both directions. When a packet hits interface A
on ingress, an EPB entry gets created, TTL gets decremented,
and right before it egresses on interface B another EPB entry
gets created in the trace file. In this case, two packets are
in the capture file, which are not identical but the
epb_packetid can be used to correlate them.</t>
          </dd>
        </dl>
        <t>Example: '0'.</t>
        <dl indent="8" newline="true">
          <dt>epb_queue:</dt>
          <dd>
            <t>The epb_queue
option is a 32-bit unsigned integer that identifies on which queue
of the interface the specific packet was received.</t>
          </dd>
        </dl>
        <t>Example: '0'.</t>
        <dl indent="8" newline="true">
          <dt>epb_verdict:</dt>
          <dd>
            <t>The epb_verdict
option stores a verdict of the packet. The verdict indicates what
would be done with the packet after processing it. For example, a
firewall could drop the packet. This verdict can be set by various
components, i.e. Hardware, Linux's eBPF TC or XDP framework, etc.
etc. The first octet specifies the verdict type, while the
following octets contain the actual verdict data, whose size
depends on the verdict type, and hence from the value in the first
octet. The verdict type can be: Hardware (type octet = 0, size =
variable), Linux_eBPF_TC (type octet = 1, size = 8 (64-bit unsigned
integer), value = TC_ACT_* as defined in the Linux <eref target="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/pkt_cls.h">pck_cls.h</eref> include), Linux_eBPF_XDP (type octet = 2, size = 8 (64-bit unsigned
integer), value = xdp_action as defined in the Linux <eref target="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/bpf.h">pbf.h</eref> include).</t>
          </dd>
        </dl>
        <t>Example: '02 00 00 00 00 00 00 00 02' for Linux_eBPF_XDP with
verdict XDP_PASS.</t>
        <dl indent="8" newline="true">
          <dt>epb_processid_threadid:</dt>
          <dd>
            <t>The epb_processid_threadid
option stores a numeric process identifier and thread identifier,
as 32-bit integers, of a process and thread that could have received
or sent the packet. The value 0 can be used for each if it cannot be
determined which process or thread received or sent the packet, or if
the operating system capturing the packets has no concept of processes
or threads, respectively. If more than one process or thread could
have received or sent the packet, multiple epb_processid_threadid
options SHOULD be provided, one for each process/thread combination.</t>
          </dd>
        </dl>
        <t>Example: '00 00 04 D2 00 00 00 00' for process 1234 and an unknown
thread.</t>
        <section anchor="section_epb_flags">
          <name>Enhanced Packet Block Flags Word</name>
          <t>The Enhanced Packet Block Flags Word contains link-layer information about
the packet.</t>
          <t>The word is encoded as a 32-bit unsigned integer, using the
endianness of the Section Header Block scope it is in. In the
following table, the bits are numbered with 0 being the
least-significant bit and 31 being the most-significant bit of
the 32-bit unsigned integer. The meaning of the bits is the
following:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Bit Number</th>
                <th align="left">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">0-1</td>
                <td align="left">Inbound / Outbound packet (00 = information not available, 01 = inbound, 10 = outbound)</td>
              </tr>
              <tr>
                <td align="left">2-4</td>
                <td align="left">Reception type (000 = not specified, 001 = unicast, 010 = multicast, 011 = broadcast, 100 = promiscuous).</td>
              </tr>
              <tr>
                <td align="left">5-8</td>
                <td align="left">FCS length, in octets (0000 if this information is not available). This value overrides the if_fcslen option of the Interface Description Block, and is used with those link layers (e.g. PPP) where the length of the FCS can change during time.</td>
              </tr>
              <tr>
                <td align="left">9</td>
                <td align="left">Checksum not ready, as a consequence of checksum offloading, e.g. a transmitted packet on an interface doing checksum offloading, so that the host networking stack doesn't compute and fill in the checksum before handing the packet either to the network adapter or the wraparound code path in the packet capture mechanism.</td>
              </tr>
              <tr>
                <td align="left">10</td>
                <td align="left">Checksum valid, the checksum has already been checked on the receive path before it was handed to the packet capture mechanism, so there's no need for the packet analyzer to check it.</td>
              </tr>
              <tr>
                <td align="left">11</td>
                <td align="left">TCP segmentation offloaded, this is either a received packet corresponding to several received link-layer packets, with reassembly having been done before the packet was handed to the packet capture mechanism, or a transmitted packet that will correspond to several link-layer packets after being fragmented, but that was wrapped around to the packet capture mechanism before the fragmentation occurred.</td>
              </tr>
              <tr>
                <td align="left">12-15</td>
                <td align="left">Reserved (MUST be set to zero).</td>
              </tr>
              <tr>
                <td align="left">16-31</td>
                <td align="left">link-layer-dependent errors (Bit 31 = symbol error, Bit 30 = preamble error, Bit 29 = Start Frame Delimiter error, Bit 28 = unaligned frame error, Bit 27 = wrong Inter Frame Gap error, Bit 26 = packet too short error, Bit 25 = packet too long error, Bit 24 = CRC error, other?? are 16 bits enough?).</td>
              </tr>
            </tbody>
          </table>
          <t>NOTE: in earlier versions of this specification, the bits
were specified as being numbered with 0 being the
most-significant bit and 31 being the least-significant bit
of the 32-bit unsigned integer, rather than with 0 being the
least-significant bit and 31 being the most-significant bit.
Several implementations number the bits with 0 being the
least-significant bit, and no known implementations number
them with 0 being the most-significant bit, so the
specification was changed to reflect that reality.</t>
        </section>
      </section>
      <section anchor="section_spb">
        <name>Simple Packet Block</name>
        <t>The Simple Packet Block (SPB) is a lightweight container for
storing the packets coming from the network. Its presence is
optional.</t>
        <t>A Simple Packet Block is similar to an Enhanced Packet Block (see <xref target="section_epb"/>), but it is smaller, simpler to process
and contains only a minimal set of information. This block is
preferred to the standard Enhanced Packet Block when performance or
space occupation are critical factors, such as in sustained traffic
capture applications. A capture file can contain both Enhanced Packet
Blocks and Simple Packet Blocks: for example, a capture tool could
switch from Enhanced Packet Blocks to Simple Packet Blocks when the
hardware resources become critical.</t>
        <t>The Simple Packet Block does not contain the Interface ID field.
Therefore, it MUST be assumed that all the Simple Packet Blocks have
been captured on the interface previously specified in the first
Interface Description Block.</t>
        <t><xref target="format_spb"/> shows the format of the Simple Packet
Block.</t>
        <figure anchor="format_spb">
          <name>Simple Packet Block Format</name>
          <artwork align="center"><![CDATA[
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 0 |                    Block Type = 0x00000003                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 4 |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 8 |                    Original Packet Length                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 /                                                               /
   /                          Packet Data                          /
   /              variable length, padded to 32 bits               /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The Simple Packet Block has the following fields:</t>
        <ul spacing="normal">
          <li>
            <t>Block Type: The block type of the Simple Packet Block is 3.</t>
          </li>
          <li>
            <t>Block Total Length: total size of this block, as described in <xref target="section_block"/>.</t>
          </li>
          <li>
            <t>Original Packet Length (32 bits): an unsigned integer
that indicates the actual length of the packet when it was
transmitted on the network. It can be different from length
of the Packet Data field's length if the packet has been
truncated by the capture process, in which case the SnapLen
value in <xref target="section_idb"/> will be less than this
Original Packet Length value, and the SnapLen value MUST be
used to determine the size of the Packet Data field
length.</t>
          </li>
          <li>
            <t>Packet Data: the data coming from the network, including
link-layer headers. The length of this field can be derived
from the field Block Total Length, present in the Block
Header, and it is the minimum value among the SnapLen
(present in the Interface Description Block) and the
Original Packet Length (present in this header). The format
of the data within this Packet Data field depends on the
LinkType field specified in the Interface Description Block
(see <xref target="section_idb"/>) and it is specified in
the entry for that format in <xref target="I-D.ietf-opsawg-pcaplinktype"/>.</t>
          </li>
        </ul>
        <t>The Simple Packet Block does not contain the timestamp because this
is often one of the most costly operations on PCs. Additionally, there
are applications that do not require it; e.g. an Intrusion Detection
System is interested in packets, not in their timestamp.</t>
        <t>As a Simple Packet Block does not contain an Interface ID field, in a
Section that has more than one interface, only packets received or
transmitted on the interface described by the first Interface
Description Block can be contained in a Simple Packet Block; packets
received or transmitted on any other interface MUST be contained in an
Enhanced Packet Block.</t>
        <t>The Simple Packet Block is very efficient in term of disk space: a
snapshot whose length is 100 octets requires only 16 octets of overhead,
which corresponds to an efficiency of more than 86%.</t>
      </section>
      <section anchor="section_nrb">
        <name>Name Resolution Block</name>
        <t>The Name Resolution Block (NRB) is used to support the correlation
of numeric addresses (present in the captured packets) and their
corresponding canonical names and it is optional. Having the literal
names saved in the file prevents the need for performing name
resolution at a later time, when the association between names and
addresses may be different from the one in use at capture time.
Moreover, the NRB avoids the need for issuing a lot of DNS requests
every time the trace capture is opened, and also provides name
resolution when reading the capture with a machine not connected to
the network.</t>
        <t>A Name Resolution Block is often placed at the beginning of the
file, but no assumptions can be taken about its position. Multiple
NRBs can exist in a pcapng file, either due to memory constraints or
because additional name resolutions were performed by file processing
tools, like network analyzers.</t>
        <t>A Name Resolution Block need not contain any Records, except the
nrb_record_end Record which MUST be the last Record. The addresses and
names in NRB Records MAY be repeated multiple times; i.e., the same IP
address may resolve to multiple names, the same name may resolve to
the multiple IP addresses, and even the same address-to-name pair may
appear multiple times, in the same NRB or across NRBs.</t>
        <t>The format of the Name Resolution Block is shown in <xref target="format_nrb"/>.</t>
        <figure anchor="format_nrb">
          <name>Name Resolution Block Format</name>
          <artwork align="center"><![CDATA[
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 0 |                    Block Type = 0x00000004                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 4 |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 8 |      Record Type              |      Record Value Length      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 /                       Record Value                            /
   /              variable length, padded to 32 bits               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   .                                                               .
   .                  . . . other records . . .                    .
   .                                                               .
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Record Type = nrb_record_end |   Record Value Length = 0     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   /                                                               /
   /                      Options (variable)                       /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The Name Resolution Block has the following fields:</t>
        <ul spacing="normal">
          <li>
            <t>Block Type: The block type of the Name Resolution Block is 4.</t>
          </li>
          <li>
            <t>Block Total Length: total size of this block, as described in <xref target="section_block"/>.</t>
          </li>
        </ul>
        <t>This is followed by zero or more Name Resolution Records (in the
TLV format), each of which contains an association between a network
address and a name. An nrb_record_end MUST be added after the last
Record, and MUST exist even if there are no other Records in the NRB.
There are currently five possible types of records:</t>
        <table anchor="nrrecords">
          <name>Name Resolution Block Records</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Type</th>
              <th align="left">Length</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">nrb_record_end</td>
              <td align="left">0x0000</td>
              <td align="left">0</td>
            </tr>
            <tr>
              <td align="left">nrb_record_ipv4</td>
              <td align="left">0x0001</td>
              <td align="left">variable</td>
            </tr>
            <tr>
              <td align="left">nrb_record_ipv6</td>
              <td align="left">0x0002</td>
              <td align="left">variable</td>
            </tr>
            <tr>
              <td align="left">nrb_record_eui48</td>
              <td align="left">0x0003</td>
              <td align="left">variable</td>
            </tr>
            <tr>
              <td align="left">nrb_record_eui64</td>
              <td align="left">0x0004</td>
              <td align="left">variable</td>
            </tr>
          </tbody>
        </table>
        <dl indent="8" newline="true">
          <dt>nrb_record_end:</dt>
          <dd>
            <t>The
nrb_record_end record delimits the end of name resolution
records. This record is needed to determine when the list of name
resolution records has ended and some options (if any) begin.</t>
          </dd>
        </dl>
        <dl indent="8" newline="true">
          <dt>nrb_record_ipv4:</dt>
          <dd>
            <t>The
nrb_record_ipv4 record specifies an IPv4 address (contained in the
first 4 octets), followed by one or more zero-terminated UTF-8
strings containing the DNS entries for that address. The minimum
valid Record Length for this Record Type is thus 6: 4 for the IP
octets, 1 character, and a zero-value octet terminator. Note that
the IP address is treated as four octets, one for each octet of
the IP address; it is not a 32-bit word, and thus the endianness
of the SHB does not affect this field's value.</t>
          </dd>
        </dl>
        <t>Example: '127 0 0 1'"localhost".</t>
        <t>[Open issue: is an empty string (i.e., just a zero-value octet)
valid?]</t>
        <dl indent="8" newline="true">
          <dt>nrb_record_ipv6:</dt>
          <dd>
            <t>The
nrb_record_ipv6 record specifies an IPv6 address (contained in the
first 16 octets), followed by one or more zero-terminated strings
containing the DNS entries for that address. The minimum valid
Record Length for this Record Type is thus 18: 16 for the IP
octets, 1 character, and a zero-value octet terminator.</t>
          </dd>
        </dl>
        <t>Example: '20 01 0d b8 00 00 00 00 00 00 00 00 12 34 56
78'"somehost".</t>
        <t>[Open issue: is an empty string (i.e., just a zero-value octet)
valid?]</t>
        <dl indent="8" newline="true">
          <dt>nrb_record_eui48 / nrb_record_eui64:</dt>
          <dd>
            <t>The
nrb_record_eui48 / nrb_record_eui64 records specify an EUI (or MAC)
address (contained in the first 6 octets for eui48, 8 octets for eui64),
followed by one or more zero-terminated strings containing names resolved
for that address.  As above, the minimum valid Record Length is 8 for
EUI-48 and 10 for EUI-64.  There is no presumption implied in how these
names were acquired unless the DNS server options listed below are present
in the NRB.</t>
          </dd>
        </dl>
        <t>Example: '02 ca ff ee f0 0d'"teapot under test".</t>
        <t>[Open issue: is an empty string (i.e., just a zero-value octet)
valid?]</t>
        <t>Record Types other than those specified earlier MUST be ignored and
skipped past. More Record Types will likely be defined in the future,
and MUST NOT break backwards compatibility.</t>
        <t>Each Record Value is aligned to and padded to a 32-bit boundary.
The corresponding Record Value Length reflects the actual length of
the Record Value; it does not include the lengths of the Record Type
field, the Record Value Length field, any padding for the Record
Value, or anything after the Record Value. For Record Types with name
strings, the Record Length does include the zero-value octet
terminating that string. A Record Length of 0 is valid, unless
indicated otherwise.</t>
        <t>After the list of Name Resolution Records, optionally, a list of
options (formatted according to the rules defined in <xref target="section_opt"/>) can be present.</t>
        <t>In addition to the options defined in <xref target="section_opt"/>,
the following options are valid within this block:</t>
        <table anchor="options_nrb">
          <name>Name Resolution Block Options</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Type</th>
              <th align="left">Length</th>
              <th align="left">Multiple allowed?</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ns_dnsname</td>
              <td align="left">2</td>
              <td align="left">variable</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">ns_dnsIP4addr</td>
              <td align="left">3</td>
              <td align="left">4</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">ns_dnsIP6addr</td>
              <td align="left">4</td>
              <td align="left">16</td>
              <td align="left">no</td>
            </tr>
          </tbody>
        </table>
        <dl indent="8" newline="true">
          <dt>ns_dnsname:</dt>
          <dd>
            <t>The ns_dnsname
option is a UTF-8 string containing the name of the machine (DNS
server) used to perform the name resolution. The string is not
zero-terminated.</t>
          </dd>
        </dl>
        <t>Example: "our_nameserver".</t>
        <dl indent="8" newline="true">
          <dt>ns_dnsIP4addr:</dt>
          <dd>
            <t>The
ns_dnsIP4addr option specifies the IPv4 address of the DNS server.
Note that the IP address is treated as four octets, one for each
octet of the IP address; it is not a 32-bit word, and thus the
endianness of the SHB does not affect this field's value.</t>
          </dd>
        </dl>
        <t>Example: '192 168 0 1'.</t>
        <dl indent="8" newline="true">
          <dt>ns_dnsIP6addr:</dt>
          <dd>
            <t>The
ns_dnsIP6addr option specifies the IPv6 address of the DNS
server.</t>
          </dd>
        </dl>
        <t>Example: '20 01 0d b8 00 00 00 00 00 00 00 00 12 34 56 78'.</t>
      </section>
      <section anchor="section_isb">
        <name>Interface Statistics Block</name>
        <t>The Interface Statistics Block (ISB) contains the capture
statistics for a given interface and it is optional. The statistics
are referred to the interface defined in the current Section
identified by the Interface ID field. An Interface Statistics Block is
normally placed at the end of the file, but no assumptions can be
taken about its position - it can even appear multiple times for the
same interface.</t>
        <t>The format of the Interface Statistics Block is shown in <xref target="format_isb"/>.</t>
        <figure anchor="format_isb">
          <name>Interface Statistics Block Format</name>
          <artwork align="center"><![CDATA[
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 0 |                   Block Type = 0x00000005                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 4 |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 8 |                         Interface ID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 |                       (Upper 32 bits)                         |
   + - - - - - - - - - - - -  Timestamp  - - - - - - - - - - - - - +
16 |                       (Lower 32 bits)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
20 /                                                               /
   /                      Options (variable)                       /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The fields have the following meaning:</t>
        <ul spacing="normal">
          <li>
            <t>Block Type: The block type of the Interface Statistics Block is
5.</t>
          </li>
          <li>
            <t>Block Total Length: total size of this block, as described in <xref target="section_block"/>.</t>
          </li>
          <li>
            <t>Interface ID (32 bits): an unsigned integer that specifies the
interface to which these statistics refer; the correct interface
will be the one whose Interface Description Block (within the current
Section of the file) is identified by the same number (see <xref target="section_idb"/>)
of this field. The interface ID MUST be valid, which means that an
matching interface description block MUST exist.</t>
          </li>
          <li>
            <t>Timestamp (64 bits): the time at which the statistics values were
taken; two 32-bit unsigned integers, in the same format as defined
for timestamps in the Enhanced Packet Block (<xref target="section_epb"/>),
using the 'if_tsresol' and 'if_tsoffset' values from the Interface
Description Block specified by the Interface ID.</t>
          </li>
          <li>
            <t>Options: optionally, a list of options (formatted according to
the rules defined in <xref target="section_opt"/>) can be present.</t>
          </li>
        </ul>
        <t>All the statistics fields are defined as options in order to deal
with systems that do not have a complete set of statistics. Therefore,
In addition to the options defined in <xref target="section_opt"/>,
the following options are valid within this block:</t>
        <table anchor="options_isb">
          <name>Interface Statistics Block Options</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Type</th>
              <th align="left">Length</th>
              <th align="left">Multiple allowed?</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">isb_starttime</td>
              <td align="left">2</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">isb_endtime</td>
              <td align="left">3</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">isb_ifrecv</td>
              <td align="left">4</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">isb_ifdrop</td>
              <td align="left">5</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">isb_filteraccept</td>
              <td align="left">6</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">isb_osdrop</td>
              <td align="left">7</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">isb_usrdeliv</td>
              <td align="left">8</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
          </tbody>
        </table>
        <dl indent="8" newline="true">
          <dt>isb_starttime:</dt>
          <dd>
            <t>The isb_starttime
option specifies the time that traffic capture started on this
interface, consisting of two 32-bit unsigned integers, in the same
format as defined for timestamps in the Enhanced Packet Block
(<xref target="section_epb"/>), using the 'if_tsresol' and 'if_tsoffset' values
from the Interface Description Block specified by the Interface ID.</t>
          </dd>
        </dl>
        <t>Example: '96 c3 04 00 73 89 6a 65', in Little Endian, decodes
to 2012-06-29 06:17:00.834163 UTC.</t>
        <dl indent="8" newline="true">
          <dt>isb_endtime:</dt>
          <dd>
            <t>The isb_endtime
option specifies the time that traffic capture ended on this
interface, consisting of two 32-bit unsigned integers, in the same
format as defined for timestamps in the Enhanced Packet Block
(<xref target="section_epb"/>), using the 'if_tsresol' and 'if_tsoffset' values
from the Interface Description Block specified by the Interface ID.</t>
          </dd>
        </dl>
        <t>Example: '97 c3 04 00 aa 47 ca 64', in Little Endian, decodes
to 2012-06-29 07:28:25.298858 UTC.</t>
        <dl indent="8" newline="true">
          <dt>isb_ifrecv:</dt>
          <dd>
            <t>The isb_ifrecv
option specifies the 64-bit unsigned integer number of packets
that were received from the physical interface, starting at the
beginning of the capture.</t>
          </dd>
        </dl>
        <t>Example: the decimal number 100.</t>
        <dl indent="8" newline="true">
          <dt>isb_ifdrop:</dt>
          <dd>
            <t>The isb_ifdrop
option specifies the 64-bit unsigned integer number of packets
that were dropped by the interface due to lack of resources,
starting at the beginning of the capture.</t>
          </dd>
        </dl>
        <t>Example: '0'.</t>
        <dl indent="8" newline="true">
          <dt>isb_filteraccept:</dt>
          <dd>
            <t>The
isb_filteraccept option specifies the 64-bit unsigned integer
number of packets that were accepted by the filter, starting
from the beginning of the capture.</t>
          </dd>
        </dl>
        <t>Example: the decimal number 100.</t>
        <dl indent="8" newline="true">
          <dt>isb_osdrop:</dt>
          <dd>
            <t>The isb_osdrop
option specifies the 64-bit unsigned integer number of packets
that were dropped by the operating system, starting from the
beginning of the capture.</t>
          </dd>
        </dl>
        <t>Example: '0'.</t>
        <dl indent="8" newline="true">
          <dt>isb_usrdeliv:</dt>
          <dd>
            <t>The
isb_usrdeliv option specifies the 64-bit unsigned integer number
of packets that were delivered to the user, starting from the
beginning of the capture. The value contained in this field can
be different from the value 'isb_filteraccept - isb_osdrop'
because some packets could still be in the OS buffers when the
capture ended.</t>
          </dd>
        </dl>
        <t>Example: '0'.</t>
        <t>All the fields that refer to packet counters are 64-bit values,
represented with the octet order of the current section. Special care
must be taken in accessing these fields: since all the blocks are
aligned to a 32-bit boundary, such fields are not guaranteed to be
aligned on a 64-bit boundary.</t>
      </section>
      <section anchor="section_dsb">
        <name>Decryption Secrets Block</name>
        <t>A Decryption Secrets Block (DSB) stores (session) secrets that
enable decryption of packets within the capture file. The format of
these secrets is defined by the Secrets Type.</t>
        <t>Multiple DSBs can exist in a pcapng file, but they SHOULD be written
before packet blocks that require those secrets. Tools MAY limit
decryption to secrets that appear before packet blocks.</t>
        <t>The structure of a
Decryption Secrets Block is shown in <xref target="format_dsb"/>.</t>
        <figure anchor="format_dsb">
          <name>Decryption Secrets Block Format</name>
          <artwork align="center"><![CDATA[
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 0 |                   Block Type = 0x0000000A                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 4 |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 8 |                          Secrets Type                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 |                         Secrets Length                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
16 /                                                               /
   /                          Secrets Data                         /
   /              (variable length, padded to 32 bits)             /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   /                                                               /
   /                       Options (variable)                      /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   /                       Block Total Length                      /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The Decryption Secrets Block has the following fields.</t>
        <ul spacing="normal">
          <li>
            <t>Block Type: The block type of the Decryption Secrets Block is
10.</t>
          </li>
          <li>
            <t>Block Total Length: total size of this block, as described in <xref target="section_block"/>.</t>
          </li>
          <li>
            <t>Secrets Type (32 bits): an unsigned integer identifier
that describes the format of the following Secrets field.
Requests for new Secrets Type codes should be made by creating
a pull request to update this document as described in
<xref target="section_block_code_registry"/>.</t>
          </li>
          <li>
            <t>Secrets Length (32 bits): an unsigned integer that indicates
the size of the following Secrets field, without any padding
octets.</t>
          </li>
          <li>
            <t>Secrets Data: binary data containing secrets, padded to a 32-bit
boundary.</t>
          </li>
          <li>
            <t>Options: optionally, a list of options (formatted according to
the rules defined in <xref target="section_opt"/>) can be present.
No DSB-specific options are currently defined.</t>
          </li>
        </ul>
        <t>The following is a list of Secret Types.</t>
        <dl indent="8" newline="true">
          <dt>0x5353484b:</dt>
          <dd>
            <t>SSH Key Log.
Every line consists of a cookie, key type, and key separated by one space.
The cookie is the hex-encoded (client or server) 16 octets cookie
(32 characters) found in the SSH_MSG_KEXINIT sent during
algorithm negotiation <xref section="7.1" sectionFormat="comma" target="RFC4253"/>
by the endpoint whose private random is disclosed.
The key type is either SHARED_SECRET or PRIVATE_KEY.
The key is hex-encoded and either the shared secret ('K' in
<xref section="8" sectionFormat="comma" target="RFC4253"/> or the
private random number (referred to as 'x' for the client and 'y'
for the server in <xref target="RFC4253"/>) used to generate the shared secret during DH
key exchange; its length depends on the algorithm.
Every line MUST be terminated with either a carriage return and linefeed
('\r\n') or a linefeed ('\n').
Tools MUST be able to handle both line endings.</t>
          </dd>
        </dl>
        <dl indent="8" newline="true">
          <dt>0x544c534b:</dt>
          <dd>
            <t>TLS Key Log.
This format is described in <xref target="I-D.ietf-tls-keylogfile"/>.
Every line MUST be properly terminated with
either carriage return and linefeed ('\r\n') or linefeed ('\n').
Tools MUST be able to handle both line endings.</t>
          </dd>
        </dl>
        <dl indent="8" newline="true">
          <dt>0x55414b4c:</dt>
          <dd>
            <t><eref target="https://opcfoundation.org/about/opc-technologies/opc-ua">OPC UA</eref> Key Log.
Every line consists of a key/value pair separated by a colon and one space ('<tt>: </tt>').
Every line must be terminated by a linefeed ('<tt>\n</tt>').
The key name is composed of four parts separated by underscores ('<tt>_</tt>').
</t>
            <ul spacing="normal">
              <li>
                <t>Keyset Name: Either 'server' or 'client'.      </t>
                <t>
The Client keys are used to secure Messages sent by the Client. The
  Server keys are used to secure Messages sent by the Server.</t>
              </li>
              <li>
                <t>Key Material Type:      </t>
                <ul spacing="normal">
                  <li>
                    <t>'iv': initialization vector</t>
                  </li>
                  <li>
                    <t>'key': AES key</t>
                  </li>
                  <li>
                    <t>'siglen': signature length in octets. This depends on the used
security policy.</t>
                  </li>
                </ul>
              </li>
              <li>
                <t>Secure Channel ID: Encoded as decimal value.</t>
              </li>
              <li>
                <t>Token ID: Encoded as decimal value.</t>
              </li>
            </ul>
            <t>The value contains the key data encoded as hexadecimal string with upper
case letters.  To create a valid keyset, four entries for one combination of
secure channel ID and token ID are required. These entries include 'iv' and
'key' for both 'server' and 'client'.</t>
            <t>Currently, AES-128-CBC and AES-256-CBC are supported encryption algorithms:</t>
            <ul spacing="normal">
              <li>
                <t>AES-128-CBC:
                </t>
                <ul spacing="normal">
                  <li>
                    <t>IV Length: 16 octets</t>
                  </li>
                  <li>
                    <t>Key Length: 16 octets</t>
                  </li>
                </ul>
              </li>
              <li>
                <t>AES-256-CBC:
                </t>
                <ul spacing="normal">
                  <li>
                    <t>IV Length: 16 octets</t>
                  </li>
                  <li>
                    <t>Key Length: 32 octets</t>
                  </li>
                </ul>
              </li>
            </ul>
            <t>More details on OPC UA Security can be found in the <eref target="https://opcfoundation.org/developer-tools/documents/view/163">OPC UA Specification Part 6 - Mappings</eref>,
 the security policies are defined in <eref target="https://opcfoundation.org/developer-tools/documents/view/164">OPC UA Specification Part 7 - Profiles</eref>,
 or can be found online on the <eref target="https://opcfoundation.org/profilereporting">Profile Reporting website</eref>.</t>
          </dd>
          <dt>0x57474b4c:</dt>
          <dd>
            <t>WireGuard Key Log.
Every line consists of the key type, equals sign ('='), and the
base64-encoded 32-octet key with optional spaces before and in between.
The key type is one of LOCAL_STATIC_PRIVATE_KEY,
REMOTE_STATIC_PUBLIC_KEY, LOCAL_EPHEMERAL_PRIVATE_KEY,
or PRESHARED|_KEY. This matches the output of <eref target="https://git.zx2c4.com/WireGuard/tree/contrib/examples/extract-handshakes/README">extract-handshakes.sh</eref>, which is part of the <eref target="https://www.wireguard.com/">WireGuard</eref> project.
A PRESHARED_KEY line is linked to a session matched by a previous
LOCAL_EPHEMERAL_PRIVATE_KEY line.
Every line MUST be properly terminated with
either carriage return and linefeed ('\r\n') or linefeed ('\n').
Tools MUST be able to handle both line endings.</t>
          </dd>
        </dl>
        <t>Warning: LOCAL_STATIC_PRIVATE_KEY and potentially PRESHARED_KEY
  are long-term secrets, users SHOULD only store non-production keys,
  or ensure proper protection of the pcapng file.</t>
        <dl indent="8" newline="true">
          <dt>0x5a4e574b:</dt>
          <dd>
            <t>ZigBee NWK Key
and ZigBee PANID for that network. Network Key as described in
the <eref target="https://zigbeealliance.org/">ZigBee Specification</eref> 05-3473-21 (R21) section 4.2.2.
The NWK Key is a 16 octet binary AES-128 key used to secure NWK Level frames
within a single PAN. The NWK key is immediately followed by the
2-octet (16-bit) network PANID in little-endian format. If and when
the NWK Key changes a new DSB will contain the new NWK Key.</t>
          </dd>
        </dl>
        <dl indent="8" newline="true">
          <dt>0x5a415053:</dt>
          <dd>
            <t>ZigBee APS Key.
Application Support Link Key as described in the <eref target="https://zigbeealliance.org/">ZigBee Specification</eref> 05-3473-21 (R21) section 4.4. Each 16 octet binary AES-128 key secures
frames exchanged between a pair of network nodes. The APS Key is
immediately followed by the 2-octet (16-bit) network PANID in
little-endian format. The PANID is followed by the 2-octet (16-bit)
short addresses, in little-endian format, of the nodes to which
the APS Key applies. The numerically lower short address shall come
first. There is an APS Key DSB for each node pair for which the
Link Key is known. As new links are formed, new DSBs contain the
new Keys. If the APS Key changes for an existing link, it is
contained in a new DSB with the new APS Key.</t>
          </dd>
        </dl>
        <figure anchor="format_zigbee_nwk">
          <name>ZigBee NWK Key Data Format</name>
          <artwork align="center"><![CDATA[
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +---------------------------------------------------------------+
 0 |                   Block Type = 0x0000000A                     |
   +---------------------------------------------------------------+
 4 |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 8 |                  Secrets Type = 0x5a4e574b                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 |                         Secrets Length                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
16 |                            AES-128                            |
   |                            NWK Key                            |
   |                          (16 octets)                          |
   |                           (128 bits)                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
32 |          PAN ID               |           padding (0)         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
36 /                                                               /
   /                       Options (variable)                      /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   /                       Block Total Length                      /
   +---------------------------------------------------------------+
]]></artwork>
        </figure>
        <figure anchor="format_zigbee_aps">
          <name>ZigBee APS Key Data Format</name>
          <artwork align="center"><![CDATA[
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +---------------------------------------------------------------+
 0 |                   Block Type = 0x0000000A                     |
   +---------------------------------------------------------------+
 4 |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 8 |                  Secrets Type = 0x5a415053                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 |                         Secrets Length                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
16 |                            AES-128                            |
   |                            APS Key                            |
   |                          (16 octets)                          |
   |                           (128 bits)                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
32 |           PAN ID              |     Low Node Short Address    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
36 |    High Node Short Address    |         padding (0)           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
40 /                                                               /
   /                       Options (variable)                      /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   /                       Block Total Length                      /
   +---------------------------------------------------------------+
]]></artwork>
        </figure>
        <dl indent="8" newline="true">
          <dt>0x45535053:</dt>
          <dd>
            <t>ESP Security Association keys.
This is in CSV format <xref target="RFC4180"/>, with each record containing fields that
describe an ESP security association. Each line has the following columns:
"Protocol","Src IP","Dest IP","SPI","Encryption","Encryption Key",
"Authentication","Authentication Key","SN","ESN High Bits".
All columns must be filled in the order specified here with a value and the header line is ignored if present.
If a column contains an unknown value, the line should be skipped.
If the line contains more columns than what is expected by the reader, the extra ones should be ignored.
If the line contains fewer columns than what is expected by the reader, it should either apply a default
value (if possible) or the line should be skipped.
</t>
            <ul spacing="normal">
              <li>
                <t>Protocol: Protocol used. Can be either "IPv4", "IPv6" or "Any".</t>
              </li>
              <li>
                <t>Src IP: Source IP address. String containing the address, wildcard (*) character is supported.</t>
              </li>
              <li>
                <t>Dest IP: Destination IP address. String containing the address, wildcard (*) character is supported.</t>
              </li>
              <li>
                <t>SPI: Security Parameter Index. String of a 32 bits integer in hexadecimal format (starting with 0x).</t>
              </li>
              <li>
                <t>Encryption: Encryption algorithm. Can be "NULL", "TripleDES-CBC <xref target="RFC2451"/>", "AES-CBC <xref target="RFC3602"/>",
"AES-CTR <xref target="RFC3686"/>", "DES-CBC <xref target="RFC2405"/>", "CAST5-CBC <xref target="RFC2144"/>", "BLOWFISH-CBC <xref target="RFC2451"/>", "TWOFISH-CBC",
"AES-GCM <xref target="RFC4106"/>", "AES-GCM with 8 octet ICV <xref target="RFC4106"/>", "AES-GCM with 12 octet ICV <xref target="RFC4106"/>",
"AES-GCM with 16 octet ICV <xref target="RFC4106"/>", "AES-GCM with IIV and 16 octet ICV <xref target="RFC4106"/>, &amp; <xref target="RFC8750"/>",
"ChaCha20 with Poly1305 <xref target="RFC7634"/>" or "ChaCha20 with Poly1305 and IIV <xref target="RFC7634"/>, &amp; <xref target="RFC8750"/>".
New algorithms might be added in the future. The algorithm names are
exactly as quoted.</t>
              </li>
              <li>
                <t>Encryption Key: Encryption key. String containing the key in heaxadecimal format (starting with 0x).</t>
              </li>
              <li>
                <t>Authentication: Authentication algorithm. Can be "NULL", "HMAC-SHA-1-96 <xref target="RFC2404"/>",
"HMAC-SHA-256-128 <xref target="RFC4868"/>",
"HMAC-SHA-384-192 <xref target="RFC4868"/>", "HMAC-SHA-512-256 <xref target="RFC4868"/>", "HMAC-MD5-96 <xref target="RFC2403"/>",
"MAC-RIPEMD-160-96 <xref target="RFC2857"/>", "ANY 64 bit authentication [no checking]",
"ANY 96 bit authentication [no checking]", "ANY 128 bit authentication [no checking]",
"ANY 192 bit authentication [no checking]" or "ANY 256 bit authentication [no checking]".
New algorithms might be added in the future. The algorithm names are
exactly as quote.</t>
              </li>
              <li>
                <t>Authentication Key:  Authentication key. String containing the key in heaxadecimal format (starting with 0x).</t>
              </li>
              <li>
                <t>SN: Sequence number length. Can be "32-bit" or "64-bit".</t>
              </li>
              <li>
                <t>ESN High Bits: Extended Sequence Number upper 32 bits. String of a 32 bits integer in hexadecimal
format (starting with 0x).</t>
              </li>
            </ul>
          </dd>
        </dl>
      </section>
      <section anchor="section_custom_block">
        <name>Custom Block</name>
        <t>A Custom Block (CB) is the container for storing custom data that
is not part of another block; for storing custom data as part of
another block, see <xref target="section_custom_option"/>. The Custom
Block is optional, can be repeated any number of times, and can appear
before or after any other block except the first Section Header Block
which must come first in the file. Different Custom Blocks, of
different type codes and/or different Private Enterprise Numbers, may
be used in the same pcapng file. The format of a Custom Block is shown
in <xref target="format_custom_block"/>.</t>
        <figure anchor="format_custom_block">
          <name>Custom Block Format</name>
          <artwork align="center"><![CDATA[
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 0 |             Block Type = 0x00000BAD or 0x40000BAD             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 4 |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 8 |                Private Enterprise Number (PEN)                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 /                                                               /
   /                          Custom Data                          /
   /              variable length, padded to 32 bits               /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   /                                                               /
   /                      Options (variable)                       /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The Custom Block uses the type code 0x00000BAD (2989 in decimal)
for a custom block that pcapng re-writers can copy into new files, and
the type code 0x40000BAD (1073744813 in decimal) for one that should
not be copied. See <xref target="section_vendor_copy"/> for details.</t>
        <t>The Custom Block has the following fields:</t>
        <ul spacing="normal">
          <li>
            <t>Block Type: The block type of the Custom Block is 0x00000BAD or
0x40000BAD, as described previously.</t>
          </li>
          <li>
            <t>Block Total Length: total size of this block, as described in <xref target="section_block"/>.</t>
          </li>
          <li>
            <t>Private Enterprise Number (32 bits): An IANA-assigned
Private Enterprise Number identifying the organization which
defined the Custom Block.  See <xref target="section_vendor_uses"/> for details.  The PEN MUST be
encoded using the same endianness as the Section Header
Block it is within the scope of.</t>
          </li>
          <li>
            <t>Custom Data: the custom data, padded to a 32-bit boundary.</t>
          </li>
          <li>
            <t>Options: optionally, a list of options (formatted according to
the rules defined in <xref target="section_opt"/>) can be present.
Note that custom options for the Custom Block still use the custom
option format and type code, as described in <xref target="section_custom_option"/>.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="section_vendor">
      <name>Vendor-Specific Custom Extensions</name>
      <t>This section uses the term "vendor" to describe an organization which
extends the pcapng file with custom, proprietary blocks or options. It
should be noted, however, that the "vendor" is just an abstract entity
that agrees on a custom extension format: for example it may be a
manufacturer, industry association, an individual user, or collective
group of users.</t>
      <section anchor="section_vendor_uses">
        <name>Supported Use-Cases</name>
        <t>There are two different supported use-cases for vendor-specific
custom extensions: local and portable. Local use means the custom data
is only expected to be usable on the same machine, and the same
application, which encoded it into the file. This limitation is due to
the lack of a common registry for the local use number codes (the
block or option type code numbers with the Most Significant Bit set).
Since two different vendors may choose the same number, one vendor's
application reading the other vendor's file would result in decoding
failure. Therefore, vendors SHOULD instead use the portable method, as
described next.</t>
        <t>The portable use-case supports vendor-specific custom extensions in
pcapng files which can be shared across systems, organizations, etc.
To avoid number space collisions, an IANA-registered Private
Enterprise Number (PEN) is encoded into the Custom Block or Custom
Option, using the PEN that belongs to the vendor defining the
extension. Anyone can register a new PEN with IANA, for free, by
filling out the online request form at <eref target="http://pen.iana.org/pen/PenApplication.page">http://pen.iana.org/pen/PenApplication.page</eref>.</t>
      </section>
      <section anchor="section_vendor_copy">
        <name>Controlling Copy Behavior</name>
        <t>Both Custom Blocks and Custom Options support two different type codes
to distinguish their "copy" behavior: a type code for when the block or
option can be safely copied into a new pcapng file by a pcapng
manipulating application, and a type code for when it should not be
copied. A common reason for not copying a Custom Block or Custom Option
is because it depends on other blocks or options in some way that would
invalidate the custom data if the other blocks/options were removed or
re-ordered. For example, if a Custom Block's data includes an
Interface ID number in its Custom Data portion, then it cannot be
safely copied by a pcapng application that merges pcapng files,
because the merging application might re-order or remove one or more
of the Interface Description Blocks, and thereby change the Interface
IDs that the Custom Block depends upon. The same issue arises if a
Custom Block or Custom Option depends on the presence of, or specific
ordering of, other standard-based or custom-defined blocks or
options.</t>
        <t>Note that the copy semantics is not related to privacy - there is
no guarantee that a pcapng anonymizer will remove a Custom Block or
Custom Option, even if the appropriate type code is used requesting it
not be copied; and the original pcapng file can be shared anyway. If the
Custom Data portion of the Custom Block or Custom Option contains
sensitive information, then it should be encrypted in some
fashion.</t>
      </section>
      <section anchor="section_vendor_strings">
        <name>Strings vs. Octets</name>
        <t>For the Custom Options, there are two Custom Data formats
supported: a UTF-8 string and a binary data payload. The rationale for
this separation is that a pcapng display application which does not
understand the specific PEN's Custom Option can still display the data
as a string if it's a string type code, rather than as hex-ascii of
the octets.</t>
      </section>
      <section anchor="section_vendor_endian">
        <name>Endianness Issues</name>
        <t>Implementers writing Custom Blocks or binary data Custom Options should
be aware that a pcapng file can be re-written by machines using a
different endianness than the original file, which means all known
fields of the pcapng file will change endianness in the new file.  Since
the Custom Data payload of the Custom Block or the binary data Custom
Option might be an arbitrary sequence of unknown octets to such
machines, they cannot convert multi-octet values inside the Custom Data,
or in the Options  section of a Custom Block,into the appropriate
endianness.</t>
        <t>For example, a little-endian machine can create a new pcapng file and
add some binary data Custom Options to some non-Custom Block(s) in the
file.  This file can then be sent to a big-endian host, which will
convert the Option Type, Option Length, and PEN fields of the options to
big-endian format if it re-writes the file.  However, if the software
reading the file does not understand the contents of all of the Custom
Options, it will leave the Custom Data payload of the options alone (as
little-endian format).  If this file then gets sent to a little-endian
machine, then, when that little-endian machine reads the file, it will,
if the software reading the file understands the contents of all the
Custom Options, it will detect that the file format is big-endian, and
swap the endianness while it parses the file - but that will cause the
Custom Data payload to be incorrect since it was already in
little-endian format.</t>
        <t>In addition, a little-endian machine can create a pcapng file and write
some binary data Custom Blocks, containing options, to the file.  The
file can then be sent to a big-endian host, which, if the software
reading the file does not understand the contents of the Custom Blocks,
will leave the Custom Data and Options alone (as little-endian format).
If this file then gets sent to a little-endian machine, then, when that
little-endian machine reads the file, it will, if the software reading
the file understands the contents of all the Custom Blocks, it will
detect that the file format is big-endian, and swap the endianness while
it parses the file - but that will cause the Custom Data payload, the
Option Type and Option Length values in the Options, and the PEN in any
Custom Options to be incorrect since they were already in little-endian
format.</t>
        <t>Therefore, the vendor should either encode the Custom Data of their
Custom Blocks and Custom Options, the Option Type and Option Length
fields of options in Custom Blocks, and the PEN field of Custom Options
in Custom Blocks in a consistent manner, such as always in big-endian or
always in little-endian format, regardless of the host platform's
endianness, or should encode some flag in the Custom Data payload to
indicate in which endianness the rest of the payload is written.</t>
        <t>The PEN field of a Custom Block, or of a Custom Option not contained in
a Custom Block, MUST be converted by code that reads pcapng files, so
this is not an issue for that field, except for Custom Options in Custom
Blocks.  This is also not an issue for the Custom Data payload of UTF-8
string Custom Options.</t>
      </section>
    </section>
    <section anchor="recommended-file-name-extension-pcapng">
      <name>Recommended File Name Extension: .pcapng</name>
      <t>The recommended file name extension for the "PCAP Now Generic
Capture File Format" specified in this document is ".pcapng".</t>
      <t>On Windows and macOS, files are distinguished by an extension to their
filename. Such an extension is technically not actually required, as
applications should be able to automatically detect the pcapng file
format through the Block Type and Byte-Order Magic fields in the Section
Header Block at the beginning of the file, as some desktop environments
other than those of Windows and macOS do. However, using name
extensions makes it easier to work with files (e.g. visually
distinguish file formats) so it is recommended - though not required -
to use .pcapng as the name extension for files following this
specification.</t>
      <t>Please note: To avoid confusion (such as the current usage of
.cap for a plethora of different capture file formats) file
name extensions other than .pcapng should be avoided.</t>
    </section>
    <section anchor="conclusions">
      <name>Conclusions</name>
      <t>The file format proposed in this document should be very versatile
and satisfy a wide range of applications. In the simplest case, it can
contain a raw capture of the network data, made of a series of Simple
Packet Blocks. In the most complex case, it can be used as a repository
for heterogeneous information. In every case, the file remains easy to
parse and an application can always skip the data it is not interested
in; at the same time, different applications can share the file, and
each of them can benefit of the information produced by the others. Two
or more files can be concatenated obtaining another valid file.</t>
    </section>
    <section anchor="implementations">
      <name>Implementations</name>
      <t>Some known implementations that read or write the pcapng file format
are listed on the <eref target="https://github.com/IETF-OPSAWG-WG/pcapng/wiki/Implementations">pcapng GitHub wiki</eref>.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TBD.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TBD.</t>
      <t>[Open issue: decide whether the block types, option types, NRB Record
types, etc. should be IANA registries. And if so, what the IANA policy
for each should be (see <xref target="RFC5226"/>]</t>
      <section anchor="section_block_code_registry">
        <name>Standardized Block Type Codes</name>
        <t>Every Block is uniquely identified by a 32-bit unsigned integer, stored
in the Block Header.</t>
        <t>As pointed out in <xref target="section_block"/>, Block Type
codes whose Most Significant Bit (bit 31) is set to 1 are reserved for
local use by the application.</t>
        <t>All the remaining Block Type codes (0x00000000 to 0x7FFFFFFF) are
standardized by this document. Requests for new Block Type codes,
Option Type codes, and Secrets Type codes should be made by creating
a pull request to update this document at <eref target="https://github.com/IETF-OPSAWG-WG/pcapng">github.com/IETF-OPSAWG-WG/pcapng</eref>.
The pull request should add a description of the new block, option,
or secret type to <xref target="section_block_definition"/>. The pull request
description should contain a clear request for a new type code
assignment.</t>
        <t>The following is a list of the Standardized Block Type Codes; XX, in an
item in the list means that the item refers to all possible values in
which the "XX" is from 00 to FF:</t>
        <table anchor="blockcodes">
          <name>Standardized Block Type Codes</name>
          <thead>
            <tr>
              <th align="left">Block Type Code</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0x00000000</td>
              <td align="left">Reserved ???</td>
            </tr>
            <tr>
              <td align="left">0x00000001</td>
              <td align="left">Interface Description Block <xref target="section_idb"/></td>
            </tr>
            <tr>
              <td align="left">0x00000002</td>
              <td align="left">Packet Block  <xref target="appendix_pb"/></td>
            </tr>
            <tr>
              <td align="left">0x00000003</td>
              <td align="left">Simple Packet Block <xref target="section_spb"/></td>
            </tr>
            <tr>
              <td align="left">0x00000004</td>
              <td align="left">Name Resolution Block <xref target="section_nrb"/></td>
            </tr>
            <tr>
              <td align="left">0x00000005</td>
              <td align="left">Interface Statistics Block <xref target="section_isb"/></td>
            </tr>
            <tr>
              <td align="left">0x00000006</td>
              <td align="left">Enhanced Packet Block <xref target="section_epb"/></td>
            </tr>
            <tr>
              <td align="left">0x00000007</td>
              <td align="left">IRIG Timestamp Block (requested by Gianluca Varenni &lt;gianluca.varenni@cacetech.com&gt;, CACE Technologies LLC); code also used for <eref target="https://github.com/google/linux-sensor/blob/master/hone-pcapng.txt">Socket Aggregation Event Block</eref></td>
            </tr>
            <tr>
              <td align="left">0x00000008</td>
              <td align="left">
                <eref target="https://en.wikipedia.org/wiki/ARINC_429">ARINC 429</eref> in AFDX Encapsulation Information Block (requested by Gianluca Varenni &lt;gianluca.varenni@cacetech.com&gt;, CACE Technologies LLC)</td>
            </tr>
            <tr>
              <td align="left">0x00000009</td>
              <td align="left">systemd Journal Export Block <xref target="I-D.richardson-opsawg-pcapng-extras"/></td>
            </tr>
            <tr>
              <td align="left">0x0000000A</td>
              <td align="left">Decryption Secrets Block <xref target="section_dsb"/></td>
            </tr>
            <tr>
              <td align="left">0x00000101</td>
              <td align="left">
                <eref target="https://github.com/HoneProject">Hone Project</eref> <eref target="https://github.com/HoneProject/Linux-Sensor/wiki/Augmented-PCAP-Next-Generation-Dump-File-Format">Machine Info Block</eref> (see also <eref target="https://github.com/google/linux-sensor/blob/master/hone-pcapng.txt">Google version</eref>)</td>
            </tr>
            <tr>
              <td align="left">0x00000102</td>
              <td align="left">
                <eref target="https://github.com/HoneProject">Hone Project</eref> <eref target="https://github.com/HoneProject/Linux-Sensor/wiki/Augmented-PCAP-Next-Generation-Dump-File-Format">Connection Event Block</eref> (see also <eref target="https://github.com/google/linux-sensor/blob/master/hone-pcapng.txt">Google version</eref>)</td>
            </tr>
            <tr>
              <td align="left">0x00000201</td>
              <td align="left">
                <eref target="https://github.com/draios/sysdig">Sysdig</eref> Machine Info Block</td>
            </tr>
            <tr>
              <td align="left">0x00000202</td>
              <td align="left">
                <eref target="https://github.com/draios/sysdig">Sysdig</eref> Process Info Block, version 1</td>
            </tr>
            <tr>
              <td align="left">0x00000203</td>
              <td align="left">
                <eref target="https://github.com/draios/sysdig">Sysdig</eref> FD List Block</td>
            </tr>
            <tr>
              <td align="left">0x00000204</td>
              <td align="left">
                <eref target="https://github.com/draios/sysdig">Sysdig</eref> Event Block</td>
            </tr>
            <tr>
              <td align="left">0x00000205</td>
              <td align="left">
                <eref target="https://github.com/draios/sysdig">Sysdig</eref> Interface List Block</td>
            </tr>
            <tr>
              <td align="left">0x00000206</td>
              <td align="left">
                <eref target="https://github.com/draios/sysdig">Sysdig</eref> User List Block</td>
            </tr>
            <tr>
              <td align="left">0x00000207</td>
              <td align="left">
                <eref target="https://github.com/draios/sysdig">Sysdig</eref> Process Info Block, version 2</td>
            </tr>
            <tr>
              <td align="left">0x00000208</td>
              <td align="left">
                <eref target="https://github.com/draios/sysdig">Sysdig</eref> Event Block with flags</td>
            </tr>
            <tr>
              <td align="left">0x00000209</td>
              <td align="left">
                <eref target="https://github.com/draios/sysdig">Sysdig</eref> Process Info Block, version 3</td>
            </tr>
            <tr>
              <td align="left">0x00000210</td>
              <td align="left">
                <eref target="https://github.com/draios/sysdig">Sysdig</eref> Process Info Block, version 4</td>
            </tr>
            <tr>
              <td align="left">0x00000211</td>
              <td align="left">
                <eref target="https://github.com/draios/sysdig">Sysdig</eref> Process Info Block, version 5</td>
            </tr>
            <tr>
              <td align="left">0x00000212</td>
              <td align="left">
                <eref target="https://github.com/draios/sysdig">Sysdig</eref> Process Info Block, version 6</td>
            </tr>
            <tr>
              <td align="left">0x00000213</td>
              <td align="left">
                <eref target="https://github.com/draios/sysdig">Sysdig</eref> Process Info Block, version 7</td>
            </tr>
            <tr>
              <td align="left">0x00000BAD</td>
              <td align="left">
                <xref target="section_custom_block">Custom Block that rewriters can copy into new files</xref></td>
            </tr>
            <tr>
              <td align="left">0x40000BAD</td>
              <td align="left">
                <xref target="section_custom_block">Custom Block that rewriters should not copy into new files</xref></td>
            </tr>
            <tr>
              <td align="left">0x0A0D0D0A</td>
              <td align="left">
                <xref target="section_shb">Section Header Block</xref></td>
            </tr>
            <tr>
              <td align="left">0x0A0D0AXX</td>
              <td align="left">Reserved. Used to detect trace files corrupted because of file transfers using the HTTP protocol in text mode.</td>
            </tr>
            <tr>
              <td align="left">0xXX0A0D0A</td>
              <td align="left">Reserved. Used to detect trace files corrupted because of file transfers using the HTTP protocol in text mode.</td>
            </tr>
            <tr>
              <td align="left">0xXX0A0D0D</td>
              <td align="left">Reserved. Used to detect trace files corrupted because of file transfers using the HTTP protocol in text mode.</td>
            </tr>
            <tr>
              <td align="left">0x0D0D0AXX</td>
              <td align="left">Reserved. Used to detect trace files corrupted because of file transfers using the FTP protocol in text mode.</td>
            </tr>
            <tr>
              <td align="left">0x80000000-0xFFFFFFFF</td>
              <td align="left">Reserved for local use.</td>
            </tr>
          </tbody>
        </table>
        <t>[Open issue: reserve 0x40000000-0x7FFFFFFF for do-not-copy-bit
range of base types?]</t>
      </section>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Loris Degioanni and Gianluca Varenni were coauthoring this document
before it was submitted to the IETF.</t>
      <t>The authors wish to thank
Anders Broman,
Ulf Lamping,
Richard Sharpe
and many others for their invaluable comments.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="I-D.ietf-opsawg-pcaplinktype">
          <front>
            <title>Link-Layer Types for PCAP-related Capture File Formats</title>
            <author fullname="Guy Harris" initials="G." surname="Harris">
         </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works Inc</organization>
            </author>
            <date day="6" month="April" year="2026"/>
            <abstract>
              <t>   This document describes a set of Packet CAPture (PCAP)-related
   LinkType values and creates an IANA registry for those values.  These
   values are used by the PCAP and PCAP-Now-Generic specifications.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-pcaplinktype-18"/>
        </reference>
        <reference anchor="RFC4180">
          <front>
            <title>Common Format and MIME Type for Comma-Separated Values (CSV) Files</title>
            <author fullname="Y. Shafranovich" initials="Y." surname="Shafranovich"/>
            <date month="October" year="2005"/>
            <abstract>
              <t>This RFC documents the format used for Comma-Separated Values (CSV) files and registers the associated MIME type "text/csv". This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4180"/>
          <seriesInfo name="DOI" value="10.17487/RFC4180"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.richardson-opsawg-pcapng-extras">
          <front>
            <title>Additional block types for PCAP Next Generation (pcapng) Capture File Format</title>
            <author fullname="Michael Tüxen" initials="M." surname="Tüxen">
              <organization>Muenster University of Applied Sciences</organization>
            </author>
            <author fullname="Fulvio Risso" initials="F." surname="Risso">
              <organization>Politecnico di Torino</organization>
            </author>
            <author fullname="Jasper Bongertz" initials="J." surname="Bongertz">
              <organization>Airbus Defence and Space CyberSecurity</organization>
            </author>
            <author fullname="Gerald Combs" initials="G." surname="Combs">
              <organization>Wireshark Foundation</organization>
            </author>
            <author fullname="Guy Harris" initials="G." surname="Harris">
         </author>
            <author fullname="Eelco Chaudron" initials="E." surname="Chaudron">
              <organization>Red Hat</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="29" month="July" year="2022"/>
            <abstract>
              <t>   This document contains a number of extensions to the PCAPng file
   format which are outside of the IETF networking mandate.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Discussion of this document takes place on the OPSAWG Working Group
   mailing list (opsawg@ietf.org), which is archived at
   https://mailarchive.ietf.org/arch/browse/opsawg/.

   Source for this draft and an issue tracker can be found at
   https://github.com/pcapng/pcapng.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-richardson-opsawg-pcapng-extras-01"/>
        </reference>
        <reference anchor="I-D.ietf-tls-keylogfile">
          <front>
            <title>The SSLKEYLOGFILE Format for TLS</title>
            <author fullname="Martin Thomson" initials="M." surname="Thomson">
              <organization>Mozilla</organization>
            </author>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <date day="9" month="June" year="2025"/>
            <abstract>
              <t>   A format that supports logging information about the secrets used in
   a TLS connection is described.  Recording secrets to a file in
   SSLKEYLOGFILE format allows diagnostic and logging tools that use
   this file to decrypt messages exchanged by TLS endpoints.  This
   format is intended for use in systems where TLS only protects test
   data.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-keylogfile-05"/>
        </reference>
        <reference anchor="RFC4253">
          <front>
            <title>The Secure Shell (SSH) Transport Layer Protocol</title>
            <author fullname="T. Ylonen" initials="T." surname="Ylonen"/>
            <author fullname="C. Lonvick" initials="C." role="editor" surname="Lonvick"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>The Secure Shell (SSH) is a protocol for secure remote login and other secure network services over an insecure network.</t>
              <t>This document describes the SSH transport layer protocol, which typically runs on top of TCP/IP. The protocol can be used as a basis for a number of secure network services. It provides strong encryption, server authentication, and integrity protection. It may also provide compression.</t>
              <t>Key exchange method, public key algorithm, symmetric encryption algorithm, message authentication algorithm, and hash algorithm are all negotiated.</t>
              <t>This document also describes the Diffie-Hellman key exchange method and the minimal set of algorithms that are needed to implement the SSH transport layer protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4253"/>
          <seriesInfo name="DOI" value="10.17487/RFC4253"/>
        </reference>
        <reference anchor="RFC2451">
          <front>
            <title>The ESP CBC-Mode Cipher Algorithms</title>
            <author fullname="R. Pereira" initials="R." surname="Pereira"/>
            <author fullname="R. Adams" initials="R." surname="Adams"/>
            <date month="November" year="1998"/>
            <abstract>
              <t>This document describes how to use CBC-mode cipher algorithms with the IPSec ESP (Encapsulating Security Payload) Protocol. It not only clearly states how to use certain cipher algorithms, but also how to use all CBC-mode cipher algorithms. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2451"/>
          <seriesInfo name="DOI" value="10.17487/RFC2451"/>
        </reference>
        <reference anchor="RFC3602">
          <front>
            <title>The AES-CBC Cipher Algorithm and Its Use with IPsec</title>
            <author fullname="S. Frankel" initials="S." surname="Frankel"/>
            <author fullname="R. Glenn" initials="R." surname="Glenn"/>
            <author fullname="S. Kelly" initials="S." surname="Kelly"/>
            <date month="September" year="2003"/>
            <abstract>
              <t>This document describes the use of the Advanced Encryption Standard (AES) Cipher Algorithm in Cipher Block Chaining (CBC) Mode, with an explicit Initialization Vector (IV), as a confidentiality mechanism within the context of the IPsec Encapsulating Security Payload (ESP).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3602"/>
          <seriesInfo name="DOI" value="10.17487/RFC3602"/>
        </reference>
        <reference anchor="RFC3686">
          <front>
            <title>Using Advanced Encryption Standard (AES) Counter Mode With IPsec Encapsulating Security Payload (ESP)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="January" year="2004"/>
            <abstract>
              <t>This document describes the use of Advanced Encryption Standard (AES) Counter Mode, with an explicit initialization vector, as an IPsec Encapsulating Security Payload (ESP) confidentiality mechanism.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3686"/>
          <seriesInfo name="DOI" value="10.17487/RFC3686"/>
        </reference>
        <reference anchor="RFC2405">
          <front>
            <title>The ESP DES-CBC Cipher Algorithm With Explicit IV</title>
            <author fullname="C. Madson" initials="C." surname="Madson"/>
            <author fullname="N. Doraswamy" initials="N." surname="Doraswamy"/>
            <date month="November" year="1998"/>
            <abstract>
              <t>This document describes the use of the DES Cipher algorithm in Cipher Block Chaining Mode, with an explicit IV, as a confidentiality mechanism within the context of the IPSec Encapsulating Security Payload (ESP). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2405"/>
          <seriesInfo name="DOI" value="10.17487/RFC2405"/>
        </reference>
        <reference anchor="RFC2144">
          <front>
            <title>The CAST-128 Encryption Algorithm</title>
            <author fullname="C. Adams" initials="C." surname="Adams"/>
            <date month="May" year="1997"/>
            <abstract>
              <t>There is a need in the Internet community for an unencumbered encryption algorithm with a range of key sizes that can provide security for a variety of cryptographic applications and protocols. This document describes an existing algorithm that can be used to satisfy this requirement. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2144"/>
          <seriesInfo name="DOI" value="10.17487/RFC2144"/>
        </reference>
        <reference anchor="RFC4106">
          <front>
            <title>The Use of Galois/Counter Mode (GCM) in IPsec Encapsulating Security Payload (ESP)</title>
            <author fullname="J. Viega" initials="J." surname="Viega"/>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <date month="June" year="2005"/>
            <abstract>
              <t>This memo describes the use of the Advanced Encryption Standard (AES) in Galois/Counter Mode (GCM) as an IPsec Encapsulating Security Payload (ESP) mechanism to provide confidentiality and data origin authentication. This method can be efficiently implemented in hardware for speeds of 10 gigabits per second and above, and is also well-suited to software implementations. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4106"/>
          <seriesInfo name="DOI" value="10.17487/RFC4106"/>
        </reference>
        <reference anchor="RFC8750">
          <front>
            <title>Implicit Initialization Vector (IV) for Counter-Based Ciphers in Encapsulating Security Payload (ESP)</title>
            <author fullname="D. Migault" initials="D." surname="Migault"/>
            <author fullname="T. Guggemos" initials="T." surname="Guggemos"/>
            <author fullname="Y. Nir" initials="Y." surname="Nir"/>
            <date month="March" year="2020"/>
            <abstract>
              <t>Encapsulating Security Payload (ESP) sends an initialization vector (IV) in each packet. The size of the IV depends on the applied transform and is usually 8 or 16 octets for the transforms defined at the time this document was written. When used with IPsec, some algorithms, such as AES-GCM, AES-CCM, and ChaCha20-Poly1305, take the IV to generate a nonce that is used as an input parameter for encrypting and decrypting. This IV must be unique but can be predictable. As a result, the value provided in the ESP Sequence Number (SN) can be used instead to generate the nonce. This avoids sending the IV itself and saves 8 octets per packet in the case of AES-GCM, AES-CCM, and ChaCha20-Poly1305. This document describes how to do this.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8750"/>
          <seriesInfo name="DOI" value="10.17487/RFC8750"/>
        </reference>
        <reference anchor="RFC7634">
          <front>
            <title>ChaCha20, Poly1305, and Their Use in the Internet Key Exchange Protocol (IKE) and IPsec</title>
            <author fullname="Y. Nir" initials="Y." surname="Nir"/>
            <date month="August" year="2015"/>
            <abstract>
              <t>This document describes the use of the ChaCha20 stream cipher along with the Poly1305 authenticator, combined into an AEAD algorithm for the Internet Key Exchange Protocol version 2 (IKEv2) and for IPsec.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7634"/>
          <seriesInfo name="DOI" value="10.17487/RFC7634"/>
        </reference>
        <reference anchor="RFC2404">
          <front>
            <title>The Use of HMAC-SHA-1-96 within ESP and AH</title>
            <author fullname="C. Madson" initials="C." surname="Madson"/>
            <author fullname="R. Glenn" initials="R." surname="Glenn"/>
            <date month="November" year="1998"/>
            <abstract>
              <t>This memo describes the use of the HMAC algorithm in conjunction with the SHA-1 algorithm as an authentication mechanism within the revised IPSEC Encapsulating Security Payload and the revised IPSEC Authentication Header. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2404"/>
          <seriesInfo name="DOI" value="10.17487/RFC2404"/>
        </reference>
        <reference anchor="RFC4868">
          <front>
            <title>Using HMAC-SHA-256, HMAC-SHA-384, and HMAC-SHA-512 with IPsec</title>
            <author fullname="S. Kelly" initials="S." surname="Kelly"/>
            <author fullname="S. Frankel" initials="S." surname="Frankel"/>
            <date month="May" year="2007"/>
            <abstract>
              <t>This specification describes the use of Hashed Message Authentication Mode (HMAC) in conjunction with the SHA-256, SHA-384, and SHA-512 algorithms in IPsec. These algorithms may be used as the basis for data origin authentication and integrity verification mechanisms for the Authentication Header (AH), Encapsulating Security Payload (ESP), Internet Key Exchange Protocol (IKE), and IKEv2 protocols, and also as Pseudo-Random Functions (PRFs) for IKE and IKEv2. Truncated output lengths are specified for the authentication-related variants, with the corresponding algorithms designated as HMAC-SHA-256-128, HMAC-SHA-384-192, and HMAC-SHA-512-256. The PRF variants are not truncated, and are called PRF-HMAC-SHA-256, PRF-HMAC-SHA-384, and PRF-HMAC-SHA-512. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4868"/>
          <seriesInfo name="DOI" value="10.17487/RFC4868"/>
        </reference>
        <reference anchor="RFC2403">
          <front>
            <title>The Use of HMAC-MD5-96 within ESP and AH</title>
            <author fullname="C. Madson" initials="C." surname="Madson"/>
            <author fullname="R. Glenn" initials="R." surname="Glenn"/>
            <date month="November" year="1998"/>
            <abstract>
              <t>This memo describes the use of the HMAC algorithm in conjunction with the MD5 algorithm as an authentication mechanism within the revised IPSEC Encapsulating Security Payload and the revised IPSEC Authentication Header. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2403"/>
          <seriesInfo name="DOI" value="10.17487/RFC2403"/>
        </reference>
        <reference anchor="RFC2857">
          <front>
            <title>The Use of HMAC-RIPEMD-160-96 within ESP and AH</title>
            <author fullname="A. Keromytis" initials="A." surname="Keromytis"/>
            <author fullname="N. Provos" initials="N." surname="Provos"/>
            <date month="June" year="2000"/>
            <abstract>
              <t>This memo describes the use of the HMAC algorithm in conjunction with the RIPEMD-160 algorithm as an authentication mechanism within the revised IPSEC Encapsulating Security Payload (ESP) and the revised IPSEC Authentication Header (AH). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2857"/>
          <seriesInfo name="DOI" value="10.17487/RFC2857"/>
        </reference>
        <reference anchor="RFC5226">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <author fullname="H. Alvestrand" initials="H." surname="Alvestrand"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>Many protocols make use of identifiers consisting of constants and other well-known values. Even after a protocol has been defined and deployment has begun, new values may need to be assigned (e.g., for a new option type in DHCP, or a new encryption or authentication transform for IPsec). To ensure that such quantities have consistent values and interpretations across all implementations, their assignment must be administered by a central authority. For IETF protocols, that role is provided by the Internet Assigned Numbers Authority (IANA).</t>
              <t>In order for IANA to manage a given namespace prudently, it needs guidelines describing the conditions under which new values can be assigned or when modifications to existing values can be made. If IANA is expected to play a role in the management of a namespace, IANA must be given clear and concise instructions describing that role. This document discusses issues that should be considered in formulating a policy for assigning values to a namespace and provides guidelines for authors on the specific text that must be included in documents that place demands on IANA.</t>
              <t>This document obsoletes RFC 2434. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5226"/>
          <seriesInfo name="DOI" value="10.17487/RFC5226"/>
        </reference>
      </references>
    </references>
    <?line 2598?>

<section anchor="appendix_pb">
      <name>Packet Block (obsolete!)</name>
      <t>The Packet Block is obsolete, and MUST NOT be used in new files. Use
the Enhanced Packet Block or Simple Packet Block instead. This section
is for historical reference only.</t>
      <t>A Packet Block was a container for storing packets coming from the
network.</t>
      <figure anchor="formatpb">
        <name>Packet Block Format</name>
        <artwork align="center"><![CDATA[
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 0 |                    Block Type = 0x00000002                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 4 |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 8 |         Interface ID          |          Drops Count          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 |                       (Upper 32 bits)                         |
   + - - - - - - - - - - - -  Timestamp  - - - - - - - - - - - - - +
16 |                       (Lower 32 bits)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
20 |                    Captured Packet Length                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
24 |                    Original Packet Length                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
28 /                                                               /
   /                          Packet Data                          /
   /              variable length, padded to 32 bits               /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   /                                                               /
   /                      Options (variable)                       /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>
      <t>The Packet Block has the following fields:</t>
      <ul spacing="normal">
        <li>
          <t>Block Type: The block type of the Packet Block is 2.</t>
        </li>
        <li>
          <t>Block Total Length: total size of this block, as described in <xref target="section_block"/>.</t>
        </li>
        <li>
          <t>Interface ID: specifies the interface this packet comes from;
the correct interface will be the one whose Interface Description
Block (within the current Section of the file) is identified by the
same number (see <xref target="section_idb"/>) of this field. The
interface ID MUST be valid, which means that an matching interface
description block MUST exist.</t>
        </li>
        <li>
          <t>Drops Count: a local drop counter. It specifies the number of
packets lost (by the interface and the operating system) between
this packet and the preceding one. The value xFFFF (in hexadecimal)
is reserved for those systems in which this information is not
available.</t>
        </li>
        <li>
          <t>Timestamp (64 bits): two 32-bit unsigned integers, in the same format
as defined for timestamps in the Enhanced Packet Block (<xref target="section_epb"/>),
using the 'if_tsresol' and 'if_tsoffset' values from the Interface
Description Block specified by the Interface ID.</t>
        </li>
        <li>
          <t>Captured Packet Length: number of octets captured from the
packet (i.e. the length of the Packet Data field). It will be the
minimum value among the Original Packet Length and the
snapshot length for the interface (SnapLen, defined in <xref target="format_idb"/>). The value of this field does
not include the padding octets added at the end of the Packet
Data field to align the Packet Data field to a 32-bit
boundary.</t>
        </li>
        <li>
          <t>Original Packet Length: actual length of the packet when it was
transmitted on the network. It can be different from Captured Packet
Length if the packet has been truncated by the capture process.</t>
        </li>
        <li>
          <t>Packet Data: the data coming from the network, including
link-layer headers. The actual length of this field is
Captured Packet Length plus the padding to a 32-bit
boundary. The format of the link-layer headers depends on
the LinkType field specified in the Interface Description
Block (see <xref target="section_idb"/>) and it is specified
in the entry for that format in <xref target="I-D.ietf-opsawg-pcaplinktype"/>.</t>
        </li>
        <li>
          <t>Options: optionally, a list of options (formatted according to
the rules defined in <xref target="section_opt"/>) can be present.</t>
        </li>
      </ul>
      <t>In addition to the options defined in <xref target="section_opt"/>,
the following options were valid within this block:</t>
      <table anchor="optionspb">
        <name>Packet Block Options</name>
        <thead>
          <tr>
            <th align="left">Name</th>
            <th align="left">Type</th>
            <th align="left">Length</th>
            <th align="left">Multiple allowed?</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">pack_flags</td>
            <td align="left">2</td>
            <td align="left">4</td>
            <td align="left">no</td>
          </tr>
          <tr>
            <td align="left">pack_hash</td>
            <td align="left">3</td>
            <td align="left">variable</td>
            <td align="left">yes</td>
          </tr>
        </tbody>
      </table>
      <dl indent="8" newline="true">
        <dt>pack_flags:</dt>
        <dd>
          <t>The pack_flags
option is the same as the epb_flags of the enhanced packet
block.</t>
        </dd>
      </dl>
      <t>Example: '0'.</t>
      <dl indent="8" newline="true">
        <dt>pack_hash:</dt>
        <dd>
          <t>The pack_hash
option is the same as the epb_hash of the enhanced packet block.</t>
        </dd>
      </dl>
      <t>Examples: '02 EC 1D 87 97', '03 45 6E C2 17 7C 10 1E 3C 2E 99 6E
C2 9A 3D 50 8E'.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="J." surname="Bongertz" fullname="Jasper Bongertz">
        <organization abbrev="Airbus DS CyberSecurity">Airbus Defence and Space CyberSecurity</organization>
        <address>
          <postal>
            <street>Kanzlei 63c</street>
            <city>Meerbusch</city>
            <code>40667</code>
            <country>DE</country>
          </postal>
          <email>jasper@packet-foo.com</email>
        </address>
      </contact>
      <contact initials="G." surname="Combs" fullname="Gerald Combs">
        <organization abbrev="Wireshark">Wireshark Foundation</organization>
        <address>
          <postal>
            <street>339 Madson Pl</street>
            <city>Davis</city>
            <region>CA</region>
            <code>95618</code>
            <country>US</country>
          </postal>
          <email>gerald@wireshark.org</email>
        </address>
      </contact>
      <contact initials="E." surname="Chaudron" fullname="Eelco Chaudron">
        <organization abbrev="Red Hat">Red Hat</organization>
        <address>
          <postal>
            <street>De Entree 238</street>
            <city>Amsterdam</city>
            <code>1101 EE</code>
            <country>NL</country>
          </postal>
          <email>eelco@redhat.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+y9+X7bRpYw+j+eokb9u1dShqREbZblSadpSY417UXXUpa5
SV8PREIU2iTABkDJTOzvWb5n+Z7snrUWEKQkW+5OT0fpTiSgUMupU6fOftrt
dlRWcTZ4G4/yLDkwVTFNonRS0G9ltbW5+XhzKxrk/Swew+tBEV9W7TSpLtv5
pIxvhu1JP55kw/bmXtSPqwOTZpd5NEkPImPK2bhILssDszpLylV4UOV990c/
H0/ifuUelNML9yzL8VGajVKclG2SF5V0yQ3KqkhdH1VajaD16WHv1LzKb8y3
SZbAe7PGc1w3h/GkmhaJeZaO4F95MY6rKL64KJLrA8NtonhaXeXFQdSGwWGc
lx1zPk3eJxkMxhB4mfav4mTkHufFEJ5Ok6ysksJ8l6XXSVGm1czkl6Y3mYzS
ZGDO+mmS9ZMSmut4wRcdbdzxm8LqkgRWd1Ylw6S4iUcDeBKXZWK2HxMEBwib
nf3dvV2CKAxKjWEPpkVFLaZZVcDDo2P4KxnH6Qj2lSb+p8ur9lim0Bkkut5n
HfMmLcvcLvfZdHSd5vYhLfY0H6VV0s/Sfm4GqTnPizTLvfke5kWZm6NpPzaD
ZDhKTe+imP7yS9oyWzt2nvYrWUZ3s7v1eNWf9Mm5m/QlTaNT4DT+NMHx805a
6ay/7ZjncQEv7bS/nc7cI5r06qrrbXhFr/5U5rCGTpZgR0WOuJMMoOeCUI93
/w1udzGAlnMYcFh7S8OcwVlKRuM4M2f5ZXUTA7b9kBfv/J23TdyExv3i3/FQ
/anUd51+DK+nRXpgrqpqcrCxcXNz0/Ffb0RRPwdIpRfTysPY/+yYp3kG+FL9
Ymf8n3E5AUzzntNce2lxMS3NUXKJGGegb3MG5y8xh7OLpDhL+jB8NfNmrh+c
zbXQrf9znP0ySlKzt933MHRzb++Rw9CXSYLd9K8WYehfabp/gqm8S6r2ZZ53
gDB4e32Yjy+8rU4KOBn2Ia3sh7RIStiZd3DKp9kgrlLaIV2Hfe3NfHv7sXkZ
41aa05Gd61F8TShUJEPoAlC755b1eHevux9g7HdnHo7RtP50o0N1YGK6hmNY
w1U8HRQeVh0nIzhO3mNayBsgHs/jypu7e6IzP0rMcYa/m63tfTu9Lhwoc3xs
V9Ib41EfxGN/wq9euAknOIE/FcngKq4I4FF0nWTTBEn5sMinkwPDJB/+5i/4
zz8h4tLqoF1aXU0v4Ogenz9rvz496/3wbfuHbzeEtkZ4OSDRBRKJvZ60j+BE
6wmqXSjJe6R12oxunGpUtt8ls1E+vAQCfhBF7XYb4IJEsV/BdM+v0tLAVTUd
J1kFpKfsw+FIShMbHhYuINjIfl4MTJ9vgoFhJCvxVRxht0DwsRv5An6DiQCZ
TC9GyRMPr/pwwgH7CxhpNINe4wGdnxs4D3B/Vi36a5Re4GqaGpf5OJE7x+Cw
ZYeXM04Hg1ESRX8wJ7BF+WDaJ9yFtUHzIodZjPGuSN4D2LJhCl/zCgwCAdZ6
Aesbw3/HecEnGn+JABBV2o9HJoHLaWYG8eyJmeJmVNMsrpLRrGWy3BAjAJsB
kxtNcVhcfFpWCIyoQqhUcfnOFOnwqoL2Nx3zOktwNhVMbpxDw7jfTyaVBStg
O+AczTSJGKIlghTbA7cBW3QJ9/vAXMwUVC1zcwUYgY2KGJoVJh8xZOEYjqBT
XHGawX2QEWDiEd600DUveAyoX2Qmxmu3H/MSJnEBa5+O4mI0iy6LfEzD666m
1MEkh5niSq7T5KZTxySA+yQvCZGy5EZRAwdlbJrbBcQhXPBolN/gy2Eej+Br
mOBFQo2nRTlNBoDBx/40DiI4OZUpr/IpLPoCNjwvCfEIOwcDGt1uEkArpu/S
hNAXV4WYBCdGZpjDZpsqHSeMjbCDxYDBAV+4UWIZIcnwMGI/dP/JUQV6mIwv
ksEA9gkAr6OYGzjqBJkCzmYMSCUQBZC36CUxfDmsG1CM7kEALywApuRaCjx0
Bukww12EMcawCdEp4GfsQNPTU8tQNmPgTw1egTHMKx6NaG7+vLMkwVnTqYcj
B9dATCsbJJME/kWHkRACOIAbuKRbBkkRzRXhlcMlBB3B/MoZ0M6xYDqRv/4V
IC78BVAexwOass4OZ/4yKYbJBjB0MA6Ne+vWYiODJApxEwe/BGwbAqHMCNy0
gwhReA0kaDqiedFGEBjKKgUAXCS0UgQnzgKIyHlSjIHNApI5YxoC9NPAWgel
WXn53dn5Sov/a169pt/fHP8/3528OT7C38+e9168sL9E0uLs+evvXhy539yX
h69fvjx+dcQfw1MTPIpWXvb+a4UxceX16fnJ61e9FyuMUv5hQ+gDTC4SJh6T
IkF6EpeR0nNCw6eHp//nf3d3zK+//tubZ4db3e7jjx/lj/3uox344+YqyXi0
PIN95j8BfLMIqEMSF0aQBnYtreB4Qls6FDeZAbID8PuPb1D4MO29b/6IoPyD
6fXhYp6NSwakO92xPKepT0vEuCu4L4ew11W4ODjwZ8+fIi4A60Qo+hy2Czmz
Ud5/B6OcHNHbE1z5JeL4ES16Qm1to7Nao7MK0BQwoF/aNsen1OY4A9rbhxmd
MnnS12f8+iwdTwCDai9fvaGXr4AtAW5D7wL7+pDeHgLWwcnRh4hrJG7BHUPS
1RmIj308DgQ6fUXN3Tvz6x9KBsTbC3zzMYrcISfkBuABZxFn6S+879SsbPHJ
o4NKZywZ0H1S5VGc5XRtAAohIbD0qmN6QiG4C4PXOHyOcugYVsdUQ66fKFVU
gCF//ZXf8Qw/4sH6X/ADh7H5p9vwbKvh2Tb1sAntt8y22TG7Zs88Mvvm8X2e
YR//3v7MfyLo6cOi5RjZtPPZJFncxnx4oJnsLJqJzCKHs2peJNkQbp8vO5N9
s3EbTJ7mg9kSmGzgTGqdXMdFStfdiNbQgvt4IJfU9pa5SIFBaujkAZZjfiuA
pcPz64H5g3esDKluvl59Gpdpn08oijdMJTqrcNLpgm4DuzfMvl7pJ0j7Vj4K
JU6TEdxnV/E138OOMo8ToBzZEMjuVz4Wrwmk1w/g/E+z9G9ToNvAkAwzIjKk
bSEKg9wC8gnpJfFYSjw65vt4NIUnN1fAFpqXyPmewdfQDDh9IKQpfrn28uzp
OgkQf5sCaGGDu0Sx4PpOimsYCRlI6A7ewaVBLOOMJIULZDH4HsmBu3iX+AyT
x+h5Uk2JawdO7BqYefiYmAmvJXUOLHZJPK6TRJT/rgAqJY4N315gv9NswKQv
IM9vUbJ8i6Iw7M2MSOFXTejjwzebhyxwNbApwsxU9GEJ9J3ZK4AXjdXC8fN+
BbJZB1V1KDhXeJe1hAfj88N8kuAQ3gmDHFYCdwCjA7zCIwqddrektwODOij+
nbYAZ+GQowUUqPYyzYDH1ssLvg3WigzG3BfAnwLXCgjoAQc+5E9EwLxGFDLE
eyEPDmwc8HR4G8OKdjzIIo05IDY3YRHFoWEz+A/uBlOcBIoKeHgQQIMpy0yM
dhPkGytzAZzBDQobhG9ZfJ0OibXuqLRtD2mLL1Tg1OA2HRJnpXc1ojCIfZVJ
4nJGnRc5CEmlCNwsmwAOv0sngCzCtAMkp9m7DO9g7qdjzlBkltubJGpm/SO+
8OUFoAkcWbOWJSUuhZ+uy8c+9JhdG6MwVeXFrBWlHTgn8Rz7gbgEe5UCkOjr
GX2HTyd4kjPgGXgC8DjKJyyUdpgyLWJ7YiRQJR8/RJNwBZciuHSAGQJprRRi
5FAbTmdSkBxIohIBo0RWbuZJUGkRCdJ0mH11OC4crKMDKlMSl+URSjzvDKdy
kvSRCt6FLDxhMNEBvEhAgCHtkRUfPbkYCE1hEOeGOUiRJdDpte66eal7cmBC
RpuPOR0Z4eEBKiPAKjgXqMCE/hOQzIxoh74yPzWx2X9Zs0xneXUBNCqthBCW
TpEB0EThE04cqqdiODOFcNhWCPQRBUG8trVuXsv+N868NCABGU/68Ca6hOP3
5psOYL54KX3CjFmcwiHWynW9YJBg8TpwlkC2LuEKEwLF0EZFDFxgacH7108K
OnO4/DJhockJZqMYrQm0oEbJw1tKMmHQkzaSzjGqV0qYxiipa+daSA1ig+tD
qMB60qoD4jTpZeUUlnjVJNcqrMiaAa2GKewHqrduTH4BwgyIky3zU21WLEWk
79/CrKBnIZq8VSXtFZFKlsOXiWcILxAmcwu0FhyBSz6SRG8d5f6pQfrycfMz
AcRKGBZ+cfZjIDVjvBYSukV8PUl8gZIqwbRh5XbdqIp9mJU3ipbe2rPCrj3A
c5gWkQ3S2YBEjcY9YJ8BA1A7J5igWioGjXdQhV4iuUS7D8ACNe+sDE8K1It1
amexLlj7R7GcmyIIjHSPVbho0u+W+j2MRTzZWtIZdlRXOChyAPOghSr4qr8u
mk/mAPF4Xk6JawypPSLDIGXNJiyUvwkJ0lVcMt1FzdQte+p2FDq45576O+qr
Azwo9ekxXxNz2HwNRy4v2nK19BlCNDuiZCgkXcbllbAba9tAXuUAN18MTh/l
EdksuUHtT5FWcBUSv1GatYspafZVLeM0mz2hA6LcvUwKtIytM41eQjPoEnHH
FI0z96JkOJvXT89evzg+P1ZVXwl3Jlz+A9aP4+zuRFQJVjvr5vg9fJ7i8hZe
R3ixw6SRYSqEP4cjRJpFgFCEQ7I5HPFplCbXovGk633AYgzr3dOsPUgmQG4G
aQl7jqKKYErEGl6RNAiQvRGMk5EVKFhIiS8P8zGe49LTOH1ljrN+MQuUYF+Z
Z+l7mLNw4fbpEWBpH3kH9+icbzX/MONZegk0oMoLy6XT6MeAk9WG2jXti+gN
4D9Ahjl8XwvfzDE5NS8phy9mUb9IWJUMmz8F3rjgDul8TwDxk7oW1L9W4b69
XRJDFu9FPiRawxN6ngLzWfSvRPMrm34xTdGiApInt73SVjgm7SzhPRkEkJki
3rQDPB9937bNP34kFRlT5vnOhE2alzUtny6yejFmGW6FLJhof1k5UBVbyL5F
H6J/bzdfQdEH1EyE+kx5Vjsz8rSJxnP/tbvJqStq61eVxQKY86LEwIca0Tkl
xii5rFCFgcJt8j7GmR8wyGtEgzeETZTGUktpFFm2rhVyeUBZymR02fyxIJOg
zenVrKQ1kOb2RTwDdkBVKyMrow7xukGWIm7UXnfM8/wGzYstJglAKUA0y5LG
xnrL1a5sn6VuCfplgERoyCIGFdrQLeFIWYriUJWyajdL3lekCF4TQZwtKUT2
ga/r2bmkWX80HQhbQT0OgMCBxCvE9iavTTtiUkAdQ4NmEFgOQww4qn5ZB+GS
BtQ1XKYFqoyaoBhFJxnx1ng5e3ZMhBjKfmxptt9eJP0YWAUcbZBe0n1VReSA
hPav6fgC9wNgRHtIEjZZgIHYwFRqgGtacce8yism+6w9KAZMG9DylxQoO2Kn
nlQddhoJprU8jQBPxqnrWH1H5BMBqIoVumciwjsUkuGaXDh8SFOs0mJAlwGO
Hi0cXUYDOSIh3UdogvN0LXAccFN8nYGyRWOSP+hqVH3OGBgBZAaYtbic0lGV
fSmDnkWLBxv/66+XZUl0oH32/KmlrzGq5+h40mkc0fEU7j6OhM+o4RLNhY4N
o/jNVT5ykiqRtM9X5H4Ajuupue52Nhfqlo/waC36+fAAc3DKZA90SpqJnFkN
lSOy5wJPBqUStWZI0ilYSLvDLdv29oz2SrZB2MLqCm+4K+q3bIlTAwimsP2j
0cwz7UaAH/Q9fIrakYx1bqYXUgTq3UkHJct6gmQRbotHg1RZjOeldDfFOBmk
yH3IMaVJIQ8I641ETadESz1l4ssqETUnORSEALP49aHdhj3uenTOmHabn25l
g/mn215f+CxaYpK6089D4FcNxwWf+en33U638anX9ovh+PZtSM7Y1oTNIgIK
vl8u4008/Cb9wXRcR3Fy2S3UgQPYuP4oLtGIIw49K9yszQI890H+RLGKuIEe
DWWheXVHo7V8DaCw3nKNlukm1k6Onq4TcsO0gX1XpjAK5A+zdnz6dP1TKKTg
yQcD48C/oRv7b/jpdDqEj/zkXv3O773C8Jbtj33nMtQOp6O44C2SHUICKP5p
d8UB2K6RhwC496PkvQ6qO5ihTiZlEpWH+07q/gu4l4Aj8jZaSYtlfMVNCzHY
MrRAMp2qMmdVMlMgIHOsByFmQSmUdsqGoKJIr8lLQJTtXrcR4QWqOSxbSNqb
Ri0VIMmrN4pLvvqkrisCnDv7NGS6E4r5iAYTMh8AycKnMLy+uz/i3RkdESVu
w0XFEw8jF2IbGSpRo69IJbI02UEBZ/KL6zSfllYRUTcWR2xtql975PZ4CZMg
nysmWmzpIrmjfiIiy5ShfMRa/dLzVsknFfqq+B4laGlEKzHq+MlhzqgxSDjc
TvQ6fOCp+mgmgLpJUTHu+epZ8TKboWFYaCZ6M5EoQLoVuGhaqLHhlmKzgrfI
VYg5DfUWohB11zqZhQtS04i0hQ57NK0kpVNC0oZoHT37Y1RbmllLQdrNZuuk
3yKWvHT2tjE+TNCTDbnwGNgbIL0ddPXx7La4PvXlywXe5Nl24aEUeqayYZ7k
CxJvcBAxv6IQJDpEZ9QlHw0aAoRNIPmJtwC7BYOkIkc5R3rQ3gZ9PRFPIzbY
BQKJtTFIV+y0RrZzIPfnshUYT0PQhy4i67spogj1XU4nqA/Ufp5Qa1+fyu2i
WjsW96Ud8RoN4AJIlNM+ygmqSTVs3EHPCO8QMahEFmKT8JqTzQnaC2yZLWAd
k7pF8OPH9TpyWwijmhwOaTbzdq2GTi3D6NQicaumI7DiGExdMGDhUHBM2BnM
HtKruGxE3pQ265ekyAmuRSJW3vrUQJSHEfpXCVrT6RR6XPLcMnR8Wq28jGTU
At3uxUNRrd/qxFqfYcwGTjgzSorYd009Okh2buv+tdk9xc7C06PQ+WI1pHBN
5IZAalnuWjxkunvLPDgCuUYcOVAjKQgttmKmwuhbokdFtIHm/MX34jrdga9l
YHZCWexSE7jSoJIHDe5mgTvNE95FJm28oUQXzXAK3CosI6FpC/rT3Al90lId
gpwfg8+g4mrXhnQURFckxn/P43zdynZkmBWTKdLiHO0fatyAo4iqv36Rl2V7
Moor0oUOR/kFEW6eBrSvm0l8P2uPBAgUVQGBq+EwpgpouNhpL1Uh4c6rWGgY
4+DcdjxUUHee+yNDDLQBb1ProxP6Za3KAISnq4yo8CUK4uwzm5BbHJ0pdlfx
ZsXIvVZzpFs/oM/Yq0YGJPdpdPaZsArKudrFZnurfYEOLhQeVMzYQ6o+bVoN
BoMwRSQPkcWTJGcv6yiBFk8W6kNoUl+dW20KPGexJ9D9Id7gRMeiOQuDuaeF
IapZGO7g6wUXNk9B5oZXtnhZXZIxRl0arV2S9Zhw8anzlqi+Yr3F9HuBuPIv
9pjjhetcT8JRCCZz7pTB2JEjpmQVja0kMnLeW3jE5+YX6RrxTg0n6WhQYYYI
dD4DfDu57Q9HEg88ex5oKW39W2900R/XvqW4FFnn3Cc+yqmDzcCTfwMm5Yn4
MNXBgLaKqHkIZSftIChx4z051ywiL6mOi3uk3UQOki6CUgiommmLxOdmImrM
gEb1PHtc6S4BRhRFXpRPGMY6ALLaQL0mdU0Vu27RpQ7MCXmGyCxllFJHiDxk
wt6c+5R+gVuCxC3Npol/16cgHIQrpdCvcKkaWcHv5CHFxlim0S47XDNSvJNL
N/NVdRhMSS1SoRDc8iie7FKW4PxgI0eziDaJOSG8q27fGDtbEIaARgjXSUMx
w1HrkfGVvqrwHChiCA1GmohbF0sfRr/MUUnI/njK6JNw45TwJRop8JCl40QY
YhEHYczowlqQCHDWcRI9+VET35oTzgNToTNAITVzn5+cXu8gHsB/9zyvEvHp
jDzDGmEWYtFt36JUSXdllUdo6DeviVnwl+0c2YhZUD+2gNqLN6FgJDF9KFnY
jSCLlMVxJn/TknGRySfAcvWYTRp8G60yz7MG37xF/uISflmHCR4qFxcJOvsh
irzXE7j8eDT7pT0s1niCKmw3JZyy37kg33zfDvui8Gs4NUCmlT4sH/sJ+pmw
lyAqdYhZt665dcMOI4vQJELjSISzG+IaqxrgcdtZLJifAfpuRvMfDG6fckdj
ijhuz6fZTgpoCkpBRcQtISn3iEf53GCUh1By0Y8vi4Q6fftbyFU9pM5/UdhH
wH8u+dmo9/AJMR9fbhV3/ZlbBfx06J88IGL87K493HcOD4NRPjp9/XV4Fr33
gkvQYtPN4WHVpnpoVWWq8jwnI7kt0MUKUCwW4B0Wj27iWVnzpfD1DUw9QML/
wArtDwyGD7raD+al3mKk5UoG3xi0vdWAtCn/B9qnb+W+hYdd+L9F8g9mBnOz
jVg6/WC2Hu/vb8C/Hm90H28/2qJ/b3vftSxTumO7QJAJnsVOzXzIEXsCutWP
GH346wHF9WbV16v78MSfPEYrnpODZBMNFr+Psn451JW3Gi+Re2I23lY+24Kc
nXd3q3ZGVtDBSV6XmGDj69VNmnbDrAWo4aQV0o4lj81358/a+8IJGk+zczUd
x1lbw4A50Q59XKGPh0pYcMnm/VSjPXzdjEQ4vUgz/LhM0LpXoQug3JEUrNJH
e0o8TGCcalpk5t8NxspeJtDd2urPxc/Z6jqyQ3+FzcdQHe8dvHmi2mVSePhM
UEYSreeSGNO3/jxYkJJlC9db53TnAH3MzGN5YFZI+6nZCSSmy9foIp7hnk2L
SNItlBjOfCrGpO6j9tY2XcMsal/kw2lpzg9PAQuqIs7KcUq+i/+GQOAQGfKg
R1lHIlinw1+Al4kB2UCwNt2d/b3Oz9mJcDioQSYpV2MlyHOks9JZgC10uhhZ
MFTWymImFO4HCaDHaKnmpwE9//CHP4TaJd8EEn4eRdywtC1tMDSZHkTn1Wp0
+o2KZOSjopoFktkq+Zai51ao5RKNr5A6VomQopGVUSoaWClZ2jsvH/jKmQ9I
zGAvf48nZIsEhhyxyzPqG8iw6N9/orVsY0KOZFKpbaFOZry0FkKwK7VzcYOO
OVL3LVmqqnpbgW8Xq1MlLicbbMCk3LtTDgDEbDAYOJ+WSfSKFklBWDOrIxdN
ehmHKUhAQgxU+bxVHz+y+klMuujJTshU/o/jOkMU83nPvwfXOeftMr+bhnfT
rJ0ev1qvN/+SnG9gZlry89vgfGvcFhMqj+eqkbQ7sV4hblzFZU2jzVwC2VHm
0Yjd7+3JVcqjImnwgWYgMEqzcpdixw03AOqJwTzcE45rTO16MMRxYbRYeDnY
adC59cKb4zqN9a1FAbchd1MdMSSqgUyMt17RvN00sUbSXsaXyQgJ8CRVlT3l
3mHVHn1OGnjPyQUNLnGWTqYjTyniGWaeMOW+QbqI3xMf6vnqC20kg0kzLQRG
bDITgmipIEE+vDibN+Pxw2zGBYCwsNbT2/bijhBmgNagfCcI05fNUDbM4/+d
IEzb+ZvG94a9ENjgJ8T5Phy2fxH4bv9GULgJbA+HwreCjj5YBr6aCfWgHs8z
7zDRUluj5y6c1AyooSnA8pReLAN0stNmzfti9gGZ27qxxwO8JgWQNF5LDLIL
hzhAV+WT3qte22rAG3hToxMSpJmp/UYy/sSeOttmqrD3pXUcWLBbqACvIbpI
1MA9WTN5kiHqDoAy6eDEFWNgX5xllKSAd0JcUOHzIOKD3RJE8KfPAUvwwu54
rABC9UCEbHrAHlvLzNGcUukPfBKYj2F57NjOLIropeALoxW5eqgvNwmUTj+E
OUIGmKFPMtZVOemq69Hia6O0AjapzSAwG3BYh/LHuvXjUD/MSDKhySH1Yo3E
k0VU1zZdk0yiVM6FYh3FawS15JSx7oZsqxRFZLGNzPMTEMnJmeUS5TtcRLBg
7lw2QgIMrUqdFiueG6QnydmMQsMkGCGYkvpDAmpgM+LrPMW5o1g/4hSi6mEW
+N9tkHnPeaVK1xR+5Ql+lUTqR5Jxiozj1JGb1YZnYVS3E/kvAuEUkx1Q8gnh
KT08RU0D/NVXsobD3SX/ARyfFI1OLqI36vNNgiqZwBInwbmOmnre1+wM7mXl
uMjRVu7mRxQno70kRO4hm02eCORHKYii+UpUP8A0ADeEI35MrJ/Rye7utcl7
V44P0UXR1QVpR1Ihe5cxpVyWjIAbnK1TQy0qCuOBO0OIQdK/Ih+c0ozSd7B3
yRhjfjAIPRnYnJ2El3ZOcqOtjePinaKiH9ZJ4d8Ub7JiT38kktDKuqVK0PlI
9InEScxv/t6Ot2CbkYQmwiRFGghBSbEH1UYpijtTeYmnZVqQ35HXR0iUoI8I
I0wAYcSk2CcjvMy5AnBn4cHQhKiUQnEKQo3uzxoFlZF1js8+qlnml2STOzDJ
iCNpop5HctI9JNNcpH5+xpuCI9h4oyUlILKojYNshbjUqjvOYffTCWKiCrAy
Jlu9Od9g4jE7RHdQr978hbjnSYA6zoDHj2SR5X1XKVFer0THym1LJYSlc4BT
gFvs7azzyTxjkz87IHh8rfMziTVxp16f8IA45pZzznB2XqHv3E+TkwFfnPTe
93NgfwjqtxOdoAKXotlZakdvDQw2R29aO0l7zagzBbPx4twBOx2nhTcYBmbD
w1HcZy6fv2H2qUT3KfIIolPIr+zDjh+1yy62HgchrcRt6zvMkw5S/5vj0xe9
w+OXx6/OzeHz3pve4fnxm/mFOV8SnaWQRoIcv+BAL2+F4qXRwTSMzJgcUW4h
op61JItvB/bVR83iJNeEMEqibPBt0Zp2qR7O3SEupTEY9lf/mhE1SmNDCuQR
xpwDKzklQpB5LfS7ju2UA47Ez3bWFM3qUiipqznd5pQOotKEw4EIozYcXn+0
5kejSIDJukM7CYMnqboQpTauxUsnHc2Z8Ak8/0ppJb10CV+bzfebvc0j+KfX
uOr/iWklF81kViXt1xTg/DIGPFowjwebSXfLn8nL+K9Arb6XyHEdyb1Os/nX
DzaTvWXpR+/082FJgkv8UWpw+xY/yEw+HyZbO8vSj97ppyn9qP6o8tu6Uc/Z
E+7Qyf1m8gBn57eawxRJuFoXGq+4O9kYJFupi9oWr69a+lKW/MRG6gVXNA6c
qlpIeWa6mMoJJpEiHQB9utNGLYDyGys/Zz8XaL9ewWAHR6DXRbByCfUdr2Yt
vVvI85WAWmST6MonYvHQhhKk068o0IeFEJu1iuTtywSmySq96zQ2z85PkYt7
fg7/pQCt2HG/udGczxzIj5craQomRcrpUI3pnR2enOClL9HxFKXK6jaQqXxH
WhVA2eUfVSis7CMjq7HlA2wkF2UbcRBbtzlACt6GvqgXZb2xJn5nFmFKxRIk
L4MDlwXrBBAlG8Cgab+lsW9+72hP5tBrGgRjaoaYK3sxQhTJEKY98sQIJ1hQ
H/JUM8Q0qBnsKKRnUGFPVbj1a8zTgGB0Dq53X+Vkl0rAoXcnun9a01u1q5wq
tX7BLshTO6aXkjwFw1IoJMnuCWl4gPUPbXDAyHR7W0+3D3eOrK/QgvC0lFJs
TdPSaq58P3A8A+jwEku4cqiOE6wvHSbm+Je2xqATq66zjW2Q2VUyLSQfHeYK
FbWrlr4yVqnxVY0dWB4B1JKMvoICnl+F51Y0pg41M401aFKUrehlGcJqFdUP
Gz+hjL5InbzVAqHaxH91kVKEUKOn+J7Dm0Jm5iEWRx0+5OI2aaI1rmVtb8fl
ra5FYbFwPnMzFcW+zfg7b0S2qXmS915yosgsuElIn6nxo0wea5iNMYwSAGb7
xhWL1s2lD9YsvXCFDCX6APMUyre1VcNo7S7eQ89qP+stJgIUy+qH8zkS4RKb
NISxCKFGYRpPeTyzcZi1DzHfEObh9SVhdqTz8xl2jKehk/fBZWJVGhRIhshE
ERtDUlSvY5omP8iD9fa1vNBE6mK6k7y5UDCoU9vhwnw/C9LyrEmSakz96ikF
TW9U5i1T+ho9Z69lnR5qffuilQ4i4g5Q+dtnsHg60Eur/Q/yMgl9wcXxnMpW
DToID6ueGkhAtSwsEtteqNecKT72bTEbVyUpk8YYc8lq9bzwIwnLA+vliQWQ
4rrDplnj81jVzSZShmWKYQuNQZXklW9DoEW/CCP/gNqbgo5ic+wDq3fOnj8t
NStRSIiJz4ko2qzLAXAhLZPaF/h+E0BzIhmrB4DXHNg8Y6sQK779LEUUkc1c
xdz8WhJEjilW82ERj0vRdmm2BK2wEyxqzeY84+QEuLuaY63C2fQng+l4st6K
bFUtPpSWQ+LV2DGxA8EJSTej6QnSItKr66xWV4uXWkgaEKJU8Ty93tL8CVJC
SQjxIGUbM1ewQksrJo6oaHJraGV2XDhsGEWN47Fbf2LeMCSjxp3WaKna3sE0
KNTtb9MUyAA5++XaKvJabZo1AFPL5SNHPTpjTpj15SIumYdgjhFTS9GMlGUj
1yIxtIX7Tf0qVhLRmQijBshMCTgiUplTPn4ZOqP8JIq2c0trcQoInbRUTIuW
foMRST3frsW5YwT7ZB9r6e6CM8D2CLVBBFrDEFTE6E+o3lriteOjkVM6Embb
nIKbDpJ4IPgI+UScdo2f7s2lwyBzh99FHZ+VJ4wELB6adjuCqPmIZAv0eyjn
u7X6SAw45+Bf61uLOsnSMR40Ay4e1bAU/GIsRq6QEN0oveWjIUWWSJrDcxHw
Naj09M15LVGMU7bwBYyhS93SooPFCVRRm2rOiBa5FdBMaHicDjdTzw85x3Q0
gXDbcywEjS99jl8f1OMi/Vpvfetugq85xms00Ld0n7ekD4EcmT/V5sJz5JyD
GpCGN2INc5H4oWHOefRSl0BxrrzaEje59kvCZtQ0dW9y4dRrC8PzlUUeXdMN
tdVDrBUAk8LoGWCyh5voHmrEtMUMATH3x5G7Ni9UrojiesI/wz4EIYN+aMLW
8IIHi95mPm1OdJ/tVObGznx/ZuY/ZMHq5+Hzvi2PacY2IaHizzl24VKjh8+y
GCaYcbKPJ+5oJu8nOIB0hBBAAqhoapdNWpq+Fou0+Oba8k25oNuwqes2Crtt
mAKAd80m/LRAt7CBdhgQHwGfK+kz/cIp8zJ7q0EbQHRErzMJIZ6HZ6nBkeSO
k19ellRfRYVeawyKVPkFUyNzc0ppBOQ7iaVucRj/uySZ1DU9soLonIMH+Lt6
ezxytl6f2Kf1a7u+iHUKrg+uMui5hRCur5bmYoYmPPymrtMpraMKrkfYR7dp
XkE8tNWez6HiA1LlRon2N0mVFZUjj+ip4xqRWj0WNWqL92jDANFi2hmPRsLG
qY9RQEgjTTzb/nRyGtmHn0VOI/7zU8lp40qUh4c1LFjkjRPCpOarLLs5NSNP
dg3zR10kQF7XKVeJiNmiIYne2PQ+SqWVG1R2tCRbO4KgRtJLjyC7aBrhqtCt
RqVt7RBL4E77V5YCFb7sdkJ3vDhB1nn/3MXD3ng4Q9mBGb/YHYPOdk2kKxru
FHeEifl2aKoG7AhLI0nhDktbxBxgY5NEkP8rFQhFvUZaPVGSEOGDiQSxKf5p
TKRaydFWob2Qx0lAFfgcRW6umNON9DpOOSlAWSwlczkvd7/qFwh81pZY50rV
994/lrW8unhrS7t+MFthuKqEtGKjvIS/txe+BuQs0E8Ynu40NPLCVW+1CC2L
XvWn6wJBg0XcJRIUN8BLBRNZ3b7tRRV3TJ8ZxIHi3zr/iLbqPpGW7/f3zCmg
Ch1ILOswRVsX1o2dZlhnvuibHwC/SnZ8aYpw5B0RCOj+5LqYW9eexa7k11wt
X8mPdafF33vpP8AqMF/gj6fm7HQL1wzjZ2ffnR2b7mZna9FaFb3CPbdId9c9
99YdBX7t99hvyVV2n0WjMgeTyX6/2Xn8uPMIF/nzT68nKPOX5TQ5YLISqz5H
zEJF0pZMI7XSa3qDXLkqThZxN/Jyw18XZsv85i/sMb0sDfCvfiUtTOC5vJYT
Zw0Wk4/6WVPcVuTn5xTTE3s8egUYrPO61vuh3JRlpFluUbCmAtmey9eGl3LT
h4aN1xZZh5POIwMs+t25tGxrlMTblkuC7Vq3NT1c1lrPTUxEHbQNiaO9g83J
kVcN0ebBySJKMeaCNDwzLyfRE9pNgyoZRJm1VlXT9QkztCWNKJstu5Q/EUd7
0tVL32JD8M0p1upA2k5XxKG0IcGRk62dK5dz+bKe0yQ+BOsX31V2mNMp6HeF
Ue/3hGqN2LyArAG3CtSosYIPF6RpKEkir1uUP8hnexYA7EJMvOSFv0ZjVkHq
Isa02JnhbUX1q8SWsCfRL2vOke3CU/IiHLt0+Y8pLLspNbK1QcME0RT3gyZM
sBtXUdIdzWR6S601ygsVY7nmeXCoTwCDxPIQsUUSAVPHaJUf1XF7Sw92SfQd
S8pu21r0WQPq8HiFeF3EvheFV8KFMldFDZXhsL4f0LuUhXcbZuHTG3V/cICH
sVFfbC0BTEvmnCBtDL2QommZ1Puhncka+sjEUiOpmWZ4aMUv3ubc9MpkGE2n
u2xjAbn6cKSjmxp6KD/vFfNAaw3re5EPJ2Z5RHk7WZa7DXtCeo2DWqHBSyzA
8qHCnC17+lXn1lvEmv2Y83ZUS1YVWZxFu1aC0y/tbSyptFlgXD5Kg2cp3nL/
Sp6lc66l/NO0wP/xnqUv0uxdPX+W/94K1g8/k9CzdP4HlaMAkWVNHs6z9Hcv
yjqe/Ga9KIFcqcy8jNT9PZwpl4zPomf3E6pv381NzR7cu+RdVq5QwoXhU6xq
lGCEslsOhQbKepSTjjVgKVDOYCenh73TtgQvRB4deYHeEZoQeD6h9L+dtI86
aVJdtvNJGd8M2ygM4oRwHrI0S3O8pVFBa+RG243hb5sYpGOaLPpe+lFMBUSZ
W4nz9tpGRn0a2J9KCM8tBernIQv9jOP3lJ1srupAWLSERB3mpDkxQGT8cp/e
a9ELvu8DB1XyLvGWeIZlVAFUeeE2h+Nbes6EQXpMN1fgtsjH4h/q5hI1lIC5
gyYwqgL3tC+iCUwv32bcvlkJCO/97MmLlIHQDFO+YqZX0QXue3nv+O2evN3F
BHmPwtcve4fydk/+7zo+/u5E3j2Sft27coLsNj8N31RlgZVq4NljScjnvfsF
PT3g6aZM1r0CfEJzD7zzc/i5XHxhR6Qe7S6E3GW/HCUItO72/BxKNuLhi525
2XvK2e7uou6r97p8ChgJeyjcy3mwpXEWAxRk57v7y3W36eWdrqFlGlxBM1Vd
KtZ9mu5ykFynfausjVyhZ1Qofa6qMqmuNlFB+fMRjfLzq9Nnb3/tHXUPj/ce
7bYf7x1ttnceHe62e0fw29bu5s7Tx92tvad7+x+btJjh8XF6zNqx+iztdQiO
24BxTyXmD2n7WYrweEGVJHpwe5jDPMuYUOELdFZD9/noVULsR+31MyrteYwy
aQbYbhFoAbSUiniYoo8i48Mp4xzTmQwqOaYlPbkf0gEtxnH5TtKUBMoiBg8X
H73Mp4V1wxcF0Mmp9qs1qNnI+b65uYzUCdLB1DLt4cWphJhzCPi5MkIl2/wR
Q+8tvwcCgZdeu0j8FNv1xVpHBlmIWx6BTQGFvZC3TiVW6rj0l8sR4MYqmyQ+
WJBRO0Q3OuiM7LIzG48vodzqNm4z/E9tutFaSDea/a1qJb68BLwKPG41PHoZ
Dq92H28BhdwHAgwS+O6u/f/m6kIc3PNwkI+rvcDqOLh3Ow6Swy3c8+/VCX1O
d+xjIhDzELHg89pWWTRk2ItGPhgjwMLIzGV8vCsWwqfNeBhg4d5iLJw7dIu2
6sBsbW52DzYHF/sH+7vx9sHm/mD7oLvdfXywH28lB5vbjzYPHm3v7Gzs7VCS
GalhvwbzvkreryOerm5tGgxtAL533+zvmnjbbO6bwTbewN3HZj82W4nZ3DaP
Ns2jbbOzE+0sQgLhSDw6JE8CMhSKRs/11gaWpb2zb9bgk3W7cWvwhJjsFqew
iq/jdESFbxZDZHWT17OFk97cMZu7C6YrTJI3XXly1+nu7biJaljFvSa6ZbZ3
zO6eefbMPDs2j/bN4555erhgusSbeJOlv0MCr57td5HzUg9bqSuqe0K5JdBP
F9jqPFt8z3EqIhmuFsXUFZXZJqdX2dx8eTEpm9ckHKe3KnnirSs08xSulqJm
Xa1gRhT7wU4QOeULXlb4yZbokgJanE6sKufktdpgV4kbkLT8NvICxLMbFuiA
P16jDC17eOlQhbRxivWZCJ5ejy1v8u46VMEQP3aflRIk0X38aLO92W0jem8e
0P+A9zlcv8/i4SZavnaV2dzaMdXS3EK3ZJ2wYF5md6O7ubXDPBZPW+flZxWm
W0nEPBQkAxBj+OLm/9fek+zS03GiFZM8WNmy20R069+LGYkDK1cluGDV+359
2YncW3D2SPrxsfQXvtCbcRQHMyQv4QH49uW51ufTSJPcpgDFex3TI3HYalCF
R+sCcUINuvZbcLIp7DJ1nm/GxeChgzhXZffsUD9hDjVvSsjjolP/X9auqmpS
Hmxs3NzcdFC66eTFcAMbtrFhiVE++NcvhDHWLyvNyqnNdIXr44hYdkKDWx3X
AThJdy6VUpNuWJOh5dRgAZILXBKgIyv+xJUaqxjOntDloO2SiHMuyEtvdb5N
PdV6ihasS7Y+ww1t2nqWbr295wcLN1+kYT4cKypZkN0GU3xXRYzQW0HozhlQ
+Z3P2ASMouQDpJRt6FiK6YwMO3Y570ocnDrmGWj4WMqZSLhWr9b+gd17evoM
o7lmVYL9SNZq2CI4uy/RhKXpXNRNLC2dfyQFHjCjJsmPAG17E3JZfW9+/PFH
s3b++ug1dEX/PUD8kOk5/3QLSHZPd7Z1Vrd+Y2QZAve3uICW9/fF5BIDbDud
zvpSnmB1pepPSI1mtrZpmZRiDRjdzmZnq7O7QLhyvkOsu/DTo3+G65B1rdEQ
dFtzLFS1cko2oFyozRT+lNnSyPiwsjHlcVPhV+sFrGn+2ENhUZjmmtOqUV6Z
dT/dl6c7sDnSiXgNKBQoI5o+RrHJy+v3eV5gn+AKZTVJ/sGlB3WReH8JxxRU
oXTxsLKpzwoE9iFFYpxpvqY1YaLWRWDxNxPjNZ9RYLGq2LVW5bPDM+2c8t+x
L+yA61QjdWvJDJq9CpLJxdvLUTwsa+l5NVM7OTgs+ngtLL5q+6JCjotP1M6i
q1KUdIEkaDV3DcxqA+CZJRXQY0pH/hhhKwyRJEyyTh4aqcpQclxaXV0O/M8F
+SuQ4H1BvEMStKdzrcr3Ez9p6jz3YmdGEXWOacGoco7n8fiWNAtibefGRs4k
UgaBu5UBETTZwEazcgCiDxi9d/37lkgcXMRPHCJOpsUk11QVNZVm/W71ricJ
CwewKDuwDC+6W9uLUGPeH9VX236WQs8RTO3vc5WaT4s8HvSBrL5Kqh8r9DxB
woOS4Gjtzbo5ffN6AwUd8/J8gRbv1fH5t8e9N+aHVz1s+PJ6y7zq7m4aVf6Z
786eRi+RyTe9AVDUpFhAyERnHR4oUVXfQfjTqPYF4p+RkiMVS4G+EIjH8HPE
wK0dEQIj/P3PC6XAomGBxcMtEEt2o+gyL+V+3gL3gXfQBeLvusCTOkrWIByT
HOjNySqtOOin8uT7oFaQPfuizvLwgBwi61DzgsLlU+fFVd/1MppmGA+Q1can
KsR1fJvv+EkkcTnhwsjNcUm3Mt9o4Xwb8cWjW9713igrzFOTBlR5EBGJ+T3V
UlKP2o9r43F5oQbGZbb5XLrVuyxgaRuv4rTIL8gM0SvTeOPP+egdTIf+HifU
5CzO357G01G+0opWjqeYG3fjaVIAd7LCCXYXMAzOAxp4BfaAXsBZHJ8632cr
lIdO0GiaVsouyRCxYo71ORYjAdJXhkzjUJEVquORZVZtd1KrgI3gktMUOGBW
W2ggmw1gIR36vPNky9YEDvOVEDpPJ1Hgaq3ZmKmUQaHpqWyx4yy3kwOMSCXB
SxDY1QzRtKF8I+3CR4mwXvgZeimOJ0V+zS6UnCTb84tvwaRuohy5kqQCIvST
38Ff1v4Qi1j3dnKxTv4vSDoQonUN6YnzZyYV2QLf8o6yOnRCfe9OUpQ7R34Z
pAk3UPrl9C/OocJ5ZD/BWU4zyrtMp3zJipS9dv3oeAM4FhPn021nxWKcMl4V
J2sSLlPps+Y5oCQJmjwmcMW4IrGL4vFR3SjJQzOv7KmfO1Xz50T/8t6Ye1/Q
o+w3640Z/gTe4Qt/vrw35tp3fibrRc6LOhPTXvCPObcy2MI2bbM0z+faCz9D
9m0z+WyYbC3A2EP15RJ6swRTHi7PZ+NMXmvM099vJvtf1FcWf2Qty8uINXXy
CXXEls/kTj8P53D7uxPyPEx+I4S67oQMHJl6fzUzZHdyP27+dGnduNudkhcy
iHtfzBk5uKnu4jZbV7s2hENWXglWjEUTsXNADLyIthWKpWwRlPwXQaATp00i
HjhLRA+73IVjzfP40HBBVaB76S3WWcu9ICBQWMya1pWibNZVn6WuOizxpD78
VBFA3qwqk7AkI0F3ZFSo+ldcj0A/HcwlTaCeKFUE7ZK7f70UkRj/uICBL1uu
7IUkxqIqLjD8Aj1Ny2VWYeMWOyBzFQh8GtTEUFjErlaH8tViS69/3lAgg1TJ
KnFwjbVFLhIkh/TzKWcfnGbaB5ouWS/rl9KKqYU2CCtbyG6vOm+GVedTJPvu
B1fZkkjL3Nj87tUXzcMLO8VVT9uuw2qVELHUqpu5+hZgxgxZrugz4G4cTZ0t
m9FCOrGbXoYeC/U+jEtHm4ziCYrLS50YaAXW3a5lJbdAgU5SFVowgzQyQZtF
dg5X4cbWj/KwmyNzVZNo1+ihG3uRBU4ZdoXw3d3W6E4ZLceGx5qGqTZNEy4L
HdfOUbCBDw9b3WvnwBZYEtz/2zSGM1vNuL5YM7t6BzpNR8vXo90S1uBUPJ59
5KpeoM7n74gIrlMlD49ek28Mu5ZL/Mk4FxKwgOMVwoHq3gy26QqzSC7wKjRr
EuDR8sIM4MPakWXK3JTu27peSk09WfZAnBrVTZFYT0na5JWMn1s9F0ID4Huv
8XIKGzTUfvtqETA+JXBlbmethoQzEnBMuMtQRwZh1DaluMyrWMEv33BgCuVp
n2Z9P7Xg7fvDLsm4ZmlCsSqo3MrLeT3NOEFbalqOWfOd5TokU2NkHQbk35IG
KMZXtXBazSekJSVfsBf5sMEev+B0aVFJfsh+QDWA1BYi2WfpLISeM2RLolSV
DOPmIYm89hpioKiskU2/uQBnGClKGouJZHbL8tgbenET5xteH9LawceJ5unn
nL/K+8UObgPmdxbMOoDMgokgh2iLzRIaeDWSbgeIOGkpTNC/Wx3tFo/ZsBeS
ix/3Qm7p2wcnh4TbV8iHhUlVbdr0KQLgrtP+yidQbBsbcAHJRo19y9j8vTjZ
NHvXJrcH0XtKiHrcr3Bs/xrwMjovxGjHo2hZUY8SRsZL70zuVEEpqvmpSKq9
khPgYxsbtMgzCXzzFnJrkWn2qhBGj8xeVcAu0i0q10BVzITixZVN5H7XwMjf
I/XmIvWcXwzH6nlxa/gK6O5VLTzPRa3RSwRvmzEDybqLv8PP0TTAAoML3/N6
ZyKVDiR8r/b2b9NkmkjcXm1acPrh9q0keG9+Zvp+6eS0COjgbXVFuZr9kD9u
6Kcau1VjsSxSzYJZrbH2Qc0QK1wKbwnysr5vh3cmPQe2jumRjyPa46qkVtNT
A2h4z6VfQdBLPP4h4nmuTUvd8pvcVxRf/CXi326FNqtNzLiT+3f8vE9nXcmB
35AcPRrmcPlcjUm4HyU1ZY9y1pJ2pbL0U7poiSaD1DWOprG1aX4I8oPkQoMF
1UOuLFtro4XtnHkRc70IxA/MVmm3iix5a64Jr/lrs9nimX2N7qHrLfPj6zcN
zdAPnBt+zc0O3xwC19rQ35btbweavTxq76JsMd9u27br7kHDs+c9rAcx324H
fUml5dYmtDzPEyC01S9NjXe9wR1sAAKY3RARA51+HQ60OPu8NfuJEFBj9AZF
eo3Vr8WkOIS/5Jaj7LEpTGbGTsOjPhUgpwvFZYTRyCqsaqmFQ2hadEpKrWRL
mTeLtMyzjXFSDCXNgZc12jNnlwgU9loZsQqdmX4psuRZQeVN3P/bNC35RhBL
qeP3tOdRelGQqLIkDG1zyxwfmu6R2X9kHj9abcGTbbOza/aOzeEWRuk+OsQA
hO6x2T40W8fm8WN59bhnto+i3U2zf7zoNFvy7fyOQqp+N9ejsGhKgwV5hG7G
a7LLTo5xAKk7B68HZuUGozIQZxEmM+dxIp6/Tkxq2Vd8hKUfTlnka1VbS8ej
FHC1EpmRrYbxSXRUb8YQ8Pa+vHNAE2dQo8orNSf8mv8mwUbWRekKYa3oACJM
gw8MGyzImac4kbAtuSOo6+cN5GhqLdWJzcYtN2iwMKar6rPK/lg93ApNnutV
ICnyaaXr1OrdFqXQyxpETtaS+jnoMpa7BmkhSes65gd2p1CRiUN9FEt6hETw
YKgRu+b49KlwokO6aDigFQjh+Qt+MkgkcyA8VbqQDq8qTXqF1bKHEteY+7mx
ntqEanYMJHDeKHrnAGXpa56KWpG1G+c6ExeJY559eqVqcVX4MXJgLLYU6Khj
XM2nJ9zNT0JxYu98XoEeNLNDC1QwDqOt1cN2MudheOVYoyazyCetQfhMfxXy
yK1DvHNiy5Q2cD36yimVblh7aGOKKHTAGgeUAFFhN6+YPfpJeSWTW+T/A7Qt
ucHDwGcHqXdtApgTRWagnmDoMj0jzhqrkDDPAlPIMFKbws00zLOFUuD0/Spc
m09Pn5nzQxSVfzzCAoJwulnETao+OjPhf5YzeQHj7nF3uIrb+Tv7Nd6wPpcX
mTqfF44TsngLGDzVTIY7RoZD5e5s6Osa2xPrHF3kTOzrAre3CLW3ALXwk67l
m/bR2BQcAmevgU54nl8D3N/2Ds/f/vxVQ6ohGsj8NOm/e9sflZ0r57Q5BIR5
hykURuS2OZlebJT98cYIP9jgF9hmA1AYBhqU/KZDj4ok2RAF7sY0nqTy1eRd
xaOsq3o3XCqiRrjWrfuu9f1g8jbua9zlgsVeXH7hhV5MLv1F3hLFjBHX8//b
WqWLswYePOaRIhg8eHvaOztbxCjMCbE+MZp/20CXgB9Db1elI366Vb7oKVeu
e0pXmlYX82ydXO1HOvG+lBoDVvOtFJe1ataGFNBD2unN4NaxmSHSS7xA4ZVN
3oRVP9HzF7NZcSpgmQUxJTQJ3/pdG5KC/NLLBaymXJt1B1z0McjwHgSqMSGa
LmOSicyOSybgkqqGXAMbRuzWmJPloy40SxqmSqAikcQDVuO8ba6EW/a69AJC
1eTQsqwxR//w1xt2DuML9KRG9cIteQQ2MYPAUYDhjNW6Mgx34Yyrmbq6RzwM
+1AvcqJ+RrqKH1AHEvhTi4JimQeI96nVOTQrTzhqM/IQkPsl1QsGhWcY9DlY
6qirlbLwompINtIUP1j2Ac9Ez5lqnVw/QX/FCi3sgGyUxKiR4OSlbFO7PlaK
Kat26cW04zwR5ttdz/yPJbbmWkkplEVOyHQea2n+OBq+DKdMukcMpX/F8t2H
wESPSrfNNiarOslI7Ww2zOtpxb8KO7MGyPN1sDmUn0XzRLQwZwW+p49aKNV+
bXLpY51G2GqjovBNgmeSJA9K8LdJ/dbqUm5SZyAfAddcYdfYhg6UPsD3FxTi
RA+61MsEqwSX/SlwResdGnO3jfpCF55I4TPCo6xRjgcbYBxGXgeL06rPYi+9
xhzGA43TsTm/Qo/nJc4QzNNoIWjhG5Ed8gMrOfz59PR0HT3KJb9CLYATltUc
bsmLxyxoFN5ZYs4+qeDCaQvR5JGVGvQJ/fW1XX55OcpjLllIU4h9hyTFBsph
7rvn5BTp1tSJX96HQpZFw0NUvILuyOScrVbExk4rjvzD/IdWNtJuRUKD5Q5C
kq9REaK+d9l5KC5NoyJuingSF4TUtqiY9crgfhrsrghJyhpnQSm+S8HUrqgo
KQGYLaH0JvFKD3JcEY3pJE0UcnA5zoK8aCICSMCEVbrcKOm0CvZW5xGPZr8w
HLjCGsoctAA83Bi/XyZDlH1V/0zblAykCimSVAZk7O42nVC9aHqJeR+Ar7cN
PRouF7F4TGE19DIZY8VIuDY50YIGXHv1wjy5764godiUBvRke35KYpVO25/z
/FRFXGNyDNLRUDQEInJLynjEoAkFvBEW3TI/f3HapQC+T/53A9mcrTZl/HOp
QdVLruSYX4yfEoLW3Wtv4166FXgmFKBLOZIOJPTbSCHL2fgiH/HzFtH/baaT
STxGPaj3YusxvDgjZRkHhh8lXKm0CFrtE13WSrskRgbvH8H7mwL9WYgASl/f
xpOg1R5OQkOac4wJKqqgwW7YgPKZ++934P3hm0N9RmqZb76hi1jSqgJzkE+H
V98Q3IBJEusQskivXp8fH3BceTFCTtqvUskFQcKqYHqtRpS0xFlS41IQZvHl
33irz939jSyC1nVbyNhIvA1xqw/JdXSiMzknqdpCYuZURTts2Yy7jcr3HdAs
Yi8XdIp8zniuw8b5KSkMi7fRAdWib1SC8nKEPrNa2mzEHmMUGNhUXMCxsSWF
BSJr1dRu7UyiAtE2PbyqbhLSHn5GWOAJRvNqEa+0jNQAjnn1G6eAGApnE+sm
cAGEu2ZG+PhxXf1+qJMx5uXAEnw0CPUmgkHEGe200AVagmK24KIvNacMCMyc
59bOjUuYcKUHzzFKwyebp0pBcyDcUYcZu0mRVEOkciLSAObswDq2qAoFtgNg
7NVlptp5pSQIkVQ0UYPGGwt+18rsxNb6yfrn2hwjr0JJw3aUByypWbWeS4iT
56LYi0rAbCyrhpu/wL8TINXUO8MG0d2mGkCn3GmBGvOLpI9VdRUqncVoO1fx
ImRSsboNuWxz1Qqb5UhvIk1nZWtXVM3jcH6riFkg9XsRHsixixpZCFg155fC
+rwl7DMs0noz4lH9SDGlGlXgu8kE84v043/x2MPtLxhI8tuPPfz7x5R1t36P
KWvo5AG2+DcbP1U6b6QmUnyn6KmmDz8zdmoBK7H9xSKnPsmDO2pMh9LgZOkk
RrwgWZjGjz1xMM/qnJZqrWu+ztyvM03O+bGvljr2nO8zSbM08HLf55ZzAe7H
pauR/YK+tjatmtOl9c72fWXJtWYBdCXORf0ftN4D9y/XeeSyI1n1PLNpdq8b
YBBpBrEv5Unb6EKrG5YUYpewffP7ppLbGv4iLIXWLHku6QqcGyuJGAuCMdze
rNX6W8KcrHvBGovQP+gNJsEwWPcdfR0mElR9X9L5EIvQfBqZT3P9tVC6s+sv
R5Zgh5/l+ns/ltUFdLmkfnAcKOlYlbDZRkCHsiN8W2K9OLEckZCfmdNDlAJs
rWT0NCbVWhTXZAUjFYeDYsZYQphVo1SPrJhSKeAjOEhczOyMbVOaOg+my6C3
WjEOr8Eh08ItiEoHg/RwJ1DU6+vRThOFiSM1akh8V1kzanmOUyTXqXzqWbOi
BiJaj8W8cISOXQb8ipr18L+5DI5U065hpU90OtGCkFhWPWttSTcpFVTCIbLm
apNL5CR2t5iZxCaJxZ0CEsn+hSWGMsJ4cHVFNtiHnRn0fijJGiFGBsEZEaFd
nnf0aIdx8Oi3IrkUrKpS6xrqHPozbO92cX/v/5IMR+RO/sblEK6rMrJCVRnN
LddevWFlhs0HxJl++f4SPyLEaRhfTdEu7XudLlqBT/bQEsO0iEL9MeBDnpEc
j2mnSo+6WOWHec66YtKPoR4yHkXcmCMLvWpAJE+6kE7VjIs+gRR0mFXLTwld
ofqGY0goYFSFbFtllgKNxa/QzjFya8dkSM0xU5IoiypIOq0wB+JiTlrcd9Yp
AvBNfJ2ng9rEsVgwxySPchJmj16dESYBoSijhPBTYlTV2UyHIQgmGRVNR6vu
qMzVqlzOQYEWTeZogbP2IgXiNbmrEB5MDkhYEvlMFSqpmpHL0uTJKO67cMGL
BG5Fz2IZsc8bqqWynBUNYhgXqlHF7xKxBRvKfJezb27Hhk1EAEluTgHhTF28
+KSW2jUGU6qPOk7gMM3IBgbgSxFzcqzizhdKbC8GTormIFZy2mpBLCaAgoDq
5hWh0gdoPEX/WkOUGGbKJdCi3a+XJH2TYIgLdIc1sibs/Adn+m1Bz99i5CU3
EcZSqSAdmhggwW8lUMnVawBUZqSGcRALZRwK4FpcMuKJcVGvXDLiVE8EnQcC
1DVDWD+kYbxPCKJhY0Inr7SEmygjMZ5t14G8bFd5O2O/2BQLj8wiNM3ERW3K
LaUT9C0uFW1GGARd4l9SprWmN1qIzvPJy5DA/l5edHPnC0rXv0Wlkhy6enFR
U3v/PYkU/tS+vFIpGHrJz8Ppgx4AsMZ0ls31Dj+dBZ106B/mFguhcvzsHp3c
fyYPApMPIaJ9bWqkH5GtCdPgYNJMHgrtf0/etGB3mn7+0cpHwBFVPjbfY3dS
PzZ/+pkKyIX36s4XUkFGmqKTJ8wMG5ULxWJlKE/Vp6SM0BqzDdH5i++FOVhv
Se2zS1Xi2YDJrFFqiJX9i/w6XjFxQBg4Uz/N1tTGuTUuK7G0Ix8X8by8eq/M
6BJrxBpJ1FxQwIgQO12J8D/A7Ihtj+2onP9phPzrtQbnIdOENeRxjUIrlwQt
w4s5esQMAf5Sf59Orne0gV9ns6HdnrbbWtIumaY7+9pwe3nDPTvyTtgQj01W
6LWw9NQIOBsDiEMwuLCwGnj4V8Bacqyx9e8Q2jU5IzIKfzGsy6fomAhiQl1z
a4VXDZaXJNKeqKdrxBPMyfgRk7DijousTzFz72ydBbR5z+Ilq8bNbVw27bpM
PiiJ4JcxNGuB0oZ1mKxT2hF9yXorOMKk5JMTXEsuzdmyMbCRUlDbUBQVcVGU
RnUlzsMqLGUi4k/L+mDWyadWwHrhZ3SBjfBvZtIkT0uzdwAztjm0TzUqBaSQ
LrqmgKReqf455omLSylFW+gi8mJp4UYcbHGZxvkijXM9aP1r8nH1UzMtrM3o
1NEN1Rk9Zf2ttRmpwMIjoA4gp6yuUL0H9AnFhN0///R6gsQM5H9oximfk/Gk
mmkycUm59FeMP5yH3npEu/XNX25D1L1FiLq3CFH37oCoVrN3D0wVDKUArk/D
UcbQyNwHR7v7Bzjbh8DSJbvsF2VsDq/ZxCrKVD8werS/uoKk6O+KCnyBbMxd
Fc3ke0FjS1dtkZEMSyuatRyT4RxiRsSFuCOYY1XCdHBxnBbImeGzvZ31lg2z
uzNi+WjF2h7RuZAVbQ6vTI/KZF1LZEOAYjUEgy3Zl+q6UvcSkaXLFRO5tKTW
S2NCQxY50euRA6BYo67yGxysJHDTFEnBRgH4qEiWenF6KMg/trA3Fl53CI0E
oEJcjUsp53M9S2O/+rG5vDQJ7Abg5GB1pUriSY7elhgPUiUPjpDekSyFUxOj
LgVEWtua+qYqVwg8OmVeR9Vd+S4lN+QJcIZS5yzolkzGqIAcsY46DMK7nKKO
txVZVpISccGN8s5cxP13NzHiM+VXqCRfA0DgGG+UQNZEKIxs3eGYIkVUWdCQ
0O1cDQrWBtAkuYrTZrPNn/SE/ld0kTUmrONvbJiPB51ILGX1vizt5NeofNW8
TEoquXn0PRvYKQ/BjOsVOmbd75LDfWs7A0MQdyZnNJiITIFW5K+mjk+RnnVb
EIR7Q8/GsCst7CQhC3ycInWtGLjUYaiYdhKHsJELhKNWc4qm6JYUTdT1JyRo
+u3mZ8rKt4OszPiTUFjRhEjc5OSUyplLsqad+dd78hpfUYp4eu9nOLpVrF+W
4chNVANQ3ZNoSbGZJSUB1Ta0BnQZuW2izOvWjigmEveZk0U+r0L9gVkBjvfn
t3Rb0KBNZacCsHs3erAbGmsbBLkHgoms1V09qNuzrPknMubKb9lIsfsy5hit
f5ey6fdlzKVmOrLmS0C61wzSvaUg3WsAqcWah+IjDfCR6uHvnCPOMM6grNJ+
OWcdT0u1ji9pvnZy9nTdKXs8MynQcNuW0tJQtiM/LK7JrM3Irx9G7M8dOsv7
rhbB1V3L2h3N5+hu8OhGVdOS9aVllCG9HqErSGCo9fK63mKijRaZaE1bwsFZ
U9VootP7NQpTADVa5pauo8E8hzv8r2Sea7bO7X5J/fNv0TzX8PN7vZm5mfzd
6838bkWqY+xv1ooEhFPZzSU0906mJDYRubr3jimXzAV3tB4tv8OM2f1nqAAC
N7ytoFj6jAAzAU+c451f7iMytxX8uFu5j8gsKvjxP6Pch/gHIwPj6lR6MOYy
CaRjQq04Mi1PbikS4rsPCS/i8hqpHm2uyMOCgMy5YExyxFfxKqi4gaxjWAxD
Jm/9DJcXe5mr51Ert/EPTLjck/BBn31mGoHMsPYVl3YKmLOjGHB86iCJRxGp
UTgFUOiiTUQm9vLtspjlRuqwVpLiG3/DmgUgv28pcyWhMysXvAzM+Bq4c3m5
Pf8yvQQCcj2f2JnfUZa5ubTO+A7IAXra9snZkLM711rkpXz9aP7dtCzQuHnt
pWqe02Pc7WJZpswIYGML6PoPvTxagSDq6rpIfLBXpTMurK97GqSlpLozJc5O
PFbvSi6YOIQE4z7kAkMx5qO370ku/HiZu9bnaSAXiwX0x3umv41ZpkAQf7Rt
9h+bvdjs7a4SKF6kFew0LA+1FViRBPOulBGcta3N7lZ7c6+9BTLR3kH30cHm
Zmd/e6e7ty3FdJp2XVDe33N5dP8dZyP47/t97/1+5PY7js3OI7Sg7O3cZ78f
HWztH2ztdrYe7+/v7i/Zb6Zi/nbzk0W7vSjb7lxSY40xJGOTDTRxVX6uZiUF
J3hIQRSCdP2agrXux66odUsx9rky85sLV4+UNlw9PnnY1dcKBHssGLvKjzBD
E/kDSc4ByjAeAuNTQNGct7V+Bzk949ztdB8YRE2lkR0MuEc/nmlEFnBdpn+o
vvSu8/3q7zo/+aK7Xs+r6KG7LvzTEH7xLiuvEO6w5SA+Ya0sjszvLnWYeOrV
aelv7p1W6CW+rJnx/ThV6qEpJIi/XJ3D4ba3wav0NUegkF+WyxuD2TnhPmIB
UK6Q12fmYooDeQlCTHi73b4vyokL+y2pci4lE4wm/poiTWAGV3aA75pWZIu4
uTx26ibCDLuCUfTWcrl1zBnuKxyHPibB1ozirETGyJe+5kxmKVmcTKU4nWYf
ubC15iLfEF03PUuGGE/CQEFhOI2LGObNH124LjA4TJfplSNDm8JR0i9mjJdn
mES8mrcoDMii0FvcdO0IrQmS3hWk6hJjR9cRMIVibZRkXKTA9eHhtS/Ue0ls
alWCIlEvSLepY0jkxOusUByB5VkpBKa3PJBKUpDPvKylWGyqSrJI0p0J3sj2
CE5x5Kw4OfDYMGUMlaKYI/KIjLwVU7I2BxO1HDQNIYaCsiqmfYIH5rqNFu5A
o51g8LudAH56X1LD+E9iJwhOxsJGX95O4CayFCQPNpO9L56lRtezNE1NUydr
t4clrd/ayb1//jkqn9/Z7vFPApO70oIHmknd7DFw2qmFF8idjB4Lv14UQtO5
mxFkybUGEOlufjEbSEAWb7GBuHT0KnToAE1Z2hwkdAzJRIduzRzzTmqULLkJ
Z0HKBbzMpQzHOB4kyN9QNRYW24B5mY5GGjtPpaInA66MgjxR3p9Spa8aCCJT
B8JbHOttAeIBsBkzZhW+qlPoe1WmFf25n3BnASA4iy56VnhOidZpO9gcTsaD
yeGLmebjsR5cwk+1Gvw0I1MrvfuPMQ2gbxVyoG1bC8ZXrruQJelTc8c4uElW
Tp4lA4UdLztzMujm+93t3e2d/Z0LlEDPzp6bPwNT+yIf4jSOKcXCCP3bRBko
haj7ef4uBS74HbR15UnwrzKZgERROedskruws3Oy6OF3mnHoKnnf1tz1a/0R
ZRmhEgLsQ+eyhPBnqBgE1LKu+XDb2eqAxMufPf/57cuzb39+++fjH09enZxz
MQLOB46HwFZ+y5JhXkmY2q+/fvPm2eHO1u52yxoFH3W6Hz8iMszUAWiSA/qK
sXFSpNd4dkBwGuSU32aQlv0R1i3WdSpcvFTSZ897b46Pfn57dnz45vgc13n6
5uT73vkxTve//A8pFZKDDIX+S15vPCmwfPRt511dW/3zqp7U+XXsf/woSb8j
U5+2WjR9pys4/6vvV12dLN4S0rHOVq2zfKL+56kPPURk9XocJhkqUpKGCUt2
9qPn0B0uNnnPuWqfkL+U+DjXCuHYjavhpM3y4Fz+Sfq2ybtBrAZmYIi6TZCI
Mi6rDl9eJmSzXFv9ufg5W13n/Nn6Ah/DQ9oRFsw0IJECA3PKyg2/UYpUmkdC
jtwNRdQaDtvOTh+OGx228xdn/mGjADdNGTV3F9n0UdWobAPgRvkQBVEkwY0w
mRSozMLChSFw0GmSwbMMOAFo/j6A2d3p7lzs9BEwP70+PTTf9VxlnHzSp5PO
OXaxOA652OHzdpX0r7IcwJEmJT2Yxut3omEAxA1WSFHqjIBwIYUb5QwTS8Rg
/f99YP6bIeB1a/U2DtLUhQe3//45k+/0kJMzcMoBBlTxHOZErrIwi6oMZ0NB
GGWfdSWr//2WuoK+vsJ1omkXbaoH5pj3dZVP5ypu3Sof4VVqjj84/CEfa5gF
Xyg251HSR7XBy6QsAS1Kpp5CAvkbLUSJP2dMA+7Vy5n4uerczUtMPYQKMOL1
eJJts5peryJ+pECjR+kvTKevE0x0rC1gWGjSOz7DCdjvgNMACrKKGrIhbASV
p5RIHS13IYGkNQqDk5d10fyxOOckH6X9mUz2jFd1eIXexiNzcgTgdlVXVKst
vsX0xXmOWrxbG84pVPlqRBQhxsWr7QKXQqwdiNs4kbspetKR0pOyb1UVJRKE
CUg9Pi4bntL9XGJJHsIzP7Aup8Nhq+lwsKRsZN8umZ2vZVmGHXY5Ponwokxs
nxq0gRspFTJpx2gwIg8WSely8bH0UNmbFm5vu7u13z58ekjt8O+t3T3+G63V
nKQLo4QyKw7Yy6I84I3wejkQRDn53soDlsmQV0Q55t7ZjmT4e3YEXIvriAOV
Bgls9ogQkKkdoxgiXr3yMeLDT9ooSPV+imUK9mCwl/FkgpR2GckcJNfJCC+F
NqVm2lCuv9y4TpObje7eNvnhyAXvHwIKAS0CL+wl83kE8zktcqo4+1nz4WA/
JGMBRPKMqK6c3J9kKJCREBfoUCQXZVoly8ae8EeFfrPOjPFtd9SjnUd6R/0A
eP/tFDO5337XVB5H2DJwZuJRSSQKqPnXq+s2SSlynHCG93Ys7wdiCZsR8HM6
7CqJ8JVUqiY4ZlSRnAtNbKgkhHzx+rD3ArjQ8975yeHPb30eFKH95vjla/zT
vv/u6Qv8L77mb98enz4/fnn8Bnupf01M7TFzuh+IrWVqS55tIvTCvT2ZkmDy
U/Iek7ZVbeQbgEt8B/JJWauH98v7rf5OB2jThgU4F7tDagns0Yakmy835jvb
eHPcO3p5vK7+dlQU1xXB/cn26Ia8ubnp3MBjNIsMaNh15KT+CncPwrTnlkdr
5q1OuW6XipJizJBFCy+gmd6hE9mBBWCkLv/ZeLounhdjfogL8mNdhmQcIZlX
qBmhWIsQoiim4a2dZ0OKgnLSOlorbY04yiJJ1iOT5VkbADOYssiDd5ygYpKV
knZ4whVIq9Dn07PnNMrF8U4CJ55Y9f83HT5NEvPqhz/jcY+4XK48PO29whgT
jSO2SZZfSdI7pA/zihXCQOkhIKIOGX9JhxdJAkBK0UmG6Na62dxtb+882m5v
dc3am63uutoSzU5nC/6Rgy8TZUWA3kyqEJELkahDjWvD714gXeaSNiU53JKh
LUar43BEy+3YMURcTcfjZADyNAba+sHZTNOUhq1191DJsm7TATLkoPMR+cu0
OZpLZCAqQ4hgRrOuAEyXxSIj1YVMblBTokWOXH5cfCHN7yR+xDvd3c3dbW+z
e6dn/DWce69Q9JlkBsXkwk17+yV2dqdjKPB42U7yDrLjE0WQq2Q98DLxkKSD
iVFkBzJUHfJ2ynJZgbpkQ2/fzsgs2FAcRhqVt3aLHCjVQ/KyIC5AlZaeaFqO
9S0XpNGFUT5jXa0kcSUKNKL4j2AwVFoQQo1taouOi+OHgbVTxD2baSTjamop
1b5xnteRccgCX1P1nw5mGUAcxZuDuStOpdlSlA6KB6PjDjxGcc9WQ9cp6GHg
ivBssEY2CHtucdhdZEwt5bA7N+KtgA8sxs+dFzUHbzaYIO5lDX4QY/Dn/Tyk
MfizZ/IbNwYHdgYEil6KX3Amvylj8BIDubHkd8kPzWRpJ3qnfUYnay7rzmfM
ZA2XsjwE7qEAux1sMVwJ88GI/kw1AcXappvaQ83kC9v7/7XN0p9LHutmaeab
3mY379Q6HTLm7FNxq2H69+us/vMvfJ0R2/8FZ/Ivdp0pV/oZnfyTX2eN9xm/
f5GDUIpCwhkJGz0RNh5wJrLFz9Ph1aKR7JyartUHm8nOlw1z//1i/SxCveBi
jSdl7WK1cu7dLtY5vcrO7u626lWOz06dkaPnZQpGnZ21gFO5IHN4pvmGsXYS
uhh09zc/fpRK2iRtS5ZKz7PHc9+H3lQpQ7kIz06dTcNLUix6FVJsznuk9fPR
dJyVaOxZOS3yKocHK62Vs6JvTk7hlyP0paLfzk5P4N/H1goV/IEAXEGd5Epv
CgNkleiDoFH4gBuunL3Cz89e8Sl+CiRshZRQpJCgGVmTM5aHd1onjjVwIW2k
r5AaJlLVS6qhcaktq77WpHrppe+EdMKePjhikOR5mnEBY6mwhv1RR84DTRLz
SSe2ge2EsjXqWrhu8xV7PSTvJ1xdRbRChZQqIzcc1PCjHcN3dpOpLxzqMkHl
zr3GSivtXx1JJhOq+ztILuPpCHGLoYmZgjVj9Lo42iwEBZkQFYsO7G+kge2Y
Q7ZwyYArmH1rpUX/3VvBnld62WxFbdGEfwfmjALRvLxZHXPWmK9MXuPhGQ36
aLNa+2rd+VFRKICaUmUMQe0D+kXNwl9kJDg6B44snMaovMSmJ0BH3ttxyGND
ay9Y/8ossIkLvVizEU1cRfu9Oku4E3ng/e55F+kurLz67sULBP95gcEgR8AX
ocmZfZ22dna7Hz/i217wfHtvcwuf0znHN+dv7Jv9Pf6i3tPmLj8/7J2d7/pv
ujs7/Obpi9c/PDs5e944gfMfXus7N+63hy/VK6u7uedmis8JIJJU1Zwcfr+8
YXdrYUt/MG67d9deT06+5yypi75omf9b/t5/tLupox1exfC/rU3u5DQfzbrb
m7vS8NHeNsKLDsqChjgkDu1/MDcSuV4mN54PgRlTVXObjj7IHSrlhJxbIdfH
oqQagJd99NGES+Vv09yhe3gtBIgI1+Cic0V2FsT2+O7oHt4tB7W/l6H985e9
w/bZ8167236855B1R/fCvkdvCGSzZfv29/bnmmzv77Qxo17YxGuw293Cfpob
vDzaDaawrf3jyzcnp8cvj9rdvU2vzf7uI0G6V/9lOCWKicOV//xTlgNNSvrv
AGp/EWSG1tDJHVpzWxEu7to1QuD25kzooTnC4/bmXxBbG1GIEbb+8IGx9uwV
3gZ/myYY4ig+qlJt1eIpO2szuDhEUa/GgGuCw/W+4vwGtsdX3OPUTz52n0sm
MstWMGc3+cMfzCGwavl4LkKyT48ltABDJYN2a4dcjpC8cMVyw1YlNHoTqLk5
+YgRwyv5MtXDIc44qfIFV5Nc9GlsfSKi4IuWCTMdyXTZ++TjR8YlnnLkqtyJ
b0pLHXZs/TT02HeR2FKRDEkyNuSYRg2bRCsWZeB11S05/MOVfpOM4erlzOVs
JXmEpFaaUsnTsTb1iiR2zJENTPZhjtlJLyMXtFy50AqY6AZMy707FVfqYxR8
JkVaKmJBJ1iC7ULcIf2kSb63QRikCkgXbL5GZkZ+ZGaAL/8aIZpNCsynvSPE
EBAs9S//518iRHMh8pm10+NXc2qQL19p7a4/t6li5BAsjYt8wHJtv32l0L1m
8ns+yODnC+WD9MmwqsoC4n2nqMjgi2mpSZr0xvGJ3drW4/3HeJEIA7IecYpl
ucRlIqjRkAumSNqYiACd5fBy7ecTZMLgKKCHBznl0s0b1Ue0BHWtu/lo+9HO
zn532x/XOopzZkdScETIcVCx6UmKWoyzgGe4Bt4rL97iDD5+pM/F6bnTAIXP
LKlWv0CD6wJQwa2vFuipjpmj2RcLGV1CsF2kJCan7r3qteOSwyWjZYReAktn
ymjnxTDONFBCfZ/UW7sOno5p3ifEw9o+sTMh3CrqFoqigrgmu4RcxN54mdhl
J0P2LNKzy3nAvfQdJSAIQpZg5d0BB5IyxTKrTRGbv5l4Tc2FL/PVoTRiLsBP
zmGDCW7cCiOb10iTp6GqVs/nMlSrs+YodpjvaU/b6n+o45NAVNLMnCjC+/9R
qgSq16EjS+iGu8KNVjj1pFOsN2BeQkJXWXexZTGJJ9sip9wiBTQrZpohJbcF
bTrmpIqcCjVD9UkLa+QkUjJc0m3ZScG0ueQM5l4vyQ8cY1HSahZx1pRhkVDt
eUc4E4WEwPuA3fjYmxyRVAqbx9E4zqaXMaVUQeVwNphi7LNvRUCCShHN1+kA
K7VwYqWc1M5YxiW9TqJhkU8niITkx9wh0fDMxq98VybtwxghXt8WPpaRV7IQ
E/E5UcTFwEDDdp/6wJXw1zaCOKovGw4JlR0Tf+yiQt6gY17QM0RNzU4bHMGI
AglGM6c7p6xB8AHxX7kn70hhDBvcwLkBY+dJq275SlDSiu8pJ6gRPlJKnFgL
c3A2Nrq8NCMbpTkdU20/Dku3h25kFyOyJ4tza+hQyVeIxTnvKuS2pXONfJmj
sAlUmTx5AeZP0UKQVCDwn1EmpnBHGPJcCbx/ledyzL00wlwHg9utlj5Mgir0
LPxqMzlEdCiwiNSokts5pzj4SyDYquSRvK52JuI0n2ZlBd1bwqO7DltdXeVY
XKOMHI3JAFXkorYNFcUU68o6ms2dLtSjRB4VKLVoKJNQiQ2WQuSSybYVUBUs
+l71O9E5EP3rPB3oXnJIJp6wtORmsVyhjAeU6Uyu0GiRrIRWIEU/xb2AVAOC
iJaD7xY/ESXei0ResPAW1hmTDhgmfINI28gCBMtQzCjeLlaMpVBl5M6wQ9aR
wzJahMaXQLha5mIWoaWPdFScd0qjoDSjAxWZgan8hC7mBxsbkyTrwH0cc7RT
km2cJpnnxd6ZxEMJkLpj43VJ/nWIcTc5z+UQecunyVUMHFQxT7mI8Yuipxg6
EmhaiCTIE5VPBKNqZ8kpYTB55oA9m6dpSQczLcwKjrECG8BzOABAuoPMTthS
ElTPu1RnsggYX6KPOzOwjAO8F/7NxRE89ABvg3QyHXGWwICacZ3AhuGdPZHZ
5UjZ5Z6jXHHJNxE1wUVR9wtwUYCGxFgz5WEBMBfS6qnN/HsVCQal1LuJZ5IY
kLj4NKP4UA3Y9/WDXFM36HBDe5OsoeMck4YCZEHyIAs0Lu2Zu0xb2Em4FKBm
3DvHiSJCREFyeTnjaUZZAXzFAAXsIbgrAS1spIA13Etv0/x94nWPkwJd5n3C
1IoUlrhgbFDbYVGu6yoRrrx4vwZhNJekfy7nbGmvxCK5UPf98KPo5Kh0bE6A
BLrL04mtIMWR5CWa95HClQTvaCnq1OOfmZXtIxtOjItlG2iprBtvCRaUVYwc
96CNsYoDYnOo67ZNrad4p5XQgHSExaJIKC0TOEuU61pU10UyioWloFwV/Zlp
M5i4OI9LVii58Oz2Znk2G4N8VnAckGzL3PGJAhi0/KrRuNHEktIhsGcYZkaK
XCGzlFulCqXeJ5bByYsUcAY4Dp921C66bAZnT0M4ogbEbhRo57ZP3RuiEm8V
ZDDhrDAjGxwOx0RLhDQLD0gEgGMor5C6M10/k1qZ18B9v+asK3MEXWr1AU1/
Foo1QsRbslvKpfrL48nBhJVfPagXWWP66SftmcSzUR5LPYUiZpGOCGtUsahC
SRKENQxxAu6KySieBQeYWQ+tDhZxWoXK8qfKw8A1vFrWAQ7byGKbdoyfEEsc
YxyalnG7BKiveg88CQ5maqtccjQ/CPv9NNWKjjaPEW7HsROnT/BoN+wGS9yw
GSdIZccJZydF3Q/dzcGFi2H3HmDrdy8rc1DauaG9CyDpo7Eol4CXQfoqLH4p
PFHsWU88dYCU9fTOB2fQ9ItgYLAVORVF4sM1H6IpIX5MLb3uvXg/lhoMMeWR
h55HHjItOl/EI8yBSLg+z64Ke1dcpCBiFkjBxKqIYp04RUnGIgypnIIwrCCi
ozHTywqOL0iyFRcAk7g3KWsBhzqVcpfe7FtAiG3GW9k1K6nPWZBalpf1qFrk
YNbhA2zv57gWVac1DUl/qCkk6kwR6hDjgdROX4JcCAlsgnG6/iTXynUtHi37
xglwFNuIhCHlJD4wJ9Iw1BlihWTFIMSLSCHqAETqwpb+8UIsA3jYkc0O0Sy3
c428QTQXD55pq1YtPfnUPFeVhFwiZX5Z4QmKfDGOVmRLEtaIDhJyzHlAmwj4
HWBnZOkq1j+kYraJVg9agto2WdgIGZM1kOqagibXO+Ixp0AngA+TqvRAHnwY
WZEem7aUtwYQNaMPAsGByy6iFdWgZeag5YBUNkLJuzvnQDRIKq75GFeuQ5dW
ye0vq8HLm3jC3oWOpABesQ4IrpfS23FgRzjtbyxjWX4xatoOVo0AMZIyRpy2
GeeJV8YIV42q+cbdCeu93vGI1o4n3QXAFi84oMqMek4bub3HfTUMJf2597l8
oENRp9XApy85CdjD6zr6N8YMgzx7P+w3i7A/uh/218Gi2B/dB/vreyidR/dD
frMQ+aP7IH8TLSIoRR4l9rZGDXf2xvOvNacvRDKNscrZLJq/UhoOFl2wXMfA
nq0aAbNny1OSeRqb0OuXFUNzC2ScTIso5LDmVRqt+mU0DwKP2/FE9Nre+vDg
FPvQPBwqqn/FQd6SgwbxeYy7W0gOeCI/IIdQM+/0Al/tnjcH2hfJEES/kVfB
Fo88FkytsMlq6bEZLEkKTBmYRIsuR/FQd72ZbtrK3NhMtcQeQ0lllG0iF/0u
LTUFu+gtA4jVWCRSi3hPZV+EO7Oh8lH9M82PIgwHKxoEUSjDO576QK8Ai2Zx
RSsaZyKt25Qhkt5UHJwu69KehxTsa1V2XKxEPCrzpm4Xcggkc0nZ9do4bDrC
6ubjMfvNPcODTxW7rOXowHREFUYwLrzWRCYosV1gXWFbzelh79S8ym/Mt5gc
Mu1Hh5K2n8Zgs/mKF7ygVSVsclr4fUWGRne/15n5AdAkv+GzB2T39VlLdMyU
rMopC0UblHnT4gsOTjF+gFPumDM6Gn4jFCoxu6DkiSAo96sp/aGpz0hr7gmZ
fmyC5tCJpwDkuJJuLI0OxBuhTfC4yKdDNjx4DlC4xKezKmm/Jt3Ty3gIgqpQ
D01/KsWQfXe4hYVp+E4CQkAncpCU76p8AofsOi3yjLJwRbkTV7leAXw6B3HY
no5jg1kOpGrqngVgjMmY8IpK4jLlmhqUL4RU3bxha0ln2DHXaUnAjXxFr3eF
gcQAyM4GZB/vUEtEQGMtEm+MaaPKGK+ojqqJmHQ0IChPwrkeUC2s0s/dAgh3
CixHydbIA2OtEUAHLqfU0ZrSVtahcqWPKSZBRAm/A3OQ6thYku8qL+gqcRKz
X8XCrZdQI5xxabyd0bV5SIfT4qTApK3vj2h6pRYhdQwBioZ52XTUXG+UhAr+
VQIUYCbENGCNukvUrt6gpFqQQI6k1DsEHXMipsCUsnNVlJywJfraSDObxPD1
jV25JnGRdDJs8qdk1kSoy4RyC2JGY+o08ouGuRHHObt+Qov3wahGvTJJYYOp
38q0yosZOdRcYcxJjnlr82np69Ko34TAwJ1ZfqhIxhRhBFgxwzuL+CXWYmWB
2ol8XPlexWggqznyqtxTuSkAU4LK+Cd6akmzi86yLQ9PAlpDaqkr1tnYQw1S
DQXIMTzHsvYsuUztlekt0HDyLK8IEmIXpsm5ySPRassBESDC7uHdzPnH8gsV
HtR/mHNNSlYtwEGrnuI5R9EZkhzWlqThO3eH4vVM4sucGognTvXi0a9Di9cl
5idp9W1aPZ9eAHK+S4NcclfTC8rodnIMN+Dr07PeD9+2f/h2g7/awOYbtamy
zcsFJx3mpJwpdCHnT49kib1XvQVvf/7p9SSRq/mAnKkGWLQ2qTSfs/NlQobJ
GaPhr1dvntJtXAwieYKWUO900rhi9qbURr2MgvjKvMVRbmRVwEaczDSyqYpc
H1LSFoMndre29j5+/Ivog1nLn/4CEPYuokMyoTtlZFNa+Cji5HXWG2uapX+b
om0mrK4bLyoo2OLcbngYvIuQLzaAaQ84LMzHjXs/rRodr1renCM2+3Py7kZj
/hpOYrtL9mDMpwsXR1cSnFKeUqpfGDl3Ajkp3lHsuCJSTBfwRHhgE88Dm4Zh
E8fYfP/oGf+sUxxG6cOcxvCIcme+CkC9/1YgcPEjIkj3Kxdw12IBlfnptmN1
9wMIZw3vp2BkmSNqGeOgFLK9KW7UE48PDqlJJdE4ad5h7vUKBmyW98MY/DEj
fxgZ391W/REWX/Js7qIXtVr+iN33xlzhly7c5qT8xLAtO2JPzI8/tlj+BWEc
qLgcBerAqxxN1BzfUx53ko1RR6BhqU7Ijlwl6JUffySfKarLxqj47BkV563N
wnwIzJdY39bD4A+AkXI8vvnmm/BtFx14lxXerBXRNuHnlFAhqBkNH2CcCEiB
799O5j/A2r/CF4TfuXHKhs/I0Z/kmzdYT3TaOMGsmP9wN1zfXOFeb3nl/NeU
paG5Nnat8mntw0c07JuTb73C3xIxJFjJlONbkJVH035svge6Aoy/+fk/hvKo
c82P/tSHiaN4g2fyjy1z2Ds8NudeMnXz4sXh+hOWbUnKJOYJkf4/UHliqrgY
JtXXKw0nfJjnw1GyMUqz6fs2mijzYgNO38XGOEZ3l42rPEvafO471ftq5Y9n
OYGgNxyigoF2Aa6QTIDyHxs44B9rsKDQiOapJFkH7/MJ5jAkpxa63XtvTl4d
vt3ZerzyR/rVwK/aNZyu3rOjHzEcM56U5N+BAc8em/RFwRyu7DGujJ2hBuY/
82mBRrPj9+Qfo1iC9QBAigbeb1DmWTuflPHNUGDapkj5cg57etjv4up9FvMG
cyjb5QN968Y/h4095Xy5K3/EP4z8pXC+Tw8bLwh/zhh/eAunQzJ0DtqoTmi/
goW2v+ViEzDx9tF0PGmjPqEt+oQ/vhRtLO5kiEzE9xBePzw6f0sfkNwE05IR
12sQ3frnhCiwuZkYHhuO6D8Yqlt3xNNBEad5uQFnbJAOgfzQf3UN8zhTG+Nu
O7d0DNiQPhn37RgtXRjG7gXDbX/+cM+OzAtkHJpWs/P53XuIUOt89/M7d7fs
wiXsff4o3wEns3iAR192x7dqwy252j5lS1jRNoqHZW2cx192WdvhcN3NLzvc
Tm24ByAFy4bbrQ33hanCXm24B6AKy4Z7FAyHcVQw3E+B14woa26JNvvLWmPM
u6XbO3ft3/Oh/YRhNnubR/APsUA/NUWOex2UVxfhd70ff/SknQ4SiwFHwrAq
v0DqJDqyvCimXERd3EmxsA9ZmAsQ2khGcy7kz8/PTykzPaUCQhEP7l8zBpa7
I+P/+CPP4B88/tE/anzetS8F/2e3Db8vrHN7872oap75ci9KQ1YthN9gqCgh
HmtZJEJ0qaSPiSJCLaFonfRw8PCqKuIAvbwN56CN54DqFlolPPrksvrwG9Tj
mV4fFa2jZDBko070Ii9A8j9Khmkeo8SC6qE5MYas6P0c049wyohA86OZGsST
pZxejNOqcnXlUb8j2g/uAWNp0GU/J5vFu6hHDg7maZGP46wVfTe6NC9AkoWB
WtEblmnMGfx7wgaHsc0EYePpUvSGQ9UGmdjYEsS+k+12G4DQf4eLDwTrtf+/
vWvpaRsIwvf8ikE94EgJglAakp4Q+FCJlgP0jIxI1EhJbMVJJdT8+M5zH643
oAKt1AIX8GM9Ozv27ux88015hx4+GsxeF368C/cSNFgcXkxpTnq57KBx2PfL
1Q0E1A7u28MGyfiNdp8eZW7bmtB8HM1z0o9PR4rAAR4iug4yLd7ZEZzhktNU
z+J2GE6UoAmxcumoIs6ppR0fQmZYlYr/gUciTh1v8OG2deYf55GIMi38k/yf
F6uyqvHjtMEV5EtLsoMON/sasvKkaVtFEugnfoOtseQ1fdhJh5tdckmIJ0ry
bJ0MEharCAn3NdlhKS8lScJirwy6/eckOX11vhHtyxvfyG9J8sY3Ev28Dt9I
5cqwRzP+k0hGojueSa/RXBwNXo0sI5ycxg4OVitqwc5xu7K2YZoviWV9VAYH
w4X66xmweidgAtpDlVhwa3zKEVVkAUeFwXnMcQxQVBw0juPaay7YEyR8W5A9
Cnl1nYKkzrvWVp2Fs7OhDRlTEafMSJKOlpnj+KLLHoQoWCqjyS1xbSBWczDF
UyKW+DD3eBCVt6GGiIOhoX5H4NYBt66cUzg903i4F92lxFW8kUwAJQ5ndK0W
FY+UH0O7vsJxmzBIHEfpICiOyt4XZDEZH9WIYihY4I0JVE0zyT18VACYQThH
gDfYQPG9mM2Z/ID04tcOmZBHEjcL5bIlkApSlMqBdRScAmLskg7JUlmzDq3X
7ilkjfAfV8D07ur+bHq7rlcUqtTKqXygnE7rCX4ONNZri/wgnxRaIrAeaqnD
F756QsbSuv4YB0x+Vp/dLnT+hVkIDtkBDiRHruXzGX9RJDeQ7L/LFhe8qNgG
+iyzxWZh5NWLUvWQWI74Mpr1sqjqb+XaHmooVG+h2TVecklA/ojpRWme5AUN
DTB6VzlzAR8j0C2pdStIZGHUV7XIqkCD9JPlfdx3GhTXe4nbU0nQVuWElDd4
X0x606qMsUJVG2rXUbG8dHQd6U2knRH14UtLp9Mqhp8cds5D0HiUG8aBzego
zKIn0cRzR8Xn1qsNw8acuRnsr5JdSKFK8h0fe5xcw3k14Xqqe8KsAJc768+L
h8lK2c210luLGtwwcmW0xCq7mm/qaFATQ9DgchSMRlOUIN9a5yiqCMe+qEjS
wD0/Oje1zidcBJYxha45nlDU/jw1SrF2SSFk9HuuuHwQRqZO0BJA5+W/RK0U
pUHZBpM9LN1QrxMvdiLKAgEoutndVigMgGEsyFZ2CbZmClv4TImatIFTSNFC
QbuQid9KXGUL5NeS97Qs/Tk0frqbtuqdz7CFB9SB7BSqWIlVnqqciWSblRX8
o6mywo2+b3LEU0kpgyxPTboAxGlFRVZjndhEVNl7zNr4lcw2l3TRMeC/BwmJ
qMORQHTgUXlYTe3iPCJMTdIMID+Hows4HcJouN/DI8fw/gQ+5HA+gKMhDPHs
IRzlcHwOgxxGIzzVwVOjMzi+gJNDOM25Qz8BIDRfOgHDAQA=

-->

</rfc>
