<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.2.3) -->
<?rfc tocindent="yes"?>
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dogru-cedulon-07" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="Cedulon">Cedulon: An Audit Layer for Agent-to-Agent Commerce</title>
    <seriesInfo name="Internet-Draft" value="draft-dogru-cedulon-07"/>
    <author initials="E. C." surname="Dogru" fullname="Emek Can Dogru">
      <organization>VERAX TEKNOLOJI LIMITED SIRKETI</organization>
      <address>
        <postal>
          <country>Turkey</country>
        </postal>
        <email>e.dogru@cedulon.com</email>
      </address>
    </author>
    <date year="2026" month="September" day="02"/>
    <area>sec</area>
    <keyword>Cedulon</keyword>
    <keyword>agent</keyword>
    <keyword>receipt</keyword>
    <keyword>policy</keyword>
    <keyword>SCITT</keyword>
    <abstract>
      <?line 150?>

<t>This document defines the Cedulon Protocol, an audit layer for
agent-to-agent commerce. Payment rails such as HTTP 402 flows (x402) and
mandate protocols (AP2) already move value, and a mandate protocol can
already refuse a spend before it happens and return signed receipts.
What they do not, by themselves, give a party that is neither payer nor
rail operator is a retrievable record of that decision and a signed
spend receipt that reconciles against an authenticated extract of the
rail. Cedulon specifies a Trade
Manifest (signed offer before payment), a Policy Decision Point with
default deny, a Spend Receipt (COSE/CWT claim set after a gated payment),
epoch checkpoints, and rail-extract reconciliation. The reconciliation
shows that no settlement on the extract lacks a receipt and no settled
receipt is absent from the extract. That result is unconditional only
when the verifier pins the rail key out of band and states the period
under audit; otherwise the document requires it to be reported as
conditional. Checkpoints carry the suppression guarantee, so the
document profiles the checkpoint as a Signed Statement, gives the
verification algorithm a step that consumes the witness receipts
returned for checkpoints, names what a witness holding a checkpoint the
presented chain omits reports, brings equivocation within reach by
comparing recorded copies against the presented chain, and states how
checkpoint totals may be withheld without withholding the fact that
they were. No signed object is attested by a key it carries itself,
and a presented Trade Manifest must be bound both to the
receipts that name it and to the terms those receipts claim. The
document also names a threat no adversary causes, a settlement
recorded on a rail with no receipt behind it, and defines a Dispute
Evidence Bundle (evidence, not an award) and optional SCITT anchoring.
The encodings earlier revisions called canonical are defined, and the
exact input to every hash-valued field is stated, so that an
independent verifier can be written from the text alone. This
revision states one distinction in the seven places that had kept its
older absolute form: a key an object carries is never the signer's
identity and never a substitute for a key the verifier did not obtain,
while a signature checked against it where no key is held establishes
internal consistency and attests nothing. It also brings the account
and the rail under audit into the declared scope on the terms the
period already had, forbids reading a settlement finding out of an
extract the pinned rail key refused, and states the wire form of the
witness receipt, whose media type it registers beside the other five.
Cedulon is not a competitor to x402 or AP2; it sits above them.</t>
    </abstract>
  </front>
  <middle>
    <?line 194?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><em>Note to Readers:</em> This document is submitted as Informational. The
author's eventual intended track, if the work is taken up, is a
Standards Track profile of COSE <xref target="RFC9052"/> and CWT <xref target="RFC8392"/> for
agent-spend receipts. This -07 does not claim IETF consensus.</t>
      <t>Agents can now pay. Open HTTP 402 protocols <xref target="X402"/> attach
stablecoin settlement to ordinary requests. Card networks and
processors issue agent-scoped tokens. Google's Agent Payments
Protocol (AP2) <xref target="AP2"/> binds user intent to signed mandates.</t>
      <t>What is missing is an interoperable <strong>audit layer</strong>: a machine-checkable
answer to "was this spend allowed by policy, against which offer, and
what bytes were delivered?" The third question is answered to the
extent the evidence carries it: machine-checkably where an
attributable payee countersignature binds a <tt>deliveredHash</tt>
(<xref target="countersign"/>), and narrowed to "what bytes were promised, and
what hash was presented beside them" where none does - a bundle
must not claim more than its signatures cover. Without this layer, a
prompt-injected or
looping agent can drain a rail that has already accepted a valid
signature. A counterparty can ship the wrong artifact. A transparency
log, if used at all, is proprietary.</t>
      <t>Cedulon fills that gap. It does not clear funds, hold custody, or
operate a payment facilitator. An optional escrow actor is defined only
as a third-party role interface (<xref target="escrow-role"/>). Implementations of
this specification <bcp14>MUST NOT</bcp14> take custody of funds or operate escrow
(<tt>MUST-T8-custody</tt>).</t>
      <t>The control is an old one. Reconciling an internal ledger against an
external statement is what double-entry bookkeeping <xref target="PACIOLI"/> made
routine, and signing the artifacts on both sides is Grigg's
triple-entry idea <xref target="GRIGG"/>. Neither is claimed here. What this
document contributes is an open wire profile for that control in a
setting where the parties are software: a COSE receipt shape, an
extract shape, a checkpoint chain, and a verification algorithm
precise enough that two implementations reach the same finding on the
same evidence. The novelty is interoperability, not the idea.</t>
      <t>Neighbor drafts are complementary, not substitutes.
draft-bates-atp <xref target="BATES-ATP"/> covers tamper-evident causal lineage as
a signed DAG. Cedulon is the completeness layer: a spend that never
produced a receipt is visible when an authenticated rail extract is
reconciled (<tt>MUST-T10-1</tt>).</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The following terms are used:</t>
      <dl>
        <dt>Trade Manifest:</dt>
        <dd>
          <t>A signed statement produced <strong>before</strong> payment. It binds a description
of goods or service, price, currency, acceptance-criteria hash, cancel
condition, expiry, and an optional AP2 mandate reference.</t>
        </dd>
        <dt>Policy Decision Point (PDP):</dt>
        <dd>
          <t>The function that evaluates a structured spend request against stored
policy. The default is deny.</t>
        </dd>
        <dt>Spend Receipt:</dt>
        <dd>
          <t>A signed statement produced <strong>after</strong> a gated payment attempt. It
binds payer, payee, amount, currency, policy hash, <tt>manifestHash</tt> or
an explicit <tt>noManifest</tt> flag, rail payment reference, <tt>timestampMs</tt>,
nonce, <tt>prevReceiptHash</tt>, and <tt>outcome</tt>.</t>
        </dd>
        <dt>Receipt Issuer:</dt>
        <dd>
          <t>The party that signs Spend Receipts.</t>
        </dd>
        <dt>Anchor:</dt>
        <dd>
          <t>An optional SCITT Transparency Service <xref target="RFC9943"/> that registers a
signed statement and returns a COSE receipt <xref target="RFC9942"/>.</t>
        </dd>
        <dt>Dispute Evidence Bundle:</dt>
        <dd>
          <t>A package of the Trade Manifest, the Spend Receipt, and a delivery
hash. It is evidence for a later human or legal process. It is not an
arbitral award and not an escrow release.</t>
        </dd>
        <dt>Decision Token:</dt>
        <dd>
          <t>A portable, single-use PDP allow encoded as COSE_Sign1. The claim
set binds <tt>requestHash</tt>, <tt>policyHash</tt>, <tt>expiryMs</tt>, <tt>nonce</tt>, and
<tt>singleUseId</tt>. See <xref target="decision-token"/>.</t>
        </dd>
        <dt>Rail Extract:</dt>
        <dd>
          <t>An authenticated list of settlement records for one account, one
rail, and one time window. See <xref target="rail-extract"/>.</t>
        </dd>
        <dt>Presented-unattested:</dt>
        <dd>
          <t>The state of a receipt or checkpoint the verifier holds no pinned
issuer key for. Its signature is checked against the key the object
itself carries (<xref target="presentation"/>), which establishes internal
consistency only, so the object is neither attested nor rejected:
every presented object is weighed as one set and the completeness
guarantee is reported as conditional. It is a state of the report,
not a finding code. See <xref target="issuer-root"/>.</t>
        </dd>
      </dl>
    </section>
    <section anchor="architecture">
      <name>Architecture</name>
      <t>Cedulon has three control-plane objects and one optional log:</t>
      <artwork><![CDATA[
  Principal --policy--> PDP --allow/deny--> x402/AP2 rail
                              |
                              v
                      Receipt Issuer --> Spend Receipt
                              |
                              v
                      Anchor / SCITT (optional)
]]></artwork>
      <t>The payer agent never talks to the rail except through an adapter that
calls the PDP first (<tt>MUST-T5-1</tt>).</t>
      <section anchor="policy-decision-point">
        <name>Policy Decision Point</name>
        <t>The PDP evaluates structured fields only (<tt>MUST-T1-1</tt>): amount,
currency, payee, tool identifier, nonce, optional manifest hash, and
evaluation time. It applies limit, velocity, and scope checks
(<tt>MUST-T2-1</tt>, <tt>MUST-T2-2</tt>). If the PDP is unreachable, uninitialized,
or throws, the result is deny (<tt>MUST-T2-3</tt>). Denied attempts do not
increment success counters (<tt>MUST-T2-4</tt>).</t>
        <t>An allow produces a Decision Token whose <tt>requestHash</tt> covers six
fields: amount, currency, payee, tool, nonce, and <tt>manifestHash</tt>
(<tt>MUST-T3-4</tt>, <tt>MUST-T6-1</tt>). The token is a COSE_Sign1 object
(<tt>MUST-T6-4</tt>), is single-use (<tt>MUST-T6-2</tt>), and <bcp14>MAY</bcp14> be carried to
the adapter that performs settlement.</t>
      </section>
      <section anchor="receipt-issuer">
        <name>Receipt Issuer</name>
        <t>After the adapter attempts settlement (success or a recorded deny that
still needs an audit trail for an allowed-then-aborted path), the
Receipt Issuer signs a Spend Receipt over the deterministic CBOR
encoding of its claims (<tt>MUST-T4-1</tt>). Verifiers reject bad signatures and byte mismatch
(<tt>MUST-T4-2</tt>).</t>
      </section>
      <section anchor="anchor-scitt">
        <name>Anchor / SCITT</name>
        <t>Parties <bcp14>MAY</bcp14> register the signed receipt (or a privacy-preserving hash
encoding) as a SCITT Signed Statement <xref target="RFC9943"/> and attach the COSE
receipt (<tt>MAY-T4-6</tt>). This document does not operate a Transparency
Service.</t>
      </section>
    </section>
    <section anchor="trade-manifest">
      <name>Trade Manifest</name>
      <t>A Trade Manifest is the commerce analogue of a promise: it is issued
<strong>before</strong> value moves. It is conceptually symmetric to a later Spend
Receipt (promise then proof), and it <bcp14>MAY</bcp14> carry an AP2 mandate hash so
that user intent and the Cedulon offer stay linked (<tt>SHOULD-T8-5</tt>).</t>
      <t>A Trade Manifest <bcp14>MUST</bcp14> bind all of the following (<tt>MUST-T8-1</tt>):</t>
      <ul spacing="normal">
        <li>
          <t>goods or service description</t>
        </li>
        <li>
          <t>price (integer minor units, encoded as a decimal string matching
<tt>0|[1-9][0-9]*</tt>)</t>
        </li>
        <li>
          <t>currency (ISO 4217 alphabetic or a documented token identifier)</t>
        </li>
        <li>
          <t>acceptance-criteria hash (SHA-256 <xref target="RFC6234"/> of the exact delivery
bytes, lowercase hexadecimal)</t>
        </li>
        <li>
          <t>cancel condition (opaque string agreed by the parties)</t>
        </li>
        <li>
          <t>expiry (POSIX milliseconds, <tt>expiresAtMs</tt>)</t>
        </li>
      </ul>
      <t>-03 allowed this hash to be taken over "the exact
delivery bytes or a declared schema instance" and gave a verifier no
way to tell which one an issuer had used. Two implementations reading
the same manifest would then compute different digests over the same
delivery and neither would be wrong. This revision defines the first
reading only. Hashing a schema instance instead would need a marker in
the manifest saying so, this document defines no such marker, and until
one is defined that use is out of scope rather than an alternative a
verifier is expected to guess at.</t>
      <t>It <bcp14>MAY</bcp14> include <tt>ap2MandateHash</tt>. The corresponding CBOR label is
always present; a missing mandate is encoded as CBOR null.</t>
      <t>It <bcp14>MAY</bcp14> name a <tt>payee</tt>. An offer that is specific to one counterparty
carries that party's payee identifier; when present, every receipt
that names this manifest has its <tt>payee</tt> compared against it as exact
octets under <tt>MUST-T8-9</tt>, on that requirement's two-branch severity.
An open offer legitimately omits the member, and no comparison is
made. Unlike <tt>ap2MandateHash</tt>, the label is encoded only when the
member is present, so a manifest signed before -05 carries
the same bytes and keeps verifying; this is why the null convention
above does not apply to it.</t>
      <t>The manifest is COSE_Sign1 <xref target="RFC9052"/> over a deterministic CBOR claim
map (<xref target="cose-profile"/>). <tt>manifestHash</tt> is the SHA-256 of the signed
COSE bytes (<tt>MUST-T8-7</tt>). A spend bound to a manifest <bcp14>MUST</bcp14> be denied
if the requested amount or currency differs from the manifest
(<tt>MUST-T8-2</tt>) or if the manifest is expired (<tt>MUST-T3-3</tt>).</t>
      <t>A spend that is not bound to a verified manifest <bcp14>MUST</bcp14> be marked
<tt>noManifest</tt> on the receipt and <bcp14>MUST</bcp14> still pass limit, velocity, and
scope checks (<tt>MUST-T1-2</tt>). An implementation <bcp14>MAY</bcp14> refuse all
<tt>noManifest</tt> spend (<tt>MAY-T1-4</tt>).</t>
    </section>
    <section anchor="spend-receipt">
      <name>Spend Receipt</name>
      <t>The Spend Receipt claim set is carried in COSE_Sign1 <xref target="RFC9052"/>
wrapping a CWT-compatible map <xref target="RFC8392"/>. New receipts <bcp14>MUST</bcp14> use the
COSE profile (<xref target="cose-profile"/>).</t>
      <t>Claims (<tt>MUST-T4-3</tt>, <tt>MUST-T4-4</tt>, <tt>MUST-T4-7</tt>):</t>
      <table>
        <thead>
          <tr>
            <th align="left">Claim</th>
            <th align="left">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">payer</td>
            <td align="left">Payer agent identifier</td>
          </tr>
          <tr>
            <td align="left">payee</td>
            <td align="left">Payee identifier</td>
          </tr>
          <tr>
            <td align="left">amount</td>
            <td align="left">Minor units as a decimal string <tt>0|[1-9][0-9]*</tt></td>
          </tr>
          <tr>
            <td align="left">currency</td>
            <td align="left">Currency identifier</td>
          </tr>
          <tr>
            <td align="left">policyHash</td>
            <td align="left">SHA-256 of the canonical policy document (lowercase hex)</td>
          </tr>
          <tr>
            <td align="left">manifestHash</td>
            <td align="left">SHA-256 of the signed manifest COSE bytes, or null when <tt>noManifest</tt> is true</td>
          </tr>
          <tr>
            <td align="left">noManifest</td>
            <td align="left">Boolean; <bcp14>MUST</bcp14> be true if and only if <tt>manifestHash</tt> is null</td>
          </tr>
          <tr>
            <td align="left">x402PaymentRef</td>
            <td align="left">Rail payment reference, or null</td>
          </tr>
          <tr>
            <td align="left">timestampMs</td>
            <td align="left">POSIX milliseconds</td>
          </tr>
          <tr>
            <td align="left">nonce</td>
            <td align="left">Unique spend nonce; at least 128 bits of randomness; unique in the issuer scope</td>
          </tr>
          <tr>
            <td align="left">prevReceiptHash</td>
            <td align="left">Previous receipt hash, or null for the first receipt (<tt>SHOULD-T4-5</tt>)</td>
          </tr>
          <tr>
            <td align="left">outcome</td>
            <td align="left">
              <tt>settled</tt> or <tt>aborted</tt></td>
          </tr>
        </tbody>
      </table>
      <t>A receipt with <tt>outcome</tt> = <tt>settled</tt> <bcp14>MUST</bcp14> have a non-null
<tt>x402PaymentRef</tt> (<tt>MUST-T4-7</tt>). An aborted receipt <bcp14>MUST NOT</bcp14> be added
into checkpoint totals.</t>
      <t>All twelve labels in <xref target="receipt-labels"/> are always present. An empty
optional value is encoded as CBOR null, never by omitting the label.</t>
      <t><tt>receiptHash</tt> is the SHA-256 of the receipt's signed COSE bytes,
encoded as lowercase hex.</t>
      <t>Verifiers <bcp14>MUST</bcp14> reject a receipt if the signature fails or if the
decoded claim map does not match the presented claims (<tt>MUST-T4-2</tt>).</t>
      <section anchor="countersign">
        <name>Optional payee countersignature</name>
        <t>A payee <bcp14>MAY</bcp14> attach a countersignature over the issuer's signed
Spend Receipt (<tt>MAY-T8-10</tt>). The profile uses a <strong>detached</strong>
COSE_Sign1 <xref target="RFC9052"/> whose payload is a CBOR map with private-use
labels:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Label</th>
              <th align="left">Claim</th>
              <th align="left">CBOR type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-70401</td>
              <td align="left">receiptCose</td>
              <td align="left">bstr (exact issuer COSE_Sign1 bytes)</td>
            </tr>
            <tr>
              <td align="left">-70402</td>
              <td align="left">deliveredHash</td>
              <td align="left">bstr (optional; SHA-256 of the exact delivered bytes)</td>
            </tr>
          </tbody>
        </table>
        <t>The countersignature uses the header profile in <xref target="cose-profile"/>
and content type <tt>application/cedulon-countersign+cbor</tt>.</t>
        <t>This is a second Sign1 object, not RFC 9052 Countersignature0
(unprotected-header label 11). Countersignature0 would write into
the issuer object and change <tt>receiptHash</tt> after issue, breaking
the receipt chain. A detached Sign1 keeps the issuer bytes
stable, reuses <tt>kid</tt> and content-type, and is absent by simply
omitting the sibling object.</t>
        <t>Absence of a countersignature <bcp14>MUST NOT</bcp14> invalidate the issuer
receipt (<tt>MAY-T8-10</tt>). A countersignature travels beside the issuer
signature without being covered by it, so anyone holding an honest
receipt can append one of their own. Attribution is therefore the
gate: a countersignature that cannot be attributed to the pinned
payee key - the signature fails, <tt>kid</tt> or content type does not
match, label -70401 is not the issuer COSE bytes (<tt>MUST-T8-8</tt>), or
the signature is valid under some other key - <bcp14>MUST</bcp14> be rejected as
approval evidence. What is rejected is the countersignature, not
the receipt: the verdict on the untouched issuer receipt <bcp14>MUST NOT</bcp14>
change because an unattributable object was attached. An appendable
object the issuer signature does not cover must not be able to
manufacture a negative result; this is the lesson <tt>MUST-T8-9</tt>
already encodes for the manifest comparison, applied one object
over. The identifiers <tt>countersign-bad</tt> (unverifiable) and
<tt>countersign-key-mismatch</tt> (verifiable under another key) name the
discarded object as warnings, and where the verifier pinned a payee
key and no attributable countersignature remains, the
<tt>countersign-missing</tt> warning still applies: a discarded forgery is
the absence of the payee's word, not a substitute for it.</t>
        <t>The optional <tt>deliveredHash</tt> claim binds delivery to the receipt
under the payee's key. A payee who countersigns <bcp14>MAY</bcp14> include the
SHA-256 of the exact bytes it received in the same signed payload
as the issuer receipt bytes. When an attributable countersignature
carries <tt>deliveredHash</tt> and the verifier also holds the Trade
Manifest, the two digests are compared as exact octets:
<tt>deliveredHash</tt> against <tt>acceptanceCriteriaHash</tt>. A mismatch is
<tt>delivery-mismatch</tt>, and it is a finding rather than a warning,
because both ends of the comparison are signed. A <tt>deliveredHash</tt>
carried by an unattributable countersignature is discarded with it.
A countersigner <bcp14>MUST</bcp14> refuse to sign a <tt>deliveredHash</tt> that is not 32
octets; a verifier that meets one anyway treats the countersignature
as carrying no <tt>deliveredHash</tt>, so the delivery question narrows as
it does when the claim is absent, and the signature verdict does not
move. A countersignature without the claim is valid exactly as before
-05, which introduced it.</t>
        <t>A Dispute Evidence Bundle that includes a verified countersignature
has stronger evidence that the payee accepted those bytes; the
bundle is still not an award (<tt>MUST-T8-4</tt>).</t>
      </section>
    </section>
    <section anchor="cose-profile">
      <name>COSE Profile</name>
      <t>This profile uses deterministic CBOR <xref target="RFC8949"/> Section 4.2.1
(definite lengths, shortest integer form, map keys sorted in
<strong>bytewise lexicographic</strong> order of their encoded keys).
Implementations <bcp14>MUST</bcp14> encode only the types used by Cedulon claim maps:
null, bool, unsigned and negative integers, UTF-8 text, byte strings,
arrays, and maps (<tt>MUST-T4-1</tt>).</t>
      <t>-03 bound the encoder and said nothing about the
decoder, which left the reading side free where the writing side was
not. A decoder <bcp14>MUST</bcp14> refuse a CBOR map that carries a duplicate encoded
key (<tt>MUST-T4-18</tt>). The encoding rules already forbid producing one, so
a decoder that accepts it accepts a document no conforming encoder can
produce, and two decoders may disagree on which of the two values
wins, which is a disagreement about what was signed.</t>
      <t>A decoder <bcp14>MUST</bcp14> also impose a bound on what it will attempt: on encoded
size, on nesting depth, and on the number of elements it will decode
from an audit input. It <bcp14>MUST</bcp14> refuse an input that exceeds a bound with
a named refusal rather than by exhausting memory or the stack, and it
<bcp14>SHOULD</bcp14> document the bounds it applies (<tt>MUST-T4-19</tt>). This document
fixes no numbers. A bound that is right for a desktop verifier is wrong
for a service, and a number written here would be wrong for one of them
within a year. What a reader is entitled to is that the refusal is a
refusal, named and reported, rather than a crash that an operator has
to interpret.</t>
      <section anchor="receipt-labels">
        <name>Claim labels</name>
        <t>Registered CWT claims <xref target="RFC8392"/> are not required by this profile. Cedulon
uses CWT private-use integer labels less than -65536 so that the
profile does not occupy the 100-110 registry range.</t>
        <t>Every claim the tables below annotate as <tt>hash</tt> carries a SHA-256
digest rendered as exactly 64 lowercase hexadecimal characters
(<tt>[0-9a-f]{64}</tt>). A signer <bcp14>MUST</bcp14> refuse to sign, and a validator <bcp14>MUST</bcp14>
reject, a value that does not match that grammar, naming the claim in
the refusal. A decoder that preserves unknown or foreign claims is a
separate layer and keeps them unchanged; the grammar binds what a
party signs and what a validator accepts, not what a decoder can
carry. -04 stated the rendering in prose while its
own Appendix A vector violated it, which taught decoders to be
lenient; the grammar is enforced and the vector was regenerated in
-05.</t>
        <t>Receipt labels (<tt>MUST-T4-3</tt>, <tt>MUST-T4-4</tt>, <tt>MUST-T4-7</tt>):</t>
        <table>
          <thead>
            <tr>
              <th align="left">Label</th>
              <th align="left">Claim</th>
              <th align="left">CBOR type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-70001</td>
              <td align="left">payer</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70002</td>
              <td align="left">payee</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70003</td>
              <td align="left">amount</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70004</td>
              <td align="left">currency</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70005</td>
              <td align="left">policyHash</td>
              <td align="left">tstr (hash)</td>
            </tr>
            <tr>
              <td align="left">-70006</td>
              <td align="left">manifestHash</td>
              <td align="left">tstr (hash) / null</td>
            </tr>
            <tr>
              <td align="left">-70007</td>
              <td align="left">noManifest</td>
              <td align="left">bool</td>
            </tr>
            <tr>
              <td align="left">-70008</td>
              <td align="left">x402PaymentRef</td>
              <td align="left">tstr / null</td>
            </tr>
            <tr>
              <td align="left">-70009</td>
              <td align="left">timestampMs</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70010</td>
              <td align="left">nonce</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70011</td>
              <td align="left">prevReceiptHash</td>
              <td align="left">tstr (hash) / null</td>
            </tr>
            <tr>
              <td align="left">-70012</td>
              <td align="left">outcome</td>
              <td align="left">tstr (<tt>settled</tt> / <tt>aborted</tt>)</td>
            </tr>
          </tbody>
        </table>
        <t>Checkpoint labels (<tt>MUST-T11-1</tt>):</t>
        <table>
          <thead>
            <tr>
              <th align="left">Label</th>
              <th align="left">Claim</th>
              <th align="left">CBOR type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-70101</td>
              <td align="left">epoch</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70102</td>
              <td align="left">startMs</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70103</td>
              <td align="left">endMs</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70104</td>
              <td align="left">receiptCount</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70105</td>
              <td align="left">chainHeadHash</td>
              <td align="left">tstr (hash) / null</td>
            </tr>
            <tr>
              <td align="left">-70106</td>
              <td align="left">totals</td>
              <td align="left">map tstr -&gt; tstr / null</td>
            </tr>
            <tr>
              <td align="left">-70107</td>
              <td align="left">prevCheckpointHash</td>
              <td align="left">tstr (hash) / null</td>
            </tr>
          </tbody>
        </table>
        <t>Manifest labels (<tt>MUST-T8-1</tt>):</t>
        <table>
          <thead>
            <tr>
              <th align="left">Label</th>
              <th align="left">Claim</th>
              <th align="left">CBOR type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-70201</td>
              <td align="left">description</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70202</td>
              <td align="left">amount</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70203</td>
              <td align="left">currency</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70204</td>
              <td align="left">acceptanceCriteriaHash</td>
              <td align="left">tstr (hash)</td>
            </tr>
            <tr>
              <td align="left">-70205</td>
              <td align="left">cancelCondition</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70206</td>
              <td align="left">expiresAtMs</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70207</td>
              <td align="left">ap2MandateHash</td>
              <td align="left">tstr (hash) / null</td>
            </tr>
            <tr>
              <td align="left">-70208</td>
              <td align="left">payee</td>
              <td align="left">tstr (optional; encoded only when present)</td>
            </tr>
          </tbody>
        </table>
        <t>Decision Token labels (<tt>MUST-T6-4</tt>):</t>
        <table>
          <thead>
            <tr>
              <th align="left">Label</th>
              <th align="left">Claim</th>
              <th align="left">CBOR type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-70301</td>
              <td align="left">requestHash</td>
              <td align="left">tstr (hash)</td>
            </tr>
            <tr>
              <td align="left">-70302</td>
              <td align="left">policyHash</td>
              <td align="left">tstr (hash)</td>
            </tr>
            <tr>
              <td align="left">-70303</td>
              <td align="left">expiryMs</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70304</td>
              <td align="left">nonce</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70305</td>
              <td align="left">singleUseId</td>
              <td align="left">tstr</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="cosesign1-headers">
        <name>COSE_Sign1 headers</name>
        <t>The protected header <bcp14>MUST</bcp14> be a deterministic CBOR map containing
(<tt>MUST-T4-1</tt>, <tt>MUST-T4-8</tt>):</t>
        <ul spacing="normal">
          <li>
            <t><tt>1</tt> (alg) = <tt>-19</tt> (Ed25519, <xref target="RFC9864"/>; the generic EdDSA value
<tt>-8</tt> from <xref target="RFC9053"/> is deprecated for this profile)</t>
          </li>
          <li>
            <t><tt>3</tt> (content type) = a tstr that distinguishes the payload:
<tt>application/cedulon-receipt+cbor</tt>,
<tt>application/cedulon-checkpoint+cbor</tt>,
<tt>application/cedulon-manifest+cbor</tt>,
<tt>application/cedulon-decision+cbor</tt>,
<tt>application/cedulon-countersign+cbor</tt>, or
<tt>application/cedulon-inclusion+cbor</tt></t>
          </li>
          <li>
            <t><tt>4</tt> (kid) = bstr, mandatory. The profile computes <tt>kid</tt> as the
first eight bytes of SHA-256 over the issuer's SubjectPublicKeyInfo
DER, in the Ed25519 SubjectPublicKeyInfo encoding of <xref target="RFC8410"/>. A
verifier <bcp14>MUST</bcp14> obtain the public key from an authenticated
channel (preconfigured issuer set, directory, or transparency
statement) and <bcp14>MUST</bcp14> reject a message whose <tt>kid</tt> does not match
that key.</t>
          </li>
        </ul>
        <t>The unprotected header <bcp14>MUST</bcp14> be empty, and a decoder <bcp14>MUST</bcp14> refuse a
message whose unprotected header is not an empty map, by the name
<tt>cose-sign1-unprotected</tt>, rather than verify the signature and ignore
the header (<tt>MUST-T4-21</tt>). The reason is in <xref target="hash-inputs"/>: every
digest over a signed object in this profile is computed over the
COSE_Sign1 octets, which include the unprotected header, while the
signature does not cover it. A decoder that ignored a stuffed header
would verify the signature and compute a <tt>receiptHash</tt> the issuer
never produced, so one honestly signed receipt could carry as many
digests as a stranger cared to give it, and a chain built on
<tt>prevReceiptHash</tt> would follow whichever copy it was handed. The
posted -05 stated the header empty and said nothing about the
decoder; the companion decoder ignored the header until the
question of what the digest covers was measured. The payload <bcp14>MUST</bcp14> be
the CBOR encoding of the claim map. The signature is Ed25519
<xref target="RFC8032"/> over the COSE <tt>Sig_structure</tt>
          <tt>["Signature1", protected, h'', payload]</tt>.</t>
      </section>
      <section anchor="presentation">
        <name>How a signed object is presented</name>
        <t>The signed octets above are what this profile defines and what every
digest in <xref target="hash-inputs"/> is taken over. An object handed to a
verifier travels with a little more than that, and the previous
revisions used one of those members - the key an object carries -
without ever saying where it came from.</t>
        <t>A presented Spend Receipt, epoch checkpoint, Trade Manifest, or
Decision Token carries, beside the signed octets, its claim set or
body in decoded form and <strong>the signer's public key as a
SubjectPublicKeyInfo PEM</strong>; a countersigned receipt carries the
payee's key the same way, and an object presented in the JSON
encoding of <xref target="canonical-json"/> repeats its signature there as
base64. None of these is inside the signed octets, which is the
whole point of naming them here: the signature
covers the COSE message and nothing else, so every one of these
members is a surface anyone holding the object can rewrite. This is
the same shape the Rail Extract states in <xref target="rail-extract"/>, and it
is stated once here for the COSE objects rather than left to be
inferred from an implementation.</t>
        <t>A carried key is not an identity source and <bcp14>MUST NOT</bcp14> be used as one
(<tt>MUST-T4-11</tt>). Under a pin it has exactly one effect: an object
that verifies under the pinned key while carrying a different key is
reported as <tt>carried-key-mismatch</tt>, a warning, and stays attested
(<xref target="issuer-root"/>). With no pin held it is the only key present, so
the signature check that runs against it says the object is
internally consistent and says nothing about who signed it; two
issuers cannot be told apart in that state.</t>
      </section>
    </section>
    <section anchor="canonical-json">
      <name>Canonical JSON encoding</name>
      <t>Not everything this document hashes or signs is CBOR. The policy
document, the six request fields bound by a Decision Token, and the
scoped body of a Rail Extract are JSON, and -03
called each of them "canonical" without saying what that meant. Two
implementations could therefore agree on every requirement in this
document and still produce different bytes, which makes an independent
verifier impossible to write from the text. This section closes that.</t>
      <t>Where this document says "the canonical encoding" of a JSON document,
it means the encoding defined by <xref target="RFC8785"/>, and the octets hashed or
signed are the UTF-8 octets of that encoding.</t>
      <t>Three notes on the boundary of that reference:</t>
      <ul spacing="normal">
        <li>
          <t><xref target="RFC8785"/> Section 3.1 takes I-JSON <xref target="RFC7493"/> as its input, and
an I-JSON object carries no duplicate member names. This document
makes that precondition a rule at every place a verifier receives a
JSON document as text - a rail extract body, a policy document, a
stored receipt file: a text in which any object, at any depth,
repeats a member name <bcp14>MUST</bcp14> be refused by the name
<tt>json-duplicate-key</tt>, before the text is parsed (<tt>MUST-T4-20</tt>). The
rule is measured on the text because a parser that keeps either
value has already discarded the evidence of the other, and two
verifiers parsing one text could then canonicalize two different
documents and sign or check two different octet strings, which is
the JSON form of the disagreement <tt>MUST-T4-18</tt> forbids for CBOR. A
verifier handed an object rather than text, as a tool behind a
JSON-RPC boundary is, cannot apply the rule and <bcp14>MUST NOT</bcp14> report
that it did; whether the text was checked is then the transport's
to state. The posted -05 said nothing about this. The companion
implementation refused such texts before the sentence existed, and
its conformance runner carried the difference as a recorded split
against -05 rather than as a pass.</t>
        </li>
        <li>
          <t><xref target="RFC8785"/> Section 3.2.2.2 requires a serializer to terminate on a
lone surrogate, and so does this document: a producer <bcp14>MUST</bcp14> refuse to
encode a document containing one, by name, and <bcp14>MUST NOT</bcp14> sign what it
could not encode. A verifier reading bytes it cannot canonicalize for
this reason reports the input as failing verification with the
refusal named beside the verdict; it does not crash. No field defined
by this document may contain a lone surrogate, so a conforming
document never reaches this rule. -04 permitted
emitting the escaped form instead, which contradicted the RFC it
cited; that permission is removed.</t>
        </li>
        <li>
          <t><xref target="RFC8785"/> defines no encoding for an integer outside the IEEE 754
double range. No document defined here carries one: every amount and
cumulative limit is already a decimal string before it is encoded,
and every hash is lowercase hexadecimal. A document that would need
such an integer is outside this specification.</t>
        </li>
      </ul>
      <section anchor="hash-inputs">
        <name>Which octets are hashed</name>
        <t>Every hash-valued field in this document is SHA-256 <xref target="RFC6234"/> of the
input named below. All but three are rendered as lowercase hexadecimal.
<tt>kid</tt> differs only in its rendering: the digest is computed over the
same stated input and then truncated to its first 8 bytes, carried as
a byte string rather than as hex (<xref target="cose-profile"/> states the same
rule where the header is defined). <tt>ap2MandateHash</tt> differs in whose
digest it is: AP2 defines the mandate and its octets, and this
document carries the result opaquely rather than restating a rule it
does not own. <tt>deliveredHash</tt> differs in its carrier: it is a claim in
a CBOR map and is carried as the raw 32 digest bytes (bstr), not as
hex; comparisons against <tt>acceptanceCriteriaHash</tt> are made over the
digest value. -03 named the digest for some of
these fields and not for others; the omissions were not a deliberate
degree of freedom.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Input to SHA-256</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>receiptHash</tt></td>
              <td align="left">the signed COSE_Sign1 octets of the receipt</td>
            </tr>
            <tr>
              <td align="left">
                <tt>manifestHash</tt></td>
              <td align="left">the signed COSE_Sign1 octets of the Trade Manifest</td>
            </tr>
            <tr>
              <td align="left">
                <tt>checkpointHash</tt></td>
              <td align="left">the signed COSE_Sign1 octets of the checkpoint</td>
            </tr>
            <tr>
              <td align="left">
                <tt>statementHash</tt></td>
              <td align="left">the signed COSE_Sign1 octets of the statement</td>
            </tr>
            <tr>
              <td align="left">
                <tt>acceptanceCriteriaHash</tt></td>
              <td align="left">the exact delivery bytes, as defined where the Trade Manifest is</td>
            </tr>
            <tr>
              <td align="left">
                <tt>deliveredHash</tt></td>
              <td align="left">the exact bytes the payee received; the same input rule as <tt>acceptanceCriteriaHash</tt>, computed by the other party</td>
            </tr>
            <tr>
              <td align="left">
                <tt>policyHash</tt></td>
              <td align="left">the UTF-8 octets of the canonical policy document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>requestHash</tt></td>
              <td align="left">the UTF-8 octets of the canonical six-field request document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>kid</tt></td>
              <td align="left">the SubjectPublicKeyInfo DER; the digest is then truncated to its first 8 bytes</td>
            </tr>
            <tr>
              <td align="left">
                <tt>ap2MandateHash</tt></td>
              <td align="left">the octets AP2 defines for its mandate; not profiled by this document</td>
            </tr>
          </tbody>
        </table>
        <t>Wherever this table, or any other sentence in this document, says "the
signed COSE_Sign1 octets", those are the octets of the <strong>untagged</strong>
four-element COSE_Sign1 array of <xref target="RFC9052"/>. This profile never wraps
a message in CBOR tag 18, and the vectors in Appendix A carry the
untagged form. A verifier that hashed a tagged copy would compute a
different digest for every object in this profile, so the choice is
stated here once rather than left to be inferred from the vectors.</t>
        <t>The six fields of the request document are the ones <tt>MUST-T6-1</tt> names:
amount, currency, payee, tool, nonce, and <tt>manifestHash</tt>. -03 described
<tt>requestHash</tt> as "the six-field hash" while naming
SHA-256 for <tt>policyHash</tt> in the same sentence, which left a reader free
to conclude that the request binding was not a digest at all. It is
one.</t>
        <t>Naming the members is not stating the document, so the document is
stated here. The request document is a JSON object carrying exactly
those six members and no others, every member always present. <tt>amount</tt>
is the decimal string of the request, in the amount syntax the receipt
claims table states, never a JSON number: <xref target="RFC8785"/> encodes the
number 1 and the string "1" differently, and an implementation free to
pick either would produce two digests for one request. <tt>currency</tt>,
<tt>payee</tt>, and <tt>nonce</tt> are the request's text strings. <tt>tool</tt> is the
request's text string, or JSON null where the deployment names none.
<tt>manifestHash</tt> is the lowercase hexadecimal string, or JSON null for a
spend bound to no manifest; an absent value is null, never an omitted
member. A document with a seventh member, a missing member, or another
type for one of these is not the request document this section
defines.</t>
        <t>The policy document is different on purpose, and the difference is
scope rather than an oversight. Its member set is the deployment's
own: this document defines how the bytes of whatever policy document a
PDP evaluates are encoded (<xref target="canonical-json"/>) and digested, not what
its members are. <tt>policyHash</tt> binds a spend to the exact bytes its PDP
evaluated; it is not a value two deployments are expected to compute
from a shared schema, and nothing in the verification algorithm
compares one deployment's <tt>policyHash</tt> to another's.</t>
      </section>
    </section>
    <section anchor="decision-token">
      <name>Decision Token</name>
      <t>A Decision Token is the portable encoding of a PDP allow. It is
COSE_Sign1 with the header profile in <xref target="cose-profile"/> and the
labels in <xref target="receipt-labels"/>. All five labels are always present
(<tt>MUST-T6-4</tt>).</t>
      <t><tt>requestHash</tt> <bcp14>MUST</bcp14> be the SHA-256 of the canonical encoding of the six
