<?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.39 (Ruby 2.6.10) -->
<?rfc rfcedstyle="yes"?>
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc text-list-symbols="-o*+"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-tschofenig-rats-psa-token-13" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.0 -->
  <front>
    <title abbrev="PSA Attestation Token">Arm's Platform Security Architecture (PSA) Attestation Token</title>
    <seriesInfo name="Internet-Draft" value="draft-tschofenig-rats-psa-token-13"/>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization/>
      <address>
        <email>Hannes.Tschofenig@gmx.net</email>
      </address>
    </author>
    <author initials="S." surname="Frost" fullname="Simon Frost">
      <organization>Arm Limited</organization>
      <address>
        <email>Simon.Frost@arm.com</email>
      </address>
    </author>
    <author initials="M." surname="Brossard" fullname="Mathias Brossard">
      <organization>Arm Limited</organization>
      <address>
        <email>Mathias.Brossard@arm.com</email>
      </address>
    </author>
    <author initials="A." surname="Shaw" fullname="Adrian Shaw">
      <organization>HP Labs</organization>
      <address>
        <email>adrianlshaw@acm.org</email>
      </address>
    </author>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization>Linaro</organization>
      <address>
        <email>thomas.fossati@linaro.org</email>
      </address>
    </author>
    <date year="2023" month="August" day="31"/>
    <area>Security</area>
    <workgroup>Remote ATtestation ProcedureS</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 156?>

<t>The Platform Security Architecture (PSA) is a family of hardware and firmware
security specifications, as well as open-source reference implementations, to
help device makers and chip manufacturers build best-practice security into
products. Devices that are PSA compliant are able to produce attestation tokens
as described in this memo, which are the basis for a number of different
protocols, including secure provisioning and network access control.  This
document specifies the PSA attestation token structure and semantics.</t>
      <t>The PSA attestation token is a profiled Entity Attestation Token (EAT).</t>
      <t>This specification describes what claims are used in an attestation token
generated by PSA compliant systems, how these claims get serialized to the
wire, and how they are cryptographically protected.</t>
    </abstract>
  </front>
  <middle>
    <?line 172?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Trusted execution environments are now present in many devices, which provide a
safe environment to place security sensitive code such as cryptography, secure
boot, secure storage, and other essential security functions. These security
functions are typically exposed through a narrow and well-defined interface,
and can be used by operating system libraries and applications.  Various APIs
have been developed by Arm as part of the Platform Security Architecture
<xref target="PSA"/> framework.  This document focuses on the output provided by PSA's
Initial Attestation API. Since the tokens are also consumed by services outside
the device, there is an actual need to ensure interoperability.
Interoperability needs are addressed here by describing the exact syntax and
semantics of the attestation claims, and defining the way these claims are
encoded and cryptographically protected.</t>
      <t>Further details on concepts expressed below can be found in the PSA Security
Model documentation <xref target="PSA-SM"/>.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
<?line -6?>
      </t>
      <section anchor="glossary">
        <name>Glossary</name>
        <dl newline="true">
          <dt>RoT:</dt>
          <dd>
            <t>Root of Trust, the minimal set of software, hardware and data that has to be
implicitly trusted in the platform - there is no software or hardware at a
deeper level that can verify that the Root of Trust is authentic and
unmodified.  An example of RoT is an initial bootloader in ROM, which contains
cryptographic functions and credentials, running on a specific hardware
platform.</t>
          </dd>
          <dt>SPE:</dt>
          <dd>
            <t>Secure Processing Environment, a platform's processing environment for
software that provides confidentiality and integrity for its runtime state,
from software and hardware, outside of the SPE. Contains trusted code and
trusted hardware.  (Equivalent to Trusted Execution Environment (TEE), or
"secure world".)</t>
          </dd>
          <dt>NSPE:</dt>
          <dd>
            <t>Non Secure Processing Environment, the security domain outside of the SPE,
the Application domain, typically containing the application firmware,
operating systems, and general hardware.  (Equivalent to Rich Execution
Environment (REE), or "normal world".)</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="psa-attester-model">
      <name>PSA Attester Model</name>
      <t><xref target="fig-psa-attester"/> outlines the structure of the PSA Attester according to
the conceptual model described in <xref section="3.1" sectionFormat="of" target="RFC9334"/>.</t>
      <figure anchor="fig-psa-attester">
        <name>PSA Attester</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="448" width="560" viewBox="0 0 560 448" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,144 L 8,432" fill="none" stroke="black"/>
              <path d="M 24,160 L 24,272" fill="none" stroke="black"/>
              <path d="M 24,304 L 24,416" fill="none" stroke="black"/>
              <path d="M 40,336 L 40,384" fill="none" stroke="black"/>
              <path d="M 96,304 L 96,336" fill="none" stroke="black"/>
              <path d="M 144,336 L 144,384" fill="none" stroke="black"/>
              <path d="M 160,192 L 160,256" fill="none" stroke="black"/>
              <path d="M 160,336 L 160,384" fill="none" stroke="black"/>
              <path d="M 208,256 L 208,336" fill="none" stroke="black"/>
              <path d="M 264,192 L 264,256" fill="none" stroke="black"/>
              <path d="M 272,336 L 272,384" fill="none" stroke="black"/>
              <path d="M 288,336 L 288,384" fill="none" stroke="black"/>
              <path d="M 296,208 L 296,240" fill="none" stroke="black"/>
              <path d="M 328,288 L 328,336" fill="none" stroke="black"/>
              <path d="M 360,208 L 360,240" fill="none" stroke="black"/>
              <path d="M 400,336 L 400,384" fill="none" stroke="black"/>
              <path d="M 408,192 L 408,256" fill="none" stroke="black"/>
              <path d="M 416,336 L 416,384" fill="none" stroke="black"/>
              <path d="M 424,32 L 424,64" fill="none" stroke="black"/>
              <path d="M 464,72 L 464,192" fill="none" stroke="black"/>
              <path d="M 464,304 L 464,336" fill="none" stroke="black"/>
              <path d="M 512,32 L 512,64" fill="none" stroke="black"/>
              <path d="M 520,192 L 520,256" fill="none" stroke="black"/>
              <path d="M 520,336 L 520,384" fill="none" stroke="black"/>
              <path d="M 536,160 L 536,272" fill="none" stroke="black"/>
              <path d="M 536,304 L 536,416" fill="none" stroke="black"/>
              <path d="M 552,144 L 552,432" fill="none" stroke="black"/>
              <path d="M 424,32 L 512,32" fill="none" stroke="black"/>
              <path d="M 424,64 L 512,64" fill="none" stroke="black"/>
              <path d="M 8,144 L 456,144" fill="none" stroke="black"/>
              <path d="M 472,144 L 552,144" fill="none" stroke="black"/>
              <path d="M 24,160 L 456,160" fill="none" stroke="black"/>
              <path d="M 472,160 L 536,160" fill="none" stroke="black"/>
              <path d="M 160,192 L 264,192" fill="none" stroke="black"/>
              <path d="M 312,192 L 344,192" fill="none" stroke="black"/>
              <path d="M 408,192 L 520,192" fill="none" stroke="black"/>
              <path d="M 264,224 L 288,224" fill="none" stroke="black"/>
              <path d="M 368,224 L 408,224" fill="none" stroke="black"/>
              <path d="M 160,256 L 264,256" fill="none" stroke="black"/>
              <path d="M 312,256 L 344,256" fill="none" stroke="black"/>
              <path d="M 408,256 L 520,256" fill="none" stroke="black"/>
              <path d="M 24,272 L 200,272" fill="none" stroke="black"/>
              <path d="M 216,272 L 536,272" fill="none" stroke="black"/>
              <path d="M 112,288 L 448,288" fill="none" stroke="black"/>
              <path d="M 24,304 L 88,304" fill="none" stroke="black"/>
              <path d="M 104,304 L 200,304" fill="none" stroke="black"/>
              <path d="M 216,304 L 320,304" fill="none" stroke="black"/>
              <path d="M 336,304 L 456,304" fill="none" stroke="black"/>
              <path d="M 472,304 L 536,304" fill="none" stroke="black"/>
              <path d="M 40,336 L 88,336" fill="none" stroke="black"/>
              <path d="M 104,336 L 144,336" fill="none" stroke="black"/>
              <path d="M 160,336 L 200,336" fill="none" stroke="black"/>
              <path d="M 216,336 L 272,336" fill="none" stroke="black"/>
              <path d="M 288,336 L 320,336" fill="none" stroke="black"/>
              <path d="M 336,336 L 400,336" fill="none" stroke="black"/>
              <path d="M 416,336 L 456,336" fill="none" stroke="black"/>
              <path d="M 472,336 L 520,336" fill="none" stroke="black"/>
              <path d="M 40,384 L 144,384" fill="none" stroke="black"/>
              <path d="M 160,384 L 272,384" fill="none" stroke="black"/>
              <path d="M 288,384 L 400,384" fill="none" stroke="black"/>
              <path d="M 416,384 L 520,384" fill="none" stroke="black"/>
              <path d="M 24,416 L 536,416" fill="none" stroke="black"/>
              <path d="M 8,432 L 552,432" fill="none" stroke="black"/>
              <path d="M 312,192 C 303.16936,192 296,199.16936 296,208" fill="none" stroke="black"/>
              <path d="M 344,192 C 352.83064,192 360,199.16936 360,208" fill="none" stroke="black"/>
              <path d="M 312,256 C 303.16936,256 296,248.83064 296,240" fill="none" stroke="black"/>
              <path d="M 344,256 C 352.83064,256 360,248.83064 360,240" fill="none" stroke="black"/>
              <path d="M 112,288 C 103.16936,288 96,295.16936 96,304" fill="none" stroke="black"/>
              <path d="M 448,288 C 456.83064,288 464,295.16936 464,304" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="472,72 460,66.4 460,77.6" fill="black" transform="rotate(270,464,72)"/>
              <polygon class="arrowhead" points="296,224 284,218.4 284,229.6" fill="black" transform="rotate(0,288,224)"/>
              <circle cx="96" cy="336" r="6" class="opendot" fill="white" stroke="black"/>
              <circle cx="208" cy="336" r="6" class="opendot" fill="white" stroke="black"/>
              <circle cx="328" cy="336" r="6" class="opendot" fill="white" stroke="black"/>
              <circle cx="360" cy="224" r="6" class="opendot" fill="white" stroke="black"/>
              <circle cx="464" cy="336" r="6" class="opendot" fill="white" stroke="black"/>
              <g class="text">
                <text x="468" y="52">Verifier</text>
                <text x="420" y="116">Evidence</text>
                <text x="72" y="180">Attesting</text>
                <text x="160" y="180">Environment</text>
                <text x="188" y="212">Main</text>
                <text x="324" y="212">Main</text>
                <text x="448" y="212">Initial</text>
                <text x="212" y="228">Bootloader</text>
                <text x="324" y="228">Boot</text>
                <text x="464" y="228">Attestation</text>
                <text x="328" y="244">State</text>
                <text x="448" y="244">Service</text>
                <text x="92" y="356">Updateable</text>
                <text x="216" y="356">Application</text>
                <text x="344" y="356">Application</text>
                <text x="440" y="356">PSA</text>
                <text x="472" y="356">RoT</text>
                <text x="64" y="372">PSA</text>
                <text x="96" y="372">RoT</text>
                <text x="184" y="372">RoT</text>
                <text x="324" y="372">Loader</text>
                <text x="468" y="372">Parameters</text>
                <text x="60" y="404">Target</text>
                <text x="136" y="404">Environment</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
                                                    .----------.
                                                    | Verifier |
                                                    '----------'
                                                         ^
                                                         |
                                                Evidence |
                                                         |
.--------------------------------------------------------|----------.
| .------------------------------------------------------|--------. |
| | Attesting Environment                                |        | |
| |                .------------.    .-----.      .------+------. | |
| |                | Main       |   | Main  |     | Initial     | | |
| |                | Bootloader +-->| Boot  o-----+ Attestation | | |
| |                |            |   | State |     | Service     | | |
| |                '-----+------'    '-----'      '-------------' | |
| '----------------------|----------------------------------------' |
|           .------------+--------------+---------------.           |
| .--------|-------------|--------------|----------------|--------. |
| |        |             |              |                |        | |
| | .------o-----. .-----o-------. .----o--------. .-----o------. | |
| | | Updateable | | Application | | Application | | PSA RoT    | | |
| | | PSA RoT    | | RoT         | | Loader      | | Parameters | | |
| | '------------' '-------------' '-------------' '------------' | |
| | Target Environment                                            | |
| '---------------------------------------------------------------' |
'-------------------------------------------------------------------'
]]></artwork>
        </artset>
      </figure>
      <t>The PSA Attester is a relatively straightforward embodiment of the RATS
Attester with exactly one Attesting Environment and one Target Environment.</t>
      <t>The Attesting Environment is responsible for collecting the information to be
represented in PSA claims and to assemble them into Evidence. It is made of two
cooperating components:</t>
      <ul spacing="normal">
        <li>The Main Bootloader (executing at boot-time) measures the loaded software
components, collects the relevant PSA RoT parameters, and stores the recorded
information in secure memory (Main Boot State) from where the Initial
Attestation Service will, when asked for a platform attestation report,
retrieve them.</li>
        <li>The Initial Attestation Service (executing at run-time in SPE) answers
requests coming from NSPE via the PSA attestation API <xref target="PSA-API"/>, collects
and formats the claims from Main Boot State, and uses the Initial Attestation
Key (IAK) to sign the attestation report. The word "Initial" refers to a
limited target environment, namely the state of the Main Bootloader and the
Root of Trust components when the platform booted.</li>
      </ul>
      <t>The Target Environment can be broken down into four macro "objects", some of
which may or may not be present depending on the device architecture:</t>
      <ul spacing="normal">
        <li>(A subset of) the PSA RoT parameters, including Instance and Implementation
IDs.</li>
        <li>The updateable PSA RoT, including the Secure Partition Manager and all PSA
