<?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.6.37 (Ruby 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-lopez-opsawg-yang-provenance-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.4 -->
  <front>
    <title abbrev="yang-data-provenance">Applying COSE Signatures for YANG Data Provenance</title>
    <seriesInfo name="Internet-Draft" value="draft-lopez-opsawg-yang-provenance-00"/>
    <author fullname="Diego Lopez">
      <organization>Telefonica</organization>
      <address>
        <email>diego.r.lopez@telefonica.com</email>
      </address>
    </author>
    <date year="2023" month="July" day="08"/>
    <area>Operations and Management</area>
    <workgroup>OPSAWG</workgroup>
    <keyword>provenance</keyword>
    <keyword>signature</keyword>
    <keyword>COSE</keyword>
    <keyword>metadata</keyword>
    <abstract>
      <?line 49?>

<t>This document defines a mechanism based on COSE signatures to provide and verify the provenance of YANG data, so it is possible to verify the orign and integrity of a dataset, even when those data are going to be processed and/or applied in workflows where a crypto-enabled data transport directly from the original data stream is not available. As the application of evidence-based OAM and the use of tools such as AI/ML grow, provenance validation becomes more relevant in all scenarios. The use of compact signatures facilitates the inclusion of provenance strings in any YANG schema requiring them.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://dr2lopez.github.io/yang-provenance/draft-lopez-opsawg-yang-provenance.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-lopez-opsawg-yang-provenance/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Operations and Management Area Working Group 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/dr2lopez/yang-provenance"/>.</t>
    </note>
  </front>
  <middle>
    <?line 53?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>OAM automation, generally based on  closed-loop principles, requires at least two datasets to be used. Using the common terms in Control Theory, we need those from the plant (the network device or segment under control) and those to be used as reference (the desired values of the relevant data). The usual automation behavior compares these values and takes a decision, by whatever the method (algorithmic, rule-based, an AI model tuned by ML...) to decide on a control action according to this comparison. Assurance of the origin and integrity of these datasets, what we refer in this document as "provenance", becomes essential to guarantee a proper behavior of closed-loop automation.</t>
      <t>When datasets are made available as an online data flow, provenance can be assessed by properties of the data transport protocol, as long as some kind of cryptographic protocol is used, with TLS, SSH and IPsec as the main examples. But when these datasets are stored, go through some pre-processing or aggregation stages, or even cryptographic data transport is not available, provenance must be assessed by other means.</t>
      <t>The original use case for this provenance mechanism is associated with <xref target="YANGmanifest"/>, in order to provide a proof of the origin and integrity of the provided metadata. The examples in this document use the modules described there. An analysis of other potential use cases motivated to deal with the provenance mechanism described here suggested the interest of defininig an independent, generally applicable mechanim. Provenance verification by signatures incorporated in the YANG data elements can be applied to any usage of such data not relying on an online flow, with the use of data stores (such as data lakes or time-series databases) and the application of recorded data for ML training or validation as the most relevant examples.</t>
      <t>This document provides a mechanism for including digital signatures within YANG data. It applies COSE <xref target="RFC9052"/> to make the signature compact and reduce the resources required for calculating it. This mechanism is potentially applicable to any serialization of the YANG data supporting a clear method for canonicalization, but this document considers three base ones: CBOR, JSON and XML.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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.</t>
      <?line -18?>

<t>The term "data provenance" refers to a documented trail accounting for the origin of a piece of data and where it has moved from to where it is presently. The signature mechanism provided here can be recursively applied to allow this accounting for YANG data.</t>
    </section>
    <section anchor="provenance-elements">
      <name>Provenance Elements</name>
      <t>To provide provenance for a YANG element, a new leaf element <bcp14>MUST</bcp14> be included, containing the COSE signature bitstring built according to the procedure defined in the following section. The provenance leaf <bcp14>MUST</bcp14> be of type provenance-signature, defined as follows:</t>
      <artwork><![CDATA[
typedef provenance-signature {
     type binary;
     description
      "The provenance-signature type represents a digital signature
       associated to the enclosing element. The signature is based
       on COSE and generated using a cannonicalized version of the
       enclosing element.";
     reference
      "draft-lopez-opsawg-yang-provenance";
}
]]></artwork>
      <t>When using it, a provenance-signature leaf <bcp14>MAY</bcp14> appear at any position in the enclosing element, but only one such leaf <bcp14>MUST</bcp14> be defined for the enclosing element. If the enclosing element contains other non-leaf elements, they <bcp14>MAY</bcp14> provide their own provenance-signature leaf, according to the same rule.</t>
      <t>As example, let us consider the two modules proposed in <xref target="YANGmanifest"/>. For the platform-manifest module, the provenance for a platforn would be provided by the optional platform-provenance leaf shown below:</t>
      <artwork><![CDATA[
module: ietf-platform-manifest
  +--ro platforms
     +--ro platform* [id]
       +--ro platform-provenance?    provenance-signature
       +--ro id                      string
       +--ro name?                   string
       +--ro vendor?                 string
       +--ro vendor-pen?             uint32
       +--ro software-version?       string
       +--ro software-flavor?        string
       +--ro os-version?             string
       +--ro os-type?                string
       +--ro yang-push-streams
       |  +--ro stream* [name]
       |     +--ro name
       |     +--ro description?
       +--ro yang-library
       + . . .
       .
       .
       .
]]></artwork>
      <t>For data collections, the provenance of each one would be provided by the optional collector-provenance leaf, as shown below:</t>
      <artwork><![CDATA[
module: ietf-data-collection-manifest
  +--ro data-collections
     +--ro data-collection* [platform-id]
     +--ro platform-id
     |       -> /p-mf:platforms/platform/id
     +--ro collector-provenance?   provenance-signature
     +--ro yang-push-subscriptions
       +--ro subscription* [id]
         +--ro id
         |      sn:subscription-id
         +
         .
         .
         .
     + . . .
     |
     .
     .
     .
]]></artwork>
      <t>In both cases, and for the sake of brevity, the provenance element appears at the top of the enclosing element, but it is worth remarking they may appear anywhere within it.</t>
    </section>
    <section anchor="provenance-signature-strings">
      <name>Provenance Signature Strings</name>
      <t>Signature strings are COSE single signature messages with [nil] payload, according to COSE conventions and registries, and with the following structure (as defined by <xref section="4.2" sectionFormat="comma" target="RFC9052"/>):</t>
      <artwork><![CDATA[
COSE_Sign1 = [
protected /algorithm-identifier, kid, serialization-method/
unprotected /algorithm-parameters/
signature /using as external data the content
           of the (meta-)data without the signature leaf/
]
]]></artwork>
      <t>The COSE_Sign1 procedure yields a bitstring when building the signature and expects a bitstring for checking it, hence the proposed type for signature leaves. The structure of the COSE_Sign1 consists of:</t>
      <ul spacing="normal">
        <li>The algorithm-identifier, which <bcp14>MUST</bcp14> follow COSE conventions and regisitries.</li>
        <li>The kid (Key ID), to be locally agreed, used and interpreted by the signer and the signature validator. URIs <xref target="RFC3986"/> and RFC822-style <xref target="RFC5322"/> identifiers are typical values to be used as kid.</li>
        <li>The serialization-method, a string identifying the YANG serialization in use. It <bcp14>MUST</bcp14> be one of the three possible values "xml" (for XML serialization <xref target="RFC7950"/>), "json" (for JSON serialization <xref target="RFC7951"/>) or "cbor" (for CBOR serialization <xref target="RFC9254"/>).</li>
        <li>The value algorithm-parameters, which <bcp14>MUST</bcp14> follow the COSE conventions for providing relevant parameters to the signing algorithm.</li>
        <li>The signature for the enclosing element, to be produced and verified according to the procedure described below.</li>
      </ul>
      <section anchor="signature-and-verification-procedures">
        <name>Signature and Verification Procedures</name>
        <t>To keep a concise signature and avoid the need for wrapping YANG constructs in COSE envelopes, the whole signature <bcp14>MUST</bcp14> be built and verified by means of externally supplied data, as defined in <xref section="4.3" sectionFormat="comma" target="RFC9052"/>, with a [nil] payload.</t>
        <t>The byte strings to be used as input to the signature and verification procedures <bcp14>MUST</bcp14> be built by:</t>
        <ul spacing="normal">
          <li>Taking the whole element enclosing the signature leaf.</li>
          <li>Eliminating the signature leaf element.</li>
          <li>Applying the corresponding canonicalization method as described in the following section.</li>
        </ul>
      </section>
      <section anchor="canonicalization">
        <name>Canonicalization</name>
        <t>Signature generation and verification require a canonicalization method to be applied, that depends on the serialization used. According to the three types of serialization defined, the following canonicalization methods <bcp14>MUST</bcp14> be applied:</t>
        <ul spacing="normal">
          <li>For CBOR, length-first core deterministic encoding, as defined by <xref target="RFC8949"/>.</li>
          <li>For JSON, JSON Canonicalization Scheme (JCS), as defined by <xref target="RFC8785"/>.</li>
          <li>For XML, Exclusive XML Canonicalization 1.0, as defined by <xref target="XMLSig"/>.</li>
        </ul>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The provenance assessment mechanism described in this document relies on COSE <xref target="RFC9052"/> and the deterministic encoding or canonicalization procedures described by <xref target="RFC8949"/>, <xref target="RFC8785"/> and <xref target="XMLSig"/>. The security considerations made in these references are fully applicable here.</t>
      <t>The verification step depends on the association of the kid (Key ID) with the proper public key. This is a local matter for the verifier and its specification is out of the scope of this document. The use of certificates, PKI mechanisms, or any other secure distribution of id-public key mappings is <bcp14>RECOMMENDED</bcp14>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>The provenance-signature type might need registration.</t>
      <t>Others?</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="RFC5322">
          <front>
            <title>Internet Message Format</title>
            <author fullname="P. Resnick" initials="P." role="editor" surname="Resnick"/>
            <date month="October" year="2008"/>
            <abstract>
              <t>This document specifies the Internet Message Format (IMF), a syntax for text messages that are sent between computer users, within the framework of "electronic mail" messages. This specification is a revision of Request For Comments (RFC) 2822, which itself superseded Request For Comments (RFC) 822, "Standard for the Format of ARPA Internet Text Messages", updating it to reflect current practice and incorporating incremental changes that were specified in other RFCs. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5322"/>
          <seriesInfo name="DOI" value="10.17487/RFC5322"/>
        </reference>
        <reference anchor="RFC7950">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7950"/>
          <seriesInfo name="DOI" value="10.17487/RFC7950"/>
        </reference>
        <reference anchor="RFC7951">
          <front>
            <title>JSON Encoding of Data Modeled with YANG</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>This document defines encoding rules for representing configuration data, state data, parameters of Remote Procedure Call (RPC) operations or actions, and notifications defined using YANG as JavaScript Object Notation (JSON) text.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7951"/>
          <seriesInfo name="DOI" value="10.17487/RFC7951"/>
        </reference>
        <reference anchor="RFC8785">
          <front>
            <title>JSON Canonicalization Scheme (JCS)</title>
            <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
            <author fullname="B. Jordan" initials="B." surname="Jordan"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the "wire" while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</t>
              <t>This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8785"/>
          <seriesInfo name="DOI" value="10.17487/RFC8785"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC9254">
          <front>
            <title>Encoding of Data Modeled with YANG in the Concise Binary Object Representation (CBOR)</title>
            <author fullname="M. Veillette" initials="M." role="editor" surname="Veillette"/>
            <author fullname="I. Petrov" initials="I." role="editor" surname="Petrov"/>
            <author fullname="A. Pelov" initials="A." surname="Pelov"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>YANG (RFC 7950) is a data modeling language used to model configuration data, state data, parameters and results of Remote Procedure Call (RPC) operations or actions, and notifications.</t>
              <t>This document defines encoding rules for YANG in the Concise Binary Object Representation (CBOR) (RFC 8949).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9254"/>
          <seriesInfo name="DOI" value="10.17487/RFC9254"/>
        </reference>
        <reference anchor="XMLSig" target="https://www.w3.org/TR/xmldsig-core2/">
          <front>
            <title>XML Signature Syntax and Processing Version 2.0</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <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>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="YANGmanifest">
          <front>
            <title>A Data Manifest for Contextualized Telemetry Data</title>
            <author fullname="Benoît Claise" initials="B." surname="Claise">
              <organization>Huawei</organization>
            </author>
            <author fullname="Jean Quilbeuf" initials="J." surname="Quilbeuf">
              <organization>Huawei</organization>
            </author>
            <author fullname="Diego Lopez" initials="D." surname="Lopez">
              <organization>Telefonica I+D</organization>
            </author>
            <author fullname="Ignacio Dominguez Martinez-Casanueva" initials="I. D." surname="Martinez-Casanueva">
              <organization>Telefonica I+D</organization>
            </author>
            <author fullname="Thomas Graf" initials="T." surname="Graf">
              <organization>Swisscom</organization>
            </author>
            <date day="31" month="May" year="2023"/>
            <abstract>
              <t>   Network elements use Model-driven Telemetry, and in particular YANG-
   Push, to continuously stream information, including both counters and
   state information.  This document documents the metadata that ensure
   that the collected data can be interpreted correctly.  This document
   specifies the Data Manifest, composed of two YANG data models (the
   Platform Manifest and the Data Collection Manifest.)  The Data
   Manifest must be streamed and stored along with the data, up to the
   collection and analytics system in order to keep the collected data
   fully exploitable by the data scientists.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-collected-data-manifest-00"/>
        </reference>
      </references>
    </references>
    <?line 222?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This document is based on work partially funded by the EU H2020 project SPIRS (grant 952622), and the EU Horizon Europe projects PRIVATEER (grant 101096110), HORSE (grant 101096342) and ACROSS (grant 101097122).</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
kHYUAZCiF4eN//ZdJxiVVA0d/dKotO8Sti4JQog6MhIqgyrmOH94wY1B3I/0
AKTrBx21m1BkRdqvkCHIoPAShfbz/Ier67H4y83VaxYWpf6UqhqUEXfEcezz
nnFM8HcPRmgoqebMkJtevb25pZaX/orXV/z5+uK/315eXzyjzzcv5i9fNh+S
sOLmxdXbl8/aT+3O86tXry5eP/Ob8VT0HiWjV/OfRmPmanT15vby6vX85ehA
1qxincKxDSh3XK4kLQ5gzw/nb/7vf48fwiX+Cz5xcnx8Cp/wX54cP36IL5Qz
/GkIq134CgPtEhiSbBFK0lSW5ImW85ldm23BOANtfvszaebdmfjDIi2PH34f
HpDAvYdRZ72HrLP9J3ubvRIPPDpwTKPN3vOBpvv8zn/qfY967zz8w1MGncnx
k6ffJ95HqChFJ0s+3KlffJnD9axszEUIB8jIucSqC3Z2n92a/MMNU6lV2sIY
WcW3O2i/1pJywh3FJFe5pn3FGVJRsZTvfIJqQ72N0yaX8baAv0C3Gp3tnYqR
G7A4B7h6jxtw3OIOxVEnJVwEZIdu2lTbyVS0WfrtIQnAlVCdb6kZWMZngl1n
ETqZjKoWKlID2pK6+v2sWGjnmxvggs7dsIYNXWVGS32b3CSlpSEhaSWqKq4W
WXUdlpmxyBDh1q7svp80XIwb2tIGuvYsSX777beE9uDlwW3iYyLoP6a7QO1T
7X7vn/ggLrnp4gdi1OetQ4R3Vyp4ADcPw6wRaHTrpaAd9DWonEkJwQBD/4EH
cF8RScSJAvmmrxeIWm0DfMuigWvFwwXbYn4ksX/mKIjdtFpR6K8PprD1Eyva
V/qeEc2+dVBb3qbzn0SAN+k4R5VgiNNTcI49Hn3eYYxEZvH1Sc8/ogfEsD6g
2cvl4TfRxW0oB6HCSTcorEdkZjtGFh5odD6A4c+KOd4PBitR9lOziOid21ia
jLGcStcmkfJa6s5jGUvtDjVYpJ5hkT0Vz4PI6LodjbqasVXYPx5WrR4LwnIa
7tR5FiZAHqIWYbDEEQBPbigPo9NnooVCxIWA80eeCZ6q7XEEx/rdZFKZhqL1
rtZ/+K34WWfvor/233VYeEpvD6m/v1Nn4uB/Hrf6a2mc+vTfXItjM1Ptr/78
2glK/f76GtXDg5P+WmuWbov6YhLC9+kX6DZrl7m86zBzaK2xQ4pfXEu4tifc
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

-->

</rfc>