fields the PDP evaluated (<tt>MUST-T6-1</tt>), rendered as lowercase
hexadecimal; <xref target="canonical-json"/> defines that encoding and
<xref target="hash-inputs"/> states the octets. -03 called this
"the six-field hash" in the same sentence that named SHA-256 for
<tt>policyHash</tt>, which left the digest for one of them unstated.
<tt>policyHash</tt> <bcp14>MUST</bcp14> be the SHA-256 of the canonical
policy document the PDP evaluated. <tt>expiryMs</tt> is a Unix time in
milliseconds after which the token <bcp14>MUST</bcp14> be treated as expired
(<tt>SHOULD-T6-3</tt>): expired when the evaluation time is strictly greater
than <tt>expiryMs</tt>, not yet expired at exactly <tt>expiryMs</tt>, on the same
boundary discipline <tt>MUST-T3-3</tt> states for the manifest. <tt>nonce</tt> is the request nonce. <tt>singleUseId</tt> is
the identifier consumed on the first settlement attempt
(<tt>MUST-T6-2</tt>).</t>
      <t>A party that accepts a Decision Token <bcp14>MUST</bcp14> reject it if the
signature fails, if <tt>kid</tt> does not match a configured PDP key, if
the content type is not <tt>application/cedulon-decision+cbor</tt>, if
the decoded claim map does not match the presented claims, or if
<tt>expiryMs</tt> is in the past (<tt>MUST-T6-5</tt>).</t>
    </section>
    <section anchor="rail-extract">
      <name>Rail Extract Profile</name>
      <t>A verifier checks completeness against a <strong>rail extract</strong>, not against
the issuer's own receipts alone (<tt>MUST-T10-7</tt>).</t>
      <section anchor="record-schema">
        <name>Record schema</name>
        <t>The extract body is a JSON document. Each settlement record <bcp14>MUST</bcp14>
contain the following members, under these names:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Member</th>
              <th align="left">JSON type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ref</td>
              <td align="left">string (rail payment reference)</td>
            </tr>
            <tr>
              <td align="left">amount</td>
              <td align="left">string matching <tt>0|[1-9][0-9]*</tt></td>
            </tr>
            <tr>
              <td align="left">currency</td>
              <td align="left">string</td>
            </tr>
            <tr>
              <td align="left">timestampMs</td>
              <td align="left">number (POSIX milliseconds, an integer)</td>
            </tr>
          </tbody>
        </table>
        <t>These member names are normative. A rail <bcp14>MAY</bcp14> add members of its own
to a record; it <bcp14>MUST NOT</bcp14> rename the four above. -04
said the member names were the rail's to define, which contradicted
this table and made the extract unconstructable from the text: a
verifier reading <tt>reference</tt> where the table says <tt>ref</tt> has no rule
telling it whether the two are the same member. The table wins, and
-04's sentence is withdrawn. The table also used
CBOR terms (<tt>tstr</tt>, <tt>uint</tt>) for what is a JSON body; the types above
are stated in JSON terms.</t>
        <t>A record <bcp14>MAY</bcp14> carry a <tt>beneficiary</tt> member (string). A rail that can
resolve a payment reference to the party credited declares it there;
when present, it is compared against the payee of the receipt that
names the same <tt>ref</tt>, and a difference is reported
(<tt>beneficiary-mismatch</tt>). Resolving a reference to a beneficiary is a
feature of the rail's own system: this profile does not assume it,
and measures it only when the rail declares it.</t>
      </section>
      <section anchor="scope">
        <name>Scope</name>
        <t>An extract is scoped to one account identifier, one rail identifier,
and one half-open time window <tt>[windowStartMs, windowEndMs)</tt>. The
signed body is one JSON document with exactly this shape:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Member</th>
              <th align="left">JSON type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">accountId</td>
              <td align="left">string</td>
            </tr>
            <tr>
              <td align="left">railId</td>
              <td align="left">string</td>
            </tr>
            <tr>
              <td align="left">windowStartMs</td>
              <td align="left">number (POSIX milliseconds, an integer)</td>
            </tr>
            <tr>
              <td align="left">windowEndMs</td>
              <td align="left">number (POSIX milliseconds, an integer)</td>
            </tr>
            <tr>
              <td align="left">clockSkewMs</td>
              <td align="left">number (milliseconds, a non-negative integer; optional; see <xref target="reconciliation"/>)</td>
            </tr>
            <tr>
              <td align="left">settlements</td>
              <td align="left">array of settlement records (schema above)</td>
            </tr>
          </tbody>
        </table>
        <t>All six named members except <tt>clockSkewMs</tt> <bcp14>MUST</bcp14> be present; a body
missing one, or a record renaming a core member, <bcp14>MUST</bcp14> be refused by
name at both ends - by the signer before it signs and by the verifier
before it checks a signature - so a malformed extract is the same
refusal on both sides rather than a signature verdict. Additional
members beyond these are the rail's to add, as with records.</t>
        <t>The integer-valued members - <tt>windowStartMs</tt>, <tt>windowEndMs</tt>, each
record's <tt>timestampMs</tt>, and <tt>clockSkewMs</tt> - <bcp14>MUST</bcp14> be integers of
magnitude at most 2^53 - 1, the range a JSON number carries exactly,
and <tt>clockSkewMs</tt> <bcp14>MUST NOT</bcp14> be negative; a value outside those bounds,
or a non-integer, is refused by name in the same way as a missing
member.</t>
        <t>The body is read as text before it is read as an object. A text in
which any object repeats a member name is refused as
<tt>json-duplicate-key</tt> at both ends, before parsing and before any
signature is checked (<tt>MUST-T4-20</tt>, <xref target="canonical-json"/>); a signer
that parsed first would sign one of the two values and an honest
verifier could check the other.</t>
        <t><tt>clockSkewMs</tt>, when present, declares the boundary allowance the
verifier applies at this window's edges during reconciliation
(<xref target="reconciliation"/>); when absent, the profile default of 300000
milliseconds (five minutes) applies.</t>
      </section>
      <section anchor="authentication">
        <name>Authentication</name>
        <t>The rail signs Ed25519 <xref target="RFC8032"/> over the canonical encoding of the
scoped body, which is a JSON document and therefore takes the encoding
of <xref target="canonical-json"/>: the signed octets are the UTF-8 octets of the
<xref target="RFC8785"/> encoding of the body above. The signature and the rail's
public key travel beside the body, the signature as base64 and the
key as a SubjectPublicKeyInfo PEM; neither is part of the signed
octets. A verifier <bcp14>MUST</bcp14>
obtain the extract from the rail or from a signature the rail
published (<tt>MUST-T10-7</tt>). A deployment that cannot do so is running
the reconciliation against evidence it did not obtain independently,
and <bcp14>MUST</bcp14> report the guarantee as conditional.</t>
        <t>A signature on an extract proves internal consistency, not origin: a
key generated by whoever produced the object verifies against itself.
The verifier therefore <bcp14>MUST</bcp14> obtain the rail's public key out of band
and <bcp14>MUST</bcp14> verify the extract signature against that key (<tt>MUST-T10-8</tt>).
A key the extract carries is not that key: it is neither the rail's
identity nor a fallback for one the verifier did not obtain. Where no
such key is held, the carried key is the only key present, so the
signature check that runs against it says the extract is internally
consistent and says nothing about who produced it, and the verifier
<bcp14>MUST</bcp14> treat the guarantee as conditional.</t>
        <t>Keys are compared as bytes. A verifier <bcp14>MUST</bcp14> compare the pinned key
and the key that signed the extract by their SubjectPublicKeyInfo
DER encoding, not by any text encoding of it, so that the same key
presented in a different envelope still compares equal
(<tt>MUST-T10-9</tt>). A pinned key the verifier cannot decode is a fault in
the verifier's own configuration, not evidence about the extract, and
<bcp14>MUST</bcp14> be reported as <tt>trust-key-unreadable</tt> rather than as a key
mismatch.</t>
        <t>What a verifier emits for an extract it cannot authenticate depends on
whether it stated an expectation. With no pinned key the verifier has
asserted nothing, so the condition is <tt>unauthenticated-extract</tt>
whatever the extract carries - a signature that verifies against the
carried key establishes internal consistency and not origin, and one
that fails or is refused is not a verdict about a key either. It is a
warning: completeness findings may still be computed, but the
guarantee is <strong>conditional</strong> on the extract being authentic. With a pinned key the verifier has
asserted what it requires, and an extract that fails to meet it is a
failure rather than a caveat; see the verification algorithm for which
finding applies. -00 defined only the first case, and readers of -00
should note that -02 made the pinned case fail closed.
See <xref target="security"/>.</t>
      </section>
      <section anchor="scope-agreement">
        <name>Scope agreement</name>
        <t>An extract declares a window and carries settlement records. The two
<bcp14>MUST</bcp14> agree: a verifier <bcp14>MUST</bcp14> report every settlement record whose
<tt>timestampMs</tt> falls outside <tt>[windowStartMs, windowEndMs)</tt> as
<tt>extract-scope-mismatch</tt>, identified by that record's <tt>ref</tt>
(<tt>MUST-T10-10</tt>). This check is about the extract's internal
consistency and <bcp14>MUST</bcp14> be performed whether or not a rail key is
pinned.</t>
        <t>A verifier that knows which account, rail, and window it is auditing
<bcp14>MUST</bcp14> also check the extract against that expectation and <bcp14>MUST</bcp14> fail
closed when the extract does not cover it (<tt>MUST-T10-11</tt>). An extract
for another account or rail, or one whose window does not span the
period under audit, cannot support a completeness claim about that
period.</t>
        <t>A verifier that states no period leaves the extract free to define
one, and an extract that reports on a millisecond balances as easily
as one that reports on a month. Pinning a key establishes who signed;
only a stated period establishes what the signature had to cover. A
verifier that has not stated the period under audit therefore <bcp14>MUST</bcp14>
emit <tt>unstated-audit-window</tt> and <bcp14>MUST</bcp14> treat the guarantee as
conditional (<tt>MUST-T10-15</tt>), whatever else verifies.</t>
        <t>The period is one axis of that scope. The account and the rail are
the other two, and they behave the same way: an extract names one of
each, so a verifier that has not stated them leaves the extract to
say whose settlements were accounted for and which way out was
watched. A verifier that has not stated the account or the rail under
audit therefore <bcp14>MUST</bcp14> emit <tt>unstated-audit-scope</tt> and <bcp14>MUST</bcp14> treat the
guarantee as conditional (<tt>MUST-T10-18</tt>). Where no rail key is pinned
at all, all three axes are equally unstated and
<tt>unauthenticated-extract</tt> is the condition reported.</t>
        <t>Stating them does not widen the population; it names it. One account
settling on two rails has two settlement paths, and an extract for
the first reports nothing about the second: a spend that left that
way is not an unmatched row, it is outside the population the extract
declared. Because the strongest line this profile prints - a balanced
audit under an unconditional guarantee - is true of one account, on
one rail, over one window, a report that carries it <bcp14>MUST</bcp14> also carry
that account, rail and window (<tt>MUST-T10-19</tt>). A completeness claim
about an account is the conjunction of one such report per rail that
account can settle on, and enumerating those rails is the deployment's
statement, not something an extract can be asked to prove.</t>
      </section>
    </section>
    <section anchor="trust-roots">
      <name>Trust roots</name>
      <t><xref target="rail-extract"/> states the rule for one object: a signature proves
internal consistency, not origin, so the verifier obtains the rail key
out of band and checks the extract against it, and the key the extract
carries is neither the rail's identity nor a fallback for one the
verifier did not obtain (<tt>MUST-T10-8</tt>). -02 already
required a verifier to obtain the public key from an authenticated
channel and to reject a <tt>kid</tt> that does not match that key
(<tt>MUST-T4-8</tt>). What -02 did not carry was the verification algorithm,
the separate root inputs, and the error semantics that name a missing
or mismatched pin. This section states those for every signed object
in the profile.</t>
      <t>The gap is not theoretical. A verifier that checks a Spend Receipt
against the key the receipt carries accepts a receipt signed by any
key at all, including one an attacker minted for the occasion. Such a
receipt matches a settlement the attacker was never authorised to
make, the settlement stops looking uncovered, and the audit reports
nothing. The completeness property in <xref target="reconciliation"/> is then
computed over evidence that answers to nobody.</t>
      <section anchor="issuer-root">
        <name>The issuer root</name>
        <t>A verifier <bcp14>MUST</bcp14> obtain the issuer's public key out of band and <bcp14>MUST</bcp14>
verify Spend Receipt and epoch checkpoint signatures against that key.
A key the object carries is not that key: it establishes no signer
identity and is not a fallback for a pin the verifier does not hold
(<tt>MUST-T4-9</tt>, <tt>MUST-T4-11</tt>). Where no issuer key is held, a signature
checked against the key its own object carries establishes internal
consistency and nothing more, which is the state <xref target="presentation"/> and
the last row of the table below describe. A
verifier that holds no such key and is presented with any Spend
Receipt or epoch checkpoint <bcp14>MUST</bcp14> treat the completeness guarantee as
conditional and <bcp14>SHOULD</bcp14> report the condition; the identifier
<tt>unauthenticated-issuer</tt> is used for it in this implementation.</t>
        <t>The condition names those two objects because an audit given no
receipts and no checkpoints rests on the extract alone.
There the absent issuer root withholds nothing, and warning about a
root the audit never consulted would spend the warning where it
carries no information.</t>
        <t>Reporting a mismatch is not sufficient on its own. A receipt that
does not answer to the pinned issuer key <bcp14>MUST NOT</bcp14> count as coverage
for the settlement it names, and the settlement <bcp14>MUST</bcp14> still be
reported as uncovered (<tt>MUST-T4-10</tt>). A verifier that reports the
mismatch and then lets the receipt match the settlement anyway has
described the attack in its output while still concluding that the
books balance.</t>
        <t>Keys are compared as bytes, by their SubjectPublicKeyInfo DER
encoding, on the same terms as <tt>MUST-T10-9</tt>. A pinned issuer key the
verifier cannot decode is a fault in its own configuration and <bcp14>MUST</bcp14>
be reported as <tt>trust-key-unreadable</tt> rather than as a mismatch
against the objects; where no pinned key can be decoded at all,
nothing is attested and the verifier <bcp14>MUST NOT</bcp14> fall back to accepting
the keys the objects carry (<tt>MUST-T4-11</tt>). Falling back is how a
mistyped configuration becomes a bypass.</t>
        <t>Membership in the attested set follows one rule: the signature
