<?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.1 (Ruby 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-lopez-opsawg-yang-provenance-01" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.2 -->
  <front>
    <title abbrev="yang-data-provenance">Applying COSE Signatures for YANG Data Provenance</title>
    <seriesInfo name="Internet-Draft" value="draft-lopez-opsawg-yang-provenance-01"/>
    <author initials="D." surname="Lopez" fullname="Diego Lopez">
      <organization>Telefonica</organization>
      <address>
        <email>diego.r.lopez@telefonica.com</email>
      </address>
    </author>
    <author initials="A." surname="Pastor" fullname="Antonio Pastor">
      <organization>Telefonica</organization>
      <address>
        <email>antonio.pastorperales@telefonica.com</email>
      </address>
    </author>
    <date year="2023" month="October" day="23"/>
    <area>Operations and Management</area>
    <workgroup>Operations and Management Area Working Group</workgroup>
    <keyword>provenance</keyword>
    <keyword>signature</keyword>
    <keyword>COSE</keyword>
    <keyword>metadata</keyword>
    <abstract>
      <?line 50?>

<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 origin 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 automation 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 54?>

<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 for source authentication, 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, and therefore the examples in this document use the modules described there, but it soon became clear that it could be extended to any YANG datamodel to support provenance evidence. An analysis of other potential use cases suggested the interest of defining an independent, generally applicable mechanism.</t>
      <t>Provenance verification by signatures incorporated in the YANG data elements can be applied to any data processing pipeline, whether they rely on an online flow or use some kind of data store, such as data lakes or time-series databases. The application of recorded data for ML training or validation constitute the most relevant examples of these scenarios.</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 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
      "RFC 9052: CBOR Object Signing and Encryption (COSE): Structures and Process
       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. In this case, the provenance-signature leaves in the childrem elements are applicable to the specific child element where they are enclosed, while the provenance-signature leaf enclosed in the top-most element is applicable to the whole element contents, including the children provenance-signature leaf themselves. This allows for recursive provenance validation, data aggregation, and the application of provenance verification of relevant children elements at different stages of any data processing pipeline.</t>
      <t>As example, let us consider the two modules proposed in <xref target="YANGmanifest"/>. For the platform-manifest module, the provenance for a platform 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>
      <t>Note that, in application of the recursion mechanism described above, a provenance element could be included at the top of any of the collections, supporting the verification of the provenance of the collection itself (as provided by a specific collector), without interfering with the verification of the provenance of each of the collection elements. As an example, in the case of the platform manifests it would look like:</t>
      <artwork><![CDATA[
module: ietf-platform-manifest
  +--ro platforms
     +--ro platform-collection-provenance? provenance-signature
     +--ro platform* [id]
       +--ro platform-provenance?          provenance-signature
       +--ro id                            string
       +--ro name?                         string
       +--ro vendor?                       string
       + . . .
       .
       .
       .
]]></artwork>
    </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>
          <t>The algorithm-identifier, which <bcp14>MUST</bcp14> follow COSE conventions and registries.</t>
        </li>
        <li>
          <t>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.</t>
        </li>
        <li>
          <t>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"/>).</t>
        </li>
        <li>
          <t>The value algorithm-parameters, which <bcp14>MUST</bcp14> follow the COSE conventions for providing relevant parameters to the signing algorithm.</t>
        </li>
        <li>
          <t>The signature for the enclosing element, to be produced and verified according to the procedure described below.</t>
        </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>
            <t>Taking the whole element enclosing the signature leaf.</t>
          </li>
          <li>
            <t>Eliminating the signature leaf element.</t>
          </li>
          <li>
            <t>Applying the corresponding canonicalization method as described in the following section.</t>
          </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>
            <t>For CBOR, length-first core deterministic encoding, as defined by <xref target="RFC8949"/>.</t>
          </li>
          <li>
            <t>For JSON, JSON Canonicalization Scheme (JCS), as defined by <xref target="RFC8785"/>.</t>
          </li>
          <li>
            <t>For XML, Exclusive XML Canonicalization 1.0, as defined by <xref target="XMLSig"/>.</t>
          </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 anchor="sec-normative-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 anchor="sec-informative-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="10" month="July" 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-01"/>
        </reference>
      </references>
    </references>
    <?line 243?>

<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:
H4sIANhONmUAA61a63YbN5L+30+BZf7YGV4s2Y5t7Uw8iiyPNWNbWknObE4m
Zw/YDZIYNRs9DbRoxlGeZZ9ln2y/KgB9I2VnczY5x2p2A4VCXb66AJPJJHHa
5epIjI7LMt/qYilOzq9OxZVeFtLVlbJiYSrxw/H7v4hX0klxUZlbVcgiVaNE
zueVusXcrSyWkwyfJ2XncyqdWppqeyR0sTBJkpm0kGuslVVy4Sa5KdXPE1Na
uVlOmEI7efLoILH1fK2t1aZw2xKzzk6vXwvxlZC5NVhTF5kqFf4p3GgsRmfH
3+EPWB2dXV6/HiVFvZ6r6igBV+ooSU1hVWFreyRcVasETD9OZKUkCJ2XqpIO
y1ghi0y8k4VcqjWRTTamullWpi4/N0wcg474O4aS9P5Cw0fJjdpicnaUiIlo
t0W/bJQs/SBZ09+1cpLkl2BgDX6F+H3LCuFlNdp5v5Y6x3sv7j9r5RZTUy3p
i6zSFb6snCvt0WxGA+mVvlXTOGxGL2bzymysmnkSM5q61G5VzzE5qw5ZnbOB
HmlQDg1Y11khDp766VNthtNmX7aQ6cqtc5hg7VamYjF723qlYXPiLc3E2jCI
pSz0zyzBI3GtcrUwhU4lfVNBJhlNmVZTXu7PrhkzTc161FI+LhxeG3EhrTPV
byUu/axpybNImbmyO4skhanWoHNLur98ffL4xfNv/NPTx4eH/unZi6ePmqcD
//T82fOn4enFkxf+6cWjp2HGi8OnT/D0n+/ewp3JqIKv40Xr4OJqWzj5ka0L
zp0quBwM53tVkeuJw+kjmiirpYIOowo3m81085hN4/py9nGdZzDrSWoqdThL
EnL3djuEHWvIacFWcDZ5xWYV1ZqaPFepU5nHjzgwSSaTiZBz6yqZ4tf1SlsB
AKnZ9DO10AWgScJx0hWm2LWYS6syAY4Zv2yLX86wB+pM8R5vVaUXW+FWquOY
wiw8xhETY2GN0E5gxdJAGvNcEZHORFPppS6YnC4AcpV2WyIheb5VbiwUKIvN
Cv/AQK3iD3A1JZaGxAt6c2aA5A2+QWoG8JIAYa2IqiDsWeTwOKKCeVKk1bZ0
ZgKOwVHmKUI8hS1NBZnoCnLMt2JRmXWHS5n7kZCkkmvaVGGckLfk5qAzFceW
R/PSKdsybUWRwAiJvVzPj98J+JpZ+wG0c5pUWxadMya3wtbpSkgrjs9mMDAA
2GbcFfGtzHXmp88VrB6qWcNgRAVfuIWb0KZlngubYkKljZ2K63YJTChhCV3F
LmSqc+0IXpgZXaR5bQP/nYWxc4jcMv1i6/Vs0xU8FGv/q9YVKwS/p97q1jrL
cpUkX4mzwlUmq1NiOkn6MhiLpSrInSHyxvZEmkPZGZDLlGABHOkS/j4OC5HJ
OpErYIFwGxOtxQZzwFazqfhgAz+05zWIOlWtmfsTQ/zkJBaE1bHYKFEolQUL
a/Re5iTNB/RYKEd2BIe51WTllbBqyS5UI3JWWIEpPgwKJTItK6TLSi1gfCRF
ppcpi11kpMsamyHVrzoapP08jGqrYXkdk5mrlbzVpvKarLzOrIqkmAF5w06d
qVRbFvF8C+uHguF7vBLi5Mpk4oHMkVggeqx1CtnWeTDTMcjA/GBXmcqFqwuw
ChLv3k6n04e0M6IMHCALjnsXMvUmnQK+suCbjuDGM6qtKchJbF1FpPgcBPhN
RcWOmX1SFAuSlOh6SAYRjzrhcty4BsFC4TRkCHaWtcTiThEKYDSiSCtO8o2O
0bUShzX/nfCnMTJCn7UkGIzOT8tDYqbIAaceJghyem6bStIdRlqPVJCnZ8Hp
1gIGWIQBzgDZx7RAbiBT/LXYl0BSkjHLjGXLSpYrnTbjCZ3Y8ijntKausD5F
eJJEGrxuA7WL67dXY3F19Yblf3ZhVUorsIVIyFh9lGvyu6n4rnYRhbt6YVlQ
QCabWZK+kSctV57HslKTso2EBMvLZaWW3o6tQwJmOdVkjO/vZCCIIdr2JLuu
AQMD0RrwWcHMQWBKUa+D4gSEqSRHN5W3oi6tJg7iPQiaVMNtMi+tT5+6Mfju
bkx2CGMnp+oER3qCar5s4HFK1uSt4xgRYOaE6TQoKmHX6GknrCtgKw0AqqSV
nqtAAU4ArSEAW+NjBdIv2LiStG3JX1JT5xnJTn10VANktJEG3ImjAAEGUamM
NhmFFWMb3Jo2KPOt1WzKXvqlccH1osgpti2hdedZZIEAwRzN4VyE7AR+0qlJ
uuEhhFZyuEZP0O5FJzZSbhGjL8ygE+UQQ5A3morVyaJU7S4FkJdEahs3DQlE
EAeP6dhyqUtFvk64pHiz+GdLAL5lUGywgGCATJwk0HPckEsYUlMM+PwuZ/Am
09RrNbHYkPJfCJlDLB/kGEhYyApDKkNmjbwBzuPliZ+dlIEqOKSvtYumA+k3
cacxtQaA2yRimDsG2+0nj7Q2pw8cADJYvoP6O1ogP4LwG8FPxZkLwrY+4/z0
KeTed3ck/TXEwZw2RJoUhlwFwFOnKkRPj3Q2Jgke/lKZpzVqJ2JIO5IfdtF3
89asgrpJ6hDZz42E+8YSXIGNNThUCKh+wYIrkjjfu2Hfc0kLEF5FWFshHJFu
YTIKdfXJd+eXY/HXq/P3vEHUGFNKoZCz3JI3xQL2FbsL//b4hkqZct0MgfDd
h6trquXpr3h/zs+Xp//x4ezy9BU9X705fvu2eUjCiKs35x/evmqf2pkn5+/e
nb5/5Sfjrei9Skbvjn8YeeQanV9cn52/P3472hOiq5gUsdsjOjjOjZIWtjDn
u5OL//nvgycwg3+DHRweHLyAHfgfzw+ePcEPCkN+NfjYNvwk90ugSNJFyH9T
WZL1WQ6edmU2hSBUhDS//pEk89OR+OM8LQ+efBte0IZ7L6PMei9ZZrtvdiZ7
Ie55tWeZRpq99wNJ9/k9/qH3O8q98/KPLxmBJgfPX36beBuhDBh1egCzmCz5
nIqTZ9moi7APCJJzPlcXbOw+YDYhjQu1UiufzPnCDFrxZRaCy0pSZXJLfsgp
tWk/cdBVlJnlWw9prXu3vtmER54WkBlgV6OkvlUxIASUzglp2eIGHLdYQ37U
CRanAfMhmzZ6d8IbTZZ+eggPMCWUAhuqPBbxnWDTmYeyKaNEiDLiAL4krn4h
Leba+UoKuKBzN0yYQzWb0VBfnzfhamFokzQSiRqnpiy6DsvMWGSIcGtbdr9P
Gi7GDW1pA117lCS//vprQnPwce808Yl6Mr47ho0gNGz/3b/xTlxyhccvxKjP
W4cIz65UsACuVIaRItDopmBBOkg4kKaTEIIChvYDC+AiJpKIrQyyTZ9LELXa
BviWRQPXirsatsX8SGJ3zVHYdlPXxU0DpwR3jhjIxfn8n1AVd4l8bpOJ04JT
XVrlATH28EhcuQrFMQfITvsorv7lJh64uWPd+UrF702zue5VgDeT4x9EQEzp
OOyV2CPzFextZ9s+lDHsIlj5vKVnctGoIlLsUdbZYv+X6DU2ZI/QyqTrZ9aD
PLMdnRUvNCo3IPu92xzv+pelPJiKXTATghQlp+NBL6tP6DYm4ACilc6zSq3b
pJFCWz+L4HVKVMnIRv2EZp8eBHkvNM8LgmBjg2Hqs0wsmtGRF2fKCedwkfpO
PkOjNiuDH11Be4G2qVpnX58RJnd3rMpvfSJKazFysL4bYN7frBqHCNGWgE2x
M8xny3sSek51Q6raMNsqgXp3C3ZHF6pLDlGfSd8REY5tzHrH2CLVVE1y5gW8
MU19RfV6FP6wFpyK18HmSySb1LdterBh/tC+QnyJw5G8hVqsCXvz0CVlsAA6
NpSHiO+zm7mCLgKI+yWPBLeIdzgCsvxhMqlMQzFgTf/l1+JHnf0UUaj/rcPC
S/q6z2T6M3Um9v7nY2F/LB0UvPyNY7FsZqrd0fePnaC07I+vkZE+PuyPtWbh
NnDQSQgJLz9Dtxm7yOVth5l9Y40dUvzsWIqVO5vbN9aHhNquJr5D3YSPXxou
+T20SuL9qfO5J/d97zvB/eWeVXM9r5AJNF/ElP6PP/c9cKwih2HPDGcXVMvs
OAm10CXCDMWbL3tIoEQ67rtIpwi410344KTlZddbBgN6TjP4Bik3rtI40cCF
dEhRfglimXwrZkDzxVHjlbP4NItjPYl92yQjud8Ld2yknjcqtQNj7nzqQ0Dr
yu2bwLwtjrrzJt0hf2gfp5977NnNL0n3U/OHDQdRe44kwbeUfBSJCYeldgFs
hg7UtdvumFOMgT7x4aARwmgs8+9JenzRggIb6yL2S38szFF8LbdNIlVsfXgP
fQ7tEGLeG262SMf9wkGs850Ljpx40dY+bVEs5+C+n8p1QnnwiFh8DDZEwS8s
0nOyTgeDvg2j7K4P9ilgX8gCFuKBtD1flJ2cJ5roQ99qNiRDqvsRoGlZbqj+
trW9/+/wEAM/n7zJog3jMU2TtmG9CbLRpy0p1ONJbsyNyPWN+n8MnV0Y6bro
lxz094Re/9/vD8DBgf8PYfj+GfcF470zfmOY6NXsneN2fxqZJO2reEBJaXUo
uotl3u8tWMuJIZvfP34sdP6Pn0Qpt7mR2aBUYArpoO2G3FXTMhF3GjPu1Oax
mGP3iBURvKPpbI7FVbDhJ9PDu7uHwfBowf+i3RyIP4kfEzrM4RN9MWuO6SbU
cHfwF1WNxY0Gy71W5cS3IWdJXeydXcoKKoUT2lnSCmUWamHLpwBVc9Lt/Y1r
haSjxeBSD+jMYvKQR0YH7/dpKe7Okp+8Fq9DIyRssO1xbLXKM+oBtH0RPmii
5khTmrRESejqI1DG9edw53Wl0ptY+q74tDWgiU/bue/AR2KDyi60EBrFhS12
+OWagGDDLKCtr30Xfq9WUMUBrrgg9jbxJUOaRnrQp3jwNwSUs1cATd8qzU3q
jz5QNVGNWIdLDr0easiCaFeqaoqqdpOhCDPVVHy4PLPeEOlqzN0dj6be6uEh
8sYtnIU/0m0ZfGz35Z0KAqROSTxr7h9xg/1mK/uskkJYUFagu43q9VcJek13
TW0MxccDTT+raDTju+bNrZLAz+jjOh+JB6RhuprTJ8j7ors/cLixGP3TmiKM
5V77/sEHGMyX4dK5qcJw7uvsGU63hDC8kQEzJfY53z4jaRqFXUOh5Xx8JUk1
tW9LqWk1xP5SXK3VRGMF9/Zkxu0tGjpMydrrPdRb/Wx7MuYonFNTf/WrDkIT
me+70f0izvQt1xulSn9/INV26OOoo7S3Y76aQcxvKuROxAibCx9kkcP6Kx0k
OgXJUZssVBG+69GSjXYU2q7dTcKD+KyY040AgvA6SpO4wRzOZm23I7sXzh/T
qTAHBTkML+Ecer51baTqe5AuSgJRswfyellSowE72NN868FJxuR00PlpVb+L
1Gwxp7le60K6/UOaJh4Nbe65+jBRgZvSFGwowxOweDomu0fU9/a02YpOBiS6
YT40ceP9qZ5owtGfb+zuZcKLPJwcjP1JuD9tttQqdkP0CreJjodu4CGIQgpb
TX9OMJPxYIv38NSqMbDFWnwdsIb6UsXSrSYLXVlK+dnz6ChHo1JwyLWhVkOs
9Sw0Jhx0ofHubhopEtiF48WhjMUVXeZCZP/rydXD/bSePX/aoQWQHYvTj3xb
7FYx5u7QPJg+2iXlb1IyJaR3V1T+0K2Ik9B4k51jzU4p4O93sCHvq5N2DhyB
l3y1ptg9WI4xcr8cxZ5T3K7TdXCvJ+RxV0q8RmerIS6Graa9rfrrRDrermkO
FXzUXdSDyw/hGPN6WD1ZB0Ad2HI8QOlUV908o01gw32osp5jGTpNDh1eavL6
NARcOoirCSQBPX3GgUSsKf5CBAcPtYuL2hTk/Y+OjvpXE+kuFE8nBL/421mr
Zn9PiKtZPhxgOUJ9nEKhPA+709mk5R/scrjgLXTOUb3RnR2/P/6CwQ1PrNZ6
uXI+HIXsLd4POyem7MvE33ucy/SGljhObwqzyVW29MeMn478ZXqV/Wm0kLlV
o7vBnYp4dEXK4/uGiPR0gYZuo9ZFp+F1+kG8OXx0+Ii49QdMF2eXV+LBkq63
iRdPD785PHzY9tdpOPKCn0H2tCY9x3lWXFyefX98fXp6GScfPDp49OKbg4NH
mP/m/BKO0/vw+Mmhv+V4fHJ5fnXV+/jsAKtOk/8FdW57yQ4xAAA=

-->

</rfc>