RoT services.</li>
        <li>The (optional) Application RoT, that is any application-defined security
service, possibly making use of the PSA RoT services.</li>
        <li>The loader of the application software running in NSPE.</li>
      </ul>
      <t>A reference implementation of the PSA Attester is provided by <xref target="TF-M"/>.</t>
    </section>
    <section anchor="sec-psa-claims">
      <name>PSA Claims</name>
      <t>This section describes the claims to be used in a PSA attestation token.</t>
      <t>CDDL <xref target="RFC8610"/> along with text descriptions is used to define each claim
independent of encoding.  The following CDDL type(s) are reused by different
claims:</t>
      <artwork><![CDATA[
psa-hash-type = bytes .size 32 / bytes .size 48 / bytes .size 64
]]></artwork>
      <section anchor="caller-claims">
        <name>Caller Claims</name>
        <section anchor="sec-nonce-claim">
          <name>Nonce</name>
          <t>The Nonce claim is used to carry the challenge provided by the caller to demonstrate freshness of the generated token.</t>
          <t>The EAT <xref target="EAT"/> <tt>nonce</tt> (claim key 10) is used.  The following constraints
apply to the <tt>nonce-type</tt>:</t>
          <ul spacing="normal">
            <li>The length MUST be either 32, 48, or 64 bytes.</li>
            <li>Only a single nonce value is conveyed. The array notation MUST NOT be used for encoding the nonce value.</li>
          </ul>
          <t>This claim MUST be present in a PSA attestation token.</t>
          <artwork><![CDATA[
psa-nonce = (
    nonce-label => psa-hash-type
)
]]></artwork>
        </section>
        <section anchor="sec-client-id">
          <name>Client ID</name>
          <t>The Client ID claim represents the security domain of the caller.</t>
          <t>In PSA, a security domain is represented by a signed
integer whereby negative values represent callers from the NSPE and where
positive IDs represent callers from the SPE. The value 0 is not permitted.</t>
          <t>For an example definition of client IDs, see the PSA Firmware Framework <xref target="PSA-FF"/>.</t>
          <t>It is essential that this claim is checked in the verification process to
ensure that a security domain, i.e., an attestation endpoint, cannot spoof a
report from another security domain.</t>
          <t>This claim MUST be present in a PSA attestation token.</t>
          <artwork><![CDATA[
psa-client-id-nspe-type = -2147483648...0
psa-client-id-spe-type = 1..2147483647

psa-client-id-type = psa-client-id-nspe-type / psa-client-id-spe-type

psa-client-id = (
    psa-client-id-key => psa-client-id-type
)
]]></artwork>
        </section>
      </section>
      <section anchor="target-identification-claims">
        <name>Target Identification Claims</name>
        <section anchor="sec-instance-id-claim">
          <name> Instance ID</name>
          <t>The Instance ID claim represents the unique identifier of the Initial
Attestation Key (IAK).  The full definition is in <xref target="PSA-SM"/>.</t>
          <t>The EAT <tt>ueid</tt> (claim key 256) of type RAND is used.  The following constraints
apply to the <tt>ueid-type</tt>:</t>
          <ul spacing="normal">
            <li>The length MUST be 33 bytes.</li>
            <li>The first byte MUST be 0x01 (RAND) followed by the 32-bytes key hash.</li>
          </ul>
          <t>This claim MUST be present in a PSA attestation token.</t>
          <artwork><![CDATA[
psa-instance-id-type = bytes .size 33

psa-instance-id = (
    ueid-label => psa-instance-id-type
)
]]></artwork>
        </section>
        <section anchor="sec-implementation-id">
          <name>Implementation ID</name>
          <t>The Implementation ID claim uniquely identifies the implementation of the
immutable PSA RoT. A verification service uses this claim to locate the
details of the PSA RoT implementation from an Endorser or manufacturer.
Such details are used by a verification service to determine the security properties
or certification status of the PSA RoT implementation.</t>
          <t>The value and format of the ID is decided by
the manufacturer or a particular certification scheme. For example, the ID
could take the form of a product serial number,
database ID, or other appropriate identifier.</t>
          <t>This claim MUST be present in a PSA attestation token.</t>
          <t>Note that this identifies the PSA RoT implementation, not a particular instance.
To uniquely identify an instance, see the Instance ID claim <xref target="sec-instance-id-claim"/>.</t>
          <artwork><![CDATA[
psa-implementation-id-type = bytes .size 32

psa-implementation-id = (
    psa-implementation-id-key => psa-implementation-id-type
)
]]></artwork>
        </section>
        <section anchor="sec-certification-reference">
          <name>Certification Reference</name>
          <t>The Certification Reference claim is used to link the class of chip and PSA RoT
of the attesting device to an associated entry in the PSA Certification
database. It MUST be represented as a string made of nineteen numeric
characters: a thirteen-digit <xref target="EAN-13"/>, followed by a dash "-", followed by
the five-digit versioning information described in <xref target="PSA-Cert-Guide"/>.</t>
          <t>Linking to the PSA Certification entry can still be achieved if this claim is
not present in the token by making an association at a Verifier between the
reference value and other token claim values - for example, the Implementation
ID.</t>
          <artwork><![CDATA[
psa-certification-reference-type = text .regexp "[0-9]{13}-[0-9]{5}"

psa-certification-reference = (
    ? psa-certification-reference-key => 
        psa-certification-reference-type
)
]]></artwork>
        </section>
      </section>
      <section anchor="target-state-claims">
        <name>Target State Claims</name>
        <section anchor="sec-security-lifecycle">
          <name>Security Lifecycle</name>
          <t>The Security Lifecycle claim represents the current lifecycle state of the PSA
RoT. The state is represented by an integer that is divided to convey a major
state and a minor state. A major state is mandatory and defined by <xref target="PSA-SM"/>.
A minor state is optional and 'IMPLEMENTATION DEFINED'. The PSA security
lifecycle state and implementation state are encoded as follows:</t>
          <ul spacing="normal">
            <li>version[15:8] - PSA security lifecycle state, and</li>
            <li>version[7:0] - IMPLEMENTATION DEFINED state.</li>
          </ul>
          <t>The PSA lifecycle states are illustrated in <xref target="fig-lifecycle-states"/>. For PSA,
a Verifier can only trust reports from the PSA RoT when it is in SECURED or
NON_PSA_ROT_DEBUG major states.</t>
          <t>This claim MUST be present in a PSA attestation token.</t>
          <figure anchor="fig-lifecycle-states">
            <name>PSA Lifecycle States</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="352" width="528" viewBox="0 0 528 352" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 48,272 L 48,288" fill="none" stroke="black"/>
                  <path d="M 72,64 L 72,120" fill="none" stroke="black"/>
                  <path d="M 72,168 L 72,192" fill="none" stroke="black"/>
                  <path d="M 72,224 L 72,256" fill="none" stroke="black"/>
                  <path d="M 104,288 L 104,304" fill="none" stroke="black"/>
                  <path d="M 168,144 L 168,256" fill="none" stroke="black"/>
                  <path d="M 184,256 L 184,272" fill="none" stroke="black"/>
                  <path d="M 192,48 L 192,64" fill="none" stroke="black"/>
                  <path d="M 208,208 L 208,240" fill="none" stroke="black"/>
                  <path d="M 224,304 L 224,336" fill="none" stroke="black"/>
                  <path d="M 248,128 L 248,160" fill="none" stroke="black"/>
                  <path d="M 264,160 L 264,200" fill="none" stroke="black"/>
                  <path d="M 288,64 L 288,120" fill="none" stroke="black"/>
                  <path d="M 288,240 L 288,272" fill="none" stroke="black"/>
                  <path d="M 312,96 L 312,120" fill="none" stroke="black"/>
                  <path d="M 312,168 L 312,208" fill="none" stroke="black"/>
                  <path d="M 328,128 L 328,160" fill="none" stroke="black"/>
                  <path d="M 360,304 L 360,336" fill="none" stroke="black"/>
                  <path d="M 368,208 L 368,240" fill="none" stroke="black"/>
                  <path d="M 384,32 L 384,48" fill="none" stroke="black"/>
                  <path d="M 392,208 L 392,256" fill="none" stroke="black"/>
                  <path d="M 432,160 L 432,200" fill="none" stroke="black"/>
                  <path d="M 448,256 L 448,272" fill="none" stroke="black"/>
                  <path d="M 480,96 L 480,208" fill="none" stroke="black"/>
                  <path d="M 520,208 L 520,256" fill="none" stroke="black"/>
                  <path d="M 208,32 L 384,32" fill="none" stroke="black"/>
                  <path d="M 88,48 L 104,48" fill="none" stroke="black"/>
                  <path d="M 168,48 L 192,48" fill="none" stroke="black"/>
                  <path d="M 192,64 L 368,64" fill="none" stroke="black"/>
                  <path d="M 328,80 L 464,80" fill="none" stroke="black"/>
                  <path d="M 24,128 L 128,128" fill="none" stroke="black"/>
                  <path d="M 248,128 L 328,128" fill="none" stroke="black"/>
                  <path d="M 168,144 L 248,144" fill="none" stroke="black"/>
                  <path d="M 328,144 L 416,144" fill="none" stroke="black"/>
                  <path d="M 24,160 L 128,160" fill="none" stroke="black"/>
                  <path d="M 248,160 L 328,160" fill="none" stroke="black"/>
                  <path d="M 208,208 L 368,208" fill="none" stroke="black"/>
                  <path d="M 392,208 L 520,208" fill="none" stroke="black"/>
                  <path d="M 208,240 L 368,240" fill="none" stroke="black"/>
                  <path d="M 64,256 L 184,256" fill="none" stroke="black"/>
                  <path d="M 392,256 L 520,256" fill="none" stroke="black"/>
                  <path d="M 184,272 L 448,272" fill="none" stroke="black"/>
                  <path d="M 48,288 L 168,288" fill="none" stroke="black"/>
                  <path d="M 224,304 L 360,304" fill="none" stroke="black"/>
                  <path d="M 120,320 L 216,320" fill="none" stroke="black"/>
                  <path d="M 224,336 L 360,336" fill="none" stroke="black"/>
                  <path d="M 208,32 C 199.16936,32 192,39.16936 192,48" fill="none" stroke="black"/>
                  <path d="M 88,48 C 79.16936,48 72,55.16936 72,64" fill="none" stroke="black"/>
                  <path d="M 368,64 C 376.83064,64 384,56.83064 384,48" fill="none" stroke="black"/>
                  <path d="M 328,80 C 319.16936,80 312,87.16936 312,96" fill="none" stroke="black"/>
                  <path d="M 464,80 C 472.83064,80 480,87.16936 480,96" fill="none" stroke="black"/>
                  <path d="M 24,128 C 15.16936,128 8,135.16936 8,144" fill="none" stroke="black"/>
                  <path d="M 128,128 C 136.83064,128 144,135.16936 144,144" fill="none" stroke="black"/>
                  <path d="M 416,144 C 424.83064,144 432,151.16936 432,160" fill="none" stroke="black"/>
                  <path d="M 24,160 C 15.16936,160 8,152.83064 8,144" fill="none" stroke="black"/>
                  <path d="M 128,160 C 136.83064,160 144,152.83064 144,144" fill="none" stroke="black"/>
                  <path d="M 64,256 C 55.16936,256 48,263.16936 48,272" fill="none" stroke="black"/>
                  <path d="M 168,288 C 176.83064,288 184,280.83064 184,272" fill="none" stroke="black"/>
                  <path d="M 120,320 C 111.16936,320 104,312.83064 104,304" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="440,200 428,194.4 428,205.6" fill="black" transform="rotate(90,432,200)"/>
                  <polygon class="arrowhead" points="320,168 308,162.4 308,173.6" fill="black" transform="rotate(270,312,168)"/>
                  <polygon class="arrowhead" points="320,120 308,114.4 308,125.6" fill="black" transform="rotate(90,312,120)"/>
                  <polygon class="arrowhead" points="296,120 284,114.4 284,125.6" fill="black" transform="rotate(90,288,120)"/>
                  <polygon class="arrowhead" points="272,200 260,194.4 260,205.6" fill="black" transform="rotate(90,264,200)"/>
                  <polygon class="arrowhead" points="224,320 212,314.4 212,325.6" fill="black" transform="rotate(0,216,320)"/>
                  <circle cx="72" cy="112" r="6" class="closeddot" fill="black"/>
                  <circle cx="72" cy="176" r="6" class="closeddot" fill="black"/>
                  <g class="text">
                    <text x="136" y="52">Enrol</text>
                    <text x="252" y="52">Provisioning</text>
                    <text x="340" y="52">Lockdown</text>
                    <text x="76" y="148">Verifier</text>
                    <text x="288" y="148">Secured</text>
                    <text x="72" y="212">Blocklist</text>
                    <text x="248" y="228">Non-PSA</text>
                    <text x="296" y="228">RoT</text>
                    <text x="336" y="228">Debug</text>
                    <text x="448" y="228">Recoverable</text>
                    <text x="416" y="244">PSA</text>
                    <text x="448" y="244">RoT</text>
                    <text x="488" y="244">Debug</text>
                    <text x="120" y="276">Terminate</text>
                    <text x="292" y="324">Decommissioned</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
                        .----------------------.
         .--- Enrol ---+ Provisioning Lockdown |
        |              '-----------+----------'
        |                          |   .------------------.
        |                          |  |                    |
        *                          v  v                    |
 .--------------.             .---------.                  |