verifies under a pinned issuer key. The <tt>kid</tt> header routes the check
to a candidate key; the key an object carries beside its signature is
not an identity source, because it travels outside the signed octets
and anyone can rewrite it. Two consequences are stated so that
implementations do not diverge on them. First, an honestly signed
object whose carried key was swapped stays attested: the swap is
reported (<tt>carried-key-mismatch</tt>, a warning) and <bcp14>MUST NOT</bcp14> move the
object out of the attested set or change the verdict, on the same
reasoning as <xref target="countersign"/> - a surface the signature does not cover
must not be able to manufacture a negative result. Second, an object
that claims the pin, by its carried key or its <tt>kid</tt>, but does not
verify under it is excluded from the attested set and <bcp14>MUST</bcp14> still be
walked and named - for a receipt, <tt>receipt-chain-break</tt> with a
signature-failed detail - never silently dropped; an object that
neither verifies under the pin nor claims it is
<tt>issuer-key-mismatch</tt>, excluded, and the settlement it names stays
uncovered.</t>
        <t>The rule, read out per cell (steps 6 and 8 are the verification
algorithm's):</t>
        <table>
          <thead>
            <tr>
              <th align="left">Claims the pin (carried key or kid)</th>
              <th align="left">Verifies under the pin</th>
              <th align="left">Result</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">yes</td>
              <td align="left">yes</td>
              <td align="left">attested; a carried key other than the verifying one is <tt>carried-key-mismatch</tt>, a warning, and does not move the receipt</td>
            </tr>
            <tr>
              <td align="left">yes</td>
              <td align="left">no</td>
              <td align="left">excluded from the attested set; still walked and named in step 6 (<tt>receipt-chain-break</tt>, signature-failed detail); its settlement stays uncovered in step 8. A checkpoint has no chain walk to be named in, so it is reported as <tt>issuer-key-mismatch</tt> on this row as well as the next, and the window it would have covered is reported uncovered</td>
            </tr>
            <tr>
              <td align="left">no</td>
              <td align="left">no</td>
              <td align="left">
                <tt>issuer-key-mismatch</tt>; excluded; its settlement stays uncovered in step 8 (<tt>MUST-T4-9</tt>, <tt>MUST-T4-10</tt>)</td>
            </tr>
            <tr>
              <td align="left">no pin held</td>
              <td align="left">no pin to verify under</td>
              <td align="left">no comparison against a key the verifier holds happens, and the keys the objects carry are not a fallback for one (<tt>MUST-T4-11</tt>); each signature is still checked against the key its own object carries (<xref target="presentation"/>), which establishes that the object is internally consistent and nothing about who signed it, so a broken signature is still named (<tt>receipt-chain-break</tt>, <tt>checkpoint-total-mismatch</tt>) while two different issuers cannot be told apart; receipts are presented-unattested, the verifier reports <tt>unauthenticated-issuer</tt>, and accusation-shaped findings take the two-branch severity of <tt>MUST-T8-9</tt></td>
            </tr>
          </tbody>
        </table>
        <t>A verifier <bcp14>MUST</bcp14> accept an issuer root that is a set of keys rather
than a single key (<tt>MUST-T4-12</tt>). An issuer that rotates its key
mid-window otherwise
produces a finding against every honest receipt signed by the
retired key, and the reachable way out of that is to stop pinning,
which is the opposite of what the pin is for. The same acceptance
applies to a publisher pin, a witness pin, and a rail pin: a
verifier <bcp14>MUST</bcp14> accept each of those roots as a set of keys, so a
rotation inside the window does not force it off the pin.</t>
      </section>
      <section anchor="payee-root">
        <name>The payee root</name>
        <t>The optional countersignature in <xref target="countersign"/> travels beside the
issuer signature without being covered by it. Anyone holding an
honest receipt can append a countersignature of their own, so a
verifier that checks it against the key carried next to it learns
only that some key signed something.</t>
        <t>A countersignature <bcp14>MUST NOT</bcp14> be treated as evidence that the payee
approved the payment unless it verifies against a payee key the
verifier obtained out of band (<tt>MUST-T4-13</tt>). Without such a key the
verifier <bcp14>SHOULD</bcp14> report the condition and <bcp14>MUST</bcp14> treat the guarantee as
conditional.</t>
        <t>Naming a payee key states an expectation, and an expectation that
only fires when the evidence is present can be cancelled by deleting
the evidence. Where a verifier has pinned a key for a payee, a
settled receipt naming that payee and carrying no <strong>attributable</strong>
countersignature <bcp14>MUST</bcp14> be reported (<tt>MUST-T4-14</tt>): a countersignature
that failed to verify, or verified under some other key, is discarded
under <xref target="countersign"/> and leaves the expectation open exactly as a
missing one does. Otherwise an attacker removes their own failed
forgery - or appends one - and the report returns to unconditional.
The discarded object itself is a warning, never a failure of the
receipt it rode beside; <xref target="countersign"/> states the invariant.</t>
      </section>
      <section anchor="witness-root">
        <name>The witness root</name>
        <t><xref target="witness"/> describes what a transparency witness adds. An inclusion
receipt checked against the key it carries says that some log is
internally consistent, and a log is cheap to invent.</t>
        <t>A verifier <bcp14>MUST</bcp14> obtain the transparency service's public key out of
band and <bcp14>MUST</bcp14> verify inclusion receipts against it (<tt>MUST-T11-15</tt>).
Inclusion receipts that cannot be checked that way <bcp14>MUST NOT</bcp14> be used
as evidence, in either direction: they cannot establish that a
checkpoint was anchored, and they cannot establish that one was
withheld. A verifier <bcp14>SHOULD</bcp14> report that it left them out.</t>
        <t>A log holds statements from everyone who uses it. A statement held by
a pinned log <bcp14>MUST</bcp14> additionally answer to the issuer root before it
counts as something that issuer published (<tt>MUST-T11-16</tt>); otherwise
another user's epoch, sitting in a shared log, reads as this issuer
publishing two checkpoints for one epoch.</t>
        <t>Anchoring and withholding are different claims and need different
evidence. Establishing that a checkpoint was logged needs only the
statement hash. Establishing that an issuer withheld one needs to
know whose statement it is, which an inclusion receipt carrying no
statement body cannot say. Such a receipt <bcp14>MUST NOT</bcp14> be used to report
a withheld checkpoint, and <bcp14>MUST NOT</bcp14> be silently discarded either: a
real withholding must not be buried by removing the body
(<tt>MUST-T11-17</tt>).</t>
      </section>
      <section anchor="decision-root">
        <name>The decision root</name>
        <t>A Decision Token is issued by the policy decision point and consumed
by the same deployment. The consumer therefore holds the key it
signs with and has no reason to ask the token which key to check it
against. A consumer <bcp14>MUST</bcp14> verify a Decision Token against its own
issuing key and <bcp14>MUST NOT</bcp14> accept one it cannot check that way
(<tt>MUST-T6-6</tt>).</t>
      </section>
      <section anchor="manifest-root">
        <name>The manifest root</name>
        <t>A Trade Manifest is optional. A deployment that presents none is not
missing a root, and this requirement does not make such an audit
conditional. The forbidden case is the other one: a manifest is
presented, and the verifier accepts it because the key travelling
inside it verifies against itself.</t>
        <t>A verifier that is presented with a Trade Manifest <bcp14>MUST</bcp14> obtain the
publisher's public key out of band and <bcp14>MUST</bcp14> verify the manifest
signature against that key, not against a key the manifest carries
(<tt>MUST-T4-15</tt>). A verifier without such a key that is presented with
a Trade Manifest <bcp14>MUST</bcp14> report the completeness guarantee as
conditional and <bcp14>SHOULD</bcp14> report the condition; the identifier
<tt>unauthenticated-manifest</tt> is used for it in this implementation.
An audit presented with no Trade Manifest is not made conditional by
this requirement.</t>
        <t>A pinned manifest key the verifier cannot decode is a fault in its
own configuration and <bcp14>MUST</bcp14> be reported as <tt>trust-key-unreadable</tt>
rather than as a mismatch, on the same terms as <tt>MUST-T4-11</tt>. A
manifest that does not verify against a readable pin <bcp14>MUST</bcp14> be
reported as <tt>manifest-key-mismatch</tt> and <bcp14>MUST</bcp14> fail the audit. Falling
back to the key the manifest carries is how a presented document
becomes a bypass.</t>
        <t>Attribution is one question and coverage is another, and a root that
answers only the first leaves the document doing work it was never
spent under. A verifier presented with a Trade Manifest <bcp14>MUST</bcp14> compare
the manifest hash to the <tt>manifestHash</tt> of the receipts presented to
the audit and <bcp14>MUST</bcp14> report a manifest that no presented receipt
references (<tt>MUST-T4-17</tt>); the identifier <tt>manifest-covers-no-receipt</tt>
is used for it in this implementation, and the completeness guarantee
is conditional. The comparison runs against those presented receipts,
including aborted ones, and is made before any extract window is
applied and before any issuer key is applied; a hash on an aborted
receipt, on a receipt outside the extract window, or on a receipt no
pinned key attests still counts as a reference. This requirement asks
whether any receipt names the terms, not whether a settlement in the
window was made under them, and not whether the receipt that names them
is attributable. A forged receipt can therefore silence this warning.
That is accepted: what it silences is a statement that terms were
named, and the report it leaves behind is still marked conditional and
still carries the finding that the receipt answers to no pinned key. A correctly attributed manifest
travelling beside a set of receipts marked <tt>noManifest</tt> states terms
nothing presented was spent under, and a report that stays silent
about it reads as terms-backed when it is not. This requirement does
not reach the audit presented with no Trade Manifest, which remains a
deployment choice under <tt>MUST-T1-2</tt>.</t>
        <t>Naming a manifest is not obeying one, and that is the third place this
document has had to say the same thing twice. A verifier presented with
a Trade Manifest <bcp14>MUST</bcp14> compare the amount, the currency and the
settlement time of every receipt that names it against the
manifest's amount, currency and expiry, and <bcp14>MUST</bcp14> report a receipt that
departs from them (<tt>MUST-T8-9</tt>); the identifier
<tt>manifest-terms-mismatch</tt> is used for it in this implementation.
Every receipt that names the manifest is measured, aborted ones
included: an aborted receipt that carries the hash of terms and a
departing amount recorded an attempt against terms it misstates, and
<tt>MUST-T4-17</tt> next door already counts it as a reference. The time
compared is the receipt's <tt>timestampMs</tt>, against the boundary
<tt>MUST-T3-3</tt> states: strictly after <tt>expiresAtMs</tt> departs, exactly at
it does not. Amount and currency are compared on the exact-octet
terms of <tt>MUST-T8-2</tt> - the audit asks whether the gate's own rules
were kept, so it compares the way the gate compares.</t>
        <t>Where a usable issuer key is pinned, the comparison is made over the
receipts that verify under it and the audit fails. Where none is
pinned, the departure is still reported and the audit does not fail on
it alone. An issuer key is usable when the pinned issuer root holds at
least one key the verifier can decode. A pinned root none of whose
keys decode is already <tt>trust-key-unreadable</tt> and attests nothing, so
the comparison takes the unpinned branch while that finding stands;
the audit has failed on the configuration fault, and the departure is
still said out loud without becoming a charge no readable key backs. -03
stated the first case for both, and an
implementation showed why that is wrong: a receipt signed by any key at
all, carrying the right manifest hash and the wrong amount, made the
verifier report a breach that never happened, against a payment
reference the forger chose. Reporting a departure costs nothing if it
is unattributable; failing an audit on it hands an attacker a way to
accuse an honest payer.</t>
        <t><tt>MUST-T4-17</tt> and this requirement therefore differ, and the difference
is not an inconsistency. Asking whether a manifest hash appears
anywhere is a question about a set of documents, and an unattributable
document is still in that set. Saying that a named party broke terms it
signed is a charge, and a charge needs a key behind it.</t>
        <t>Only receipts that name the manifest are measured against
it: reading the terms onto a receipt that never claimed them would
invent a violation the payer did not commit.</t>
        <t>The rules being enforced here are not new. A gate already refuses a
bound spend whose amount or currency differs from the manifest
(<tt>MUST-T8-2</tt>) and one made against an expired manifest
(<tt>MUST-T3-3</tt>). Both were written for the point where money moves, and
an audit reads the record after that point, where the gate is no longer
present to be asked. Without a counterpart a receipt can carry the hash
of terms it breaks and the report still calls the books balanced. This
is a finding rather than a condition on the guarantee: a verifier that
reports it held every root it needed, and the statement it is making is
unconditional.</t>
        <t>The gate answers differently from the audit, and the difference is
deliberate. A policy decision point presented with a Trade Manifest
it cannot attribute <bcp14>MUST</bcp14> refuse the payment rather than settle and
record the doubt (<tt>MUST-T4-16</tt>). An audit describes what it found
and may say the result is conditional; a gate decides whether money
moves, and a settled payment carrying the hash of terms nobody
authorised cannot be withdrawn by reporting it afterwards. The
receipt would record those terms as agreed.</t>
      </section>
      <section anchor="what-the-roots-do-not-cover">
        <name>What the roots do not cover</name>
        <t>A verifier that supplies none of these roots is not making an error,
and this document does not require it to. It is making a weaker
statement, and the guarantee it reports must say so. With no issuer
key nothing distinguishes one submitted receipt from another, so
conditions computed across the submitted set - two receipts claiming
one settlement reference, for instance - cannot be attributed to
anyone and are reported as conditions of the submission rather than
as failures of a party.</t>
      </section>
    </section>
    <section anchor="reconciliation">
      <name>Reconciliation and Epoch Checkpoints</name>
      <t>Completeness is the property that, given an authenticated rail
extract, every settlement in the extract has a matching settled Spend
Receipt, every settled receipt has a matching settlement, receipt and
checkpoint hash chains verify, and checkpoint totals equal the sum of
<strong>settled</strong> receipts in the checkpoint window. If a spend occurred
without a receipt, the missing receipt is itself the evidence
(<tt>MUST-T10-2</tt>).</t>
      <t>The property is stated over a population, and the extract is what
declares it: one account, on one rail, over one window
(<xref target="rail-extract"/>). "Every settlement" means every settlement that
extract carried. A settlement path no presented extract covers is not
reconciled and not found missing - it is outside the population - so
the report names the account, rail and window it was computed over
(<tt>MUST-T10-19</tt>), and a verifier that stated none of them says so
instead (<tt>MUST-T10-18</tt>).</t>
      <t>A checkpoint published with its totals withheld (<xref target="redaction"/>) cannot
contribute the last of those to the property. It is not a violation of
completeness and it is not a demonstration of it either: the
comparison was not made, and a result that rests on a comparison
nobody made is conditional (<tt>MUST-T11-12</tt>).</t>
      <section anchor="redaction">
        <name>Checkpoint claims</name>
        <t>An epoch checkpoint <bcp14>MUST</bcp14> be COSE_Sign1-signed with the header profile
in <xref target="cose-profile"/> and <bcp14>MUST</bcp14> bind all of the following
(<tt>MUST-T11-1</tt>):</t>
        <t>epoch, <tt>startMs</tt>, <tt>endMs</tt>, <tt>receiptCount</tt>, <tt>chainHeadHash</tt>,
<tt>totals</tt>, and <tt>prevCheckpointHash</tt>.</t>
        <t>The checkpoint window is half-open <tt>[startMs, endMs)</tt>
(<tt>MUST-T11-7</tt>). <tt>receiptCount</tt> <bcp14>MUST</bcp14> equal the number of receipts
(settled and aborted) whose <tt>timestampMs</tt> falls in that window.
<tt>chainHeadHash</tt> <bcp14>MUST</bcp14> equal <tt>receiptHash</tt> of the last receipt in that
window - the last link, in issuer order (the <tt>prevReceiptHash</tt> chain,
as the verification algorithm's step 6 defines it), of the chain
inside the window, not the last one presented or the latest
<tt>timestampMs</tt> - or null if the window is empty (<tt>MUST-T11-2</tt>). Where <tt>totals</tt>
is present it <bcp14>MUST</bcp14> sum only receipts with <tt>outcome</tt> = <tt>settled</tt>; the
one permitted absence is the signed redaction below.</t>
        <t>An issuer that publishes a checkpoint without its totals <bcp14>MUST</bcp14> encode
<tt>totals</tt> as null in the signed payload (<tt>MUST-T11-12</tt>). An empty map
is an honest zero for an empty window and is not a redaction. Because
the redaction is inside the signature, it cannot be added to, or
removed from, a checkpoint after signing.</t>
        <t>A verifier <bcp14>MUST NOT</bcp14> accept a redaction asserted anywhere but the
signed payload (<tt>MUST-T11-13</tt>). A presentation-layer flag alongside
a checkpoint is chosen by whoever presents it, which is the party
under audit; honouring such a flag would let that party switch off
the totals comparison for a checkpoint whose signed totals are wrong.
The structural claims (epoch, <tt>startMs</tt>, <tt>endMs</tt>, <tt>receiptCount</tt>,
<tt>chainHeadHash</tt>, <tt>prevCheckpointHash</tt>) <bcp14>MUST NOT</bcp14> be redacted: a
checkpoint missing any of them does not decode, and a verifier <bcp14>MUST</bcp14>
treat it as a failed checkpoint rather than as a redacted one.</t>
      </section>
      <section anchor="genesis">
        <name>Genesis and continuity</name>
        <t>The first checkpoint in a presented chain is the genesis checkpoint
of that chain. Its <tt>prevCheckpointHash</tt> <bcp14>MUST</bcp14> be null. Epoch numbers
<bcp14>MUST</bcp14> be consecutive integers. Adjacent windows <bcp14>MUST</bcp14> satisfy
<tt>next.startMs = prev.endMs</tt> (<tt>MUST-T11-8</tt>).</t>
        <t>A later checkpoint that omits a prefix of earlier epochs (prefix
deletion) is detectable only if an external witness (transparency
log) has recorded the missing prefix (<tt>MUST-T11-9</tt>). Without that
witness, T11 guarantees about suppression are <strong>conditional</strong>.</t>
        <t>-01 stated that dependency and stopped there: nothing in its
verification algorithm read a witness receipt, so the witness
had no way to speak. -02 gave it one. A verifier that
holds witness receipts for the period under audit compares what
the witness recorded against what the chain presented, and reports
the difference under its own name (<xref target="witness"/>). A witness that holds
a checkpoint the presented chain omits is not the same condition as
a chain that leaves a gap in its own coverage, and the two <bcp14>MUST NOT</bcp14>
be reported under one identifier (<tt>MUST-T11-11</tt>). The first says
evidence is being withheld; the second says the evidence shown is
incomplete. An operator who cannot tell them apart cannot tell an
incomplete record from a concealed one.</t>
      </section>
      <section anchor="witness">
        <name>The transparency witness</name>
        <t>A checkpoint registered with a Transparency Service <xref target="RFC9943"/> is a
Signed Statement whose payload is the checkpoint COSE object and
whose content type is <tt>application/cedulon-checkpoint+cbor</tt>
(<xref target="anchoring"/>). What comes back, and what it proves, is stated as
two named tiers, because -04 promised the
mechanics of one tier while describing the checks of the other.</t>
        <t><strong>Tier 1 - the witness receipt.</strong> The witness returns a co-signature
over the statement hash of what it recorded: a COSE_Sign1 whose
payload binds the statement hash, the entry index, and the witness's
tree head. Verifying it establishes exactly one sentence - "the
witness signed for this hash" - and nothing more; in particular it
does not establish membership in an append-only log. -04 called this
object a transparency receipt and cited the
verification mechanics of <xref target="RFC9942"/> for it while describing a hash
comparison; the admission in <xref target="impl-status"/>, that the receipt was a
signature over a statement rather than a proof of log membership, was
correct, and the protocol text now says the same thing. The
<xref target="RFC9942"/> citation applies in tier 2, where its mechanics are
actually performed.</t>
        <t>On the wire the witness receipt is a COSE_Sign1 under <xref target="cose-profile"/>,
signed by the witness key, with content type
<tt>application/cedulon-inclusion+cbor</tt> (<xref target="iana-inclusion"/>). Its payload
is a deterministic CBOR map carrying three entries and is not a CWT
claim set: label <tt>1</tt> is the statement hash, label <tt>2</tt> the entry index,
label <tt>3</tt> the tree head. The two hashes are text strings holding the
lowercase hexadecimal of a 32-octet SHA-256, the statement hash taken
over the octets of the statement the witness recorded; the entry index
is an unsigned integer. The hash strings are compared as issued and are
not passed through the hash-claim grammar the claim sets use; the
revision that moves them to byte strings will close that difference.
Entries under other labels are not defined, and a verifier of this
revision does not refuse them. The map carries no statement body: a
receipt that travels with the body carries it beside the COSE object,
not inside it (<xref target="witness-root"/>, <tt>MUST-T11-17</tt>). A receipt whose
content type is another value, or whose payload lacks one of the three
entries or carries one of another type, does not verify: the content
type is the check <xref target="cose-profile"/> makes on every object of this
profile, and the payload map is the one this paragraph states.</t>
        <t>A verifier <bcp14>MAY</bcp14> be given witness receipts for the period under audit.
It is a distinct input from the presented checkpoint chain, and
supplying it is optional: a verifier given none performs the same
steps, and reports the same findings, that it would if this input did
not exist (<tt>MUST-T11-10</tt>). Supplying an empty set is not the same as
supplying none. An empty set says a witness is configured and
recorded nothing, which is itself reportable; absence says no witness
was consulted.</t>
        <t>A receipt binds a statement hash, not a statement. The body is not
carried by the receipt and a verifier will often not hold it. Two
levels of checking follow from that, and they are not the same
(<tt>MUST-T11-10</tt>).</t>
        <t>Every receipt <bcp14>MUST</bcp14> have its signature verified before it counts for
anything. That is what establishes the hash as one the service signed
for, and it is all that comparing recorded hashes against presented
ones requires: the verifier computes the statement hash of each
presented checkpoint itself.</t>
        <t>A receipt accompanied by the statement body carries more, and <bcp14>MUST</bcp14> be
checked further before that body is relied on. The body's statement
hash <bcp14>MUST</bcp14> equal the hash the receipt binds, and the body <bcp14>MUST</bcp14> itself
verify as a checkpoint. A body that fails either check proves nothing
and <bcp14>MUST</bcp14> be ignored rather than counted, while the receipt it came
with remains usable for the hash comparison. Equivocation is the case
that needs a body, because it compares claims rather than hashes.</t>
        <t><strong>Tier 2 - log membership.</strong> A verifier <bcp14>MAY</bcp14> additionally be given,
for one recorded statement, the registered Signed Statement bytes
(the candidate entry) and an inclusion proof. When both are present,
the verifier <bcp14>MUST</bcp14> perform the verification of <xref target="RFC9942"/> Section
5.2.1 over them: hash the candidate entry bytes to obtain the leaf,
apply the proof to reproduce a root, and accept only when the leaf
hash, the proof's leaf index, and the reproduced root are all equal
to the statement hash, entry index, and tree head of one witness
receipt that verifies under the pinned witness key (<tt>MUST-T11-18</tt>).
Reproducing a root is deliberately not sufficient on its own: the
proof format below carries no domain separation between leaves and
interior nodes, and the exact match against a witness-signed receipt
is what closes the ambiguities that follow from that. A pair that
fails this check, or a candidate entry presented without a proof,
<bcp14>MUST</bcp14> be reported as a failing finding; the identifier
<tt>witness-inclusion-invalid</tt> names it.</t>
        <t>The inclusion proof is an audit path: the leaf index, and the sibling
hashes from the leaf's level up to the root, lowest level first. The
tree is built over statement hashes as leaves; an interior node is
the SHA-256 of the concatenation of its two children's 32 raw bytes;
a level with an odd count pairs its last node with itself, so the
path needs no separate leaf count.</t>
        <t>Where witness receipts are supplied and this pair is not, tier 2 was
not exercised, and the report <bcp14>MUST</bcp14> say so rather than letting the
tier pass silently (<tt>MUST-T11-19</tt>); the identifier
<tt>witness-inclusion-not-exercised</tt> names it, as a warning - the
witness attested the statement hash, and log membership was not
proven. A pair that verifies is silent, like every other passing
check in the algorithm.</t>
        <t>What tier 1 establishes, and what it does not, is worth stating
plainly. It establishes that the service signed for that statement.
Whether the statement is a member of an append-only log is tier 2's
question, answered only where tier 2's inputs were supplied and
verified; whether the log has ever equivocated remains a property of
the service and its own proofs. A verifier that treats a tier-1
receipt alone as proof of log membership is claiming more than the
receipt carries.</t>
      </section>
      <section anchor="verification">
        <name>Verification algorithm</name>
        <t>A verifier <bcp14>MUST</bcp14> perform all of these steps and <bcp14>MUST</bcp14> report every
finding they produce (<tt>MUST-T10-1</tt>, <tt>MUST-T11-2</tt>). They are numbered
for reference, not to require an evaluation order: no step
short-circuits another, and an implementation may evaluate them in any
order that produces the same set of findings.</t>
        <t>The data dependencies are named, because "any order" read naively
would break them. Step 15 decides which witness receipts, and which
statement bodies, survive checking; steps 14 and 16 consume what
survives. Step 7's index of refs is what steps 8 and 9 reconcile.
Step 11 decides which checkpoints verified, and step 14 compares
only those together with what step 15 admitted. An implementation
that ran a consumer against an unchecked producer would not produce
the same set of findings, so those orders are not among the
permitted ones.</t>
        <t>The second is the issuer pin. The step that resolves it decides the
<strong>attested set</strong> - the receipts and checkpoints that verify under a
usable pinned issuer key, or the whole presented set when no usable
key is pinned - and every later step that walks receipts or
checkpoints consumes that set: the chain walk in step 6, the indexing
and reconciliation in steps 7 through 9, the checkpoint comparisons
in steps 11 through 13, and the <tt>MUST-T8-9</tt> comparison. A receipt the
pin rejects is reported once and then excluded, which is what keeps
the settlement it names visible as uncovered (<tt>MUST-T4-10</tt>); an
implementation that let it back into any of those steps would let a
forged receipt cover a settlement, satisfy a checkpoint count, or
invent a terms charge. Two checks deliberately stay on the presented
set whatever any key says, and <bcp14>MUST NOT</bcp14> acquire the dependency:
<tt>MUST-T4-17</tt>, which asks whether a manifest was named at all, and the
per-receipt defect checks that ask what a receipt says about itself.
-04 asserted that nothing else in the list fed another step, which
the dependencies above had already made false; the assertion is
withdrawn and the list above is the inventory, maintained rather
than summarised.</t>
        <t>When a step names an identifier in backticks, that identifier
<bcp14>SHOULD</bcp14> be used for the condition in diagnostic output. The
normative requirement is the behaviour: report the condition,
identified by the <tt>ref</tt> or other handle given in the step. The
identifiers are not an interoperability surface.</t>
        <ol spacing="normal" type="1"><li>
            <t>Establish the subject of the audit. When an extract is supplied,
the settlement records it carries are the ones reconciled; a
settlement list from any other source <bcp14>MUST NOT</bcp14> be substituted for
them (<tt>MUST-T10-12</tt>). If the caller supplies both and they differ,
the verifier <bcp14>MUST</bcp14> report that the caller-supplied list disagrees
with the extract, and <bcp14>MUST</bcp14> still reconcile the extract. The
identifier <tt>extract-settlement-mismatch</tt> <bcp14>SHOULD</bcp14> be used for this
condition in diagnostic output.</t>
          </li>
          <li>
            <t>Verify the extract signature against the out-of-band rail key
(<tt>MUST-T10-8</tt>, <tt>MUST-T10-9</tt>). If no key is pinned, the check that
runs is against the key the extract carries, which establishes
internal consistency and not origin; the verifier <bcp14>MUST</bcp14> still
compute it, <bcp14>MUST NOT</bcp14> read it as a statement about who produced the
extract, and <bcp14>MUST</bcp14> treat the completeness guarantee as conditional
(<tt>MUST-T10-7</tt>). The identifier <tt>unauthenticated-extract</tt> <bcp14>SHOULD</bcp14>
be used for this condition in diagnostic output, whatever the
extract carries. If a key is
pinned and cannot be decoded, the verifier <bcp14>MUST</bcp14> report that the
pinned key is unreadable. The identifier <tt>trust-key-unreadable</tt>
              <bcp14>SHOULD</bcp14> be used for this condition. If a key is pinned and the
signature does not verify against it, or verifies against a
different key, the verifier <bcp14>MUST</bcp14> report that the extract is not
signed by the pinned key. The identifier <tt>extract-key-mismatch</tt>
              <bcp14>SHOULD</bcp14> be used for this condition. The rows of an extract the pin
refused are not reconciled against the receipts, and no settlement
finding is read out of that document (<tt>MUST-T10-20</tt>); the
identifier <tt>settlement-comparison-skipped</tt> <bcp14>SHOULD</bcp14> be used to say
that the comparison did not run. A finding that puts the
extract itself in doubt <bcp14>MUST</bcp14> prevent an unconditional guarantee.</t>
          </li>
          <li>
            <t>Check scope. The verifier <bcp14>MUST</bcp14> report each settlement record
whose <tt>timestampMs</tt> falls outside the declared window, identified
by that record's <tt>ref</tt> (<tt>MUST-T10-10</tt>). When the verifier states
an expected account, rail, or window, it <bcp14>MUST</bcp14> report an extract
that does not cover it (<tt>MUST-T10-11</tt>). The identifier
<tt>extract-scope-mismatch</tt> <bcp14>SHOULD</bcp14> be used for both conditions. If
the verifier stated no period, it <bcp14>MUST</bcp14> treat the guarantee as
conditional (<tt>MUST-T10-15</tt>). The identifier
<tt>unstated-audit-window</tt> <bcp14>SHOULD</bcp14> be used for this condition. If it
stated no account or no rail, it <bcp14>MUST</bcp14> treat the guarantee as
conditional for the same reason (<tt>MUST-T10-18</tt>); the identifier
<tt>unstated-audit-scope</tt> <bcp14>SHOULD</bcp14> be used. Whatever the verdict, the
report <bcp14>MUST</bcp14> name the account, rail and window the extract declared
(<tt>MUST-T10-19</tt>).</t>
          </li>
          <li>
            <t>Resolve each Spend Receipt against the issuer root
(<xref target="issuer-root"/>) in one pass. Decode the COSE_Sign1; a content
type that is not the receipt type, a decoder bound, or a decoded
claim map that does not match the presented claims is a named
refusal, not a signature verdict (<tt>MUST-T4-2</tt>, <tt>MUST-T4-8</tt>). Then
ask one question: does the signature verify under a pinned issuer
key. <tt>kid</tt> routes the check to a candidate key and carries no
authority of its own; the carried key is not consulted for
membership at all. The resolution table in <xref target="issuer-root"/> reads
the answer out per cell. Every cell there is a named condition
plus a membership decision; no cell is a silent removal, and the
word "reject" in earlier revisions meant nothing more than a cell
of that table.
Where a countersignature is present,
<xref target="payee-root"/> governs what it establishes (<tt>MUST-T4-13</tt>,
<tt>MUST-T4-14</tt>). Where a Trade Manifest is presented, <xref target="manifest-root"/>
governs it (<tt>MUST-T4-15</tt>): with no publisher key pinned the verifier
reports <tt>unauthenticated-manifest</tt> and the guarantee is conditional;
with a pin that cannot be read, <tt>trust-key-unreadable</tt>; with a pin
the manifest does not answer to, <tt>manifest-key-mismatch</tt>; and with
a manifest that no presented receipt references,
<tt>manifest-covers-no-receipt</tt> (<tt>MUST-T4-17</tt>). A receipt that names
the manifest but departs from its amount, currency, expiry or,
where the manifest names one, payee is
reported as <tt>manifest-terms-mismatch</tt>; with a usable issuer key
pinned the comparison runs over the attested receipts and the
departure fails the audit, and with no usable issuer key it is a
warning over the presented receipts and does not by itself fail
the audit (<tt>MUST-T8-9</tt>). An audit
presented with no Trade Manifest is not made conditional by this
step.</t>
          </li>
          <li>
            <t>Scope the receipts. Membership follows the ref binding first: a
receipt whose <tt>ref</tt> appears on the extract is reconciled against
this extract even when its own <tt>timestampMs</tt> falls outside the
declared window - the rail has signed that the settlement belongs
to the window, and the receipt follows its settlement. The
<tt>timestampMs</tt> sieve applies only to receipts the extract does not
name: such a receipt outside the window is not a completeness
failure against this extract (<tt>MUST-T10-16</tt>); auditing a longer
period requires extracts that cover it. At the window's edges the
declared allowance applies (<xref target="rail-extract"/>): an unmatched
settled receipt within <tt>clockSkewMs</tt> of <tt>windowEndMs</tt>, and an
unmatched settlement record within <tt>clockSkewMs</tt> of
<tt>windowStartMs</tt>, are reported as <tt>boundary-deferred</tt>, a warning,
rather than as step 8's completeness findings - two honest clocks
can disagree by less than the allowance, and both verifiers of an
honest edge payment would otherwise reach the same false
accusation (<tt>MUST-T10-17</tt>). Where the following window's extract
is presented and verifies, a deferred receipt whose <tt>ref</tt> appears
on it is resolved and not reported, and one whose <tt>ref</tt> does not
appear hardens into the step 8 finding; a deferred settlement
record near the opening edge resolves through this step's ref
binding, since the prior window's receipt that names its <tt>ref</tt> is
reconciled here regardless of timestamp. The following window's
extract closes or hardens closing-edge deferrals only; an
opening-edge record stays deferred until a receipt in the
presented bag names its <tt>ref</tt>, whether or not a following extract
is presented. In a single-window audit
a deferred record keeps the guarantee conditional. Receipts remain
subject to every other check regardless of window.</t>
          </li>
          <li>
            <t>Walk the attested receipts in issuer order. Issuer order is the
order induced by the <tt>prevReceiptHash</tt> chain: the verifier
rebuilds the chain from the links, and the order in which
receipts were presented carries no weight. <tt>timestampMs</tt> is
issuer-asserted and is not an ordering source. The first
<tt>prevReceiptHash</tt> <bcp14>MUST</bcp14> be null. Each later <tt>prevReceiptHash</tt> <bcp14>MUST</bcp14>
equal <tt>receiptHash</tt> of the previous receipt. A miss, and a
receipt the links cannot place, <bcp14>MUST</bcp14> be reported as a break in
the receipt chain. The identifier <tt>receipt-chain-break</tt> <bcp14>SHOULD</bcp14> be
used for this condition.</t>
          </li>
          <li>
            <t>Index the attested settled receipts and extract records by <tt>ref</tt>. A <tt>ref</tt>
that appears more than once on either side <bcp14>MUST</bcp14> be reported as a
repeated reference (<tt>MUST-T10-6</tt>). The identifier <tt>duplicate-ref</tt>
              <bcp14>SHOULD</bcp14> be used for this condition.</t>
          </li>
          <li>
            <t>For each <tt>ref</tt> that appears exactly once on each side, require a
one-to-one match on <tt>ref</tt> AND <tt>amount</tt> AND <tt>currency</tt>
(<tt>MUST-T10-1</tt>), compared as exact octets on the terms of
<tt>MUST-T8-2</tt>; step 9's aggregation is the only place this algorithm
reads an amount as a number. Amount or currency mismatch <bcp14>MUST</bcp14> be reported as
a settlement that does not match its receipt, identified by that
<tt>ref</tt>. The identifier <tt>settlement-mismatch</tt> <bcp14>SHOULD</bcp14> be used for
this condition. A settlement with no receipt <bcp14>MUST</bcp14> be reported as
lacking a receipt, identified by its <tt>ref</tt> (<tt>MUST-T10-2</tt>). The
identifier <tt>settlement-without-receipt</tt> <bcp14>SHOULD</bcp14> be used for this
condition. A settled receipt with no extract row <bcp14>MUST</bcp14> be reported
as a completeness failure (<tt>MUST-T10-3</tt>). The identifier
<tt>receipt-without-settlement</tt> <bcp14>SHOULD</bcp14> be used for this condition.
A settled receipt with a null rail ref <bcp14>MUST</bcp14> be reported as
settled without a rail reference; this check asks what a receipt
says about itself and runs over the presented receipts, attested
or not. The identifier
<tt>settled-without-ref</tt> <bcp14>SHOULD</bcp14> be used for this condition.
Where a settlement record declares a <tt>beneficiary</tt>
(<xref target="rail-extract"/>), it <bcp14>MUST</bcp14> be compared against the matched
receipt's <tt>payee</tt> as exact octets; a difference is
<tt>beneficiary-mismatch</tt> and fails the audit. Where neither the
manifest names a <tt>payee</tt> nor any settlement record declares a
<tt>beneficiary</tt>, the report <bcp14>MUST</bcp14> carry <tt>counterparty-unbound</tt>, a
scope record: ref, amount and currency closed against the payer's
account extract, and the counterparty's identity was not bound.
It is a statement of what the evidence did not cover, not a
doubt about what it did, so it does not move the verdict and does
not by itself make the guarantee conditional.</t>
          </li>
          <li>
            <t>A <tt>ref</tt> already reported as repeating <bcp14>MUST</bcp14> still be reconciled
by amount rather than dropped from the comparison
(<tt>MUST-T10-13</tt>). For each currency under that <tt>ref</tt>, compare the
total settled against the total receipted. A settled total that
exceeds the receipted total <bcp14>MUST</bcp14> be reported as a settlement
lacking a receipt, and the finding <bcp14>MUST</bcp14> state the unaccounted
amount. The identifier <tt>settlement-without-receipt</tt> <bcp14>SHOULD</bcp14> be
used for this condition. A settled total that is less than the
receipted total <bcp14>MUST</bcp14> be reported as a settlement that does not
match its receipt, identified by that <tt>ref</tt>. The identifier
<tt>settlement-mismatch</tt> <bcp14>SHOULD</bcp14> be used for this condition. An
amount on that repeating <tt>ref</tt> that cannot be parsed as an
integer <bcp14>MUST</bcp14> be reported without abandoning the audit; the
identifier <tt>malformed-amount</tt> <bcp14>SHOULD</bcp14> be used for this condition.
A verifier <bcp14>MUST</bcp14> still report findings for the remaining records.</t>
          </li>
          <li>
            <t>Aborted receipts are not matched to extract rows and are not
added to totals.</t>
          </li>
          <li>
            <t>Decode each checkpoint. Reject a failed signature, and reject a
   <tt>kid</tt> that does not match the key obtained for the checkpoint
   issuer, on the same terms as a receipt (<tt>MUST-T4-8</tt>). Require
   <tt>receiptCount</tt>, <tt>chainHeadHash</tt>, and <tt>totals</tt> to match the
   attested receipts in <tt>[startMs, endMs)</tt> as defined above
   (<tt>MUST-T11-2</tt>); a receipt step 4 rejected is not among them,
   or a forged receipt could satisfy a checkpoint count. The identifier <tt>checkpoint-total-mismatch</tt>
              <bcp14>SHOULD</bcp14> be used for a failed signature, a wrong <tt>receiptCount</tt>,
   or totals that disagree, and <tt>checkpoint-head-mismatch</tt> for a
   <tt>chainHeadHash</tt> that is not the last link, in issuer order
   (step 6), of the chain inside <tt>[startMs, endMs)</tt> - "last
   receipt" binds to the chain, not to presentation or to
   <tt>timestampMs</tt>. If the
   signed <tt>totals</tt> is null, the verifier
   cannot perform the totals comparison for that checkpoint. It
   <bcp14>MUST</bcp14> report that the comparison was skipped and <bcp14>MUST</bcp14> treat the
   completeness guarantee as conditional; the absence of a
   comparison is not a passed comparison (<tt>MUST-T11-12</tt>). The
   identifier <tt>checkpoint-totals-redacted</tt> <bcp14>SHOULD</bcp14> be used for this
   condition. <tt>receiptCount</tt> and <tt>chainHeadHash</tt> <bcp14>MUST</bcp14> still be
   checked. A checkpoint that fails verification <bcp14>MUST NOT</bcp14> be
   treated as redacted, whatever it claims about its own totals.</t>
          </li>
          <li>
            <t>Every chained receipt <bcp14>MUST</bcp14> fall in exactly one checkpoint
window. A gap or double count <bcp14>MUST</bcp14> be reported as a window
coverage failure (<tt>MUST-T11-7</tt>, <tt>MUST-T11-8</tt>). The identifier
<tt>window-coverage</tt> <bcp14>SHOULD</bcp14> be used for this condition. The check
runs against the presented checkpoint windows and it is
fail-closed: a receipt that falls under none of them is this
failure - including every receipt when no checkpoint was
presented, and receipts after the last closed checkpoint's
<tt>endMs</tt>. The text names that last state an <strong>open epoch</strong>, and
it is auditable only when the checkpoint that closes it is
issued; the name explains why the finding fired, it does not
soften it. Nothing about an absent checkpoint is silent:
uncovered evidence surfaces as a finding rather than as a gap
in the report.</t>
          </li>
          <li>
            <t>Walk checkpoints in epoch order. <tt>prevCheckpointHash</tt> <bcp14>MUST</bcp14>
equal the SHA-256 of the previous checkpoint COSE bytes, or null
for genesis (<tt>MUST-T11-4</tt>). The identifier
<tt>checkpoint-total-mismatch</tt> <bcp14>SHOULD</bcp14> be used for a broken chain,
which is the fourth condition its table row names.</t>
          </li>
          <li>
            <t>If two successfully verified checkpoints share an epoch number
and have different hashes, the verifier <bcp14>MUST</bcp14> report
equivocation (<tt>MUST-T11-3</tt>). The identifier <tt>equivocation</tt>
              <bcp14>SHOULD</bcp14> be used for this condition. The checkpoints compared
here are those presented <strong>together with</strong> any carried by
verified witness receipts (step 15). Comparing only the
presented chain cannot raise this finding: <tt>MUST-T11-8</tt>, applied
in step 12, requires that chain's epochs to be consecutive, so no
two of its members share an epoch. A copy recorded by a witness
is where the second one is found.</t>
          </li>
          <li>
            <t>If witness receipts were supplied, verify them against the
out-of-band witness key (<xref target="witness-root"/>); receipts that
cannot be checked that way are not evidence in either direction
and the verifier reports that it left them out (<tt>MUST-T11-15</tt>);
the identifier <tt>unauthenticated-witness</tt> <bcp14>SHOULD</bcp14> be used for this
condition.
Discard any whose signature fails (<tt>MUST-T11-10</tt>). A surviving
receipt whose statement body verifies against the issuer root is
a statement that issuer published; one that does not is another
party's, and is not this issuer equivocating (<tt>MUST-T11-16</tt>).
The survivors are the recorded statement hashes used in step 16. Where a receipt also carries
the statement body, discard that body unless its statement hash
equals the one the receipt binds and it verifies as a
checkpoint; the surviving bodies are what step 14 compares.
Discarding a body does not discard its receipt.
This is tier 1 of <xref target="witness"/>. Where the tier-2 pair - the
registered Signed Statement bytes and an inclusion proof - was
also supplied, verify it as <xref target="witness"/> states: apply the proof
to the candidate entry's hash and accept only on an exact match
with a witness-signed receipt (<tt>MUST-T11-18</tt>); a pair that fails,
or a candidate without a proof, is <tt>witness-inclusion-invalid</tt>
and the audit <bcp14>MUST</bcp14> fail. Where witness receipts were supplied
and no tier-2 pair was, report <tt>witness-inclusion-not-exercised</tt>
as a warning (<tt>MUST-T11-19</tt>): the witness attested the statement
hash, and log membership was not proven.</t>
          </li>
          <li>
            <t>Compare the surviving witness records against the presented
chain (<tt>MUST-T11-11</tt>). For each presented checkpoint with no
surviving record, report that it is not anchored; the
identifier <tt>checkpoint-not-anchored</tt> <bcp14>SHOULD</bcp14> be used. This is a
warning: a witness may have been configured after the
checkpoint was issued, and an operator's own gap is not
evidence of concealment. For each surviving record whose
statement is absent from the presented chain, report that a
recorded checkpoint was withheld; the identifier
<tt>checkpoint-withheld</tt> <bcp14>SHOULD</bcp14> be used. This is a finding and the
audit <bcp14>MUST</bcp14> fail. A record that carries no statement body cannot
say whose statement it binds, so it <bcp14>MUST NOT</bcp14> produce this
finding; it is reported as an entry that could not be attributed
and makes the guarantee conditional, because a real withholding
must not be buried by removing the body (<tt>MUST-T11-17</tt>). Such a
record still establishes anchoring in the first half of this
step: proving that a checkpoint was logged needs only its hash. The verifier <bcp14>MUST NOT</bcp14> report a withheld
checkpoint as a window coverage failure (<tt>MUST-T11-11</tt>).</t>
          </li>
          <li>
            <t>If any finding remains that is not a warning (a warning is a
condition that only makes the completeness guarantee
conditional), the audit <bcp14>MUST</bcp14> fail (<tt>MUST-T10-4</tt>).</t>
          </li>
        </ol>
      </section>
      <section anchor="finding-codes">
        <name>Finding codes</name>
        <t>The identifiers below are for diagnostic output. They are not an
interoperability surface. A finding object that can be carried on
the wire is outside the scope of this document and may be defined
later. Two implementations interoperate when they accept the same
inputs and fail or warn on the same conditions, not when they
print the same strings.</t>
        <t>A condition that makes the audit fail is a finding. A condition
that only makes the completeness guarantee conditional is a
warning. Warnings <bcp14>MUST</bcp14> still appear in operator-facing output
(<tt>MUST-T10-14</tt>).</t>
        <table>
          <thead>
            <tr>
              <th align="left">Code</th>
              <th align="left">Effect</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">settlement-without-receipt</td>
              <td align="left">audit fails</td>
              <td align="left">Extract row has no matching settled receipt, or a repeating <tt>ref</tt> settled more than it receipted</td>
            </tr>
            <tr>
              <td align="left">receipt-without-settlement</td>
              <td align="left">audit fails</td>
              <td align="left">Settled receipt ref is not on the extract</td>
            </tr>
            <tr>
              <td align="left">settlement-mismatch</td>
              <td align="left">audit fails</td>
              <td align="left">Same <tt>ref</tt>, different amount or currency, including a repeating <tt>ref</tt> that settled less than it receipted</td>
            </tr>
            <tr>
              <td align="left">duplicate-ref</td>
              <td align="left">audit fails</td>
              <td align="left">Ref appears more than once on one side</td>
            </tr>
            <tr>
              <td align="left">settled-without-ref</td>
              <td align="left">audit fails</td>
              <td align="left">
                <tt>outcome</tt> is settled and <tt>x402PaymentRef</tt> is null</td>
            </tr>
            <tr>
              <td align="left">receipt-chain-break</td>
              <td align="left">audit fails</td>
              <td align="left">Signature or <tt>prevReceiptHash</tt> failed, or the links cannot place a receipt (issuer order, step 6)</td>
            </tr>
            <tr>
              <td align="left">checkpoint-total-mismatch</td>
              <td align="left">audit fails</td>
              <td align="left">Totals, count, signature, or checkpoint chain failed. The signature branch is reached where no issuer pin has already excluded the checkpoint: under a pin a checkpoint that does not verify is <tt>issuer-key-mismatch</tt> and never reaches the totals comparison</td>
            </tr>
            <tr>
              <td align="left">checkpoint-head-mismatch</td>
              <td align="left">audit fails</td>
              <td align="left">
                <tt>chainHeadHash</tt> is not the last link, in issuer order, of the chain inside the window, or the expected head could not be computed at all because the last receipt on the chain refused canonical encoding; the refusal is named and is not a signature verdict</td>
            </tr>
            <tr>
              <td align="left">equivocation</td>
              <td align="left">audit fails</td>
              <td align="left">Two distinct hashes for one epoch</td>
            </tr>
            <tr>
              <td align="left">window-coverage</td>
              <td align="left">audit fails</td>
              <td align="left">Gap, overlap, or non-adjacent / non-consecutive windows</td>
            </tr>
            <tr>
              <td align="left">unauthenticated-extract</td>
              <td align="left">guarantee conditional</td>
              <td align="left">No verifier-supplied rail key, whatever the extract carries: a signature that verifies establishes internal consistency and not that the named rail produced the extract, and one that fails or is refused is not a key verdict either. The same code is reported when a rail key is pinned and no extract was presented at all, because there is nothing to check the pin against. A presented extract that does not verify under a pinned key is <tt>extract-key-mismatch</tt> instead</td>
            </tr>
            <tr>
              <td align="left">extract-key-mismatch</td>
              <td align="left">audit fails</td>
              <td align="left">Extract is signed by a key other than the pinned rail key, or does not verify against it</td>
            </tr>
            <tr>
              <td align="left">settlement-comparison-skipped</td>
              <td align="left">guarantee conditional</td>
              <td align="left">The pinned rail key refused the presented extract, so its rows were not reconciled against the receipts (<tt>MUST-T10-20</tt>). The code says what did not run; the refusal itself is reported as <tt>extract-key-mismatch</tt></td>
            </tr>
            <tr>
              <td align="left">trust-key-unreadable</td>
              <td align="left">audit fails</td>
              <td align="left">A pinned key - rail, issuer, or manifest publisher - could not be decoded; the verifier's configuration is at fault, and nothing falls back to the keys the objects carry</td>
            </tr>
            <tr>
              <td align="left">issuer-key-mismatch</td>
              <td align="left">audit fails</td>
              <td align="left">An object is signed by a key other than the pinned issuer key, or does not verify under it at all, so it is not coverage for anything it names. A checkpoint reaches this code by either route: unlike a receipt, which is named in the chain walk as <tt>receipt-chain-break</tt> when it claims the pin and fails, a checkpoint that claims the pin and fails is reported here and leaves its window uncovered</td>
            </tr>
            <tr>
              <td align="left">countersign-key-mismatch</td>
              <td align="left">conditional</td>
              <td align="left">A countersignature verifies under a key other than the one pinned for that payee; unattributable, discarded as approval evidence, and the receipt it rode beside is unaffected (<xref target="countersign"/>)</td>
            </tr>
            <tr>
              <td align="left">countersign-missing</td>
              <td align="left">conditional</td>
              <td align="left">A payee key is pinned and a settled receipt for that payee carries no attributable countersignature; a discarded garbage or foreign-key object leaves this open</td>
            </tr>
            <tr>
              <td align="left">unauthenticated-issuer</td>
              <td align="left">conditional</td>
              <td align="left">No verifier-supplied issuer key and at least one receipt or checkpoint presented; their signatures are checked against the keys the objects carry (<xref target="presentation"/>), which establishes that each object is internally consistent and not that the named issuer produced it</td>
            </tr>
            <tr>
              <td align="left">unauthenticated-witness</td>
              <td align="left">conditional</td>
              <td align="left">No verifier-supplied witness key; inclusion receipts were left out of the comparison</td>
            </tr>
            <tr>
              <td align="left">unauthenticated-countersigner</td>
              <td align="left">conditional</td>
              <td align="left">No verifier-supplied payee key; a countersignature is present but proves no approval</td>
            </tr>
            <tr>
              <td align="left">unauthenticated-manifest</td>
              <td align="left">conditional</td>
              <td align="left">No verifier-supplied manifest key and a Trade Manifest was presented; its signature is not checked at all, because the check that exists under a pin (<tt>manifest-key-mismatch</tt>) has no key to run against and the key the manifest carries is not a fallback for one. An audit presented with no Trade Manifest is not this condition</td>
            </tr>
            <tr>
              <td align="left">manifest-key-mismatch</td>
              <td align="left">audit fails</td>
              <td align="left">A presented Trade Manifest is signed by a key other than the pinned publisher key, or does not verify against it</td>
            </tr>
            <tr>
              <td align="left">manifest-covers-no-receipt</td>
              <td align="left">conditional</td>
              <td align="left">A presented Trade Manifest is referenced by no presented receipt, including aborted ones and those outside the extract window; the manifest states terms no presented receipt names. It is reported on what was presented, not on whether the manifest was attributed, so it appears beside <tt>manifest-key-mismatch</tt> as well</td>
            </tr>
            <tr>
              <td align="left">manifest-terms-mismatch</td>
              <td align="left">audit fails under a usable issuer pin; warning without one</td>
              <td align="left">A receipt names this Trade Manifest but departs from it in amount, currency, settlement time, or, where the manifest states one, payee. A manifest refused by a stated publisher pin is not compared at all; a gate applying <tt>MUST-T8-2</tt> and <tt>MUST-T3-3</tt> would have refused the payment. The two severities are the two branches of <tt>MUST-T8-9</tt></td>
            </tr>
            <tr>
              <td align="left">witness-entry-unattributable</td>
              <td align="left">conditional</td>
              <td align="left">The witness holds a statement this chain does not present, carrying no body to say whose it is</td>
            </tr>
            <tr>
              <td align="left">extract-scope-mismatch</td>
              <td align="left">audit fails</td>
              <td align="left">A record falls outside the declared window, or the extract does not cover the expected account, rail, or window</td>
            </tr>
            <tr>
              <td align="left">extract-settlement-mismatch</td>
              <td align="left">audit fails</td>
              <td align="left">A caller-supplied settlement list disagrees with the extract on <tt>ref</tt>, amount, currency or timestamp, which are the fields compared; the extract is authoritative. A beneficiary that differs is not part of this comparison and is reached by <tt>beneficiary-mismatch</tt>, against the receipt payee</td>
            </tr>
            <tr>
              <td align="left">malformed-amount</td>
              <td align="left">audit fails</td>
              <td align="left">An amount on a <tt>ref</tt> already reported as repeating that could not be parsed as an integer</td>
            </tr>
            <tr>
              <td align="left">unstated-audit-window</td>
              <td align="left">guarantee conditional</td>
              <td align="left">A usable rail pin states no period, so the extract defined its own. Where no rail key is pinned at all the period is equally unstated, and <tt>unauthenticated-extract</tt> is the condition reported</td>
            </tr>
            <tr>
              <td align="left">unstated-audit-scope</td>
              <td align="left">guarantee conditional</td>
              <td align="left">A usable rail pin states no account or no rail, so the extract defined the settlement path it reported on. The same "no pin at all" case is <tt>unauthenticated-extract</tt></td>
            </tr>
            <tr>
              <td align="left">countersign-bad</td>
              <td align="left">conditional</td>
              <td align="left">Present payee countersignature failed verify (signature, content type, or payload binding); unattributable, discarded as approval evidence. One verifiable under another key is <tt>countersign-key-mismatch</tt></td>
            </tr>
            <tr>
              <td align="left">checkpoint-withheld</td>
              <td align="left">audit fails</td>
              <td align="left">A verified witness receipt binds a checkpoint the presented chain does not contain</td>
            </tr>
            <tr>
              <td align="left">checkpoint-not-anchored</td>
              <td align="left">guarantee conditional</td>
              <td align="left">A witness was supplied and holds no verified receipt for this checkpoint</td>
            </tr>
            <tr>
              <td align="left">checkpoint-totals-redacted</td>
              <td align="left">guarantee conditional</td>
              <td align="left">The checkpoint was signed with <tt>totals</tt> null, so the totals comparison could not be made</td>
            </tr>
            <tr>
              <td align="left">carried-key-mismatch</td>
              <td align="left">conditional</td>
              <td align="left">An object verifies under a pinned issuer key but the key carried beside its signature is a different one; the unsigned surface was rewritten, the object stays attested (<xref target="issuer-root"/>)</td>
            </tr>
            <tr>
              <td align="left">boundary-deferred</td>
              <td align="left">conditional</td>
              <td align="left">An unmatched item sits within the declared <tt>clockSkewMs</tt> of the window edge; deferred to the adjacent window rather than reported as a completeness failure (step 5)</td>
            </tr>
            <tr>
              <td align="left">beneficiary-mismatch</td>
              <td align="left">audit fails</td>
              <td align="left">A settlement record declares a <tt>beneficiary</tt> and the matched receipt's <tt>payee</tt> differs</td>
            </tr>
            <tr>
              <td align="left">counterparty-unbound</td>
              <td align="left">scope record; verdict and guarantee unchanged</td>
              <td align="left">Neither the manifest names a <tt>payee</tt> nor any settlement record declares a <tt>beneficiary</tt>: ref, amount and currency closed against the payer's account extract, and the counterparty's identity was not bound</td>
            </tr>
            <tr>
              <td align="left">delivery-mismatch</td>
              <td align="left">audit fails</td>
              <td align="left">An attributable countersignature carries <tt>deliveredHash</tt> and it differs from the acceptance-criteria hash of a Trade Manifest the audit did not refuse; both ends are signed (<tt>MAY-T8-11</tt>). Where a stated publisher pin refuses the manifest, its acceptance hash founds nothing and this comparison is not made (<tt>MUST-T8-9</tt>)</td>
            </tr>
            <tr>
              <td align="left">witness-inclusion-invalid</td>
              <td align="left">audit fails</td>
              <td align="left">The tier-2 candidate bytes and inclusion proof do not reproduce a witness-signed tree head, or a candidate was supplied without a proof (<tt>MUST-T11-18</tt>)</td>
            </tr>
            <tr>
              <td align="left">witness-inclusion-not-exercised</td>
              <td align="left">conditional</td>
              <td align="left">Witness receipts were supplied and no tier-2 pair was, so log membership was not proven (<tt>MUST-T11-19</tt>). The code says nothing about whether any of those receipts verified: it is reported on presentation, and an unpinned or unverifiable inclusion receipt reaches it alongside <tt>unauthenticated-witness</tt></td>
            </tr>
            <tr>
              <td align="left">malformed-policy-hash (and its family: malformed-request-hash, malformed-acceptance-criteria-hash, malformed-manifest-hash, malformed-receipt-hash, malformed-prev-receipt-hash, malformed-chain-head-hash, malformed-prev-checkpoint-hash, malformed-ap-two-mandate-hash)</td>
              <td align="left">audit fails</td>
              <td align="left">A hash-shaped claim does not match the 64-lowercase-hex grammar of <xref target="receipt-labels"/>; the claim is named in the code</td>
            </tr>
          </tbody>
        </table>
        <t>A finding that puts the extract itself in doubt (<tt>extract-key-mismatch</tt>,
<tt>trust-key-unreadable</tt>, <tt>extract-scope-mismatch</tt>, or
<tt>extract-settlement-mismatch</tt>) <bcp14>MUST</bcp14> also prevent an unconditional
guarantee, not merely fail the audit. A finding that puts a presented
Trade Manifest in doubt (<tt>manifest-key-mismatch</tt>, or
<tt>trust-key-unreadable</tt> on the manifest pin) does the same.</t>
        <t>An unconditional guarantee therefore requires all of: an extract, a
pinned rail key the extract's signature verifies against, a stated
period the extract covers, an issuer root for whatever receipts and
checkpoints are presented, a manifest root for whatever Trade Manifest
is presented, no finding that puts the extract in
doubt, and no warning that withholds part of the comparison. A
checkpoint whose totals were signed as withheld
(<tt>checkpoint-totals-redacted</tt>) removes a comparison the guarantee
rests on, and a presented checkpoint a supplied witness does not
hold (<tt>checkpoint-not-anchored</tt>) leaves part of the chain
unwitnessed. Either one makes the result conditional. Anything less
than the whole list is conditional, and the report <bcp14>MUST</bcp14> say so.</t>
        <t>An implementation <bcp14>MUST</bcp14> make the guarantee and any warnings visible in
whatever human-readable audit report it produces under this document,
not only in a returned structure (<tt>MUST-T10-14</tt>). A report that says the books balance while withholding
that the balance is conditional invites the reader to take a
conditional result for an unconditional one.</t>
        <t>Checkpoints <bcp14>SHOULD</bcp14> be registered with a Transparency Service
(<tt>SHOULD-T11-5</tt>). A test deployment <bcp14>MAY</bcp14> use an in-process
append-only log as the witness (<tt>MAY-T11-6</tt>). Cedulon still <bcp14>MUST
NOT</bcp14> take custody.</t>
        <t>The guarantee named above is about completeness against the extract,
which is the subject of T10. It is not a claim that no checkpoint was
suppressed. Suppression is the subject of T11, and a report <bcp14>MUST NOT</bcp14>
be read as settling it when no witness was consulted: with no
witness receipts, the presented chain is self-consistent by
construction and says nothing about what it left out (<tt>MUST-T11-9</tt>).
A verifier that consulted a witness and found every presented
checkpoint recorded, with nothing recorded that was not presented,
has discharged T11 for the period those receipts cover, and for no
longer.</t>
      </section>
    </section>
    <section anchor="lifecycle">
      <name>Lifecycle</name>
      <ol spacing="normal" type="1"><li>
          <t><strong>Manifest.</strong> Parties sign a Trade Manifest (optional for metered
API spend; required for goods with acceptance criteria).</t>
        </li>
        <li>
          <t><strong>Policy check.</strong> The adapter submits a structured request to the
PDP. Default is deny. An allow is a Decision Token
(<tt>MUST-T6-4</tt>).</t>
        </li>
        <li>
          <t><strong>Payment.</strong> On allow, the adapter performs the x402 (or other
rail) exchange using exactly the decision fields (<tt>MUST-T6-1</tt>).
The Decision Token is consumed (<tt>MUST-T6-2</tt>). A reused nonce is
denied (<tt>MUST-T3-1</tt>, <tt>MUST-T3-2</tt>). A tampered or expired token
is denied (<tt>MUST-T6-5</tt>).</t>
        </li>
        <li>
          <t><strong>Receipt.</strong> The Receipt Issuer signs a Spend Receipt. Rail
credentials <bcp14>MUST NOT</bcp14> appear in the receipt, logs, or tool
results (<tt>MUST-T5-2</tt>, <tt>MUST-T7-1</tt>).</t>
        </li>
        <li>
          <t><strong>Dispute Evidence Bundle.</strong> If delivery bytes do not match the
acceptance-criteria hash, an implementation <bcp14>MUST</bcp14> be able to emit
a bundle of manifest + receipt + delivery hash (<tt>MUST-T8-3</tt>).
The bundle <bcp14>MUST NOT</bcp14> be described as an arbitral award or escrow
release (<tt>MUST-T8-4</tt>).</t>
        </li>
      </ol>
    </section>
    <section anchor="policy-semantics">
      <name>Policy Semantics</name>
      <t>Policy is default deny. The engine understands three families of
rule:</t>
      <ul spacing="normal">
        <li>
          <t><strong>Limit:</strong> maximum amount per payment; maximum cumulative amount
per window (<tt>MUST-T2-2</tt>).</t>
        </li>
        <li>
          <t><strong>Velocity:</strong> maximum number of allowed payments per window
(<tt>MUST-T2-1</tt>).</t>
        </li>
        <li>
          <t><strong>Scope:</strong> optional allow-lists for payee, currency, and tool
name.</t>
        </li>
      </ul>
      <t>Fail-closed: missing engine, crash, or exception yields deny
(<tt>MUST-T2-3</tt>). Implementations <bcp14>SHOULD</bcp14> emit stable reason codes
(<tt>SHOULD-T2-5</tt>). Decision tokens <bcp14>SHOULD</bcp14> expire after a short TTL
(<tt>SHOULD-T6-3</tt>).</t>
      <t>The agent-facing spend interface <bcp14>MUST</bcp14> invoke the PDP and <bcp14>MUST NOT</bcp14>
expose a parallel ungated rail call to the model (<tt>MUST-T5-1</tt>).</t>
      <t>One boundary is stated here rather than left to be inferred. In the
retrospective audit, "allowed by policy" is the Receipt Issuer's
signed assertion: the spend passed the issuer's gate under the
<tt>policyHash</tt> the receipt names. The Decision Token is consumed at the
gate, and the verification algorithm never sees it; the audit does
not independently re-verify the PDP's allow. The completeness side of
the audit has an independent leg - the rail extract - and the policy
side deliberately does not: that is a trust boundary of this profile,
not an oversight. A deployment that wants the policy answer to be
independently verifiable needs a receipt-to-token binding, which this
revision does not define; it is named as a possible extension
(<xref target="evolution"/>), and adding it would change what a receipt carries,
so it is not smuggled in here.</t>
    </section>
    <section anchor="anchoring">
      <name>SCITT Anchoring</name>
      <t>A Receipt Issuer or relying party <bcp14>MAY</bcp14> construct a SCITT Signed
Statement whose payload is either the Spend Receipt COSE object or a
privacy profile (<xref target="privacy"/>) and register it with a Transparency
Service <xref target="RFC9943"/>. The service returns a COSE receipt
<xref target="RFC9942"/>. Embedding that receipt yields a Transparent Statement.
Cedulon does not define a new transparency algorithm.</t>
      <t>An epoch checkpoint <bcp14>MUST</bcp14> be registrable on the same terms
(<tt>MUST-T11-14</tt>). Its Signed Statement carries the checkpoint
COSE_Sign1 object as the payload and <tt>application/cedulon-checkpoint+cbor</tt>
as the content type, which is among the media types <xref target="iana"/> asks to
have registered and which, until then, is a placeholder like the rest.
Nothing else about registration differs from a receipt.</t>
      <t>This is a short section for a requirement -01 was missing, and the
omission mattered more than its length suggests. -01 asked for
checkpoints to be registered (<tt>SHOULD-T11-5</tt>) while profiling only
the receipt here, so the object carrying the suppression guarantee
had no stated form to be registered in. Two implementations could
follow -01 to the letter and register incomparable things.</t>
    </section>
    <section anchor="privacy">
      <name>Privacy Considerations</name>
      <t>A public transparency encoding <bcp14>MUST</bcp14> support omitting or hashing
payer and payee identifiers and <bcp14>MUST</bcp14> support amount redaction or
bucket encoding (<tt>MUST-T9-1</tt>). Implementations <bcp14>MUST NOT</bcp14> write
government-ID numbers, payment-instrument PAN, or street address
into a public statement (<tt>MUST-T9-2</tt>). Default public anchors
<bcp14>SHOULD</bcp14> publish <tt>policyHash</tt>, <tt>manifestHash</tt>, <tt>receiptHash</tt>, and
<tt>timestampMs</tt> rather than full claims (<tt>SHOULD-T9-3</tt>). A private
auditor <bcp14>MAY</bcp14> receive an unredacted receipt out of band
(<tt>MAY-T9-4</tt>).</t>
      <t>The paragraph above counts receipt fields. A checkpoint publishes
something a receipt does not: a per-currency total for a whole
window, which discloses trading volume even when every individual
receipt is redacted (<tt>MUST-T9-5</tt>). -01 gave no rule for it, so an
implementation could publish that total, or withhold it in a way no
verifier could recognise, and neither reading contradicted the text.</t>
      <t>The rule is the one stated in <xref target="reconciliation"/>: <tt>totals</tt> <bcp14>MAY</bcp14> be
withheld by signing it as null (<tt>MUST-T11-12</tt>), and only that form
counts as a redaction (<tt>MUST-T11-13</tt>). The structural claims are not
redactable, because a verifier that cannot read the window or the
chain head cannot check anything at all, and a checkpoint that hid
them would be indistinguishable from a broken one.</t>
      <t>Withholding is honest and it is also a cost: a verifier that cannot
recompute the totals says so, and the completeness guarantee for that
window is conditional. A deployment that wants an unconditional result
publishes the totals; a deployment that wants the volume private
accepts a conditional one. What a deployment <bcp14>MUST NOT</bcp14> do is obtain
the unconditional result while withholding the evidence for it.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>This section is authoritative for the protocol requirements in this
document. The companion repository file <tt>THREAT_MODEL.md</tt> is
informative and <bcp14>MUST NOT</bcp14> be read as overriding this section.</t>
      <t>Requirement identifiers take the form KEYWORD-Tn-k, where KEYWORD
is <bcp14>MUST</bcp14>, <bcp14>SHOULD</bcp14>, or <bcp14>MAY</bcp14>, n is the threat number in this section,
and k is a sequence number within that threat. <bcp14>MUST</bcp14>-T8-custody is
the custody prohibition under T8. The tables below define the
requirement text those citations refer to.</t>
      <section anchor="t1-prompt-injection-leads-to-unauthorized-spend">
        <name>T1: Prompt injection leads to unauthorized spend</name>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T1-1</td>
              <td align="left">The PDP <bcp14>MUST</bcp14> decide from structured request fields and stored policy, not from model-generated prose.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T1-2</td>
              <td align="left">A spend that is not bound to a verified Trade Manifest <bcp14>MUST</bcp14> be marked <tt>noManifest</tt> on the Spend Receipt and <bcp14>MUST</bcp14> still be subject to limit, velocity, and scope policy.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T1-3</td>
              <td align="left">Hosts <bcp14>SHOULD</bcp14> require a human confirmation channel for first-use payees.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MAY</bcp14>-T1-4</td>
              <td align="left">An implementation <bcp14>MAY</bcp14> refuse all <tt>noManifest</tt> spend.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="t2-runaway-agent-loop-spend">
        <name>T2: Runaway agent (loop spend)</name>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T2-1</td>
              <td align="left">Policy <bcp14>MUST</bcp14> express a maximum payment count per configured time window (velocity).</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T2-2</td>
              <td align="left">Policy <bcp14>MUST</bcp14> express a maximum amount per payment and a maximum cumulative amount per window.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T2-3</td>
              <td align="left">If the PDP is unreachable, uninitialized, or throws during evaluation, the spend <bcp14>MUST</bcp14> be denied (fail-closed, default deny).</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T2-4</td>
              <td align="left">A denied attempt <bcp14>MUST NOT</bcp14> increment the allowed-spend counters as if it had succeeded.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T2-5</td>
              <td align="left">Implementations <bcp14>SHOULD</bcp14> emit a stable reason code for velocity and limit denials.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="t3-replay-of-payment-authority">
        <name>T3: Replay of payment authority</name>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T3-1</td>
              <td align="left">Every spend attempt that the PDP allows <bcp14>MUST</bcp14> include a nonce that the implementation has not accepted before.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T3-2</td>
              <td align="left">A second attempt that reuses a nonce <bcp14>MUST</bcp14> be denied.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T3-3</td>
              <td align="left">A Trade Manifest <bcp14>MUST</bcp14> carry an expiry; a spend against an expired manifest <bcp14>MUST</bcp14> be denied. The manifest is expired when the settlement time is strictly greater than <tt>expiresAtMs</tt>; a settlement at exactly <tt>expiresAtMs</tt> is within the manifest. -03 said "expired" without fixing the boundary, which two implementations can read two ways.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T3-4</td>
              <td align="left">A PDP allow decision <bcp14>MUST</bcp14> be bound to the SHA-256 of the canonical encoding of the request fields it evaluated, as stated in <xref target="hash-inputs"/>, and <bcp14>MUST</bcp14> be single-use.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T3-5</td>
              <td align="left">Nonce stores <bcp14>SHOULD</bcp14> persist across process restart when the deployment is not a test fixture.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="t4-receipt-forgery-or-repudiation">
        <name>T4: Receipt forgery or repudiation</name>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-1</td>
              <td align="left">A Spend Receipt <bcp14>MUST</bcp14> be signed by the Receipt Issuer over the deterministic CBOR encoding of its claims, as profiled in <xref target="cose-profile"/>. The phrase "canonical encoding" is reserved for JSON documents (<xref target="canonical-json"/>); -03 used it for both and left a reader to work out which was meant.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-2</td>
              <td align="left">Verifiers <bcp14>MUST</bcp14> reject a receipt whose signature does not validate or whose canonical bytes do not match the signed payload.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-3</td>
              <td align="left">A Spend Receipt <bcp14>MUST</bcp14> include <tt>payer</tt>, <tt>payee</tt>, <tt>amount</tt>, <tt>currency</tt>, <tt>policyHash</tt>, <tt>timestampMs</tt>, and <tt>nonce</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-4</td>
              <td align="left">A Spend Receipt <bcp14>MUST</bcp14> include <tt>manifestHash</tt> or an explicit <tt>noManifest</tt> flag, never an ambiguous empty hash. Empty optional values are CBOR null; labels are never absent.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T4-5</td>
              <td align="left">Receipts <bcp14>SHOULD</bcp14> form a hash chain (<tt>prevReceiptHash</tt>) so omission is detectable within one issuer stream.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MAY</bcp14>-T4-6</td>
              <td align="left">Parties <bcp14>MAY</bcp14> register the signed receipt as a SCITT statement to obtain a COSE receipt.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-7</td>
              <td align="left">A Spend Receipt <bcp14>MUST</bcp14> include <tt>outcome</tt> (<tt>settled</tt> or <tt>aborted</tt>). A settled receipt <bcp14>MUST</bcp14> have a non-null rail ref. Aborted receipts <bcp14>MUST NOT</bcp14> enter checkpoint totals.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-8</td>
              <td align="left">COSE_Sign1 protected headers <bcp14>MUST</bcp14> use alg -19 (Ed25519), a mandatory <tt>kid</tt>, and a payload-specific content type. Verifiers <bcp14>MUST</bcp14> reject a <tt>kid</tt> that does not match the configured issuer key.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-9</td>
              <td align="left">A verifier <bcp14>MUST</bcp14> obtain the issuer public key out of band and <bcp14>MUST</bcp14> verify Spend Receipt and epoch checkpoint signatures against that key. A key carried by the object <bcp14>MUST NOT</bcp14> be treated as the signer's identity and <bcp14>MUST NOT</bcp14> be used as a fallback where no key was obtained (<tt>MUST-T4-11</tt>); a signature checked against it where no issuer key is held establishes internal consistency only and attests nothing. A verifier without such a key that is presented with any Spend Receipt or epoch checkpoint <bcp14>MUST</bcp14> report the completeness guarantee as conditional. An audit presented with neither rests on the extract alone and is not made conditional by this requirement.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-10</td>
              <td align="left">A receipt that does not verify against the pinned issuer key <bcp14>MUST NOT</bcp14> count as coverage for the settlement it names, and that settlement <bcp14>MUST</bcp14> still be reported as uncovered. Reporting the mismatch is not sufficient on its own.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-11</td>
              <td align="left">Pinned issuer keys <bcp14>MUST</bcp14> be compared by SubjectPublicKeyInfo DER encoding. A pinned key that cannot be decoded <bcp14>MUST</bcp14> be reported as a verifier configuration fault rather than as a mismatch, and where no pinned key decodes, the verifier <bcp14>MUST NOT</bcp14> fall back to the keys the objects carry.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-12</td>
              <td align="left">A verifier <bcp14>MUST</bcp14> accept an issuer, publisher, witness, or rail root comprising more than one key, so that a key rotation inside the audited window does not require it to abandon pinning.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-13</td>
              <td align="left">A payee countersignature <bcp14>MUST NOT</bcp14> be treated as evidence of payee approval unless it verifies against a payee key the verifier obtained out of band.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-14</td>
              <td align="left">Where a verifier has pinned a key for a payee, a settled receipt naming that payee and carrying no attributable countersignature <bcp14>MUST</bcp14> be reported, so that deleting the evidence - or substituting an unattributable object for it - does not delete the question.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-15</td>
              <td align="left">A verifier that is presented with a Trade Manifest <bcp14>MUST</bcp14> obtain the publisher public key out of band and <bcp14>MUST</bcp14> verify the manifest signature against that key, not against a key the manifest carries. A pin that cannot be read <bcp14>MUST</bcp14> be reported as <tt>trust-key-unreadable</tt>; a readable pin the manifest does not answer to <bcp14>MUST</bcp14> be reported as <tt>manifest-key-mismatch</tt> and <bcp14>MUST</bcp14> fail the audit. A verifier without such a key that is presented with a Trade Manifest <bcp14>MUST</bcp14> report the completeness guarantee as conditional. An audit presented with no Trade Manifest is not made conditional by this requirement.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-16</td>
              <td align="left">A policy decision point presented with a Trade Manifest it cannot verify against a key supplied out of band <bcp14>MUST</bcp14> refuse the payment. Settling and reporting the doubt afterwards is not available to it: the receipt carries the manifest hash as terms the named party agreed to.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-17</td>
              <td align="left">A verifier presented with a Trade Manifest <bcp14>MUST</bcp14> compare the manifest hash against the <tt>manifestHash</tt> of the receipts presented to the audit, including aborted ones, before any extract window is applied and before any issuer key is applied, and <bcp14>MUST</bcp14> report a presented manifest that no presented receipt references. Verifying who published the terms does not establish that any receipt names them, and whether a hash appears is a question a verifier can answer from a document nobody vouches for. An audit presented with no Trade Manifest is not made conditional by this requirement.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-18</td>
              <td align="left">A decoder <bcp14>MUST</bcp14> refuse a CBOR map that carries a duplicate encoded key. The encoding rules forbid producing one; accepting one accepts a document no conforming encoder can produce, and leaves two decoders free to disagree about which value was signed.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-19</td>
              <td align="left">A decoder <bcp14>MUST</bcp14> impose a bound on encoded size, nesting depth, and the number of elements it will decode from an audit input, and <bcp14>MUST</bcp14> refuse an input that exceeds a bound with a named refusal rather than by exhausting memory or the stack. It <bcp14>SHOULD</bcp14> document the bounds it applies. This document fixes no numbers: the bound is deployment policy, the named refusal is not.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-20</td>
              <td align="left">A verifier that receives a JSON document as text <bcp14>MUST</bcp14> refuse a text in which any object repeats a member name, by name (<tt>json-duplicate-key</tt>), before parsing it. <xref target="RFC8785"/> takes I-JSON as its input, and a parser that keeps either value has already discarded the evidence of the other, so two verifiers could canonicalize different documents from one text. A verifier handed an object rather than text cannot apply this rule and <bcp14>MUST NOT</bcp14> report that it did.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-21</td>
              <td align="left">A decoder <bcp14>MUST</bcp14> refuse a COSE_Sign1 message whose unprotected header is not an empty map, by name (<tt>cose-sign1-unprotected</tt>), rather than verifying the signature and ignoring the header. The digests of <xref target="hash-inputs"/> cover the unprotected header and the signature does not; ignoring it lets an honestly signed object carry a digest its signer never produced.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="t5-policy-bypass-via-direct-rail-access">
        <name>T5: Policy bypass via direct rail access</name>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T5-1</td>
              <td align="left">The agent-facing spend interface <bcp14>MUST</bcp14> invoke the PDP and <bcp14>MUST NOT</bcp14> expose a parallel ungated rail call to the model.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T5-2</td>
              <td align="left">Rail credentials, wallet handles, and facilitator tokens <bcp14>MUST NOT</bcp14> be placed in tool results or prompts.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T5-3</td>
              <td align="left">Hosts <bcp14>SHOULD</bcp14> run the PDP and signing keys in a process the model runtime cannot write.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MAY</bcp14>-T5-4</td>
              <td align="left">A deployment <bcp14>MAY</bcp14> use OS or hardware isolation between the model and the PDP.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="t6-toctou-between-policy-check-and-payment">
        <name>T6: TOCTOU between policy check and payment</name>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T6-1</td>
              <td align="left">Payment settlement <bcp14>MUST</bcp14> use the same six <tt>requestHash</tt> fields the PDP evaluated: amount, currency, payee, tool, nonce, and <tt>manifestHash</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T6-2</td>
              <td align="left">An allow decision <bcp14>MUST</bcp14> be consumed on the first settlement attempt, success or fail-closed abort, and <bcp14>MUST NOT</bcp14> authorize a later different request.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T6-3</td>
              <td align="left">Implementations <bcp14>SHOULD</bcp14> treat a decision older than a short TTL as expired.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T6-4</td>
              <td align="left">An allow Decision Token <bcp14>MUST</bcp14> be COSE_Sign1 with CWT private-use labels -70301..-70305 (<tt>requestHash</tt>, <tt>policyHash</tt>, <tt>expiryMs</tt>, <tt>nonce</tt>, <tt>singleUseId</tt>) and content type <tt>application/cedulon-decision+cbor</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T6-5</td>
              <td align="left">A party that accepts a Decision Token <bcp14>MUST</bcp14> reject a failed signature, a <tt>kid</tt> or content-type mismatch, a claim-map mismatch, or an expired <tt>expiryMs</tt>. The token is expired when the evaluation time is strictly greater than <tt>expiryMs</tt>; at exactly <tt>expiryMs</tt> it is not.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T6-6</td>
              <td align="left">A consumer of a Decision Token <bcp14>MUST</bcp14> verify it against its own issuing key and <bcp14>MUST NOT</bcp14> accept a token it cannot check that way. The consumer issued the token, so asking the token which key to check it against is a question that answers itself.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="t7-signing-key-leakage">
        <name>T7: Signing-key leakage</name>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T7-1</td>
              <td align="left">Secret key material <bcp14>MUST NOT</bcp14> appear in receipts, checkpoints, manifests, decision tokens, logs, or example output.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T7-2</td>
              <td align="left">Example and test keys <bcp14>MUST</bcp14> be generated at runtime or stored as clearly fake fixtures, never as production secrets.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T7-3</td>
              <td align="left">Production deployments <bcp14>SHOULD</bcp14> use an HSM or OS key store and <bcp14>SHOULD</bcp14> rotate keys.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MAY</bcp14>-T7-4</td>
              <td align="left">Implementations <bcp14>MAY</bcp14> encrypt keys at rest.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T7-5</td>
              <td align="left">An implementation that stores a signing key in the clear <bcp14>MUST</bcp14> report the protection it actually obtained, measured from the stored object rather than derived from the platform. A mount that ignores filesystem permissions accepts the call and protects nothing.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T7-6</td>
              <td align="left">A writable directory anywhere on the path to a stored signing key makes the file permission moot, and a symbolic link on that path hands the destination to whoever placed it. An implementation <bcp14>MUST</bcp14> refuse both rather than report the key as protected.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="t8-counterparty-price-gouging-or-defective-delivery">
        <name>T8: Counterparty price gouging or defective delivery</name>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T8-1</td>
              <td align="left">A Trade Manifest <bcp14>MUST</bcp14> bind goods or service description, price, currency, acceptance-criteria hash, cancel condition, and expiry.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T8-2</td>
              <td align="left">A spend bound to a manifest <bcp14>MUST</bcp14> be denied if the requested amount or currency differs from the manifest. Amount and currency are compared as the exact octets of their text strings: no case folding, no Unicode normalisation, no numeric reinterpretation. The amount syntax already forbids the leading zero that would make two spellings of one number, and a verifier that folds case to accept a currency accepts a token the issuer did not write.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T8-3</td>
              <td align="left">If delivery bytes do not hash to the acceptance-criteria hash, the implementation <bcp14>MUST</bcp14> be able to produce a Dispute Evidence Bundle containing the manifest, the spend receipt, and the delivery hash.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T8-4</td>
              <td align="left">The Dispute Evidence Bundle <bcp14>MUST NOT</bcp14> be described as an arbitral award or escrow release.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T8-7</td>
              <td align="left">
                <tt>manifestHash</tt> <bcp14>MUST</bcp14> be the SHA-256 of the signed Trade Manifest COSE bytes and <bcp14>MUST NOT</bcp14> include the issuer public key encoding.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T8-5</td>
              <td align="left">Manifests <bcp14>SHOULD</bcp14> reference an AP2 mandate hash when one exists.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MAY</bcp14>-T8-6</td>
              <td align="left">Parties <bcp14>MAY</bcp14> add an optional escrow actor as a third-party role interface; this project <bcp14>MUST NOT</bcp14> implement custody.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T8-custody</td>
              <td align="left">Implementations of this specification <bcp14>MUST NOT</bcp14> take custody of funds or operate escrow.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T8-8</td>
              <td align="left">If a payee countersignature is present, a verifier <bcp14>MUST</bcp14> reject it when the signature fails, when <tt>kid</tt> or content type does not match the configured payee key, or when the payload is not the issuer COSE_Sign1 bytes.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T8-9</td>
              <td align="left">A verifier presented with a Trade Manifest <bcp14>MUST</bcp14> compare the amount, currency and settlement time of every receipt that names it, aborted ones included, against the manifest amount, currency and expiry - amount and currency on the exact-octet terms of <tt>MUST-T8-2</tt>, time on the boundary of <tt>MUST-T3-3</tt>, and, where the manifest names a <tt>payee</tt>, the receipt payee on the same exact-octet terms - and <bcp14>MUST</bcp14> report a receipt that departs from them. Where a usable issuer key is pinned (a pinned issuer root at least one of whose keys the verifier can decode), the comparison is made over the receipts that verify under it and a departure <bcp14>MUST</bcp14> fail the audit. Where no usable issuer key is pinned, the departure <bcp14>MUST</bcp14> still be reported and <bcp14>MUST NOT</bcp14> by itself fail the audit: this requirement charges a party with departing from terms it signed, and a charge that no key stands behind is one a forged receipt can invent against an honest payer. This differs from <tt>MUST-T4-17</tt> on purpose. That requirement asks whether terms were named, which an unattributable document can answer; this one makes an accusation, which it cannot. <tt>MUST-T8-2</tt> and <tt>MUST-T3-3</tt> bind the gate; an audit reads the record after the gate is gone, so without this the receipt can carry the hash of terms it breaks. Receipts that do not name the manifest are not measured against it. A Trade Manifest that a stated publisher pin refuses is not terms for this purpose: where the verifier reports <tt>manifest-key-mismatch</tt>, it <bcp14>MUST NOT</bcp14> read a charge out of that document's body, neither this comparison nor the acceptance-hash comparison of <xref target="countersign"/>. The refusal is the finding; a document the audit has just rejected must not also be the evidence it convicts with, on the same reasoning that keeps an unattributable countersignature from turning a negative result.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MAY</bcp14>-T8-10</td>
              <td align="left">A payee <bcp14>MAY</bcp14> attach a detached COSE_Sign1 countersignature over the issuer receipt bytes. Absence <bcp14>MUST NOT</bcp14> invalidate the issuer receipt. -04 numbered this requirement <bcp14>MAY</bcp14>-T8-9, colliding with <bcp14>MUST</bcp14>-T8-9; the number is corrected and the requirement text is unchanged.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MAY</bcp14>-T8-11</td>
              <td align="left">An attributable countersignature <bcp14>MAY</bcp14> carry <tt>deliveredHash</tt>. When present and the verifier holds the Trade Manifest, the verifier <bcp14>MUST</bcp14> compare it against <tt>acceptanceCriteriaHash</tt> as exact octets and <bcp14>MUST</bcp14> report a mismatch as a failing finding (<tt>delivery-mismatch</tt>): both ends of that comparison are signed. A <tt>deliveredHash</tt> on an unattributable countersignature <bcp14>MUST</bcp14> be discarded with it.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="must-t8-custody">
        <name>MUST-T8-custody</name>
        <t>Implementations of this specification <bcp14>MUST NOT</bcp14> take custody of
funds or operate escrow. See also <xref target="escrow-role"/>.</t>
      </section>
      <section anchor="t9-pii-leakage-into-the-transparency-log">
        <name>T9: PII leakage into the transparency log</name>
        <t>See also <xref target="privacy"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T9-1</td>
              <td align="left">A transparency encoding <bcp14>MUST</bcp14> support omitting or hashing payer/payee identifiers and <bcp14>MUST</bcp14> support amount redaction or range/bucket encoding.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T9-2</td>
              <td align="left">Implementations <bcp14>MUST NOT</bcp14> write raw government-ID, payment-instrument PAN, or street address fields into a public transparency statement.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T9-3</td>
              <td align="left">Default public anchors <bcp14>SHOULD</bcp14> publish <tt>policyHash</tt>, <tt>manifestHash</tt>, <tt>receiptHash</tt>, and timestamp rather than full claim sets.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MAY</bcp14>-T9-4</td>
              <td align="left">A private auditor <bcp14>MAY</bcp14> receive an unredacted receipt out of band.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T9-5</td>
              <td align="left">A checkpoint discloses a per-currency window total, which the receipt-field rules above do not cover. Withholding it is governed by <bcp14>MUST</bcp14>-T11-12 and <bcp14>MUST</bcp14>-T11-13: null in the signed payload, and no other form of redaction honoured.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="t10-secret-spend-via-rail-bypass">
        <name>T10: Secret spend via rail bypass</name>
        <t>See <xref target="reconciliation"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-1</td>
              <td align="left">A verifier <bcp14>MUST</bcp14> match each extract settlement to a settled receipt on <tt>ref</tt> AND <tt>amount</tt> AND <tt>currency</tt>. An audit presented with no extract, no receipts and no checkpoints reports no completeness finding: there is nothing to be complete about. It is not thereby unconditional, and the warnings for the roots it was not given still apply.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-2</td>
              <td align="left">A settlement with no matching receipt <bcp14>MUST</bcp14> be reported as a completeness failure identified by that settlement <tt>ref</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-3</td>
              <td align="left">A settled Spend Receipt whose <tt>x402PaymentRef</tt> is not on the extract <bcp14>MUST</bcp14> be reported as a completeness failure.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-4</td>
              <td align="left">An audit that has any fail-severity completeness finding <bcp14>MUST</bcp14> fail (non-zero status in the companion tool).</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T10-5</td>
              <td align="left">Hosts <bcp14>SHOULD</bcp14> still apply T5 (no ungated rail in the model process). Completeness does not replace prevention.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-6</td>
              <td align="left">A <tt>ref</tt> that appears more than once among settled receipts or among extract rows <bcp14>MUST</bcp14> be reported as <tt>duplicate-ref</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-7</td>
              <td align="left">A verifier <bcp14>MUST</bcp14> obtain the extract from the rail or from a rail signature. With no pinned rail key the extract <bcp14>MUST</bcp14> be reported as <tt>unauthenticated-extract</tt>, whatever it carries, and the completeness guarantee is conditional: a signature that verifies against the carried key establishes internal consistency and not origin, and one that fails or is refused is not a verdict about a key either. With a pinned key, see <bcp14>MUST</bcp14>-T10-8: the extract <bcp14>MUST</bcp14> fail closed rather than warn.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-8</td>
              <td align="left">A verifier <bcp14>MUST</bcp14> obtain the rail public key out of band and <bcp14>MUST</bcp14> verify the extract signature against that key. A key the extract carries <bcp14>MUST NOT</bcp14> be treated as the rail's identity and <bcp14>MUST NOT</bcp14> stand in for a key the verifier did not obtain; a signature checked against it establishes internal consistency only. Without such a key the guarantee is conditional and the condition is reported as <tt>unauthenticated-extract</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-9</td>
              <td align="left">Keys <bcp14>MUST</bcp14> be compared by SubjectPublicKeyInfo DER encoding rather than by any text encoding. A pinned key that cannot be decoded <bcp14>MUST</bcp14> be reported as <tt>trust-key-unreadable</tt>, not as a key mismatch.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-10</td>
              <td align="left">Every settlement record whose <tt>timestampMs</tt> falls outside the extract's declared window <bcp14>MUST</bcp14> be reported as <tt>extract-scope-mismatch</tt>, identified by that record's <tt>ref</tt>. This check <bcp14>MUST</bcp14> run whether or not a key is pinned.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-11</td>
              <td align="left">When the verifier states an expected account, rail, or window, an extract that does not cover it <bcp14>MUST</bcp14> fail closed as <tt>extract-scope-mismatch</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-12</td>
              <td align="left">When an extract is supplied, the records it carries are the subject of reconciliation. A settlement list from another source <bcp14>MUST NOT</bcp14> be substituted; a disagreeing list <bcp14>MUST</bcp14> be reported as <tt>extract-settlement-mismatch</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-13</td>
              <td align="left">A <tt>ref</tt> reported as <tt>duplicate-ref</tt> <bcp14>MUST</bcp14> still be reconciled by aggregate amount per currency, and a shortfall <bcp14>MUST</bcp14> state the unaccounted amount. An unparseable amount <bcp14>MUST</bcp14> be reported as <tt>malformed-amount</tt> without aborting the audit.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-14</td>
              <td align="left">An implementation <bcp14>MUST</bcp14> surface the guarantee and any warnings in any human-readable audit report it produces, not only in a returned structure.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-15</td>
              <td align="left">A verifier that has not stated the period under audit <bcp14>MUST</bcp14> emit <tt>unstated-audit-window</tt> and <bcp14>MUST</bcp14> treat the guarantee as conditional, because an unstated period leaves the extract free to define its own.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-16</td>
              <td align="left">When an extract is supplied, a receipt whose <tt>ref</tt> appears on it is reconciled against it regardless of its own <tt>timestampMs</tt>; the window sieve applies only to receipts the extract does not name, and such a receipt outside the window <bcp14>MUST NOT</bcp14> be reported as a completeness failure against that extract.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-17</td>
              <td align="left">An unmatched settled receipt within the declared <tt>clockSkewMs</tt> of <tt>windowEndMs</tt>, and an unmatched settlement record within it of <tt>windowStartMs</tt>, <bcp14>MUST</bcp14> be reported as <tt>boundary-deferred</tt>, a warning, rather than as a completeness failure. A closing-edge deferral resolves against the following window's extract and hardens into the completeness finding when that extract is presented and does not name the <tt>ref</tt>; an opening-edge deferral resolves only against a receipt in the presented bag that names its <tt>ref</tt>, and a following extract does not harden it. Absent a declared <tt>clockSkewMs</tt>, the profile default of 300000 milliseconds applies.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-18</td>
              <td align="left">A verifier that has not stated the account or the rail under audit <bcp14>MUST</bcp14> emit <tt>unstated-audit-scope</tt> and <bcp14>MUST</bcp14> treat the guarantee as conditional, because an unstated account or rail leaves the extract free to define the settlement path it reports on, exactly as an unstated period leaves it free to define the period (<tt>MUST-T10-15</tt>).</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-19</td>
              <td align="left">A report <bcp14>MUST</bcp14> name the account, rail and window the extract declared, in the printed report and in the finding object it returns. A balanced result under an unconditional guarantee is a statement about one account on one rail over one window; an account that can settle on a second rail has a settlement path outside that population, and a report that does not name its own scope cannot be distinguished from one that covers every path.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-20</td>
              <td align="left">Where a stated rail pin refuses the presented extract and the verifier reports <tt>extract-key-mismatch</tt>, the verifier <bcp14>MUST NOT</bcp14> read a settlement finding out of that document's body: not a mismatch against a receipt, not money reported as unaccounted for, and not a receipt left unmatched by rows the refused document omits. The refusal is the finding. This is <tt>MUST-T8-9</tt>'s rule for a refused Trade Manifest, on the money axis and for the same reason: a charge that no key stands behind is one a forged extract can invent against an honest payer, and a document the audit has just rejected must not also be the evidence it convicts with. Because a reader cannot otherwise tell a comparison that found nothing from one that never ran, the verifier <bcp14>MUST</bcp14> report <tt>settlement-comparison-skipped</tt> in the same result. A pinned key the verifier cannot decode is <tt>trust-key-unreadable</tt> and is not a refusal of the document, so it does not reach this requirement.</td>
            </tr>
          </tbody>
        </table>
        <t>In <bcp14>MUST</bcp14>-T10-4, a completeness finding that makes the audit fail is
distinct from a warning that only makes the guarantee conditional.
The verification algorithm states that distinction by behaviour
(<xref target="reconciliation"/>).</t>
      </section>
      <section anchor="t11-checkpoint-suppression-or-rollback">
        <name>T11: Checkpoint suppression or rollback</name>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-1</td>
              <td align="left">An epoch checkpoint <bcp14>MUST</bcp14> be COSE-signed and <bcp14>MUST</bcp14> bind epoch number, time window, receipt count, chain-head hash, per-currency totals, and the previous checkpoint hash.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-2</td>
              <td align="left">Verifiers <bcp14>MUST</bcp14> reject a checkpoint whose signature fails, whose totals do not match settled receipts in the declared window, whose <tt>receiptCount</tt> is wrong, or whose <tt>chainHeadHash</tt> is not the hash of the last in-window receipt in issuer order (the <tt>prevReceiptHash</tt> chain). Where the signed totals are null, <bcp14>MUST</bcp14>-T11-12 governs instead: there is no total to disagree with, the comparison is reported as skipped, and the count and chain-head checks still apply.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-3</td>
              <td align="left">Two verified checkpoints for the same epoch with different hashes <bcp14>MUST</bcp14> be reported as equivocation. The checkpoints compared are those presented together with those carried by verified witness receipts; the presented chain alone cannot satisfy this requirement, because <bcp14>MUST</bcp14>-T11-8 makes its epochs consecutive.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-4</td>
              <td align="left">A broken checkpoint hash chain <bcp14>MUST</bcp14> fail verification.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T11-5</td>
              <td align="left">Checkpoints <bcp14>SHOULD</bcp14> be registered with a Transparency Service when one is configured.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MAY</bcp14>-T11-6</td>
              <td align="left">A test deployment <bcp14>MAY</bcp14> use an in-process append-only log as the witness.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-7</td>
              <td align="left">Checkpoint windows <bcp14>MUST</bcp14> be half-open <tt>[startMs, endMs)</tt>. Every chained receipt <bcp14>MUST</bcp14> fall in exactly one window.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-8</td>
              <td align="left">Presented checkpoint epochs <bcp14>MUST</bcp14> be consecutive and adjacent windows <bcp14>MUST</bcp14> meet at <tt>endMs = next.startMs</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-9</td>
              <td align="left">Prefix-deletion and suppression claims that go beyond the presented chain are conditional on an external transparency witness. A report <bcp14>MUST NOT</bcp14> present a completeness guarantee as settling suppression when no witness was consulted.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-10</td>
              <td align="left">Witness receipts are an optional, separate input. A verifier given none <bcp14>MUST</bcp14> behave as it did without this input. A receipt <bcp14>MUST</bcp14> have its signature verified before it counts for anything. Where a receipt also carries the statement body, that body <bcp14>MUST NOT</bcp14> be relied on unless its statement hash equals the one the receipt binds and it verifies as a checkpoint; a discarded body does not discard its receipt.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-11</td>
              <td align="left">A verified receipt binding a checkpoint absent from the presented chain <bcp14>MUST</bcp14> be reported as a withheld checkpoint, and <bcp14>MUST NOT</bcp14> be reported as a window coverage failure. A presented checkpoint with no verified receipt, where a witness was supplied, <bcp14>MUST</bcp14> be reported and makes the guarantee conditional.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-12</td>
              <td align="left">Withheld checkpoint totals <bcp14>MUST</bcp14> be encoded as null in the signed payload. A verifier <bcp14>MUST</bcp14> report that the totals comparison was skipped and <bcp14>MUST</bcp14> treat the guarantee as conditional; <tt>receiptCount</tt> and <tt>chainHeadHash</tt> <bcp14>MUST</bcp14> still be checked.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-13</td>
              <td align="left">A redaction asserted outside the signed payload <bcp14>MUST NOT</bcp14> be honoured, and structural claims <bcp14>MUST NOT</bcp14> be redacted. A checkpoint that fails verification <bcp14>MUST NOT</bcp14> be treated as redacted.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-14</td>
              <td align="left">An epoch checkpoint <bcp14>MUST</bcp14> be registrable as a Signed Statement carrying the checkpoint COSE object with content type <tt>application/cedulon-checkpoint+cbor</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-15</td>
              <td align="left">A verifier <bcp14>MUST</bcp14> obtain the transparency service public key out of band and <bcp14>MUST</bcp14> verify inclusion receipts against it. Receipts that cannot be checked that way <bcp14>MUST NOT</bcp14> be used as evidence in either direction, and the verifier <bcp14>SHOULD</bcp14> report that they were left out.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-16</td>
              <td align="left">A statement held by a pinned log <bcp14>MUST</bcp14> additionally verify against the issuer root before it counts as something that issuer published, so that another user's epoch in a shared log is not read as equivocation by this issuer.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-17</td>
              <td align="left">An inclusion receipt carrying no statement body <bcp14>MUST NOT</bcp14> be used to report a withheld checkpoint, because it cannot say whose statement it binds. It <bcp14>MUST NOT</bcp14> be discarded silently either: a real withholding must not be buried by removing the body.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-18</td>
              <td align="left">Where candidate Signed Statement bytes and an inclusion proof are both supplied, a verifier <bcp14>MUST</bcp14> verify log membership by the mechanics of RFC 9942 Section 5.2.1 and <bcp14>MUST</bcp14> accept only when the leaf hash, leaf index, and reproduced root exactly match a witness receipt that verifies under the pinned witness key. Root reproduction alone is not acceptance. A pair that fails, or a candidate supplied without a proof, <bcp14>MUST</bcp14> be reported as a failing finding.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-19</td>
              <td align="left">Where witness receipts are supplied and the tier-2 pair is not, the report <bcp14>MUST</bcp14> state that log membership was not exercised rather than passing the tier silently.</td>
            </tr>
          </tbody>
        </table>
        <dl>
          <dt>Issuer self-attestation:</dt>
          <dd>
            <t>A Receipt Issuer that also produces the only copy of the extract
can omit settlements. Completeness holds only against an
extract the verifier obtained from the rail or from a rail
signature.</t>
          </dd>
          <dt>Key rotation and revocation:</dt>
          <dd>
            <t><tt>kid</tt> identifies the verification key. This -07 does not specify
a revocation list. Verifiers <bcp14>MUST</bcp14> pin the issuer keys they
accept and <bcp14>MUST</bcp14> stop accepting a <tt>kid</tt> after an authenticated
revocation signal.</t>
          </dd>
          <dt>Timestamp trust:</dt>
          <dd>
            <t><tt>timestampMs</tt> is issuer-asserted. Window assignment uses that
field. A lying issuer can slide a receipt between windows.
External timestamping of receipts is out of scope for this revision; the
checkpoint witness covers checkpoints, not receipt
timestamps.</t>
          </dd>
          <dt>Collusion:</dt>
          <dd>
            <t>If the rail operator and the issuer collude, they can publish a
matching extract and receipt set that hides a real-world
settlement. Cedulon does not detect extract-external agreement.</t>
          </dd>
          <dt>Reversal, refund, and partial settlement:</dt>
          <dd>
            <t>State machines for reversal, refund, and partial settlement are
out of scope for this revision.</t>
          </dd>
        </dl>
      </section>
      <section anchor="escrow-role">
        <name>Optional escrow role</name>
        <t>Parties <bcp14>MAY</bcp14> name an escrow actor in a Trade Manifest as a
third-party role that holds funds under rules outside this protocol
(<tt>MAY-T8-6</tt>). Implementations of this specification <bcp14>MUST NOT</bcp14> take
custody or operate escrow (<tt>MUST-T8-custody</tt>).</t>
      </section>
      <section anchor="t12-settlement-without-a-recorded-receipt">
        <name>T12: Settlement without a recorded receipt</name>
        <t>The threats above are about a counterparty, a rail or an attacker.
This one is about the issuer's own implementation, and it produces
exactly the condition the rest of this document exists to make
detectable.</t>
        <t>An issuer that settles a payment, appends the receipt in memory and
then persists its state has three steps where it could have two
outcomes. If the write fails, the rail holds a settlement and the
receipt exists nowhere durable. The next start reads a state that
does not contain it, and the audit in <xref target="reconciliation"/> reports
<tt>settlement-without-receipt</tt> against an honest issuer that did
everything its own policy asked. The evidence is missing because the
issuer lost it, not because anyone hid it, and nothing in the report
can tell those apart.</t>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T12-1</td>
              <td align="left">An issuer <bcp14>MUST NOT</bcp14> complete a settlement whose receipt it cannot record durably. The ability to record <bcp14>MUST</bcp14> be established before value moves, not after.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T12-2</td>
              <td align="left">Where a settlement has been made and its record cannot be completed, the issuer <bcp14>MUST</bcp14> undo the settlement in every place it still controls: in memory, on the rail ledger it controls, and in any later write it has not yet issued. A refused payment <bcp14>MUST NOT</bcp14> consume the nonce or the payment allowance it never used.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T12-3</td>
              <td align="left">Two issuers <bcp14>MUST NOT</bcp14> share one durable state. An implementation that permits it <bcp14>MUST</bcp14> fail loudly rather than let one writer overwrite the other's receipt, and the failure <bcp14>MUST</bcp14> name what an operator can act on.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T12-4</td>
              <td align="left">Where a settlement has entered a rail the issuer does not control, and the local record cannot be completed, the outcome is indeterminate. The issuer <bcp14>MUST NOT</bcp14> treat the payment as reversed, and <bcp14>MUST NOT</bcp14> return the authority to spend, unless it holds authenticated evidence that the rail did not complete the settlement or that a reversing entry completed.</td>
            </tr>
          </tbody>
        </table>
        <dl>
          <dt>Ordering:</dt>
          <dd>
            <t>Settle-then-record is the natural order to write and the wrong one
to ship. The record is what makes the settlement accountable, so the
record is what has to be secured first (<tt>MUST-T12-1</tt>), and a
settlement that cannot be recorded has to be undone everywhere the
issuer still controls, including the nonce and the allowance it
never used (<tt>MUST-T12-2</tt>). That undo is what the in-process
<tt>RailLedger</tt> and the session tests measure. Once value has entered a
rail the issuer does not control, a local snapshot cannot retract it.
Persistence failing after that point leaves the outcome
indeterminate; authority is not returned without authenticated
evidence that the rail did not complete the settlement or that a
reversing entry did (<tt>MUST-T12-4</tt>).</t>
          </dd>
          <dt>Recovery:</dt>
          <dd>
            <t>A durable-state conflict is not necessarily fatal, but it <bcp14>MUST NOT</bcp14>
be silent, and an implementation that refuses every subsequent
write without offering a way back has turned a recoverable
condition into an outage. The reason reported has to separate the
cases an operator would act on differently (<tt>MUST-T12-3</tt>): a write
that conflicted with another writer, a write that failed, and a
state another process is holding. A single opaque failure leaves the
operator to guess which of those happened.</t>
          </dd>
          <dt>Observability:</dt>
          <dd>
            <t>A violation of this threat is not visible in the evidence a verifier
receives. The audit sees a settlement with no receipt and reports
<tt>settlement-without-receipt</tt>, which is the same finding an adversary
would produce, and nothing in the extract or the receipt set
distinguishes an issuer that lost the evidence from one that hid it.
That is why the requirements here fall on the issuer rather than on
the verifier, and why an operator-facing reason is required rather
than optional.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document requests the registration of six media types in the
"Media Types" registry <xref target="RFC6838"/>, in the standards tree, each
carrying the <tt>+cbor</tt> structured syntax suffix that <xref target="RFC8949"/>
registers. Each names one of the COSE_Sign1 objects this document
defines and is carried as the COSE <tt>content type</tt> header parameter
(label 3) of that object (<xref target="cose-profile"/>). The value is a normative
check inside a protected header (<tt>MUST-T4-8</tt>, <tt>MUST-T6-5</tt>), which is
why the names cannot stay unregistered while that check stands.
Registration in the standards tree requires IETF approval; until
then, an implementation outside a closed deployment should treat
these names as placeholders that a registration may change. The
provisional registration procedure of <xref target="RFC6838"/> Section 5.2.1 is
available to an Internet-Draft, and a provisional entry, if one is
made, is superseded by the registration this section requests.</t>
      <t>The claim labels this document assigns inside the CBOR claim sets,
<tt>-70001</tt> through <tt>-70402</tt> (<xref target="receipt-labels"/>, <xref target="countersign"/>), lie
in the Private Use range of the "CBOR Web Token (CWT) Claims"
registry <xref target="RFC8392"/>, integer values less than -65536, and this
document requests no assignment for them. A later Standards Track
revision that moves them into the assigned range will request new
labels then, without reinterpreting these.</t>
      <t>No other IANA action is requested.</t>
      <t>The six templates follow. Fields that are the same for every one
are stated once, in the first, and the others say so.</t>
      <section anchor="iana-receipt">
        <name>application/cedulon-receipt+cbor</name>
        <dl>
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>cedulon-receipt+cbor</t>
          </dd>
          <dt>Required parameters:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Optional parameters:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary. A COSE_Sign1 structure <xref target="RFC9052"/> in deterministic CBOR
<xref target="RFC8949"/>, untagged, as profiled in <xref target="spend-receipt"/> and
<xref target="cose-profile"/>.</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t>See <xref target="security"/> of this document. The object is signed; its
evidentiary weight depends on the verifier holding the issuer key
out of band (<xref target="issuer-root"/>), never on a key the object carries.</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>The claim set is a CBOR map with the labels and types stated in
<xref target="receipt-labels"/>, encoded per <xref target="RFC8949"/> Section 4.2.1. A
decoder refuses a duplicate key (<tt>MUST-T4-18</tt>), an input beyond its
stated bounds (<tt>MUST-T4-19</tt>), and a non-empty unprotected header
(<tt>MUST-T4-21</tt>) by name rather than accepting it.</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t>This document, <xref target="spend-receipt"/>.</t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>Agent payment adapters, policy decision points, auditors, and
dispute-evidence tooling that produce or verify Cedulon Spend
Receipts.</t>
          </dd>
          <dt>Fragment identifier considerations:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Additional information:</dt>
          <dd>
            <t>Deprecated alias names for this type: N/A. Magic number(s): N/A.
File extension(s): N/A. Macintosh file type code(s): N/A.</t>
          </dd>
          <dt>Person and email address to contact for further information:</dt>
          <dd>
            <t>Emek Can Dogru, e.dogru@cedulon.com</t>
          </dd>
          <dt>Intended usage:</dt>
          <dd>
            <t>COMMON</t>
          </dd>
          <dt>Restrictions on usage:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Author:</dt>
          <dd>
            <t>Emek Can Dogru</t>
          </dd>
          <dt>Change controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
        </dl>
      </section>
      <section anchor="iana-checkpoint">
        <name>application/cedulon-checkpoint+cbor</name>
        <dl>
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>cedulon-checkpoint+cbor</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary. A COSE_Sign1 structure in deterministic CBOR, untagged, as
profiled in <xref target="redaction"/> and <xref target="cose-profile"/>; the same object is
the payload of the Signed Statement <xref target="anchoring"/> registers.</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t>See <xref target="security"/> of this document. A checkpoint carries the
suppression guarantee for its window (<xref target="witness"/>). Its evidentiary
weight depends on a pinned issuer key (<xref target="issuer-root"/>) and never on
the key it carries; where no such key is held the signature is still
checked against the carried key, which establishes internal
consistency only.</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>As for application/cedulon-receipt+cbor; the labels are those of
the checkpoint table in <xref target="receipt-labels"/>, and <tt>totals</tt> signed as
null is a redaction, not a malformed claim.</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t>This document, <xref target="redaction"/>.</t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>As for application/cedulon-receipt+cbor, and transparency witnesses
that co-sign or register checkpoints.</t>
          </dd>
          <dt>Required parameters, optional parameters, fragment identifier considerations, additional information, contact, intended usage, restrictions on usage, author, change controller:</dt>
          <dd>
            <t>As for application/cedulon-receipt+cbor.</t>
          </dd>
        </dl>
      </section>
      <section anchor="iana-manifest">
        <name>application/cedulon-manifest+cbor</name>
        <dl>
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>cedulon-manifest+cbor</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary. A COSE_Sign1 structure in deterministic CBOR, untagged, as
profiled in <xref target="trade-manifest"/> and <xref target="cose-profile"/>.</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t>See <xref target="security"/> of this document. A manifest is an offer signed
before payment; it binds terms, not delivery, and is verified only
against a publisher key held out of band (<xref target="manifest-root"/>).</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>As for application/cedulon-receipt+cbor; the labels are those of
the manifest table in <xref target="receipt-labels"/>, and the <tt>payee</tt> label is
encoded only when present.</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t>This document, <xref target="trade-manifest"/>.</t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>Payees and marketplaces that publish signed offers to paying
agents, and verifiers reconciling receipts against those offers.</t>
          </dd>
          <dt>Required parameters, optional parameters, fragment identifier considerations, additional information, contact, intended usage, restrictions on usage, author, change controller:</dt>
          <dd>
            <t>As for application/cedulon-receipt+cbor.</t>
          </dd>
        </dl>
      </section>
      <section anchor="iana-decision">
        <name>application/cedulon-decision+cbor</name>
        <dl>
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>cedulon-decision+cbor</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary. A COSE_Sign1 structure in deterministic CBOR, untagged, as
profiled in <xref target="decision-token"/> and <xref target="cose-profile"/>.</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t>See <xref target="security"/> of this document. A Decision Token is consumed at
the gate by the party that issued it (<xref target="decision-root"/>); it is not
an input to the retrospective audit (<xref target="verification"/>), and a
verifier that treated it as one would be claiming a check the audit
does not make.</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>As for application/cedulon-receipt+cbor; the labels are those of
the Decision Token table in <xref target="receipt-labels"/>, all five always
present.</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t>This document, <xref target="decision-token"/>.</t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>Policy decision points and the payment adapters that consume their
allow decisions.</t>
          </dd>
          <dt>Required parameters, optional parameters, fragment identifier considerations, additional information, contact, intended usage, restrictions on usage, author, change controller:</dt>
          <dd>
            <t>As for application/cedulon-receipt+cbor.</t>
          </dd>
        </dl>
      </section>
      <section anchor="iana-countersign">
        <name>application/cedulon-countersign+cbor</name>
        <dl>
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>cedulon-countersign+cbor</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary. A detached COSE_Sign1 structure in deterministic CBOR,
untagged, as profiled in <xref target="countersign"/>, whose payload carries the
exact issuer receipt octets it countersigns.</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t>See <xref target="security"/> of this document. A countersignature that does
not verify under a payee key held out of band carries no
evidentiary weight and cannot move the verdict on the receipt it
travels beside (<xref target="countersign"/>, <xref target="payee-root"/>).</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>As for application/cedulon-receipt+cbor; the optional
<tt>deliveredHash</tt> claim is a 32-octet byte string and is read as
absent when it is not.</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t>This document, <xref target="countersign"/>.</t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>Payees that acknowledge a receipt and, optionally, bind the bytes
they delivered.</t>
          </dd>
          <dt>Required parameters, optional parameters, fragment identifier considerations, additional information, contact, intended usage, restrictions on usage, author, change controller:</dt>
          <dd>
            <t>As for application/cedulon-receipt+cbor.</t>
          </dd>
        </dl>
      </section>
      <section anchor="iana-inclusion">
        <name>application/cedulon-inclusion+cbor</name>
        <dl>
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>cedulon-inclusion+cbor</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary. A COSE_Sign1 structure in deterministic CBOR, untagged, as
profiled in <xref target="cose-profile"/>, whose payload is the three-entry map
<xref target="witness"/> states: statement hash, entry index, tree head.</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t>See <xref target="security"/> of this document. A witness receipt verified under
the key it carries establishes that some log is internally
consistent and nothing about which log; it carries evidentiary
weight only under a witness key held out of band (<xref target="witness-root"/>,
<tt>MUST-T11-15</tt>). It attests a statement hash, not membership in an
append-only log; membership is tier 2 of <xref target="witness"/> and needs the
candidate statement and an inclusion proof beside the receipt.</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>As for application/cedulon-receipt+cbor, except that the payload is
not a CWT claim set: its three labels are local to the map and are
stated, with their types, in <xref target="witness"/>.</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t>This document, <xref target="witness"/>.</t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>Transparency witnesses that co-sign the statements they record, and
verifiers that hold witness receipts for a period under audit.</t>
          </dd>
          <dt>Required parameters, optional parameters, fragment identifier considerations, additional information, contact, intended usage, restrictions on usage, author, change controller:</dt>
          <dd>
            <t>As for application/cedulon-receipt+cbor.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="impl-status">
      <name>Implementation Status</name>
      <t>This section is to be removed before publishing as an RFC.</t>
      <t>RFC 7942 <xref target="RFC7942"/> note.</t>
      <dl>
        <dt>Implementation:</dt>
        <dd>
          <t>A companion implementation with a runnable verification suite at
<eref target="https://github.com/dogrucanemek-alt/cedulon">https://github.com/dogrucanemek-alt/cedulon</eref>. The code is a profile
of this document, not a second specification. This -07 is not an
IETF working-group item.</t>
        </dd>
        <dt>Maturity:</dt>
        <dd>
          <t>Research code by a single implementer. Three readers have run the
code on their own machines against a pinned commit and reported
figures matching the author's: two from a clean clone of the whole
suite, one re-running the published reproduction. That is
byte-stability across environments, not an independent
implementation, and the distinction matters: the same code agreeing
with itself on three machines rules out a local accident and nothing
more. One reader reports an independent implementation of the Signed
Statement identity, kept deliberately separate from this codebase; no
independent implementation of the reconciliation algorithm is known
to the author.</t>
        </dd>
        <dt/>
        <dd>
          <t>The requirements -03 and -04 added came out of five adversarial
rounds against the implementation, each one asking a reviewer to
break the code rather than to read it, with the reviewer barred from
changing it. Four of those rounds found a defect inside the previous
round's repair rather than in the original code, which is the reason
this section does not describe the result as settled. The
requirements -05 added came from a different direction: a
reader ran the posted -04 Appendix A vectors against the exact
archive bytes in an independent toolchain, reproduced both
signatures and the byte-for-byte re-encoding, and filed the
first-failure list <xref target="changes-04"/> answers - the first verification
of this profile's vectors outside the companion codebase. The two
requirements this revision adds came from a third: the author
ran a neighbouring draft's canonicalization vectors through this
profile's own encoder and reported the reading to the SCITT list,
and measuring what that reading implied for this profile's digests
found a surface the companion decoder was ignoring
(<xref target="changes-05"/>).</t>
        </dd>
        <dt/>
        <dd>
          <t>The conditions of that outside run, as its own log records them:
Linux x86_64, Python 3.14.4, cbor2 6.1.4, cryptography 50.0.1,
against the archive bytes of the posted -04, SHA-256
<tt>661755c600aede25451ce3a67df4a45d0d964c7b9196dc725dd310723eb8a49f</tt>.
Reading the posted -05, the same reader rebuilt the regenerated
receipt vector of <xref target="vectors"/> from the text alone - protected header
from the profile rules, <tt>policyHash</tt> as the SHA-256 over the UTF-8
octets of the policy identifier the appendix names, deterministic
CBOR, the <xref target="RFC8032"/> fixture key - and obtained the published 307
octets byte for byte, SHA-256
<tt>0f1fe8859faf25de906b08142674f1270656d8ea7bfc00853c2fc6e9d3f5a10b</tt>,
against archive bytes SHA-256
<tt>fc8962b3daeed9f8e5b1c2b7d26d605c14873d9de1cbf35743ce59af2c7aa62e</tt>.
Both published signatures verify and neither object is tag-wrapped.
That is this document's text producing a signed object without the
code that produced it, which is the narrow claim it supports: the
same reader has read parts of the public repository and its package
metadata, says so, and for that reason does not describe the pass as
a clean-room implementation.</t>
        </dd>
        <dt>Coverage:</dt>
        <dd>
          <t>The receipt, checkpoint, extract, reconciliation, and verification
algorithm are implemented, including the transparency witness input,
the withheld and not-anchored conditions, and signed totals
redaction. Requirements added in this revision and the previous three
are implemented and covered by a red-then-green case before
appearing in this text, except the reversal branch of <tt>MUST-T12-4</tt>:
its extract branch is executed red-then-green, and the reversal
branch is specified and not executed. <tt>MUST-T4-17</tt> and <tt>MUST-T8-9</tt>
are in the published packages (see the note on distribution below);
<tt>MUST-T8-9</tt> is published in the two-branch form specified since the
-04.
Continuous integration runs the full pre-release suite - the
post-release registry checks are a separate job, deliberately
excluded from it, so "full suite" here names exactly what was
measured - on three hosted runners, each as a non-root user:
Linux, macOS, and Windows; a fourth Linux job runs three cases
only and is not a coverage claim. At the commit this revision
describes, all three assert every case, 437 of 437, with none
skipped. A local Windows run without symbolic-link privilege skips
four POSIX-mode cases with a stated reason rather than returning
silently, so a green local suite names what it did not cover and is
that much smaller a claim. An earlier version of this paragraph
said continuous integration ran "the whole suite"; a reader
re-running the frozen claims pointed out that the excluded
post-release job is part of the whole, and the sentence now names
the suite it measures. That continues a pattern: an independent
runner reported the first platform distinction back from a Linux
run after this text claimed otherwise, and this paragraph has been
corrected once per reader who measured it. The undo after a failed
write is exercised on Windows too, by making the state file
read-only so the atomic rename fails, and the protection report and
the refusal to settle without a durable record are checked on all
three operating systems.
The witness used in the suite is the in-process log that
<tt>MAY-T11-6</tt> permits, now a Merkle tree that issues inclusion
proofs; tier 2 of <xref target="witness"/> is exercised against it
red-then-green. The implementation has not been run against a
deployed Transparency Service. The simplification the earlier
admission here named - a receipt treated as a signature over a
statement rather than proof of log membership - no longer reaches
the protocol text: it is tier 1 by name, and tier 2 carries the
membership question. The escrow role,
reversal, refund, and partial settlement are not implemented.</t>
        </dd>
        <dt>Licensing:</dt>
        <dd>
          <t>Apache-2.0.</t>
        </dd>
        <dt>Contact:</dt>
        <dd>
          <t>The author of this document.</t>
        </dd>
        <dt>Experience:</dt>
        <dd>
          <t>Readers of -00, -01 and -02 have reported defects in each, and every
revision has been driven by what they found rather than by a plan.
-01 fixed a bypass of the completeness claim and a gap about which
key an extract is checked against. -02 repaired a defect reported
against -01 and independently confirmed by a second reader: the
object carrying the T11 guarantee was neither profiled for
registration nor read during verification.</t>
        </dd>
        <dt/>
        <dd>
          <t>The defect behind -03 was reported against the posted -02.
A reader asked whether the profile should accept a pinned witness key
and report an absent or mismatched pin explicitly. -02 Section 6.2 already
required a verifier to obtain the public key from an authenticated
channel and to reject a <tt>kid</tt> that does not match that key. What it
did not carry was the verification algorithm, the separate root
inputs, and the error semantics. Following the same question into
the implementation found the omission for the Spend Receipt, the
epoch checkpoint and the Decision Token. T12 came from neither
reader nor adversary, and not from the rounds of trying to break the
implementation either: it was found while writing the task for one
of them, in the ordering the implementation itself used, which
produced against the issuer the one condition this document exists
to make detectable.</t>
        </dd>
      </dl>
      <t>Note on distribution: everything -03 and -04 added is in the
published <tt>@cedulon</tt> packages from 0.7.0 on, with the exceptions
named below. What -05 added - the hash-claim grammar, the
countersignature attribution rule, the pin-under-signature attested
set, the boundary allowance, the counterparty bindings,
<tt>deliveredHash</tt>, and witness tier 2 - what -06 added - the refusal of
a JSON text that repeats a member name (<tt>MUST-T4-20</tt>) and the refusal
of a non-empty unprotected header (<tt>MUST-T4-21</tt>) - and what this
revision adds - the conditional guarantee for an unstated account or
rail (<tt>MUST-T10-18</tt>), the report that names the settlement path it
covered (<tt>MUST-T10-19</tt>), and the refusal to read a settlement finding
out of an extract the pinned rail key rejected (<tt>MUST-T10-20</tt>) - are
in the published packages at version 0.9.0, the version on npm as this
is posted. -06 was posted while those were in the repository and in no
package, and said so; 0.8.0 and 0.9.0 were published after it. The
0.7.0 packages a reader may still hold parse extract text with a
parser that keeps the last of two values, verify a signature over a
stuffed unprotected header without complaint, and name neither the
account nor the rail their reports were computed over. A reader can
check a claim against an installed package rather than against a
working tree. That order is deliberate: -00 described requirements
that its published package did not yet carry, a reader found the
discrepancy, and this document does not repeat it. Versions 0.2.x and
earlier predate everything in this revision.</t>
      <t>0.3.0 predated the manifest root and the T12 bound. It carried three
defects that only appear
away from the platform it was written on, which an independent runner
found by taking up a standing invitation to break it. A directory that
could not be written refused the lock before the record and left the
refusal as an uncaught exception rather than the reason this document
requires; the case for a symbolic link on the path used a call that
does not exist in the module system the package declares, so it never
reached its assertion; and repairing that revealed a fourth defect,
that the state fingerprint was read before the path was checked, so a
replaced path was reported as a conflicting writer rather than as a
hijacked destination. 0.3.1 closes all four. The manifest root
(<tt>MUST-T4-15</tt>) and the gate's refusal to settle against a manifest it
cannot attribute (<tt>MUST-T4-16</tt>) were published as 0.4.0 rather than as a patch: the
gate had been answering 200 to an unattributable manifest and writing
that manifest's hash into the receipt, and refusing it is a change in
behaviour that a version number ought to announce.</t>
      <t><tt>MUST-T4-17</tt> and <tt>MUST-T8-9</tt> were the exceptions in -04 and are no
longer; <tt>MUST-T12-4</tt>'s reversal branch still is. The same independent
runner who took up the invitation against 0.4.0 reported that
attributing a manifest was not the same as establishing that anything
in the window was spent under it, which is the distinction that
<tt>MUST-T4-17</tt> now draws. A reader of this document then observed that
the distinction survives one step further out: a receipt can name the
manifest and still depart from its amount, currency or expiry, which
is what <tt>MUST-T8-9</tt> closes. Both were unpublished when -03 was posted
and both are in the published packages now, so a
reader can check either against an installed 0.7.0 or later rather
than against this tree. <tt>MUST-T8-9</tt> as published carries the two-branch form
specified here: a departure under a usable issuer pin is a finding and
fails the audit, and a departure with no usable pin is reported as a
warning that does not by itself fail it. -03 stated
the single branch, and the difference is deliberate rather than a
drafting slip; the reason is given where the requirement is defined.
Four repairs -05's review rounds produced are in 0.7.0 and
were not in 0.6.0, so a reader comparing the two sees them. The MCP
boundary refuses an amount spelling the grammar forbids instead of
parsing and reprinting it, which had let <tt>01</tt> through as <tt>1</tt> and
erased the octets <tt>MUST-T8-2</tt> compares; <tt>signManifest</tt> holds the same
grammar its receipt counterpart always held; a decoder refusal keeps
its name on the audit surface instead of surfacing as a signature
failure, which <tt>MUST-T4-19</tt> requires; and no verifier throws on input
it cannot read, in either the CBOR or the JSON path, after an interim
shape that rethrew those names left a single oversized checkpoint able
to end an audit by exception rather than by finding.</t>
      <t><tt>MUST-T12-4</tt> is the one exception left in this revision, and it is
now half an exception. Its extract branch - authenticated rail
evidence resolving an indeterminate outcome - is executed
red-then-green against the in-process <tt>RailLedger</tt> and ships from
0.7.0 on. Its reversal branch is specified and not executed: there is
no authenticated external-rail path in this tree, so the rule that
forbids returning authority without evidence of a completed
reversing entry has no red-then-green case, and a reader checking
that branch against an installed 0.9.0 will not find it either.</t>
      <section anchor="changes-06">
        <name>Changes from -06</name>
        <t>This revision has three subjects. The first repairs a wording residue
that -06's own repair created, reported by the reader who implemented
-06 from the posted text; it changes no behaviour. The second adds
three requirements on the rail path: two on an axis of the audit's
declared scope that every earlier revision left unstated, and one on
what a verifier may read out of an extract its pinned key refused.
The third states the wire form of the witness receipt, which every
earlier revision described and none encoded, and registers its media
type.</t>
        <t>-06 stated, for the first time, what a verifier does when it holds no
pinned issuer key: the signature is still checked against the key the
object itself carries, which establishes internal consistency and
nothing about who signed it (<xref target="presentation"/>, <xref target="issuer-root"/>). Seven
places in the same document still carried the older absolute
formulation, under which no signed object may be verified against a key
it carries at all. Read literally, those seven forbade the check the
other two had just defined, and two implementations following different
halves of the document would produce different findings from the same
evidence.</t>
        <ul spacing="normal">
          <li>
            <t>The Abstract said no signed object may be verified against a key it
carries itself. It now says no signed object is attested by one.</t>
          </li>
          <li>
            <t>The opening paragraph of <xref target="issuer-root"/> stated the prohibition
without the no-pin case. It now separates the two: a carried key is
neither an identity nor a fallback for a pin (<tt>MUST-T4-9</tt>,
<tt>MUST-T4-11</tt>), and where no key is held the check that runs
establishes internal consistency only.</t>
          </li>
          <li>
            <t><tt>MUST-T4-9</tt> carries the same split, in the requirement's own words.</t>
          </li>
          <li>
            <t><tt>MUST-T10-8</tt>, the paragraph of <xref target="rail-extract"/> that introduces it,
and the opening of <xref target="trust-roots"/> carried the identical residue on
the rail path, in three places, where it was not reported: an extract
presented under no pinned rail key is verified against the key it
carries, and the implementation says so in its own warning. The
requirement and both paragraphs now separate identity from internal
consistency the same way, and name <tt>unauthenticated-extract</tt> as the
condition; <tt>MUST-T10-7</tt>, step 2 of the verification algorithm and the
<tt>unauthenticated-extract</tt> row of the finding table say the same.</t>
          </li>
          <li>
            <t>The <tt>application/cedulon-checkpoint+cbor</tt> template in <xref target="iana"/> said a
checkpoint is verified only against a pinned issuer key. It now states
the same split as <xref target="issuer-root"/>.</t>
          </li>
        </ul>
        <t>The witness root already stated the distinction correctly and is
unchanged; it is where the wording for the other seven came from. The
manifest root (<xref target="manifest-root"/>) and <tt>MUST-T4-15</tt> keep their absolute
wording on purpose: a Trade Manifest presented under no publisher pin
is not checked against the key it carries at all, so there is no
internal-consistency check to describe there, and
<tt>unauthenticated-manifest</tt> says so.</t>
        <t>The second subject is the scope a completeness result is over. -05
established that a verifier which states no period cannot call its
result unconditional, because the extract then defines the period it
reports on (<tt>MUST-T10-15</tt>). The account and the rail are the same kind
of axis and were never given the same treatment: an extract names one
account and one rail (<xref target="rail-extract"/>), so a verifier that states
neither leaves the extract to define whose settlements were accounted
for and which way out was watched. <tt>MUST-T10-18</tt> closes that axis the
way -05 closed the period.</t>
        <t><tt>MUST-T10-19</tt> states the consequence the earlier revisions left to the
reader. A balanced audit under an unconditional guarantee is true of
one account, on one rail, over one window. An account that can settle
on a second rail has a settlement path no presented extract covers,
and a spend that left that way is not an unmatched row - it is outside
the declared population, which is precisely the bypass <xref target="security"/>
names in T10. The report now carries the account, rail and window it
was computed over, in the printed report and in the finding object, so
the strongest line it prints cannot be read as a statement about paths
it never looked at. Those two surfaces are the ones the requirement
names; the companion's MCP result and ledger export return the finding
list and the guarantee without a scope field, and a revision that
widens the requirement to every returned structure will ship with the
package that carries it. Enumerating an account's rails remains the
deployment's statement; no extract can be asked to prove that the
enumeration is complete.</t>
        <t>This distinction is the one <xref target="ABAK"/> draws for control instructions,
where a receiver-side observation at one enforcement point does not
establish that another required path was reached.</t>
        <t><tt>MUST-T10-20</tt> closes the other gap on the same path. -06 reported an
extract that a stated rail pin refused as <tt>extract-key-mismatch</tt> and
said nothing about what that document's rows could still be used for,
so a verifier could reject the extract and then convict with it: a
mismatch against a receipt, money reported as unaccounted for, a
receipt left unmatched by rows the refused document omits. The refusal
is now the finding, no settlement finding is read out of that body,
and the verifier reports <tt>settlement-comparison-skipped</tt> in the same
result, so that a comparison which never ran cannot be mistaken for
one that found nothing. It is <tt>MUST-T8-9</tt>'s rule for a refused Trade
Manifest, on the money axis and for the same reason.</t>
        <t>The witness receipt of <xref target="witness"/> has been described since -02 as a
receipt binding the statement the witness recorded, and since -05 as a
COSE_Sign1 binding a statement hash, an entry index and a tree head;
every revision left its encoding to the reader. The companion
implementation, at its published 0.9.0, issues and verifies that
object under the content type <tt>application/cedulon-inclusion+cbor</tt>, a
name no revision registered over a payload no revision stated, while
<xref target="cose-profile"/> makes the content type a normative check inside a
protected header (<tt>MUST-T4-8</tt>). <xref target="witness"/> now states the payload as
issued, <xref target="cose-profile"/> lists the name beside the other five, and
<xref target="iana"/> requests its registration as the sixth template. No
behaviour changes for objects already issued. The encoding is stated
as it ships: hashes as hexadecimal text strings, and three small
positive labels that are local to the map rather than CWT claims. A
later revision may move the hashes to byte strings and the labels into
the private-use range the other objects use; it will do so in step
with a package release, and will say so here.</t>
        <t>Also in this revision: the note on distribution in <xref target="impl-status"/> now
says that what -05, -06 and this revision add is in the published
packages at 0.9.0, where -06 said those items were in the repository
and in no package, 0.8.0 and 0.9.0 having been published after it was
posted; Related Work cites <xref target="ABAK"/>; and <xref target="evolution"/> points at -08 or
later.</t>
      </section>
      <section anchor="changes-05">
        <name>Changes from -05</name>
        <t>This revision has one subject on the wire, one at the registry, and
one repair to what the text claimed about verification without a
pinned key.
On the wire it adds two decoder rules, each the named refusal of a
surface the posted -05 left implicit; at the registry it turns the
placeholder table of -05's IANA section into the registration
requests <xref target="RFC6838"/> asks for. Both rules landed red-then-green in
the companion implementation before they were written here, and each
came from reading rather than from a reader: the first from running
the canonicalization vectors of a neighbouring draft <xref target="CPB"/> through
this profile's own <xref target="RFC8785"/> encoder, the second from measuring
what would change if the digests of <xref target="hash-inputs"/> were taken over
the COSE <tt>ToBeSigned</tt> structure instead of the signed octets. That
second question is not answered in this revision; what the
measurement found on the way is.</t>
        <ul spacing="normal">
          <li>
            <t>JSON text gains the rule CBOR already had. <xref target="RFC8785"/> takes I-JSON
<xref target="RFC7493"/> as its input, and an I-JSON object carries no duplicate
member names; a verifier that receives a JSON document as text now
refuses a text in which any object repeats a member name, by the
name <tt>json-duplicate-key</tt>, before parsing it (<tt>MUST-T4-20</tt>,
<xref target="canonical-json"/>, <xref target="rail-extract"/>). -05 was silent, and the
companion refused such texts anyway; its conformance runner carried
that difference as a recorded split against the posted -05, and
this sentence is what the split was waiting for. The rule is
measured on the text because a parser that keeps either value has
already discarded the evidence of the other.</t>
          </li>
          <li>
            <t>The empty unprotected header became a decoder rule rather than an
encoder promise. Every digest over a signed object covers the
unprotected header and the signature does not, so a decoder that
verified the signature and ignored a stuffed header would compute
a <tt>receiptHash</tt> the issuer never produced. A COSE_Sign1 whose
unprotected header is not an empty map is refused as
<tt>cose-sign1-unprotected</tt> (<tt>MUST-T4-21</tt>, <xref target="cose-profile"/>). The
companion decoder had ignored the header. The vectors in Appendix
A are unchanged, because every one of them carries an empty one.</t>
          </li>
          <li>
            <t><xref target="iana"/> states a full <xref target="RFC6838"/> template for each of the five
media types and requests their registration in the standards tree,
and says of the claim labels that they lie in the Private Use range
of <xref target="RFC8392"/> and are not requested. -05 listed the names and said
they should be registered if the work were taken up.</t>
          </li>
          <li>
            <t>What a verifier holding no pinned issuer key does is now stated as
measured, in one wording rather than two. The verification path said
no signature comparison happened at all; the finding-code table said
the objects were checked against the keys they carry. Measurement
settled the two in opposite directions, so both were rewritten
rather than reconciled to either: a receipt or checkpoint signature
is checked against the key its own object carries, which is why a
broken signature is still named while two issuers cannot be told
apart, and a presented Trade Manifest with no pinned publisher key
is not checked at all. Neither statement is a new requirement; both
describe what <xref target="verification"/> already did. Sweeping the rest of the
table the same way found one more row describing one branch of three:
unauthenticated-extract is reported for an extract whose signature
verifies under no pinned rail key, for one that does not, and for a
pinned rail key with no extract presented at all, where -05 named
only the unsigned case and sent the pinned case to
<tt>extract-key-mismatch</tt>, which is where a presented extract that fails
under a pin goes and the only one of the three that lands there.</t>
          </li>
          <li>
            <t>Two more rows say what a pinned issuer key does to a checkpoint. A
checkpoint that does not verify under the pin, whether because it was
signed by another key or because its bytes were altered, is
<tt>issuer-key-mismatch</tt> and leaves its window uncovered; it never
reaches the totals comparison, so the signature branch of
<tt>checkpoint-total-mismatch</tt> belongs to the unpinned path. The pin
table in <xref target="issuer-root"/> described only the receipt outcome for that
cell, because a checkpoint has no chain walk to be named in. The
companion also carried an operator-facing message asserting that an
unpinned manifest's signature proved internal consistency, which the
same measurement shows it never checks; the message now says so, red
before green.</t>
          </li>
          <li>
            <t><xref target="presentation"/> defines the carried key those statements turn on.
Every presented receipt, checkpoint, Trade Manifest and Decision
Token carries the signer's SubjectPublicKeyInfo PEM beside its
signed octets, and <xref target="issuer-root"/> has named a warning for that key
since -05 without any revision saying where the key came from: -05
defined such a member only for the Rail Extract. The state the
unpinned cell
names, presented-unattested, is likewise defined in the terminology
rather than used once.</t>
          </li>
          <li>
            <t>A Trade Manifest refused by a stated publisher pin no longer founds a
charge. Its body was still supplying the terms comparison of
<tt>MUST-T8-9</tt> and the acceptance-criteria hash behind <tt>delivery-mismatch</tt>,
so a manifest anyone could mint, presented beside an honest receipt,
produced two hard findings against the payee while the same report
refused the document as <tt>manifest-key-mismatch</tt>. That is the shape this
profile closes everywhere else: evidence nothing stands behind must not
manufacture a negative result. The requirement says so where the charge
is defined, and the companion stops reading the body at the refusal,
measured red before green.</t>
          </li>
          <li>
            <t>Six more finding-code rows were swept the same way as the three above
and named the branch they were missing: the refused chain head under
<tt>checkpoint-head-mismatch</tt>, cover reported on presentation rather than
on attribution, the payee branch of the terms comparison, the four
fields <tt>extract-settlement-mismatch</tt> actually compares, the unpinned
half of <tt>unstated-audit-window</tt>, and what
<tt>witness-inclusion-not-exercised</tt> does and does not say about
verification. Two operator-facing messages stopped reporting states the
same report contradicted: a reconciliation that had not closed and a
witness attestation nothing had verified.</t>
          </li>
          <li>
            <t><xref target="impl-status"/> names what this revision adds as not yet in a
published package, on the same terms -05 used for its own
additions, carries the suite size measured at the commit it
describes, and records the conditions of the outside vector run and
of the regeneration of a vector from this text alone.</t>
          </li>
        </ul>
      </section>
      <section anchor="changes-04">
        <name>Changes from -04</name>
        <t>All but the last three changes in -05 answered a
first-failure list filed against the posted -04 by an independent
reader who ran the Appendix A vectors against the exact archive
bytes before reading the text: eight points where an implementation
could no longer be built from the text alone, one question, and
three mechanical defects. The last three answered a counter-reading
of -05, made from the text alone before it was posted, and a
reply on the DISPATCH list. The
repairs landed red-then-green in the companion implementation before
the sentences below were written, and the shapes in the text are
taken from what the implementation measurably does.</t>
        <ul spacing="normal">
          <li>
            <t>The transparency receipt path stopped promising <xref target="RFC9942"/>
mechanics it did not perform. <xref target="witness"/> now names two tiers: the
witness receipt (a co-signature over the statement hash, and
nothing more) and log membership (candidate Signed Statement bytes
plus an inclusion proof, verified by RFC 9942 Section 5.2.1
mechanics against a witness-signed tree head, with exact
receipt-matching stated as normative). Where tier 2's inputs are
absent, the report says the tier was not exercised
(<tt>MUST-T11-18</tt>, <tt>MUST-T11-19</tt>).</t>
          </li>
          <li>
            <t>Key resolution in step 4 collapsed to one rule - membership in the
attested set follows verification under the pinned root - read out
cell by cell in a table, each cell a named condition plus a
membership decision, never a silent removal. The carried key is
not an identity source: swapping it on an honestly signed object
is <tt>carried-key-mismatch</tt>, a warning, and cannot move the object
out of the attested set (<xref target="issuer-root"/>).</t>
          </li>
          <li>
            <t>The Rail Extract body has one normative shape. Table 8's member
names bind the rail; the sentence that said the names were the
rail's to define is withdrawn; the full signed body - members,
types in JSON terms, and the signature representation - is stated
in <xref target="rail-extract"/>.</t>
          </li>
          <li>
            <t>"Issuer order" is defined as the order induced by the
<tt>prevReceiptHash</tt> chain; presentation order carries no weight, and
<tt>chainHeadHash</tt> binds to the last link of the chain in the window.
The window-coverage check is stated as fail-closed, zero
checkpoints and the open epoch included. The claim that no other
step fed another is withdrawn for the maintained dependency list.</t>
          </li>
          <li>
            <t>The window boundary stopped manufacturing accusations out of two
honest clocks: membership follows the ref binding first, and an
unmatched item within the extract-declared <tt>clockSkewMs</tt> of the
edge is <tt>boundary-deferred</tt>: a closing-edge item resolves against
the following window's extract, an opening-edge item only against
a receipt in the presented bag (<tt>MUST-T10-17</tt>).</t>
          </li>
          <li>
            <t>An appended countersignature can no longer fail an honest audit.
Attribution gates evidentiary weight; an unattributable
countersignature is discarded with a warning, the pinned
expectation stays open, and the verdict on the issuer receipt
does not move (<xref target="countersign"/>).</t>
          </li>
          <li>
            <t>The counterparty triangle is closable and honestly scoped: an
optional manifest <tt>payee</tt>, an optional settlement-record
<tt>beneficiary</tt>, and a <tt>counterparty-unbound</tt> scope record when
neither is present.</t>
          </li>
          <li>
            <t>The delivery claim shrank to its evidence and the evidence grew:
an optional <tt>deliveredHash</tt> on the countersignature makes the
acceptance comparison signed-to-signed (<tt>MAY-T8-11</tt>), and the
Introduction conditions "what bytes were delivered?" on that
evidence being present.</t>
          </li>
          <li>
            <t>"Allowed by policy" is stated as the Receipt Issuer's signed
assertion, with the trust boundary named: the audit does not
independently verify the PDP's allow, and a receipt-to-token
binding is a possible extension, not -05.</t>
          </li>
          <li>
            <t>Mechanical: the hash-claim grammar (64 lowercase hex) moved into
the signers and validators, named per claim, and the Appendix A
receipt vector - which violated Table 3 in the posted -04 - is
regenerated with a computed digest. <tt>MAY-T8-9</tt> is renumbered
<tt>MAY-T8-10</tt>; the number collided with <tt>MUST-T8-9</tt> and the
requirement text did not change. The lone-surrogate escape
permission contradicted <xref target="RFC8785"/> Section 3.2.2.2 and is
removed: producers refuse by name, verifiers report rather than
crash (<xref target="canonical-json"/>).</t>
          </li>
          <li>
            <t>The extract's time fields are refused at the shape gate when they
are not integers, the way the tables already named them: a
counter-reading found that <tt>1.5</tt> and <tt>NaN</tt> passed a <tt>number</tt> check
and were signed. <tt>windowStartMs</tt>, <tt>windowEndMs</tt>, each record's
<tt>timestampMs</tt>, and <tt>clockSkewMs</tt> are now refused by name unless
they are integers of magnitude at most 2^53 - 1, and <tt>clockSkewMs</tt>
unless it is also non-negative; the canonical-encoding refusal for
non-finite numbers still guards members the rail adds.</t>
          </li>
          <li>
            <t>An opening-edge deferral is closed only by a receipt in the
presented bag. The implementation had let a following window's
extract harden it into <tt>settlement-without-receipt</tt>; the text's
reason for the deferral, ref binding, never said so, and the seven
edge cases are locked as tests.</t>
          </li>
          <li>
            <t>The abstract no longer says that payment rails and mandate
protocols lack a fail-closed policy check; a mandate protocol has
one, and returns signed receipts. It names the missing piece as
what a party that is neither payer nor rail operator can retrieve
and reconcile against an authenticated rail extract. A reply on
the DISPATCH list narrowed the claim, and the narrowing is right.</t>
          </li>
        </ul>
      </section>
      <section anchor="changes-03">
        <name>Changes from -03</name>
        <t>-04 had one subject: -03 could not be implemented from its own
text. Eighteen decision points were read out of it by someone working
from the words alone, and eight of them had two defensible answers.
Nothing here adds a capability. Everything here closes a place where
two conforming implementations would produce different bytes or reach
different verdicts.</t>
        <t>Five of those eight were the same defect wearing different clothes.
-03 hashed or signed a JSON document in four places and called the
encoding "canonical" without ever defining it, and named the digest for
some hash-valued fields and not others. <xref target="canonical-json"/> defines the
encoding by reference to <xref target="RFC8785"/>, and <xref target="hash-inputs"/> states, for
every hash-valued field, exactly which octets go in. The heaviest of
those was <tt>requestHash</tt>: -03 called it "the six-field hash" in the same
sentence that named SHA-256 for <tt>policyHash</tt>, and a reader was entitled
to conclude it was not a digest at all.</t>
        <t><tt>MUST-T8-9</tt> changes in a way a diff will show, and the change is
deliberate. -03 said an unpinned departure from manifest terms fails
the audit, full stop. An implementation showed what that permits: a
receipt signed by any key, carrying the right manifest hash and a wrong
amount, makes a verifier report a breach that never happened against a
payment reference the forger picks. The requirement now separates the
two cases and says why it differs from <tt>MUST-T4-17</tt>, which is a naming
question rather than a charge and is answered from the presented set
whether or not anything vouches for it.</t>
        <t><tt>MUST-T4-18</tt> and <tt>MUST-T4-19</tt> are new: -03 bound the encoder to
deterministic CBOR and said nothing about the decoder, neither about a
duplicate key nor about what a decoder does when an input is larger
than it is willing to read. The second fixes no numbers. A bound is
deployment policy; refusing by name rather than by running out of stack
is not.</t>
        <t><tt>MUST-T3-3</tt> and <tt>MUST-T8-2</tt> gain the boundary and the comparison rule
they were missing: whether a settlement exactly at expiry is inside the
manifest, and whether a currency may be case-folded before it is
compared. <tt>MUST-T10-1</tt> says what an audit with nothing in it reports.</t>
        <t>The acceptance-criteria hash had two readings and no way to signal
which one was used, so two implementations would have hashed the same
delivery differently. This revision defines one of them and puts the
other out of scope until something can say which is meant.</t>
        <t>The verification algorithm now names its data dependencies. -03 named
one and said nothing else fed another step, which stopped being true
once the issuer pin began deciding the attested set: the chain walk,
the reconciliation, the checkpoint comparisons and <tt>MUST-T8-9</tt> all
consume it, and the algorithm now says so, along with the two checks
that deliberately stay on the presented set. The two severities of
<tt>MUST-T8-9</tt> are now stated in the algorithm step and the finding
table as well as in the requirement, after an early draft of this
revision changed the requirement and left the step and the table
carrying the old unconditional verdict.</t>
        <t>Three encodings that could be read two ways are now stated once each:
<tt>kid</tt> is the SHA-256 of the SubjectPublicKeyInfo DER truncated to its
first 8 bytes, in that order; "the signed COSE_Sign1 octets" are the
untagged array, never tag 18; and the six-field request document is
given as an exact JSON shape, member by member, rather than as a list
of names. The hash-input table now covers <tt>acceptanceCriteriaHash</tt>
and says whose digest <tt>ap2MandateHash</tt> is. The Decision Token gains
the same expiry boundary <tt>MUST-T3-3</tt> states for the manifest.</t>
        <t>Appendix A no longer defers to the tests of an
implementation; a specification that points at code cannot be
implemented from its own text, which is the property this revision is
trying to restore.</t>
        <t>One change is metadata rather than text: the submission stream in the
document's header changes from independent to IETF. The Note to
Readers has named an eventual Standards Track intent since -00, and
<xref target="iana"/> asks for Standards Tree registration; neither belongs on the
Independent Stream. The rendered pages are unchanged by it.</t>
        <t>What has not changed: <tt>MUST-T12-4</tt> remains specified and not executed,
and this document still has no independent implementation written from
its text alone. The point of this revision is to make that possible,
not to claim it happened.</t>
      </section>
      <section anchor="changes-02">
        <name>Changes from -02</name>
        <t>-03 had two subjects. The first is that -02 stated a rule
for signed objects and left the implementation and the verification
algorithm without a counterpart for every object the rule applied to.
The second is T12, which no reader reported and which is not about an
adversary at all.</t>
        <t>-02 Section 6.2 already required a verifier to obtain the public key from an
authenticated channel (a preconfigured issuer set, a directory, or a
transparency statement) and to reject a message whose <tt>kid</tt> does not
match that key (<tt>MUST-T4-8</tt>). That rule was general. What -02 did not
carry was the verification algorithm that applies it to each signed
object, the separate root inputs a verifier supplies out of band, and
the error semantics that name a missing, unreadable, or mismatched
pin. A companion implementation that followed the algorithm it had,
rather than that prose, still checked a Spend Receipt, an epoch
checkpoint, a Decision Token and a transparency inclusion receipt
against the key travelling inside them. A receipt like that silences
the <tt>settlement-without-receipt</tt> finding for the settlement it names.
The completeness property is then computed over evidence that answers
to nobody. <xref target="trust-roots"/> states the missing algorithm and the
error semantics, and the verification algorithm now applies them.</t>
        <t>A reader raised the inclusion-receipt half of this against the posted
-02 after checking the archived text against the implementation
commit. Following it into the code turned up the other three, along
with two conditions that were not about keys at all.</t>
        <t>The first is that reporting a mismatch is not enough. An
implementation that names a foreign key and then still lets the
receipt match its settlement has described the attack in its output
while concluding that the books balance. <tt>MUST-T4-10</tt> now requires
the settlement to stay reported.</t>
        <t>The second is that an expectation which only fires when the evidence
is present can be cancelled by deleting the evidence. A pinned payee
key with no countersignature to check was silence, so removing a
countersignature removed the question with it. <tt>MUST-T4-14</tt> closes
that, and <tt>MUST-T11-17</tt> closes the same shape in the witness: an
inclusion receipt with its body stripped off can no longer bury a
withholding, while still not being allowed to accuse anyone.</t>
        <t>T12 is new and is not about an adversary. An issuer that settles,
appends the receipt in memory and then writes its state will, when
that write fails, leave the rail holding a settlement whose receipt
exists nowhere durable. Restarted, it reports
<tt>settlement-without-receipt</tt> against itself. The condition this
document exists to make detectable was reachable through the
implementation's own ordering, and no requirement in -02 said
otherwise.</t>
        <t>The same first subject carries five requirements this section has not
named so far, all of them stated in <xref target="trust-roots"/>. A pinned key that
cannot be decoded <bcp14>MUST NOT</bcp14> fall back to the keys the objects carry
(<tt>MUST-T4-11</tt>). An issuer root may comprise more than one key, and a
verifier must accept one that does, so a rotation inside the audited
window does not force it to choose between findings against honest
receipts and abandoning the pin (<tt>MUST-T4-12</tt>); the same set-of-keys
acceptance applies to a publisher, witness, or rail pin. The same out-of-band rule reaches the payee
countersignature (<tt>MUST-T4-13</tt>), the transparency witness
(<tt>MUST-T11-15</tt> and <tt>MUST-T11-16</tt>), the Decision Token, whose
consumer issued it and therefore already holds the key to check it
with (<tt>MUST-T6-6</tt>), and a presented Trade Manifest (<tt>MUST-T4-15</tt>).</t>
        <t>Two requirements belong to neither subject. <tt>MUST-T7-5</tt> and
<tt>MUST-T7-6</tt> come from measuring the protection a stored signing key
actually has instead of deriving it from the platform. A mount that
ignores filesystem permissions accepts the call and protects nothing,
and a writable directory or a symbolic link anywhere on the path makes
the file permission moot. They are stated because the implementation
reported protection it did not have.</t>
        <t>Two things are stated here that -02 got right and -03 kept
unchanged: the extract rule itself, and the treatment of a pinned key
the verifier cannot decode. What changed is their reach, and the
change is not backward compatible. Where a verifier pinned the rail
key, supplied no issuer key, and was presented with receipts or
checkpoints, -02 reported the guarantee as unconditional and -03
reports it as conditional. Nothing about the evidence
changed; what changed is that the guarantee now says which questions
were never asked. An audit presented with neither is unaffected, for
the reason given in <xref target="issuer-root"/>.</t>
      </section>
      <section anchor="changes">
        <name>Changes from -01</name>
        <t>-02 had one subject: the checkpoint, which carries the T11
guarantee against suppression and rollback, was not wired into
anything that could discharge it.</t>
        <t>A reader of -01 set out the gap and a second reader confirmed it
independently. Four things were wrong at once, and they were the same
thing seen from four sides. The SCITT anchoring section profiled the
Spend Receipt and not the checkpoint, so <tt>SHOULD-T11-5</tt> asked for
checkpoints to be registered without saying in what form
(<tt>MUST-T11-14</tt> now says). None of the steps of the verification
algorithm read a witness receipt, so a deployment could follow
<tt>SHOULD-T11-5</tt> to the letter and still have a verifier that never
consulted the witness (steps 15 and 16 now do). <tt>MUST-T11-3</tt>,
equivocation, could not fire at all: the only checkpoints compared
were the presented ones, and <tt>MUST-T11-8</tt> requires those to be
consecutive, so no two of them can share an epoch. A second copy is
found in a witness, and nothing brought one in. And the checkpoint
binds a per-currency total for a window while the privacy section
counted only receipt fields, so a window total could be published, or
withheld, with no stated rule either way.</t>
        <t>The repairs are <tt>MUST-T11-10</tt> through <tt>MUST-T11-14</tt>. The transparency
receipt is a new optional input; supplying none leaves the verifier
behaving exactly as in -01, which is deliberate, because the point of
the witness is to add a claim that could not be made before, not to
withdraw one that could.</t>
        <t>Two decisions inside those repairs are worth stating on their own,
because a reader might reasonably have expected the other choice.</t>
        <ul spacing="normal">
          <li>
            <t>A recorded checkpoint the presented chain omits gets its own
identifier, <tt>checkpoint-withheld</tt>, rather than being folded into
<tt>window-coverage</tt> (<tt>MUST-T11-11</tt>). The reporter asked which way it
should go. Coverage says the record shown is incomplete; a withheld
checkpoint says the party under audit is holding a record it did
not show. An operator who sees one identifier for both cannot tell
an incomplete record from a concealed one, which is the distinction
the whole threat is about.</t>
          </li>
          <li>
            <t>A checkpoint with no receipt in a supplied witness is a warning
rather than a failure. A witness may be configured after
checkpoints have already been issued, and an operator's own gap in
anchoring is not evidence that anything was concealed. The
asymmetry is deliberate: what the witness holds and the chain does
not is a finding, what the chain holds and the witness does not is
a warning.</t>
          </li>
        </ul>
        <t>One change is not a repair of -01 but of the first attempt at this
revision, and it is recorded because the failure is instructive.
Signed totals were first made redactable through a field carried
alongside the checkpoint rather than inside the COSE payload. Anything
outside the signature is chosen by whoever presents the object, which
here is the party under audit, so a checkpoint whose signed totals
disagreed with its receipts could be re-presented as redacted and the
mismatch went unreported. Redaction is now inside the signature and a
redaction asserted anywhere else <bcp14>MUST</bcp14> be ignored (<tt>MUST-T11-12</tt>,
<tt>MUST-T11-13</tt>). This was the same shape as the bypass -01 was written
to close: a check that a party under audit could switch off.</t>
        <t>Reversal, refund, partial settlement, and the escrow role remain out
of scope and are still expected later, with no date. -01 said the same,
and no revision since has improved on it.</t>
        <t>The reporters are named in the Acknowledgments.</t>
      </section>
    </section>
    <section anchor="evolution">
      <name>Evolution and Future Work (Informative)</name>
      <t>This section is a direction, not a commitment. The structures below
are reserved in name only. Normative wire formats, tests, and
threat-model <bcp14>MUST</bcp14> lines for them belong in later revisions (-08 or later), written with the same discipline as this -07.</t>
      <section anchor="re-attestation-profile">
        <name>Re-attestation profile</name>
        <t>Algorithms retire. A Spend Receipt or checkpoint signed under
Ed25519 today may need a later verifier that no longer accepts
<tt>-19</tt>. A companion seed <xref target="REATTEST"/> sketches re-attestation:
register the original COSE bytes as a SCITT Signed Statement and
have a current algorithm countersign or receipt them. The
principle is that structures outlive ciphers. The first concrete
example is the profile's own move from generic EdDSA (<tt>-8</tt>) to
Ed25519 (<tt>-19</tt>) in <xref target="RFC9864"/>.</t>
      </section>
      <section anchor="streaming-reconciliation">
        <name>Streaming reconciliation</name>
        <t>Epoch checkpoints in this document are batch windows. A later
revision may define a continuous, second-scale profile
<xref target="STREAMING"/> in which the same completeness relation is evaluated
as settlements arrive, without waiting for an epoch close. That
work does not change the matching rules in this document, and it
did not arrive in this revision either.</t>
      </section>
      <section anchor="generalization">
        <name>Generalization</name>
        <t>Payment is the special case that this -07 implements. The same
completeness calculus (an authenticated extract of consumed units
reconciled to signed receipts) can apply to other consumable
resources such as compute, data, or energy. This document does
not specify those profiles.</t>
      </section>
    </section>
    <section anchor="informative-notes-on-adjacent-protocols">
      <name>Informative Notes on Adjacent Protocols</name>
      <t>x402 <xref target="X402"/> uses HTTP 402 <xref target="RFC9110"/> to negotiate stablecoin
payment. AP2 <xref target="AP2"/> uses signed mandates as verifiable credentials.
Cedulon does not replace either protocol. Profiles built on HTTP Message Signatures
<xref target="RFC9421"/> authenticate bots; they are not a spend receipt.
draft-bates-atp <xref target="BATES-ATP"/> is a lineage neighbor. It does not
define rail-extract completeness.</t>
      <t>draft-vauban-x402-stark-receipts <xref target="VAUBAN"/> specifies complementary
x402 receipt-format variants that a Cedulon Spend Receipt <bcp14>MAY</bcp14> carry
as a rail proof; it does not define rail-extract completeness.
draft-schrock-ep-outcome-binding <xref target="SCHROCK"/> compares authorized
action bytes to independently observed effects; it does not define
rail-extract completeness.
draft-marques-asqav-compliance-receipts <xref target="MARQUES"/> profiles
access-control action receipts (the broader Acta family includes
<xref target="ACTA"/>); it does not define rail-extract completeness.
draft-hopley-x402-compliance-receipt <xref target="HOPLEY"/> records an
admission-time compliance decision; it does not define rail-extract
completeness.
draft-abak-agent-control-delivery-evidence <xref target="ABAK"/> states evidence
requirements for a governance control - stop, suspend, revoke -
travelling toward the component expected to constrain a runtime, and
keeps emission, receiver-side observation, enforcement outcome and
observed control effect as separate results. Its object moves the
other way from this one: Cedulon reconciles a spend that already
happened against what the rail reported, and evidences neither the
delivery of a control instruction nor its enforcement. A denied spend
leaves no portable artifact here at all - a Decision Token encodes an
allow (<xref target="decision-token"/>) - so what a Cedulon audit says about a
refusal it says through the settlement that did not appear on the
extract, which is an effect observation over a declared population and
not an acknowledgement from an enforcement point. Its bounded-population
rule and this document's <tt>MUST-T10-18</tt> and <tt>MUST-T10-19</tt> are the same
kind of bound on two different objects.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC6234">
          <front>
            <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="May" year="2011"/>
            <abstract>
              <t>Federal Information Processing Standard, FIPS</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6234"/>
          <seriesInfo name="DOI" value="10.17487/RFC6234"/>
        </reference>
        <reference anchor="RFC6838">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
          <seriesInfo name="DOI" value="10.17487/RFC6838"/>
        </reference>
        <reference anchor="RFC7493">
          <front>
            <title>The I-JSON Message Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="March" year="2015"/>
            <abstract>
              <t>I-JSON (short for "Internet JSON") is a restricted profile of JSON designed to maximize interoperability and increase confidence that software can process it successfully with predictable results.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7493"/>
          <seriesInfo name="DOI" value="10.17487/RFC7493"/>
        </reference>
        <reference anchor="RFC8032">
          <front>
            <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA). The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves. An example implementation and test vectors are provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8032"/>
          <seriesInfo name="DOI" value="10.17487/RFC8032"/>
        </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="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>
        <reference anchor="RFC8410">
          <front>
            <title>Algorithm Identifiers for Ed25519, Ed448, X25519, and X448 for Use in the Internet X.509 Public Key Infrastructure</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies algorithm identifiers and ASN.1 encoding formats for elliptic curve constructs using the curve25519 and curve448 curves. The signature algorithms covered are Ed25519 and Ed448. The key agreement algorithms covered are X25519 and X448. The encoding for public key, private key, and Edwards-curve Digital Signature Algorithm (EdDSA) structures is provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8410"/>
          <seriesInfo name="DOI" value="10.17487/RFC8410"/>
        </reference>
        <reference anchor="RFC8785">
          <front>
            <title>JSON Canonicalization Scheme (JCS)</title>
            <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
            <author fullname="B. Jordan" initials="B." surname="Jordan"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the "wire" while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</t>
              <t>This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8785"/>
          <seriesInfo name="DOI" value="10.17487/RFC8785"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC9053">
          <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="RFC9864">
          <front>
            <title>Fully-Specified Algorithms for JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="October" year="2025"/>
            <abstract>
              <t>This specification refers to cryptographic algorithm identifiers that fully specify the cryptographic operations to be performed, including any curve, key derivation function (KDF), and hash functions, as being "fully specified". It refers to cryptographic algorithm identifiers that require additional information beyond the algorithm identifier to determine the cryptographic operations to be performed as being "polymorphic". This specification creates fully-specified algorithm identifiers for registered JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE) polymorphic algorithm identifiers, enabling applications to use only fully-specified algorithm identifiers. It deprecates those polymorphic algorithm identifiers.</t>
              <t>This specification updates RFCs 7518, 8037, and 9053. It deprecates polymorphic algorithms defined by RFCs 8037 and 9053 and provides fully-specified replacements for them. It adds to the instructions to designated experts in RFCs 7518 and 9053.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9864"/>
          <seriesInfo name="DOI" value="10.17487/RFC9864"/>
        </reference>
        <reference anchor="RFC9942">
          <front>
            <title>CBOR Object Signing and Encryption (COSE) Receipts</title>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="A. Delignat-Lavaud" initials="A." surname="Delignat-Lavaud"/>
            <author fullname="C. Fournet" initials="C." surname="Fournet"/>
            <date month="June" year="2026"/>
            <abstract>
              <t>CBOR Object Signing and Encryption (COSE) Receipts prove properties of a Verifiable Data Structure (VDS) to a verifier. VDSs and associated Proof Types enable security properties, such as minimal disclosure, transparency, and non-equivocation. Transparency helps maintain trust over time and has been applied to certificates, end-to-end encrypted messaging systems, and supply chain security. This specification enables concise transparency-oriented systems by building on Concise Binary Object Representation (CBOR) and COSE. The extensibility of the approach is demonstrated by providing CBOR encodings for Merkle inclusion and consistency proofs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9942"/>
          <seriesInfo name="DOI" value="10.17487/RFC9942"/>
        </reference>
        <reference anchor="RFC9943">
          <front>
            <title>An Architecture for Trustworthy and Transparent Digital Supply Chains</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="A. Delignat-Lavaud" initials="A." surname="Delignat-Lavaud"/>
            <author fullname="C. Fournet" initials="C." surname="Fournet"/>
            <author fullname="Y. Deshpande" initials="Y." surname="Deshpande"/>
            <author fullname="S. Lasker" initials="S." surname="Lasker"/>
            <date month="June" year="2026"/>
            <abstract>
              <t>Traceability in supply chains is a growing security concern. While Verifiable Data Structures (VDSs) have addressed specific issues, such as equivocation over digital certificates, they lack a universal architecture for all supply chains. This document defines such an architecture for single-issuer signed statement transparency. It ensures extensibility and interoperability between different transparency services as well as compliance with various auditing procedures and regulatory requirements.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9943"/>
          <seriesInfo name="DOI" value="10.17487/RFC9943"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="RFC9421">
          <front>
            <title>HTTP Message Signatures</title>
            <author fullname="A. Backman" initials="A." role="editor" surname="Backman"/>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="M. Sporny" initials="M." surname="Sporny"/>
            <date month="February" year="2024"/>
            <abstract>
              <t>This document describes a mechanism for creating, encoding, and verifying digital signatures or message authentication codes over components of an HTTP message. This mechanism supports use cases where the full HTTP message may not be known to the signer and where the message may be transformed (e.g., by intermediaries) before reaching the verifier. This document also describes a means for requesting that a signature be applied to a subsequent HTTP message in an ongoing HTTP exchange.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9421"/>
          <seriesInfo name="DOI" value="10.17487/RFC9421"/>
        </reference>
        <reference anchor="BATES-ATP" target="https://datatracker.ietf.org/doc/html/draft-bates-atp">
          <front>
            <title>Agent Transaction Protocol (ATP)</title>
            <author initials="D." surname="Bates" fullname="David Asher Bates">
              <organization/>
            </author>
            <date year="2026" month="May"/>
          </front>
        </reference>
        <reference anchor="X402" target="https://www.x402.org/">
          <front>
            <title>x402: An Open Standard for Internet-Native Payments</title>
            <author>
              <organization>x402 Foundation</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="AP2" target="https://ap2-protocol.org/ap2/specification/">
          <front>
            <title>Agent Payments Protocol (AP2)</title>
            <author>
              <organization>Google Agentic Commerce</organization>
            </author>
            <date year="2025" month="September"/>
          </front>
        </reference>
        <reference anchor="GRIGG" target="https://iang.org/papers/triple_entry.html">
          <front>
            <title>Triple Entry Accounting</title>
            <author initials="I." surname="Grigg" fullname="Ian Grigg">
              <organization/>
            </author>
            <date year="2005"/>
          </front>
        </reference>
        <reference anchor="PACIOLI">
          <front>
            <title>Summa de arithmetica, geometria, proportioni et proportionalita</title>
            <author initials="L." surname="Pacioli" fullname="Luca Pacioli">
              <organization/>
            </author>
            <date year="1494"/>
          </front>
        </reference>
        <reference anchor="VAUBAN" target="https://datatracker.ietf.org/doc/draft-vauban-x402-stark-receipts/">
          <front>
            <title>x402 STARK Receipt Format Extension</title>
            <author>
              <organization>Vauban Research</organization>
            </author>
            <date year="2026" month="May"/>
          </front>
        </reference>
        <reference anchor="SCHROCK" target="https://datatracker.ietf.org/doc/draft-schrock-ep-outcome-binding/">
          <front>
            <title>Outcome Binding for Authorized Actions and Independently Observed Effects</title>
            <author initials="I." surname="Schrock" fullname="Iman Schrock">
              <organization/>
            </author>
            <date year="2026" month="July"/>
          </front>
        </reference>
        <reference anchor="MARQUES" target="https://datatracker.ietf.org/doc/draft-marques-asqav-compliance-receipts/">
          <front>
            <title>Compliance Profile of Signed Action Receipts for AI Agents</title>
            <author initials="J. A." surname="Gomes Marques" fullname="Joao Andre Gomes Marques">
              <organization/>
            </author>
            <date year="2026" month="July"/>
          </front>
        </reference>
        <reference anchor="ACTA" target="https://datatracker.ietf.org/doc/draft-farley-acta-signed-receipts/">
          <front>
            <title>Signed Decision Receipts for Machine-to-Machine Access Control</title>
            <author initials="T." surname="Farley" fullname="Tom Farley">
              <organization/>
            </author>
            <date year="2026" month="June"/>
          </front>
        </reference>
        <reference anchor="HOPLEY" target="https://datatracker.ietf.org/doc/draft-hopley-x402-compliance-receipt/">
          <front>
            <title>Categorical Compliance Screening Receipt Format for Agentic-Payment Flows</title>
            <author initials="C." surname="Hopley" fullname="Christopher Hopley">
              <organization/>
            </author>
            <date year="2026" month="May"/>
          </front>
        </reference>
        <reference anchor="ABAK" target="https://datatracker.ietf.org/doc/draft-abak-agent-control-delivery-evidence/">
          <front>
            <title>Evidence Requirements for Agent Control Delivery and Outcome Reconciliation</title>
            <author initials="A. T." surname="Abak" fullname="Ali Toygar Abak">
              <organization/>
            </author>
            <date year="2026" month="August"/>
          </front>
        </reference>
        <reference anchor="CPB" target="https://datatracker.ietf.org/doc/draft-mih-sokolov-scitt-payload-binding/">
          <front>
            <title>Canonical Payload Binding: A Signed Statement Construction Profile</title>
            <author initials="S." surname="Mih" fullname="Steven Mih">
              <organization/>
            </author>
            <author initials="A." surname="Sokolov" fullname="Anton Sokolov">
              <organization/>
            </author>
            <date year="2026" month="August"/>
          </front>
        </reference>
        <reference anchor="REATTEST" target="https://github.com/dogrucanemek-alt/cedulon/blob/e681e24d1b29912d8c190259c2ea9f4f9538c29d/spec/draft-dogru-cedulon-reattestation-00.md">
          <front>
            <title>Cedulon Re-Attestation: Carrying Spend Evidence Across Algorithm Retirement</title>
            <author initials="E. C." surname="Dogru" fullname="Emek Can Dogru">
              <organization/>
            </author>
            <date year="2026" month="August"/>
          </front>
        </reference>
        <reference anchor="STREAMING" target="https://github.com/dogrucanemek-alt/cedulon/blob/e681e24d1b29912d8c190259c2ea9f4f9538c29d/spec/draft-dogru-cedulon-streaming-00.md">
          <front>
            <title>Cedulon Streaming Reconciliation: Continuous Completeness for Agent Spend</title>
            <author initials="E. C." surname="Dogru" fullname="Emek Can Dogru">
              <organization/>
            </author>
            <date year="2026" month="August"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 3394?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Vernon Wharff set out the defect -02 repairs: that the object
