<?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.32 (Ruby 3.2.1) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bormann-asdf-sdf-mapping-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.1 -->
  <front>
    <title abbrev="SDF Mapping">Semantic Definition Format (SDF): Mapping files</title>
    <seriesInfo name="Internet-Draft" value="draft-bormann-asdf-sdf-mapping-02"/>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann" role="editor">
      <organization ascii="Universitaet Bremen TZI">Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </author>
    <author initials="J." surname="Romann" fullname="Jan Romann">
      <organization>Universität Bremen</organization>
      <address>
        <postal>
          <country>Germany</country>
        </postal>
        <email>jan.romann@uni-bremen.de</email>
      </address>
    </author>
    <date year="2023" month="April" day="27"/>
    <area>Applications</area>
    <workgroup>ASDF</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 53?>

<t>The Semantic Definition Format (SDF) is a format for domain experts to
use in the creation and maintenance of data and interaction models in
the Internet of Things.  It was created as a common language for use
in the development of the One Data Model liaison organization (OneDM)
definitions.  Tools convert this format to database formats and other
serializations as needed.</t>
      <t>An SDF specification often needs to be augmented by additional
information that is specific to its use in a particular ecosystem or
application.
SDF mapping files provide a mechanism to represent this
augmentation.</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-bormann-asdf-sdf-mapping/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        A Semantic Definition Format for Data and Interactions of Things (asdf) Working Group mailing list (<eref target="mailto:asdf@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/asdf/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/asdf/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/cabo/sdf-mapping"/>.</t>
    </note>
  </front>
  <middle>
    <?line 71?>

<section anchor="introduction">
      <name>Introduction</name>
      <!-- Just copying the abstract, for now... -->

<t>The Semantic Definition Format (SDF) is a format for domain experts to
use in the creation and maintenance of data and interaction models in
the Internet of Things.  It was created as a common language for use
in the development of the One Data Model liaison organization (OneDM)
definitions.  Tools convert this format to database formats and other
serializations as needed.</t>
      <t>An SDF specification often needs to be augmented by additional
information that is specific to its use in a particular ecosystem or
application.
SDF mapping files provide a mechanism to represent this
augmentation.</t>
      <section anchor="terminology-and-conventions">
        <name>Terminology and Conventions</name>
        <t>The definitions of <xref target="I-D.ietf-asdf-sdf"/> apply.</t>
        <!-- XXX -->

<t>The term "byte" is used in its now-customary sense as a synonym for
"octet".</t>
        <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?>

</section>
    </section>
    <section anchor="overview">
      <name>Overview</name>
      <t>An SDF mapping file provides augmentation information for one or more
SDF definitions.
Its main contents is a map from SDF name references (<xref section="4.3" sectionFormat="of" target="I-D.ietf-asdf-sdf"/>) to a set of qualities.</t>
      <t>When processing the mapping file together with one or more SDF
definitions, these qualities are added to the SDF definition at the
referenced name, as in a merge-patch operation <xref target="RFC7396"/>.
Note that this is somewhat similar to the way sdfRef (<xref section="4.4" sectionFormat="of" target="I-D.ietf-asdf-sdf"/>) works, but in a
mapping file the arrows point in the inverse direction (from the
augmenter to the augmented).</t>
      <section anchor="example1">
        <name>Example Definition 1 (ecosystem: IPSO/OMA)</name>
        <t>An example for an SDF mapping file is given in <xref target="code-example1"/>.
This mapping file is meant to attach to an SDF specification published
by OneDM, and to add qualities relevant to the IPSO/OMA ecosystem.
<cref anchor="namespace-note"><br/>
Note that this example uses namespaces to identify elements of the
referenced specification(s), but has un-namespaced quality names.
These two kinds of namespaces are probably unrelated, and we may
need to add quality namespacing to SDF (independent of a potential
feature to add namespace references to definitions that are not
intended to go into the default namespace -- these are SDF
definition namespaces and not quality namespaces, which are one
meta-level higher).</cref></t>
        <ul spacing="normal">
          <li>Start of mapping file for certain OneDM playground models:</li>
        </ul>
        <figure anchor="code-example1">
          <name>A simple example of an SDF mapping file</name>
          <sourcecode type="json"><![CDATA[
{
  "info": {
    "title": "IPSO ID mapping"
  },
  "namespace": {
    "onedm": "https://onedm.org/models"
  },
  "defaultNamespace": "onedm",
  "map": {
    "#/sdfObject/Digital_Input": {
      "id": 3200
    },
    "#/sdfObject/Digital_Input/sdfProperty/Digital_Input_State": {
      "id": 5500
    },
    "#/sdfObject/Digital_Input/sdfProperty/Digital_Input_Counter": {
      "id": 5501
    }
  }
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="example2">
        <name>Example Definition 2 (ecosystem: W3C WoT)</name>
        <t>This example shows a translation of a hypothetical W3C WoT Thing Model
into an SDF model plus a mapping file to catch Thing Model attributes
that don't currently have SDF qualities defined.
<cref anchor="td-note"><br/>
The example probably would be more useful with, say, protocol
bindings.
This is left for a future version of this example, and/or a
future specification that specifically addresses how to map Thing
Models into SDF.
<br/>
(There is also the separate requirement to transform a Thing Description
into the kind of information that can be represented in SDF plus
instance information, such as IP addresses or specific node
names.)
<br/>
Finally, namespaces are all wrong in this example.</cref></t>
        <ul spacing="normal">
          <li>The input: WoT Thing Model</li>
        </ul>
        <figure anchor="code-wot-input">
          <name>Input: WoT Thing Model</name>
          <sourcecode type="json"><![CDATA[
{
    "@context": ["http://www.w3.org/ns/td"],
    "@type" : "tm:ThingModel",
    "title": "Lamp Thing Model",
    "titles": {
      "en": "Lamp Thing Model",
      "de": "Thing Model für eine Lampe"
    },
    "properties": {
        "status": {
            "description": "Current status of the lamp",
            "descriptions": {
              "en": "Current status of the lamp",
              "de": "Aktueller Status der Lampe"
            },
            "type": "string",
            "readOnly": true
        }
    }
}
]]></sourcecode>
        </figure>
        <ul spacing="normal">
          <li>The output: SDF model</li>
        </ul>
        <figure anchor="code-wot-output1">
          <name>Output 1: SDF Model</name>
          <sourcecode type="json"><![CDATA[
{
  "info": {
    "title": "Lamp Thing Model"
  },
  "namespaces": {
    "wot": "http://www.w3.org/ns/td"
  },
  "defaultNamespace": "wot",
  "sdfObject": {
    "LampThingModel": {
      "label": "Lamp Thing Model",
      "sdfProperty": {
        "status": {
          "description": "Current status of the lamp",
          "writable": false,
          "type": "string"
        }
      }
    }
  }
}
]]></sourcecode>
        </figure>
        <ul spacing="normal">
          <li>The other output: SDF mapping file</li>
        </ul>
        <figure anchor="code-wot-output2">
          <name>Output 2: SDF Mapping File</name>
          <sourcecode type="json"><![CDATA[
{
  "info": {
    "title": "Lamp Thing Model: WoT TM mapping"
  },
  "namespace": {
    "wot": "http://www.w3.org/ns/td"
  },
  "defaultNamespace": "wot",
  "map": {
    "#/sdfObject/LampThingModel": {
      "titles": {
        "en": "Lamp Thing Model",
        "de": "Thing Model für eine Lampe"
      }
    },
    "#/sdfObject/LampThingModel/sdfProperty/status": {
      "descriptions": {
        "en": "Current status of the lamp",
        "de": "Aktueller Status der Lampe"
      }
    }
  }
}
]]></sourcecode>
        </figure>
      </section>
    </section>
    <section anchor="syntax">
      <name>Formal Syntax of SDF mapping files</name>
      <t>An SDF mapping file has three optional components that are taken
unchanged from SDF: The info block, the namespace declaration, and the
default namespace.
The mandatory fourth component, the "map", contains the mappings from
an SDF name reference (usually a namespace and a JSON pointer) to a
nested map providing a set of qualities to be merged in at the site
identified in the name reference.</t>
      <t><xref target="mapping-cddl"/> describes the syntax of SDF mapping files using CDDL <xref target="RFC8610"/>.</t>
      <figure anchor="mapping-cddl">
        <name>CDDL definition of SDF mapping file</name>
        <sourcecode type="cddl"><![CDATA[
start = sdf-mapping

sdf-mapping = {
 ; info will be required in most process policies, but omission is
 ; not a syntax error:
 ? info: sdfinfo                  
 ? namespace: named<text>
 ? defaultNamespace: text
 ? map: { * sdf-pointer => additionalqualities}
}

; we can't really be much more specific here:
additionalqualities = named<any>

; --------------------------------- import from SDF:

sdfinfo = {
 ? title: text
 ? version: text
 ? copyright: text
 ? license: text
 EXTENSION-POINT<"info-ext">
}

; Shortcut for a map that gives names to instances of X (has
; text keys and values of type X)
named<X> = { * text => X }

; only used in framework syntax:
EXTENSION-POINT<f> = ( * (text .feature f) => any ) 

sdf-pointer = text ; .regexp curie-regexp -- TO DO!
]]></sourcecode>
      </figure>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <section anchor="media-type">
        <name>Media Type</name>
        <t>IANA is requested to add the following Media-Type to the "Media Types" registry.</t>
        <table align="left" anchor="new-media-types">
          <name>A media type for SDF mapping files</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Template</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">sdf-mapping+json</td>
              <td align="left">application/sdf-mapping+json</td>
              <td align="left">RFC XXXX, <xref target="media-type"/></td>
            </tr>
          </tbody>
        </table>
        <t><cref anchor="to-be-removed">RFC Editor: please replace RFC XXXX with this RFC number and remove this note.</cref></t>
        <dl spacing="compact">
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>sdf-mapping+json</t>
          </dd>
          <dt>Required parameters:</dt>
          <dd>
            <t>none</t>
          </dd>
          <dt>Optional parameters:</dt>
          <dd>
            <t>none</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary (JSON is UTF-8-encoded text)</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t><xref target="seccons"/> of RFC XXXX</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>none</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t><xref target="media-type"/> of RFC XXXX</t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>Tools for data and interaction modeling in the Internet of Things</t>
          </dd>
          <dt>Fragment identifier considerations:</dt>
          <dd>
            <t>A JSON Pointer fragment identifier may be used, as defined in
<xref section="6" sectionFormat="of" target="RFC6901"/>.</t>
          </dd>
          <dt>Person &amp; email address to contact for further information:</dt>
          <dd>
            <t>ASDF WG mailing list (asdf@ietf.org),
or IETF Applications and Real-Time Area (art@ietf.org)</t>
          </dd>
          <dt>Intended usage:</dt>
          <dd>
            <t>COMMON</t>
          </dd>
          <dt>Restrictions on usage:</dt>
          <dd>
            <t>none</t>
          </dd>
          <dt>Author/Change controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Provisional registration:</dt>
          <dd>
            <t>no</t>
          </dd>
        </dl>
      </section>
      <section anchor="registries">
        <name>Registries</name>
        <t>(TBD: After future additions, check if we need any.)</t>
      </section>
    </section>
    <section anchor="seccons">
      <name>Security Considerations</name>
      <t>Some wider issues are discussed in <xref target="RFC8576"/>.</t>
      <t>(Specifics: TBD.)</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC6901">
          <front>
            <title>JavaScript Object Notation (JSON) Pointer</title>
            <author fullname="P. Bryan" initials="P." role="editor" surname="Bryan">
              <organization/>
            </author>
            <author fullname="K. Zyp" initials="K." surname="Zyp">
              <organization/>
            </author>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham">
              <organization/>
            </author>
            <date month="April" year="2013"/>
            <abstract>
              <t>JSON Pointer defines a string syntax for identifying a specific value within a JavaScript Object Notation (JSON) document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6901"/>
          <seriesInfo name="DOI" value="10.17487/RFC6901"/>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz">
              <organization/>
            </author>
            <author fullname="C. Vigano" initials="C." surname="Vigano">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049).  Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC7396">
          <front>
            <title>JSON Merge Patch</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman">
              <organization/>
            </author>
            <author fullname="J. Snell" initials="J." surname="Snell">
              <organization/>
            </author>
            <date month="October" year="2014"/>
            <abstract>
              <t>This specification defines the JSON merge patch format and processing rules.  The merge patch format is primarily intended for use with the HTTP PATCH method as a means of describing a set of modifications to a target resource's content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7396"/>
          <seriesInfo name="DOI" value="10.17487/RFC7396"/>
        </reference>
        <reference anchor="I-D.ietf-asdf-sdf">
          <front>
            <title>Semantic Definition Format (SDF) for Data and Interactions of Things</title>
            <author fullname="Michael Koster" initials="M." surname="Koster">
              <organization>PassiveLogic</organization>
            </author>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="12" month="January" year="2023"/>
            <abstract>
              <t>   The Semantic Definition Format (SDF) is a format for domain experts
   to use in the creation and maintenance of data and interaction models
   in the Internet of Things.  An SDF specification describes
   definitions of SDF Objects and their associated interactions (Events,
   Actions, Properties), as well as the Data types for the information
   exchanged in those interactions.  Tools convert this format to
   database formats and other serializations as needed.


   // A JSON format representation of SDF 1.0 was defined in version
   // (-00) of this document; version (-05) was designated as an
   // _implementation draft_, labeled SDF 1.1, at the IETF110 meeting of
   // the ASDF WG (2021-03-11).  The present version (-13) collects
   // smaller changes up to 2023-01-12.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-asdf-sdf-13"/>
        </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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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="RFC8576">
          <front>
            <title>Internet of Things (IoT) Security: State of the Art and Challenges</title>
            <author fullname="O. Garcia-Morchon" initials="O." surname="Garcia-Morchon">
              <organization/>
            </author>
            <author fullname="S. Kumar" initials="S." surname="Kumar">
              <organization/>
            </author>
            <author fullname="M. Sethi" initials="M." surname="Sethi">
              <organization/>
            </author>
            <date month="April" year="2019"/>
            <abstract>
              <t>The Internet of Things (IoT) concept refers to the usage of standard Internet protocols to allow for human-to-thing and thing-to-thing communication.  The security needs for IoT systems are well recognized, and many standardization steps to provide security have been taken -- for example, the specification of the Constrained Application Protocol (CoAP) secured with Datagram Transport Layer Security (DTLS).  However, security challenges still exist, not only because there are some use cases that lack a suitable solution, but also because many IoT devices and systems have been designed and deployed with very limited security capabilities.  In this document, we first discuss the various stages in the lifecycle of a thing. Next, we document the security threats to a thing and the challenges that one might face to protect against these threats.  Lastly, we discuss the next steps needed to facilitate the deployment of secure IoT systems.  This document can be used by implementers and authors of IoT specifications as a reference for details about security considerations while documenting their specific security challenges, threat models, and mitigations.</t>
              <t>This document is a product of the IRTF Thing-to-Thing Research Group (T2TRG).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8576"/>
          <seriesInfo name="DOI" value="10.17487/RFC8576"/>
        </reference>
      </references>
    </references>
    <?line 399?>

<section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>This draft is based on discussions in the Thing-to-Thing Research
Group (T2TRG) and the SDF working group.  Input for <xref target="example1"/> was provided by <contact fullname="Ari Keränen"/>.</t>
      <!--  LocalWords:  SDF namespace defaultNamespace instantiation OMA
 -->
<!--  LocalWords:  affordances ZigBee LWM OCF sdfObject sdfThing
 -->
<!--  LocalWords:  idempotency Thingness sdfProperty sdfEvent sdfRef
 -->
<!--  LocalWords:  namespaces sdfRequired Optionality sdfAction
 -->
<!--  LocalWords:  sdfProduct dereferenced dereferencing atomicity
 -->
<!--  LocalWords:  interworking
 -->

</section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA61a63LbOJb+j6dAy1W7do8pXzvtqJN0FF963GtbXlupZCaT
maJISGKbIjQEaEWjdtc+xD7A/pjH2F/bb7JPst85ACnSktPZqXFVKiIIHByc
y3cuYBAE4r4jD0Sk4yQbdWRhh8GREDaxqerIV0LKWzUJM5tE8kQNkyyxic7k
mc4noZWbtydnWx15GU6nWCyHSaqMCAeDXIEm3pVvRKyjLJyAYJyHQxsMaHmW
BaGJhwH9m7h5QRpaZawQEf4f6XzekcbGwhSDSWIMNrbzKYicn/bPwHBmVGYK
05E2L5QQYa7CjuxOp2mC5ZhsxEznd6NcF1OMgx1xp+YYikEhsyrPlA1OiB+s
LexY5x2cNpCO0eMwN1Zl8o1jFW+k1DkE9DZL7lVuEvvr3618k6sJJvX/eF5O
CE2UJLVZoVqZZWyulO3Ia23sMIzG8uBg9/Bwl99FicWh3QI3oGNwcxLsHx18
89yPFJkl0fygiLU5D07HOsO83x0+Dw7394L9vaPg2cHz/T1+CQUmaUdG4UC/
tn9L2mCTx3NNOlZxYnVeO/qPYSZv9G+euk76pzBr57zkdZElwYAntGO1nmFx
r7JCkbRL5XzOyIY6lyehDWWYxU5xYcTqlXoo+2OYjZGbZElbIOjYoafXibJD
f9RRYsfFwElgp2ZvQmS8B85G3NycHT97vrvXkVOd0D5u6OjZ3i6WxnHqnr89
eP6sIycqH6lgGtpoLDZ4/OD5EcaLPKHndwfH7ate/zSIMKCC/d293b39Pbzn
Z79id3d/l5iFxYD0eXDSJp4rr4Dxx0ORZMNHPB598y0IGRWRCwihIDcYDYua
/m5PL846svUBM4P3+PvYEiIIAhkOYHgQnRAf/ozj5Tr4WPvp1vfH6jf9XSZG
hnK4VE4MxSeZVJ+mKrdGWs2kCqMkRi0oRvBMJkMapLlwrDCLFCkwLjWbLDUr
JzD61GCIKRGJ0mGXOm9DYlbOQuPIqxiCBF+RnkxAIQ2zURGOFDMIVpiQZydW
9yrVU1gok6OhXqacjV3SzjJNwsSACvlzlvzNMb+JSSeXW0wprkRDfPS1BrfQ
BlzEgh4E5MVjNR9wEBrlhwwfVmPT3IGBypMw9XsYOkOmVKzituDX3Yxx1ExV
lAw9roFpQiaaR9KWAyXDYkTHgRAGcxnGMbMWpv7U3oA0HR9Mgb2SHi1PwJNX
ViinYQ7VF2mYSxVpMwcGTqR2rIZLaG3zAHE2qWO/nOb6PonBD/wjGkN2ZkJb
5GqaK0PyJuE4Yo5jT40NdJLAxwDk8I5zMsq4YGsQ4sVXePtjYSxkPJ3TbqSz
0p63WceZnrXbbRkErxr2vbEh+0CdJNOpHs1Z9sekp8wFCNFne6iUSfawWJDz
PTzweedtvz0cyRGnFbDFiWwN5la1SJqQHtkvSxJ8wOeNhU/kc0kRSjnDNPNM
Z/MJMStaOrLKttqOGqKSpLBkZOvy7W2/te3+l8AP+n1z+u9vz29OT+j37e+7
FxfVD+Fn3P6+9/biZPlrufK4d3l5enXiFmNUNoZE67L7B7whqbR61/3z3lX3
ouXcBMdC0C7YSRBZvZ2xk0KXzt1ErEyUJwN3+jfH1//zX3uHkN9XgJ79vb3n
kKF7ONr79hAPs7HK3G46S+f+EaqcC4haweTIBNMUMD1F4EzNNknOjPUsk3AX
BXF9/YEk87EjXwyi6d7hKz9AB24MljJrDLLMVkdWFjshrhlas00lzcb4I0k3
+e3+ofFcyr02+OL7NAEgBXtH379id+gBWO4TNRPC40Hd60qnMw2farg9OQjy
AzgyoDVXgkjUIUycw3IZxAFiwBY8MchjGzlEXOc9KTmAJw+hCWA3Yu5icasc
Xh+2D+A5wvnNFtkK7N2B9V8LoJtNFDYR76Bw4harTenFjZNYPVKEjHKGgF3n
mBgQNY7ZbOBZFXW2UQAfTBG7E+HmGSWB8ViJiv+Yz8MWxsBXi+dSI5A5wQEL
ai8eHtriSlvlYJR9hLBUT9SMBkwySQg4PQOzcE4B/EYNm6I6JLGUoqIMFacZ
FJbZEE1xEMrluZ4Zl5GUASyhQIPTx0nuqW6yluiAZSSo2KhCw1ab4fD0UziZ
gngtuu/JzQrskRtf3/Z2epfdLbnYUG7y3gNbnn9icwrXGCKEMUKaQrYHyVHm
GlQEILo+CezxgokKM46TobWUC9OvdTFvWgzSxIxVLBDhOBI7JKH5cVwzhFyl
6t7T5MzBH2cZz9oIEKR8Mw0jFWRQKCdCj4Y68k9/4kj1SOOlEAD6RlZrOBDD
CRFXhnMJFibsRS69cMn20vIaJ9s0W07/Y5hikQUVyfJQc7dLu0zQoHg70/Iu
yWLeoMYDOQH8axAOAK9FBlFQYuQENSNfc8UCZQ5Nwc0rKuyXmhWwiR3UVGWx
T5SQHWgCh8QnFkOkXYULDUSp4qMOEpQA1cIri5G4hIh9cmJpA2ZnpOlR+xxt
GBaprRH93//4T+/0oceDZiLWkAPOix1WDqfgarNxAjMjGsAXpjFRNgxSSgrl
OBkBfshTvpa3FrkQnbthsmT7EdI8Aks2QzlNwznVMZTbct7aEeKXX36RPyGD
FAvs0CIobnXkgndrcWmNxxZZpjw/Kem38Pphm+ZX7C4Xgdd4QovG1k5NZ2eH
B6i82XGbLld70V3ViPjl/Bq7LcluUDXUG/wEGNk5SUYUdf9ynk0LW00h9mM8
HezvugqVN/ncUhq/zglD7bz55i8QqVUrpL/55p9A+piKTJWvI+6K4AcSkHgg
1YhFR2404EmyUl62ugTi5N2ll5PZryJd6+EpKN1vQCmqQPlO92tIuv8gHA6W
G1B6Q6EWqWxm0jK/x8B4PqUqAdl4mJaEXOnjihTBvlIyx2XLNC181K6HVKRT
FNRqSwlrkbYVVhnBHhnr7F8tlabwWgvoGIf3LoAuYZUdjcqSD3+28RI0y98V
WlJCW56tgqKZLtKY8keO5UDOYZFyjN+WJpxv00SrI+1gZQDY4QLP03NRNlVD
V22i9CwYdrgf4aRVB2ZGux2a6EDKTW4GEz50NZSmXDOhQiFIhz5IaJT6sMiY
ymVZkDpodKz5E2/2KTnlhCk1Dr2MQh0FUwcS/rVIuBni4hEpmdIynMLp44Qz
6CnXOR4PHQmCdzraSvUWQeUDtSypXPJNyiL1eyLGcn1dWwxJF4R7BgGxdlrI
qaoFM+0bNi7ebNUPeZZkJKftx9GG0vVZrnGSsmrwamAI7XOyAvfsrFgv+WGF
kHDW15x5fiLg+cAgB4ybzWbt2QGDXGZ2bNz66AHiNfUBWxLAZicdpspEW9uP
EPYCrNR3bUwwdaxQ2WfmM6jS+7oPDX/9b9TIlKfTKtVqINjUgVTS2ATj0Ist
mmOefGUGtM+x80TpppdNihT7VBytLlwlW53ri+lVJ+3e2UKlKdLIW7cmxs/a
Qcu/h0f8sGI6dNCcQtqjt7kK4x5Kv5bv2VZUPEI/QueZtgGbTwnP52ttidDY
2ZouLE+oILFpZk8F4hW1r0bipXBb4KoMxOts9LNxmNbyyyrALekSFzVbrhln
Gg544DP2WQuMX2Bx/6C9tWY5Iu6AhTYE2KnGy0eqf6TcpZKfULTTXRWJe/wo
9/w9wiM9c5HY0HYt5v1jSvdmdflF6dg/xQaezMSetoQV4Ppt6Ppy8KpUtCYN
a7LUyMNWLOxpUPr/wNEXA9EX2dX+I7vab9xPIby5pE5suFZ3Km/nmQ0/EW+r
Xc7FhuG3D+v7MVTI2XGuYKdT14elrvQUOTiVhFUJZMM7lYkioz7pCFG8bLR0
fNgcajlIdXTHvY5aIRSrKA1zH9S5BEaFuVIvtbm1OMH70Op8jtSpyO14yYij
yja4zV0fFDSm3pExzJDwCWaz+SM3C1O4vKnGGPESyh9ve1flBYprBYlMGUpT
KKVyvSoS1WqHyPcYueHCSY3r2SAlt0r42jpxb0qJLFlCvrFYlNeIdFnz8CDL
9qQ7l/mMRgvuRx2fnFxQy8ctb7syji9+DNeCL2Xj7qj2gFew8u+c1mYJkqJB
lfwxwxNtbNn6gnTSJEqU7/tof7cpqTP+HdetYcmsynO+lvyeKfOFEG+x8kdT
Kk10+Gf8gvKpV/TmMQwh/OIVvQH/cFD5NZ/Ma02+fFW7Q6jUQ94lvqM+AlJQ
lAsI5mQBpDHKLDm1r3JJSok7Yg0VSMoxF2bzV0Qv+K0/iYpMQ/qVf7DkWQws
9e+lv6wuz+QLg+UA3RrkqOztcggKoNZ8OXD6vn96dXveuwque+dX/RccNAJK
R1+5U9+OwUJUlCUImTI7MvW7fBuIO0A+82ZQey83AQVYTHtQl981Ju7DtHAT
KGLK91vCCeT9KzoPVMHToYP3krfmXnl5xTDMMZeaht5COuIx60Miswkym0yn
XXZphlus12wut6Sz3UrdbsfvZDtXI/Vp6u4oA/8ABfR78qT3VQWtdS8rYZVd
p9aMWeNljK/n3asu3cAY+HPu77wWG0mYhQ/i5eqfEJcqTlAsQVKiZhOeUGLY
yRy8+DYUufpQp6mecbij5QEtL/uBrSVF08LyUYKEha55fpbkH+xNP8u+QhFD
FVz972d5UyHg47+fsb4GCL+j/AMLandmO2te35wd083S+23AzoRZJZsAdIEe
iTpTs2A5bpZtCh50BkQWuYJoLVRmySh72aK6mSSPUl0HA9LqRN+r+OPqSIe5
OeWvATooJhVdWqLMTAnbS0ZdZ54LPRrKislA5WzWjox7RS0BAuQOhZswsg+C
NcCfF4hOXShC3BYDW3/5WEpC3JQ4SkX1RMFkDU3MqH8nemWIXffyNHOftVCA
q1kcTRigoEVY3ORwBZbf9s+Co0DRArIlOMQWeFPkCna+Zv1i4S/goSwYeykf
GCb5FN8gDJJ0/VrH3HXZ0W42JxzxhjE06Nc/cHEYRJe3LPalURARdyvNF/RP
3rEnZeG+7oZdiLM85MsDWUXffM1xui7mX3s4Ga5ZNAk5UBCK8ZWL7ya5G/7l
5cgzf1T6CoMD8DXUifF/cd+ZlH0LbmpRyhI5PB5SaqPyeruD+SKvePcDfxNC
B4W0rftSpPo2ZIvyTVCgL4oanw6xuG4Q4YJ+AlDoIthhaW6XK52muXddmHDE
Iqcbv94VWSwVQeVXKtlygtN8l7822jnmxI9PkmtKcWkGf9skrilNMs6wPURV
x8o0cBRb8CgiqqjD4mb/zQlOPmRFuNZXGYSRbkRjFd3JZEhBnC8BEA7aOMnS
0FegubTydejsEPpWQ0AzWgQ/MoVvDMWJiQrjoxZdqZfeAq1u3nqDN7DSNyfM
AQX6QRjdUQreje4yPUtVPHLXKASFDmlU/LKVaY4k3Bjkz8nIfekLC7pWLvdl
7r1lszUHADtXAUE5KsyjsfiBPj6Sm/39/s0PW2UmzVBKAZam8udJ9KEJNyHI
1BaL5Y0Wf3ziL1/5w4vFYtHNE/lvKv/178ixH/iw/PWAvNBRmL6jS/6OrBLq
Mp9vJmc+ibCJa/r1LruCvzxYQygcgqfYJRx/TEZvUHJcvLuUveMzWZVu9Ms3
Mp+gAvYnfLMTzZ2sMvKxWolHv0/vuWLj+8wnKdWagzzT43aJ0Ykj1XWfdTxF
xG1MH39Qrbe8NVs+cPlgkTfT13JPH4vQyGvSTRL/BzP7pefuKAAA

-->

</rfc>