|    Verifier    |  .---------+ Secured +-----------.      |
 '--------------'   |         '-+-------'            |     |
        *           |           |     ^              |     |
        |           |           v     |              v     |
    Blocklist       |    .------------+------.  .----------+----.
        |           |    | Non-PSA RoT Debug |  | Recoverable   |
        |           |    '---------+---------'  | PSA RoT Debug |
      .-+-----------+-.            |            '------+--------'
     |    Terminate   +------------+-------------------'
     '------+--------'
            |              .----------------.
             '------------>| Decommissioned |
                           '----------------'
]]></artwork>
            </artset>
          </figure>
          <artwork><![CDATA[
psa-lifecycle-unknown-type = 0x0000..0x00ff
psa-lifecycle-assembly-and-test-type = 0x1000..0x10ff
psa-lifecycle-psa-rot-provisioning-type = 0x2000..0x20ff
psa-lifecycle-secured-type = 0x3000..0x30ff
psa-lifecycle-non-psa-rot-debug-type = 0x4000..0x40ff
psa-lifecycle-recoverable-psa-rot-debug-type = 0x5000..0x50ff
psa-lifecycle-decommissioned-type = 0x6000..0x60ff

psa-lifecycle-type = 
    psa-lifecycle-unknown-type /
    psa-lifecycle-assembly-and-test-type /
    psa-lifecycle-psa-rot-provisioning-type /
    psa-lifecycle-secured-type /
    psa-lifecycle-non-psa-rot-debug-type /
    psa-lifecycle-recoverable-psa-rot-debug-type /
    psa-lifecycle-decommissioned-type

psa-lifecycle = (
    psa-lifecycle-key => psa-lifecycle-type
)
]]></artwork>
        </section>
        <section anchor="sec-boot-seed">
          <name>Boot Seed</name>
          <t>The Boot Seed claim represents a value created at system boot time that
will allow differentiation of reports from different boot sessions.</t>
          <t>This claim MAY be present in a PSA attestation token.</t>
          <t>If present, it MUST be between 8 and 32 bytes.</t>
          <artwork><![CDATA[
psa-boot-seed-type = bytes .size (8..32)

psa-boot-seed = (
    psa-boot-seed-key => psa-boot-seed-type
)
]]></artwork>
        </section>
      </section>
      <section anchor="software-inventory-claims">
        <name>Software Inventory Claims</name>
        <section anchor="sec-sw-components">
          <name>Software Components</name>
          <t>The Software Components claim is a list of software components that includes
all the software (both code and configuration) loaded by the PSA RoT.  This
claim MUST be included in attestation tokens produced by an implementation
conformant with <xref target="PSA-SM"/>.</t>
          <t>Each entry in the Software Components list describes one software component
using the attributes described in the following subsections.  Unless explicitly
stated, the presence of an attribute is OPTIONAL.</t>
          <t>Note that, as described in <xref target="RFC9334"/>, a relying party will typically see the
result of the verification process from the Verifier in form of an attestation
result, rather than the PSA token from the attesting endpoint.
Therefore, a relying party is not expected to understand the Software
Components claim.  Instead, it is for the Verifier to check this claim against
the available endorsements and provide an answer in form of an "high level"
attestation result, which may or may not include the original Software
Components claim.</t>
          <artwork><![CDATA[
psa-software-component = {
  ? &(measurement-type: 1) => text
    &(measurement-value: 2) => psa-hash-type
  ? &(version: 4) => text
    &(signer-id: 5) => psa-hash-type
  ? &(measurement-desc: 6) => text
}

psa-software-components = (
    psa-software-components-key => [ + psa-software-component ]
)
]]></artwork>
          <section anchor="measurement-type">
            <name>Measurement Type</name>
            <t>The Measurement Type attribute (key=1) is short string representing the role of
this software component.</t>
            <t>The following measurement types MAY be used for code measurements:</t>
            <ul spacing="normal">
              <li>"BL": a Boot Loader</li>
              <li>"PRoT": a component of the PSA Root of Trust</li>
              <li>"ARoT": a component of the Application Root of Trust</li>
              <li>"App": a component of the NSPE application</li>
              <li>"TS": a component of a Trusted Subsystem</li>
            </ul>
            <t>The same labels with a "-config" postfix (e.g., "PRoT-config") MAY be used for
configuration measurements.</t>
          </section>
          <section anchor="measurement-value">
            <name> Measurement Value</name>
            <t>The Measurement Value attribute (key=2) represents a hash of the invariant
software component in memory at startup time. The value MUST be a cryptographic
hash of 256 bits or stronger.</t>
            <t>This attribute MUST be present in a PSA software component.</t>
          </section>
          <section anchor="version">
            <name>Version</name>
            <t>The Version attribute (key=4) is the issued software version in the form of a
text string. The value of this attribute will correspond to the entry in the
original signed manifest of the component.</t>
          </section>
          <section anchor="signer-id">
            <name>Signer ID</name>
            <t>The Signer ID attribute (key=5) is the hash of a signing authority public key
for the software component. The value of this attribute will correspond to the
entry in the original manifest for the component. This can be used by a
Verifier to ensure the components were signed by an expected trusted source.</t>
            <t>This attribute MUST be present in a PSA software component to be compliant with
<xref target="PSA-SM"/>.</t>
          </section>
          <section anchor="measurement-description">
            <name>Measurement Description</name>
            <t>The Measurement Description attribute (key=6) contains a string identifying the
hash algorithm used to compute the corresponding Measurement Value.  The string
SHOULD be encoded according to <xref target="IANA-HashFunctionTextualNames"/>.</t>
          </section>
        </section>
      </section>
      <section anchor="verification-claims">
        <name>Verification Claims</name>
        <section anchor="sec-verification-service-indicator">
          <name>Verification Service Indicator</name>
          <t>The Verification Service Indicator claim is a hint used by a relying party to
locate a verification service for the token. The value is a text string that
can be used to locate the service (typically, a URL specifying the address of
the verification service API). A Relying Party may choose to ignore this claim
in favor of other information.</t>
          <artwork><![CDATA[
psa-verification-service-indicator-type = text

psa-verification-service-indicator = (
    ? psa-verification-service-indicator-key =>
        psa-verification-service-indicator-type
)
]]></artwork>
        </section>
        <section anchor="sec-profile-definition-claim">
          <name>Profile Definition</name>
          <t>The Profile Definition claim encodes the unique identifier that corresponds to
the EAT profile described by this document.  This allows a receiver to assign
the intended semantics to the rest of the claims found in the token.</t>
          <t>The EAT <tt>profile</tt> (claim key 265) is used.  The following constraints
apply to its type:</t>
          <ul spacing="normal">
            <li>The URI encoding MUST be used.</li>
            <li>The value MUST be <tt>http://arm.com/psa/2.0.0</tt>.</li>
          </ul>
          <t>This claim MUST be present in a PSA attestation token.</t>
          <t>See <xref target="sec-backwards-compat"/>, for considerations about backwards compatibility