carrying the T11 guarantee was neither profiled for registration nor
read during verification, and that the equivocation requirement could
not fire against a presented chain. He also asked the question that
decided the shape of that repair, namely whether a recorded checkpoint
absent from the chain deserves its own identifier or belongs under
window coverage. Iman Schrock confirmed the finding independently and
drew its boundary, keeping it separate from the extract-binding work
already closed in -01.</t>
      <t>Iman Schrock raised the first of -03's two subjects, against
the posted -02: whether the profile should accept a pinned witness key
and report an absent or mismatched pin explicitly. It should, and the
same question turned out to be unanswered for three further objects.</t>
      <t>Iman Schrock and Pablo Play ran the -00 implementation against the
pinned commit and reported the defects that produced -01. Iman Schrock
found the two extract-binding defects, proposed the repair -01 adopts,
later reran the posted -01 from a clean clone against its own pinned
commit, and is also the author of <xref target="SCHROCK"/>, cited here as adjacent
work. He is the reader whose independent implementation of the Signed
Statement identity is noted in <xref target="impl-status"/>, and he asked for it to
be kept separate from any cross-implementation claim about Cedulon;
that separation is his and is recorded here as he stated it. Pablo Play found that a repeated reference hid the unaccounted
amount, filed a written reproduction, and re-ran that reproduction
against the pinned commit to confirm the figures quoted from it. He
later took up a standing invitation to break the implementation and
ran the suite on a platform its author had not, which is how the three
defects behind 0.3.1 were found and how a fourth came to light while
they were being repaired.</t>
      <t>Nicholas Templeman ran the suite from a clean clone and reported his
