<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.3.12) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc tocindent="yes"?>
<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-dogru-cedulon-08" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Cedulon">Cedulon: An Audit Layer for Agent-to-Agent Commerce</title>

    <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, a
signature checked against such a key where no key is held establishes
internal consistency and attests nothing, 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. The account
and the rail under audit are part of the declared scope on the terms
the period already had, no settlement finding is read out of an
extract the pinned rail key refused, and the witness receipt has a
stated wire form and a registered media type. This revision widens one
requirement: a report names the account, rail and window it was
computed over in every structure an implementation returns for that
audit, not only in the printed report and the finding object, so that
no returned result can be read as a statement about settlement paths
it never looked at.
Cedulon is not a competitor to x402 or AP2; it sits above them.</t>



    </abstract>



  </front>

  <middle>


<?line 196?>

<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 -08 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 <spanx style="verb">deliveredHash</spanx>
(<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
(<spanx style="verb">MUST-T8-custody</spanx>).</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 (<spanx style="verb">MUST-T10-1</spanx>).</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, <spanx style="verb">manifestHash</spanx> or
an explicit <spanx style="verb">noManifest</spanx> flag, rail payment reference, <spanx style="verb">timestampMs</spanx>,
nonce, <spanx style="verb">prevReceiptHash</spanx>, and <spanx style="verb">outcome</spanx>.</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 <spanx style="verb">requestHash</spanx>, <spanx style="verb">policyHash</spanx>, <spanx style="verb">expiryMs</spanx>, <spanx style="verb">nonce</spanx>, and
<spanx style="verb">singleUseId</spanx>. 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>

<figure><artwork><![CDATA[
  Principal --policy--> PDP --allow/deny--> x402/AP2 rail
                              |
                              v
                      Receipt Issuer --> Spend Receipt
                              |
                              v
                      Anchor / SCITT (optional)
]]></artwork></figure>

<t>The payer agent never talks to the rail except through an adapter that
calls the PDP first (<spanx style="verb">MUST-T5-1</spanx>).</t>

<section anchor="policy-decision-point"><name>Policy Decision Point</name>

<t>The PDP evaluates structured fields only (<spanx style="verb">MUST-T1-1</spanx>): amount,
currency, payee, tool identifier, nonce, optional manifest hash, and
evaluation time. It applies limit, velocity, and scope checks
(<spanx style="verb">MUST-T2-1</spanx>, <spanx style="verb">MUST-T2-2</spanx>). If the PDP is unreachable, uninitialized,
or throws, the result is deny (<spanx style="verb">MUST-T2-3</spanx>). Denied attempts do not
increment success counters (<spanx style="verb">MUST-T2-4</spanx>).</t>

<t>An allow produces a Decision Token whose <spanx style="verb">requestHash</spanx> covers six
fields: amount, currency, payee, tool, nonce, and <spanx style="verb">manifestHash</spanx>
(<spanx style="verb">MUST-T3-4</spanx>, <spanx style="verb">MUST-T6-1</spanx>). The token is a COSE_Sign1 object
(<spanx style="verb">MUST-T6-4</spanx>), is single-use (<spanx style="verb">MUST-T6-2</spanx>), 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 (<spanx style="verb">MUST-T4-1</spanx>). Verifiers reject bad signatures and byte mismatch
(<spanx style="verb">MUST-T4-2</spanx>).</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 (<spanx style="verb">MAY-T4-6</spanx>). 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 (<spanx style="verb">SHOULD-T8-5</spanx>).</t>

<t>A Trade Manifest <bcp14>MUST</bcp14> bind all of the following (<spanx style="verb">MUST-T8-1</spanx>):</t>

<t><list style="symbols">
  <t>goods or service description</t>
  <t>price (integer minor units, encoded as a decimal string matching
<spanx style="verb">0|[1-9][0-9]*</spanx>)</t>
  <t>currency (ISO 4217 alphabetic or a documented token identifier)</t>
  <t>acceptance-criteria hash (SHA-256 <xref target="RFC6234"/> of the exact delivery
bytes, lowercase hexadecimal)</t>
  <t>cancel condition (opaque string agreed by the parties)</t>
  <t>expiry (POSIX milliseconds, <spanx style="verb">expiresAtMs</spanx>)</t>
</list></t>

<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 <spanx style="verb">ap2MandateHash</spanx>. The corresponding CBOR label is
always present; a missing mandate is encoded as CBOR null.</t>

<t>It <bcp14>MAY</bcp14> name a <spanx style="verb">payee</spanx>. An offer that is specific to one counterparty
carries that party's payee identifier; when present, every receipt
that names this manifest has its <spanx style="verb">payee</spanx> compared against it as exact
octets under <spanx style="verb">MUST-T8-9</spanx>, on that requirement's two-branch severity.
An open offer legitimately omits the member, and no comparison is
made. Unlike <spanx style="verb">ap2MandateHash</spanx>, 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"/>). <spanx style="verb">manifestHash</spanx> is the SHA-256 of the signed
COSE bytes (<spanx style="verb">MUST-T8-7</spanx>). A spend bound to a manifest <bcp14>MUST</bcp14> be denied
if the requested amount or currency differs from the manifest
(<spanx style="verb">MUST-T8-2</spanx>) or if the manifest is expired (<spanx style="verb">MUST-T3-3</spanx>).</t>

<t>A spend that is not bound to a verified manifest <bcp14>MUST</bcp14> be marked
<spanx style="verb">noManifest</spanx> on the receipt and <bcp14>MUST</bcp14> still pass limit, velocity, and
scope checks (<spanx style="verb">MUST-T1-2</spanx>). An implementation <bcp14>MAY</bcp14> refuse all
<spanx style="verb">noManifest</spanx> spend (<spanx style="verb">MAY-T1-4</spanx>).</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 (<spanx style="verb">MUST-T4-3</spanx>, <spanx style="verb">MUST-T4-4</spanx>, <spanx style="verb">MUST-T4-7</spanx>):</t>

<texttable>
      <ttcol align='left'>Claim</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>payer</c>
      <c>Payer agent identifier</c>
      <c>payee</c>
      <c>Payee identifier</c>
      <c>amount</c>
      <c>Minor units as a decimal string <spanx style="verb">0|[1-9][0-9]*</spanx></c>
      <c>currency</c>
      <c>Currency identifier</c>
      <c>policyHash</c>
      <c>SHA-256 of the canonical policy document (lowercase hex)</c>
      <c>manifestHash</c>
      <c>SHA-256 of the signed manifest COSE bytes, or null when <spanx style="verb">noManifest</spanx> is true</c>
      <c>noManifest</c>
      <c>Boolean; <bcp14>MUST</bcp14> be true if and only if <spanx style="verb">manifestHash</spanx> is null</c>
      <c>x402PaymentRef</c>
      <c>Rail payment reference, or null</c>
      <c>timestampMs</c>
      <c>POSIX milliseconds</c>
      <c>nonce</c>
      <c>Unique spend nonce; at least 128 bits of randomness; unique in the issuer scope</c>
      <c>prevReceiptHash</c>
      <c>Previous receipt hash, or null for the first receipt (<spanx style="verb">SHOULD-T4-5</spanx>)</c>
      <c>outcome</c>
      <c><spanx style="verb">settled</spanx> or <spanx style="verb">aborted</spanx></c>
</texttable>

<t>A receipt with <spanx style="verb">outcome</spanx> = <spanx style="verb">settled</spanx> <bcp14>MUST</bcp14> have a non-null
<spanx style="verb">x402PaymentRef</spanx> (<spanx style="verb">MUST-T4-7</spanx>). 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><spanx style="verb">receiptHash</spanx> 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 (<spanx style="verb">MUST-T4-2</spanx>).</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 (<spanx style="verb">MAY-T8-10</spanx>). The profile uses a <strong>detached</strong>
COSE_Sign1 <xref target="RFC9052"/> whose payload is a CBOR map with private-use
labels:</t>

<texttable>
      <ttcol align='left'>Label</ttcol>
      <ttcol align='left'>Claim</ttcol>
      <ttcol align='left'>CBOR type</ttcol>
      <c>-70401</c>
      <c>receiptCose</c>
      <c>bstr (exact issuer COSE_Sign1 bytes)</c>
      <c>-70402</c>
      <c>deliveredHash</c>
      <c>bstr (optional; SHA-256 of the exact delivered bytes)</c>
</texttable>

<t>The countersignature uses the header profile in <xref target="cose-profile"/>
and content type <spanx style="verb">application/cedulon-countersign+cbor</spanx>.</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 <spanx style="verb">receiptHash</spanx> after issue, breaking
the receipt chain. A detached Sign1 keeps the issuer bytes
stable, reuses <spanx style="verb">kid</spanx> 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 (<spanx style="verb">MAY-T8-10</spanx>). 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, <spanx style="verb">kid</spanx> or content type does not
match, label -70401 is not the issuer COSE bytes (<spanx style="verb">MUST-T8-8</spanx>), 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 <spanx style="verb">MUST-T8-9</spanx>
already encodes for the manifest comparison, applied one object
over. The identifiers <spanx style="verb">countersign-bad</spanx> (unverifiable) and
<spanx style="verb">countersign-key-mismatch</spanx> (verifiable under another key) name the
discarded object as warnings, and where the verifier pinned a payee
key and no attributable countersignature remains, the
<spanx style="verb">countersign-missing</spanx> warning still applies: a discarded forgery is
the absence of the payee's word, not a substitute for it.</t>

<t>The optional <spanx style="verb">deliveredHash</spanx> 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 <spanx style="verb">deliveredHash</spanx> and the verifier also holds the Trade
Manifest, the two digests are compared as exact octets:
<spanx style="verb">deliveredHash</spanx> against <spanx style="verb">acceptanceCriteriaHash</spanx>. A mismatch is
<spanx style="verb">delivery-mismatch</spanx>, and it is a finding rather than a warning,
because both ends of the comparison are signed. A <spanx style="verb">deliveredHash</spanx>
carried by an unattributable countersignature is discarded with it.
A countersigner <bcp14>MUST</bcp14> refuse to sign a <spanx style="verb">deliveredHash</spanx> that is not 32
octets; a verifier that meets one anyway treats the countersignature
as carrying no <spanx style="verb">deliveredHash</spanx>, 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 (<spanx style="verb">MUST-T8-4</spanx>).</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 (<spanx style="verb">MUST-T4-1</spanx>).</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 (<spanx style="verb">MUST-T4-18</spanx>). 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 (<spanx style="verb">MUST-T4-19</spanx>). 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 <spanx style="verb">hash</spanx> carries a SHA-256
digest rendered as exactly 64 lowercase hexadecimal characters
(<spanx style="verb">[0-9a-f]{64}</spanx>). 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 (<spanx style="verb">MUST-T4-3</spanx>, <spanx style="verb">MUST-T4-4</spanx>, <spanx style="verb">MUST-T4-7</spanx>):</t>

<texttable>
      <ttcol align='left'>Label</ttcol>
      <ttcol align='left'>Claim</ttcol>
      <ttcol align='left'>CBOR type</ttcol>
      <c>-70001</c>
      <c>payer</c>
      <c>tstr</c>
      <c>-70002</c>
      <c>payee</c>
      <c>tstr</c>
      <c>-70003</c>
      <c>amount</c>
      <c>tstr</c>
      <c>-70004</c>
      <c>currency</c>
      <c>tstr</c>
      <c>-70005</c>
      <c>policyHash</c>
      <c>tstr (hash)</c>
      <c>-70006</c>
      <c>manifestHash</c>
      <c>tstr (hash) / null</c>
      <c>-70007</c>
      <c>noManifest</c>
      <c>bool</c>
      <c>-70008</c>
      <c>x402PaymentRef</c>
      <c>tstr / null</c>
      <c>-70009</c>
      <c>timestampMs</c>
      <c>uint</c>
      <c>-70010</c>
      <c>nonce</c>
      <c>tstr</c>
      <c>-70011</c>
      <c>prevReceiptHash</c>
      <c>tstr (hash) / null</c>
      <c>-70012</c>
      <c>outcome</c>
      <c>tstr (<spanx style="verb">settled</spanx> / <spanx style="verb">aborted</spanx>)</c>
</texttable>

<t>Checkpoint labels (<spanx style="verb">MUST-T11-1</spanx>):</t>

<texttable>
      <ttcol align='left'>Label</ttcol>
      <ttcol align='left'>Claim</ttcol>
      <ttcol align='left'>CBOR type</ttcol>
      <c>-70101</c>
      <c>epoch</c>
      <c>uint</c>
      <c>-70102</c>
      <c>startMs</c>
      <c>uint</c>
      <c>-70103</c>
      <c>endMs</c>
      <c>uint</c>
      <c>-70104</c>
      <c>receiptCount</c>
      <c>uint</c>
      <c>-70105</c>
      <c>chainHeadHash</c>
      <c>tstr (hash) / null</c>
      <c>-70106</c>
      <c>totals</c>
      <c>map tstr -&gt; tstr / null</c>
      <c>-70107</c>
      <c>prevCheckpointHash</c>
      <c>tstr (hash) / null</c>
</texttable>

<t>Manifest labels (<spanx style="verb">MUST-T8-1</spanx>):</t>

<texttable>
      <ttcol align='left'>Label</ttcol>
      <ttcol align='left'>Claim</ttcol>
      <ttcol align='left'>CBOR type</ttcol>
      <c>-70201</c>
      <c>description</c>
      <c>tstr</c>
      <c>-70202</c>
      <c>amount</c>
      <c>tstr</c>
      <c>-70203</c>
      <c>currency</c>
      <c>tstr</c>
      <c>-70204</c>
      <c>acceptanceCriteriaHash</c>
      <c>tstr (hash)</c>
      <c>-70205</c>
      <c>cancelCondition</c>
      <c>tstr</c>
      <c>-70206</c>
      <c>expiresAtMs</c>
      <c>uint</c>
      <c>-70207</c>
      <c>ap2MandateHash</c>
      <c>tstr (hash) / null</c>
      <c>-70208</c>
      <c>payee</c>
      <c>tstr (optional; encoded only when present)</c>
</texttable>

<t>Decision Token labels (<spanx style="verb">MUST-T6-4</spanx>):</t>

<texttable>
      <ttcol align='left'>Label</ttcol>
      <ttcol align='left'>Claim</ttcol>
      <ttcol align='left'>CBOR type</ttcol>
      <c>-70301</c>
      <c>requestHash</c>
      <c>tstr (hash)</c>
      <c>-70302</c>
      <c>policyHash</c>
      <c>tstr (hash)</c>
      <c>-70303</c>
      <c>expiryMs</c>
      <c>uint</c>
      <c>-70304</c>
      <c>nonce</c>
      <c>tstr</c>
      <c>-70305</c>
      <c>singleUseId</c>
      <c>tstr</c>
</texttable>

</section>
<section anchor="cosesign1-headers"><name>COSE_Sign1 headers</name>

<t>The protected header <bcp14>MUST</bcp14> be a deterministic CBOR map containing
(<spanx style="verb">MUST-T4-1</spanx>, <spanx style="verb">MUST-T4-8</spanx>):</t>

<t><list style="symbols">
  <t><spanx style="verb">1</spanx> (alg) = <spanx style="verb">-19</spanx> (Ed25519, <xref target="RFC9864"/>; the generic EdDSA value
<spanx style="verb">-8</spanx> from <xref target="RFC9053"/> is deprecated for this profile)</t>
  <t><spanx style="verb">3</spanx> (content type) = a tstr that distinguishes the payload:
<spanx style="verb">application/cedulon-receipt+cbor</spanx>,
<spanx style="verb">application/cedulon-checkpoint+cbor</spanx>,
<spanx style="verb">application/cedulon-manifest+cbor</spanx>,
<spanx style="verb">application/cedulon-decision+cbor</spanx>,
<spanx style="verb">application/cedulon-countersign+cbor</spanx>, or
<spanx style="verb">application/cedulon-inclusion+cbor</spanx></t>
  <t><spanx style="verb">4</spanx> (kid) = bstr, mandatory. The profile computes <spanx style="verb">kid</spanx> 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 <spanx style="verb">kid</spanx> does not match
that key.</t>
</list></t>

<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
<spanx style="verb">cose-sign1-unprotected</spanx>, rather than verify the signature and ignore
the header (<spanx style="verb">MUST-T4-21</spanx>). 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 <spanx style="verb">receiptHash</spanx> 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
<spanx style="verb">prevReceiptHash</spanx> 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 <spanx style="verb">Sig_structure</spanx>
<spanx style="verb">["Signature1", protected, h'', payload]</spanx>.</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
(<spanx style="verb">MUST-T4-11</spanx>). Under a pin it has exactly one effect: an object
that verifies under the pinned key while carrying a different key is
reported as <spanx style="verb">carried-key-mismatch</spanx>, 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>

<t><list style="symbols">
  <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
<spanx style="verb">json-duplicate-key</spanx>, before the text is parsed (<spanx style="verb">MUST-T4-20</spanx>). 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 <spanx style="verb">MUST-T4-18</spanx> 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>
  <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>
  <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>
</list></t>

<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.
<spanx style="verb">kid</spanx> 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). <spanx style="verb">ap2MandateHash</spanx> 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. <spanx style="verb">deliveredHash</spanx> 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 <spanx style="verb">acceptanceCriteriaHash</spanx> 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>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Input to SHA-256</ttcol>
      <c><spanx style="verb">receiptHash</spanx></c>
      <c>the signed COSE_Sign1 octets of the receipt</c>
      <c><spanx style="verb">manifestHash</spanx></c>
      <c>the signed COSE_Sign1 octets of the Trade Manifest</c>
      <c><spanx style="verb">checkpointHash</spanx></c>
      <c>the signed COSE_Sign1 octets of the checkpoint</c>
      <c><spanx style="verb">statementHash</spanx></c>
      <c>the signed COSE_Sign1 octets of the statement</c>
      <c><spanx style="verb">acceptanceCriteriaHash</spanx></c>
      <c>the exact delivery bytes, as defined where the Trade Manifest is</c>
      <c><spanx style="verb">deliveredHash</spanx></c>
      <c>the exact bytes the payee received; the same input rule as <spanx style="verb">acceptanceCriteriaHash</spanx>, computed by the other party</c>
      <c><spanx style="verb">policyHash</spanx></c>
      <c>the UTF-8 octets of the canonical policy document</c>
      <c><spanx style="verb">requestHash</spanx></c>
      <c>the UTF-8 octets of the canonical six-field request document</c>
      <c><spanx style="verb">kid</spanx></c>
      <c>the SubjectPublicKeyInfo DER; the digest is then truncated to its first 8 bytes</c>
      <c><spanx style="verb">ap2MandateHash</spanx></c>
      <c>the octets AP2 defines for its mandate; not profiled by this document</c>
</texttable>

<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 <spanx style="verb">MUST-T6-1</spanx> names:
amount, currency, payee, tool, nonce, and <spanx style="verb">manifestHash</spanx>. -03 described
<spanx style="verb">requestHash</spanx> as "the six-field hash" while naming
SHA-256 for <spanx style="verb">policyHash</spanx> 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. <spanx style="verb">amount</spanx>
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. <spanx style="verb">currency</spanx>,
<spanx style="verb">payee</spanx>, and <spanx style="verb">nonce</spanx> are the request's text strings. <spanx style="verb">tool</spanx> is the
request's text string, or JSON null where the deployment names none.
<spanx style="verb">manifestHash</spanx> 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. <spanx style="verb">policyHash</spanx> 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 <spanx style="verb">policyHash</spanx> 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
(<spanx style="verb">MUST-T6-4</spanx>).</t>

<t><spanx style="verb">requestHash</spanx> <bcp14>MUST</bcp14> be the SHA-256 of the canonical encoding of the six
fields the PDP evaluated (<spanx style="verb">MUST-T6-1</spanx>), 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
<spanx style="verb">policyHash</spanx>, which left the digest for one of them unstated.
<spanx style="verb">policyHash</spanx> <bcp14>MUST</bcp14> be the SHA-256 of the canonical
policy document the PDP evaluated. <spanx style="verb">expiryMs</spanx> is a Unix time in
milliseconds after which the token <bcp14>MUST</bcp14> be treated as expired
(<spanx style="verb">SHOULD-T6-3</spanx>): expired when the evaluation time is strictly greater
than <spanx style="verb">expiryMs</spanx>, not yet expired at exactly <spanx style="verb">expiryMs</spanx>, on the same
boundary discipline <spanx style="verb">MUST-T3-3</spanx> states for the manifest. <spanx style="verb">nonce</spanx> is the request nonce. <spanx style="verb">singleUseId</spanx> is
the identifier consumed on the first settlement attempt
(<spanx style="verb">MUST-T6-2</spanx>).</t>

<t>A party that accepts a Decision Token <bcp14>MUST</bcp14> reject it if the
signature fails, if <spanx style="verb">kid</spanx> does not match a configured PDP key, if
the content type is not <spanx style="verb">application/cedulon-decision+cbor</spanx>, if
the decoded claim map does not match the presented claims, or if
<spanx style="verb">expiryMs</spanx> is in the past (<spanx style="verb">MUST-T6-5</spanx>).</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 (<spanx style="verb">MUST-T10-7</spanx>).</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>

<texttable>
      <ttcol align='left'>Member</ttcol>
      <ttcol align='left'>JSON type</ttcol>
      <c>ref</c>
      <c>string (rail payment reference)</c>
      <c>amount</c>
      <c>string matching <spanx style="verb">0|[1-9][0-9]*</spanx></c>
      <c>currency</c>
      <c>string</c>
      <c>timestampMs</c>
      <c>number (POSIX milliseconds, an integer)</c>
</texttable>

<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 <spanx style="verb">reference</spanx> where the table says <spanx style="verb">ref</spanx> 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 (<spanx style="verb">tstr</spanx>, <spanx style="verb">uint</spanx>) for what is a JSON body; the types above
are stated in JSON terms.</t>

<t>A record <bcp14>MAY</bcp14> carry a <spanx style="verb">beneficiary</spanx> 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 <spanx style="verb">ref</spanx>, and a difference is reported
(<spanx style="verb">beneficiary-mismatch</spanx>). 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 <spanx style="verb">[windowStartMs, windowEndMs)</spanx>. The
signed body is one JSON document with exactly this shape:</t>

<texttable>
      <ttcol align='left'>Member</ttcol>
      <ttcol align='left'>JSON type</ttcol>
      <c>accountId</c>
      <c>string</c>
      <c>railId</c>
      <c>string</c>
      <c>windowStartMs</c>
      <c>number (POSIX milliseconds, an integer)</c>
      <c>windowEndMs</c>
      <c>number (POSIX milliseconds, an integer)</c>
      <c>clockSkewMs</c>
      <c>number (milliseconds, a non-negative integer; optional; see <xref target="reconciliation"/>)</c>
      <c>settlements</c>
      <c>array of settlement records (schema above)</c>
</texttable>