with previous versions of the PSA attestation token format.</t>
          <artwork><![CDATA[
psa-profile-type = "http://arm.com/psa/2.0.0"

psa-profile = (
    profile-label => psa-profile-type
)
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="sec-backwards-compat">
      <name>Backwards Compatibility Considerations</name>
      <t>A previous version of this specification (identified by the <tt>PSA_IOT_PROFILE_1</tt>
profile) used claim key values from the "private use range" of the CWT Claims
registry.  These claim keys have now been retired and their use is deprecated.</t>
      <t><xref target="tab-claim-map"/> provides the mappings between the deprecated and new claim
keys.</t>
      <table anchor="tab-claim-map">
        <name>Claim key mappings</name>
        <thead>
          <tr>
            <th align="left"> </th>
            <th align="left">PSA_IOT_PROFILE_1</th>
            <th align="left">http://arm.com/psa/2.0.0</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Nonce</td>
            <td align="left">-75008</td>
            <td align="left">10 (EAT nonce)</td>
          </tr>
          <tr>
            <td align="left">Instance ID</td>
            <td align="left">-75009</td>
            <td align="left">256 (EAT euid)</td>
          </tr>
          <tr>
            <td align="left">Profile Definition</td>
            <td align="left">-75000</td>
            <td align="left">265 (EAT eat_profile)</td>
          </tr>
          <tr>
            <td align="left">Client ID</td>
            <td align="left">-75001</td>
            <td align="left">2394</td>
          </tr>
          <tr>
            <td align="left">Security Lifecycle</td>
            <td align="left">-75002</td>
            <td align="left">2395</td>
          </tr>
          <tr>
            <td align="left">Implementation ID</td>
            <td align="left">-75003</td>
            <td align="left">2396</td>
          </tr>
          <tr>
            <td align="left">Boot Seed</td>
            <td align="left">-75004</td>
            <td align="left">2397</td>
          </tr>
          <tr>
            <td align="left">Certification Reference</td>
            <td align="left">-75005</td>
            <td align="left">2398</td>
          </tr>
          <tr>
            <td align="left">Software Components</td>
            <td align="left">-75006</td>
            <td align="left">2399</td>
          </tr>
          <tr>
            <td align="left">Verification Service Indicator</td>
            <td align="left">-75010</td>
            <td align="left">2400</td>
          </tr>
        </tbody>
      </table>
      <t>The new profile introduces three further changes:</t>
      <ul spacing="normal">
        <li>the "Boot Seed" claim is now optional and variable length (see
<xref target="sec-boot-seed"/>),</li>
        <li>the "No Software Measurements" claim has been retired,</li>
        <li>the "Certification Reference" syntax changed from EAN-13 to EAN-13+5 (see
<xref target="sec-certification-reference"/>).</li>
      </ul>
      <t>Unless compatibility with existing infrastructure is a concern, emitters (e.g.,
devices that implement the PSA Attestation API) SHOULD produce tokens with
the claim keys specified in this document.</t>
      <t>To simplify the transition to the token format described in this
document it is RECOMMENDED that receivers (e.g., PSA Attestation Verifiers)
accept tokens encoded according to the old profile (<tt>PSA_IOT_PROFILE_1</tt>) as well as
to the new profile (<tt>http://arm.com/psa/2.0.0</tt>), at least for the time needed to
their clients to upgrade.</t>
    </section>
    <section anchor="sec-token-encoding-and-signing">
      <name> Token Encoding and Signing</name>
      <t>The PSA attestation token is encoded in CBOR <xref target="RFC8949"/> format.  Only
definite-length string, arrays, and maps are allowed.</t>
      <t>Cryptographic protection is obtained by wrapping the <tt>psa-token</tt> map in a COSE
Web Token (CWT) <xref target="RFC8392"/>.  For asymmetric key algorithms, the signature
structure MUST be COSE_Sign1.  For symmetric key algorithms, the signature
structure MUST be COSE_Mac0.</t>
      <t>Acknowledging the variety of markets, regulations and use cases in which the
PSA attestation token can be used, this specification does not impose any
strong requirement on the cryptographic algorithms that need to be supported by
Attesters and Verifiers.  It is assumed that the flexibility provided by the
COSE format is sufficient to deal with the level of cryptographic agility
needed to adapt to specific use cases.  For interoperability considerations, it
is RECOMMENDED that commonly adopted algorithms are used, such as those
discussed in <xref target="COSE-ALGS"/>).  It is expected that receivers (Verifiers and
Relying Parties) will accept a wider range of algorithms, while Attesters would
produce PSA tokens using only one such algorithm.</t>
      <t>The CWT CBOR tag (61) is not used.  An application that needs to exchange PSA
attestation tokens can wrap the serialised COSE_Sign1 or COSE_Mac0 in the media
type defined in <xref target="sec-iana-media-types"/> or the CoAP Content-Format defined in
<xref target="sec-iana-coap-content-format"/>.</t>
    </section>
    <section anchor="sec-scalability">
      <name>Scalability Considerations</name>
      <t>IAKs can be either raw public keys or certified public keys.</t>
      <t>Certified public keys require the manufacturer to run the certification
authority (CA) that issues X.509 certs for the IAKs.  (Note that operating a CA
is a complex and expensive task that may be unaffordable to certain
manufacturers.)</t>
      <t>If applicable, such approach provides sensibly better scalability properties
compared to using raw public keys, namely:</t>
      <ul spacing="normal">
        <li>storage requirements on the verifier side are minimised - the same
manufacturer's trust anchor is used for any number of devices,</li>
        <li>the provisioning model is simpler and more robust since there is no need to
notify the verifier about each newly manufactured device.</li>
      </ul>
      <t>The IAK's X.509 cert can be inlined in the PSA token using the <tt>x5chain</tt> COSE
header parameter <xref target="COSE-X509"/> at the cost of an increase in the PSA token
size.  <xref section="4.4" sectionFormat="of" target="TLS12-IoT"/> and <xref section="15" sectionFormat="of" target="TLS13-IoT"/> provide
guidance for profiling X.509 certs used in IoT deployments.
Note that the exact split between pre-provisioned and inlined certs may vary
depending on the specific deployment.  In that respect, <tt>x5chain</tt> is quite
flexible: it can contain the end-entity (EE) cert only, the EE and a partial
chain, or the EE and the full chain up to the trust anchor (see <xref section="2" sectionFormat="of" target="COSE-X509"/> for the details).  Deciding a sensible split point may depend on
constraints around network bandwidth and computing resources available to the
endpoints (especially network buffers).</t>
    </section>
    <section anchor="freshness-model">
      <name>Freshness Model</name>
      <t>The PSA Token supports the freshness models for attestation Evidence based on
nonces and epoch handles (Section <xref target="RFC9334" section="10.2" sectionFormat="bare"/> and Section <xref target="RFC9334" section="10.3" sectionFormat="bare"/> of <xref target="RFC9334"/>) using
the <tt>nonce</tt> claim to convey the nonce or epoch handle supplied by the Verifier.
No further assumption on the specific remote attestation protocol is made.</t>
    </section>
    <section anchor="collated-cddl">
      <name>Collated CDDL</name>
      <artwork><![CDATA[
psa-token = {
    psa-nonce
    psa-instance-id
    psa-verification-service-indicator
    psa-profile
    psa-implementation-id
    psa-client-id
    psa-lifecycle
    psa-certification-reference
    ? psa-boot-seed
    psa-software-components
}

psa-client-id-key = 2394
psa-lifecycle-key = 2395
psa-implementation-id-key = 2396
psa-boot-seed-key = 2397
psa-certification-reference-key = 2398
psa-software-components-key = 2399
psa-verification-service-indicator-key = 2400

nonce-label = 10
ueid-label = 256
profile-label = 265

psa-hash-type = bytes .size 32 / bytes .size 48 / bytes .size 64

psa-boot-seed-type = bytes .size (8..32)

psa-boot-seed = (
    psa-boot-seed-key => psa-boot-seed-type
)

psa-client-id-nspe-type = -2147483648...0
psa-client-id-spe-type = 1..2147483647

psa-client-id-type = psa-client-id-nspe-type / psa-client-id-spe-type

psa-client-id = (
    psa-client-id-key => psa-client-id-type
)

psa-certification-reference-type = text .regexp "[0-9]{13}-[0-9]{5}"

psa-certification-reference = (
    ? psa-certification-reference-key => 
        psa-certification-reference-type
)

psa-implementation-id-type = bytes .size 32

psa-implementation-id = (
    psa-implementation-id-key => psa-implementation-id-type
)

psa-instance-id-type = bytes .size 33

psa-instance-id = (
    ueid-label => psa-instance-id-type
)

psa-nonce = (
    nonce-label => psa-hash-type
)

psa-profile-type = "http://arm.com/psa/2.0.0"

psa-profile = (
    profile-label => psa-profile-type
)

psa-lifecycle-unknown-type = 0x0000..0x00ff
psa-lifecycle-assembly-and-test-type = 0x1000..0x10ff
psa-lifecycle-psa-rot-provisioning-type = 0x2000..0x20ff
psa-lifecycle-secured-type = 0x3000..0x30ff
psa-lifecycle-non-psa-rot-debug-type = 0x4000..0x40ff
psa-lifecycle-recoverable-psa-rot-debug-type = 0x5000..0x50ff
psa-lifecycle-decommissioned-type = 0x6000..0x60ff

psa-lifecycle-type = 
    psa-lifecycle-unknown-type /
    psa-lifecycle-assembly-and-test-type /
    psa-lifecycle-psa-rot-provisioning-type /
    psa-lifecycle-secured-type /
    psa-lifecycle-non-psa-rot-debug-type /
    psa-lifecycle-recoverable-psa-rot-debug-type /
    psa-lifecycle-decommissioned-type

psa-lifecycle = (
    psa-lifecycle-key => psa-lifecycle-type
)

psa-software-component = {
  ? &(measurement-type: 1) => text
    &(measurement-value: 2) => psa-hash-type
  ? &(version: 4) => text
    &(signer-id: 5) => psa-hash-type
  ? &(measurement-desc: 6) => text
}

psa-software-components = (
    psa-software-components-key => [ + psa-software-component ]
)

psa-verification-service-indicator-type = text

psa-verification-service-indicator = (
    ? psa-verification-service-indicator-key =>
        psa-verification-service-indicator-type
)

]]></artwork>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>Implementations of this specification are provided by the Trusted
Firmware-M project <xref target="TF-M"/>, the Veraison project <xref target="Veraison"/>, and the Xclaim
<xref target="Xclaim"/> library.  All three implementations are released as open-source software.</t>
    </section>
    <section anchor="security-and-privacy-considerations">
      <name>Security and Privacy Considerations</name>
      <t>This specification re-uses the EAT specification and therefore the CWT specification.
Hence, the security and privacy considerations of those specifications apply here as well.</t>
      <t>Since CWTs offer different ways to protect the token, this specification
profiles those options and allows signatures using public key cryptography as
well as message authentication codes (MACs). COSE_Sign1 is used for digital
signatures and COSE_Mac0 for MACs, as defined in the COSE specification <xref target="STD96"/>.
Note, however, that the use of MAC authentication is NOT RECOMMENDED due to the associated
infrastructure costs for key management and protocol complexities.</t>
      <t>Attestation tokens contain information that may be unique to a device and
therefore they may allow to single out an individual device for tracking
purposes.  Deployments that have privacy requirements must take appropriate
measures to ensure that the token is only used to provision anonymous/pseudonym
keys.</t>
    </section>
    <section anchor="verification">
      <name>Verification</name>
      <t>To verify the token, the primary need is to check correct encoding and signing
as detailed in <xref target="sec-token-encoding-and-signing"/>.
The key used for verification is either supplied to the Verifier by an
authorized Endorser along with the corresponding Attester's Instance ID or
inlined in the token using the <tt>x5chain</tt> header parameter as described in
<xref target="sec-scalability"/>.
If the IAK is a raw public key, the Instance and Implementation ID claims are
used (together with the kid in the COSE header, if present) to assist in
locating the key used to verify the signature covering the CWT token.
If the IAK is a certified public key, X.509 path construction and validation
(<xref section="6" sectionFormat="of" target="X509"/>) up to a trusted CA MUST be successful before the key is
used to verify the token signature.</t>
      <t>In addition, the Verifier will typically operate a policy where values of some
of the claims in this profile can be compared to reference values, registered
with the Verifier for a given deployment, in order to confirm that the device
is endorsed by the manufacturer supply chain.  The policy may require that the
relevant claims must have a match to a registered reference value.  All claims
may be worthy of additional appraisal.  It is likely that most deployments
would include a policy with appraisal for the following claims:</t>
      <ul spacing="normal">
        <li>Implementation ID - the value of the Implementation ID can be used to
identify the verification requirements of the deployment.</li>
        <li>Software Component, Measurement Value - this value can uniquely identify a
firmware release from the supply chain. In some cases, a Verifier may
maintain a record for a series of firmware releases, being patches to an
original baseline release. A verification policy may then allow this value to
match any point on that release sequence or expect some minimum level of
maturity related to the sequence.</li>
        <li>Software Component, Signer ID - where present in a deployment, this could
allow a Verifier to operate a more general policy than that for Measurement
Value as above, by allowing a token to contain any firmware entries signed by
a known Signer ID, without checking for a uniquely registered version.</li>
        <li>Certification Reference - if present, this value could be used as a hint to
locate security certification information associated with the attesting
device. An example could be a reference to a <xref target="PSACertified"/> certificate.</li>
      </ul>
      <section anchor="ar4si-trustworthiness-claims-mappings">
        <name> AR4SI Trustworthiness Claims Mappings</name>
        <t><xref target="RATS-AR4SI"/> defines an information model that Verifiers can employ to
produce Attestation Results.
AR4SI provides a set of standardized appraisal categories and tiers that
greatly simplifies the task of writing Relying Party policies in multi-attester
environments.</t>
        <t>The contents of <xref target="tab-ar4si-map"/> are intended as guidance for implementing a
PSA Verifier that computes its results using AR4SI.
The table describes which PSA Evidence claims (if any) are related to which
AR4SI trustworthiness claim, and therefore what the Verifier must consider when
deciding if and how to appraise a certain feature associated with the PSA
Attester.</t>
        <table anchor="tab-ar4si-map">
          <name>AR4SI Claims mappings</name>
          <thead>
            <tr>
              <th align="left">Trustworthiness Vector claims</th>
              <th align="left">Related PSA claims</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>configuration</tt></td>
              <td align="left">Software Components (<xref target="sec-sw-components"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>executables</tt></td>
              <td align="left">ditto</td>
            </tr>
            <tr>
              <td align="left">
                <tt>file-system</tt></td>
              <td align="left">N/A</td>
            </tr>
            <tr>
              <td align="left">
                <tt>hardware</tt></td>
              <td align="left">Implementation ID (<xref target="sec-implementation-id"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>instance-identity</tt></td>
              <td align="left">Instance ID (<xref target="sec-instance-id-claim"/>).  The Security Lifecycle (<xref target="sec-security-lifecycle"/>) can also impact the derived identity.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>runtime-opaque</tt></td>
              <td align="left">Indirectly derived from <tt>executables</tt>, <tt>hardware</tt>, and <tt>instance-identity</tt>.  The Security Lifecycle (<xref target="sec-security-lifecycle"/>) can also be relevant: for example, any debug state will expose otherwise protected memory.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>sourced-data</tt></td>
              <td align="left">N/A</td>
            </tr>
            <tr>
              <td align="left">
                <tt>storage-opaque</tt></td>
              <td align="left">Indirectly derived from <tt>executables</tt>, <tt>hardware</tt>, and <tt>instance-identity</tt>.</td>
            </tr>
          </tbody>
        </table>
        <t>This document does not prescribe what value must be chosen based on each
possible situation: when assigning specific Trustworthiness Claim values, an
implementation is expected to follow the algorithm described in <xref section="2.3.3" sectionFormat="of" target="RATS-AR4SI"/>.</t>
      </section>
      <section anchor="endorsements-reference-values-and-verification-key-material">
        <name>Endorsements, Reference Values and Verification Key Material</name>
        <t><xref target="PSA-Endorsements"/> defines a protocol based on the <xref target="RATS-CoRIM"/> data model
that can be used to convey PSA Endorsements, Reference Values and verification
key material to the Verifier.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="cbor-web-token-claims-registration">
        <name>CBOR Web Token Claims Registration</name>
        <t>IANA is requested to make permanent the following claims that have been
assigned via early allocation in the "CBOR Web Token (CWT) Claims" registry
<xref target="IANA-CWT"/>.</t>
        <section anchor="client-id-claim">
          <name> Client ID Claim</name>
          <ul spacing="normal">
            <li>Claim Name: psa-client-id</li>
            <li>Claim Description: PSA Client ID</li>
            <li>JWT Claim Name: N/A</li>
            <li>Claim Key: 2394</li>
            <li>Claim Value Type(s): signed integer</li>
            <li>Change Controller: Hannes Tschofenig</li>
            <li>Specification Document(s): <xref target="sec-client-id"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="security-lifecycle-claim">
          <name> Security Lifecycle Claim</name>
          <ul spacing="normal">
            <li>Claim Name: psa-security-lifecycle</li>
            <li>Claim Description: PSA Security Lifecycle</li>
            <li>JWT Claim Name: N/A</li>
            <li>Claim Key: 2395</li>
            <li>Claim Value Type(s): unsigned integer</li>
            <li>Change Controller: Hannes Tschofenig</li>
            <li>Specification Document(s): <xref target="sec-security-lifecycle"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="implementation-id-claim">
          <name> Implementation ID Claim</name>
          <ul spacing="normal">
            <li>Claim Name: psa-implementation-id</li>
            <li>Claim Description: PSA Implementation ID</li>
            <li>JWT Claim Name: N/A</li>
            <li>Claim Key: 2396</li>
            <li>Claim Value Type(s): byte string</li>
            <li>Change Controller: Hannes Tschofenig</li>
            <li>Specification Document(s): <xref target="sec-implementation-id"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="boot-seed-claim">
          <name> Boot Seed Claim</name>
          <ul spacing="normal">
            <li>Claim Name: psa-boot-seed</li>
            <li>Claim Description: PSA Boot Seed</li>
            <li>JWT Claim Name: N/A</li>
            <li>Claim Key: 2397</li>
            <li>Claim Value Type(s): byte string</li>
            <li>Change Controller: Hannes Tschofenig</li>
            <li>Specification Document(s): <xref target="sec-boot-seed"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="certification-reference-claim">
          <name> Certification Reference Claim</name>
          <ul spacing="normal">
            <li>Claim Name: psa-certification-reference</li>
            <li>Claim Description: PSA Certification Reference</li>
            <li>JWT Claim Name: N/A</li>
            <li>Claim Key: 2398</li>
            <li>Claim Value Type(s): text string</li>
            <li>Change Controller: Hannes Tschofenig</li>
            <li>Specification Document(s): <xref target="sec-certification-reference"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="software-components-claim">
          <name> Software Components Claim</name>
          <ul spacing="normal">
            <li>Claim Name: psa-software-components</li>
            <li>Claim Description: PSA Software Components</li>
            <li>JWT Claim Name: N/A</li>
            <li>Claim Key: 2399</li>
            <li>Claim Value Type(s): array</li>
            <li>Change Controller: Hannes Tschofenig</li>
            <li>Specification Document(s): <xref target="sec-sw-components"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="verification-service-indicator-claim">
          <name> Verification Service Indicator Claim</name>
          <ul spacing="normal">
            <li>Claim Name: psa-verification-service-indicator</li>
            <li>Claim Description: PSA Verification Service Indicator</li>
            <li>JWT Claim Name: N/A</li>
            <li>Claim Key: 2400</li>
            <li>Claim Value Type(s): text string</li>
            <li>Change Controller: Hannes Tschofenig</li>
            <li>Specification Document(s): <xref target="sec-verification-service-indicator"/> of RFCthis</li>
          </ul>
        </section>
      </section>
      <section anchor="sec-iana-media-types">
        <name>Media Types</name>
        <t>No new media type registration is requested.
To indicate that the transmitted content is a PSA Attestation Token,
applications can use the <tt>application/eat+cwt</tt> media type defined in
<xref target="EAT-MEDIATYPES"/> with the <tt>eat_profile</tt> parameter set to
<tt>http://arm.com/psa/2.0.0</tt> (or <tt>PSA_IOT_PROFILE_1</tt> if the token is encoded
according to the old profile, see <xref target="sec-backwards-compat"/>).</t>
      </section>
      <section anchor="sec-iana-coap-content-format">
        <name>CoAP Content-Formats Registration</name>
        <t>IANA is requested to register two CoAP Content-Format IDs in the "CoAP
Content-Formats" registry <xref target="IANA-CoAP-Content-Formats"/>:</t>
        <ul spacing="normal">
          <li>One for the <tt>application/eat+cwt</tt> media type with the <tt>eat_profile</tt> parameter
equal to <tt>http://arm.com/psa/2.0.0</tt></li>
          <li>Another for the <tt>application/eat+cwt</tt> media type with the <tt>eat_profile</tt>
parameter equal to <tt>PSA_IOT_PROFILE_1</tt></li>
        </ul>
        <section anchor="registry-contents">
          <name>Registry Contents</name>
          <ul spacing="normal">
            <li>Media Type: <tt>application/eat+cwt; eat_profile="http://arm.com/psa/2.0.0"</tt></li>
            <li>Encoding: -</li>
            <li>Id: [[To-be-assigned by IANA]]</li>
            <li>Reference: RFCthis</li>
            <li>Media Type: <tt>application/eat+cwt; eat_profile="PSA_IOT_PROFILE_1"</tt></li>
            <li>Encoding: -</li>
            <li>Id: [[To-be-assigned by IANA]]</li>
            <li>Reference: RFCthis</li>
          </ul>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="PSA-SM" target="https://developer.arm.com/-/media/Files/pdf/PlatformSecurityArchitecture/Architect/DEN0079_PSA_SM_ALPHA-03_RC01.pdf">
          <front>
            <title>Platform Security Architecture Security Model 1.0 (PSA-SM)</title>
            <author>
              <organization>Arm</organization>
            </author>
            <date year="2019" month="February"/>
          </front>
        </reference>
        <reference anchor="EAN-13" target="https://www.gs1.org/standards/barcodes/ean-upc">
          <front>
            <title>International Article Number - EAN/UPC barcodes</title>
            <author>
              <organization>GS1</organization>
            </author>
            <date year="2019"/>
          </front>
        </reference>
        <reference anchor="PSA-FF" target="https://developer.arm.com/documentation/den0063/a">
          <front>
            <title>Platform Security Architecture Firmware Framework 1.0 (PSA-FF)</title>
            <author>
              <organization>Arm</organization>
            </author>
            <date year="2019" month="February"/>
          </front>
        </reference>
        <reference anchor="PSA-Cert-Guide" target="https://www.psacertified.org/app/uploads/2020/07/JSADEN011-PSA_Certified_Level_2_Step-by-Step-1.1-20200403.pdf">
          <front>
            <title>PSA Certified Level 2 Step by Step Guide Version 1.1</title>
            <author>
              <organization>PSA Certified</organization>
            </author>
            <date year="2020"/>
          </front>
        </reference>
        <reference anchor="STD96">
          <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="COSE-ALGS">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</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 a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
        <reference anchor="IANA-CWT" target="https://www.iana.org/assignments/cwt/cwt.xhtml#claims-registry">
          <front>
            <title>CBOR Web Token (CWT) Claims</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="X509">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="EAT">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <author fullname="Giridhar Mandyam" initials="G." surname="Mandyam">
              <organization>Qualcomm Technologies Inc.</organization>
            </author>
            <author fullname="Jeremy O'Donoghue" initials="J." surname="O'Donoghue">
              <organization>Qualcomm Technologies Inc.</organization>
            </author>
            <author fullname="Carl Wallace" initials="C." surname="Wallace">
              <organization>Red Hound Software, Inc.</organization>
            </author>
            <date day="30" month="June" year="2023"/>
            <abstract>
              <t>   An Entity Attestation Token (EAT) provides an attested claims set
   that describes state and characteristics of an entity, a device like
   a smartphone, IoT device, network equipment or such.  This claims set
   is used by a relying party, server or service to determine how much
   it wishes to trust the entity.

   An EAT is either a CBOR Web Token (CWT) or JSON Web Token (JWT) with
   attestation-oriented claims.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-21"/>
        </reference>
        <reference anchor="EAT-MEDIATYPES">
          <front>
            <title>EAT Media Types</title>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer Institute for Secure Information Technology</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>arm</organization>
            </author>
            <date day="23" month="July" year="2023"/>
            <abstract>
              <t>   Payloads used in Remote Attestation Procedures may require an
   associated media type for their conveyance, for example when used in
   RESTful APIs.

   This memo defines media types to be used for Entity Attestation
   Tokens (EAT).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-media-type-04"/>
        </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>
        <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"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <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="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="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="TLS12-IoT">
          <front>
            <title>Transport Layer Security (TLS) / Datagram Transport Layer Security (DTLS) Profiles for the Internet of Things</title>
            <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>A common design pattern in Internet of Things (IoT) deployments is the use of a constrained device that collects data via sensors or controls actuators for use in home automation, industrial control systems, smart cities, and other IoT deployments.</t>
              <t>This document defines a Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) 1.2 profile that offers communications security for this data exchange thereby preventing eavesdropping, tampering, and message forgery. The lack of communication security is a common vulnerability in IoT products that can easily be solved by using these well-researched and widely deployed Internet security protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7925"/>
          <seriesInfo name="DOI" value="10.17487/RFC7925"/>
        </reference>
        <reference anchor="TLS13-IoT">
          <front>
            <title>TLS/DTLS 1.3 Profiles for the Internet of Things</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Arm Limited</organization>
            </author>
            <date day="13" month="March" year="2023"/>
            <abstract>
              <t>   This document is a companion to RFC 7925 and defines TLS/DTLS 1.3
   profiles for Internet of Things devices.  It also updates RFC 7925
   with regards to the X.509 certificate profile.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-uta-tls13-iot-profile-06"/>
        </reference>
        <reference anchor="COSE-X509">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Header Parameters for Carrying and Referencing X.509 Certificates</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="February" year="2023"/>
            <abstract>
              <t>The CBOR Object Signing and Encryption (COSE) message structure uses references to keys in general. For some algorithms, additional properties are defined that carry parameters relating to keys as needed. The COSE Key structure is used for transporting keys outside of COSE messages. This document extends the way that keys can be identified and transported by providing attributes that refer to or contain X.509 certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9360"/>
          <seriesInfo name="DOI" value="10.17487/RFC9360"/>
        </reference>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="IANA-HashFunctionTextualNames" target="https://www.iana.org/assignments/hash-function-text-names">
          <front>
            <title>Hash Function Textual Names</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="IANA-CoAP-Content-Formats" target="https://www.iana.org/assignments/core-parameters">
          <front>
            <title>CoAP Content-Formats</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="TF-M" target="https://www.trustedfirmware.org/projects/tf-m/">
          <front>
            <title>Trusted Firmware-M</title>
            <author>
              <organization>Linaro</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="Veraison" target="https://github.com/veraison/psatoken">
          <front>
            <title>Veraison psatoken package</title>
            <author>
              <organization>The Veraison Project</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="Xclaim" target="https://github.com/laurencelundblade/xclaim">
          <front>
            <title>Xclaim</title>
            <author initials="L." surname="Lundblade" fullname="Laurence Lundblade">
              <organization/>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="PSA" target="https://developer.arm.com/architectures/security-architectures/platform-security-architecture/documentation">
          <front>
            <title>Platform Security Architecture Resources</title>
            <author>
              <organization>Arm</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="PSACertified" target="https://psacertified.org">
          <front>
            <title>PSA Certified IoT Security Framework</title>
            <author>
              <organization>PSA Certified</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="PSA-API" target="https://developer.arm.com/-/media/Files/pdf/PlatformSecurityArchitecture/Implement/IHI0085-PSA_Attestation_API-1.0.2.pdf">
          <front>
            <title>PSA Attestation API 1.0</title>
            <author>
              <organization>Arm</organization>
            </author>
            <date year="2019"/>
          </front>
        </reference>
        <reference anchor="PSA-Endorsements">
          <front>
            <title>A CoRIM Profile for Arm's Platform Security Architecture (PSA)</title>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Arm Ltd</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>Arm Ltd</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <date day="10" month="March" year="2023"/>
            <abstract>
              <t>   PSA Endorsements include reference values, endorsed values,
   cryptographic key material and certification status information that
   a Verifier may need in order to appraise attestation Evidence
   produced by a PSA device.  This memo defines PSA Endorsements as a
   profile of the CoRIM data model.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-fdb-rats-psa-endorsements-02"/>
        </reference>
        <reference anchor="RATS-CoRIM">
          <front>
            <title>Concise Reference Integrity Manifest</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>arm</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>arm</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
              <organization>Intel</organization>
            </author>
            <author fullname="Wei Pan" initials="W." surname="Pan">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="10" month="July" year="2023"/>
            <abstract>
              <t>   Remote Attestation Procedures (RATS) enable Relying Parties to assess
   the trustworthiness of a remote Attester and therefore to decide
   whether to engage in secure interactions with it.  Evidence about
   trustworthiness can be rather complex and it is deemed unrealistic
   that every Relying Party is capable of the appraisal of Evidence.
   Therefore that burden is typically offloaded to a Verifier.  In order
   to conduct Evidence appraisal, a Verifier requires not only fresh
   Evidence from an Attester, but also trusted Endorsements and
   Reference Values from Endorsers and Reference Value Providers, such
   as manufacturers, distributors, or device owners.  This document
   specifies the information elements for representing Endorsements and
   Reference Values in CBOR format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-corim-02"/>
        </reference>
        <reference anchor="RATS-AR4SI">
          <front>
            <title>Attestation Results for Secure Interactions</title>
            <author fullname="Eric Voit" initials="E." surname="Voit">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Hardjono" initials="T." surname="Hardjono">
              <organization>MIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Vincent Scarlata" initials="V." surname="Scarlata">
              <organization>Intel</organization>
            </author>
            <date day="30" month="August" year="2023"/>
            <abstract>
              <t>   This document defines reusable Attestation Result information
   elements.  When these elements are offered to Relying Parties as
   Evidence, different aspects of Attester trustworthiness can be
   evaluated.  Additionally, where the Relying Party is interfacing with
   a heterogeneous mix of Attesting Environment and Verifier types,
   consistent policies can be applied to subsequent information exchange
   between each Attester and the Relying Party.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-ar4si-05"/>
        </reference>
      </references>
    </references>
    <?line 1082?>

<section anchor="example">
      <name>Example</name>
      <t>The following example shows a PSA attestation token for an hypothetical system
comprising two measured software components (a boot loader and a trusted RTOS).
The attesting device is in a lifecycle state <xref target="sec-security-lifecycle"/> of
SECURED.  The attestation has been requested from a client residing in the
SPE:</t>
      <artwork><![CDATA[
{
  / eat_profile /             265: "http://arm.com/psa/2.0.0",
  / psa-client-id /          2394: 2147483647,
  / psa-security-lifecycle / 2395: 12288,
  / psa-implementation-id /  2396: h'000000000000000000000000000
0000000000000000000000000000000000000',
  / psa-boot-seed /          2397: h'0000000000000000',
  / psa-certification-reference / 2398: "1234567890123-12345",
  / psa-software-components / 2399: [
    {
      / measurement value / 2: h'0303030303030303030303030303030
303030303030303030303030303030303',
      / signer ID /         5: h'0404040404040404040404040404040
404040404040404040404040404040404'
    }
  ],
  / nonce /     10: h'010101010101010101010101010101010101010101
0101010101010101010101',
  / ueid /     256: h'010202020202020202020202020202020202020202
020202020202020202020202',
  / psa-vsi / 2400: "https://veraison.example/v1/challenge-respo
nse"
}
]]></artwork>
      <t>The JWK representation of the IAK used for creating the COSE Sign1 signature
over the PSA token is:</t>
      <artwork><![CDATA[
{
  "kty": "EC",
  "crv": "P-256",
  "x": "MKBCTNIcKUSDii11ySs3526iDZ8AiTo7Tu6KPAqv7D4",
  "y": "4Etl6SRW2YiLUrN5vfvVHuhp7x8PxltmWWlbbM4IFyM",
  "d": "870MB6gfuTJ4HtUnUvYMyJpr5eUZNP4Bk43bVdj3eAE"
}

]]></artwork>
      <t>The resulting COSE object is:</t>
      <artwork><![CDATA[
18(
  [
    / protected /   h'A10126',
    / unprotected / {},
    / payload /     h'AA1901097818687474703A2F2F61726D2E636F6D2F
7073612F322E302E3019095A1A7FFFFFFF19095B19300019095C582000000000
0000000000000000000000000000000000000000000000000000000019095D48
000000000000000019095E73313233343536373839303132332D313233343519
095F81A202582003030303030303030303030303030303030303030303030303
0303030303030305582004040404040404040404040404040404040404040404
040404040404040404040A582001010101010101010101010101010101010101
0101010101010101010101010119010058210102020202020202020202020202
02020202020202020202020202020202020202190960782E68747470733A2F2F
7665726169736F6E2E6578616D706C652F76312F6368616C6C656E67652D7265
73706F6E7365',
    / signature /   h'56F50D131FA83979AE064E76E70DC75C070B6D991A
EC08ADF9F41CAB7F1B7E2C47F67DACA8BB49E3119B7BAE77AEC6C89162713E0C
C6D0E7327831E67F32841A'
  ]
)
]]></artwork>
      <t>which has the following base16 encoding:</t>
      <artwork><![CDATA[
d28443a10126a059013baa1901097818687474703a2f2f61726d2e636f6d
2f7073612f322e302e3019095a1a7fffffff19095b19300019095c582000
000000000000000000000000000000000000000000000000000000000000
0019095d48000000000000000019095e7331323334353637383930313233
2d313233343519095f81a202582003030303030303030303030303030303
030303030303030303030303030303030558200404040404040404040404
0404040404040404040404040404040404040404040a5820010101010101
010101010101010101010101010101010101010101010101010119010058
210102020202020202020202020202020202020202020202020202020202
02020202190960782e68747470733a2f2f7665726169736f6e2e6578616d
706c652f76312f6368616c6c656e67652d726573706f6e7365584056f50d
131fa83979ae064e76e70dc75c070b6d991aec08adf9f41cab7f1b7e2c47
f67daca8bb49e3119b7bae77aec6c89162713e0cc6d0e7327831e67f3284
1a
]]></artwork>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Carsten Bormann for help with the CDDL and Nicholas Wood for ideas
and comments.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="L." surname="Lundblade" fullname="Laurence Lundblade">
        <organization>Security Theory LLC</organization>
        <address>
          <email>lgl@securitytheory.com</email>
        </address>
      </contact>
      <contact initials="T." surname="Ban" fullname="Tamas Ban">
        <organization>Arm Limited</organization>
        <address>
          <email>Tamas.Ban@arm.com</email>
        </address>
      </contact>
      <contact initials="S." surname="Trofimov" fullname="Sergei Trofimov">
        <organization>Arm Limited</organization>
        <address>
          <email>Sergei.Trofimov@arm.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAIEW8WQAA+1961rj2JXo//0U+9DfN0DaNr6ADZzTmbjApElDFQeo7vRk
MlXbloyVkiVHkqGcKvIs/Sz9ZGdd9k2yTFFdnXxn5gskXVje17XXWnvd1Ww2
xf2x7AlRREUcHsutYTbfzuVVrIppms3lTThZZlGxksNsMouKcFIss1DuXN0M
d+WwKMK8UEWUJvI2fRcmW0KNx1kIA25Bg7rvg3SSqDnME2RqWjSLfDJLp2ES
3TUzVeTNRa6aBbZswvzQV0zgn7s0Wx3LKJmmIl+O51Gew4C3q0WID4NwEcJ/
kkKIaJEdyyJb5kW33T5qd4XKQgVLMVvYEg9p9u4uS5cLeHodztMilMNbt8ar
LJ2EAezvZku8C1fQOjiW50kRZklYNE9xxUJA4yR4o+I0gflXYS7EIjoWUmZT
6JsXq1g/lrJIJ96fEa3SPMjTrMjCaW4/r+alj0UWTWzjSTqfQ1/7bRG+L5px
lBdN6DZOY/iimf7mayHUspilGaymKSWD+VuVJGEuby2cobuUaXankuhvtOtj
ehLOVRSb5i3X/Hd38/ct2L035E00B1idZSkcz9pggCZzeRHNAVMCf2Dq1KJO
v1PZvAVb8oa8VMUsUrl8Ad/nKgueP67u2TI9awYfBlmkEnkzUw814357JS/U
OPfHVNQhzqHD79Rk3oIO3nC3s3QOSz3D+YqoZsSLKFFZ6g9YUJfWlLv8LqYG
NKyYpAkc9XhZlI/tQgEWJpNQXiyTYByrIKyZyJLm7SwEEpEXFyf+rPFd/Ltc
NymoRQUwtwo38kIlzwc3dWlBlxo434TZXRjJ2yydwmHffwZuUMeW6WiHFgkw
IOh6HyKOAkNp3lwytlo8l3oSGps+ajb2Cf5ln16mQRjLTqtNLA0m2OVRFCwJ
6G9WFIv8eG8vCO/DOF2EWUsvbq+5Nw+DSO2dRXGY7y2C6Z6Z0oztT7hnP+yd
jl6224OjNzDdm5vLN8OLq2+HzXbvzfVJu9OCcWj+ANjesewcteRZOG7Jbrtz
BM9Hw5fNTm8jCH5/0/FBwIyLQK9i2H4RTeJQvlzOx2EGpwaD7b2+OpFjlU0A
CHntvh8eHlp3eQdxdY8YH5BYvme67IUqaS4XE2/JeqUIy7OzX+mwzqJs/qDw
jwwQDXm4O7Czs+ceGNw8S+SiBBD4Pmm3+709VVp7Gdw4/kmYFc3fL6Mg3LgZ
vOmwWTSNNF6bbflfyAtckezKmyJcyPGK/6WR5fdhhlca7Kqz8RTgZpyYseg4
1GKxt1zEqYID6ba77b32YO8PN0NEr06nidhl535Dc7/pvsE5m+NVk/6F2ZrY
sb3f7lUQDx/Dx5vb06M+77V5LOFk6M9vjuX12clR+6ALH09e3Yyaw4vf35iH
PXh4PnwJkPvhdiPIsIEPqZMXr67lD+GYpQS5A3135UmsovlmtAQWrRgQIA/c
JXRB7k0eCvx/6/2smMdfTWiEZhbewV2ZrcobxNX/8aB9RAs/6B62icBuYXHN
01YUFlOWSEJV8BfNy9Hp+fD2x6vRTU2bJnGDZgFSiQBJJJn6rOv24qbTbZ6n
tzTX4Kh7oB/2+CGOxvIQjbksYKA4h2+jtGgukC3GoYG1XfJRr49Lpr96+8cG
7N+qfHa2TCaI5bcgJyxV/BKoJn/2WeAA0owg9RCSxvi8s5jBQM2pHqhJMkti
RykdA+NLOryC/wDTSormGYHv+YvGzrLS+TMxJ83C5kIhhwG2WbPI27Pm5tvH
u/P1im5RDgWyN8yreblxPQU3neqWtDQ49b8A+8v3AB/me+urAZahotxIbzUr
ApnANkLBFkfz12e/A8ZCErdcqMk7dRfWLvMuKmbLMfHRe91xz3SsISsivLql
RQnIqhetiljzCalHr5hH/dTyYj1GbIbYe+/6lVYJLPJXuqCuwzxdZpMNBLJ+
FSmvc75nZLRm+fFCz9ms/b58ndVuzrL/L725gEe5jds7uHav1VuqdmHN4dX5
syFfUSOhK17+/xgh7Xy+iEME6t75t+ft9uEBXaPe9G9gerg3263u2oVpJYZR
EqRZHmqFDVn7NBg77Tb0vkb2Pby9Aa53fX5ZvVSAIRHWUovh9f7NebWFyvbz
SAgYCTaCQLwZXZyhZnt2AkpRviVEs9mUoNwUmQLiF8gSnqXXR7lUcqrmUbyS
6VTOQOgj+QvkP2m4lDBoKfNFOIEDnxCE8oYEneIhjGP8Fw4jaTJtSFBvQ6bu
yIDZ9ChSMQvjhYQDjOD7uXoHHJhmg6Ut4HOynCpaIDweL6M4kGM4Erga4Sn2
sGuJEhgLeGewBN7Zkqc0YA4KmCok7gDRCRBjEcMdwE/UGITiIpXcCT57yEbs
LRewERB2J6CmATFE8BiAK+fhPG3Ih1k0mdE4oGGBKJ3DNwBeAF/CcjaAL4im
tPMCF1akE9DXGzDMJF4GUXLHaw9x/vsIpUB8hlsHpZtEXTWBHeSSFMU0bsFF
BNMLQ/4G+rRJ3t/aDtCasOTzxYEB+WDz0SRvaZSo7UM4oGWPQI4Ix9YNOnIH
JKNdGgg6lDDBwgzQAcHPwhjBapkzIEErX5tY3IUJ3DB4dYKQXD6vfAX35Byg
N0sfcLt5aEYFPgD7ArU9jv4GPeE84WvxEGVhg/asO6xo+km2WhTpXaYWcHoq
BiTHgwEKAJ7FNDOPggBELvEVKlGMTchlhbnUw/dwaLTmMLmPspRlCBo8gZkW
wL/xbGCLAOqVxuvcoAsdNYj9SuRqGvpDECLGysdoGCiPUJCUqHLJfIn4lvt7
WDU0DolxmhbmAxx6msF1zvtPYfOZBDxCZgHinB3eyGdALLcEUPONsN8weq8W
Glbh+0WK51fMsnR5N0NUV1kGu8Z5kPCbQTiNEjphkKSAcMOGIFqG4x7rw4ej
RUYN544UQMcq42icqQwxGVuDehMbngJI/z18ky5z5P+5mCkAxzgMEceY5dOI
aF4A0IAQVyDdFZ9kd+LDB0Cwx0c5NZeaJi9pyWsKf+SwJERPGC9dFotlYU7Q
oOh2Ls6TiABbuata8iZClod9mZsw04nzFCk6h0loEMBd5lQwQQ4jC+zAaNPA
ztAHCRLoZULieBIylsOAeNYEaQLoOIphly1xXnlCPfTkQZAhJgBV4LjjlaFU
PAucN3wPs8CpAIN+j2chLMcwYPWplimQ0YxO3gzzoFZlIsVbAy6AFAFHCPEk
HZ4tM0LaICxUFNMJAMQm4QIIDXBQb2EMx/9gUGuagtDHHJrZmjl1wWaekswk
6fCbN5ePjy2kdNAe7pE6CONhmFPaC31mPvkO2AeahHO5dfn65narwf/Kl6/o
7+vR/319fj06xb9vvh1eXNg/hG5x8+2r1xen7i/X8+TV5eXo5Sl3hqey9Ehs
XQ5/3GIIb726uj1/9XJ4sWVvIourRKcpAoLwAUCEvErBZeHfXi9Orn7+qbMP
2/9fICh0O50jIAD+cNgZ7MOHh1mYaLaRwKHwR+SeAogyVBmxbrjgJ2oRFSrm
Kz8HFpsQRrXE//n3GBiAbPb//begDH/1lfx9TNbZlRAfjuV9DppG+M1We+tR
XIP6K0CdBcaFuEX8leYCFpxEc+JU9E2eTgsUOxplaQSkL8W3O2ibvHmB4kU0
AfFxJbVmZVDCiNSy6WgqSe3YIIB6owM8AXAhkJCMyXRD0yCmgQYUTVf8GYct
rZ7oFMRaRKUJUc8ymacBS8RSDhMkLxSAsAdsX9N1pPkHsnC06YQE5etXl+bS
wPtfgfokSlQjPS5NFBUGzOHhULJlQrQIqK7s1Ww3KAwwAPlvrkZ4Cjd8cZAX
BDRj6DpyV1MDxQHdZTtHSjWN/PsLvhUWnAQgzSpJgJlGenXIkFTCN8Qd30MA
+wgoGxZdRHO8vUAEaIhpls7d+dBNrtffMKzS8CTYRItMAAgle/J0aeIpmAem
P5zFzuivy+hexfriNZf7yF7u3vblzu1otAuTZmJLX7DAC+Jgq7UrxEsNwJfQ
5xNAxJXayzdI57DYmo00iP8P3RWomza8e1gjhOG23n1pZfSGqF6ymk+zjBU/
AYxrxDkLCVGCxLWGhNwiA33sQeIrT2EDFCa2C0T/YRrdkfaj9DfAZWDXyCVY
bnUSqrm4/WFABAa+SztNCTL6IsCbcM6c3edwHz7AIRAgeq0OkRnbyIjR//3v
f5dK5fd3Wun8vJ9W0/60ftEAH9Hwgswgkx9/0QDbbgXbv2gA+vmvX97185c9
QgaAUtAv27Ge1QP95/189M/so/yF49hRWrCWj3COjJ0VAv/kNtwfPErlp7S4
lnvSKn39tV1J/Sgf5SXyFTelefBRPzHSql7JplFeuMsIpvwtP5Ay5UWUZN0n
Rql8+ChvkLfbtdyw6Pv0Wrb9fW+7J9v+1+ZnW49Sfrp+kp/62aZRNhzO1+W2
lY/mwHhXPtaVZ6+sZW1pa1hXB9UquDafgYGuXk2qh255n+zntFn+bB44rPso
Xy/Q/EUmFCIJ7w6q+4xMHUWe0kmvPdZ/WoS4YAy0n6+skd4bpXTW22sI8eTn
bTvKLVkUP4egy2B+Auue/YNY96Vj0Dh41aG8/VX18mXb6jdb/h27JR+dNche
vGQEysKYPFkgc6AlMbqboRAIYkMgw/kYRFuCk7630VopbP+HqJixOomWRFAJ
6pkmqxphDfi1iaq+G6wOtMAFCL8RYiCKkJM0jvHu10KR9cORdQmVgyzUxhkW
Fci+pLXThDRqBWrlnGyCs3BO9kR7f7XkOU06V1pYe0jFJHUiFhqqYBto9xXi
N+SBIbbrsdEdbTlCG19Bwn4Txd1dOQ8VavIsDVHjwMq9HAGkh26YPXJTOJzw
Hm1jhoicC4tFPTQDhaYtilFk6fcBAyvUEi3aNLOV3LGrZla9K0kMfyCVCQfS
1weM418BhpE/RHHcIK0RgPkO9sEGUat8+cYDOI40KxoYPhUWWQR6FsG9ZeBX
Z1Yx85RhCYoDgRK3AxL0Lmw+f2BHXhb+dQm9UQWZY2vaDcrs8j5StWZT9DKw
eQD+enx0MIfRyAjOHkbqq9GHBq0Ajk+A7EdF/WZgvO9CgPj58LtdxD70R65Z
WBhIZKAjA4Tc0iNtsVGdFF8MZIg5tkY7RnzFrEEetnilhW28fzXBVjGUyGCG
OFdWax0G8tGW9GlEZDLa4BJrmKi2z4wzshkHaCkgypqmywzIaZKlcisdk8Nz
qwF4P8flCVZ852qFugb+k8CCxqE1r3Lon1ZxncFM+n4yosSdocyXY7Yk7NoD
r1KLM8mfJxjrMmGF87zkrUBv9Wlu8XPpLkA9pD8OaXNaH1RZQcYkAHii7jSg
0YoC/QjYt9YIaEffSRccvbNbukppFlKuyXaw8nU/a3y1dlxpxm3IRZojq1yh
hwXXB5jp61u1a9BoYQx/3jKsWm4MDYBISFXQdbjR21Or30V5yaL64QP62rVZ
jlyRHAmCdxlsi+4yTXWPxvOgFT7nc/BIk21i1ulQ7/CAyU5OTy+MJazfaYOO
ilGed3yLYfyCHn7BBheYlsaE4RnoMlRoqCFvsxeYilsmsyfAiOzLeFXFcfqA
MKM5MWpkJ98lA14WGgO58xvxPo5JeRW4ewqtwF7yG2gJO5GtPPpbKHtduVd6
sH9YedDfp0HQKHcC2AfA18CFJ1+hAWMSWjgn+IkhrYUD+p536G9/orKMWctk
hoMmd2HpQOkbno2ANQfwFejjAa4Z5rME/VsaL5z3x5wKzjsa3sLBwH/hTN7S
st7KHV4GWmU77V2znDUAT3iuCN2tiL0r7RzS4xAU39r7GtcOh012XcCZMCIT
dK/bAEiSyaO/z+BsQYdXaB1VEo08MTp+EDb3Kl6SXXGC5uQVLgjHBQAx/2KM
M3Zji5d4RRocodV5owEMGMl5w2ZtnpNpM0obhOHhvpE7pIHzzmM1DmP5zW9l
CaPErkEQwJA4whnOTy1KTOhJMwo0QtgWenFWvMrrLV1TDxdgeeckgaFpsdqS
ZDsnqo0Z0HfA2QQZDVG4RHlkjJ6NO5JPGVpePz2PvptxYrr0yU+FfQXwQ3at
AUt/qhuZFnG7fLptthsXEiQ/uHC1uwKFHGfcDaz3ADc9MWDK0T0XWg64Htn4
808sd5ydEf9jgdP57bTN2SID/jELJ++cjZuM04ZFaystms20p4g94VVww6XV
CluNqkMW+NcijVB6gAscNwzCNuxGCZZIGEAqYediZcjWlyOtRbZmki9Cw++a
3c7+YP+w198/bLVa7UpLr2Gn1bJNB6LSTrfZNM2erB+2MoylqHJr5Emarsoz
OuIyUtI5WcTtgXnM+OefrBjiEWCkn+GIPmf22taT4jKJ/oqcSc/nrnQjzPsi
tpVJDTtdxrGP0nCuUcWBZtj022UYBSXu3D3o79JkCNjr4cvTX8CrcdCnWXWv
5xgzjRplILXiI9uk/b7dkTu4gl09qbueet0mX5O4YmSGvwL++mdVd1n3RLWZ
xSfab4lBVwfz+XRZRC2hS+kbx7fXeuh9MpYA4C2eMPbUCnEims+XhS/8tuSw
zIC0OGl0IAtPONc4xdweGse6eMuyaGVSzW2kDrDKWCtwoUEtcYPBEWYwG2hC
d0ftqkgYKZCJJ2H5vlqQ77yA7Qu0KnBIm+kN61l+YrGaIPi+cBqjpTmigSCc
aAmJnBr+XiSrzKg0TJaxWlsCMP152JJ46egbp6EHFpN0GaMK+I63RPoZMm0d
4WTiZHSAUkOgC3WscuxLEg5zcyA/AAE0LHye8QVE8TItQu/6quBXPRQbdMuW
4GDIoCVu0zVsXbEnlVu4m3adN374UM9LH33qrZJOvcAt6huXbob1obwbon6e
khhWOvtro1k5ocz/vmk1LyOi1fdel+LjKHln1CYWyCn6DrFXH48ohX8gx9Ya
N9of0NqTp5OIhHfYTrbyIzFKq7A4RxY1g0a+vKfQ8IhJcDCHMbeBjgnEGiaI
uYDCEwHKBgYAgqh2LNGOE2X4dTOI7qKC1AXMlkHrjc/slQwwwH2ruVV6ThQ4
BVlQd7/nlAxWa52trOJnLGeIEPpcABTZU1m/dw0atIgACOFahZ2D2oimLxh0
WhbuBEmZjrxsGBHuRCvxHuBxeBLvrI9xHBYPIVtrhFPJHVtiYucheVItRDdZ
JSnxlrIh5PzUF9XqUdCQDCnPrQzE9vcLufWndvPozx/gaJr818HjlnhqFEtL
/y6fmkvTlPUxfmpd68IYO6Z8hdiGjV1E03CymsSO6mxYdmy+Mib09U71Ihm0
QvVeugFKljk0DNGdemttdjVaUSKNPmQsQkHEineRaiUUEGKu/oKRGTQIGZ4w
vgYOmJ7grU0N3CxzTPUq0Bhsw7qMbcbJfEN/EOxlzFXUafv88upidDl6eTvE
iCV5Ojo7fzk63eb9IF1YE1UVABQaUr789RdZKG0EWa7pl63tmmD/80+dg+PD
//wzILA/RRXGZJn1ew2O29SpftEaTs5DUhmOpQ2g5iXbNTR7QMeLbdnklgA4
urZR7xUepSJDoHArClTRNl9PBzU3JBlfo0KL4Dejk9fXsD443JevXlJO4fWr
2zenoxevf++faf5l4uwnIiY2uNS9CAlsAYJblsayia7jKz/a+SKdvCObsIsP
qLgwfX+Y52nd3tS+7JWrXWDrmX1rv3UL/c3mzvf0v9rOlfW0St+3NjzXnWlB
Fm14ka7L19rgHMiv1yeAmSuexe3S/rctcLcrUNi4549rf/9XZcGVzusd+Od+
7Yl7SJ1fgMLwDpPe/c51LvlW6fHXmw/7I//nJdwMhrpOw/Hyjo/9OpykmOuE
6s2TG9iuLoDh5/zaelA9QqsUK/B1+ZBL+9+ujKrRndrcktaCPFGWTnotEMHr
uGG8uqlrSKYS71RCpN9+hE1ilQKuzQDY92Soz5p7u+yrrrJM31/trlS6rHPy
WxspxHVcJu8S4ChG/gDNH35aLfx3Oq201R7fVROuhCayP9ero3t11nvhp4zT
My0ncx27umN3vSP7WgPXtqfb9tbbJoCaZqIAscj12te99td7ZQ5zN/U+0L0P
1nsHpYN0Xfq6Sx+7VProRlbh2XAQezUNNkC/rulmkNe1LsG5rsEG4NY1/QRE
67rUgLECtZKK6Dp6qmEZwL5KyD7mMAysOEqxBDmmBWgp1DZZFz6V1gAmWUjC
ijKpNeTIleRGR2lSoCsfnZTpg/NGRdYEVJJR7Pc8Rh7Szqtyx/DHZ4sd51PT
roHyjhFZjEZzSFJir2usfpYJWEDU6es7h61Wr7sryi1LJ+H6eydRHtTTHG6M
E/ScsgdQYi7pD+brE+s+dwrEQ9NzqhvdYb2D09SVpPvPC4f33fIs/5PzOcwF
upbJpGVa7oxB2bPx0ByOfbfMCOi7JuREW0OtOY+TzcpCo56Cnalr2XImkc5q
J2WtEadFbRpOn9yqJRvyCP2nJdNBHTgIBs7Ri4FD6+AQy9xGRhdcYSVcS+Pz
bc8UIGBSoeTrJEa/CairOpWAdaeANWHGywlpauwy4QnwjEx+hm/yogSJiunA
xiQ3OMRqhYtAQ9eKAmi8QG9txgL9PV/G1oRY6+ex2oKVD2EuawEsHZceriEB
A2asPTprDRsE7GjO3mM8Qi1EVlCnU0qwq6xfe8cAeJTLg4roMglA0yp0cIk9
VlHFcgA9WutCFTS0koNmiNKOUK1Fl5dvKVF3GPRfkBFH3asoJqnNT7UlnLeJ
d4mODqqAZ2sW3c0422NLlCNwGFa1ESmaHjg/LIvuItSAN+/QcSqDtY4NACP6
INDO8W87OiAMF08851h2dpEboSmFeFW5CTH0Y9ndXXfo8nha0z2W+9VhyK2a
NaPgWB5s7O7PhZh8LPtunEexYT95ibPWfG947J/k1xuayD97995X8tKtQ97S
nUphdpWnHknuwAzfdCg+IJ+h01JbFe11aNgE6KYUdURotc5QtPLvGIYHEXJt
5eZ2sw594rVeMzZUbL242EJ7Jd3PHNuKT6+A39Jzt/OSh8GLxcLmw43Ny5FC
1W6LRX0v9oy7rtj49ma9rbJpMjfAMEloYMDkCoQG8ljlzNmV3GryJbOFgUfF
NHovd8LWXavBmzVf7lbhJkpXUwmALcaCn3/yD/x7RP11PPiejZxlRAD6KMlB
iOYGBFFyr7DwVyHWT59SeTk6EoWlAvjcckGCkh8YYG5IVU5tFGaW7kFfjjHL
icwyWZrcOZeKW+hG40wtUhJV6AJCDARTTaiy9X2iAdponi+98FJjBHN3omaI
gsy2TC/+NlNtpXYT0I01STMOxzX516WrXFjWyGEcaGIE8Ta3GLi2qRviS+jS
YsnIfKxu7MBuzMCZQ0XIOE4FJsijtxwDbqN7V5grpQaev2CXoiSw2F3a7ZnZ
SpPgzVVOh1bCv+FstEZJwnvAAFwNPpau3B2rqZKLLXwRUul4OZd2j+Qsytmy
VVZ86gLj1inR+7J6dnCJmMRG5/Ax3jzNmZl8VHyHBzmbu6gzWOCyMEAyp4Kd
1tiAjjTg8YXOvh17tmQvwQxksycLKWkAaIFkPW6j/IUJVj6HlU3Qom7Ff1+A
a2qPdDMyzR4tLT8xlq8ZzEAq8/zdZYmsSIV2t2/whBskZeXLowIa2+MDrBf6
uFty5dsBd6z8ivLh6+sLnYG6slI5Z6HzjRvWr2p4db6LzolrvZkr2gzKXZNZ
mubkdwRqSIlSjDAoUKZT9ykFuLB/y/PgeeLX0wfgu67EM9pXnFSfGJzFnpKr
6hnL8S0AV1yaw0tTd/Gx/FXTBeyUQoXWe2o8YmrYFC7E6c+WznKTi4lBP3pG
T8chRdJLTjeFFciYwFklkzC6Z27HdbgEX8IFRs16VUrMZZL5d4WOuffz/avx
om/1osqxSP2DzwwVxeua5G8Td/T6+tyFahq2SuPpBmVZ4C1WJzre2zMlieCo
97qtdqv99gtcMjegEnIMw1hN3mEqTk4SsyrY3Z3RXuDwWIYCeI/TZSFtY8mN
I64NIUheg4nvqcSGFgdKES7r9WGYojxyMlin6WZr0761r9egjFUQdPdS0JM/
pkV++cJu48TfBiZ/e3t2lrEqiDA+vbpbe92Xa9jsWAKwtpG36GQ7f3X75ur6
1dn5xehN563Q69xljujQTTvTrSK9tciie2SVGHmfKZD/tgyUT364NbeIqVfI
CGrqZ+CAuaTSJ1hjhsqfZGERZbqaBgwSZTQwhRbBBpEpY2jqhw+FGjMLaM7V
4vHRJeVz3NFiAbic+8EC3gC6GNGD5q64ChhT5+2VAQHPNp06Oq5qMy+fyMZE
XxdHnH+UzcFBu30If3TaVHOIY5h3yR/mx/folkfwB0rb1DRcRgG3rGF9ukMb
O/QPdAdVvLFHiv1cmLNujlvt9o726dsaf79u1uVmB7zMtZg73arHrfrUyplt
9bf7/O2AF7IhmEe3PeC2h7ysGtuZbtfndkfU7hMyBnfpEID2EU5EWCWMMg6a
E4v4Bqe29J2D+GMoPtIllQj9shCjS7nSy2SGFMFaMlGLhcWWk3QQ90txBqS0
oblHB4Tu5CEaLTR7NHbbx8fdhhn2Zepg44mKuZkFS4n45GU7boD+lqmVwxsI
mN45/AivEP7r64Py0jZFbT1iOS1tfyyxaZNNGbEpDoSaTLm6CSSoUV2ELGnI
kOLSs1xr3CLwC6FZk2wlE8fmvu1KLSKbomjatEuKgL1/mSGZ+mOuMpq98gXG
6OVUjmXKvBNuV6pmxemYLppJR0euVVlzZc7YGOiVxeGtGCnCbHRtN0apyncF
FlJbFGYvtaI/aXBxYFF1p4bZ73oF7oTu46P3zuYbf7eB1oMYUM6pheRsweJM
JEoL5uIcNU6iz3Jxl6kANbqvfv6Ja66NjPSB6H/Dmq697bh6vhFQyKumlWEv
wbe23JuBCMCe6vHqTKijfSwQpK97SUkvQkuWcFszzbFu0OA0F514CizAFLui
IDtMsCqVrtHFnnQ8eTpGLZCv2YeM2Qfft/adAG9xTBaMsBSuqBYM1gvuHXUx
yIaibFS+ms8xs5Q0f6dE5roSC0BGUSUwR0hGEMMp3iB0O3qsLxzqUk3amBo3
QYdoHAZ3ZoPIwMKCKi3OVfYuxBxfEAGWsZHdOIdUThQGUcP22QqNmnH9WXra
WaNOqAnSkC30QJqoRakE3RtojqJU2UhrzjqpslxvyG2bCdAUIhtjaboF+gM5
nNLk9vHyLRWifZ/TFnOufWaLKE1j4Gya0VVyxwTCz/AI3M1yCnuJtKkiCLEC
DaXoUVYAlmrC2NXysu9Y0rWEBvqnImbgKiNZGOvzrhZVq8jU6KAQdTwJ/b4U
yaUCuKiQxTiYmaD0hi3kV8zgCEQQ5ZNlnhvnkK2qjbeBAZmz9VQ4n4UuBbX5
ynIU5rtsttLMT8EnTOck2ZNMZR4aA17FoXQn94CR5MLcAdYvhNoTJ93qpH7e
ihlIq2AkzyIbKdSd3OmzBR6RTqtew6SUTGqRiZhe+J6vUoqBrPExIoYjkzAm
BywphcBzNIsmVkt2RkWkYrCCFBRXo9AEg6tEeUW8c6xQxBy6pra011143Sep
WqBZm1oyvuos1puJitXTakrumgCnPh9+Z02EOgsxUw+eFZOMyLbWrv8FMtq6
54a45VqyAUA8W2pqL8VpO/Ppzslw10SY5qjT/LF1AFI2Nnc+Olw0lpJysf6u
OALw7KHQQgrKH1RZkHAaoIFp/yp/x33QvoPsK1FTGDgwBVpxKrghRKkaLNac
Op8aTBpjqDJjI6YvKFdrM+c6mpj7DFoO5hx74PazPUjiyrTTktC8AnaTSU9S
qq6x6bNNWyry3phzqbYXEj6VtCM8bTLiwkAgDvob2taVywA4k1ma2fB8KqGQ
rPyqsrqmqJZNS+VjuSYWckoS9TjXfI5msiwd4+i5KUppa+BpPi4wObQw4prd
ApsPKL0ZRB1KILdrDvRSNN0DDmz72GGQOEpiQ3BlL7Nz1L99fwBkH8E9T9f7
LKTMc5uib/giVsDH3OxCW37ZLESB0BjQkodrcwiM/WhJrzDYfmuf/GKmMD+O
BzByDToH5vue/l5jkrgDbZK0TTwTFvpwAz49mFRzLJwNinScrrT3yk+CsXU2
AXULq3svsAq9OUutfBvQ8eBIHvdYS3Gt/IG9ydyc5E83FwZ+XzQ8MMPRA94W
oeDLF+ttR3xg2iivvThBM+T6vzuj0S6fKjJ/FnxGIx1RTlk6KhY0eMNwT/01
XfGYRUjfSnSeaQXAR3dUkLxD6KJ12D9zw2h0jhfejaeYRMUMRpN4qEFKgQoE
LoaU5PATY+IDkiTzoamzPIZlwuWInksKj0HnAjuKdXF3L7LAen44GgK1DwI+
xWvYAZcYEZXv0gVwZhPddU08I4qzAKtlJzbIuKR4ImRdUdq7BW1BNcyhoX2R
NYRlrXCRApnC9RmACil3PJRut7qsMrgHvVJ5vF0mRlLxTJq9zdfTuQSk7pBR
BvNDvLloD7FnKDNiCaK91fFJ7mNXUBVrM34hl79RUzDbVN3RhVrjmAxTWDvB
2R+Zm3AABVvUaZkuCctle4nn2dxtM/cKjg35XOs5wOuBfa5NveLvOQ+s1eKp
0AkTdVFJOyazVCU8035xsCGzzTboV0Lo7BeDJ9N8bLPDTYEgrsnRc5wvuvV+
uy1EqVoBIK3wk2PRyicqtmM05Ikvr5PxT4wm/J+b7v7fOTvs/4800H9KKvnn
Fwn5Z/l8/hXY/6/A/v/5gf3/igf9rHjQ/77xG8aHXXEG3lBNCSHKj/MNXmmV
rdfX0mGZwr1vTOp3iNl6ag0jlusXf9mvzSMKRtfKmn7b1ocPf9SlEfT7OdAr
PaTcAnTdVV7loyuYoYeDM3T9FwCZs2SDmPGZUnkB9IpP1ixjdS+VgY3Zeoro
qq0AhhfPgenWrV5q0xLfhol+q4ZLD+bocF5FJXSCjgDN5OX3HEmOECETinYI
YWAGGVZgUuw3xbdX2LSYB7XK9YuG0O3hvF91Nnoj0mr7sPZ45qZoIIbQWIeD
scc6I1Xp7TDopjLvY5qDUon2KvuCAgYbh/3sXA5PUKX2jKi++YnqIoB6782L
q3FGVmyEQ+hsh6lv7iELfvmsQDHF10uigRTNIvRSnxCIqOEMJLo+IQxaXTEs
rPKaDBksjV7uFaIQFS8pWotYn2YvNZZitCVorbapLZQRWgTRZVNjgNb2kVKB
2ZLxksKn0M9gq1LiSwh83ORINs6uotKfVEYODW1ky6I0fqxwr/uT7SNTEyz6
IBbLDF03ORlArIFJ6jdh3IcWmUuWyTmaWqgyjFfeRbjSs17cqfIQlNxzaOw3
8X72nsbiX8lqni5zkPXCZYAfTIRIORCSfMH2xRke5tNS58BX2AQZ5S7Bg4LN
JoWLtqJ6ttrfSTiGViDfiP+E8/OxZV/iYlG6FHSIHhY2tFtDhkYnV00DGYUx
iv+NXoulSxH5hSLXwlGNR2U7L4WqpJmoGEU3G0TXbKGVhCLthfB9CLDh86kx
y+tKziVTtq7qsbnWqa2Xw6/uIbDtAFsJCUp2s++iMpnzWhtYzEQHs+2aID98
PUrCoahmj/ZAihJ+WC4jSUAzrZGd6yC46ubqfCENbZZdKEp9S5gRmJsCZKQo
YOz0zGR9ZDlsb9zVdkplw6tPhtapmy/pxWzTJZZwsfcNbifKRc2O9KvYzL64
+qEKgogrHZUQrZIBxl4UDN5dpLCzlS7FrKPLKB1wHopybKSJxjA6lzbD+/6N
SkEYdjtHiKnAOO3x2kVxGee76J7eu2WYDta7lVhWOtNGQnz5iGMgzLwEhRcQ
rViBpeSBIpJbsXFYx2XqrSKPdI4rHlXYqtd6s8TYiO9hqZMCveMpxZia7VT3
qoUY7i40035Is2JGfnhzLBhiBJwShCMVWz9sHL3jSsrI7lPKRbQcWJDP1KaE
uQOjjBgzlLVje7GnpsTrb2qIsKnjBGxaQm0Bt1JMNtb4NkWx1uKry+6qqQn4
Mz4DWMN67FijJrmmySimk4lh/pqCXLAQ8zoaIxm6eMjysZ8nXPqZnPANv4wR
HBA5yiK+dZUuZa5REh3ATAfVmWCUcchh8IAUfMXR6+5tmgZa0OllVbrHWgU7
Dw0LKmnO97XbN8GakQ49dOx1SK3ThXecYwlyYzQnPz5vlVyCy7kNW+ChWCal
uvvuFjJDbDoelx/T1PyhFErsUywHy5N3X+oNqVKCpWM45DU0rwvSsNCpooqD
mDy0ENJkXVHE8T0IdWMt4bCHhnkg8wk+SYCYPTRMpMGDtBkuuDpJZga3uwbR
EkpJJCRQPXfCAot7HtVrJRdBtilysundU40SPhMlG4pSNseCzltnPFj9oVye
z5cKvaJolqXafFoYSTtP/ReD2ZmVx7aIoVESjnXug07m5iW16quff6I3xbI2
SPwsIkcSRxbLSx2WiTHB7r2yMA6L6/pNZG7x7Eimo3ZBJkjo4RyxSdqXrYal
oLtrSpcFIZAXY33wyr7NDTOBVRaQEOXYIm4Do0i0alHQdJRwcoeVCjAXmqMJ
TdlAChqA8R7gEBATyokihK4Rx0zNYUGRfQOG8F/bqR3XOm6D+AhHTNP7dXXE
tMq83ARAhpIX2GrBhOUUleWoSYcELSgBnV5xxtDRch6BiGVTLqXpvzYV47xw
NOvw0/fdToQO75WpGG75BPXQUC8qKEBdGxUV+cHc047VcrF/VoGp2pQIjIuV
ZtUvU03NuYVa9kJynoYss9UhPYbyGEm4pV+l6i3ve+CJJqMpp/I7vCv3hg6h
o8XF21KC6FtZH+q8o0Viv8oCiHTiLb82AmGdY1+46QGN35LNmRNa8enLvaF4
a16Phg/WL1w9wXqJVZzEs7Gz75zG8KT/nY01KE3R3ZqwcrOntdJzKKsiXdKL
RWFFamLEL9ADUUPQq2iJt/oNe810oYBf8rKCCBWteGXb0w1dglRDOnAwFtXs
8UtXPnYvNDkuFyDk1+hiHSWuBEcSMr+KlpO8HhAT7ftDdbIubJeNT0ETS07a
g9VxO/8YGNj4eMs/THw8E6bmxeUQef89njY+E68l4gVMp3wvEYGiJI+GocSG
AFB0jtBveED9qVgSQh6bN7GYlFjrb6+9I6wqAGJSpQRfKQQx1bIr32c2N3PD
e/i6rV6rhwqKf+lwGqX/uvSGdy9/z8qNix7VdyuWpr4EDMCYP6GzUv0x/MvM
WXQslHC5+u6jt65jc3yHKN10wr7i00tu1HEPxIY/vVZfdhRsY+K1Vo0JZCHB
RNM1qydWfMXASRferDHmmvOCtD2F+ka5ebsNLxZfnU5l6VVi4vurOoZnJMIk
B8GYgcJSpACJspglNivKSE59KK+IA655XVvSJCwJnToLX5o04Z9/crkz1Bw1
HMY0zKY9rkRNmO+8lOFj/QoQ8yqC38g/mFQpPQSStOkI6HHMIRDmCUukt/yK
jWMjXOqimdiKI01P+P3qcZgdy29VgvhzmwONTcMkukORu2S8PNW0SkPqfA77
aoRHFiH+7WZ0cfb4qMFQwxM3wmOdS24GTE2F0udB6GAThJbJPwxGdey/Dljr
l+1GWK3H4mwE1XqZ9OdBqr8JUlRdXieV/3pAqhEo6mDkEsU2wsbFEW2EiSsk
9jxYDP65sPDyt+pgsEmp28xpNsRebeY7G2pvPw9ah5ug5WXU/5osaFNKWS1D
qpGZN3OkmvizzSyppujZ8+B1tAlelFj0azKislZQB59PpEVuBNUnYgo3Qu0T
ZSOeA0AMl/unItwnalisw1VeYoYFLctlPqylXmDpNMqpo4f84pDME35KYg+9
CUDP6XuuMNWQ385jVHv2E1QzBEmgaQgvGYVNHOh8JCeM980e6LdfTx6Kt/7K
Srkgo+Ft83J0ej68/fFqdAMQsPrvWy+r+K3nyUGTCCqgG7MG5Q6gW00iIleL
93x0OoFPPJXSyG9F2FQ7YJdl8pqMl4r0WTq6urSXDfKpsc3huzNrE2vwTUxW
5oTvRWUZTtg0dVqwVbPS6vGRLOmvElfZ5JPH+KmDElLCTliQ33xYMOtQvxDp
C2eG+RySuJlrqg9QPZBrAxYNihwB4JHbce06/ref6/7N5vg93JfNOz2WTfx4
HhzLP/3pNm2OKdjLliXCU/nzn7GFvS6PfS7w+cta2/Ovup5ms0mVMVAhG7G9
oVrrzVhm8xkXL9lYEgMNqLPVAhEAYxViXVeV0oqyiB27gPna5R7U1vHcUVxC
1Xshp3NAXt++utllc+HaWzi4JLxae5/Ak7K30CXktenG35WXB29ImN/BY95n
loW5Ngxyia+bq5F+SSFGre35hwif/J9u/+D4iXDRBnUvxx57A6B+B9edjXZ2
zWteyrBHys6x7HS7h4eu5Xqo7h4N3D+Ws+325h/xxHfuZ9tN5OLCyzsY1E3k
9dsU7kz7OQTodbq9/YP+4PCoDX816ZMHuLrgO+p6BFRCgWsfdPjaXqmUIRuZ
oCUtr/fkr3j6a/il/fAkufVPOTgc0CT7T/6Kp7+GX65j/gj//TPvnwOZeZpO
m+boPPdX1D/WB4PB1Hrg7kFfj9x93q/Y9IV36Pd5hLAHQU6TRw70ca/D81qa
De3dd/bsizabFGgikjzcEo8cXYh0/IcfvnOVDpmcUxcw4UpUol/FBldg9AYH
frls9pRqNJUy9qLco/Ktd8VqCxY7OiHk25pk9/jxqgnw4Sfv8fPldy9Obl+e
T757fXMaRZ3O6ibvHXT70el/HA6j23Rwu+x/dzX86/3gdJ970aD7oyLu31z/
0P0xunidvTy4n95//+1ythi8P7x6HxfzH36Ix+PL/fOz1SX3CrDX4aB9+aJ/
N13e/mH/2+J18vr+x8vVHxbZQfj6P15e7b94t98bfx/8pRcORwgzBzT2zNBr
WREU/EZit93OIUaIMvHsebZmxIfZ9hCwpNvXCA+YkvgNPjya5wu1QsaukQi6
DTtAwO2jwWHnsH84AJY2aPeG3bPuWb8z6PZPu6N+r38G/56JQXvQ63e6Z71u
d9Rr4/+h69HBsDMcnPEPfX7ROcLIc/r75OCw+5msq+aHhjrdP1wbgL4YDXq9
Tq/b6/X2ewe9fm/QO+zBCvhZ99R91zkS0PzssDMEpKeFfZJ/VH9F5cEBDfNJ
DuF+Re3jIQ3zJfwBf+kg2zBU5ymmsJENlH8RtP324BDOX2MFgJnwQgz6/QNA
jU7/aICoMYImB4ND+Hw6aPdP+gfds0G/B3gCiINPT/BZf9QfwDenA8yNGvSg
IXSE7gcWYV3EFePzQf/soH3a6XXOhnCeg6PhqN3fHw2gV/v0ZHBw0h60X/RP
j446QzE6aR8OT8+OzvY7J8MXg7POi8Goe7I/OOsPTocnw8MXL/aPRj2Az4vB
i+FoMBiOYE2HR51+d9Dpjdon4qR/2obVdAeHvQ4sFDD8cL8zRL5uq/+yM3Sm
8opRGy37nb6NEdSkGsAA+z1FJKnaB3AwvbFSNZSmutPulCgt6IYAsGk/EN2p
prQpUFoIlBZqSlMdNZjyD30ee5Q2YUr7xTSmCZTGCvYPayktfIrSRDfwSQ2a
Tw876pmUVqWr9d8nKK2epup/VZXSnqCnT1OaeJrUnnkfW1ILPVIjxChR2rQf
QgumtACYcX8CBDUlUptqUpvgs35IpBYgqRGlQUektIPD/fZBf3rQDgRQ1VQR
VakQqCocQIt2MBkcTICqxv0AqEqFk/ahCqZH0/3ORI0H0854EHYn+wMx7Q8C
NVGH4/H+UYhUNR6MVTgYQI/+xFBV2J5M+kE71EQFS5oiUYmOMhkIrhANR659
OObiAmHwzdZUxSBPkGNSJe8obOpEZaABJPIFVe9nZWcWxgunvdKrzFFbeQmU
msZAqT+kKYsZUQASptB51Tro4v8BxdgYyHqoAAA=

-->

</rfc>