figures. He also corrected two claims in a row written about that run:
the install it named was not the strict from-lockfile form, and his
platform was the same operating system family as the earlier ones, so
the run corroborates the numbers and adds no cross-environment
evidence. He
classified his own run honestly as a repetition of the author's checks
rather than an independent implementation. Walter Hawkins did not run it; he read the
reported figures and pressed for the run to be stated precisely enough
to be repeatable, which is why the conditions and not only the totals
appear in <xref target="impl-status"/>.</t>
      <t>Tiago Pinto ran the -04 Appendix A vectors against the exact
datatracker archive bytes in an independent toolchain before reading
the text, confirmed both signatures, the SPKI-derived <tt>kid</tt>, and
deterministic re-encoding byte for byte, and then filed the
first-failure list that -05 answers: eight points where an
independent implementation could no longer be built from the text,
one question, and three mechanical defects. The two-tier witness
split, the single key-resolution rule, the normative extract shape,
the issuer-order definition, the boundary allowance, the
countersignature attribution rule, the counterparty bindings, and the
delivery binding follow the failure points he named. Iman Schrock
additionally reran the frozen -04 claims against the archive and the
package registry, and corrected this document's description of what
its continuous integration measures; that correction is recorded in
<xref target="impl-status"/> where it landed.</t>
      <t>Reading the posted -05 against those dispositions, Tiago Pinto found