<t>All six named members except <spanx style="verb">clockSkewMs</spanx> <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 - <spanx style="verb">windowStartMs</spanx>, <spanx style="verb">windowEndMs</spanx>, each
record's <spanx style="verb">timestampMs</spanx>, and <spanx style="verb">clockSkewMs</spanx> - <bcp14>MUST</bcp14> be integers of
magnitude at most 2^53 - 1, the range a JSON number carries exactly,
and <spanx style="verb">clockSkewMs</spanx> <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. <spanx style="verb">windowEndMs</spanx> <bcp14>MUST</bcp14> be greater than <spanx style="verb">windowStartMs</spanx>: the window
is half-open, so one that does not end after it starts declares no
population, and a body carrying one is refused by name
(<spanx style="verb">malformed-extract-window</spanx>) in the same way, at both ends.</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
<spanx style="verb">json-duplicate-key</spanx> at both ends, before parsing and before any
signature is checked (<spanx style="verb">MUST-T4-20</spanx>, <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><spanx style="verb">clockSkewMs</spanx>, 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 (<spanx style="verb">MUST-T10-7</spanx>). 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 (<spanx style="verb">MUST-T10-8</spanx>).
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
(<spanx style="verb">MUST-T10-9</spanx>). 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 <spanx style="verb">trust-key-unreadable</spanx> 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 <spanx style="verb">unauthenticated-extract</spanx>
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
<spanx style="verb">timestampMs</spanx> falls outside <spanx style="verb">[windowStartMs, windowEndMs)</spanx> as
<spanx style="verb">extract-scope-mismatch</spanx>, identified by that record's <spanx style="verb">ref</spanx>
(<spanx style="verb">MUST-T10-10</spanx>). 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 (<spanx style="verb">MUST-T10-11</spanx>). 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 <spanx style="verb">unstated-audit-window</spanx> and <bcp14>MUST</bcp14> treat the guarantee as
conditional (<spanx style="verb">MUST-T10-15</spanx>), 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 <spanx style="verb">unstated-audit-scope</spanx> and <bcp14>MUST</bcp14> treat the
guarantee as conditional (<spanx style="verb">MUST-T10-18</spanx>). Where no rail key is pinned
at all, all three axes are equally unstated and
<spanx style="verb">unauthenticated-extract</spanx> 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 (<spanx style="verb">MUST-T10-19</spanx>). 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 (<spanx style="verb">MUST-T10-8</spanx>). -02 already
required a verifier to obtain the public key from an authenticated
channel and to reject a <spanx style="verb">kid</spanx> that does not match that key
(<spanx style="verb">MUST-T4-8</spanx>). 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
(<spanx style="verb">MUST-T4-9</spanx>, <spanx style="verb">MUST-T4-11</spanx>). 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
<spanx style="verb">unauthenticated-issuer</spanx> 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 (<spanx style="verb">MUST-T4-10</spanx>). 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 <spanx style="verb">MUST-T10-9</spanx>. A pinned issuer key the
verifier cannot decode is a fault in its own configuration and <bcp14>MUST</bcp14>
be reported as <spanx style="verb">trust-key-unreadable</spanx> 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 (<spanx style="verb">MUST-T4-11</spanx>). 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 <spanx style="verb">kid</spanx> 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 (<spanx style="verb">carried-key-mismatch</spanx>, 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 <spanx style="verb">kid</spanx>, but does not
verify under it is excluded from the attested set and <bcp14>MUST</bcp14> still be
walked and named - for a receipt, <spanx style="verb">receipt-chain-break</spanx> with a
signature-failed detail - never silently dropped; an object that
neither verifies under the pin nor claims it is
<spanx style="verb">issuer-key-mismatch</spanx>, 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>

<texttable>
      <ttcol align='left'>Claims the pin (carried key or kid)</ttcol>
      <ttcol align='left'>Verifies under the pin</ttcol>
      <ttcol align='left'>Result</ttcol>
      <c>yes</c>
      <c>yes</c>
      <c>attested; a carried key other than the verifying one is <spanx style="verb">carried-key-mismatch</spanx>, a warning, and does not move the receipt</c>
      <c>yes</c>
      <c>no</c>
      <c>excluded from the attested set; still walked and named in step 6 (<spanx style="verb">receipt-chain-break</spanx>, 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 <spanx style="verb">issuer-key-mismatch</spanx> on this row as well as the next, and the window it would have covered is reported uncovered</c>
      <c>no</c>
      <c>no</c>
      <c><spanx style="verb">issuer-key-mismatch</spanx>; excluded; its settlement stays uncovered in step 8 (<spanx style="verb">MUST-T4-9</spanx>, <spanx style="verb">MUST-T4-10</spanx>)</c>
      <c>no pin held</c>
      <c>no pin to verify under</c>
      <c>no comparison against a key the verifier holds happens, and the keys the objects carry are not a fallback for one (<spanx style="verb">MUST-T4-11</spanx>); 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 (<spanx style="verb">receipt-chain-break</spanx>, <spanx style="verb">checkpoint-total-mismatch</spanx>) while two different issuers cannot be told apart; receipts are presented-unattested, the verifier reports <spanx style="verb">unauthenticated-issuer</spanx>, and accusation-shaped findings take the two-branch severity of <spanx style="verb">MUST-T8-9</spanx></c>
</texttable>

<t>A verifier <bcp14>MUST</bcp14> accept an issuer root that is a set of keys rather
than a single key (<spanx style="verb">MUST-T4-12</spanx>). 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 (<spanx style="verb">MUST-T4-13</spanx>). 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 (<spanx style="verb">MUST-T4-14</spanx>): 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 (<spanx style="verb">MUST-T11-15</spanx>).
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 (<spanx style="verb">MUST-T11-16</spanx>); 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
(<spanx style="verb">MUST-T11-17</spanx>).</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
(<spanx style="verb">MUST-T6-6</spanx>).</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
(<spanx style="verb">MUST-T4-15</spanx>). 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
<spanx style="verb">unauthenticated-manifest</spanx> 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 <spanx style="verb">trust-key-unreadable</spanx>
rather than as a mismatch, on the same terms as <spanx style="verb">MUST-T4-11</spanx>. A
manifest that does not verify against a readable pin <bcp14>MUST</bcp14> be
reported as <spanx style="verb">manifest-key-mismatch</spanx> 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 <spanx style="verb">manifestHash</spanx> of the receipts presented to
the audit and <bcp14>MUST</bcp14> report a manifest that no presented receipt
references (<spanx style="verb">MUST-T4-17</spanx>); the identifier <spanx style="verb">manifest-covers-no-receipt</spanx>
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 <spanx style="verb">noManifest</spanx> 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 <spanx style="verb">MUST-T1-2</spanx>.</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 (<spanx style="verb">MUST-T8-9</spanx>); the identifier
<spanx style="verb">manifest-terms-mismatch</spanx> 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
<spanx style="verb">MUST-T4-17</spanx> next door already counts it as a reference. The time
compared is the receipt's <spanx style="verb">timestampMs</spanx>, against the boundary
<spanx style="verb">MUST-T3-3</spanx> states: strictly after <spanx style="verb">expiresAtMs</spanx> departs, exactly at
it does not. Amount and currency are compared on the exact-octet
terms of <spanx style="verb">MUST-T8-2</spanx> - 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 <spanx style="verb">trust-key-unreadable</spanx> 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><spanx style="verb">MUST-T4-17</spanx> 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
(<spanx style="verb">MUST-T8-2</spanx>) and one made against an expired manifest
(<spanx style="verb">MUST-T3-3</spanx>). 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 (<spanx style="verb">MUST-T4-16</spanx>). 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
(<spanx style="verb">MUST-T10-2</spanx>).</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
(<spanx style="verb">MUST-T10-19</spanx>), and a verifier that stated none of them says so
instead (<spanx style="verb">MUST-T10-18</spanx>).</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 (<spanx style="verb">MUST-T11-12</spanx>).</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
(<spanx style="verb">MUST-T11-1</spanx>):</t>

<t>epoch, <spanx style="verb">startMs</spanx>, <spanx style="verb">endMs</spanx>, <spanx style="verb">receiptCount</spanx>, <spanx style="verb">chainHeadHash</spanx>,
<spanx style="verb">totals</spanx>, and <spanx style="verb">prevCheckpointHash</spanx>.</t>

<t>The checkpoint window is half-open <spanx style="verb">[startMs, endMs)</spanx>
(<spanx style="verb">MUST-T11-7</spanx>). <spanx style="verb">receiptCount</spanx> <bcp14>MUST</bcp14> equal the number of receipts
(settled and aborted) whose <spanx style="verb">timestampMs</spanx> falls in that window.
<spanx style="verb">chainHeadHash</spanx> <bcp14>MUST</bcp14> equal <spanx style="verb">receiptHash</spanx> of the last receipt in that
window - the last link, in issuer order (the <spanx style="verb">prevReceiptHash</spanx> chain,
as the verification algorithm's step 6 defines it), of the chain
inside the window, not the last one presented or the latest
<spanx style="verb">timestampMs</spanx> - or null if the window is empty (<spanx style="verb">MUST-T11-2</spanx>). Where <spanx style="verb">totals</spanx>
is present it <bcp14>MUST</bcp14> sum only receipts with <spanx style="verb">outcome</spanx> = <spanx style="verb">settled</spanx>; the
one permitted absence is the signed redaction below.</t>

<t>An issuer that publishes a checkpoint without its totals <bcp14>MUST</bcp14> encode
<spanx style="verb">totals</spanx> as null in the signed payload (<spanx style="verb">MUST-T11-12</spanx>). 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 (<spanx style="verb">MUST-T11-13</spanx>). 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, <spanx style="verb">startMs</spanx>, <spanx style="verb">endMs</spanx>, <spanx style="verb">receiptCount</spanx>,
<spanx style="verb">chainHeadHash</spanx>, <spanx style="verb">prevCheckpointHash</spanx>) <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 <spanx style="verb">prevCheckpointHash</spanx> <bcp14>MUST</bcp14> be null. Epoch numbers
<bcp14>MUST</bcp14> be consecutive integers. Adjacent windows <bcp14>MUST</bcp14> satisfy
<spanx style="verb">next.startMs = prev.endMs</spanx> (<spanx style="verb">MUST-T11-8</spanx>).</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 (<spanx style="verb">MUST-T11-9</spanx>). 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 (<spanx style="verb">MUST-T11-11</spanx>). 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 <spanx style="verb">application/cedulon-checkpoint+cbor</spanx>
(<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
<spanx style="verb">application/cedulon-inclusion+cbor</spanx> (<xref target="iana-inclusion"/>). Its payload
is a deterministic CBOR map carrying three entries and is not a CWT
claim set: label <spanx style="verb">1</spanx> is the statement hash, label <spanx style="verb">2</spanx> the entry index,
label <spanx style="verb">3</spanx> 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"/>, <spanx style="verb">MUST-T11-17</spanx>). 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 (<spanx style="verb">MUST-T11-10</spanx>). 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
(<spanx style="verb">MUST-T11-10</spanx>).</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 (<spanx style="verb">MUST-T11-18</spanx>).
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
<spanx style="verb">witness-inclusion-invalid</spanx> 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 (<spanx style="verb">MUST-T11-19</spanx>); the identifier
<spanx style="verb">witness-inclusion-not-exercised</spanx> 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 (<spanx style="verb">MUST-T10-1</spanx>, <spanx style="verb">MUST-T11-2</spanx>). 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 <spanx style="verb">MUST-T8-9</spanx> comparison. A receipt the
pin rejects is reported once and then excluded, which is what keeps
the settlement it names visible as uncovered (<spanx style="verb">MUST-T4-10</spanx>); 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:
<spanx style="verb">MUST-T4-17</spanx>, 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 <spanx style="verb">ref</spanx> or other handle given in the step. The
identifiers are not an interoperability surface.</t>

<t><list style="numbers" type="1">
  <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 (<spanx style="verb">MUST-T10-12</spanx>). 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 <spanx style="verb">extract-settlement-mismatch</spanx> <bcp14>SHOULD</bcp14> be used for this
condition in diagnostic output.</t>
  <t>Verify the extract signature against the out-of-band rail key
(<spanx style="verb">MUST-T10-8</spanx>, <spanx style="verb">MUST-T10-9</spanx>). 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
(<spanx style="verb">MUST-T10-7</spanx>). The identifier <spanx style="verb">unauthenticated-extract</spanx> <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 <spanx style="verb">trust-key-unreadable</spanx>
<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 <spanx style="verb">extract-key-mismatch</spanx>
<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 (<spanx style="verb">MUST-T10-20</spanx>); the
identifier <spanx style="verb">settlement-comparison-skipped</spanx> <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>
  <t>Check scope. The verifier <bcp14>MUST</bcp14> report each settlement record
whose <spanx style="verb">timestampMs</spanx> falls outside the declared window, identified
by that record's <spanx style="verb">ref</spanx> (<spanx style="verb">MUST-T10-10</spanx>). When the verifier states
an expected account, rail, or window, it <bcp14>MUST</bcp14> report an extract
that does not cover it (<spanx style="verb">MUST-T10-11</spanx>). The identifier
<spanx style="verb">extract-scope-mismatch</spanx> <bcp14>SHOULD</bcp14> be used for both conditions. If
the verifier stated no period, it <bcp14>MUST</bcp14> treat the guarantee as
conditional (<spanx style="verb">MUST-T10-15</spanx>). The identifier
<spanx style="verb">unstated-audit-window</spanx> <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 (<spanx style="verb">MUST-T10-18</spanx>); the identifier
<spanx style="verb">unstated-audit-scope</spanx> <bcp14>SHOULD</bcp14> be used. Whatever the verdict, the
report <bcp14>MUST</bcp14> name the account, rail and window the extract declared,
in every structure it returns for the audit (<spanx style="verb">MUST-T10-19</spanx>).</t>
  <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 (<spanx style="verb">MUST-T4-2</spanx>, <spanx style="verb">MUST-T4-8</spanx>). Then
ask one question: does the signature verify under a pinned issuer
key. <spanx style="verb">kid</spanx> 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 (<spanx style="verb">MUST-T4-13</spanx>,
<spanx style="verb">MUST-T4-14</spanx>). Where a Trade Manifest is presented, <xref target="manifest-root"/>
governs it (<spanx style="verb">MUST-T4-15</spanx>): with no publisher key pinned the verifier
reports <spanx style="verb">unauthenticated-manifest</spanx> and the guarantee is conditional;
with a pin that cannot be read, <spanx style="verb">trust-key-unreadable</spanx>; with a pin
the manifest does not answer to, <spanx style="verb">manifest-key-mismatch</spanx>; and with
a manifest that no presented receipt references,
<spanx style="verb">manifest-covers-no-receipt</spanx> (<spanx style="verb">MUST-T4-17</spanx>). A receipt that names
the manifest but departs from its amount, currency, expiry or,
where the manifest names one, payee is
reported as <spanx style="verb">manifest-terms-mismatch</spanx>; 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 (<spanx style="verb">MUST-T8-9</spanx>). An audit
presented with no Trade Manifest is not made conditional by this
step.</t>
  <t>Scope the receipts. Membership follows the ref binding first: a
receipt whose <spanx style="verb">ref</spanx> appears on the extract is reconciled against
this extract even when its own <spanx style="verb">timestampMs</spanx> falls outside the
declared window - the rail has signed that the settlement belongs
to the window, and the receipt follows its settlement. The
<spanx style="verb">timestampMs</spanx> sieve applies only to receipts the extract does not
name: such a receipt outside the window is not a completeness
failure against this extract (<spanx style="verb">MUST-T10-16</spanx>); 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 <spanx style="verb">clockSkewMs</spanx> of <spanx style="verb">windowEndMs</spanx>, and an
unmatched settlement record within <spanx style="verb">clockSkewMs</spanx> of
<spanx style="verb">windowStartMs</spanx>, are reported as <spanx style="verb">boundary-deferred</spanx>, 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 (<spanx style="verb">MUST-T10-17</spanx>). Where the following window's extract
is presented and verifies, a deferred receipt whose <spanx style="verb">ref</spanx> appears
on it is resolved and not reported, and one whose <spanx style="verb">ref</spanx> 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 <spanx style="verb">ref</spanx> 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 <spanx style="verb">ref</spanx>, 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>
  <t>Walk the attested receipts in issuer order. Issuer order is the
order induced by the <spanx style="verb">prevReceiptHash</spanx> chain: the verifier
rebuilds the chain from the links, and the order in which
receipts were presented carries no weight. <spanx style="verb">timestampMs</spanx> is
issuer-asserted and is not an ordering source. The first
<spanx style="verb">prevReceiptHash</spanx> <bcp14>MUST</bcp14> be null. Each later <spanx style="verb">prevReceiptHash</spanx> <bcp14>MUST</bcp14>
equal <spanx style="verb">receiptHash</spanx> 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 <spanx style="verb">receipt-chain-break</spanx> <bcp14>SHOULD</bcp14> be
used for this condition.</t>
  <t>Index the attested settled receipts and extract records by <spanx style="verb">ref</spanx>. A <spanx style="verb">ref</spanx>
that appears more than once on either side <bcp14>MUST</bcp14> be reported as a
repeated reference (<spanx style="verb">MUST-T10-6</spanx>). The identifier <spanx style="verb">duplicate-ref</spanx>
<bcp14>SHOULD</bcp14> be used for this condition.</t>
  <t>For each <spanx style="verb">ref</spanx> that appears exactly once on each side, require a
one-to-one match on <spanx style="verb">ref</spanx> AND <spanx style="verb">amount</spanx> AND <spanx style="verb">currency</spanx>
(<spanx style="verb">MUST-T10-1</spanx>), compared as exact octets on the terms of
<spanx style="verb">MUST-T8-2</spanx>; 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
<spanx style="verb">ref</spanx>. The identifier <spanx style="verb">settlement-mismatch</spanx> <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 <spanx style="verb">ref</spanx> (<spanx style="verb">MUST-T10-2</spanx>). The
identifier <spanx style="verb">settlement-without-receipt</spanx> <bcp14>SHOULD</bcp14> be used for this
condition. A settled receipt with no extract row <bcp14>MUST</bcp14> be reported
as a completeness failure (<spanx style="verb">MUST-T10-3</spanx>). The identifier
<spanx style="verb">receipt-without-settlement</spanx> <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
<spanx style="verb">settled-without-ref</spanx> <bcp14>SHOULD</bcp14> be used for this condition.
Where a settlement record declares a <spanx style="verb">beneficiary</spanx>
(<xref target="rail-extract"/>), it <bcp14>MUST</bcp14> be compared against the matched
receipt's <spanx style="verb">payee</spanx> as exact octets; a difference is
<spanx style="verb">beneficiary-mismatch</spanx> and fails the audit. Where neither the
manifest names a <spanx style="verb">payee</spanx> nor any settlement record declares a
<spanx style="verb">beneficiary</spanx>, the report <bcp14>MUST</bcp14> carry <spanx style="verb">counterparty-unbound</spanx>, 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>
  <t>A <spanx style="verb">ref</spanx> already reported as repeating <bcp14>MUST</bcp14> still be reconciled
by amount rather than dropped from the comparison
(<spanx style="verb">MUST-T10-13</spanx>). For each currency under that <spanx style="verb">ref</spanx>, 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 <spanx style="verb">settlement-without-receipt</spanx> <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 <spanx style="verb">ref</spanx>. The identifier
<spanx style="verb">settlement-mismatch</spanx> <bcp14>SHOULD</bcp14> be used for this condition. An
amount on that repeating <spanx style="verb">ref</spanx> that cannot be parsed as an
integer <bcp14>MUST</bcp14> be reported without abandoning the audit; the
identifier <spanx style="verb">malformed-amount</spanx> <bcp14>SHOULD</bcp14> be used for this condition.
A verifier <bcp14>MUST</bcp14> still report findings for the remaining records.</t>
  <t>Aborted receipts are not matched to extract rows and are not
added to totals.</t>
  <t>Decode each checkpoint. Reject a failed signature, and reject a
   <spanx style="verb">kid</spanx> that does not match the key obtained for the checkpoint
   issuer, on the same terms as a receipt (<spanx style="verb">MUST-T4-8</spanx>). Require
   <spanx style="verb">receiptCount</spanx>, <spanx style="verb">chainHeadHash</spanx>, and <spanx style="verb">totals</spanx> to match the
   attested receipts in <spanx style="verb">[startMs, endMs)</spanx> as defined above
   (<spanx style="verb">MUST-T11-2</spanx>); a receipt step 4 rejected is not among them,
   or a forged receipt could satisfy a checkpoint count. The identifier <spanx style="verb">checkpoint-total-mismatch</spanx>
   <bcp14>SHOULD</bcp14> be used for a failed signature, a wrong <spanx style="verb">receiptCount</spanx>,
   or totals that disagree, and <spanx style="verb">checkpoint-head-mismatch</spanx> for a
   <spanx style="verb">chainHeadHash</spanx> that is not the last link, in issuer order
   (step 6), of the chain inside <spanx style="verb">[startMs, endMs)</spanx> - "last
   receipt" binds to the chain, not to presentation or to
   <spanx style="verb">timestampMs</spanx>. If the
   signed <spanx style="verb">totals</spanx> 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 (<spanx style="verb">MUST-T11-12</spanx>). The
   identifier <spanx style="verb">checkpoint-totals-redacted</spanx> <bcp14>SHOULD</bcp14> be used for this
   condition. <spanx style="verb">receiptCount</spanx> and <spanx style="verb">chainHeadHash</spanx> <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>
  <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 (<spanx style="verb">MUST-T11-7</spanx>, <spanx style="verb">MUST-T11-8</spanx>). The identifier
<spanx style="verb">window-coverage</spanx> <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
<spanx style="verb">endMs</spanx>. 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>
  <t>Walk checkpoints in epoch order. <spanx style="verb">prevCheckpointHash</spanx> <bcp14>MUST</bcp14>
equal the SHA-256 of the previous checkpoint COSE bytes, or null
for genesis (<spanx style="verb">MUST-T11-4</spanx>). The identifier
<spanx style="verb">checkpoint-total-mismatch</spanx> <bcp14>SHOULD</bcp14> be used for a broken chain,
which is the fourth condition its table row names.</t>
  <t>If two successfully verified checkpoints share an epoch number
and have different hashes, the verifier <bcp14>MUST</bcp14> report
equivocation (<spanx style="verb">MUST-T11-3</spanx>). The identifier <spanx style="verb">equivocation</spanx>
<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: <spanx style="verb">MUST-T11-8</spanx>, 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>
  <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 (<spanx style="verb">MUST-T11-15</spanx>);
the identifier <spanx style="verb">unauthenticated-witness</spanx> <bcp14>SHOULD</bcp14> be used for this
condition.
Discard any whose signature fails (<spanx style="verb">MUST-T11-10</spanx>). 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 (<spanx style="verb">MUST-T11-16</spanx>).
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 (<spanx style="verb">MUST-T11-18</spanx>); a pair that fails,
or a candidate without a proof, is <spanx style="verb">witness-inclusion-invalid</spanx>
and the audit <bcp14>MUST</bcp14> fail. Where witness receipts were supplied
and no tier-2 pair was, report <spanx style="verb">witness-inclusion-not-exercised</spanx>
as a warning (<spanx style="verb">MUST-T11-19</spanx>): the witness attested the statement
hash, and log membership was not proven.</t>
  <t>Compare the surviving witness records against the presented
chain (<spanx style="verb">MUST-T11-11</spanx>). For each presented checkpoint with no
surviving record, report that it is not anchored; the
identifier <spanx style="verb">checkpoint-not-anchored</spanx> <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
<spanx style="verb">checkpoint-withheld</spanx> <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 (<spanx style="verb">MUST-T11-17</spanx>). 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 (<spanx style="verb">MUST-T11-11</spanx>).</t>
  <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 (<spanx style="verb">MUST-T10-4</spanx>).</t>
</list></t>

</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
(<spanx style="verb">MUST-T10-14</spanx>).</t>

<texttable>
      <ttcol align='left'>Code</ttcol>
      <ttcol align='left'>Effect</ttcol>
      <ttcol align='left'>Meaning</ttcol>
      <c>settlement-without-receipt</c>
      <c>audit fails</c>
      <c>Extract row has no matching settled receipt, or a repeating <spanx style="verb">ref</spanx> settled more than it receipted</c>
      <c>receipt-without-settlement</c>
      <c>audit fails</c>
      <c>Settled receipt ref is not on the extract</c>
      <c>settlement-mismatch</c>
      <c>audit fails</c>
      <c>Same <spanx style="verb">ref</spanx>, different amount or currency, including a repeating <spanx style="verb">ref</spanx> that settled less than it receipted</c>
      <c>duplicate-ref</c>
      <c>audit fails</c>
      <c>Ref appears more than once on one side</c>
      <c>settled-without-ref</c>
      <c>audit fails</c>
      <c><spanx style="verb">outcome</spanx> is settled and <spanx style="verb">x402PaymentRef</spanx> is null</c>
      <c>receipt-chain-break</c>
      <c>audit fails</c>
      <c>Signature or <spanx style="verb">prevReceiptHash</spanx> failed, or the links cannot place a receipt (issuer order, step 6)</c>
      <c>checkpoint-total-mismatch</c>
      <c>audit fails</c>
      <c>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 <spanx style="verb">issuer-key-mismatch</spanx> and never reaches the totals comparison</c>
      <c>checkpoint-head-mismatch</c>
      <c>audit fails</c>
      <c><spanx style="verb">chainHeadHash</spanx> 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</c>
      <c>equivocation</c>
      <c>audit fails</c>
      <c>Two distinct hashes for one epoch</c>
      <c>window-coverage</c>
      <c>audit fails</c>
      <c>Gap, overlap, or non-adjacent / non-consecutive windows</c>
      <c>unauthenticated-extract</c>
      <c>guarantee conditional</c>
      <c>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 <spanx style="verb">extract-key-mismatch</spanx> instead</c>
      <c>extract-key-mismatch</c>
      <c>audit fails</c>
      <c>Extract is signed by a key other than the pinned rail key, or does not verify against it</c>
      <c>settlement-comparison-skipped</c>
      <c>guarantee conditional</c>
      <c>The pinned rail key refused the presented extract, so its rows were not reconciled against the receipts (<spanx style="verb">MUST-T10-20</spanx>). The code says what did not run; the refusal itself is reported as <spanx style="verb">extract-key-mismatch</spanx></c>
      <c>trust-key-unreadable</c>
      <c>audit fails</c>
      <c>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</c>
      <c>issuer-key-mismatch</c>
      <c>audit fails</c>
      <c>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 <spanx style="verb">receipt-chain-break</spanx> when it claims the pin and fails, a checkpoint that claims the pin and fails is reported here and leaves its window uncovered</c>
      <c>countersign-key-mismatch</c>
      <c>conditional</c>
      <c>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"/>)</c>
      <c>countersign-missing</c>
      <c>conditional</c>
      <c>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</c>
      <c>unauthenticated-issuer</c>
      <c>conditional</c>
      <c>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</c>
      <c>unauthenticated-witness</c>
      <c>conditional</c>
      <c>No verifier-supplied witness key; inclusion receipts were left out of the comparison</c>
      <c>unauthenticated-countersigner</c>
      <c>conditional</c>
      <c>No verifier-supplied payee key; a countersignature is present but proves no approval</c>
      <c>unauthenticated-manifest</c>
      <c>conditional</c>
      <c>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 (<spanx style="verb">manifest-key-mismatch</spanx>) 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</c>
      <c>manifest-key-mismatch</c>
      <c>audit fails</c>
      <c>A presented Trade Manifest is signed by a key other than the pinned publisher key, or does not verify against it</c>
      <c>manifest-covers-no-receipt</c>
      <c>conditional</c>
      <c>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 <spanx style="verb">manifest-key-mismatch</spanx> as well</c>
      <c>manifest-terms-mismatch</c>
      <c>audit fails under a usable issuer pin; warning without one</c>
      <c>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 <spanx style="verb">MUST-T8-2</spanx> and <spanx style="verb">MUST-T3-3</spanx> would have refused the payment. The two severities are the two branches of <spanx style="verb">MUST-T8-9</spanx></c>
      <c>witness-entry-unattributable</c>
      <c>conditional</c>
      <c>The witness holds a statement this chain does not present, carrying no body to say whose it is</c>
      <c>extract-scope-mismatch</c>
      <c>audit fails</c>
      <c>A record falls outside the declared window, or the extract does not cover the expected account, rail, or window</c>
      <c>extract-settlement-mismatch</c>
      <c>audit fails</c>
      <c>A caller-supplied settlement list disagrees with the extract on <spanx style="verb">ref</spanx>, 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 <spanx style="verb">beneficiary-mismatch</spanx>, against the receipt payee</c>
      <c>malformed-amount</c>
      <c>audit fails</c>
      <c>An amount on a <spanx style="verb">ref</spanx> already reported as repeating that could not be parsed as an integer</c>
      <c>unstated-audit-window</c>
      <c>guarantee conditional</c>
      <c>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 <spanx style="verb">unauthenticated-extract</spanx> is the condition reported</c>
      <c>unstated-audit-scope</c>
      <c>guarantee conditional</c>
      <c>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 <spanx style="verb">unauthenticated-extract</spanx></c>
      <c>countersign-bad</c>
      <c>conditional</c>
      <c>Present payee countersignature failed verify (signature, content type, or payload binding); unattributable, discarded as approval evidence. One verifiable under another key is <spanx style="verb">countersign-key-mismatch</spanx></c>
      <c>checkpoint-withheld</c>
      <c>audit fails</c>
      <c>A verified witness receipt binds a checkpoint the presented chain does not contain</c>
      <c>checkpoint-not-anchored</c>
      <c>guarantee conditional</c>
      <c>A witness was supplied and holds no verified receipt for this checkpoint</c>
      <c>checkpoint-totals-redacted</c>
      <c>guarantee conditional</c>
      <c>The checkpoint was signed with <spanx style="verb">totals</spanx> null, so the totals comparison could not be made</c>
      <c>carried-key-mismatch</c>
      <c>conditional</c>
      <c>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"/>)</c>
      <c>boundary-deferred</c>
      <c>conditional</c>
      <c>An unmatched item sits within the declared <spanx style="verb">clockSkewMs</spanx> of the window edge; deferred to the adjacent window rather than reported as a completeness failure (step 5)</c>
      <c>beneficiary-mismatch</c>
      <c>audit fails</c>
      <c>A settlement record declares a <spanx style="verb">beneficiary</spanx> and the matched receipt's <spanx style="verb">payee</spanx> differs</c>
      <c>counterparty-unbound</c>
      <c>scope record; verdict and guarantee unchanged</c>
      <c>Neither the manifest names a <spanx style="verb">payee</spanx> nor any settlement record declares a <spanx style="verb">beneficiary</spanx>: ref, amount and currency closed against the payer's account extract, and the counterparty's identity was not bound</c>
      <c>delivery-mismatch</c>
      <c>audit fails</c>
      <c>An attributable countersignature carries <spanx style="verb">deliveredHash</spanx> and it differs from the acceptance-criteria hash of a Trade Manifest the audit did not refuse; both ends are signed (<spanx style="verb">MAY-T8-11</spanx>). Where a stated publisher pin refuses the manifest, its acceptance hash founds nothing and this comparison is not made (<spanx style="verb">MUST-T8-9</spanx>)</c>
      <c>witness-inclusion-invalid</c>
      <c>audit fails</c>
      <c>The tier-2 candidate bytes and inclusion proof do not reproduce a witness-signed tree head, or a candidate was supplied without a proof (<spanx style="verb">MUST-T11-18</spanx>)</c>
      <c>witness-inclusion-not-exercised</c>
      <c>conditional</c>
      <c>Witness receipts were supplied and no tier-2 pair was, so log membership was not proven (<spanx style="verb">MUST-T11-19</spanx>). 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 <spanx style="verb">unauthenticated-witness</spanx></c>
      <c>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)</c>
      <c>audit fails</c>
      <c>A hash-shaped claim does not match the 64-lowercase-hex grammar of <xref target="receipt-labels"/>; the claim is named in the code</c>
</texttable>

<t>A finding that puts the extract itself in doubt (<spanx style="verb">extract-key-mismatch</spanx>,
<spanx style="verb">trust-key-unreadable</spanx>, <spanx style="verb">extract-scope-mismatch</spanx>, or
<spanx style="verb">extract-settlement-mismatch</spanx>) <bcp14>MUST</bcp14> also prevent an unconditional
guarantee, not merely fail the audit. A finding that puts a presented
Trade Manifest in doubt (<spanx style="verb">manifest-key-mismatch</spanx>, or
<spanx style="verb">trust-key-unreadable</spanx> 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
(<spanx style="verb">checkpoint-totals-redacted</spanx>) removes a comparison the guarantee
rests on, and a presented checkpoint a supplied witness does not
hold (<spanx style="verb">checkpoint-not-anchored</spanx>) 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 (<spanx style="verb">MUST-T10-14</spanx>). 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
(<spanx style="verb">SHOULD-T11-5</spanx>). A test deployment <bcp14>MAY</bcp14> use an in-process
append-only log as the witness (<spanx style="verb">MAY-T11-6</spanx>). 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 (<spanx style="verb">MUST-T11-9</spanx>).
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>

<t><list style="numbers" type="1">
  <t><strong>Manifest.</strong> Parties sign a Trade Manifest (optional for metered
API spend; required for goods with acceptance criteria).</t>
  <t><strong>Policy check.</strong> The adapter submits a structured request to the
PDP. Default is deny. An allow is a Decision Token
(<spanx style="verb">MUST-T6-4</spanx>).</t>
  <t><strong>Payment.</strong> On allow, the adapter performs the x402 (or other
rail) exchange using exactly the decision fields (<spanx style="verb">MUST-T6-1</spanx>).
The Decision Token is consumed (<spanx style="verb">MUST-T6-2</spanx>). A reused nonce is
denied (<spanx style="verb">MUST-T3-1</spanx>, <spanx style="verb">MUST-T3-2</spanx>). A tampered or expired token
is denied (<spanx style="verb">MUST-T6-5</spanx>).</t>
  <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 (<spanx style="verb">MUST-T5-2</spanx>, <spanx style="verb">MUST-T7-1</spanx>).</t>
  <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 (<spanx style="verb">MUST-T8-3</spanx>).
The bundle <bcp14>MUST NOT</bcp14> be described as an arbitral award or escrow
release (<spanx style="verb">MUST-T8-4</spanx>).</t>
</list></t>

</section>
<section anchor="policy-semantics"><name>Policy Semantics</name>

<t>Policy is default deny. The engine understands three families of
rule:</t>

<t><list style="symbols">
  <t><strong>Limit:</strong> maximum amount per payment; maximum cumulative amount
per window (<spanx style="verb">MUST-T2-2</spanx>).</t>
  <t><strong>Velocity:</strong> maximum number of allowed payments per window
(<spanx style="verb">MUST-T2-1</spanx>).</t>
  <t><strong>Scope:</strong> optional allow-lists for payee, currency, and tool
name.</t>
</list></t>

<t>Fail-closed: missing engine, crash, or exception yields deny
(<spanx style="verb">MUST-T2-3</spanx>). Implementations <bcp14>SHOULD</bcp14> emit stable reason codes
(<spanx style="verb">SHOULD-T2-5</spanx>). Decision tokens <bcp14>SHOULD</bcp14> expire after a short TTL
(<spanx style="verb">SHOULD-T6-3</spanx>).</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 (<spanx style="verb">MUST-T5-1</spanx>).</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
<spanx style="verb">policyHash</spanx> 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
(<spanx style="verb">MUST-T11-14</spanx>). Its Signed Statement carries the checkpoint
COSE_Sign1 object as the payload and <spanx style="verb">application/cedulon-checkpoint+cbor</spanx>
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 (<spanx style="verb">SHOULD-T11-5</spanx>) 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 (<spanx style="verb">MUST-T9-1</spanx>). Implementations <bcp14>MUST NOT</bcp14> write
government-ID numbers, payment-instrument PAN, or street address
into a public statement (<spanx style="verb">MUST-T9-2</spanx>). Default public anchors
<bcp14>SHOULD</bcp14> publish <spanx style="verb">policyHash</spanx>, <spanx style="verb">manifestHash</spanx>, <spanx style="verb">receiptHash</spanx>, and
<spanx style="verb">timestampMs</spanx> rather than full claims (<spanx style="verb">SHOULD-T9-3</spanx>). A private
auditor <bcp14>MAY</bcp14> receive an unredacted receipt out of band
(<spanx style="verb">MAY-T9-4</spanx>).</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 (<spanx style="verb">MUST-T9-5</spanx>). -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"/>: <spanx style="verb">totals</spanx> <bcp14>MAY</bcp14> be
withheld by signing it as null (<spanx style="verb">MUST-T11-12</spanx>), and only that form
counts as a redaction (<spanx style="verb">MUST-T11-13</spanx>). 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 <spanx style="verb">THREAT_MODEL.md</spanx> 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>

<texttable>
      <ttcol align='left'>ID</ttcol>
      <ttcol align='left'>Requirement</ttcol>
      <c><bcp14>MUST</bcp14>-T1-1</c>
      <c>The PDP <bcp14>MUST</bcp14> decide from structured request fields and stored policy, not from model-generated prose.</c>
      <c><bcp14>MUST</bcp14>-T1-2</c>
      <c>A spend that is not bound to a verified Trade Manifest <bcp14>MUST</bcp14> be marked <spanx style="verb">noManifest</spanx> on the Spend Receipt and <bcp14>MUST</bcp14> still be subject to limit, velocity, and scope policy.</c>
      <c><bcp14>SHOULD</bcp14>-T1-3</c>
      <c>Hosts <bcp14>SHOULD</bcp14> require a human confirmation channel for first-use payees.</c>
      <c><bcp14>MAY</bcp14>-T1-4</c>
      <c>An implementation <bcp14>MAY</bcp14> refuse all <spanx style="verb">noManifest</spanx> spend.</c>
</texttable>

</section>
<section anchor="t2-runaway-agent-loop-spend"><name>T2: Runaway agent (loop spend)</name>

<texttable>
      <ttcol align='left'>ID</ttcol>
      <ttcol align='left'>Requirement</ttcol>
      <c><bcp14>MUST</bcp14>-T2-1</c>
      <c>Policy <bcp14>MUST</bcp14> express a maximum payment count per configured time window (velocity).</c>
      <c><bcp14>MUST</bcp14>-T2-2</c>
      <c>Policy <bcp14>MUST</bcp14> express a maximum amount per payment and a maximum cumulative amount per window.</c>
      <c><bcp14>MUST</bcp14>-T2-3</c>
      <c>If the PDP is unreachable, uninitialized, or throws during evaluation, the spend <bcp14>MUST</bcp14> be denied (fail-closed, default deny).</c>
      <c><bcp14>MUST</bcp14>-T2-4</c>
      <c>A denied attempt <bcp14>MUST NOT</bcp14> increment the allowed-spend counters as if it had succeeded.</c>
      <c><bcp14>SHOULD</bcp14>-T2-5</c>
      <c>Implementations <bcp14>SHOULD</bcp14> emit a stable reason code for velocity and limit denials.</c>
</texttable>

</section>
<section anchor="t3-replay-of-payment-authority"><name>T3: Replay of payment authority</name>

<texttable>
      <ttcol align='left'>ID</ttcol>
      <ttcol align='left'>Requirement</ttcol>
      <c><bcp14>MUST</bcp14>-T3-1</c>
      <c>Every spend attempt that the PDP allows <bcp14>MUST</bcp14> include a nonce that the implementation has not accepted before.</c>
      <c><bcp14>MUST</bcp14>-T3-2</c>
      <c>A second attempt that reuses a nonce <bcp14>MUST</bcp14> be denied.</c>
      <c><bcp14>MUST</bcp14>-T3-3</c>
      <c>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 <spanx style="verb">expiresAtMs</spanx>; a settlement at exactly <spanx style="verb">expiresAtMs</spanx> is within the manifest. -03 said "expired" without fixing the boundary, which two implementations can read two ways.</c>
      <c><bcp14>MUST</bcp14>-T3-4</c>
      <c>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.</c>
      <c><bcp14>SHOULD</bcp14>-T3-5</c>
      <c>Nonce stores <bcp14>SHOULD</bcp14> persist across process restart when the deployment is not a test fixture.</c>
</texttable>

</section>
<section anchor="t4-receipt-forgery-or-repudiation"><name>T4: Receipt forgery or repudiation</name>

<texttable>
      <ttcol align='left'>ID</ttcol>
      <ttcol align='left'>Requirement</ttcol>
      <c><bcp14>MUST</bcp14>-T4-1</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T4-2</c>
      <c>Verifiers <bcp14>MUST</bcp14> reject a receipt whose signature does not validate or whose canonical bytes do not match the signed payload.</c>
      <c><bcp14>MUST</bcp14>-T4-3</c>
      <c>A Spend Receipt <bcp14>MUST</bcp14> include <spanx style="verb">payer</spanx>, <spanx style="verb">payee</spanx>, <spanx style="verb">amount</spanx>, <spanx style="verb">currency</spanx>, <spanx style="verb">policyHash</spanx>, <spanx style="verb">timestampMs</spanx>, and <spanx style="verb">nonce</spanx>.</c>
      <c><bcp14>MUST</bcp14>-T4-4</c>
      <c>A Spend Receipt <bcp14>MUST</bcp14> include <spanx style="verb">manifestHash</spanx> or an explicit <spanx style="verb">noManifest</spanx> flag, never an ambiguous empty hash. Empty optional values are CBOR null; labels are never absent.</c>
      <c><bcp14>SHOULD</bcp14>-T4-5</c>
      <c>Receipts <bcp14>SHOULD</bcp14> form a hash chain (<spanx style="verb">prevReceiptHash</spanx>) so omission is detectable within one issuer stream.</c>
      <c><bcp14>MAY</bcp14>-T4-6</c>
      <c>Parties <bcp14>MAY</bcp14> register the signed receipt as a SCITT statement to obtain a COSE receipt.</c>
      <c><bcp14>MUST</bcp14>-T4-7</c>
      <c>A Spend Receipt <bcp14>MUST</bcp14> include <spanx style="verb">outcome</spanx> (<spanx style="verb">settled</spanx> or <spanx style="verb">aborted</spanx>). A settled receipt <bcp14>MUST</bcp14> have a non-null rail ref. Aborted receipts <bcp14>MUST NOT</bcp14> enter checkpoint totals.</c>
      <c><bcp14>MUST</bcp14>-T4-8</c>
      <c>COSE_Sign1 protected headers <bcp14>MUST</bcp14> use alg -19 (Ed25519), a mandatory <spanx style="verb">kid</spanx>, and a payload-specific content type. Verifiers <bcp14>MUST</bcp14> reject a <spanx style="verb">kid</spanx> that does not match the configured issuer key.</c>
      <c><bcp14>MUST</bcp14>-T4-9</c>
      <c>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 (<spanx style="verb">MUST-T4-11</spanx>); 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.</c>
      <c><bcp14>MUST</bcp14>-T4-10</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T4-11</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T4-12</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T4-13</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T4-14</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T4-15</c>
      <c>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 <spanx style="verb">trust-key-unreadable</spanx>; a readable pin the manifest does not answer to <bcp14>MUST</bcp14> be reported as <spanx style="verb">manifest-key-mismatch</spanx> 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.</c>
      <c><bcp14>MUST</bcp14>-T4-16</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T4-17</c>
      <c>A verifier presented with a Trade Manifest <bcp14>MUST</bcp14> compare the manifest hash against the <spanx style="verb">manifestHash</spanx> 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.</c>
      <c><bcp14>MUST</bcp14>-T4-18</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T4-19</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T4-20</c>
      <c>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 (<spanx style="verb">json-duplicate-key</spanx>), 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.</c>
      <c><bcp14>MUST</bcp14>-T4-21</c>
      <c>A decoder <bcp14>MUST</bcp14> refuse a COSE_Sign1 message whose unprotected header is not an empty map, by name (<spanx style="verb">cose-sign1-unprotected</spanx>), 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.</c>
</texttable>

</section>
<section anchor="t5-policy-bypass-via-direct-rail-access"><name>T5: Policy bypass via direct rail access</name>

<texttable>
      <ttcol align='left'>ID</ttcol>
      <ttcol align='left'>Requirement</ttcol>
      <c><bcp14>MUST</bcp14>-T5-1</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T5-2</c>
      <c>Rail credentials, wallet handles, and facilitator tokens <bcp14>MUST NOT</bcp14> be placed in tool results or prompts.</c>
      <c><bcp14>SHOULD</bcp14>-T5-3</c>
      <c>Hosts <bcp14>SHOULD</bcp14> run the PDP and signing keys in a process the model runtime cannot write.</c>
      <c><bcp14>MAY</bcp14>-T5-4</c>
      <c>A deployment <bcp14>MAY</bcp14> use OS or hardware isolation between the model and the PDP.</c>
</texttable>

</section>
<section anchor="t6-toctou-between-policy-check-and-payment"><name>T6: TOCTOU between policy check and payment</name>

<texttable>
      <ttcol align='left'>ID</ttcol>
      <ttcol align='left'>Requirement</ttcol>
      <c><bcp14>MUST</bcp14>-T6-1</c>
      <c>Payment settlement <bcp14>MUST</bcp14> use the same six <spanx style="verb">requestHash</spanx> fields the PDP evaluated: amount, currency, payee, tool, nonce, and <spanx style="verb">manifestHash</spanx>.</c>
      <c><bcp14>MUST</bcp14>-T6-2</c>
      <c>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.</c>
      <c><bcp14>SHOULD</bcp14>-T6-3</c>
      <c>Implementations <bcp14>SHOULD</bcp14> treat a decision older than a short TTL as expired.</c>
      <c><bcp14>MUST</bcp14>-T6-4</c>
      <c>An allow Decision Token <bcp14>MUST</bcp14> be COSE_Sign1 with CWT private-use labels -70301..-70305 (<spanx style="verb">requestHash</spanx>, <spanx style="verb">policyHash</spanx>, <spanx style="verb">expiryMs</spanx>, <spanx style="verb">nonce</spanx>, <spanx style="verb">singleUseId</spanx>) and content type <spanx style="verb">application/cedulon-decision+cbor</spanx>.</c>
      <c><bcp14>MUST</bcp14>-T6-5</c>
      <c>A party that accepts a Decision Token <bcp14>MUST</bcp14> reject a failed signature, a <spanx style="verb">kid</spanx> or content-type mismatch, a claim-map mismatch, or an expired <spanx style="verb">expiryMs</spanx>. The token is expired when the evaluation time is strictly greater than <spanx style="verb">expiryMs</spanx>; at exactly <spanx style="verb">expiryMs</spanx> it is not.</c>
      <c><bcp14>MUST</bcp14>-T6-6</c>
      <c>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.</c>
</texttable>

</section>
<section anchor="t7-signing-key-leakage"><name>T7: Signing-key leakage</name>

<texttable>
      <ttcol align='left'>ID</ttcol>
      <ttcol align='left'>Requirement</ttcol>
      <c><bcp14>MUST</bcp14>-T7-1</c>
      <c>Secret key material <bcp14>MUST NOT</bcp14> appear in receipts, checkpoints, manifests, decision tokens, logs, or example output.</c>
      <c><bcp14>MUST</bcp14>-T7-2</c>
      <c>Example and test keys <bcp14>MUST</bcp14> be generated at runtime or stored as clearly fake fixtures, never as production secrets.</c>
      <c><bcp14>SHOULD</bcp14>-T7-3</c>
      <c>Production deployments <bcp14>SHOULD</bcp14> use an HSM or OS key store and <bcp14>SHOULD</bcp14> rotate keys.</c>
      <c><bcp14>MAY</bcp14>-T7-4</c>
      <c>Implementations <bcp14>MAY</bcp14> encrypt keys at rest.</c>
      <c><bcp14>MUST</bcp14>-T7-5</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T7-6</c>
      <c>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.</c>
</texttable>

</section>
<section anchor="t8-counterparty-price-gouging-or-defective-delivery"><name>T8: Counterparty price gouging or defective delivery</name>

<texttable>
      <ttcol align='left'>ID</ttcol>
      <ttcol align='left'>Requirement</ttcol>
      <c><bcp14>MUST</bcp14>-T8-1</c>
      <c>A Trade Manifest <bcp14>MUST</bcp14> bind goods or service description, price, currency, acceptance-criteria hash, cancel condition, and expiry.</c>
      <c><bcp14>MUST</bcp14>-T8-2</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T8-3</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T8-4</c>
      <c>The Dispute Evidence Bundle <bcp14>MUST NOT</bcp14> be described as an arbitral award or escrow release.</c>
      <c><bcp14>MUST</bcp14>-T8-7</c>
      <c><spanx style="verb">manifestHash</spanx> <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.</c>
      <c><bcp14>SHOULD</bcp14>-T8-5</c>
      <c>Manifests <bcp14>SHOULD</bcp14> reference an AP2 mandate hash when one exists.</c>
      <c><bcp14>MAY</bcp14>-T8-6</c>
      <c>Parties <bcp14>MAY</bcp14> add an optional escrow actor as a third-party role interface; this project <bcp14>MUST NOT</bcp14> implement custody.</c>
      <c><bcp14>MUST</bcp14>-T8-custody</c>
      <c>Implementations of this specification <bcp14>MUST NOT</bcp14> take custody of funds or operate escrow.</c>
      <c><bcp14>MUST</bcp14>-T8-8</c>
      <c>If a payee countersignature is present, a verifier <bcp14>MUST</bcp14> reject it when the signature fails, when <spanx style="verb">kid</spanx> or content type does not match the configured payee key, or when the payload is not the issuer COSE_Sign1 bytes.</c>
      <c><bcp14>MUST</bcp14>-T8-9</c>
      <c>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 <spanx style="verb">MUST-T8-2</spanx>, time on the boundary of <spanx style="verb">MUST-T3-3</spanx>, and, where the manifest names a <spanx style="verb">payee</spanx>, 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 <spanx style="verb">MUST-T4-17</spanx> on purpose. That requirement asks whether terms were named, which an unattributable document can answer; this one makes an accusation, which it cannot. <spanx style="verb">MUST-T8-2</spanx> and <spanx style="verb">MUST-T3-3</spanx> 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 <spanx style="verb">manifest-key-mismatch</spanx>, 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.</c>
      <c><bcp14>MAY</bcp14>-T8-10</c>
      <c>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.</c>
      <c><bcp14>MAY</bcp14>-T8-11</c>
      <c>An attributable countersignature <bcp14>MAY</bcp14> carry <spanx style="verb">deliveredHash</spanx>. When present and the verifier holds the Trade Manifest, the verifier <bcp14>MUST</bcp14> compare it against <spanx style="verb">acceptanceCriteriaHash</spanx> as exact octets and <bcp14>MUST</bcp14> report a mismatch as a failing finding (<spanx style="verb">delivery-mismatch</spanx>): both ends of that comparison are signed. A <spanx style="verb">deliveredHash</spanx> on an unattributable countersignature <bcp14>MUST</bcp14> be discarded with it.</c>
</texttable>

</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>

<texttable>
      <ttcol align='left'>ID</ttcol>
      <ttcol align='left'>Requirement</ttcol>
      <c><bcp14>MUST</bcp14>-T9-1</c>
      <c>A transparency encoding <bcp14>MUST</bcp14> support omitting or hashing payer/payee identifiers and <bcp14>MUST</bcp14> support amount redaction or range/bucket encoding.</c>
      <c><bcp14>MUST</bcp14>-T9-2</c>
      <c>Implementations <bcp14>MUST NOT</bcp14> write raw government-ID, payment-instrument PAN, or street address fields into a public transparency statement.</c>
      <c><bcp14>SHOULD</bcp14>-T9-3</c>
      <c>Default public anchors <bcp14>SHOULD</bcp14> publish <spanx style="verb">policyHash</spanx>, <spanx style="verb">manifestHash</spanx>, <spanx style="verb">receiptHash</spanx>, and timestamp rather than full claim sets.</c>
      <c><bcp14>MAY</bcp14>-T9-4</c>
      <c>A private auditor <bcp14>MAY</bcp14> receive an unredacted receipt out of band.</c>
      <c><bcp14>MUST</bcp14>-T9-5</c>
      <c>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.</c>
</texttable>

</section>
<section anchor="t10-secret-spend-via-rail-bypass"><name>T10: Secret spend via rail bypass</name>

<t>See <xref target="reconciliation"/>.</t>

<texttable>
      <ttcol align='left'>ID</ttcol>
      <ttcol align='left'>Requirement</ttcol>
      <c><bcp14>MUST</bcp14>-T10-1</c>
      <c>A verifier <bcp14>MUST</bcp14> match each extract settlement to a settled receipt on <spanx style="verb">ref</spanx> AND <spanx style="verb">amount</spanx> AND <spanx style="verb">currency</spanx>. 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.</c>
      <c><bcp14>MUST</bcp14>-T10-2</c>
      <c>A settlement with no matching receipt <bcp14>MUST</bcp14> be reported as a completeness failure identified by that settlement <spanx style="verb">ref</spanx>.</c>
      <c><bcp14>MUST</bcp14>-T10-3</c>
      <c>A settled Spend Receipt whose <spanx style="verb">x402PaymentRef</spanx> is not on the extract <bcp14>MUST</bcp14> be reported as a completeness failure.</c>
      <c><bcp14>MUST</bcp14>-T10-4</c>
      <c>An audit that has any fail-severity completeness finding <bcp14>MUST</bcp14> fail (non-zero status in the companion tool).</c>
      <c><bcp14>SHOULD</bcp14>-T10-5</c>
      <c>Hosts <bcp14>SHOULD</bcp14> still apply T5 (no ungated rail in the model process). Completeness does not replace prevention.</c>
      <c><bcp14>MUST</bcp14>-T10-6</c>
      <c>A <spanx style="verb">ref</spanx> that appears more than once among settled receipts or among extract rows <bcp14>MUST</bcp14> be reported as <spanx style="verb">duplicate-ref</spanx>.</c>
      <c><bcp14>MUST</bcp14>-T10-7</c>
      <c>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 <spanx style="verb">unauthenticated-extract</spanx>, 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.</c>
      <c><bcp14>MUST</bcp14>-T10-8</c>
      <c>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 <spanx style="verb">unauthenticated-extract</spanx>.</c>
      <c><bcp14>MUST</bcp14>-T10-9</c>
      <c>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 <spanx style="verb">trust-key-unreadable</spanx>, not as a key mismatch.</c>
      <c><bcp14>MUST</bcp14>-T10-10</c>
      <c>Every settlement record whose <spanx style="verb">timestampMs</spanx> falls outside the extract's declared window <bcp14>MUST</bcp14> be reported as <spanx style="verb">extract-scope-mismatch</spanx>, identified by that record's <spanx style="verb">ref</spanx>. This check <bcp14>MUST</bcp14> run whether or not a key is pinned.</c>
      <c><bcp14>MUST</bcp14>-T10-11</c>
      <c>When the verifier states an expected account, rail, or window, an extract that does not cover it <bcp14>MUST</bcp14> fail closed as <spanx style="verb">extract-scope-mismatch</spanx>.</c>
      <c><bcp14>MUST</bcp14>-T10-12</c>
      <c>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 <spanx style="verb">extract-settlement-mismatch</spanx>.</c>
      <c><bcp14>MUST</bcp14>-T10-13</c>
      <c>A <spanx style="verb">ref</spanx> reported as <spanx style="verb">duplicate-ref</spanx> <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 <spanx style="verb">malformed-amount</spanx> without aborting the audit.</c>
      <c><bcp14>MUST</bcp14>-T10-14</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T10-15</c>
      <c>A verifier that has not stated the period under audit <bcp14>MUST</bcp14> emit <spanx style="verb">unstated-audit-window</spanx> and <bcp14>MUST</bcp14> treat the guarantee as conditional, because an unstated period leaves the extract free to define its own.</c>
      <c><bcp14>MUST</bcp14>-T10-16</c>
      <c>When an extract is supplied, a receipt whose <spanx style="verb">ref</spanx> appears on it is reconciled against it regardless of its own <spanx style="verb">timestampMs</spanx>; 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.</c>
      <c><bcp14>MUST</bcp14>-T10-17</c>
      <c>An unmatched settled receipt within the declared <spanx style="verb">clockSkewMs</spanx> of <spanx style="verb">windowEndMs</spanx>, and an unmatched settlement record within it of <spanx style="verb">windowStartMs</spanx>, <bcp14>MUST</bcp14> be reported as <spanx style="verb">boundary-deferred</spanx>, 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 <spanx style="verb">ref</spanx>; an opening-edge deferral resolves only against a receipt in the presented bag that names its <spanx style="verb">ref</spanx>, and a following extract does not harden it. Absent a declared <spanx style="verb">clockSkewMs</spanx>, the profile default of 300000 milliseconds applies.</c>
      <c><bcp14>MUST</bcp14>-T10-18</c>
      <c>A verifier that has not stated the account or the rail under audit <bcp14>MUST</bcp14> emit <spanx style="verb">unstated-audit-scope</spanx> 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 (<spanx style="verb">MUST-T10-15</spanx>).</c>
      <c><bcp14>MUST</bcp14>-T10-19</c>
      <c>A report <bcp14>MUST</bcp14> name the account, rail and window the extract declared, in the printed report, in the finding object it returns, and in every other structure the implementation returns for that audit, a tool result or an export included. 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. Where no extract was presented there is no declared population, and the structure names none.</c>
      <c><bcp14>MUST</bcp14>-T10-20</c>
      <c>Where a stated rail pin refuses the presented extract and the verifier reports <spanx style="verb">extract-key-mismatch</spanx>, 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 <spanx style="verb">MUST-T8-9</spanx>'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 <spanx style="verb">settlement-comparison-skipped</spanx> in the same result. A pinned key the verifier cannot decode is <spanx style="verb">trust-key-unreadable</spanx> and is not a refusal of the document, so it does not reach this requirement.</c>
</texttable>

<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>

<texttable>
      <ttcol align='left'>ID</ttcol>
      <ttcol align='left'>Requirement</ttcol>
      <c><bcp14>MUST</bcp14>-T11-1</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T11-2</c>
      <c>Verifiers <bcp14>MUST</bcp14> reject a checkpoint whose signature fails, whose totals do not match settled receipts in the declared window, whose <spanx style="verb">receiptCount</spanx> is wrong, or whose <spanx style="verb">chainHeadHash</spanx> is not the hash of the last in-window receipt in issuer order (the <spanx style="verb">prevReceiptHash</spanx> 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.</c>
      <c><bcp14>MUST</bcp14>-T11-3</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T11-4</c>
      <c>A broken checkpoint hash chain <bcp14>MUST</bcp14> fail verification.</c>
      <c><bcp14>SHOULD</bcp14>-T11-5</c>
      <c>Checkpoints <bcp14>SHOULD</bcp14> be registered with a Transparency Service when one is configured.</c>
      <c><bcp14>MAY</bcp14>-T11-6</c>
      <c>A test deployment <bcp14>MAY</bcp14> use an in-process append-only log as the witness.</c>
      <c><bcp14>MUST</bcp14>-T11-7</c>
      <c>Checkpoint windows <bcp14>MUST</bcp14> be half-open <spanx style="verb">[startMs, endMs)</spanx>. Every chained receipt <bcp14>MUST</bcp14> fall in exactly one window.</c>
      <c><bcp14>MUST</bcp14>-T11-8</c>
      <c>Presented checkpoint epochs <bcp14>MUST</bcp14> be consecutive and adjacent windows <bcp14>MUST</bcp14> meet at <spanx style="verb">endMs = next.startMs</spanx>.</c>
      <c><bcp14>MUST</bcp14>-T11-9</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T11-10</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T11-11</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T11-12</c>
      <c>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; <spanx style="verb">receiptCount</spanx> and <spanx style="verb">chainHeadHash</spanx> <bcp14>MUST</bcp14> still be checked.</c>
      <c><bcp14>MUST</bcp14>-T11-13</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T11-14</c>
      <c>An epoch checkpoint <bcp14>MUST</bcp14> be registrable as a Signed Statement carrying the checkpoint COSE object with content type <spanx style="verb">application/cedulon-checkpoint+cbor</spanx>.</c>
      <c><bcp14>MUST</bcp14>-T11-15</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T11-16</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T11-17</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T11-18</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T11-19</c>
      <c>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.</c>
</texttable>

<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><spanx style="verb">kid</spanx> identifies the verification key. This -08 does not specify
a revocation list. Verifiers <bcp14>MUST</bcp14> pin the issuer keys they
accept and <bcp14>MUST</bcp14> stop accepting a <spanx style="verb">kid</spanx> after an authenticated
revocation signal.</t>
  </dd>
  <dt>Timestamp trust:</dt>
  <dd>
    <t><spanx style="verb">timestampMs</spanx> 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
(<spanx style="verb">MAY-T8-6</spanx>). Implementations of this specification <bcp14>MUST NOT</bcp14> take
custody or operate escrow (<spanx style="verb">MUST-T8-custody</spanx>).</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
<spanx style="verb">settlement-without-receipt</spanx> 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>

<texttable>
      <ttcol align='left'>ID</ttcol>
      <ttcol align='left'>Requirement</ttcol>
      <c><bcp14>MUST</bcp14>-T12-1</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T12-2</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T12-3</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T12-4</c>
      <c>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.</c>
</texttable>

<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 (<spanx style="verb">MUST-T12-1</spanx>), 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 (<spanx style="verb">MUST-T12-2</spanx>). That undo is what the in-process
<spanx style="verb">RailLedger</spanx> 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 (<spanx style="verb">MUST-T12-4</spanx>).</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 (<spanx style="verb">MUST-T12-3</spanx>): 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
<spanx style="verb">settlement-without-receipt</spanx>, 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 <spanx style="verb">+cbor</spanx> 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 <spanx style="verb">content type</spanx> header parameter
(label 3) of that object (<xref target="cose-profile"/>). The value is a normative
check inside a protected header (<spanx style="verb">MUST-T4-8</spanx>, <spanx style="verb">MUST-T6-5</spanx>), 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,
<spanx style="verb">-70001</spanx> through <spanx style="verb">-70402</spanx> (<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 (<spanx style="verb">MUST-T4-18</spanx>), an input beyond its
stated bounds (<spanx style="verb">MUST-T4-19</spanx>), and a non-empty unprotected header
(<spanx style="verb">MUST-T4-21</spanx>) 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 <spanx style="verb">totals</spanx> 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 <spanx style="verb">payee</spanx> 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
<spanx style="verb">deliveredHash</spanx> 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"/>,
<spanx style="verb">MUST-T11-15</spanx>). 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 -08 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
<spanx style="verb">661755c600aede25451ce3a67df4a45d0d964c7b9196dc725dd310723eb8a49f</spanx>.
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, <spanx style="verb">policyHash</spanx> 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
<spanx style="verb">0f1fe8859faf25de906b08142674f1270656d8ea7bfc00853c2fc6e9d3f5a10b</spanx>,
against archive bytes SHA-256
<spanx style="verb">fc8962b3daeed9f8e5b1c2b7d26d605c14873d9de1cbf35743ce59af2c7aa62e</spanx>.
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 the previous four revisions, and
the widening this revision makes to <spanx style="verb">MUST-T10-19</spanx>, are implemented
and covered by a red-then-green case before
appearing in this text, except the reversal branch of <spanx style="verb">MUST-T12-4</spanx>:
its extract branch is executed red-then-green, and the reversal
branch is specified and not executed. <spanx style="verb">MUST-T4-17</spanx> and <spanx style="verb">MUST-T8-9</spanx>
are in the published packages (see the note on distribution below);
<spanx style="verb">MUST-T8-9</spanx> 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, 457 of 457, 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
<spanx style="verb">MAY-T11-6</spanx> 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 <spanx style="verb">kid</spanx> 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 <spanx style="verb">@cedulon</spanx> 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,
<spanx style="verb">deliveredHash</spanx>, and witness tier 2 - what -06 added - the refusal of
a JSON text that repeats a member name (<spanx style="verb">MUST-T4-20</spanx>) and the refusal
of a non-empty unprotected header (<spanx style="verb">MUST-T4-21</spanx>) - and what -07
added - the conditional guarantee for an unstated account or
rail (<spanx style="verb">MUST-T10-18</spanx>), the report that names the settlement path it
covered (<spanx style="verb">MUST-T10-19</spanx>), and the refusal to read a settlement finding
out of an extract the pinned rail key rejected (<spanx style="verb">MUST-T10-20</spanx>) - 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. What
this revision widens - <spanx style="verb">MUST-T10-19</spanx> to every structure returned for
the audit - and the window rule it states are carried by the
companion at 0.10.0, published on npm as this is written with a
provenance attestation whose build definition names
<spanx style="verb">refs/tags/v0.10.0</spanx>; its ledger export is unchanged, because that
export's audit is over the in-process ledger and declares no
population. 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
(<spanx style="verb">MUST-T4-15</spanx>) and the gate's refusal to settle against a manifest it
cannot attribute (<spanx style="verb">MUST-T4-16</spanx>) 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><spanx style="verb">MUST-T4-17</spanx> and <spanx style="verb">MUST-T8-9</spanx> were the exceptions in -04 and are no
longer; <spanx style="verb">MUST-T12-4</spanx>'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
<spanx style="verb">MUST-T4-17</spanx> 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 <spanx style="verb">MUST-T8-9</spanx> 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. <spanx style="verb">MUST-T8-9</spanx> 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 <spanx style="verb">01</spanx> through as <spanx style="verb">1</spanx> and
erased the octets <spanx style="verb">MUST-T8-2</spanx> compares; <spanx style="verb">signManifest</spanx> 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 <spanx style="verb">MUST-T4-19</spanx> 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><spanx style="verb">MUST-T12-4</spanx> 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 <spanx style="verb">RailLedger</spanx> 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-07"><name>Changes from -07</name>

<t>This revision has one subject. It widens <spanx style="verb">MUST-T10-19</spanx> from the two
surfaces -07 named to every structure an implementation returns for
an audit, and it states one shape rule the half-open window already
implied: an extract whose window does not end after it starts
declares no population and is refused as malformed by name. That rule
was measured before it was written - a correctly signed extract with
its window inverted and no rows came back from the companion as a
balanced audit under an unconditional guarantee - and the companion
refuses it at both ends from 0.10.0.</t>

<t>-07 had the report carry the account, rail and window it was computed
over in the printed report and in the finding object, and said in its
own change note that the companion's MCP result and ledger export
returned the finding list and the guarantee without a scope field,
and that a revision widening the requirement to every returned
structure would ship with the package that carries it. This is that
revision. The reasoning did not change between the two: the strongest
line an audit prints is true of one account on one rail over one
window, and a structure that carries the verdict without the
population it was measured over can be read as a statement about
paths the audit never looked at. That reading is available on any
surface the verdict travels on, not only the two -07 named, so the
requirement now names them all.</t>

<t>What the requirement asks of a structure computed with no extract is
nothing: there is no declared population, and the structure names
none. The companion's MCP <spanx style="verb">cedulon_audit</spanx> result carries <spanx style="verb">scope</spanx>
exactly when the audit ran over a presented extract, which that tool
now accepts as an input, and it refuses rows added beside such an
extract rather than reconciling them, on the reasoning <spanx style="verb">MUST-T10-20</spanx>
gives from the other side. Its ledger export is unchanged: that
export's audit is always over the in-process ledger, which declares
no population, so it has nothing to name, and a member that is always
absent would say nothing. The requirements table row, the third step
of the verification algorithm and the abstract say the widened form,
and the extract shape paragraph of <xref target="rail-extract"/> states the window
rule. The Implementation Status section is re-measured for this
revision, the sentences that name the revision are renumbered, and no
other text moved.</t>

</section>
<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>

<t><list style="symbols">
  <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>
  <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 (<spanx style="verb">MUST-T4-9</spanx>,
<spanx style="verb">MUST-T4-11</spanx>), and where no key is held the check that runs
establishes internal consistency only.</t>
  <t><spanx style="verb">MUST-T4-9</spanx> carries the same split, in the requirement's own words.</t>
  <t><spanx style="verb">MUST-T10-8</spanx>, 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 <spanx style="verb">unauthenticated-extract</spanx> as the
condition; <spanx style="verb">MUST-T10-7</spanx>, step 2 of the verification algorithm and the
<spanx style="verb">unauthenticated-extract</spanx> row of the finding table say the same.</t>
  <t>The <spanx style="verb">application/cedulon-checkpoint+cbor</spanx> 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>
</list></t>

<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 <spanx style="verb">MUST-T4-15</spanx> 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
<spanx style="verb">unauthenticated-manifest</spanx> 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 (<spanx style="verb">MUST-T10-15</spanx>). 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. <spanx style="verb">MUST-T10-18</spanx> closes that axis the
way -05 closed the period.</t>

<t><spanx style="verb">MUST-T10-19</spanx> 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><spanx style="verb">MUST-T10-20</spanx> closes the other gap on the same path. -06 reported an
extract that a stated rail pin refused as <spanx style="verb">extract-key-mismatch</spanx> 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 <spanx style="verb">settlement-comparison-skipped</spanx> in the same
result, so that a comparison which never ran cannot be mistaken for
one that found nothing. It is <spanx style="verb">MUST-T8-9</spanx>'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 <spanx style="verb">application/cedulon-inclusion+cbor</spanx>, 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 (<spanx style="verb">MUST-T4-8</spanx>). <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 <spanx style="verb">ToBeSigned</spanx> structure instead of the signed octets. That
second question is not answered in this revision; what the
measurement found on the way is.</t>

<t><list style="symbols">
  <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 <spanx style="verb">json-duplicate-key</spanx>, before parsing it (<spanx style="verb">MUST-T4-20</spanx>,
<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>
  <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 <spanx style="verb">receiptHash</spanx> the issuer never produced. A COSE_Sign1 whose
unprotected header is not an empty map is refused as
<spanx style="verb">cose-sign1-unprotected</spanx> (<spanx style="verb">MUST-T4-21</spanx>, <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>
  <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>
  <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
<spanx style="verb">extract-key-mismatch</spanx>, which is where a presented extract that fails
under a pin goes and the only one of the three that lands there.</t>
  <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
<spanx style="verb">issuer-key-mismatch</spanx> and leaves its window uncovered; it never
reaches the totals comparison, so the signature branch of
<spanx style="verb">checkpoint-total-mismatch</spanx> 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>
  <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>
  <t>A Trade Manifest refused by a stated publisher pin no longer founds a
charge. Its body was still supplying the terms comparison of
<spanx style="verb">MUST-T8-9</spanx> and the acceptance-criteria hash behind <spanx style="verb">delivery-mismatch</spanx>,
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 <spanx style="verb">manifest-key-mismatch</spanx>. 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>
  <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
<spanx style="verb">checkpoint-head-mismatch</spanx>, cover reported on presentation rather than
on attribution, the payee branch of the terms comparison, the four
fields <spanx style="verb">extract-settlement-mismatch</spanx> actually compares, the unpinned
half of <spanx style="verb">unstated-audit-window</spanx>, and what
<spanx style="verb">witness-inclusion-not-exercised</spanx> 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>
  <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>
</list></t>

</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>

<t><list style="symbols">
  <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
(<spanx style="verb">MUST-T11-18</spanx>, <spanx style="verb">MUST-T11-19</spanx>).</t>
  <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 <spanx style="verb">carried-key-mismatch</spanx>, a warning, and cannot move the object
out of the attested set (<xref target="issuer-root"/>).</t>
  <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>
  <t>"Issuer order" is defined as the order induced by the
<spanx style="verb">prevReceiptHash</spanx> chain; presentation order carries no weight, and
<spanx style="verb">chainHeadHash</spanx> 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>
  <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 <spanx style="verb">clockSkewMs</spanx> of the
edge is <spanx style="verb">boundary-deferred</spanx>: a closing-edge item resolves against
the following window's extract, an opening-edge item only against
a receipt in the presented bag (<spanx style="verb">MUST-T10-17</spanx>).</t>
  <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>
  <t>The counterparty triangle is closable and honestly scoped: an
optional manifest <spanx style="verb">payee</spanx>, an optional settlement-record
<spanx style="verb">beneficiary</spanx>, and a <spanx style="verb">counterparty-unbound</spanx> scope record when
neither is present.</t>
  <t>The delivery claim shrank to its evidence and the evidence grew:
an optional <spanx style="verb">deliveredHash</spanx> on the countersignature makes the
acceptance comparison signed-to-signed (<spanx style="verb">MAY-T8-11</spanx>), and the
Introduction conditions "what bytes were delivered?" on that
evidence being present.</t>
  <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>
  <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. <spanx style="verb">MAY-T8-9</spanx> is renumbered
<spanx style="verb">MAY-T8-10</spanx>; the number collided with <spanx style="verb">MUST-T8-9</spanx> 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>
  <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 <spanx style="verb">1.5</spanx> and <spanx style="verb">NaN</spanx> passed a <spanx style="verb">number</spanx> check
and were signed. <spanx style="verb">windowStartMs</spanx>, <spanx style="verb">windowEndMs</spanx>, each record's
<spanx style="verb">timestampMs</spanx>, and <spanx style="verb">clockSkewMs</spanx> are now refused by name unless
they are integers of magnitude at most 2^53 - 1, and <spanx style="verb">clockSkewMs</spanx>
unless it is also non-negative; the canonical-encoding refusal for
non-finite numbers still guards members the rail adds.</t>
  <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 <spanx style="verb">settlement-without-receipt</spanx>; the text's
reason for the deferral, ref binding, never said so, and the seven
edge cases are locked as tests.</t>
  <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>
</list></t>

</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 <spanx style="verb">requestHash</spanx>: -03 called it "the six-field hash" in the same
sentence that named SHA-256 for <spanx style="verb">policyHash</spanx>, and a reader was entitled
to conclude it was not a digest at all.</t>

<t><spanx style="verb">MUST-T8-9</spanx> 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 <spanx style="verb">MUST-T4-17</spanx>, 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><spanx style="verb">MUST-T4-18</spanx> and <spanx style="verb">MUST-T4-19</spanx> 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><spanx style="verb">MUST-T3-3</spanx> and <spanx style="verb">MUST-T8-2</spanx> 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. <spanx style="verb">MUST-T10-1</spanx> 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 <spanx style="verb">MUST-T8-9</spanx> 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
<spanx style="verb">MUST-T8-9</spanx> 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:
<spanx style="verb">kid</spanx> 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 <spanx style="verb">acceptanceCriteriaHash</spanx>
and says whose digest <spanx style="verb">ap2MandateHash</spanx> is. The Decision Token gains
the same expiry boundary <spanx style="verb">MUST-T3-3</spanx> 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: <spanx style="verb">MUST-T12-4</spanx> 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 <spanx style="verb">kid</spanx> does not
match that key (<spanx style="verb">MUST-T4-8</spanx>). 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 <spanx style="verb">settlement-without-receipt</spanx> 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. <spanx style="verb">MUST-T4-10</spanx> 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. <spanx style="verb">MUST-T4-14</spanx> closes
that, and <spanx style="verb">MUST-T11-17</spanx> 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
<spanx style="verb">settlement-without-receipt</spanx> 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
(<spanx style="verb">MUST-T4-11</spanx>). 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 (<spanx style="verb">MUST-T4-12</spanx>); the same set-of-keys
acceptance applies to a publisher, witness, or rail pin. The same out-of-band rule reaches the payee
countersignature (<spanx style="verb">MUST-T4-13</spanx>), the transparency witness
(<spanx style="verb">MUST-T11-15</spanx> and <spanx style="verb">MUST-T11-16</spanx>), the Decision Token, whose
consumer issued it and therefore already holds the key to check it
with (<spanx style="verb">MUST-T6-6</spanx>), and a presented Trade Manifest (<spanx style="verb">MUST-T4-15</spanx>).</t>

<t>Two requirements belong to neither subject. <spanx style="verb">MUST-T7-5</spanx> and
<spanx style="verb">MUST-T7-6</spanx> 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 <spanx style="verb">SHOULD-T11-5</spanx> asked for
checkpoints to be registered without saying in what form
(<spanx style="verb">MUST-T11-14</spanx> now says). None of the steps of the verification
algorithm read a witness receipt, so a deployment could follow
<spanx style="verb">SHOULD-T11-5</spanx> to the letter and still have a verifier that never
consulted the witness (steps 15 and 16 now do). <spanx style="verb">MUST-T11-3</spanx>,
equivocation, could not fire at all: the only checkpoints compared
were the presented ones, and <spanx style="verb">MUST-T11-8</spanx> 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 <spanx style="verb">MUST-T11-10</spanx> through <spanx style="verb">MUST-T11-14</spanx>. 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>

<t><list style="symbols">
  <t>A recorded checkpoint the presented chain omits gets its own
identifier, <spanx style="verb">checkpoint-withheld</spanx>, rather than being folded into
<spanx style="verb">window-coverage</spanx> (<spanx style="verb">MUST-T11-11</spanx>). 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>
  <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>
</list></t>

<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 (<spanx style="verb">MUST-T11-12</spanx>,
<spanx style="verb">MUST-T11-13</spanx>). 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 (-09 or later), written with the same discipline as this -08.</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
<spanx style="verb">-19</spanx>. 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 (<spanx style="verb">-8</spanx>) to
Ed25519 (<spanx style="verb">-19</spanx>) 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 -08 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 <spanx style="verb">MUST-T10-18</spanx> and <spanx style="verb">MUST-T10-19</spanx> are the same
kind of bound on two different objects.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<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 title='Informative References' anchor="sec-informative-references">



<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></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></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></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></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></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></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></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></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></organization>
    </author>
    <author initials="A." surname="Sokolov" fullname="Anton Sokolov">
      <organization></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></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></organization>
    </author>
    <date year="2026" month="August"/>
  </front>
</reference>


    </references>

</references>


<?line 3449?>

<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 <spanx style="verb">kid</spanx>, 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 <spanx style="verb">MUST-T4-20</spanx> was
written. <spanx style="verb">MUST-T4-21</spanx> 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=<spanx style="verb">payer-1</spanx>, payee=<spanx style="verb">payee-1</spanx>, amount=<spanx style="verb">1</spanx>,
currency=<spanx style="verb">USD</spanx>, policyHash=
<spanx style="verb">fca4142da8ad241d24928227893894f4b5365efb746a4529fe9df0119d10da2c</spanx>
(the SHA-256 of the UTF-8 octets of the ASCII string
<spanx style="verb">cedulon/appendix-policy</spanx>, standing in for a canonical policy
document; the field's input rule is in <xref target="hash-inputs"/>, and the
-04's vector carried <spanx style="verb">aa</spanx> here, violating its own
Table 3 - see <xref target="changes-04"/>), manifestHash=null,
noManifest=true, x402PaymentRef=null, timestampMs=1700000000000,
nonce=<spanx style="verb">n100000000000000</spanx>, prevReceiptHash=null, outcome=<spanx style="verb">aborted</spanx>.</t>

<t>COSE_Sign1 hex (whitespace ignored):</t>

<figure><artwork><![CDATA[
845830a301320378206170706c69636174696f6e2f636564756c6f6e2d
726563656970742b63626f72044806e3fd8fda29bb60a058bbac3a0001
11706770617965722d313a000111716770617965652d313a0001117261
313a00011173635553443a000111747840666361343134326461386164
323431643234393238323237383933383934663462353336356566623734
366134353239666539646630313139643130646132633a00011175f63a
00011176f53a00011177f63a000111781b0000018bcfe568003a000111
79706e3130303030303030303030303030303a0001117af63a0001117b
6761626f7274656458400a24269b7521d409ebe462db297c3aa25b23d6
c697aa4a864b1b3a3edb5b30537b34b048a797073eaee41af371effb68
ecbb47b80e62d7e775e8cae5b066c30c
]]></artwork></figure>

<t>Manifest COSE_Sign1:</t>

<t>Body: description=<spanx style="verb">fixture-goods</spanx>, amount=<spanx style="verb">1</spanx>, currency=<spanx style="verb">USD</spanx>,
acceptanceCriteriaHash=
<spanx style="verb">e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855</spanx>
(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=<spanx style="verb">none</spanx>,
expiresAtMs=1700000000000, ap2MandateHash=null.</t>

<t>COSE_Sign1 hex (whitespace ignored):</t>

<figure><artwork><![CDATA[
845831a301320378216170706c69636174696f6e2f636564756c6f6e2d
6d616e69666573742b63626f72044806e3fd8fda29bb60a05889a73a00
0112386d666978747572652d676f6f64733a0001123961313a0001123a
635553443a0001123b7840653362306334343239386663316331343961
666266346338393936666239323432376165343165343634396239333
463613439353939316237383532623835353a0001123c646e6f6e653a
0001123d1b0000018bcfe568003a0001123ef65840599b5b1cc7bfd3fe
8b8e65cdd876652aeca13660e6bdccc93afe12188a295b20fdfe8e6e48
ae447dc74ccb0f13383f0f43f0f67f288d61a6395e95e2038e320d
]]></artwork></figure>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA9y963bc2JEu+B9PgVH9KIknkyVSl5LIc/oMSyW71K7bkWi7
e3n1NMFMkEQrCaQTSFFsqeZZ5lnmySbii8uOjQQllXvN/Bj3apsigY19iR33
+GI+nxdDM6zqo/Lei3q5XXXtUXnSlifbZTOUP1a39aa86DblyWXdDvOhm+OH
8kV3fV1vFvW9ojo/39Tvjkp9uVh2i7a6puGWm+pimC+7y812vpA/zh8+K5bV
QH88fHj4dP7w+fzhYbGgX1x2m9ujsmkvuqLfnl83fd907XC7pidfvTz9Q9Gs
N0flsNn2w+HDh8/ppWpTV0dlXy+Km27z9nLTbddHxdv6lv61PCrKcu7z4Z8r
njN+2tSLulnLz+tu1Sxu8eObF69OT4t+qNrlv1f0Vo2v1UV/XW2Gf//7thvq
/qi8qFZ9Xawb+cDQLex/m3ZpH+i7zbCpL3r5x+21/7zgHWuHvqi2w1W3wRj0
/yWtmoZ+uV++2C+/583CL2ULX17Xb8sXVRv+0G0uj8q/vHx98i/l6cs//fzL
j7/886vyx1c/vTp9+X355tXrP708fYUHF922HXhXT7cb2hj8rr6umtVRWe/j
VP53PZV9mlrRdpvramje1Tyx1394cXhw8Fx/fHr46LH9+OzRM/3x28fPH+mP
zx4+OrQfD761Z589eu6/fXzw0H789tkT+/H5Y/vE84dPDtOPNu7zZ09tsOfP
Hx+mH+kBppV8xt+GRw78e/TLA/7xu5PTl2/mJ6e/HmEnjOSFmk83VdtXi4GI
rvx109GJdqvyPj384B6eTkfG/5nLkX2/X35HpNvrb+3Mvq/eNcvypL+ii5P+
Hqn+icyg2lzWw1F5NQzr/uibb+iJathUi7f1Zr+ph4t9Oulv6DJ9czVcr76R
y3TO482rYU0j/Mvjh4f5Wt7zb/ju/rKu2/INE3O1WeL2vmqHetPWw/xn7Fj5
a3ULYpxeHmiMRyv/QEREE2twj+IqJpdwc3Ozz69h6vTEya+HU7ttH49b/evh
HVuNufyx6y5XtfCgZuHMJ5/TE+Ink9Oq1ofztX4KU6NffNOv60Vz0SywOJ7s
H1+/+uMf8+mebpo1ffYl36PyZIEb1bSXn6CJV/vlHzfN5eWIJl7RFU6/txnf
QQhN1V5imutqXW/6bwbM4t9rnsU+EwO99evJi1e//Pgqn+6b7fV1VS7rsto0
w9V1TVtVzcrLuqMfNw39SJuwJvZEC27Kegj/rFbNUH1iWT/u06EtGuKXo4X9
uF1U2Z9kbQePnz+mf/7l5M/fnfy8S6Tlm9OT138qXwsvJiLji1y+fD/ULfP9
TxDCX6rtOe3l67qvq83i6r96teRWvcOgc57ZnETA5u1cpUTPdPHmxQ+vf3nx
p3wVv2wHYpp1+R1xfqIIkZCYcPOfNd1+sJK+pBtIV29Z031kAbG6LX857+vN
O3rk5cVFvbjrAhotvVlcbbrF2zE1XdMWxD/FHfj2H9mBXgab1+t5Jyubn8vK
eAd+Onn9v/788k2+A3QH1ysi1UXN1/iioXvSXZRvmsvW128H3Mv2vJL7+6kl
//N+eUI3iL7flz9Vm79vd7jrP3dVRyxuuaknHvsv78O1DDav+r9X7+YLX2JG
ECcvTk9GF09W/T1xlH5n3T9Vi6umrVl10h+ZldR9T2yMrnS3+sR+nO6Xf6g2
K5XeaRdOu+v4h7juac78mXVfYKw5ScBq3mMx2Yp/+OXXH1/+6+j8RWsjFrMq
Ay28WWzquuUrMbrdrkM2i7kKgPIPq+7mU+RAGtEP3Xp3+S+uNk0/dGsWseGB
/zIjuMJYwgh2Dx9n/93JiBO8JGlf88pf13/fNptaJJuv1g6ZiGNFgpfkCPME
Yx+0R127aOg7w518DztBt4Jo4eS8GvOCk1VD1HB7WW3SX+M+PPtH9qGikebQ
mWkbMP35Uqc/r3W9vBsvfv1uTBQtyRYmCTriVVctjUHSRI03kF4yYJd4a3rS
sl3tYibyiT14s1/+1FyN1v9mqN+RspP+kDbsTfe2W3XvxhvWDvS1+Lf/8nZd
N1fzXgYkTtoMw3wtq49M9PXLk1PSQE9HGyYaOBHC/GQg3W4AIRCFV5vNLd+i
Nyw6Sieyk8WmI85xsuKrRzKeXhyU6D6xc2PjIu3GhIHx+e24pC9vz9lq+AZ2
xKJqaQZEMavhGzUpvjlfdeff1E+fHdSHj5cH54fPnx8cLp8tDsh2e/J8cVhX
zy8eXzx/8ujZ4vD5EsrYN1P2Ill5aVvmDx/uXy9ZJJ/Sbv706uc/Tm/mGzLA
qmvlQeF+HeEyNu222/bCs2rSOJgTp+uK/f7/5Vb2tiu6jXMy/Pm/yuq8Z+Ie
iuL0qulLoustrueyviBh1ZfDVW3GtGvsM2JjtEHsIliZi6CozEWAH8TgJS19
3xT+ckPWZ1/228VVWfXlD6env5asDV6wGCjvM9t9wOyxuGbLZahLU9p7MRDK
akVLWN6W1x2ZMO+q1baegZ1W5fiNkjaysMfJBN/2pBWXPS7TeU2TrUua+lW1
pt+Imraph+2mLUX6mZug3y/+ekXCi7bgljambLthVp7f8r+v+3r1ru5Jv2Z7
qirX1WbgP9DTtIltTQdL27LG5pBtXfDay44U+mogYqNHKv7kpqnfVeekO9EH
O7LVSIXCEEtTJWR5MqtC5q9zkwc3SuF0TtVlRSQ6yMnQ11nU0p4sy/o9zlcG
rzGTfT9RtYP4fTaDl3XxU9U2F3Tnyvu6GR2pqhvbtrWc5QPa+fJXOFCS3vNr
19Ap39DSCyKearvihbS3/KjwMdMJ7r/45c3Lb1789bRcrKrmuuzJGiGKpa9U
5SXm7J8p6nVH9LK4qhdv1zx+L2fOq5jbyjbZPSdZeVWPflf0V0xk2LO24w8S
zwBR0ryZwm2oFbF5ORyZKn/LX1gW9ms+QFLl6f2LDSljYQT+Og6m5/XTc9uW
JkI3BXYWfW51W9zQ6eAdEqm8+UQodHT4DejkLZEbKeJ8YuegAPp/ZoJ6G4mK
mm5ZkGnOO8a38LjsmN5uGqJzfsIv8Ua0kp7JfejoEOk3bPTRFld9ESZGFJG2
mK4PyR+M1G/Xa3of53u5rTZVO9R07foOtOTfWYv4lvmlw+J7Xu1Ifrk0eLaQ
HRAznC64yTWi+aFey3nRLPvttY5N1AWWbTe0kItbi58jIxPmy315w0NU/t5V
t4LFVsVZ8kR4lTQ3GmhxRRep7K6bodfdosHON/RWX/J2vut0ukzp9CRxGaLQ
89uCdcaKn9PrzGN16ybcTZxe/qFZPF0i0iLOqxsq4n7X1S2fHH/uql4t8QOT
B36h6+GRL5iAecsKMKybekPM9+fOmFp3/h9kcoJ0IVTpV8TLKlAbkQefeQNK
IdZ2QdMq+L2KdldPlGlG1yE8HG8SLdMDdEUwDC2BZ8gi+3zV9FdkmTXwPRHp
8zmS3k6KjGjBMoueuSpt46Xx8rQ/I350vaX/on04Z6cU/fdwxSQ9yF0Xg0vu
N507L4iHkwcKmsE1/7Xrw8PgPWAWiY5puzslnIqeZ/2D11YtiU77iu7EoiJZ
wjwo8JDCj5tpWK4wnw2/aQzjvKY1LmlaskwTrlX5fdOvt0NduI73Ha2OJMJ9
07RnvEHg6jfVZgkJSYJE2Qkc1/SrBbse2sv9glkfvdUthVzJsGP2sqHBergk
SDlfMem5pl7R6clsljI13q/6PZNS09LMeAtrWC5XVX81h9ily9bwMdNxg3CX
yhD4prVFkzweicHRB0HDdL2JAhLXHIhtlnC5C9uuxM1W6ExkMwOnw3xZ2Ko4
Y1G5ot/RFaK7Vhs7x4EXiVm67nBVLWcjCXChTpyGrzvZLMp5aSUmFDBO00Iz
MP4sWkXaszFn4u3iO4T9oT/StNljrUS+qS/5KvC8r+tlQ7R2u8YOYBJyWPTS
ktUT2ptik6zLI7zObEkJdUjbNpP58TduaFXdDd+DG3D6a6YyWhydCB2sHqnY
X3zD6Xga1oj5C8LdhLGKcgymgv0XamQpxqMIP2twW3VOth22q8J1nEAK3All
2SoklTaw+RAYvduI1TmfRjisdTVcEU+htfMKylXXgS8N+4VpNE0vF4YV0DWZ
R6xvEQ3D8ch6/q+Hx7wrPbN3Gv4dJOb1vijD182SLl9RfMUu8023FOu0KPZ+
7ki9pGFe0ySJFRztlbm2zFeBI1eDiFZ6XeMTIlyZyYhB8XXPe98OW7p7vHEt
8w1Yl7OyEZLmkBYPOFRv6aps1zPw7MI8+j0zxsVbk7lMq6xPlR8+aCTlt99w
Cqxf4XcciaHfJR09UyR7JTuyUWg5teye6GUcewPbJjLckjJciAcPB9YScZGW
ti/RBlfmk87+4QOHKHguw0ACsoBIIEZJZBPOk7aUWGfTMm9lImeJsM/2L6ld
9cA7Af2cxHPHTrNuQwKq77d1qSvhS89snnaq39dAAW1xHmko8kgDTY3+h2bG
9jkpaD2uxKDTUWmpJgWv+q+q1SMuKYyCrwvLNWj0rMDv7QVzaG/vCEaJeP4g
PPkhYmo9CWX+yD26lHTWTDU4C+LK3Y0IZAlLzlzW3lw1JGyhhIPZFNBozm9Z
X2ARX6pvpl7+z3tgoTQs7R62spH7IN+tXRzW72WxLCtM7CTxf7Qzc5PybFQN
ZLScb3GWMG9qiTTSnXBtQba1Ks98Zj+Q6Dgr7n/4EJ797bcHwjzp7DdYPPZl
tDg6d9p25bOydJZDzNSCpnBe97QMXOR7rpG0tdAzmbjlOYRqARUi0fc1WzTE
lVpWekpfABE4s8n98q+qaOGgcLKsFvGU1sO8aZmxMUvdFMSG1tAqxfKlAckE
b1wZGHTaLoWIXddrcAq2Y5tlUrX2yxPbUDEpebD+qlkLZ9h0/JXN0FzA1Dhh
ztH29CRrVTSNSzARFkwlC+PVCryDIz10uANdMiJnY5TEPFaqMl1W6/3y1RDv
P6kO5QXtGuk6rGOWC9q6bkl0ScsVO1bMXjHtaToNB5GI2e5zCNIVlLpf0OHS
gtXsVVVD7KBKtCwi17ksdtMRVeFi0YCkA334IO/P+Q9EMDTJTEiRcLwo7Bql
eF7505/fnJY//3IKFmpTZ0aJFbEYsCXI+MX9M35lfvpsrg+fPdgvoEypB1Qv
Pe8EdBV3LfF5KDPg9ZJydcm6ihvjuGz4U5JqjZoly25L12iO0B4ptN3bt3UN
OvrwQSN8xKSuWQneEBnSvqmxQMRiOr/RAqsJohPzTWAmKRHHr0kLQgBRv0J/
rGh4RDt/+43MA/VUNKoP09FcwW5Qx0fTJ+UYW8GXX8bn7WDeD93GhJFpC2nf
WtaCiOHzjOVqQmvgibMCTP/uu4uBdNuamSYkmalQ/VW1xppdE7PfROstmFFV
OW1PsnW3YOO4brvt5ZXMkKTLSOfp1ZaD4ctWhCsxUHUK/M44puirLXGK1QDL
JwgEvgu3oirxWLzpRE6015dX57RB8M/J2hFnkBls9A3SI4hzD1sIn1Hgn47O
MxmINsCnWFEgTWejvvkBNgqTIhEMMSQ29M2FVH5/8sfk+2nUXI+uUHC5I3eW
iUHFqhazPVKH6mVwjtAArKqyKIBLY8f1BO5nZ9f0hburlqXduIOH8wNctq/K
U1Lam7YjLnYrdw/2Zccazz1++N5M/pdvNv/8+uX/+vOr1y+/55/f/HDy44/+
Q6FPvPnhlz//+H36Kb354peffnr58/fyMnOK7FfFvZ9O/vWe0NS9X349ffXL
zyc/3hONN2p9fILiVsHhE5WpZ2XJfKU5p3/QO9+9+PX//r8OHtPZ/W+aWUNH
J//gfBn6B++efA2atfyTjfiCXZQVNHZi5nSy64ZdAjNWMdml1cptJQX1b7wz
/3ZU/vfzxfrg8T/pL3jB2S9tz7JfYs92f7PzsmzixK8mPuO7mf1+tNP5fE/+
Nfu37Xv45X//n0zU5fzg2f/8p0Jo5KJj1QnsEEY+HwnLvyP6M/sPSvMfHBUc
hdJ7kHixk/Xenrg49/ZMqkEkmjIjJ7rWXBgSJZddJ6KEI/oN2+kkY/l/FtsN
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
f1O6JOV0q+16kHLywPRaZlrZJYtNH1ouraNXDBCQQ7fd5qOwy15suptkd9JW
TS/+nfibClf8KcVu9UZoEWQU6KVXhKRPAOUXiUqqARFCq5AQu6uVkq/Sj0xH
VnplvHkuZPZY5EjzcdVGoCKyiOQu6nOLYIbBP063myhFa9uqiMkLu05An6Vr
c8UCTXq/Oak7k2uaVsqe5H37RRf0jmEKJY2ZPC3ZcWom67MU/wtA+lO76QCD
sa6VNS5VMe2E3k41h8lPRjK6K7k8Nv1RLndhxoynXa4t6pZBohMTKbPtk+g9
eo7Brs/OcM7jLSkdlh1R3rZShgUdDHsEG4tFtvSYXGYzUYl5ujyvmcg9RRvf
6i5DgLXDGLmZZXNa980xI5Ev/2TZvhV4/dLDxFVes1cg74a0e48Ulxzgn4tn
+5gJ0QJMRk62GYqKvOeZrVBAa4uQYkPkQcEIMVhIkCKC0rL/yIyNwJyaW7Q2
yI4RBU1WomQxI/AADVE1G7scleHfPq03G+3LRgUu2VDFKMy+7W42GWWsgyQT
ZQ1uaAlPMxrNiP3shdBhg874OBpFLlF7BXIdgpor0L8Eu8J5C6Y2NNhSHlw/
C5ZdY5PSXjgglosVOYgroYc388k5NciR4u65XWvlHO4Ex4XlfA03qv0MShRp
eS1XDSG7eFvJhMkykwACPlix/QREAQ6ceWRaEDaI2AOfU0iwB+liWSCw3IgD
zsiAJ5xOPK0fIGELB5KL5kJy7XE19ukN4NWJdqyIHDuErLg/gr3XG+Bx728b
yXby7WQnjTeIdG0OFqDoOJal6IuVQHvwUThYaAFZQ/kzedDJ30YovRQs5mNg
XLt1Gu2q/TtPqo3OYI9AEs7C8OUWYLFjUxh7229L1ReD4Xnz7sMHzNwcydil
dqyQXb1Wn9O+JAdVAo4sGus/umwvxEmXRdFDE0Ua8uwZiknoINLaA0YgmKKw
bgdMayjkylokspSlLUu6ZuZkL+M7S1Rj0h+CgTxKz/1zu775PPv88vB/Hj6f
z368S/O9nu3v7D7fSf8pztDe7HBnF/+xubveJm+hvr68mx0823m2szsP9TEs
V7HT1Y7mAzOfvf/j68XewaGEMYeHuy8ODs4Onz2rm2Wzd/D8YPes2a8PXyzP
n9fPD5bPlq8On5+9OH21++pwefZi72C53N999mJvvzl9WT9/dX6yA0BR7ZA3
/52Deb7M/K45vWlX2njTXDRrXBRL62VArIiedcQ8uoHS6XCCCkjtkJlkMUJm
y5pmejIS0ONenBeKjAYp10nIYrN/+fDt4qUcNKbzfN6QSA4+M6bYbA6gTvMy
sE/PYGgvnyRa7tm+eJXn7WdkAiTMpJy5c3CUPsj+sxd5ILAvspXlfxSL9+x8
97x5+fLg1Xl9nlamefXs8PTZy93ne4cvnp/v7r14dnhwuHzZ1C9Oz8+ePXt5
sH+2d3522Lxa7p8f1LvPTk/izil3TfiV87OXrw73TveXdQo7X52/bA5Od8/2
Tl8s9w6Xh88Oznafv3yxv3y1bHbPTs/3D1483z9rDl6lEZ29qOvDvQZb5A/C
qpNfMNhTo15CXEtWqIzC3NYXi9uNzPYydngUju/jnvuCNpsXsdUmM+2W9u2b
LxqhcnoNx+tunW5gYaFjHnFrsqZ00OQ+CLv6stZMIuXnbd+Qb0uMWi/ovTvv
Sr6uz0TjVZyxZlun0L2eCzxYGKXmgWCb9qy/95YVKhpNXtLllezE1cBJAUUH
mfSO3C3SDttI7+QCkaW7FUu4fhFlFwzqwR4DLIctjVMIFFbR5poFcqopdVIX
hGwhCDB7qtxwkVoXBkMRNDuxwb1XjyJrX5DW+Fy8JrvqHEfJESwbDQLibagd
pp3neUQ3QZQyyjfWuwi9co3yjKX/wdZX8d3X6HvTCFRTPvXG+6Jabt2QOWmc
SCS5jzIbUEcJ7YVyW4CGVhuq9FOt/IuQmCKCiSPIAYc9Ga6pfUvjxMbXwJ/j
0vTPF7svCm16YZCHR+Udavlk6+7uZ09EaQ9nKZlptvj1lGqWCT5tVt3t0+Oc
SZNnQhbFn2RsdrfdQocLWdc84BSFnll7YbrXxEC86ZKVXt90N8waXmh7R7qC
lRNfEF3XEvs16cgIdxni8oU+RS4v/5N3TShzcq195BrT/K07nRfhDspDFJ3g
RdSSSP0RfhQ/9IhtaMTHGinILTnzehgEtOGm6zPHeJe8UCVYRRoHUUfdK/4Z
TGDCLOdexFyiwh/ec9nJQ9Qfg3VfALDqaaTB26TIb6A5U24cMEdFhnjn4STM
bfZ6a47SVbstDw2w3zRQPYvAfDhZkbRzQn5pPnt+8EL2dfo/c2tQRNO3klmi
jwRRrI6fEnEmGXh3dSqX8mLVrj9CAznd9GmE8mV17DazH394/+7/Woi4qHae
anbGFCa0ZzUEQWwepptnrF5Yv3rGk6y9zdgwXEGsnJLSZuk4zp8B7a4Eadlf
1ZL8gqXmNCbXt96sxJ1AO3HoBJXtBfcO10wLUzi5p9OYH3lyQ/fXscsYwEYW
KY60J//eOO0wDD+ZOnPC1vbv8CjIduHQtkVKJSh9iD2U45hCcs6OGljOV7u1
vd1rTkXfSplrJPshgd4wd8JdX4YGjI6kaQf2oOD0l0ZmjV+w0fkIby9Xe8s5
kJffqsZDbnbK8++kIvAZNhv6mmjTv8aYcPunecjHttU2EvTjK8uYtiBX1oNN
S63ccmnMtsVT/DmXGyRdPbZibFbWfJ/8HmsFvaY7tt0VPAy0NSj3Tmb0h3Pc
emN2uPNM9QFN2pClyQxKRvmhvAl1EPlE9mWFZ8ixZjssqKLvkoW66umgZZY+
yrSu4y6gEQ6E4hILKSnaiROSnxilyBy7qZ5912w+rhoWqTJwp88FDsaV3bnQ
vk9WTYpJz4SmdCTCZakkHWUmyvhZQDCD7WQuM0ye9E82y0kCdj6uRzzqqWAc
NB5+uUSX4AWSn7GrQcx/rv0G8toovUpTYyURdudFokJUfNL/G9AbLgT9nQKo
C+7gtLaOp1dOL5yQI62CYzZ3rXfG1OoxwyUwIvwEeuxaY/oP3GXzajb7NTRp
mPTgbSVn9s9pUte98oy8vpbxL/ZSDCxuLioU5uUyZTGuT1bV289SRxFbxeQ2
89Xpg4tnz+bp/7erecI9zWGb6WFyDZkjmTcOHJcaX4uOoxMRLTegMT+9c1KO
O005DCVkxZStd+DD7EqICAIGitCbsS342hmUsAXqQqpjufSZHiKxZSmFOEDw
7+DdmAVsQtYw5Nptf9tkBJsMdsp1MsFX5u+amhUm0uKj0LnmXeXpbIeuCPBs
arznNe9zZpliZ+66o6kVyyRPKgQTLPuir6BCQ5Lrva2jRkZIjnh+Yk+m/LWZ
cXB2uQptTCFoV7RRS07Qp2oU4HbW0CRp5CYPJY4xJAuk5NWCL1RWwdrnDnf2
km2VodzlLN0ycs8mWx0YngOZs4q/jqhOJE21blQ4WbLNqtNCBsxSOowMsllk
+q/0a8S6mWcjC4lJ3V7ep7Sj+R7zj8UzRYY/xXvhYmpSYC0UqVe1DLaXjLbJ
Dnq6yCwIuoPVPA1sMo8SstZmP02iBG1u1uQ21w05Iva28ZTAxh0hFwxpUN2h
Of8s29GZL7J2V6ZQZUZezq3u/C7XAUbFICdBbimxxrciK4B4Cx5Jp+2J96Ob
TKtwNc+Je5IvTU2UloxuQCdlRsITHxOE13jguuQpHHMTsuoiYfKsYCf8fiLY
O5oFrrxxIaZ1Eosc+51Y/91JDigxx892Xuw8g06il00YO0tgX/H2RGypuzhX
GZhaF0DGghY0OXlXV/WGO2QEtUsuqQerkkVUYcvku6D+vig+iabyKt1e/JTp
lGYaJ5PwyXSTJrMgDAElek1JR9S+6G274DWyeHZYvE4W8Krq2X97/8P39G81
e3RN2ku9nNn+Grpin508DbkBPKgSEuwHG2uHbbULpUjB4F5UcXDT2opU25gS
0axAxhTVK9EgzOFlEnjGXrQ1QyXNylIxT4rEzdP58EW9Ajcl/FdpWbDQCHfi
bIzyI4AcKjkXfgyTugBa5f7UCHm5YXWe7bzaeeYicQwE06V3fcU0dYojJSTB
nbWD1YcSI+8wYw+RSiBI8QMtZMw5yiVa6Y9rNk3iyr47Tj//Mh0n+ScMhI/J
I2YII1GNHKaqzJEhdSYlq2KqZWKVf8qRb87LJff71vDsunWYhaMAl0gStlsX
ct8UWk88plagSXP4bGf3mUxeHm85dVQGa9PxNHAGWElSvAQupUzQrbA6KU4s
qadKw8c49iRtmf732/qi//0n/uQJaAGM5dEER4Uvl8Wh5TyQfKZ54yce90ZL
2ueiQ4yF+DiZExU+A1w362qyjEoLmPeS3UxCwEKKOWCIIHyet69YBZsD+cvG
rnuhed1eqhaaXCyiAAZGkLmn5sdhR7+9OT8HpG9kHyyWhM9au+ILjI85fLKU
du7XUb93C3yIYRKwG+U5SGvKT+9kj+2sXitXT20uceZslf8rKRc/dGXbv8dv
Cn5BaKmJCXITyo3nub0jiQ08ubUsyqgVA9JtPz7o7j0JsSc8qHleLndgRP7w
TNxx17kv79sgwngNijAyoiOTnY7A3s5nhPaWTrqWzPi2iVeupZoDu/SznX3Z
RPwsz6A3riGlaCdT3CFcZ4A42mlEBqCyiCjrNDK9XdVCKpdrcZapUSfHjiQu
cRRdBpV4Jn0qzpAcfGZEbq6ZvyMDWbv+1Br3nblY0KdW4IBYPxw+Uhcra6P9
tpGrYud3aQ8pRmx7mVMf6yVVRragK+atYaLM6XALiNRdjxLc4XiJcikro2wi
fh2VASL7LKU5Q0pTcwS40qidkj6LdGqkPYYfZib/KvlzEqsgE6Pf1j2opsQ0
PdEhXjH0Zz2K+dlWaOE1jEmRodNJSMBer5plziBz2eeVZw0tTSVJBWhBa/RV
L+O04nWgHMZ4lLnVNBL0Fi7z34e69mT7Q6WfzLFDnffqsv1bjRB3KXHDWo2l
7PFd0lz17ElK42dSotjrVWAXOQgukTSNAS8zzJZlxFpufAULM1Lm6jdGT2v3
MD12eLXK4X2eDuFItf5aojEG0hck5V4ypUCQiEzEXjJH5MS6WdsPIm3nA4JT
xgiiUvFV/uVxT+0xJ14qGHfxssQaEW+oAM52XblY6kzpv8xfIZvHrMOJwKjW
6eSeSTTwUAGJE1I68LKdERgQ8CvXH3NVx0UN7LFR5OYqGW++VskQEUXGTLLm
kSVZu+26j2JLePu6EbFF1UXJCed05jwWQG3Z59ikQjxurQOQ3Q+QKcuZP6i+
DrS7rsXcEc87KkHHvDZGUUymJEaXm/q2DzfiiEZ+C/lH0E/aqwyf3N9sPgmJ
JEI+IX13npR0hx+FNKSQLJtOfFVsM079skF1QAtfaetcqRCtac528JTajVFG
VMZXG/cET+sO4QLYIMnD8DOD9hzL7tAJrmQEkOx5uBq5FvlYNTjmPmiDpfok
k96DhpsbpTVTfsfCiWBVAf5DfJM6OgRRPnBQz6xyPVMSwEdIyMlU3uDl2Z+Q
DBD6LVVjCgK1YpCdjXNZUQLNnWuXzPZnGRGoPksfUhjbqlBe9pvm9M6yCFRs
RgpxX0tp2FGKB+ZrRYQrwXzkv8/+VGnzKkDIUEhYtdfH8fpM36IapNMpR9+L
DxXayOVO9S1L/HJ3AVtIG9E2t5aSyTkPbhQurUzdbWO5ZvnXQwkpUPaznULB
PUvF3HZkWd2C8E6szXdvfqw85Hfaq7UeATnlq5V9XZMOsvSn7dJlgCWAF7/c
mtMEgdiulZnKDINcBEKifhLZBNO6neye0AXc1ObTKHTIN+TeicnsJufjRNx5
0wI5UbZwM2KVjTAIR8bEhTb1ok0G+pOR7qteMaKo5MuwFt0670mH2uWX1n8y
TH4ONCpFS9q7RwKwWfajmH+L3dUbqaV12q1dRXmCGgCVWQ5BSIym4QeSJ+KD
zLM8EBqP2nREL+vrxtwh8X1vNepmKgJeooPiIaDT/r0pFCFBpCyRMTtzOB3p
XE07kOkPpoXldyguPrsbQDPuX8XvD518FyFp+0ouC5HbZUJDv6bUQyWMZDFg
jYcElPOMpSnvVp+U/7cg43bW+0VEolQDLEyRbcyB74ifXMpIzPdVlu/jaIe3
/oP4lSytXQldZcmGrwpAC0SdTB6tsyk3AnlmJHBx2oF1mECgH7eQ1ycKWTQn
yK+GnOEsKE4hhcxsm+mRHeQunL70PRcV0jdyEyMf3XLxudnZMUnKMc2jLp69
mP38b45lfWFNNEUhCz7BDUo5CP8041PmezI487ar9IT3eD6zsRP5oDEtLWcV
fUGVnQ/fwZoOwmhwEnVVooa0elVWRFEE8FFM4THJox/MYdQ6p7koNtNXIf0y
y+mX3DV8boqWmQVKK6SaQ5ABVuKkODIgK0jGEHiBbQJogdT1iXHz8aa1qwJx
WHJWG1eqle0jlg6ligx7sGKh5sjkTj+tV5LvWqrRUZcCQexkfjZn5fxBlV1q
LRSw4W6Bm0xT8pITS3tM1lzuqJCwZd0INwDTPXPmeZjh5mttVU+aaZ4KGSYH
8BGkkiEMmWWVrg8LjSGrCSGgvhKgtcYuwJ95sOovlRyEdHF7swKi/ZDPqzxp
GX8O2H0PEHMx0/ETKuglFLLzih809YyQNTVvIDozfk7sh6t8YMgOQn1CK3tY
gK+6FHQwCUBh6hNmy3M+gaofsH0r7HGOTGdOz7H2IW1FjyP5CFVyX5p8b2FV
+BObGxg7NMFYHp+K85TSIhtdOgtYa7Nu+cWKwWsSHJwDEbIbjqBuFj9W+AFx
5U+bmWmnxv5b1MYrse/BN1aWvFUKBOVYbO3QWvdAeoQzT+PY31WxScCGaBQI
RgqHDJi5iG7/XIskrrWDpOBFSnIiHZ+/uiZF+GTdf+x5neRJ84youfS52F9p
p1e+++Tvas+WwZgF5JY/l+lugeJZ12F5VE60Jvc/MYsndnRs+U6w90+qjGts
ovMneDVmj4OQt+OO6eXxlHbdCi4LS+69Jt0IHLY7wSwSjCCLTtreDGrDel3Z
pJQYv0xBxQpqF9N18s9FKae6QGzsppWs0vIz9EfurwAc3Zf5V/f5/gKAzYVd
QlVxCVkaTzFJl1pizugcr/YpUMpIeIzhgpakvrNvm2GIjUFEgMl5xXaWRiDk
BiqFo0zX/31HpZ/i1MvPMOWxbLT8c2VWMdcmeKdn2B2gW2I+FvoJJzEI+ZNK
rliOfbpFOHQDb5qFGwxrCaqyn8xKIuGLmsy2REdoj0IZi6ku0xNZdxU3BKor
6DWe9LQOo6d1OOlpqegefS1NYhHnaCFtLY26S3KnpQ1409AnTA/UVirt6zsj
XGyeI3vnu3e8YkSwy/Byqp6FRXkfMijoi6yln1rTf5phI+pHusaq7WXQI+AW
imJoYn3ZoAtjOqs/tw5swrF47B7XUu9PvBpvQ6tr+HQh2rHqMRcCnb7r6tbz
kgwGpSKGS2FczkW9huVcVnLh0u2oXCT3e9hxm4bYc8O+lv35zoEKMNhowLlu
xE0jsRs5/iznqtS0GBU4BirhGIBHdeiUBwZv4bYQFdb5bPjG8GqNxIZxvVQQ
h+Sxer2P6F4nyV6VjLyyphxmgtToP0T/WpC/Sn5iyNXRmcdL7jS9FZQ7TWgZ
SoLbndn7NMPrSrkIDVkqR9UznvoaXqZK+2IFf/c0Ra7pzpQw7spNKX1hvsG6
GzQNye45bTJ7Sc76C+Qr0ItAx3m1AyhhchDTy5OjhymCXsaMdE9tLZpG62bW
I50McZv/Jqrnms/S6/m2GwRKplJAF05bZasUBn3KnX4+GYUqT+isVWc23GtI
/Fj0KvsOZ/x1tuPwFn/NBBE+lt1S2TSIIeViR7fT6HlyVymURmyWuCE6EInw
5I0Hd0SxPQzZz7Chu2xPW+1XCq5k+tGFJD7P0Bdro1HEmqdnj1Bwc4pjpS+x
NPHaW94JBoOoECMwsnSk5+fSz6uTwBbzfLHr6nJOxTxkYbbtgTByDUbQLx0u
MisvZuFXC6caZ6RPEfHWIWPBWuv9IddLH56SPCARuGGo8dDdTEdDCD4oY956
j+42rB2+CQVtLJiAsuMx5ZxSXxHXWyax9ktEBy+XDW3APAvUWi3Gbr0Y+Vez
4HHyzItPNUDzRNLZof2Lmzl7zoMchvbwaQTKOWU+faL/feZ1C5/cvtiNeZex
pDLNqe2rm3y8gLM4uVkX+S5bLWt+rYKm23FY8BdpwVEE2pt9lasnW/venxLY
tz7Fwmd6luYWysDtiJ98BeX9iYu1kO0H4lm/0DrVVSFnPmQQHrOM5NswGwJc
+da34mdG5mxgbFQ/xv0AICaYeop2KBbacppH+4M8VDCi0VzjME/PrnwNO3CT
ODaVm6pEbUyQH8eyKwrcyNDLY9twLdovClfUzSa5gShEDVTDpw6RkzGnaa20
a+w+L2J0Z1psbIFqZbt8Efe4GsSuaH/dMNypRtvvyusaeh5N60dpcW5yb7H8
K9zNugTYa1yrMC0pdh1UUa94O/C66ECowyiTQp4mLTwAuiEpKX1skXeLQLEm
gg3XMxNEgwHmE1vJ5xAa1a0LiOPBiUqaWRbG4Y7ItkUVo4/pLALm+bklmQXL
X0iJsNjmH0XrCTTvo+/s2m5V/DHP+TwZXhBPtZxWUuDqYbNrNeh9+ix0Ogea
uc04TUWG6c+nIIaY0qWuhKCP4GFKppXo+51ZgSo1VAhX8jM3QyXfE7ywKqPl
iQ9VGOa8Q3AgOxUqm5odGrr/Wh7aWhJIgjCp2f/atGzOtlUh2zaP6ba559s0
SEafoS2S6dfqPFbQlbDmDai11wPpSJRFZD8P0zVsdOwZytfUH+bzFTCFhlaX
ZcVbWRuE3AoLtXjKkEFQwlSOygERIjDT9o0m2LQ5JjIRVtyV6V5Ia2Q5DWRl
xLJHZ+iBRHQVE9GYzPmvz0T3XVUkT2dInua0aZQQvidhiZmXIupUplKOAorQ
Vmqx092ZtQhuBqfl+FdlvmdBZ9oA0b8q7+01rKD5Vmnt6ItZ75CPRDWrSHpX
9ya9365TzKP9iLVvegEBABexEWkg/nyVFQ8f93nmj2MiVTPKbAoSZvsNOXGZ
oK0a+7FO+cZ5eeyYkGe49kPB9uefX//h9Z+SwwLcDi535cVDHW9DyrF0qm5V
slwFXqXXQNjTKCO7VfAz0wjpIWd6WOH3WFkr31dq41TwdpPZAh1tByRgYeL2
ngULae6HtJp14XKQJxCSnjEkOeuqd6S1W8OFbzPuUlAL+tFFcg0W1idFIIPG
m2W2wEh+Au0HK2DMaCLwFxHunlm+eVVeOvyYtkHFa0Z3tXho609Wekh7Smin
bFjBffScz1VagbsCP5NcEbuRMAKAjQig0KSVGcEU3mLsPA2cEg/bO2l9NRPG
royWsUE4kXPEz6POBWc11pQX68bd8i6nXX1GzJWIGsCKdemT8629+Ccx0aI+
jPpt9VY9J37DEikwWZLtz5YuzeO2/sg8SOXKvQT4eh76He6EgKF6TF47jatt
nuCUVuaUegafy+FOjbnORtTSA/ZcOO3G3l12CucGTk/bkWdC+vVQULUvnlpQ
cxm5Vwf5QWjEG4UJH3PAxwSOYHvSmDlW3K7M06uG1cl6jyuznTE3CnYQYyl2
kCf9jqKsU42YCYdAdu1O0XbrzAWjrpPlBOm8qDfkCr3TMV3JpyzNThVbA7r8
GkEh1ypGyiQbP+VcsNIGUw25ko3CZTioIPU7K6V+qwelfpN/HbdJjhc1Q8Lx
1dKvI6IS8xF5M2rHxi4kRfvMxksDKySEDGo8tHW9VYKxQlusdmL27We5GTUs
3pl93wWcrmXv0TioossWpXKU2qJtm6U1IcgKdGXE4RxhK1IF+LL5XIscwlXN
NnHlU/ecCIoYwnVRoQNJ5th1W1VNdUTuG+tzzg4ssNZKMZeZk+cuc9PrmAT6
n3ndMzmf/ir6R9V9E+HcxY0L5+Z5t6m5EVZKSSUBztppKgd1LyUP8V4S0mJY
o554KZB3BYJTKIRX/G4ByDrSBOQEGQ6zGYHRFvurQgBLZ1pbGedsALQekUje
l9so8/mtYseZnmU6FygsyC3LJLWwvvb39JBV3kM28x6yYduY7Li0f2A3x91j
ILdhael49lOzgkvw127zcXbWygEyx4hwvp9/bj5JUgJVANft2IK8Nt0e2BST
ZbaDWGY7+BKgye4NKe6QEdar76T94VEkVSwqa2mvWSt/ySJCD6XIlLljXOUq
0071Q/5JQGmEclFcecdQkq0ODD9mJ5az3OMpjVcBiJCp9tTwX7G7/Hj4KvJj
xFfBh85S3pqQA/mBIGahl+yV09whkA1P5SYpSncDpZDMjAK3yUab4ttlM2Sj
kk6CIhgZZlFzx8gdN6RhpTznY4L11qNtuI1oSJQDJpASaN2M3yArDgdyH28l
O2FHVJfpvd/8+AekvQHArQYEk5L2Jeffi5cH6WPKcGllZoTbGIQTWLJuyWKN
tVtoJYdklXRR0LnMbvr0WDZPwKeSKxKvIh7F7ORD94eGPL0nhfiAQ263WvuT
2xUwYeJfKh1cbr636F26TprlyKAd+3GotLyuYuA3SAdxqyMLgIpS7k6+sFCM
7h1QuHYvXdbLnWL+trjG3y3k65VqRr94/mofuw73YgCGiEg8PjmQTgYIxlSI
na1kpsHxMDWlcZcE5nhWkHvnC4hxnmWkN/+xNQe4Xt/Zz0+2YM+tmXWmyfq/
ibvtw5N46GSeVfM21o9TdG7PMRe+eRfyDBZNB8k3pC/ZbQJSKy9foAZgh9Cc
a4Bn5HXkKr1Lq8dOV2nCEq8JIGC20mjxxmiuAtS/ZlMqXV9LoU8xcBxkIj5w
CiuDlPWFYJ/i20zkkQ4BVuaD7Z22YE3TTYflsLxqPRv3u2rOEW2uci+A1JD7
T5oxawwcMWIA9LrDYCWLezvk5aelG6iw62XPg9S2jPs2fT/FR8l5ewtnnofe
HN+yRMq8m67exC87pstL+5YQ0BysjUg5l7xGUn4JN76Q3jZE67HX1/p7aaiY
JQP75IlGRKRXlUdpcYWhoDVeDIRRkNSdfo2cN+Qci5tYAG+l7gTvWsa8uwiP
OCn5CcZu+FMrxo25fqUIb68NHzMETXYrpFNufNOgj6nRpTNq+2Zclhnor3Ll
w15K69u5jKVN7+QojLerV73EkSfpuJXVPtGamSxFr4ASvaK32k0d4gYL5qWN
tgYDscDdtV4Lh9Moh9BSHb13XMmr1l3EH+lTz/5iPjWZSWi891/tqViJETnp
qMhjcIBoSOeZqVtD8FYqZqS8O6dNDAf1YpS27XgF3lzLVP51UJcRH0dMRi72
Bv1kHAzNqxgTRTQmyPxSmW8zci+S02bbIjh9yKnpKyi6oXbApuZILsEcjGSu
VMCOY05nQWZarZHaTHh8wm746dqaSosAbr0z+y5fx0IQRhJ2msZbBCbdNbz7
JpOssz/41NvuNo36XXLRTSAoFdiv9DW5TbCLMsKhnWc2wURlg/dyeXlph/T/
7eUdKrynG6gPTiCX6CorI4a8JFY6Ztu3aTeAgbXeeHdcrmwMSp2GrNV9U2jO
8l2KQqcigL7XiyVncdCmt5YmtJzzPjZSea9n4robikeGKykdmfe36ebKsPHe
eBhlj2DDeLILvffqgzXQe0DNRX+MRd4mkMsiaj+CIZ4s5BddgkreUrZUxFX2
/NB9OIu58RhZNtfuJ8vayToPsRlDoHNeNyskW1h7wJ1gXKYyKzdrvUTRcA8z
Y4k6UxyRP4BpajopXexE5ubHNTGmNKXagLlURb502C66oBqAUQVlEuZMWDur
1+zD2xAVkXaxrV6PBIOi/e6xZdJ5Hc6eJFAKSETZ01koB+pUzJ3/zK6x1ohp
dQaF8E0rCfK7Xfxkr8zhLM2utsTJwkE7UfDEKNNvZd/Q5SL1T1D4HGe2gplW
KRShBQ7oYFS9WyvbBd/e8BR8Ehb4bhiDUEVJ3kgj3eRI6IFHceMD58XPGPM0
BeosZ4l9v7kp1JY4o/OW5WhWoeQfl8t6wqBAkSZ99VFFjGjY2vXYbakly2QY
KgHXg5Cz2yy0oTJdqiLGZPwOuR+dThdfNNAC5NlDuWs5iTXLSH2nQY/BX7q0
b3tfOGVO5iVnw3EAoNCdb6JCOBk44ROVWNACCxGReQqxDAJbUrjswKZIbzqf
00ne84HZly1phHDCZorbpkDSyTnYpMl6zywSRMbO/tTcvUsB0uzHt99ZWrfd
hmPDMHuu6a1yA2Hdsca1wcUyATxvm1w48LTSOiT9e8huB/jQR3gCmh45Anxl
ZsBSbY+weBSb1mol0oY5e0tzpihvMHt4uKHWsgELrCof+AQvQEUBD0+OfXLw
PjZCreu/bHze6BntVt3F3cC3uCEj7hnM3+vh2pj3T9JJemwF/Cgwm56reA95
EDcX2q4hhTCGwvAZhNR/5fSUUKOPrhqNR2zpt/4G9KVIMLw4AyNJ8r7BqaH8
k8bnFm8QWcYukkekJSTLnji5V9iMea/qJkpzcilV/a1v3sjdR9zwZpnxvEWU
DS1YowjzQhha22azyH8T0xsnDh8rbLXrYPFR2g4d9VysXozAh1sxBQ7NUQ6h
rZ6L0KO3uboS0DMlttNP3yTTxQg0GZALFmlYchy1qTjcMu97LjXdsxJHXSQc
+2133XvWUP6GfeE5U2Rb5zGvEBo43Ua9bz/zei6cd9zVuAH7WyP0d6+sDnKd
kjRG8GaYTRUV4r2Vs58gt9R+Ll81XhISnrqmZrzk5A/ReSEtuftwEqkE8xqP
INymSH04D3spuozj48JPCsVONSMOJJT4Q4U53P9pqQUp78wE8+IOTo9Bz7ro
H1i7xwJgqQVdBSNKVPpo0+j0AuNCBCWc9fmEvg/Y1cwJEqeKHYKzklcWztc9
92mPDXTtWCDd01unQg4njQCPWtoFAUmelfIaNPKXtbZiEnaGyISwdRSRI0+d
nSH5iuVuNIlQVo8yPf2EypNCpYWVTGSw5BAPCVPmBdSDay0XkKErLGQDgbUL
dRQ3JRi/hQghn6PcgiviASSYDYoBSF24LtJIUqlxRSVVCQIVNxKIrhWnmkIt
+fRr+2TWn8sKQpM1pOexhvT8FynlrWan2jwAijwVTNCvga/oIOfI62pC64vc
xpMp0Od0qUuuotyoZWpnXyNxZgI+Fd1wtVfRzJHYm/K3WlfTcGZYhXHSNLtQ
T8mOuJ2SYmL1zMoGzOmqPGEj8wRUv3LF0YyHicwzZyQjCx1yxaqUyFksm0kJ
qLKnnnOqkT1oxe5sE3/z7v2Prz+8+SOWg460tdXdV6Qa3BmTRSri/LxzELSz
Rc0qNNnKldlnF+gziuGVgmLk3TzlPfgpHp4UfjDM8+acQlzHQg5moNQ8Ma8s
i4+U3Csom+Ja46r0Uboi2TrJ8I9BDtqmnOyhMNG6ANIQRfOkNs3bwBO5LZAx
hmhheoyGTG5QQtQHPPVPsq4xi1lBctI0z6+TnZ+NdY7nOa2dDpfIu8qrO9f2
wc7ezm4xDRncZXeIqQ0Z0EbZhk1KUF964VqknkDM4JKnwpkKzwQEvo+1TtWr
kDHbcQtyWy336zesocUvsPQlR3zvCoh5HkWoX508lYvgT4Ck9Vo/N/zC7Hla
nNWqvu6ZtkNRW2oSi4EsNdfWu7DSta39Zn2Z6SzSBsjUSPfBwqFnGurK/OP/
yjXDGFqr2/jXWh2fzDTNFa0KOYGlxmNzjSlrLWTNIO9brxTUNOrXUilW66Lp
k2dylvzR/ra+vtaKGvtR6WJn/g1mIelGnuhzh/kgj9V4xDXL6OgUf4TD8Jpy
Vp+Mmhv1WMcYjH6p4RYybAnGJL02chIvH/c6WxaTAU7GjZUexuDbi2vE3hP5
4TI26kAjHGtXj/sAvW+pnCOQ1bUmq6FmpPkgGaBvIqh63amd03JvchyCFXTz
IPxWwQVdBOjRjGmWsowp0/PoHTNeIGh9FJx8c6yVuXWtyp1WZD0RGbCfYokK
/vNx6QXzy6FeTJ14M1gn+M4f0/7mI2SOPW2E+4zUnecWibR+iygWvzJ1FPmv
RdZVIgatDzZEnIcFvcH57O/NpisSeSGXKMQ3JLan8JoBuli7YSd7x6Kl+KVg
94OHyRReXFtPAghOWjUJzSU5u+PFqVtUE3XOeGb3TY7fgGU8O0txlLpvN0Yt
LE49I9ozoV1N10k46WZqNNRxWCRcKivwIxNhOFrBLeEddKot3vBmghP8zPuP
ze13/UlOmQvcHcfbXmIh/omI7p6g+TPNvYR0/Jj8Bpmvslq1lmZyMy4n5XGf
GS2YkVuXz4m9aKid2v2ZFessBVBfFB0+L2jgpaEDziDs5oCzHhyNOQnC/gab
cBWMn81eB2b7C8QtjNG3rawmt/3xbMQtitzj4AcJdteCuYLk3DDm60Fm/PO1
iARsFbgpdcbr6CAZqYp6bJrc1tmROMG1KsTGigxrHkswnwXDfhp7TZ3yHksK
eyk/mC2+dC2gV1Rs9bU23XiO5gSB74mupf41xLKMVsQ6nKa4I92OMoMnVlw6
iYNZ3Kyx1060U0JJhqVXv8rNxex06SFUs1BlE6aS9Ez3l8ntQ2oYKF/LrTil
hv1DcmNvj5BdyAMfyAzYVI8W1YGz8n1PdcXMGK3/YtuZo/SE4k0vQ38zv/9O
24K1BdIDukdwd0PBwMf2vz+aWcvILL/PaYP+7zw3j17LyaOZp0Tro9KIIqGp
h4sXh6a4qXBjnMdBRwLNydmswTcx/WNp0fLeikK2PO0iraXIJ3/85sfHPWUf
chsMncU0W1vJJ0u+O4P1a4lb+lZ2pnDSrdXT6QD3lBf9zmMojmUsYDF7cvh8
JpOxQR3rsvn8lGQkUT6FiWvFcNcr8aw7UROkByZ6ZnhmPpA55KxG8rwLLQJ8
ajuCOemK7LsVy+Htgt5YUPs1O+F9VgS87MxsD1EHMpOtVDP/065Q78NxIeew
eLWt256JXG1VNl0j8CqprzQiTRZhkeKsTQfK5SbZtGsIQkqymvIyMZVTINQs
sNhPgcWeCPmsl/bSWIYjS9luDMKS9bQMq2Al1kEy7mwjaeUnY6CXGzy9bsRn
a68aS7yRrUbRMtuQtMXbGTEThIuc+nSblmijObhb7dCG4c+gcc9TXlGTfRCx
O6e9kPru7hwo5fP39fcnUKtFlH/CpTuhR6MJUGZMcTh3JJMnd+l74eJLt/bc
/uHteon/RABB+/kY1UV583Twr67xZ/xmce3zHW9jBQHAu5t1erne8CakheUs
iKdwVV+s2+3NEsDgq7SjZ3v/z8F+2tC7E78Br2QFfVslXeo7yKhYGtso320Z
HXNv6F5KX8lXID9hW9xqFdJztzRPv3fvHgk99QsKb4P+TL2yu88KlCpRG52O
ala6Hfdo4JF7tp7weXC9M2KRegTZZ4Aejq1FWrta6I/rQZYT+ZiHBYy/5oba
+OfRE7QQUOVLovrkJxhWvDr1PrXX4KPeBoKHsjPj/FTZV8pQ+3Tlq5ie9A3K
D1wJVGrLaaJEnqSNoDsRPHUTCse2PmalB+kL19Uj0BAJM6Y6CcnWK1SnpScb
gUvcaP4/OVINoJWSelEYAH0crcu4lFryWKhSRQI+zWHDNUy/mIIbrzo4lCcy
io7pX21tSTTOrJpeKkVeTTWztZAxuE34N2tQEw9zMv26H9Ov+78IAdJzbL0A
3D/C5wpVh8BnlQnIJTstu2tn9lZ+jy1dqvVl2c9GM6QWoZCUt++uGkV+gXzV
c4+gSLGkJ5DoyKUaxA/cl4Dzn8tFTm9T0ptp531vmXvkW5GFT2tyXZ+2q3Z7
p9jP8BGTLSDTCfO0lTxcobiYygE10H18P3SzOhV8rPIf1OmWpOK3kljAi0hF
ne/lBP3kWKLG3q3qV+enpKGmD8npSuuCvpyl/Jju6yGGul1ToFdZnJg9WSk+
rXKz+MhN5aNArysUV5DnUV7ssnimyFmxpLKEdJUA8l36xagcwQiA+50JCHXE
GuThnIIjTAHOybCF+9/K+iU+nxUhgJ20SW80mnlQgBZvSjm7LzpDe0jq8VNL
rFelMk9So1UkJbx4PQ2cwbR9H9HZ+7zAT+BHHxUdnGUmiJP3/o+vF3sHhzC+
J7RjQYnM2Yjlx5FNEznbLbYisg6Rf6e2VVBMnLcVk94/l01qlkSxj6zT25xm
TaGgE0K44Yw3XnnnwfeyzoCEzHHPxgoL31i2IiTL3fi5JrC23TXoEYYkPpcw
YbndWKVoj0LjZwRD3RHTVghdwr7lYQAawIm8FU6AyqQRGGjVw47c9C+nG+0B
qg1Jk3Gjrl3kN1XemEhJbC6Ahzj72I+L5iO+K9oU3piGABa0ZWuQfrXNUXwi
wOGQwhUb6V0jBcxdS/LqEudiTyYcdMcjeQqVwc+6jaZv1SJ+6m6A/mLhsdAV
eVnoipAeHv5ein+xW05dKNLw9ikmMuZyadQ/0wYUIxAu+87pi2gLj3OAnbK3
y3s2kHYGG1huVs9g+8zKZzSmwMfIzKiWhBIAtaoTQGm6gmhRdGGRllS3EBQi
eDWcEGM0UC/keOZCLubsDvjlTRhcL75krpIzTlhrnt/9xf5AtmXvBN07ipow
lcMIsWCGAATY2zGKwVa44BkxMyicj1AIYS+jtcc6x5ETp+kjXFpEmehkGy/O
pbEt8m2n+VGAQckCc2KbvVbHZ9k67td1s1pjFOu1e/xe7I9d/hoL2VXDUErB
4KtKLf2alpyinAJenCD6420ODWK9VN2Ge1LIL2ERlC3bHe0aiz0IMiTUoLZO
Pmjrj6RUskrJ35O7kxMAtpj6Lh/3q6aGhvKHy3uZwXLNUJyw5AHXOY/cirSL
HEpidNF0OTx2ghoqstSStjaLY6lmpoOED6fqzPAFcZTTFHTR2/Pad6y+HIUc
vSAt5xUzzhGaoYKdGZ+ZN3dfHgkxOKtVJRjJG1Edyh1Wg1lx0KM4kBch7yQW
GEBJUrrm+24FNjEvYxfGktaBaiSyFNsWDJDFdWuBr2bF9NzmUaEiYIM1qhdC
XaXjCjU6L1qHayRIZAjd0Z12Rqr+kFPr6h2+HH5dkb/nph4WBsFMc3Gbiphh
SYqkbiv2oVRozUvTCO4s943omQTj8mAysG/klj2qKIms4DbzhbSSM4nz/Obt
T7L51gySmIwl8GP2kt628gaZnOCx+WVwHEITFH2+R8bhU6UTWF/IlKUZEEY/
Xv7p32a7L49DHc38O3UFg3vdVyTxImk2kSHwwJEAmhvwM10B/F/zsQCZRHOC
vsAxVk/UnVuFQoNVid1oJ9kmvlGTCO+xCg6F+K7qGJ7U13vfMTZmHtpEu0ol
ZnaJVh5+6M3gl068ohR+lUtYvC+kEz8DZ3Kwj9yCF++21mJbDwkxjsltdZbN
HD1Cb0kH5M87TKr7wlAkOQbqXilKS54lAvhotdPyZd1oafPoQCjwwzo4xGnh
tjUMa9GSBHAPpuvm1HKWvTC4XVmeJzDnXJq+SAi/owRj+vV3bz98y4WBpnPy
mn7Cl/oIWV5LULYWHJ/gM7Sl7MOmBq0GSDcMvPxsQG1hLePF95qy2fzYPS7D
6dMSVu/CUN/jHc3VFWACYGwXmgPy5jzKWBnPvvKnm4k6KvTlZkYXdb+4jPHp
RLk1VV8lkD/O5iDGsI52CNzIHgmgNPYc4MYxObewOVxzWzciKwfzCip0ndaI
wA7PaGEyybIXkyx7SLLsu/syRUGuWhL4qhVY6OGd5zjfCUaibR+8eElBxDNV
5esos4lFvSk0PbKd8tTJm4BeAb0MDPBOpHhMw03LaOdt3Vn4GmiqlvkwItCg
P5/GYsruOXyVl7YM/6Fk9zUX7kxasXu8S2Pcmn8MUOUZQgPSEaTnF9k1WYR1
sxLs1DW8j/P2AjhJdWWgJ15nPdP5DO1RBfLL4VWqWylvi1mqveGC1peXnNew
SGtlTQZDphsXsYGbytLNyhXV96yEwosanxkua/Ay2HWCtUJ6XPoGJbrVYpzx
5jGPq+S3wBMZYCpPMBD7cHTotp6mdzbAYboiNhvZj+nsyhRHKv/aIhDh/Jb1
IxQpfdowPUKWImmX1/eD/pSzSuuOpSeFM5eMQikDK2d00wlRzIBeffYelIk/
ZelN4jiq2JtSD29EY38Ky5+hb1YqH1G3Q6VkxXjGQqorJnOVm6w1gwJg1VnD
W/eh3L3TjTnNVo7mWk1f80wWxKp+6fESXJdci7naq31KSJ1KomndCdBoZ0Qg
HQiYLE8+pige7Ir5pBUauOq2WzFVyYtwE1K31jWRYeY2j4ZWh9Eeo31hSeg3
m6wXNxFhu0u9BaJE2hCTK7Dpndm3XoCxMguDb1laUiiquqnSy19C0AxBB4mM
NI1stXgyDJkGIm0hWordBo6vggx9r/0ImTVt1sKLIsm1auoEabe3bJ0mWQBs
Uufg4zlZNRqj2tTq87d93Ghy0eb2Ow3y6HnQ87rZigQgW2A0V+ldcExgdMkH
USLWnZBDenai9ULKDFaDHS7h/LbO3H8lw7BNEbzvDHqxyF/6reShWR7Htn2V
0R9GQHkmI0NqNzkvKS5strZrnKw/HWTvWbxrmiq2y46gHVuNNDMfyBm17lCq
xnJWoy9pGRs/62k+JUmMs/bcSCMRxs5jlCwI1RcFpyTptVGTdpgcsLcA44zM
mv2e9nAJdxYSAd35+QD1dHojtzc2uvb/K0OcNYrDV6epUEveEazWaE+WLOfu
Hotqt5a6jG7CzN0EZpB5W9OCYpcIMy4CD8Oyebk1xVzdJux3KFozVcJeO8kB
zgkL4rmUDzCHPWe3bK79Gr9BkUzjbW+3AUTCQXKAqtISSPJGtCogdYdWPU9x
VQ+afLNMpuVA627IXQT+7gnrz5q3KunWM8aNTjmqTesUMZWzXtoKZVJC9Oww
W/hyQf51TZdUqBJg66Td0A4j+h9hs4zwy7Cd5+wqi4JH5J852xpPmPg2jHDS
2TivhcpztfI0Wk6nDC6kcBjZnVq7LPippZGXMzkSs+9/+ADhCGr3qQ03Igd3
puFfRX3yXfHO8p6DmyTZT7lIN9JseUXyrJrcFahNsCEiq+IIyokhe9mGb6q3
3daoQpygEMnRdIUNxRNBP6s+3dllJzvPlORGTYkE3ZlJZ6BQiwPXuRxeKZ2x
u3fy9DgYi2a76M4FiN1XAZbmV7WM3ftB52ZO4OQZ/WwQB5etnZ52ikI46HlC
hzkt6cgQhqHtC8wN2YPojelvVhGnf3AyNISH9t3SvZsrI44mEjdK0QiiOJqL
DXPaTpXlur3YbGbahcZajKUN4nBxaJi8BwgvwrsJl3w6RLddeUgYgkNszGgu
TBpUv/tiwZet/L8PITvcDAjPLAGy1RMn7bwg3ZGplr9L27N3B17WUSV5Jvbg
kzo/uYy0qrdsX3k9u3K284pkPj0asPq7XgC4GdDVu74c3Cc5i8iPc1yurmYk
52KIYbM8HEM0Nuvvrk6l5kL8t5BmwdJaylYaclDnq5hjXTURU3aVzi82JeFH
aliiJMDAB/QYNkxf6OKRaoGuHQbfx8dqn6yGcBdCyYNCpbyfpAA+psmoCgG7
TJJMsi1Y/uxAuzwAe+2y5auyew1MPSwgzZ8GkZaTaTNJUR2Uw6uc7ILxTDby
VjqdEZttW1xhf1UmDv8d/X27HisYP40YcXdkxgytJNV9OBA4NG6duk2Ixfo5
pswnX34ik6CD+Tnmp3VCXauBEiLhE8LTOiwyuhfoqiC3o4lSvzX/tJcV6F2a
d9ZXQdMBJOZUAlD1zuKNA/T4Zl2fn4NFi7gF+i6AZTGnPOa/mEww7eYE0y9M
oIwgPGVxxXI1sX80mcoqzLFeIrKcafy9ZZM2HbWX5g5AuG03hnz1+nEoCwhc
nTVp5AI9skOz4S56c2xFhPCcZ99UEkwPfp0cC7ByJBMTkcASm91s7OhpJ6AY
TfC1nzW+v+9KbE2lnfGNNQMCISO3r+bh3r959+HDTNqvuw0/yaOvzfc8M/9f
Z9fW3LZxhd/3V2DSh1gzhIo7QHn0wDhu7WmdqJactm8EQEBiJZEKSUlRNelv
77nuhZQvrRPLEikCi92zZ8/1+4KYgg1Y7s80nPHz83c/f/rrj3QaocYmlPsx
lHhBH/GgtzQ6J3ATBHdIAZHNbXDgFXMrlkco6A7rBjM9tpf3MzFA5kQ4ZNgT
9Dqb5+bV5GiM2Xsg7coBY1Yw8TQy+xAoDFdewYfuje5tvfsrHnFa0kXSih5s
sT469o7zfD4xeEw+rHtJHLrSNHT0xItmkSf3z59lzUwbKw9ue6K9tO9FNXPr
lUZcEUTrROPHwDRBSFPpKRMuWvA5rGxpudWXIk14UopY9+s76pnj6l0uzVHj
SaSIxLMjW52NRgqV2UodfR7DXVEtHnGxzc4T5o6AuIsB6WApCJgZ45gs0Ubx
82mm1HHi4i0RArkEX9Xm+mwHOxp87P1RiZW6wkpEgOeYaLzH9kmcBcuxCRPk
SXIytw5KIN/HBw24NlBh8b5s1wUFMV97WCNEAOnR3ag4CnA3psC1HkL6y1Mv
d+SSwyF1kKYMjC+/nDBAcOjW7wkLaiepu5qrJbjvABSndoU5/4A+IpaFVlF6
NRrscrpJfIRzjxmRhFSKD3nw6CbGoR+JPr0lK4QPGupzpn3KsRPZkBzJAu23
FHrCWWQBRgOIK3//cIKf2BSiy0FA1BmzgNudcNYnAXKGys08zIpyvEAqS6Sp
Yr7XyDcPunNT5WMSm0GOYY+giNAPBOPwcn0cvdGGQNsGLC1CWJG24ooYDaa+
5i1KQw1BvuyHuTpYYMiUe9gFDOTabDpKtyze6FgKyblomCg6BykicXNGe5mg
AsW02zEiELdiyxj1FoLEjPG3ob1htbaXC/X4UqSwGG7M0YFBOIzRTGJUIO9h
dW978ZXWGXzeJrBNaXuAQ1zADa4dakP9fS0mcukYCtru9WDyWSKeGOGeK+4/
tynaSZRABhoThCTmDnENl+5FvcVmYSoimTQF/2rB27gddlwh5VTBiUMP0Kdg
59ArpoTJQbdd1pomxVKJ2E8LsEzwWb2idfqpt8VO6UF2mqtABTNdzKrOtUFz
TAbLcW7vdpEAlHhszBRvE9BB2eG+nlNgDa4QY9Ic9HkEJECw4eg05TuRfoNV
bPtdEHJq+VSxOMYUH7cBD0/KfIHxQiIEti20D7hreNmMQpTsrvYIdntUklR6
B8ItuLikqfyIj2wMo5R4L+5kOQf9jWBhGO0UGNhULYJZLFzo1Do3XoVM7EEp
bmWeJEWKNqWN7T+i0YW5Mwl5g52Jv2pxwh/9uQmRhLFwVn+X++7oBh5KFIfE
sJBf0Hd9VZqBgeX9mLNmxXLJ9iCULK8IPxhKHkFHC5IpZciF2tBjWW1fUJZC
KgRTR4hHI0j5x4GCvtyRco95R/zYMugIdb4x5iUwhbCm0NItnUT3VFUjlIOC
jMuWqT3siN3AWS0LKXpOXcs+Pi3HJAIuFKqyoFDJraD3UWTAGTh0CkkVlEAK
0vVm/TWsHhKAUZgHHbrorRIw0DD/dE9LSYQNr94zEDghXICb56gahG7Bo11v
HbrsRLQCp7DwRoovJ/j0gp5iuHENia54hJS9JXpb8CQU/8DycbfomVP9jkOd
aXfx7RpUI8vUDdVASpbyVmNYcOGQWwRM/TiZYkCHXj+a2BoNW6XHPRDgPS7v
iNCtlbBxnDTsBH8cYh+qSVwzRBAS3wa3127Jh03oqx2C5g6K7PV2kZVlOoVd
vWi50HU1UAaZH2DPl7FZEAltmTkWRIdZ7e3A/YtvZxcXb88vMI16Pewo9rkJ
HuHEqPfHGmqzvFyiRUuaj3tKqFyMndMDlBZcEPG42BXYeUlWL7bKjSk8EZya
xrMOyfJwqgcb+fBkBXbSDfH3LO+4jcMlKPHIhGkeDBjRt/bjwx5BAzWRk2VC
tQ3LPnq7+PF8BnoH6x/QBNZ5f0UzeMShD0TRaapCwx5cecRNfH7tqDFvCZTB
txeUPMGB7SFKKatWMiSpopsW1QSMN4LDQRYUWEn363t0hMhzi7d9e2MfzTw/
n1/Aqn54/9OfYVEtHYEV3j2O0xvLXzdgV4rS/vgsm3g0okOprr+HwW8dSVap
QiFBuNzWUBCbgNLzipTD1CD7s6HHvtFAJt/5gHJCXDee/j9zWYrwdhhzJv0Q
ilKItVvoIhK4r4VCQxoZG1TduoyACaYHJra/RzCaVwc9cRoSBVUuoXrcq0zw
6mNj7/X1HZETjtkKitWLR0MXoJpXRJhAhJqtIHRaIsoJFVFTHgMf+FIrva0k
kVlHBjxVqykqqogFa3RPbVM5H1XSzRb/anu8wpn2NRrzW4H1Yc//gH9AiIjf
4t3FxVnEL+MGSNMEMekxDXC5hvOP2JfwEXqQdG1KAWE+ww/AV72MzIe0RZLu
YO1FZhlsWoaguIEBv2GuMCdJ2HeIbXDa5CjjPcaR00MKOhl8hkb7QUqfztUQ
2RoefJGlWHvoLSg6MoxQ+2SboZXSVNbu2FB9c9zhuEFD3sGD/TAD5RnPLs5w
q3HR7GogeFtmjNlQH6ctt5Jd7IPaBPsRFonv8dDed+0qxmVAOL/NdWyttufn
X2affpj9hBpb6hKVe5ISBJsnXj0FHOAVjx5ahMHYaVVCpJMbHkEfZv+UbCPT
d1DGDNG0CIbZLsTXn4MfY9uDmd1fx8NdLDDIsYIegJp68+7jz2+QCVORH2lF
4Gj4N+ogNiD4gNkFhZTYe9qJcTBQqHr70vDMV4d3224wVh6321/bByI9BNWN
PR3eZH+Yffzbp7fnyEElQkZpx+02VtZOGan9zCuyPTdrimrMwN8Ab+V2efOk
6DwohLM3F7Pffz/6/2b1ag0vPbFwHA4axvzu57O/vv0nEccxjiLVNEq2KSaE
APc5G8j56mDMS4Npu/Y6Bokn1kiakNji3lqf1nKeSqmWzXIEqUWODV5iBGQl
WCM8wzF1fGAWhzYkmt4P6+shio1X1rZbU25oJ9Vm6xVXIGj4iGqdsKKYwgMb
7HG5FZ49YYOR+ZlEnyVcnQRUqwrsjZew8qhDZrmM6CTVYkZCsN0yBrEUsaIF
4vfhEGq/RamEZzixG9UeK9so4FqW6IM5aA207jztYnXZpGNZFsB1jO+uvIYi
SuS9wEpLzW1MLGnnAQ0WuBbGWmhURoKaiPkPd+Q2EvCQRgIGGGwoHFb1oLSR
e/NYXjGkj5gXKp4Mm4JU9jHj/QZqjP01intpW55CKixtPMxWmQRlXMxbJAYH
zGG70fpyC+LkGh1XurI+D6+Q9LzAXU3CIRh0rXWxhCGLq4EP6XsVpRpN/0Xs
Lma43Hm/4Pz77R6ruZ8rSGwrpM0yIfM7Vc1ahi6M5to+bik6wfhqHFPOFS2H
Pf/QPJ8oLsvpdyOc1sN34Pr9AhsXrvf3q3YzjkESTbrGJX2KAeITl8gUmLyg
3QecfJ9guvWgDTTZNa73SG1AOAk1FeubqF/Uyy2pSy639FM1QTERefzGZW0s
JuReQPk4ejcwvIewQ/tVcVR1QH1n2q5HYQkl4uUZYNAdavvWTsYXgtmGESJd
jYPE8Ng5tsFsPyy7dn0S7DxKqkRD1CBeYH1F53w2e3lMjssJJlFw3KIULzbD
o5Tece/NhGi0pAbDajk7UAVh0wMfnQKjoVIBy+C8BohaMCKvvJa9OQof5t9v
g9aEiQVQ2115WEOZ6y71HD4NsUvBk61S0KgmlZqsPF53QeYMa8OpMgmOFKJX
xGDE+51c2JUskI/lJIErcWkbUCb1fuW6n9dSlRuN95udR0G6Px946TPQo+vo
7AbrTQUNOE6Sg84KVzasjJOCsuweTlESGIk30vJ0RkvE1QjEw4y2cRonf39R
5SoTqule66pJ1BcDVu1iDTbRxJK46uDteqU2NQDnxgoFYzX4RYYk3YIfx88y
sX3kN0L4wWYjs05Zq3JCtKJS74LWrLg55J3S9l1qgkWBlpHA5PP9OtoKyP0K
LsJhsUU56q0lgQEUN4/5anBZdi6XM91ABTd7+wcBBfrNGmHMwzFw+o5PODn6
XhspOaULiC9/JfzXfvxcJ+LKlgJh4a4nWB5uE0XuB86VWlyBK4k9egTnFsRA
wK1twAyRPRXxTYFu4o22Q/jvBq0KodCy0YbaSZTBJcV9fr1fe711uJQiXrv1
+hqr3ltmF2A99rDUsvM1ASpcR4cFVaTgVDQZspwK0rSgjARRpExw2j2j4Eo4
2WkzG91YwmyQHOfHqWQiaH4ZefCRSt9x3zNHBwzuhtFWiMbaFYdw0pF3FNWY
/wR3Xd/AOl4M9AyI6BOM/KX95O9+TLTIVLpTDGRkI5byo3SQCT4Hxq91VbVO
idqCViekeXHt0JxbKoyIluBwrccG4RxxSDHCMJEuxhmVDQFDsXMcBPI5b0ZF
LlyxJz6U/A72G9NZt+KCVS5Sul/Rc6zB77YdIYqfRZF2BNzBgnjaWgOIxma9
Ino0V0cPwgRPD54A9fuRFf64oktbuEhhtrwbdktfMbB8fL/VLu6Q6fELmuU4
+jsRJUXv2sdr7DdUaxTvijy+V9rEzIjlwsElu4GrFYftdnB09/hBPm+UIWWD
VjRaG9yWYbSuBzc5d0EFLGs7v6rbw8tRciPJLom5fKjvMOGwbC9BsVBnijuy
im8CsTcY68KT5hrtIu6MkVDA8mAyYdffsFUUgt2TTHDPrbNxKF9tE1OCc3d+
9pf3MVWUwm9Qhxw7hiE+CCgwDwhIeBjxG3v4ryJXhvUCAYAUXSpPwPYzIPzm
C2fQtwHyT8wBFH/0ZSh+2PQx441L7TIxrko33pLQUxH62sMUR1+E33eI1Bq0
4B5z1g5cJsiwygza5HAVHHQIOnstlcbh3B2UXHtUJN6NA5RXsUhcY5fzZi2A
MJWJBfljTeNLNmzP9lFOCypAdrYLzPW/hxUJsyhKX4BVXHUYji3eIxT39e2e
L8e9THeqWYjXRMh3JfDP+IQbnxhgoNglVehsNi73Zs/+5crsk4OwuC13wn1A
qU1HEuGRiruH4/b9LZFGLonqw9/kdLwZ62K51D/+tCc9Ov+MJzg6Sw/ZGf0Z
0INcybsPGTKZw4nzoq11Xw0WxQTsg99MnDlxdWnmZWLPb6X1dD2pPi49q6BB
+SKEq0zsCkfQRWkAmyA3+7kSpfe0rB4EAaIX9R/P5vz2+/A8RtDbz9KB+seC
WdmaOQzk32ISg9rRNKx0wNhGlZIekprATtBks5JDmrY9X9p2k1IrlJ+mNgH7
mBxxOmMvcojpbluJ8w4mN6d/Cjok1bqSbSLWBXud+D5L79YR/0phxx55Pcpj
p7SSFO7ZfuXI54Q8IQVRKixOKjZP/gdC+2NwQhB3IfqwZGSxGWxD0F7r6/XN
+sFj82EJfJng3pDXRFz2ry0cFEmEi5d9idneKJ6W8nXfSchHGNi5pV3aw2w7
xKXygzNAlJ/HsipB2Z588i5Vmjo3MHiuLBZgPF0m7i9Td5e9RE5Q00kshoLP
pE4Ml2Lneu2MWUrvRLYqNlx4xfZiq922tkwcd5+M1FZXBXPJWChbDs2gbe/D
NGG2c3jUE4INGa4qe5Ie96VChvnmJ6E4ovKDoTwQHtnOIx5dehnAoE4CoTn5
ZdlqPis86QXsdQGtiv2WSv0W4vm4GBRjWlH9EtoX5Fh7b7abgA7w+RmLlmHq
nzil7pmI8GlsS/pFlvX5D7LAv78cgLwI9ioWiyHvS5PkWaSZfLjVZgATBXYC
WK5/SKNX4/I35qoB4/a1UXYR56Ci0j5CHfUb4bUpwvYxI2ZoRY533++o5kSh
FSz+LFWomK9wCn2nGpcsExtPYVp3hpoJHYvd/rEwewmsxmHdHMDbeNzIX0Gu
sRFUljgTgtd42EORA6+hVqSAOp35kZD+xhmOfmkw4zWeRAdsVDyj0o4fcQRF
k94WE+4lGitp3xDUcq2ImwT8u49r7LuWNo0DSJeAKm5Jnb+UoKKlIsuJU28O
0unEmDdkG54wFu8pkQhsYuSip75CfmGgFziIcjqH743Wy5/OP53/iL9scThP
zXzs2yItskXbtIusSOHvNGuyrG6meTMtxqIr86ocxq4uqrYos+k4TBdjkqbT
RZos2qyfG0pO7oFbfbr4U9wo7qi8NgNt+Z7cd3Ck5j2Hmv7YysaMeVTziR9o
kfydPWhk6LYdWEnOQTcpDZI0lG1ZCwTQqc6Oh7P6+62unhpS87adU0RrIvDz
HIfmym7FoY+xygnBXR2V2+9HEwsMRZO6ugc7DURIWyBPEU5uEmFyVSpJPg4j
/1bkIYyfpnXi/uAFQB5O56s0Cf7Mic7Tp52RS0ny8HTednRIzUGKPECwK1A2
r0C6QGfcYcWDVEQegVj9B/6YpiibPGnzJM2zJK+bLKlgQHVS9dW0yuH7Av4d
qyEb4aeyKuoS3sGfF6bO4AV8cQofKLIOvs+qsc6SomiSasjHRTOCrEy7rkra
pGy6ru3zFp4lNSnco6prvNe0KussW+QpvwXvpO6dqgzeyarUeD/mVV6WZV4U
9pWiboqkqnDgeZHj36wq4PumSqvC5Bm+WBX07xS+NvA3y2v4d5rn9LWAzxZV
lpfwM1wdRlBV+Bvw4YquWcIHpvBiCV/xlxO4S4rfw9eE7pVVuR1PCbPWGvmh
Gkv7Ro1vyPdN2tESp03Xj0NZNUmi75ka5hamEq79hf/0Qq130c5UNTw0LQis
IaxcCVOTtFmRVdOuLrN0USTToRvgaRddNq1hadqs7LJ8URlY+7pti7apii7t
8jYfFl3Z5UmZ111edEnRtDiwOh/aYSjSdszrdBjHrmrM0HddUXdNMsB166Gu
y6Hp26HsYFn6POlZ6oztEw4U3Q/rxdOJ77eezuVMjS/X68U21HDRnoYzL+PG
gbYb8i7piyKbNmOf9mkxbcduLPpmCqLdTWFK6hYeA6aimHYgA6Abp+V0mnZg
l2ZdU5aH2g6zrbd3uyfLp+LpJK1VvWSkZT8YZQMJjOknWYdAI1F3AfgkVG7D
7Q1HE8PAHW/U/gX9AK9jpxii2A3b2e5AkUQhLB5pi/9DNaSeaki/WTVUC5C9
oaKNUuffohyaaVuj8BqQXtiYcIEKhLCBHV2inskWIM4j/FfUurtwH6ZWG2Sw
z/bUQZZ3pA5gL8MeTmBbFqgQYJc3qCJAE+SkIuAyBrc5bX1WA1PY7bjxp6Qq
QAHA45SkPPBrRR/KSGmYQpTNFFQDfjCtWKOAoqgy+re04+lBQQw4RXAZUQuw
3z67/bN8GCvctiCMsP/Svq+7cZGPg2m6Bq7RLxZNDTOctUPfpjBk2HTdou/7
ad6OQ5qlTQMzDHs6GRfjAJ8YisaApBf1oq+Lvu+SMcXnHZOxwC9VPWZNA0vX
Vvm0HOB/WPdmgNVfsET8F559tJr9OgMA

-->

</rfc>