that the repair of the key-resolution failure had left its own old
description standing: the finding-code table still said that objects
held under no pin were checked against the keys they carry, while the
verification path said no signature comparison happened at all, and
the carried key both sentences turn on had no defined source anywhere
in this document. Measuring the two sentences against the companion
implementation settled them in opposite directions, which is why
neither was simply deleted, and <xref target="presentation"/> now defines the
member they depend on. He also asked for the state named in the
unpinned cell to be defined rather than used once, and consented to
his -04 run being recorded as the first run of these vectors outside
the companion codebase and not as an independent implementation.</t>
      <t>The two rules -06 adds came from reading rather than from a reader.
Steven Mih and Anton Sokolov published the canonicalization vectors
of <xref target="CPB"/>; running them through this profile's own <xref target="RFC8785"/>
encoder is what put the I-JSON precondition on the page as a rule
this document had left unstated, and the corrected reading of one of
those vectors was reported to the SCITT list before <tt>MUST-T4-20</tt> was
written. <tt>MUST-T4-21</tt> was found in the companion decoder while
measuring, for that reading, what this profile's digests cover.</t>
      <t>None of them reviewed this text, and any error in it is the author's.</t>
      <t>Field survey notes and the informative threat-model narrative in the
companion repository helped shape the requirement identifiers used
here. Those identifiers are defined in <xref target="security"/>.</t>
    </section>
    <section numbered="false" anchor="vectors">
      <name>Appendix A. Test Vectors</name>
      <t>These vectors use RFC 8032 Ed25519 secret scalar #1 (fixture only;
never a production key). Hex is lowercase.</t>
      <t>-03 said these vectors "<bcp14>MUST</bcp14> match the locked tests
in the companion implementation", which pointed the reader at code
rather than at this document. A specification that defers to an
implementation cannot be implemented from its own text, and that is the
property this document is trying to have. The vectors below are
normative on their own terms: an implementation matches them or it does
not, and where an implementation and a vector disagree, one of the two
is wrong and this document does not say in advance which.</t>
      <t>Receipt COSE_Sign1:</t>
      <t>Claims: payer=<tt>payer-1</tt>, payee=<tt>payee-1</tt>, amount=<tt>1</tt>,
currency=<tt>USD</tt>, policyHash=
<tt>fca4142da8ad241d24928227893894f4b5365efb746a4529fe9df0119d10da2c</tt>
(the SHA-256 of the UTF-8 octets of the ASCII string
<tt>cedulon/appendix-policy</tt>, standing in for a canonical policy
document; the field's input rule is in <xref target="hash-inputs"/>, and the
-04's vector carried <tt>aa</tt> here, violating its own
Table 3 - see <xref target="changes-04"/>), manifestHash=null,
noManifest=true, x402PaymentRef=null, timestampMs=1700000000000,
nonce=<tt>n100000000000000</tt>, prevReceiptHash=null, outcome=<tt>aborted</tt>.</t>
      <t>COSE_Sign1 hex (whitespace ignored):</t>
      <artwork><![CDATA[
845830a301320378206170706c69636174696f6e2f636564756c6f6e2d
726563656970742b63626f72044806e3fd8fda29bb60a058bbac3a0001
11706770617965722d313a000111716770617965652d313a0001117261
313a00011173635553443a000111747840666361343134326461386164
323431643234393238323237383933383934663462353336356566623734
366134353239666539646630313139643130646132633a00011175f63a
00011176f53a00011177f63a000111781b0000018bcfe568003a000111
79706e3130303030303030303030303030303a0001117af63a0001117b
6761626f7274656458400a24269b7521d409ebe462db297c3aa25b23d6
c697aa4a864b1b3a3edb5b30537b34b048a797073eaee41af371effb68
ecbb47b80e62d7e775e8cae5b066c30c
]]></artwork>
      <t>Manifest COSE_Sign1:</t>
      <t>Body: description=<tt>fixture-goods</tt>, amount=<tt>1</tt>, currency=<tt>USD</tt>,
acceptanceCriteriaHash=
<tt>e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855</tt>
(the SHA-256 of an empty delivery; the field is a digest of the exact
delivery bytes, so the vector carries a well-formed one),
cancelCondition=<tt>none</tt>,
expiresAtMs=1700000000000, ap2MandateHash=null.</t>
      <t>COSE_Sign1 hex (whitespace ignored):</t>
      <artwork><![CDATA[
845831a301320378216170706c69636174696f6e2f636564756c6f6e2d
6d616e69666573742b63626f72044806e3fd8fda29bb60a05889a73a00
0112386d666978747572652d676f6f64733a0001123961313a0001123a
635553443a0001123b7840653362306334343239386663316331343961
666266346338393936666239323432376165343165343634396239333
463613439353939316237383532623835353a0001123c646e6f6e653a
0001123d1b0000018bcfe568003a0001123ef65840599b5b1cc7bfd3fe
8b8e65cdd876652aeca13660e6bdccc93afe12188a295b20fdfe8e6e48
ae447dc74ccb0f13383f0f43f0f67f288d61a6395e95e2038e320d
]]></artwork>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9y963bcWHIu+B9PgVH9KEknkyVSUpVEnuMzbJW6W3bX5Uhq
t728PCaYCZKwkkAaQIqipZpnmWeZJ5uILy47NhKU1O0182Pay90UCWzsS+y4
xxfL5bIYm3FTH5f3XtTr3aZrj8vTtjzdrZux/FN1W/flRdeXp5d1Oy7Hbokf
yhfd9XXdr+p7RXV+3tfvj0t9uVh3q7a6puHWfXUxLtfdZb9bruSPy0c/FOtq
pD8ePTr6fvno+fLRUbGiX1x2/e1x2bQXXTHszq+bYWi6drzd0pOvXr79fdFs
++Ny7HfDePTo0XN6qerr6rgc6lVx0/XvLvtutz0u3tW39K/1cVGWS58P/1zx
nPFTX6/qZis/b7tNs7rFj29evHr7thjGql3/W0Vv1fhaXQzXVT/+23/surEe
jsuLajPUxbaRD4zdyv63adf2gaHrx76+GOQft9f+84p3rB2HotqNV12PMej/
S1o1Df3yoHxxUP7Im4Vfyha+vK7flS+qNvyh6y+Py398+fr0n8q3L//h51/+
9Mvfvyr/9OqnV29f/li+efX6H16+fYUHV92uHXlX3+562hj8rr6ums1xWR/g
VP53PZUDmlrRdv11NTbva57Y69+/ODo8fK4/fn/0+In9+OzxM/3xhyfPH+uP
zx49PrIfD3+wZ589fu6/fXL4yH784dlT+/H5E/vE80dPj9KPNu7zZ9/bYM+f
PzlKP9IDTCv5jH8Ijxz69+iXh/zj707fvnyzPH376zF2wkheqPltX7VDtRqJ
6Mpf+45OtNuU9+nhB/fwdDoy/s9SjuzHg/J3RLqD/tbO7MfqfbMuT4crujjp
75Hqn8oMqv6yHo/Lq3HcDsfffUdPVGNfrd7V/UFTjxcHdNLf0WX67mq83nwn
l+mcx1tW45ZG+Kcnj47ytXzg3/Dd/WVbt+UbJuaqX+P2vmrHum/rcfkzdqz8
tboFMc4vDzTGo5W/JyKiiTW4R3EVs0u4ubk54NcwdXri9Nejud22j8et/vXo
jq3GXP7QdZebWnhQs3Lmk8/pKfGT2WlV26PlVj+FqdEvvhu29aq5aFZYHE/2
D69f/eEP+XTf9s2WPvuS71F5usKNatrLz9DEq4PyD31zeTmhiVd0hdPvbcZ3
EEJTtZeY5rba1v3w3YhZ/FvNszhgYqC3fj198eqXP73Kp/tmd31dleu6rPpm
vLquaauqRXlZd/Rj39CPtAlbYk+04Kasx/DPatOM1WeW9acDOrRVQ/xysrA/
7VZV9idZ2+GT50/on/94+uffnf68T6Tlm7enr/+hfC28mIiML3L58sNYt8z3
P0MI/1jtzmkvX9dDXfWrq//q1ZJb9R6DLnlmSxIB/bulSomB6eLNiz++/uXF
P+Sr+GU3EtOsy98R5yeKEAmJCTf/WdPtBysZSrqBdPXWNd1HFhCb2/KX86Hu
39MjLy8u6tVdF9Bo6c3qqu9W76bUdE1bEP8Ud+CHv2UHBhlsWW+XnaxseS4r
4x346fT1//rzyzf5DtAd3G6IVFc1X+OLhu5Jd1G+aS5bX78d8CDb80ru7+eW
/PcH5SndIPr+UP5U9f+x2+Ouf99VHbG4dV/PPPZf3odrGWxZDf9RvV+ufIkZ
QZy+eHs6uXiy6h+Jowx76/6pWl01bc2qk/7IrKQeBmJjdKW7zWf24+1B+fuq
36j0TrvwtruOf4jrnufMX1j3BcZakgSslgMWk634j7/8+qeX/zw5f9HaiMVs
ykALb1Z9Xbd8JSa323XIZrVUAVD+ftPdfI4cSCP6Y7fdX/6Lq74Zxm7LIjY8
8F9mBFcYSxjB/uHj7H93OuEEL0na17zy1/V/7Jq+Fsnmq7VDJuLYkOAlOcI8
wdgH7VHXrhr6zngn38NO0K0gWjg9r6a84HTTEDXcXlZ9+mvch2d/yz5UNNIS
OjNtA6a/XOv0l7Wul3fjxa+/mxJFS7KFSYKOeNNVa2OQNFHjDaSXjNgl3pqB
tGxXu5iJfGYP3hyUPzVXk/W/Gev3pOykP6QNe9O96zbd++mGtSN9Lf7tv7xd
183VcpABiZM247jcyuojE3398vQtaaBvJxsmGjgRwvJ0JN1uBCEQhVd9f8u3
6A2LjtKJ7HTVd8Q5Tjd89UjG04ujEt1ndm5qXKTdmDEwvrwdl/Tl3TlbDd/B
jlhVLc2AKGYzfqcmxXfnm+78u/r7Z4f10ZP14fnR8+eHR+tnq0Oy3Z4+Xx3V
1fOLJxfPnz5+tjp6voYy9t2cvUhWXtqW5aNHB9drFslvaTd/evXzH+Y38w0Z
YNW18qBwv45xGZt21+0G4Vk1aRzMidN1xX7//3IrB9sV3cYlGf78X2V1PjBx
j0Xx9qoZSqLrHa7nur4gYTWU41VtxrRr7AtiY7RB7CLYmIugqMxFgB/E4CUt
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
MhXWec+evFTDK4GblGTBvvrYQhpxZzsY6dG9P5D4c+hf3CaQrsqHiGmAmX07
sLQWG/JA4Cxu1esbC+gt+UG8i9o6cllyR2Xj6KbTCGODFcf9lZdZTT2Dwp3w
XUcqyWq3qZgRJeCtVMZ0nUEHeQXuErKKxBA6e2btnY0M87sSHG/lqtFgdC4I
MlqwO8EtlTQlZ48qJMsx+A+Eb1Rr84XCBOeg9pLPY0dMdVHuJcGhoCvkvauf
LJ1gHsYh8mVSvUAlVdqdBeq8NGkuHS89PXarbiPdRbiMx9lZytMSb35cMe2Q
Ckd1wjOvZjo/smiYNIu3DePMXYbLQTGXQ9ojIqpU1tdz90NirIGeU3Fo9Fss
iqz03kdBVQA4W2Q1xSyf8fIkYTMs6pqqrdLvwWtY89PbJLE0Vo/IkGzZkb8q
0QOV2yCH2ApfG75ajfYxc5PsxV/eFoI1T9bpsbRkL88OHXp6ekf1gaOzvdta
6J8ey5/CTX2rUpFHULAonLQ0oRy8mp2J3dutl6HduvjlHx9JRpL1IF/McSNO
RGkTr8r6eGVppfuKysl0SWri7lqLtYuiLAvC12wFU7Q4rZzSuASSJzkPHhe6
73aXVx7uWsrmX/bV9XWlPdHsOJBsJ84CUrUldoib6QXD1wjp3o61z+QG8dcN
PJNQOV2VOiheKgGoIoILi0MbPJauvTz2TCVsICC1dB4hZGXRyOsDrXXalgH3
MK+pOw7QscJkFBHBHYRaeee42KFJWhDggJcrU7lQ0gmlpOo3x5uxSriAnyjy
aCr4reoS3f6Q1p0rFJsKkjW0BuRbVdit6lLDR33GBuQPLKaFHIJUpnMobA4u
wve9otfIsKKdl5iAAZPpuehzgafqrK8FcBh3weHPyZAhgtteaVbhxDVy+s9s
IUqA6q8wBQ4K7aejAcWVYi+nkHnUwZNzGd5BScrmaKpJ9FABl4X+DRe09bYk
oVEp4LMyeyJJEUOGUenmAEmNbKFOdt2sQVr1h2bIy6yBZvnGp+iOLg5wTu0I
knJpMa2l/aXnId+SESf+eOS7Cdco3HjynDt3BGl4S9YnyVbmPNTWZG4ESrBF
0UqtezWugChh1R57F6Hgv5UbbS1CEQtRGJDzHHx6wi7AhbqLESclNpkBBxab
WoAHL4QKeIfEsW+EUiXVIKE0+RFPj6SYZBvD9LoSIzfCIjr6Q2iHKwm83MSg
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
7ERr/IrhG2vdY7RwBS1oeWeNVwfFHUVATxptc4kzI0OfVlkjPX94qxcXkHPx
S/It1berBoq73AFHzLusCkUtT+GILsSN+frJO+8+ZUmK5TB+Qb6dt3ca4pI4
+tExzZ2XdZy05OEKj8VGu8Jj2a08Z7pTZM1I9NVfttdGvH3VCFa+PUOV7adv
38xEWVbgmVjHw539nb184rSrF8609/etmvpcI3b8p6gUf+bhSAukFEzclOb/
av5xGAINEE0uSm0Hwf4ccJyfOoLTMhkDQyXLFDmcHvdw3W6C3SVVSZhz58X0
4jOnd7oaNgLZD5f1lS/rMMgjtP4m8D7C/KW1WuxzlBy/wRSyO2wVd2mPK1fS
8JrN52Zz1g7BU4KodVYRYDV0OzMXpuoATYpsyE6OA3xUHc1GKss0DeJbWkFc
/cCVQBuv7yxHoVnSaoY8aQcNeM8b9gOcIdsmykLaOn00I0SmSIsfQvGlD2cc
X1X9KfI4c1OamZK3ZKOrQ2dij6HaMiVzTOuy2H2RvVV2Jdylb6vDIwHrGDH5
GzduJPmWi0E+bAzWLhPWXQdGSKPiYZcZutAC0ip9Pnw13nolCpcOakdCFa9Z
YJDcMi/M/RFYGLxY2S0XwPfPtI5Ry0oCWi4niSrb+iIo5KzaZQw+jEtLI9Gd
9OG3HvbZIFSUJWfPerviWajxnjMTK0dyRHZU4UZjB2m5pmCb4cVEvexZ/lqR
7X3TrWhAZVpUnIu7CG0jXWans5eUDyybOa9ysG5qt0Gdnu1Y51jisbnomyyU
2fR6byxuu81Kli4finQmxoLcwuJhT1145IwcG0W8q58kZd9LbCpZ8bX6pOgG
TX+ZHy9viuskjVYGSyZSmduv+rjYrDTchxeIqecfBl33aK//+d9i201VxW59
FOkkMxC79OFpDNoWxexWo859Ti5MCNt/eGewBSJ79Ozphx6lifO+XDyf0j/+
ip6jynuOhq1GXv71pqYTT8nvH5FOOSPlec0QkpGDQOrTUvrRujiQilCM7Vlg
cpkbbpnEW+j0+5jcLUp06mXID+b9/Fj5rIoXn1vcbpa9squ6RH7yUuq3Pk9e
3yIzg3hlEpFWWYuGsvFtuEK4s9jFfMf0JbN0ZZNs2gXK0ZrGJoqXa5OwCpkJ
VNNktsSnk25KhtB0e1dLZlW2t12lGjPi5/HMs6VJ3QE3AtxLpUIZzYFrIOub
rjt+1fIGIRaTxGvSuYieFhuF63BvVwHoCDYRMgyotTHm24nGF6sSV7H+plto
ocM6mahExklPjk6FijYDAKuLK+MhlN2VsthDHpeNd1dapkEfuuoQX83V6TWE
xp3sumTt/NWs2GjAbLxJdQYiVWG1hDtey3b+Fe09+1aQ0sH4+czdMEVfCr7E
91UQRQYciiuoDG31qTBkGnZMfu05EYdXe0KOjLXJxzdsIK7pwhuk4qSjBfKg
ZOOeykUJogIev96+M4Sp+kYKXI0vnGxdN4S1tCbezaYNcb2QEIEYdrfqj/Kx
8mK5AmiWF9qaoH86NziJICRJ3sgz02ZM0F2ju2zJfCaL8qbLGJYFtHf4Nuoa
mkqwKTgK/qnWajcr0fKkwUxauYeTEHItiEph8PQ08tRNsWkRQSIUXmx2ynWN
VXezTAYv+s5CoIpcPTpyAWzhFMDvlb977K59PskGAcwAn1sG1dnFAGmBgIzX
g1d8dv9mkTwiak5csLAbCruy6UKT16o7A17t4U2lthFu4dp09DB/HwZbDneg
Z+t89Xr1JQqWegJVBHOk9k1FOuVooe9vHoRL1O5G5zZbIs8n4sWtK8LP+uAI
dBap6KDImb7d5P4rtiL+IJVSaa2r7GpeyLcvdLZaEyNgeo91VeFswwbwLjop
48oeETczvVeKxwzZYk+5LYEE8WYhqoZisMi9NPDoi0/iggMqBBrcEvyAmdWh
ZskYmsh8XXiVw4yXuxr5kWJChFZJTIazOqSHuGhctB1R5CCfZL+/whFOT8iH
OI50n6L29ZbGy94Re9lrdunTJ8Jn/GeYpBP/hl5rO9TQUraLndkP8p2ZO9yP
iUzllw+KHpF+XV/3l124GhQtupUA5kf6HZRL19DfeD8ASJN4JEAQ9UDJRMbz
dBwOgWfPFELuHuEgvvtHDwFDxOIYyGfDmjyDk5pifTFvd4z81Ywu6LxIHXbV
nnln6bqRZao3Lag00Yx8erONFB/pWyHcuWqsfFJPW2KDy/HSknYJCKLLDuJB
s3nppGjPiFiStVCPwj7m9NGRlgJMGrbEiblZCQ3na1mT+qKxwwnhYc/p6IHw
Cp/GmnXPnhY32+THo+HOOII0C2E6D4RdoeboxSgQUcgJ9Nq35ld5r8ztz3OG
ynl75EBjDewjVtdumTrRvidyCaeB1mn2/ALKO1LCN3uJ9KIXN6guoYEcnrz4
R5dwwpNxTKbxVHLw6gpxR3xqjVzbXH8Vudc9IVEgWJGM0le3bU5G0rRBuUBd
LXi8fdMMHG6rj3k509VnYBoe8IGd46fPyA/Dc8mNu0TAu5G8C5ey0M8YuKoW
0HcFg5QMNH084kexR6KvDd+4mIUSakf/WAzLB1Urur280y9xz1fEBYFEWq3M
UbP8fvBQujX2WM6RmRLLXdy4Rkyv+z6DRyxVyI2aq90Stc7evf7+9exNB+mz
jcbHP/9bW6/rX6qq1L9Q8kwL4Fh4st0iTOdXzbKtUT8yqFT16Dv87IP87JF9
6I5aEs9fHrwUxWOrOwoqEzJDwikxRwt/VVSvTlh2yp04S2O+hA7fZ048dSpe
PXv1yy+V4VHSZnwrUEFC85VzTB4ZaHJMlq4IeSvCv3vDJxrGRxEmKKKdxMrZ
ickfiJW5kmuhegI68dnBUwftatntyVCU+CnPDO+5lgLhmyvQAFXKDE2Nunok
Vhq0Ll8KCwb/8XxxKG6DHZjKtiDnwSom2/oOZBYZu3PZWt6FX0vE7E66QMKq
T66bbbp+9u7th29dvu54JlTNK0T484l7wtI4tTUDBsxPurLlGMMllQf0Nn4h
wpUI6BIU8X32CMMgr2rAddZ6K1QyHOSy4DKHP4TNXYIe6Tzuz0GZJE1iIX+V
XuUd2nCb7eKbTfIXXAElfBGu5LmQ0DJfU0k4ONc+KrjUjYukFoNimkoHYOdv
h+kjUpcoVX2Zp2F+t4+KhtA1ymwn8+pk8WJ3d3dP2vk33c3F5Ux+8Gx3/2RG
0CnIRvh0OaQDlq20qVZtU+kW+FGJUv4iEbjMtR2vR/javzanyr/+5M1fPzyd
vUEV/VFVmoOXB6/2aQ62zYUpxfSzFYUk0jwvnh8eHjy3uEcAuiPLJEqDObet
4EBQUDO2fe979cNG0LGW2OTWQYyPT+SGIz4ONlTeC3JGpu6+bm4rn3/Z1+bH
BLJetV29pMi+N/4UGF3FJqidBiuxrqzYUpFhWAEhzL6hndm3phxRb3MfKy4/
YYeFayUhCmpP7FegYoT3imz6EL9iID2qpX3H/OVUyV83Agyv3gv2M7kfBCog
Z1Hch/Dxqnp/c7qNv5x6nvijekG5sezlj7///evknliWeeJ3b61d/Ky4uOT3
p8kJ36CRP5h2vzC4017tHqadJhMz1pNPl2S4QCR6TR7lBVy1oaA84lufjV+Q
wZyNheaF6SbFdOQGGQ6XJDi9/kF6yDDnyhvBGnxMxOtY8kgeOGxbYQq9bdqL
S4Alyfg16N62InZZosopf8Au0tHXmpGUcnHMGeOhhcfA/UGZR9rLBGyfphF+
iCbWxi+aLVbfqKqBS60phtZ1N7BH4UXoRm7XmNixVTIIkzQzh2Vzm/1MbHba
DOLMqQSTBSNR0k1eLGhFv2SorTpkCoDkhOuAVCssfOaVh+cQKqdI01gVKT0i
f2g/xfSu4VR0V3ppUDzI6keX7isqFpzWsFfm400pifl8LtV6MMsrqV932OD/
X7AVS/M9y/paDt18WqRSMoekxWIOke6y8FwvcjTbdausC6v028mOKFbBymFg
80mfNxBPGvO3m/qCqU4nQZvYU7AFrx0vk9brnO4S5+abJhlgZpnqVSvJTHgN
XtXCe8tDdmbf1Rfp/LOB4Un/lD9NQ/pW/CApy63lzf036e/P5IboL6kWAFMn
2yt/tpJ0ghajmyu0+ylH2rZjaUDFac9vNlj4weDfXjUfZ2/SXvimu9jcpJ2+
s5T/+D/UkO6cdVc8d1AxuxHxMPnYmx++++6H78WyUlyF9a51/gPOGTIU46+p
qjdwlSx1smrwR+LJ3XtDDEBhdknkH/+me2Lw1H/E5E+a+dKwp5UuTbtDB2nW
R0b9ON++bpo1RjM8oXpAI6DPzz+T1i69C4o+FqD8o9dEgT4MuGAxWgEzncGX
VEbuDdmaTL8W2xGHvNv28XaRYHp0vwyZnWFGhzcIo269RHSOQD7iozzO8uLo
0FdqEmC9tpexY6fVPhHDCAQyAZQwMyOSxTxTdDnMHJWEOV91h71WTPYX/KTj
4i7z5pHuXN8+okRrTadMXW6AvxJde2JoVexVonUJNdB9Ore+T2Pa4GX7Ky+P
sO1/1cXxdfOizudEV0DT5yQaOszQwqZHI4I+diZ9xnkWAog/PP/iJTIPaMto
gOdmoRmNZBM7R2F8ZFjnmvOda6g5sJ9fOT/3e+FGcVlYWPvhb7KvxRP/1dZ1
K6iPPP5pE/tPMIhXQSpY8l6SytWDhNy1SpzC3zl2kCgZseemFQ9W3bnlfxzO
L1ZDkF3eXp1JtsV+wXgNPGtnzVbL+C81Olk7+ksmB5k2qgjwebzbzNXOuFDt
e/iVNma4+L/G0Pwoo+q1JWLzsdki/aOfMcCWyYeSqF6EX2rJIGKxGjquQkfq
4D0HYmQuy8hRwlk85xX9X9H4FHKEZnzsh7/J+BRP/FcbH/vyBRSK/vOMz0B5
sO2z+CbAlnLMwMeleb+g6ai6gS0yxD5etRrHWf5QtrSrZXeaPUxLL4eQXYMo
vqSHRKwronqrO5UsMNaQ0qLcD1AEUq+nGruH9quZw5kk8suSMR+bf6lZG8zy
w8YteU3nmJbVbX3HnfFbLNhwB/0qCzYZS+eG90Hw7ZVFQ9a0kkEoxV3/q9ql
kI8uI8+Qp/5NoefguV9poKaUF75kqdJaPpBfLBLuRjJg4WUZ4VE8YCDnoFoC
1h3EJ/1TAs2hDIBz8khw0g2kd0zDatItstdYd9PZTP7NmpQ1n1yPBIy0DlU1
yJ/YhE39SUzFaYPKx5PRLP78M0bzn+iD2bGTMvZAVIEJUERuB/uqviSNPyoO
aE6mdlvJSWd7K9ytrHr768xVqY7y670tlRn+uO5ugR+MPciC77L3XSUv2QV1
0M5EG30381n4L2qpvJ2rsFP+099kpcpn/qudqNJbGtomRWYAsb0gHOmqvkYK
31NMyn9zNOg9nyt8SfvLUFGWzPk/wWoN+9A8lIOZmsxMFekjwtoFQqmNkZZP
QiDoGaVtATMhMJ+5qPSx4+LhU+k1hFdmOEMv3GREqb9XYybXyUnuTwM13TtK
uvfbktuNU009KW8xAwpYjE7JpnFc/E3P/rJ9VsnzcjLL1yztRgptd5lRbrq7
UW11sOX/VKsslH9ov3JwXd6nel/VUID38tQR8qJsOAiuJ0GE6mhL3Qrvg7YZ
loXmXsmSRkQpYM15XHyafqXpjp/7arP9YTLBVqbXtpEvgm1qihy1Yk6Oj739
ZtznSJq2MbHt/+/t/KClCOn9GwCn0s8XVHYw/JTBN1rD46JhOPcXaN4C1gJ5
qp++fSMT+O2b2Qtp00VdU/4rnbK0WRFfFd9O7F4WkBhAa5SIZ3OzXiM6Kvoe
+xsAncV1+l8ut9vr/uj3v79IH7g5lQrT71FzSkc5Pe7jol5tbUL+N1O6XypO
Se8CKScPTK9lppX/sdj0oeXSOnrFAAE5dNttPgor68Wmu0l2J23V9OLfib+p
cMWfUuxWb4QWQUaBXnpFSPoEULaQqKQaECG0Cgkhulop+Sj9yHRkpVfGm+dC
Zo9FjjQfV20EKiKLSO6iPrcIZhj843S7icKytq2KCLuw6wT0Wbo2VyzQpPeb
k1wzuaZppexJ3rdfdEHvGKZQ0pjJ05Idp2ayPkvxvwCkP7WbDjAY61pZ41IV
007o7VRzmHxlJKO7kstj0x/lchdmzPjN5dqi3hekLTGRMts+id6j5xjs+uwM
5zzektJh2RHlbStlWNDBsEewsVhkS4/JZTYTY5iny/OaidxTtPGt7jIEWDuM
kZtZNqd13xwzEvnyV5btW4HXLz1MXOU1ewXybki790hxyQH+udg9wEyIhl4y
crLNUFTkPc9shQJaW4QUGyIPCkaIwUKCFBGUlv1HZmwE5tTcorVBdowoT7IS
JYsZgQdoiKrZ2OWoDP/0ab3ZaF82KnDJhipGYfZtd7PJKGMdJJkoa5Wej2g0
I/azF0KHDTrj42gUuUTNEshcCGquQP8S7ArnLZja0GBLWW39W/DgGpuU9sIB
sVysyGFcCT28mU/OqUGOFHfP7VorV28HdXlZztdwo9rPoESRltdy1RCyi7eV
TJgsMwkg4IMV209AFODAmUemBWGDiD3wOYUEe5AulgUCy4044IwMeMLpxNP6
ARK2cCC5aBUk1x5XY5/eAF6daK6KOLBDyIr7I9h7vQEe9/62kWwn30520niD
SNfmYAGKjmNZir5YCbQHH4WDhRaQNRQzkwed/G2E0kvBYj4GxrVbp9Gu2r/z
pNroDPYIJOEsDF9uARY7NoWxt/22VF0uGJ437z58wMzNkYxdascKWclr9Tnt
Q3JQJeDIYqv+pcv2Qpx0WRQ9NFHcIM+eoZiEDiKtPWAEgikK63bItIZCrqxF
IktA2rKka2ZO9jK+s0Q1JpkhGMij9Nw/t+ubz7PPL5//z+fP5rMf79J8r2cH
O3vPdtI/xRnanz3f2cM/NnfX2+Qt1NeXd7PD3Z3dnb15qI9huYqdrnY0H5i5
6dRLGPP8+d6Lw8Oz57u7dbNs9g+fHe6dNQf18xfL82f1s8Pl7vLV82dnL05f
7b16vjx7sX+4XB7s7b7YP2hOX9bPXp2f7ABQVDvkzb/ncJ4vM79rTm/alTbe
NBfNGhfF0noZECuiZx0xj26gdDqcoAISNWQmWYyQ2bKmmZ6MxO24F+eFkqFB
ynUSskjrXz58u3gpB43pPJ83JJKDz4wpNpsDqNO8DOzTMxjay18SLbd7IF7l
efsZmQAJMykD7hwcpQ9ysPsiDwT2Rbay/EexeLvne+fNy5eHr87r87Qyzavd
56e7L/ee7T9/8ex8b//F7vPD58uXTf3i9Pxsd/fl4cHZ/vnZ8+bV8uD8sN7b
PT2JO6fcNeFbzs9evnq+f3qwrFPY+er8ZXN4une2f/piuf98+Xz38Gzv2csX
B8tXy2bv7PT84PDFs4Oz5vBVGtHZi7p+vt9gi/xBWHXyCwZ7atRLiGvJCpVR
mNv6YnG7kdlexg6PwvF93HNf0GbzIrbaZKbd0r5980UjVE6v4XjdrdMNLCx0
zCNuTQ6UDprcB2FXX9aaSaRsu+0b8m2JUesFvXfnXcnX9Zloo4oz1mzrFLrX
c4EHC6PUPBBs0571996yQkWjyUu6vJKduBo4KaDoIJPekbtF2mEb6Z1cWLF0
t2IJ1y+i7IJBdddjgOWwpXEKgcIq2lyzQE41pU7qgpAtBAFmT5UbLlLrwmAo
gmYnNrj36lG06+HtNiQ6hv8Mr6B4BebBOyRRGeqk/2Anq7jia7SxaUCpGZx6
421OLXdiSIQ0zguSvEF5OYiEhG5BMf5gldX+KP2rVn4inKQISOIIcvxgT4an
aZ/SsK/xKfXn7JQy8gA9ZUJ4m4r1wBLpZu1nT0RwDkcjWV127PVULJb5PW1W
3e3T45wYk2dCHcSfZOR0t91Chwt10zzgFFSeWbdguqbkvL/pktFd33Q3TAJe
aLdGulGV4l4AWtcSyjXpBAgVGcLshT5F7iL/lTdBKBFyrW3hGqL8rTudF9EL
qj2ynY0hqSUv+iN8Kb7oEbvKCHc1jo9bUuD1ON+qIb/IIdsl70eJPZGVQRBR
9wpnBrGXEMW5UzCXIO+H91x20gr1xyDRFzyrOg5p8DYp8h3otZQLBERQkfDd
aTWJWpu93prfc9VuyzMDKDftTc+aLh9OkiNthJBvms+eHbyQfZ3+Z279hujh
Vm5KtIUgKNXxUynNlPPurk7ljl2s2vVHSAGnizuNUD6sftpm9uMP79/9XwvR
2NRGUk22mGCEtqCGmIa9wPTajKQL61fPeJK1VRkbhiuIlVOO2aygxvkz3NyV
ACf7q1pyWTC8nMbkydablXgH6A4OjZ2yveCt4dZoYdkm93Qa8yPPVej+OnZV
Api8ImOR9uTfG2cRhh0n8WbOv9r+HR4F2S4c2rbIkGTbAp5VOY4pwubsqMXm
fLVb29u9pkj0rZSIRpIZErcNUyHc9aWnz2BHenBgDwqKfulL1nAEG52P8G5x
tbecA3n5rUo25N6lPP/OEQIXYLOh64iu+2uMCZd5mod8bFvtCkF7vZKGaUdx
ZS3VtNRKFZfGbFs8hZNzuUGu6o+2Yuw91vSdfB9T/71mL7bdFRwGdCkolU6+
t+Drtt5nrdlj3gMUcUDPNXRgMiGSMXgoDUIdtC6RTFnhGXKs2d0K5ue7ZKGu
evpbmXSPaqXruAtohAM/uIQ2ynF24vziJ8YQMsduqmffNZuPq4Y1p4zD6XO9
gmFidy4s7pNFkGLSMz8p/YJwWSrnRplYMroV8MVgO5kHDJMn7ZDNcpJPnY/r
EV56ZhcHjYdfLtElaH7ka+xqEPOfS7mBizYqkNLUWIWDzXaRdxAFnPR/A7bC
hYC5Uzx0wR2c1tbh8UrRhRNypEVtzOaetcKYaDtmuMQ5hK9Ay1xrxP2Bimxe
zWa/hvUMkx58reSb/jlN6rpX2pDX1zL+xX4KacVrRcHBnFZmIMblxqp6+1nK
ImKrmKtm+jn94WJ3d57+vz1N++1rStpMD3NlSATJvHHguNT4WvQbnVdouQEr
+emdc2zcaQZhqKQqpmy9Ax9mTyI+8ClQi92MbUG/zhiDHU0XUuzKlcz0EAkV
S0XAASB/B+/GpF4TkoAhdW772yYj2GSQTa6TCb4yf9fkozCRFu6ERjRvEk9n
OzQ5gDZTwzcvYZ8zaRQbbdcdTa1YJnlSoX9gyRR9BdUNktTtbR0lL0Kuw9MN
+zLlr82Mg4LLxVhjRkCbnI0pcoINVRNMbmcNHJJGbmpP4hhDgUAqWC3oP2UV
rBvu+c5+sq0ylLucdFtGKtlkqwNhc+BmVg3UEXOJZJ3WjeoHS/JYZVdIaFlq
dZEQNmst/5V+jVg382xkITGp28v7hHM0fWP+sXimSNin8C1cTE2Kk4Xx9KqW
wfaSoDb1Pc/+mAVBs6+ap4FN5lFCEtrspymOFBr0c92QI55uG0+JU9wRrsCQ
1dQdmtPJsh2dyCJLcWVGVCbY5dzqzu9yWn9U23FO4xYRgL4Vm/zFW/DAOG1P
vB/dZFqFq3nOw5NLaWqitAJ0A3YoMxKex5jgr8YD1yXt4JhqkEUUQZXOCrLB
7yeCvaNZoL4b11Va56TIsd+JtdOd5IASc7y782JnF3KBXgVh7CyRf8XbE7Gl
7uJcNGCmXPAVC1rQ5ORdXdUb7pARci65pB6sSlJQ9R2T74Jy+qL4S/SIV+n2
4l+ZXGdmZTJFnsweaaoJ0vBfgtGUQ0Tti962C14ji93nxetkPa6qnv239z98
T/9Wk0HXZLHUy5ndrKHJdffkacgN4EGVcFo/2Cc77JJdKONJzWiwKusDC33v
KVVDqmhMiUpWIFmKao5o/OU4M7k7gzAanaGyZGU5mfgUbwUeeMH3CvpVWu4r
NLOdEBuj/AiAhkrJhS/D7C6AQrk/R0K+bUzX7s6rnV0Xf2NEmG6/6yumn9PM
SmyCy2sH20DshV5mxgoiFT6Q3Qe6x5hLlNu00i/XLJkEmH13nL7+ZTpX8iMM
hI/JI2Yso+FNxUOY38KMo1B6kLQMqBRIUOeJk43JKLzCbzZ24whx6PZS1bXE
tommFDgm5p7sHXu+/fbm/BwgsdEWtXAGblPtGiLY/+ZzyKG3HbeOSqpbIA6s
yo15kOcgsyZfvZOdhrN6rewvtXllmQVU/leifl/uspHcQwiFUyC60diYbHdi
dD29dCTuqedXlkVhrmJMtO3HW8wvcKGKxCU+z8vld6gI6p2JR+iK46XJD7J+
1yCdIsc2MO5pv+zvfEZ0aRmNa8m1bpto9Yf51XRT7O4cyCbi3/JIeisUslp2
UOVGhkUFaM5aSZmPNac8K/8xw1rVQlOWqzuWLNB7Vu7WLZSuLI0/qO0y71Bx
hqQPhEH5zTVTSOS0atefWmNTs1seSsFaipZzh+CWZLjKA2jfbXSd2Pld2kOK
Otpe5uh7vaRuxRYEuLRXJo97Vt8ILNFvvxIu4BX4cikrIwEiIhrJaWLFLKs2
Q1ZNw1QYU6pxpL9FRi8S6cIVMGNzlVwKcZeRDNBP6x6kKl9vKpHoOa4YfbLC
wRRhK0Tj6kmn4MQJCiRmrKFPbklMLvu88sSVZUokroUqrwYA9TJOK14HWlQM
iZjeSyNBt9oy/36oME7+ONSOyUU6VNyuLtu/1YiyluK6rhVEJXt8j8RJPbtc
0vgZFxd7vQp8FYfhVpY2JCAwhgmbjIHKrZTg9UXWVl2XeNnvPU+PHRp1ObzP
0iEc6YdfS0DAWO6CNM9LRrWEHchE7CdzRJalm7V9ITJHPiD4BXRiK5Xz5G8e
91SzciqfgsMVL0v0ChFsCgls15XLb86UUMpuSvJDzDqcCIxqnU7umTikD9Uw
OCGlDynbGb4pIaRyYzJdclyUYR4b6Wou1PDma5VeD4FMTGZqKlPyhduu+yi2
hMkwNyK2qLooOeeZzpy7o6hW+hyb+ISHTnWARvsBMq0y80SUWABqUNdi7ogQ
HRU1Y2oVoygmU3Jzy01924cbcURMvoWgIAgN7VWGT+5vNp/aT8r+JjTizryR
7vCjkAkT2l5T7K6KbcapXzZIUGvtJW2dK5U2NRVToWP6fN1ujISgMgbUuCd4
WndYgMYGSR6Gnxk0fFiCge5XJSOACMzDBbG1CJKqwTH3QVv21CeZ9B404tko
UZYyBhZOBBPb8B/im9TRIYiCdIOSWpVLapKDPEJOSKbyBi9PxHsyQOjgU9Ui
SJ6KQXZ+x2VFUS2kpgVr7CLM/iyjltRn6UMKY1sVWr5+05zeWSBLDWBksQ60
moMdpQhTvlbETBIeRkb17E+VNq8CKAm57FV7fRyvz/Qp6gs6QW/0vfhQISJc
7lSA2vHuAlqNNqJtbi0rkMNubhQurUzdbWPpTvnpc4kEUHmynUIJN8sG3Hbk
7dyCQk2szXdvfqw86nQipbUeATnlq5V9XONeWfrTdunCshJDil9u7U6CaWvX
ynVkhkEuAqHlPon8dGndTvZO6AJuavNpFIziG3L/xIRbk/NxIu68qUucKP+0
GbHKRhikCGPsrG2iaLyAomEkkKpXjCgq+TCsRbfOe9LBW/ml9UeG8s6BRqX4
O3v3SCk1y34UU0CxXxfa6532/1aR8L4G5GGWQxBSbWn4gfhdfJB5FpxBK0ub
juhlfd2YOyS+763GewyC4SU6zBqSLO3fm0JjENS86W5s2OvB6UjnatqBTL8w
dSW/Q3Hx2d0A4mr/KL5/6OS7rEUKXuWyEAFXhtL6MSWzKZEMiwEPOUSFnLkq
TXm3+qSMsgW9s/OoLyIYohrAMYqEV65DjRivpZLBlFNlKSeOdnjrPwihyGLN
lRAglvzqqimzQNTJtMU6m3KjJEfyiRenHVivVAdCawt5faKQyHHK9WrIQs2a
1hRYxcy2mR7ZQe7C6Uvfc1EhcSA3MVKiLRefm509eCSx0lSeJDF+/jdHRz63
toyilqLiIjekgKWxYwHYDG0tDQlLckT07fKm4UjTAxUyqvjlM9bR5vm+cV5P
L+SGYlMlw8sBJBMtksNgp5i+yLrLmvDq97EcItmvansZeFcJN4qiD7LmbESg
Pm/9ufWKD47n475yRXMK/+DViKSwaNunC2fQsmlcRXQ0rKtb95ZpoiRPg9ho
nN5CFoHpLWa2EKTuqCxOu1lqe6D6kZuGoBwDBZR9SM71hCrZaMA5m8Fzs3bl
U4sElIILo0IvVSW9VGkvyeLYi1ren9tC1Kbms+Ebw5GwZl3eNpIKG5JkaTvF
iNZqktRKSRcrAx/SP1E/6yGaq4LkSm7NYU9iZ+g1ckQoGYJyREj7WUnktTN7
n2Z4XSnnipXc5e5zP1xfw5MnaV+s4NidJnuaTJUYl6ublYL46PTxDdbdABwp
u+c0yCPnWFRqYaGNEnp1qx3UWGcriZvZi8yLq5cxwwmpDYpu9BUVyVjlZIjD
8bcbSI3Dy1LP7rYb1DmMjRUIc2sJqNKN8ykjmn0yCvbx0EGgN16fzz3cEbOp
su9wxl+f9jwtSJ/+ugliXc2miJsGiS25IYHqHD1PHG2tMYjNSudkRwciaujy
xhmzAtxDsT0M8rRlTfOyPW0VlxlQrulLF+KOnwH/b6PRUp4HDUdIAzmVm7Zp
WvCy9tYeVslAnk5EDrsR0/NzQuLVSeiKTT6Vq2g45dyQbc62R430HJiPvnS4
yCC3mIVvLZW55Yz016t2O885c7fWen/I9dKHp+ztgsibCaVi3sWqL9SSpoln
WlYaGSnX2HovwjasHT4JpUAsmKBV4jHlnFJHBtdbJuvzS0QHL5cNbYBpWbc5
Q2C33lGw9pUTrViztcz7sLoRybWG9i9u5hx0DUqQilWeQXJL55RR3kSfz8yj
aZ/cvtiNeZcx0J/mDvTVTZFCyP6f3KwLL8xWy0D+VdCuOA4L/iItOFIT+2ZM
pmvgNgWyte/9KsHD6FMsfGbqTDifbeB2xL9K79lJqdnVDJGAX2id6qqQbRwy
pY27KfNtmA0BrnwD9PmZkTkbGBvlyXY/AHl8AhuiHYrpH4XWOfC0ulnTu1oa
oVKOvM3Tsyuf9wRvEi/ac1OVtYQJkreYDETaFXGjln/8WrRvlJ74m01yA5Ee
GagjTh0iJ51L01opnPY+L2J0Z5rzv1FB3cp2+SLucTWIXQHz39CBr0bb78qj
bT2Pxmmu7b83uYdCfgp3sy6RR9qnJ14qCmGL3cMq6rJtB14XHQh1GGVS2I+u
4TAKCkLerI9N657rxPOoeheLr+uZCT/AAPOJrRQ2WLDr1kXJ9/BEpRus1ufl
XzD/Rrb2FOUsUf/+3LJpj0kZEKQyBeR/CkwetD2j7+waFlX8MvQOo549vCCe
apKnpPrSw2bXatA18lnodA5MTjvL+3LM+vUpiDlXQVWuhNTE4GFKCYywpJ1Z
UWW3WgVX8jM3QyWfEyCFKkDkiQ+5AZTXY3AgOxVqQtoqN3T/NWnBEoCmRCWT
fFqvBDGx1AyF5h/X5fYIMALEyzdgHkNrLd8d8no29XPWjEGbhtQ3ANi2SKbT
pfNYgT/XUG1QpawHEjkI1mU/+7m3paEa7rxiCA3Kbz5fy3gqdu899emtDB8m
t8JCLZ52AjJVbhHgdXftDrqn6YVIu+0blQpV1GBkXKm4K9O9kNbI9JeAoRDL
Hp0hnzkeDWBQUCdIpwtFs1gFd38JScImoN8c82t3G71Y2etM1G5FtE3M5kq2
MFRPQbUWpdJqw7tmihLERjLzktrTY7nqOthT4BLkKCA1yhRf76e7M2sR3AxO
i1ZBrYkzOXzfvfnRzByrr9BlbD7j5YKengFE0Jvr5bqMbnRAtQr2ikREzqwE
bYvqVvyZ0fjkXDDOd42yTAyEHAvFxxUEZagO28wWXezM3q5TzKNA7do3vaSm
ka3fCAU6v77Kyi6P+zzz0nif97ekBhtFS24hRf4pi6NVjX1Zp7yKvDx2TLAo
XPshjfjzz6//8PpPyWFBNQmXu/J/ILu0IbVCOlW3Ks2oQlYCwhKWCMpl0RGj
YmQjVCRneljh91glId9XVhqjD7HJrCheA0Z9ujBx+7vBQpr7IRjcLlwO8gRC
dHJlY13lKwx3pPWhwIVvMxpAcummOp1cg4UBSJle13izzBZYM3Nob0QGmqgD
Bv4iNtgTYDuvykuHf6b40HjN6K4WD239qdWuyLSnpL3ehhXcR8/5XKUVuCuq
OskVsRsJI0AJjGl9TVqZETy949i3BtCSirqF7aJl35sJI1ytZWwQTuQc8fMI
yeXsbZryYjazW97RVmePPjBcRK0zrcD0yfnWJqWTmGhRH0b9tnqrnhM/YYkU
mCxp28mWLs2jiFojD1K5QhlhJ7rO8MLbPlb2HpO/Q+Nqmyc4pZU5pa4vy+Vw
p8ZcZ2tI7QHGKZx2YyksWygyst3TdmzAEyAzSneuQW9BjQEzrBIcvwJamNaq
yccc8jGBC82eNGbIErcr85GpYXVSsuPKbGfMjaJt0tjYHHpAv+NDvAeqEQPL
EF6laD3tQwm0xXSdLCdI50W9IVcim47pSt44QYFWBKx1+TWCEhhRcM6YFf/K
Oa8EFlgNOeGCGGoxqCBpNislzaoHJc2Sfx23SY4XNUPC8dU9pauX8xFJHVga
rIv6qomsYzSwQrbCoMZDW9eVYokw9AsoRL1vP8vNqGHxzuz7LqBHLHsPRLWK
y1mUanrKsiF8s7QmeFOBloHVoSNsRaqdXTafa6F9varZP6O8kZ4TQRFDmgAr
IDJljl2fSlWjRiRmsRznLGgCtqgUCWDrLflG5+DUMQkgLfNXZhIS/VYA69V9
E4GwxY0LhOV5t6m5EfYdSSUBZNFpKkfSIZV2VTrCkf2ChmAWLwUyVsAVCFXa
ip8tyoRHmoCc6BJmNiMwd2F/VQhg6UwrxntOZLQhFyMIOePL8/mtIgJXzzKd
CxQW5JZlklrYrfp7MLWVY2pnjqkdwmhlx0HBXVjZR2hadP2ytHQ8+6lZwSX4
a7f5ODtr5QCZY8Qi888/N58kKYEqgPMTy+u/FMw0NsVkme0wltkOJ8tsgN5o
BqAzkNBGma9M+Vb7oXkUSYmFyprIMhsQr2ivpIdSZMrcMa5ylWmn+iF/JSiu
BTourrxX9snKgdZnsxPLAH4XOHBgZcmUImr4r9h2czx8Ffky8a7p/wbJQk3I
oStMcBzQhXO+uIxby4ancpMUJQqTowwzo3Aism6l+HbZDNv0Bd9WBCPDLGrG
Md5xQxqQ1HM+JsxpzSvGbhMNiTbHhm4trZvxE2wX5kDu4+dhi8CI0ie995sf
/4C0N2Ah1YBIR9K+5DZ58fIw/Zky+VjXEMJtDMKJeli3ZLHGQIBaySEpD10U
tHSwzSg9lpA++FRyReJVKAb6oftDQz6yIFQagSBbrf3J7QrwCuHYlQ4udyVZ
9C5YyGZMHnHsx6HSzmAVPbxBOohbHVkAVJRy28aFhWJ074ANsXvpsl7uFPO3
xTX+biEfr1Qb78WzVwfYdbgXyZwxU3JP/uVAIk6Ml6uteRvnTIPjYWrKBIRn
2msSZC35AmKcZxl/xB+2a8dY39nXT/amzLUiL0UlJOv/Ju62D0/ioZN5VgfZ
GEq0aGmZYy588y7kGSyaDpJvSF8SAxmEsq0GYIfQnGvoH8nryFV6l1YPQn+A
BovXBGgKAZ5avLH+/wBAq9kqoTLwmkKfak08NK5P5U7T1vo26LXz00zksU8M
VuaD7Z22oJPQTYflsLxqPRt3YWjO0eXcQd7C/SctAjUGjhgxwEzcYbCSxb2t
Q/LVglEt7HqJxJPalnF8pc+n+Cg5b2/hzPPQm+NblkiZd9PVm/hmpynw0r4l
BDQHayPSZnSvkZQfwo0v5F4Ao1sHinWd0FAxSwaWnRONiEgjJY/S4gpDQYMD
DgigkdSdfo2cN+Qci5vY9iF5IHUneNcy5r1FeMRJ2bg1dsOfWjFuzGkmRXh7
bfiYIWiyWyGdcuPVQ19tDeyoVnJyNt/lUK2JMVc+7KW0vp3LWIwmapK3xNvV
q14QWq1NTr1BxID9n2WvCSjJOtntpowbprWutV4Lh9N6sUt1X+vtXrXuIo5E
d9myGbR0A7rcNXLZ13WIaEjnWcWUtU+rUtJ2bUg+bWI4qBejNBPFK/DmWqby
r4O6jCmO5mJv0InDwdC8inXmRWOCzC8VSDYj9yI5bbYtgtOHnJq+gqIbeJ5C
juQSDGlI5koF7DjmdBZk4NIaqc2Exyfs0ZqurSmFMlqfdmbf5etYmBNINknT
eIvApLuGd99kMkl2rZw6GHzTqN8FdsP85saDxbyo9fVm8HoX5dICyHQ20aJv
g/dyeXlph/Q/lObB5wSVlQnkEl1l7RCUl8RKx2z7Nu0GUFPVm6CRbZWNQanT
INy6bwptLb5LUehUBND3erHkLA7A42uBRuec97GRZ3o985ay8aVITriS0pF5
f5tuLss2bZreCGpkj1AKPCAB3AdrwGuLmot+GYu8TWDdQtR+BEM8WcgvsOva
zGq/0sJcWGXPD92Hs5hbg7dlc+1+sqydrPMQm2HLYd+b180KyRbWHnInGMmT
zMrNWi9RtIHBzFiizpiV5RdowZ9OShc7kbn5cU2MKU2pNmAuVXkkHbaLLrCj
YlSBgZk5E9bO6jXR4RuiItIuttWjTrai/e6xZdIPFM4eRYej1GPRaVAopOhU
zJ0Ywq6x1hi7dAaFCUMrCfK9XfzLXhkSWZpdwV7P6aCdKHhilOm3sm+QAZX6
J1qaj3MP3UyrFIrQAtddMKqOIc52wbc3PAWfhAU+G8YgPfSSN9JINzkSeuBR
3PjAefEzxjxNgTrLWWLfb24KFahttIWyHM0qlPzjchlSGUy7adJXH5WsnYat
XY/dllqyTIahEnlBMBV1m4XC/NOlKqTz1nWYu6TodPFFQ7Nanj2Uu5aTWDM7
CttM9xiDv3Rp3/a+cEopx0vOhuMAQKF13EQlRFITwScqsaAFFiIi8xRiGYQE
pHDZgWaG3nQ+p5P8jgOzL1vSmDKE5gm3TYGkk3OwSZP1nlkkiCmc/am5e5cC
pNmPb7+ztK6qdccwe67prXIDXaoutFxH1hTkRJe8bXLhwNNK65D07yEvGOBD
H+EJaHrkCPCVmQFLGeF5PIpNa7USaQ6YvaU5U5Q3+k093FBr2YAeSxlefYIX
aJCEhyfHPjl4HxvhHPNvNqJDdDJ0q+7ibuBb3JAq7Azm7/Vwbcz7JxsPPbYC
fhQon86VpJwEMZuLhk0NUghjKAyfQchLV87bA9XN6KrReMRGM7Xh5MiRYHhx
hj7Z5H2j01OJeYzoIt4gsoxdbGlMS0j6EXFyr7AZ817VTZTm5FKq+lvfvJHU
hLjhzTLjeYsoG5pXRpnghTC5xz13oSi1kN44cfhYYaud75+P0iadyFtt9WIE
PtyKKXBojnIIbfVchB69zdWVgJ4pJZi++iaZLkagyYBcsEjDkqPVQzNywOCW
ed9zqemelTjqIuHYb7vr3rOG8jvsC8+ZIts6j3kFkJ4ObNT79jOv58J5x12N
G7C/NaZT98rqIEskSWMEb4bZVPJ03ls5+wnWn/XFUR4b2p3kkpDw1LWD4iUn
v4jOC/ka3YfrXDnVGBb9CMJtipww87CXoss4Pi78S2n8rmbEgYQSf6gwh/s/
LbUg5b1fbl7cwekx6KQSYlhr91gALLWgq2AMMsqrZ1pEXmBcCHGu0+Gd0PeR
T7gTJE4VkvfuuLosiHSrTN+nPTbQtWOBdE9vs9p5PmkEeNSiFgdI8qykEaaR
v6yVfIqwM0QmhK2jiEyjaixhPEPyEcvdaBKhrB5l3s4JNnuFSgtXhtD9yyEe
tvHOC6gH11ouIENXWMgGZj8nJC5uSlAhSntePkd1wapK5q1ApYrUhfO/j6jj
G2eOVzZ0cBQigeiaGMqdrkSjtf1l1tnITOmTNaRnsYb07Bcp5a1mp9o8AOIW
ZZLVj6GL/jDnyOtqQtOApG+TKdBndKnLDvrcqGWqDl8j5WBE5RXdcLVX0cyR
8ZAyX1pX03BmWIVxKg+7UJMjSor6Ccp5Vs+sbMCcrsqwNDJPQPUrgwnNeJjI
PHPW+rrQIVesSgnP77KZpLrXV9QEMefUlGWF7OLONvE3797/+PrDmz9iOehI
W1vdfUWqwZ0xWaQizk/T1j35uIqaVeCNlSuzzy7QZxTDKwXFyLt5ynvwVTw8
KfxgmOfNOQWJuIUczECpeWJeWRYfKblXUHDCtcZV6SOnb7J1kuEfgxyUfSrZ
Q6HocqL3IYrmSW3aXoG9aFsgYwzRwvQYDZncoISoDwg8n2T9NhazgrSOaTte
Jzs/G+u5zXNaOx0ukbGSV3cSwsOd/Z29YhoyuMvuEGNVN6CN0rCZZIpJ+7rm
kicQM7jkqTCzwTMBs9ljrVP1KthG7sSC7EvL/foJa2jxCyx9yBHfewJinkex
vVcnT+Ui+BMgab3Wzw2/MHuWFme1qq97pu1Q1JaaxGIgv8e19S6sdG1rv1lf
ZjqLtAEyNdJ9sHDomYa6Mv/4X7lmGENrdRs/rdXxyRR8XNGq4Fk1meG5xpS1
FrJmkDGrVwpqGvVrqeSUddH0yTM5S/5of1tfX2tFjf2odLGFcDjWWuhGnuhz
h/kgj9V4xIcKsf4Ih+E15aw+GTU36rGOMRj9UsMtZNgSjEl6beQkXj7udbYs
JssiqJI/Y/DtxTVi74n8cH5vdaARjrWrx32A3rekFBfI6lqT1aB513yQDNA3
EdQL7tTOabk3OQ7BCrp5ENaF4IIuAvRopvLZRRlTpufRO2a8QBv2KDj55lgr
n9haFYqsyHoi4gY/xRIV/Ofj0gvmh0O9mHqYZrBO8Jk/pv3NR8gce9oI9xkJ
pc4tEmn9FlEsfmW00fKvRSacJwatDzZEnIcFvcH57O/NpisSeSGXmJwCZfyk
wIQBuli7IXlgx6Kl+KXgnIGHyRReXFtPAghOWrVXzCU5u+PFqVtUE3XOw2H3
TY7fgGU8O0txlLpvN0Z4J049I9ozIQNL10k46WZqNNRxWCRcKivwIxNhOFrB
LeEddKot3vBmghN8zfuPze13/UlOmUNGWI63vcRC/BMRFztB82eaewnp+Gfy
HeRjyKp8WprJzbiclMdO8zDXjNy6fE7sRUPt1MWjrc3AUwD1RdHh84IGXho6
4AzCbg7IPMEclJMg7G+wCVdhzNnsdaD8vEDcMta9Pp6NGK+Qexx8IcHuWjBX
kJwbxnw9yIx/vhb21K0CN6XOeB0dpIGmdqkkLnGCk/iKjR3Karv5LKhH09hr
6jH2WFLYS/nCbPGlawG9omKrTRzUczQnCHxPdC31tyGWZbQi1uE0xR3pdpQZ
PLHi0kkczOJmjb12op0SSn0nvfpVbi5mp0sPBu+FUj4zlWTisJfJ7UNqGChf
y60467D9ILmxt0fILuSBD8XAO3NyB4vqwFn5vKe6YmaM1n+x7cxRekJW+5eh
v5mff6dtwdoC6QHdI7i7oWDgY/vfH82sZWSW3+e0Qf93nptHr+Xk0cxTiupR
aUSR0NTDxYtDU9yk/jYmvkCwi+bkbNbgm5jOm7RoeW9FIc+YdpHWUuQvf/zm
x8c9+XBzGwydxTRbW8knS747g/VriVv6VnamMKWs1dPpAPeUF/3OYyiOZczs
O3vy/NlMJmODOtZl8/np7MoS+MYrzcS1YrjrlXjWncis0AMToQc8Mx/IHHJW
IxmyhRYBPrUdwZx0RQ7ciuXwdkFvLKiamZ3wPisCXnZmtocokLNpyHaH5fLt
tXtCJ0SZ8MSrbd32TORqq7LpGoGXk30jhteINFmERYqzNh2IAJtk066hlCPJ
avJux1ROgVCzwOIgBRb7wnC+XtpLYxmOLGW7MQhLFhrIKscaBJTJuLONpJWf
jIFebvD0uhGfrb1qLPFWb3Ky0JBUSNri7UAQIinGapb1B0RyBcI7cFm0QxuG
P4PGPU95Re3JQcTuTKtCNbe3c6hEhN/X359AlQtR/gmX7oQejSZAmTHF4dyR
TJ7cpSne22zTrT23H7xdL/FPBBC0n49RXZQ3Twf/6hq/xncW1z7f8TZWEAC8
u1mnl+sNb0KyMs6CeApX9cW63d4sAQy+Sjt6tv//HB6kDb038R3wSlbQ8WLR
X2pzwi9taWwjIrVldMy9oXupCSAfST4ttHcwT1arkJ67pXn6vXv3SOipX1B4
G/RnRK66t8QifA/V7opORzUr3Y57xEHIiFZP+Dy43hmxSD2C7DNAD8fWIq1d
mZS1HmQ5kY95WMBDZ26ojX8ePUELAZXOOcryfIJhxatTCEl7DT7qbSB4KDsz
tfGaZF8pQ+3Tla8qI9I3KF9wJVCpLaeJ2iGSNgIbcvDUTRAR2/qYlR6kL1xw
hEBDJMyY6iQkW69Q0zQnG4FTfmv+PzlSDaCVknpRGAB9HK3LuMZE8lhI34/t
YTlsuIbpG1Nw41UHh/JEnqsxKZmtLekvmVXTS6XIq6k2oBYyBrcJf2cNauJh
TqZfD2L69eAXIUB6hq0XgPtH+LuCazgK1TktpmSnZXftzN7K97GlS0UQLPvZ
aIbUIhRSxfXdVaPIL1CCee4RFCmW9AQSHblUg/jJQAnnP5eLnN4m9Gt3RDCA
mXvkW5GFT2tyrarZiv0Mf2JkumQ6YZ62kocrFNfkXCM10H18P6p3qko4Vf6F
Ot2SVPxWEguun8z3ctpYcixRfORWhf3yU9JQ0x/J6Urrgr6cpXyZ7ushhrpd
U7lMWZyYPVmZJrCbxUduKh8F0jehuJKY39gay+KZImfFksoS0lUCyHfpF6My
1yEA7ncmINQRa5CHcwqOMAU4J8MW7n8r65f4fFaEAHbSJr3RaOZBGk+8KWWS
vOgM7SGpx08tsV6V0t5LjVaRlPDi9TRwBtP2fURn7/MCX4EvfVR0cJaZIE6e
Sb6K8Y2SsAOOPPlyZNNE52uLrYisQ+TfqW0VFBPnbcUknc1lk5olUewj6/Q2
p1lTKOiEEG44YzNVNlTwvawzICEzr7KxwsI3lq0IyXI3fq4JrG13DXqEIYnP
JUxYbjdWja6j0PgZwVB3xLQVCkCwb3kYgAZwIm+FE6Aywl4GWvWwI1dkkTba
A1QbkibjRp1R32+qvDGRkthcAA9x9rEfF81HfFe0KbwxDQEsaMvWIP1qmyMl
coDDIYUrNtK7RgqYu5bk1SXOxZ6gR2yOR/IUKoOfdRtN36pF/NTdAP3FwmPB
dv2yYLsmaSn8vRT/YrecuoKO4e1TTFTIEmsDisKPB33n9EW0hcc5wE7Z2+U9
G0g7gw0sN6tnsH1m5auVLRX4GJkZZThWAqBW2Wsp1VEQLYpgFtKS6haCQgSv
hhNijAbqhRzPnF7cnN0B66kpJurFl8xVcsYJa83ze7A4GJCJ75+ge0dREyb/
EiEWzBBIdaHajlEMtsIFz4iZQeF8BG81exmtPdY5jpw4TR/hhNfKRCfbeHEu
jW3LUBtM86MAg5IF5sQ2e62Oz7J13K+rObTGKNZr9/i92B+7/DUWsquGoZSC
wVeVWvo1LTnVigS8OEH0x9sc4mx6qboN96SQX8KitFW2O9o1FnsQZEioQW2d
fNDWH0mpZJWSvyd3JycAbDH1XT7uV00NcbkPl/cyg+WaoThhouKc88itEI7L
oSRGF02Xw2MnqKEiSy1pa7M4lmpmOkj4cKrODF+g7D5NQRe9Pa99x+rLUcjR
C9JyXjHjXCo8828cn5k3d18eCTE4q1UlGMkb4cLPHVaDWcla1hJ0hLyTWGAA
JUnpGsV2kSt1mYpoLGkdyJEtS7FtwQBZXLcW+GpWTM9tHhUqAjZYo3oh1FU6
rlCj86J1uEYCcbPQHd1pZ6Sy4mdtJG2LGX5ckb/npmkRBsFMc3GbisROSYqk
biv2oVRozUvTCO4s943omQSN9mAysG/klj2qqBWn4DbzhbSSM4nz/ObtT7L5
1gySmIwl8GP2kt628gaZyM2x+WVwHEITFH2+R8bhU6UTWF/IlKUZEEY/Xv7p
Z7O9l8ehjmb+nbqCwb3uK5J4UT+FyBB44EgAzQ34KQqs+K/5WBZDojlBX+AY
qyfqzq1CocGqxG60k2wT36hJhPdYBYdCfFd1DE/q6/3vGBszD21SEqVEHbtE
Kw8/9GbwSydeUQq/yiUs3hfSiZ+BMznYR27Bi3dba7Gth4QYx+S2OouapvU2
tKSfUXdZO0yq+8JQFT8vNCdSlJY8SwTw0Wqn5cuCetLm0YFQ4Id1cIjTwm1r
GNaiJQngHkzXzanlLHthcLuyPE9gzrk01usQfkdhoPTt795++JYLA7G75DWZ
iGiALK8lKFsLjk/wGdpS9mFTg1YDpBsGXt4dUFtYy3jxuaZsNj92j8tw+rSE
1bsw1Pd4R3N1BZgAGNuF5oC8OY/iCmky/0rQXR+SwMujQvVkZnRR91OeG59O
FAFRTTAC+eNsDmIM62gH7brskQBKY88BbhwTGQmbw8UIdSOycjCvoI3SaY1I
qJ81WphMsuzHJMs+kiwH7r5MUZC3aljlo1ZgoYd3nuN8JxiJtn3w4iUFEc9U
la+jzCYWVRDQ9Mh2ylMnbwJ6BfQyMMA7keIxDTcto523dWfha6CpWubDiECD
/nwai0le5vD1Hv3S2W9RL63K7Jpplz5BOxH0Zi+or01XBkKLdVbZms/QHlUg
vxxepWpKQQLVGi5ofXnJeQ2r1EIdMt18IPvwim4qSzcrl5rctxJK9TV6qfwS
rhXS49I3KNGtFuOMN4953KCq6oCpPMFA7MPRodt6Wqu0Mu6JgeZqznDIZDAC
Ec5vWT9CkQrlWmHqkKjqXtCfclZp3bH0pHDmklEoxcnkjG46IYoZ0KsPxVtr
xXFUsTelHt6Ixv4Ulj9D36xUPqJu36QIgnFlDqmumMxVbrLWDAqAVWcNb92H
cvdON+Y0WzmaazV9zTNZEKv6pcdLcF1yLeZqr/YpIXUqiaZ1J0CjnRGBdCBg
sjz5mKJ4sCvmk1Zo4KrbbsVUJS/CTUjdWtdEhpnbPBpaHUZ7jPaFJaHfbGIT
3ESE7S71FojCHUNMrsCmo5KwlVkYfMvSkkJRNbeUXv4SMhsIOkhkpGlkq8WT
YciUeWgL0VLsNnB8FWToe+1HyKxpsxZeFEmuVVMnSLu9Zes0yQKokrdy8PGc
rBqNUW1q9fnbPm40uWhz+50GefQ86HndbEWYhi0wmqv0LjgmMLrkgygR607I
Ie2eaL2Q4jfVYIdLOL+tM/dfyTBsUwTvO4NeLPKXfit5qFdhfdtXGf1hBJRn
MjKkdpPzkuLCxqWSnaw/HWTvWbxrmiq2y46gHVuNNDMfyBkVWFCqxnKOJYK1
jI2v9TSfkiTGWXtmpJEIY+cxShaE6ouCU5L02qhJO0wO2FuAcUZmzb5Pe7iE
OwuJgO78fIB6Or2R2xsbXfv/lSHOGsXhq9NUqCXvCFZrtCdLlnNvn0W1W0td
RjchK2Mzg2yC0mJBsUuEGReBh2HZvNyaYq5uE/Y7dBaZKmGvneQA54QF8VzK
HzCHPWe3bK79Gr9BkUzjbW+3AVWsZTejqrQEkrwRrYpeyuto1fMUV/WgyTfL
ZFoOtO5RPLsaiGdPSGdnylFtWqe0lpz10lYok5JJfpsEeZFGQPPFPqkSYOuk
3dAOI/ofYbOM8MuwnefsKgtqNco/c7Y1njDxbRjhpLNxLuLZQuJtabScThlc
SOEwsju1drHKU0sjL2dyJGbf//ABwhEzKEeoDTciB3em4V9F1cw98c7ynoOb
JNlPuUg30mx5RfKsmtwVqE2wISKr4gjKiSF72YZvWmydSaq7u8DkaLrCFPrp
YDzQz6pPd3bZyc47bba3UmsdNSUSdGcmnYFCLQ5ctzajVkpn7O2fPD0OxqLZ
LrpzAWL3VYCl+VUtY/d+0LmZEzh5Rj8bJCtla6ennaIQDnqe0GFOSzoyhGFo
BybUXXhj+p1VxOkfngwN4XP7bOnezZURRxOJG6VoBFEczcWGOW2nynI1OWw2
M+1CYy3G0gbxfPHcMHkPEF6UyqxyiG678pAwBJfvsaBcD5bfAS8WfNnK//0c
YnjNgPDMEiBbPXHSzgvSHZlq+b20PXt34GUdtftmYg8+qfMzEj6WA3jlbOcV
yXx6NGCpYG8GdPV6CKyrfEUycB1XbwlpIzkXQwyblUWPJwSFhTQLljYqC6PO
VzHHumoipuwqnV9sSsKP1LBESYCBD+gxbJi+0MUj1QJdOwy+j4/VPlkN4S6E
kgeFSnk/SQF8TJORVSmYSzJcD8m2YPmzA+3yAOy1y5avyu41MPWwgDR/GkRa
TqbNJEV10LOscrILxjPZyFvpdEZstm1xhf1VmTj8e/T77XqsYPw0YsTdkRkz
tJJU9+FA4NC4deo2IRbr55iyIFUbSdDB/Bzz0zqhrtVACZHwF8LTOiwyuhfo
qiC3o4lSvzV/tZcV6F2ad9ZXQdMBJOZUAkCJa/DGAXp8s67Pz8GiRdwCfRfA
sphTHvNfTCaY9nKC6RcmUEYQnrK4Yrma2D+aTGUV5lgvEVnONP7eskmbjtpL
cwcg3LYbQ756/TiUBQSuzpo0coFR0VcGLr05tiJCeM6zbyoJplK6To4FWDmS
iYlIYInNoNqMo6edgGI0wdd+1vj+viuxNZV2xjfWDAiEjNy+mod7/+bdhw8z
ab/uNvxLHn1tvueZKXIKnrAcznS640/e//GHv/z5G9xGYrHBcn9e7nhlHwnU
W5adU7oJ0B0iIbK5Ki68Zye+LZ/KRs9cN1Lp8V7ee3KA1EQYK+wpe53Xubma
zMZUgxeyrpzkzConnmVmPxUGI8MreOmu7Gzbtz/hiPcO8ZC953ixZfd0J1zn
ByfzSq7JT92ZFg4zNE0CPY2iueUR/sVZtsp05fshH0/xl4ZR1MssyTojIgjr
hPFLYhoU0oCeUnDRyecE2VKz1ReZJrkpdVufddfomSN6l9Acc550F2F7nm4o
PC4rilSZI3XsfSp2RdVyxS28Og/OHSVxN0lup6UAMbPkMbmjK+PPx0xZ4ETw
lm4CfQSf6rU+72AXh4/RHyBWFgqbEIHcY2rxbus7DRZcYzNNUNjJu1n7t9jf
O6MGXE9UON+Xd10giXkcuEYgABnkbmw7KnG3lMAND6H95XuhdpSLw6V0kJUM
qrh/WTAQcug69oQV2El0VxMtwb6DZDitKyzHB/iIehaGogwYDYaceRJv071H
RSQVleIlnyK6eZXZj9SeXsEL4UWDPmecU+ZO9EAyk5WsX6vyhK9nTjBaUFzF
88MCP9QUZheNkqiTs4DtTjLr84I5w/bNSVkVZb5AkSXaVHEyaOQ7Kbpz90yP
SX0GvYaDQBHYD5Tj8KLbmb2xhkBvA9YWIUGkrYmIsWTqMY8ohlqSfPmHiQ5W
GjLc+6Ix6AkDfTZdR+2WlS/aUSA5QcOQ6GwURJLnDGcZVIHq2m3JCMRWbB2j
fYUyMUv+ralXNGuDWmjQS1FgcfpiZgcaopvhJpEVKLysne2QX6mzwxcOgTel
DQiHCOBOoZ1YQ/t7AxPlcgyStoMeTN4lGomB99x4/9mm6JOoiQxxJsAkli9x
S5cOst7qs1CKSCfNyL/qFG1cNVsipLIpOMrsAfYWDA4DmDJNjoTtutZR1H6e
P63EMsVn7Yke9KO3xad0VJ0mClQ509WtOs1t0MzJCBzn6no7U4KSakJLO5/w
aOeMWIMIMYrmSMyjJAHKDYfblN8E+5ZWsT7bFimnmreK8xgjP+4Jj7DL4oYJ
KRGQbavsg5waLltlFCXby4HA7pkYSUDv0uZWXlxYqpjx0YNRmSTe5EnWezAe
BKdh9Cmo0qGqhcximVOnHtwEhMwiUCn2Ok9aIhWf0nP7t+J0Se1MU97Jz5Q/
dZ7w2zg3JZOwAGftb9l3hy8ILFFMiQmQX9l3oyndTw5W+OcBLavAJetRKll/
ovpgsvNAHa1MpqiQq7RhUFmtJ4yligqlqQPj0Xna5T+pIjo6Um6k7igfa4uO
0BwbS11CSggdUktXuIlugKpRyUFlxqVn6pcd1A2y17JU0PNebtmXt2VOotBC
AcoCqZIrZe9DZiA7OLiFFAWllIJ43uuzj2n1RAAMaR4J6GZvTYABw/z2/+vs
yrraOLLwe/0KHefB5hw10/tCDg+K44l9ZpwwBieTN3qpBg2gJpLAJhzPb5+7
VldLeJl4ESChVnXVrVt3/b47WkoibHjxhoHACeEC3LyRqkHoFhx5wMZlrl1H
Yy3IP/hBii8n+PSCnmK4cQ2JrniElL0lelvwJBT/wPFx1+iZU/3OiDpTb4Ob
AVQjy9Q11UBKlvJGY1hw4Sm3CJj6TC/Bzx/MXY2Gq9LjHgjwHpe3ROhWS9g4
CAt2gt/ZwIdqEtcMEYTEtyFG+yUfNlNfbR801yqy16suzrKogl3d1VzourKU
QeYb2PFlXBZEQlvmHAuip1ntjeX+xVeLs7NXp2eYRr2yW4p9rie3cGTU+2MN
tV5eLNGiJc3HPSVULsbO6R5KCy6IeFzsCmy9JKsXW+XGFJ4ITk3jWYdkeTjV
1kU+PFmBnXRN/D3LW27jGBOUeGTCNFsDRvSNe7vdIWigJnKyTKi2YdnOXnU/
ni5A72D9A5rAOu8vaAYPOPSBKDplnmrYgyuPuInPrx015hWBMvj2gpInjGB7
iFLKqpUMSaropkU1E8YbweEgCwqspLvhDh0h8tyCTVtfu1szj4+nZ7Cqb9/8
/BMsqqMjcMK7w3F67fjrLHalKO2Pz7KJRyM6lOr6exj8zpFklSoUEoTL7QwF
sQkoPa9IOUwNsjsbeuwbDWTyJ+9RTojrxtP/E5elCG+HMSfSD6EohVi7hS4i
gfs6KDTYr2NQdTNmBMxkemBi2zsEo3mx1xOnIVFQ5RKqx73KBK8+NvZOX98B
OeGYraBYvXg0dAGqeUWECUSo2QhCpyOinFMRNeUx8IYvtNLbSRKZdWTAU7Wa
oqKKWLBG99Q2lfNRJd2i+0/d4hVOtK/RmI8p1oc9/hu+gBARv8Xrs7OTGT+N
GyCKQsSkxzTAxQDnH7Ev4S20IOnalALCfIJvgEe9jMyHtEWS7mDtRWYZbFqG
oLiGAb9krrBRkrDvENvgtMlRxnuII6ebFHQyeA+N9q2UPp2qIbIxPPg0jrD2
0FtQdGQYofbBNUMrpams3aGh+uagwXGDhryFG/thAcozWJyd4FbjotmVJXhb
ZoxZUx+nK7eSXeyD2kz2IywSf8Z9fdfUqwCXAeH81leBs9oeH39dvP9h8TNq
bKlLVO5JShCsH3j1FHCAV3x2XyMMxlarEmY6udMj6O3id8k2Mn0HZcwQTYtg
mN1CfP0++DY2LZjZ7VVgbwOBQQ4U9ADU1MvX7355iUyYivxIKwJHw5+og9iA
4ANmOymkxN7TRowDS6HqzVPDM18d3k29xlh5UG/+qO+J9BBUN/Z0eJP9dvHu
X+9fnSIHlQgZpR03m0BZO2Wk7j0vyPZcDxTVWIC/Ad7KzfL6QdF5UAgXL88W
nz4d/LVZvRzgqQcWjv1Bw5hf/3Lyz1e/E3Ec4yhSTaNkmwJCCBjf5wI5Xx2M
eWowdVNfBSDxxBpJExI43Fvn0zrOUynVclmOSWqRY4MXGAFZCdYIz3BAHR+Y
xaENiab3/XBlZ4Hxytq2A+WGtlJtNqy4AkHDR1TrhBXFFB5YY4/LjfDsCRuM
zM989lnC1fmEalWBvfESTh51yCyXMzpJtZiREGw3jEEsRaxogfh9OITa71Aq
4R6O3EZ1x8pmNuFaluiD2WsNdO487WJ12aRjWRZg7BjfXnoNRZTIe4KVlprb
mFjSzQMaLHAtjLXQqIwENRHzHz6R20jAQ+oJGMC6UDis6l5pI/fmsbxiSB8x
L1Q8GTYFqewDxvudqDH21yjupW15CqmwdPEwV2UyKeNi3iIxOGAO67XWlzsQ
p7HRcaUr6/PwCknPE9zVJByCQVc7F0sYsrgaeJ++V1Gq0fTvgvFihsuddwvO
n292WM39XEHoWiFdlgmZ36lq1jF0YTTX9XFL0QnGV4OAcq5oOez4h+bxSHFZ
jp/1cFrbZ+D6/QobF67322W97vtJEk26xiV9igHiozGRKTB5k3YfcPJ9guna
gzbQZFc/7JDagHASairWN1G/qJdbUpdcPtJP1UyKicjjN2PWxmFC7gSUD2ev
LcN7CDu0XxVHVQfUd6btehSWUCJengEG3aG2b+1kfCKYbRghcqxxkBgeO8cu
mO2HZYexT4KdR0mVaIgaxAusr9kpn81eHpPjcoJJNDluUYq7tf0gpXfcezMn
Gi2pwXBazg1UQdj0wEenwGioVMAyOK8BojYZkVdey94chQ+T55tJa8LcAaht
Lz2soXjsLvUcPg2xS8GTq1LQqCaVmqw8XndB5pzWhlNlEhwpRK+IwYg3W7nw
WLJAPtYoCVyJS9uAMql3q7H7eZCq3Fl/t956FKS784GXPgE9OsxOrrHeVNCA
gzDc66wYy4aVcVJQlsebU5QERuKdaXk6oyXiakzEw/SucRonf3dR5Spzquke
dNUk6osBq7obwCaaOxJXHbxbr8ilBuDcWKFgrKxfZEjSLfhxfC9z10d+LYQf
bDYy65SzKudEKyr1LmjNiptD3ilt36UmWBRoGQlMPt+vo62A3K8wRjgctihH
vbUkcALFzWO+tGOWncvlTGOp4GZn/yCgQLseEMZ8OgZO3/EJJ0ff90ZKTukC
4stfCv+1Hz/Xibh0pUBYuOsJlofbRJF7y7lShytwKbFHj+DcgRgIuLULmCGy
pyK+KdBNsNZ2CP/VSavCVGjZaEPtJMrgguI+f9wNXm8dLqWI13YYrrDqvWZ2
AdZj90stOx8IUOFqtl9QRQpORZMhy6kgTQvKSBBFygSn3TMKLoWTnTaz0Y0l
zAbhYXIYSSaC5peRBz9Q6Tvue+bogMFdM9oK0ViPxSGcdOQdRTXmP8OnDtew
jmeW7gERfSYjf2o/+bsfEy0yleMpBjKyFkv5g3SQCT4Hxq91VbVOidqCVkek
eXHt0JxbKoyIluBwrcca4RxxSAHCMJEuxhmVDQFDcXM8CeRz3oyKXLhiT3wo
+R3sN6azbsUFq1ykdLei+xjA73YdIYqfRZF2BNzBgnjaWhZEYz2siB5trKMH
YYK7B0+A+v3ICv+woks7uEhhtry126WvGFg+nm+0i3vK9PgFzXI4+42Ikmav
6w9X2G+o1ih+KvL4XmoTMyOWCweX7AauVrSbjR3p7vGNfN4oQ8oarWi0Nrgt
w2hdD25y7oKasKxt/apuDy9HyY0kuyTm8r6+w4TDsr4AxUKdKeORlX4TiL3B
WBeeNFdoF3FnjIQClnuTCbv+mq2iKdg9yQT33I42DuWrXWJKcO5OT/7xJqCK
UvgN6pBjx3CKDwIKzAMCEh5G/MYd/qvZWIb1BAGAFF0qT8DmMyD85gtn0LcB
8s/NHhT/7MtQ/LDpA8Ybl9plYlyVbrwloaci9LWHKY6+CL8+IlJr0IJ7zFk7
cJkgwyozaNOIqzBCh6CzV1NpHM7dXsm1R0XiffAE5VUskrGxa/RmHYAwlYlN
8seaxpds2I7to5wWVIA82i4w13/aFQmzKEpfgFVcdRgjW7xHKO7r2x1fjnuZ
blWzEK+JkO9K4J/xCdc+MYCl2CVV6KzXY+7Nnf3LldklB2FxW26F+4BSmyNJ
hEcqPt4ct+9viDRySVQf/ian4804F2tM/eNPO9Kj8894gv1o6SE7oz8DepAr
efc+QyZzOHFetHbuq8GimAn74DcTZ87HujTzNLHnt9J6jj2pPi49qyCrfBHC
VSZ2xUjQRWkAlyA3u7kSpfd0rB4EAaIX9W/P5fx2+/A8RtCbz9KB+seCWbma
OQzk32ASg9rRNKy0x9hGlZIekprATtBks5JDmrYdX9p1k1IrlJ+mNhP2MTni
dMae5BDT3bYS5x1Mbk7/pHRIqnUl20SsC/Y68XWW3s1I/CuFHTvk9SiPjdJK
Urhn85UjnxPyhBREqbAgzNk8+T8I7Q/BCUHchdnbJSOLLWAbgvYarobr4d5j
82EJfJrg3pDXRFz23zs4KJKIMV72JWZ7o3haytd9KyEfYWDnlnZpD3PtEBfK
D84AUX4ey6kEZXvyybtUaercwOC5sliA8XSZuL9M3V32EjlBTSexGAo+kzox
XIqd67UzxhG9MnNVsdOFV2wvttpda8t85O6TkbrqqslcMhbKhkMzaNv7ME2Y
7bQf9IRgQ4aryh6kx32pkGG++Ukojqj8YCj3hEe29YhHl14GcFIngdCc/LRs
NZ8VnvQC9rqAVsV+S6V+m+L5jDEoxrSi+iW0L8ix9l6s1xM6wMdHLFqGqX/g
lLpnIsK7sS3pV1nWx+9kgT89HYA8m+xVLBZD3pcyTOKZZvLho9YWTBTYCWC5
fhfNXvTLj8xVA8bt90bZRUYHFZX2Aeqoj4TXpgjbh4yYoRU53uc+o5oThVZw
+LNUoWK+win0TDUuWSYunsK07gw1M3UstrvHwuIpsJoR62YP3sbjRv4Kco2L
oLLEmSl4jYc9NBvBa6gVaUKdzvxISH8zGo5+aTDjNR7N9tioeEalHX/GERRN
ejtMuKdorKR9Q1DLtSJuPuHf/TBg37W0aexBukyo4pbU+UsJKloqspw49TZC
Oh0Z85JswyPG4j0mEoF1gFz01FfIT1h6goMox+fwvdF6+ePz96c/4i87HM5j
c963dRqlcVeXdRenEfyv4jKOi7JKyirt0yZL8sz2TZHmdZrFVW+rrg+jqOqi
sKvj9txQcnIH3Or92d+DUnFH5bkFaMs35L6DI3Xecqjpb7VszIBHdT73Ay2S
v3MHjQzdtQMryTnoJqVBkoayDWuBCXTqaMfDWf18o6unhtR5XZ9TRGsu8PMc
h+bKbsWhD7DKCcFdRyq3TwdzBwxFk7q6AzsNREhbII8RTm4+w+SqVJK8sz3/
1sxDGD+OinD8gxcAeTg+X0Xh5M850Xn6tDNyKUkeHp/XDR1S5yBFHiDYJSib
FyBdoDNuseJBKiIPQKz+C39MmWZlEtZJGCVxmBRlHOYwoCLM27zKE/g+ha99
buMefsrytMjgFfy5M0UMT+CTFbwhjRv4Ps77Ig7TtAxzm/Rd2YOsVE2Th3WY
lU1Tt0kN9xKZCD4jLwr8rCrPijjukohfglei8ZU8m7wS55HxfkzyJMuyJE3d
M2lRpmGe48CTNMH/cZ7C92Ue5alJYnwyT+lrBY8l/I+TAr5WSUKPKbw3zeMk
g5/h6jCCPMffgDfndM0M3lDBkxk84i+H8CkRfg+PIX1WnCduPBnMWm3kh7zP
3AsFviDfl1FDSxyVTdvbLC/DUF8zBcwtTCVc+wt/9UK1d9HG5AXcNC0IrCGs
XAZTE9ZxGudVU2Rx1KVhZRsLd9s1cVXA0tRx1sRJlxtY+6Ku07rM0yZqkjqx
XZM1SZglRZOkTZiWNQ6sSGxtbRrVfVJEtu+bvDS2bZq0aMrQwnULWxSZLdva
Zg0sS5uELUudcX3CE0X3w9A9HPl+6/G5nKnBxTB0m6mGm+1oOPM0bhxoO5s0
YZumcVX2bdRGaVX3TZ+2ZQWi3VQwJUUNtwFTkVYNyADoxiqrqqgBuzRuyizb
13aYbb253T44PhVPJ2mt6gUjLfvBKBdIYEw/yTpMNBJ1F4BPQuU23N5wMDcM
3PFS7V/QD/A8doohip3dLLZ7imQ2hcUjbfEXVEPkqYbom1VD3oHs2Zw2SpF8
i3Ioq7pA4TUgvbAx4QI5CGEJOzpDPRN3IM49/E0L3V24DyOnDWLYZzvqIE4a
Ugewl2EPh7AtU1QIsMtLVBGgCRJSEXAZg9uctj6rgQp2O278ilQFKAC4nYyU
Bz7m9KaYlIZJRdlUoBrwjVHOGgUURR7T18yNpwUFYXGK4DKiFmC/fXb7x4nt
c9y2IIyw/6K2LZq+S3pryqaEa7RdVxYww3Ft2zqCIcOma7q2bauk7m0UR2UJ
Mwx7Ouy73sI7bFoakPS06Noibdsm7CO83z7sU3zIiz4uS1i6Ok+qzMI/WPfS
wup3LBH/A8wU+nG7LQMA

-->

</rfc>
