unimsg provisional

docs/17-spec-based-design.umsg

%unimsg 0 method/spec-based-design/v0 · 360 lines · 18878 bytes of text · 15381 bytes canonical · the raw file

Point at anything below — a sigil, a literal, a brace — and the card says what it is. Keyboard: tab through the document. Every explanation is also printed in full beneath the source.

%unimsg 0 method/spec-based-design/v0

-- How to design a project in unimsg so that the project derives from it.
--
-- Written after a session in which four specifications, six protocol
-- documents, two applications and a format were all authored this way, and in
-- which the method failed twice in instructive ways. It is a description of a
-- practice that works, with its failure modes attached, and not a manifesto.
--
-- The claim is narrow. Not that everything should be generated — most things
-- should not. The claim is that a project has a handful of facts that appear
-- in several places, and that those facts should exist once, as data, with
-- every appearance derived. Which facts those are is the judgement; the
-- mechanism is easy.

spec-based-design @method/spec-based-design/v0 {
  title  "Designing a project as a unimsg document"
  status :provisional

  premise "A specification that only describes is a document that can be wrong
           without anything noticing. A specification that generates cannot be
           wrong about the thing it generates, because the thing is its output.
           So the practice is to move facts from prose into data, and then to
           derive their appearances."

  -- ===================================================================
  -- THE THREE KINDS OF CONTENT
  -- ===================================================================

  -- Getting this division right is most of the method. It decides what to
  -- write as data and what to leave as prose, and it is the judgement the
  -- mechanism cannot make for you.

  content-kinds [
    | kind          is                                              belongs
    | :generative   "a fact that appears somewhere else as well"     "in the document, generated out"
    | :normative    "a rule an implementation must satisfy"          "in the document, with vectors"
    | :descriptive  "reasoning, context, why a decision was taken"   "in the document, generated nowhere"
  ]

  the-test-for-generative "Does this fact appear in more than one place? A
                           colour that is in a stylesheet and a design note is
                           two copies of one fact and will diverge. A paragraph
                           explaining why the palette is quiet appears once and
                           should stay prose."

  the-test-for-normative "Could an implementation get this wrong? Then it needs
                          a vector, and the vector needs to pin bytes or values
                          rather than describe an outcome. A sentence is
                          satisfied by whatever the reader understood it to
                          mean — which is not a theory, it is what happened."

  descriptive-is-not-lesser "Most of a good specification is descriptive, and
                             the reasoning is the part that survives longest.
                             A decision without its reason cannot be revisited,
                             only reversed by whoever finds it inconvenient."

  -- ===================================================================
  -- THE GENERATION PATTERN
  -- ===================================================================

  pattern {
    shape [
      | step  do
      | 1     "put the fact in the document, as data — a table, not a sentence"
      | 2     "write a generator that reads the document and emits the artefact"
      | 3     "run the generator in the build, before anything consumes the artefact"
      | 4     "give the generator a check mode that fails when the artefact is stale"
      | 5     "say in the artefact that it is generated, and from where"
    ]

    why-step-3 "So a hand edit cannot survive a build. Without it the document
                is a suggestion, and the first time someone edits the artefact
                directly the two have silently diverged."

    why-step-4 "So a build that cannot run the generator fails loudly rather
                than proceeding with a stale artefact. A skipped check reads
                exactly like a passed one."

    why-step-5 "So the next person edits the right file. A generated artefact
                that does not say so is a trap laid for a colleague."

    worked-examples [
      | fact                        lives-in                    generated-into        by
      | "the colour palette"        "a presentation-system block"  "a stylesheet's custom properties"  "a token generator"
      | "the navigation"            "a shell block"             "the markup of every page"  "a page generator"
      | "a README"                  "a documentation block"     "README.md"           "a readme generator"
      | "conformance vectors"       "a conformance block"       "a test suite"        "written by hand from the vectors"
    ]

    the-last-row-is-honest "Vectors are usually transcribed into tests by hand
                            rather than generated. That is a weaker link than
                            the others and worth knowing: a vector nobody
                            transcribed is a vector nothing checks."
  }

  -- ===================================================================
  -- DOCUMENTATION AS DATA
  -- ===================================================================

  -- The specific case that prompted this document: a README should not be
  -- written in Markdown. It should be written in unimsg and rendered.

  documentation {
    why "A README repeats what the project's other documents already say —
         what it is, what it is for, how to run it, what its limits are. Every
         repetition is a copy that drifts. Writing it as data means the facts
         it shares with a specification can be the same facts."

    vocabulary [
      | key         holds
      | :title      "the document's heading"
      | :intro      "prose before the first section; a string, or a sequence of paragraphs"
      | :sections   "a SEQUENCE of sections, because order carries meaning here"
      | :heading    "a section's heading"
      | :body       "prose; a string, or a sequence of paragraphs"
      | :table      "a sequence of identically-keyed records, rendered as a table"
      | :code       "a literal block; `text` and an optional `language`"
    ]

    sections-are-a-sequence-not-a-map "This is the one shape decision that
                                       matters, and it follows from the
                                       format. Map keys are sorted
                                       canonically, so a document whose
                                       sections were a map would render them
                                       alphabetically — Status before
                                       Overview, Limits before Usage. Prose has
                                       an order and that order is meaning, so
                                       sections are a sequence."

    the-same-applies-to-tables "A table's columns are map keys and are
                                therefore sorted on render. Where column order
                                carries meaning — an identifier, then inputs,
                                then expected — that is currently lost. It is a
                                known weakness of the format rather than of
                                this method."
  }

  -- ===================================================================
  -- TWO KINDS OF TOOL
  -- ===================================================================

  tooling {
    doc "A tool that reads these documents is either generic or domain-specific,
         and the two are not points on a scale — they are opposite commitments,
         and the failure is the middle."

    kinds [
      | kind              knows                                  refuses
      | :generic          "structure alone — maps, sequences, record shape"  "to learn any vocabulary"
      | :domain-specific  "exactly one vocabulary, completely"    "any document not following it"
    ]

    worked-pair "A presentation surface renders any document at all and has no
                 per-domain handlers, because the moment it knows about one
                 domain it is a viewer for that domain rather than a surface
                 for all of them. A readme generator knows title, intro and
                 ordered sections, and rejects a document without them rather
                 than rendering half of one. Both are right; they are answering
                 different questions."

    the-middle-is-the-mistake "A tool that half-knows a vocabulary produces
                               plausible output from documents it does not
                               understand, which is worse than either
                               commitment. The generic tool would have shown
                               the structure honestly; the specific tool would
                               have refused. The half-knowing one shows
                               something that looks like a README and is not."

    how-to-choose "Ask whether the tool should work on a document it has never
                   seen. Yes means generic, and it must then act only on
                   structure. No means domain-specific, and it must then
                   validate the vocabulary and refuse what does not fit —
                   because its whole value is that its output can be trusted to
                   mean something."

    the-same-shape-as-content "This mirrors the altitude argument about
                               content: a reader can act on what arrives at a
                               level it already understands. A tool is the same
                               question asked of the tool — either it acts on
                               structure, which every document has, or on a
                               vocabulary, which it must then require."
  }

  -- ===================================================================
  -- ONE DOCUMENT OR TWO
  -- ===================================================================

  organising {
    question "When something responds to an existing document — a review, a
              counter-proposal, a set of answers — does it become a layer
              inside that document, or a document of its own?"

    the-test "Does the reply RESOLVE into the thing, or STAND BESIDE it?"

    resolves-in [
      | reply-kind                        why-it-merges
      | "answers to a deficiency report"  "once answered, they are simply what the specification says"
      | "a decision on an open question"  "the question closes and the ruling is part of the rule"
      | "a correction"                    "the wrong version has no reason to survive beside the right one"
    ]

    stands-beside [
      | reply-kind             why-it-separates
      | "a counter-proposal"   "two live positions with different fates; one may be adopted and one archived"
      | "a review"             "it has an author and a date and is about the document rather than of it"
      | "a peer document"      "one subject continued, not the same subject revised"
    ]

    the-lifecycle-argument "This is what the test is really asking. A reply
                            that merges has no independent future: after
                            merging there is one document and one history. A
                            reply that stays separate has its own fate — it can
                            be adopted, rejected, superseded or withdrawn while
                            the original is untouched, and encapsulating it
                            would make each of those an edit to a document
                            nobody decided to change."

    then-merge-the-outcome "When a counter-proposal is decided, the DECISION
                            merges into the specification and both proposals
                            become history. The separation is for the period
                            when the answer is genuinely open, which is
                            precisely when a reader needs to see two positions
                            rather than one document arguing with itself."

    references-make-it-cheap "A separate document is only awkward if the link
                              between them is decorative. With references
                              denoting identifiers or paths, and a checker that
                              reports a reference resolving to nothing, a reply
                              can name what it answers and the pair stays
                              connected without being fused."

    worked-both-ways "This project has done each, correctly. A deficiency
                      report's answers were merged into the application's
                      specification, because once answered they were simply
                      what it said. A counter-proposal about a wire format was
                      kept separate, because both were live and one would be
                      chosen. The difference is not the size of the reply."
  }

  -- ===================================================================
  -- WHERE THE METHOD FAILS
  -- ===================================================================

  -- Both of these happened. They are the reason this document is not a
  -- manifesto.

  failure-modes {
    describing-what-you-did-not-check {
      what "Writing a specification section from memory, in the same voice as
            the sections that were verified, with nothing marking the
            difference."

      happened "A document about a database protocol was written partly from
                captured bytes and partly from recall. Read afterwards, the two
                halves were indistinguishable — and the recalled half is
                exactly where an implementer would trust it most, because it
                reads with the same confidence."

      remedy "Mark the provenance of every section. Captured, described,
              deferred. If a document cannot say which of its claims were
              checked, it is not a specification, it is an essay about one."
    }

    prose-that-looks-normative {
      what "Conformance vectors written as sentences rather than as values."

      happened "A store specification carried twenty-four vectors in prose.
                Two independent implementations passed all twenty-four and
                could not read each other's descriptors, because a sentence is
                satisfied by whatever the reader understood it to mean. Every
                vector was correct and the suite proved nothing."

      remedy "A vector pins bytes, or a value, or an error. `expect the same
              result either order` is a description; `expect c045000000000000`
              is a vector."
    }

    the-generator-that-guessed {
      what "Building a tool before the semantics it depends on are decided."

      happened "A reference checker was written before it had been decided
                whether a reference names an identifier or a path. The tool had
                to guess, and a guess encoded in a tool becomes a convention by
                accident."

      remedy "Decide, write it into the specification, then build the tool
              against the specification. If the decision cannot be made yet,
              the tool reports categories rather than verdicts."
    }
  }

  -- ===================================================================
  -- WHAT MAKES A DOCUMENT DERIVABLE
  -- ===================================================================

  derivable {
    doc "A project derives from its document to the extent that someone could
         rebuild it with the document and no access to the original. That is a
         high bar and mostly unreachable; the useful question is which parts
         clear it."

    measured "An independent implementation built an application from a
              specification and reproduced twenty-three of twenty-three colour
              values exactly, two of four button variants, none of three layout
              measurements, and nothing at all of the behaviour described only
              in prose. The pattern is not subtle."

    what-transfers [
      | form                                       outcome
      | "a table of unambiguous values"            "reproduced exactly"
      | "a table whose cells are English"          "reproduced in part"
      | "a value competing with a framework default"  "the framework won"
      | "prose describing behaviour"               "reinvented or absent"
    ]

    so "Anything that must come out the same goes in a table as values. Prose
        is for the reasoning, which is what prose is good at and what tables
        cannot hold."
  }

  -- ===================================================================
  -- ADOPTING IT
  -- ===================================================================

  adopting {
    order [
      | step  do                                                    because
      | 1     "write the document before the code, for one component"  "the method is only testable when the document comes first"
      | 2     "move one repeated fact into it and generate its artefact"  "small, reversible, and proves the loop"
      | 3     "add a check mode and run it in the build"            "otherwise the document is a suggestion"
      | 4     "mark provenance on every section"                    "so a reader knows what was verified"
      | 5     "give the normative parts vectors that pin values"    "so an implementation can fail"
    ]

    do-not [
      "generate code from the document — generate artefacts that repeat facts,
       which is a much smaller and much safer claim",
      "move prose into data because it can be moved; reasoning belongs in
       prose and loses meaning as a table",
      "treat the document as authoritative over a running system; where they
       disagree the system is right and the document has drifted"
    ]

    the-smallest-useful-version "One document, one generated artefact, one
                                 check in the build. That is the whole method;
                                 everything else is more of it."
  }

  provenance {
    from "A single session's practice across a serialisation format, a
          presentation surface, a content-addressed store, an application, and
          six protocol documents — with the failures recorded above as they
          occurred rather than reconstructed afterwards."

    status "A practice that held for one project. Whether it holds for a team,
            or across a year, is untested."
  }
}

The canonical encoding

Produced by the reference encoder when this page was built. Decoding these bytes and printing them in the text form returns the document above, byte for byte — that round trip is the claim the whole format rests on.

a1 71 73 70 65 63 2d 62 61 73 65 64 2d 64 65 73 69 67 6e da 00 01 11 d5
82 81 da 00 01 11 d6 78 1b 6d 65 74 68 6f 64 2f 73 70 65 63 2d 62 61 73
65 64 2d 64 65 73 69 67 6e 2f 76 30 af 65 74 69 74 6c 65 78 28 44 65 73
69 67 6e 69 6e 67 20 61 20 70 72 6f 6a 65 63 74 20 61 73 20 61 20 75 6e
69 6d 73 67 20 64 6f 63 75 6d 65 6e 74 66 73 74 61 74 75 73 da 00 01 11
d4 6b 70 72 6f 76 69 73 69 6f 6e 61 6c 67 70 61 74 74 65 72 6e a6 65 73
68 61 70 65 85 a2 62 64 6f 78 41 70 75 74 20 74 68 65 20 66 61 63 74 20
69 6e 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 2c 20 61 73 20 64 61 74 61
20 e2 80 94 20 61 20 74 61 62 6c 65 2c 20 6e 6f 74 20 61 20 73 65 6e 74
65 6e 63 65 64 73 74 65 70 01 a2 62 64 6f 78 40 77 72 69 74 65 20 61 20
67 65 6e 65 72 61 74 6f 72 20 74 68 61 74 20 72 65 61 64 73 20 74 68 65
20 64 6f 63 75 6d 65 6e 74 20 61 6e 64 20 65 6d 69 74 73 20 74 68 65 20
61 72 74 65 66 61 63 74 64 73 74 65 70 02 a2 62 64 6f 78 45 72 75 6e 20
74 68 65 20 67 65 6e 65 72 61 74 6f 72 20 69 6e 20 74 68 65 20 62 75 69
6c 64 2c 20 62 65 66 6f 72 65 20 61 6e 79 74 68 69 6e 67 20 63 6f 6e 73
75 6d 65 73 20 74 68 65 20 61 72 74 65 66 61 63 74 64 73 74 65 70 03 a2
62 64 6f 78 45 67 69 76 65 20 74 68 65 20 67 65 6e 65 72 61 74 6f 72 20
61 20 63 68 65 63 6b 20 6d 6f 64 65 20 74 68 61 74 20 66 61 69 6c 73 20
77 68 65 6e 20 74 68 65 20 61 72 74 65 66 61 63 74 20 69 73 20 73 74 61
6c 65 64 73 74 65 70 04 a2 62 64 6f 78 38 73 61 79 20 69 6e 20 74 68 65
20 61 72 74 65 66 61 63 74 20 74 68 61 74 20 69 74 20 69 73 20 67 65 6e
65 72 61 74 65 64 2c 20 61 6e 64 20 66 72 6f 6d 20 77 68 65 72 65 64 73
74 65 70 05 6a 77 68 79 2d 73 74 65 70 2d 33 78 c6 53 6f 20 61 20 68 61
6e 64 20 65 64 69 74 20 63 61 6e 6e 6f 74 20 73 75 72 76 69 76 65 20 61
20 62 75 69 6c 64 2e 20 57 69 74 68 6f 75 74 20 69 74 20 74 68 65 20 64
6f 63 75 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
69 73 20 61 20 73 75 67 67 65 73 74 69 6f 6e 2c 20 61 6e 64 20 74 68 65
20 66 69 72 73 74 20 74 69 6d 65 20 73 6f 6d 65 6f 6e 65 20 65 64 69 74
73 20 74 68 65 20 61 72 74 65 66 61 63 74 0a 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 64 69 72 65 63 74 6c 79 20 74 68 65 20 74 77 6f 20
68 61 76 65 20 73 69 6c 65 6e 74 6c 79 20 64 69 76 65 72 67 65 64 2e 6a
77 68 79 2d 73 74 65 70 2d 34 78 b4 53 6f 20 61 20 62 75 69 6c 64 20 74
68 61 74 20 63 61 6e 6e 6f 74 20 72 75 6e 20 74 68 65 20 67 65 6e 65 72
61 74 6f 72 20 66 61 69 6c 73 20 6c 6f 75 64 6c 79 20 72 61 74 68 65 72
0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 61 6e 20 70 72
6f 63 65 65 64 69 6e 67 20 77 69 74 68 20 61 20 73 74 61 6c 65 20 61 72
74 65 66 61 63 74 2e 20 41 20 73 6b 69 70 70 65 64 20 63 68 65 63 6b 20
72 65 61 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78
61 63 74 6c 79 20 6c 69 6b 65 20 61 20 70 61 73 73 65 64 20 6f 6e 65 2e
6a 77 68 79 2d 73 74 65 70 2d 35 78 82 53 6f 20 74 68 65 20 6e 65 78 74
20 70 65 72 73 6f 6e 20 65 64 69 74 73 20 74 68 65 20 72 69 67 68 74 20
66 69 6c 65 2e 20 41 20 67 65 6e 65 72 61 74 65 64 20 61 72 74 65 66 61
63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 61 74 20
64 6f 65 73 20 6e 6f 74 20 73 61 79 20 73 6f 20 69 73 20 61 20 74 72 61
70 20 6c 61 69 64 20 66 6f 72 20 61 20 63 6f 6c 6c 65 61 67 75 65 2e 6f
77 6f 72 6b 65 64 2d 65 78 61 6d 70 6c 65 73 84 a4 62 62 79 71 61 20 74
6f 6b 65 6e 20 67 65 6e 65 72 61 74 6f 72 64 66 61 63 74 72 74 68 65 20
63 6f 6c 6f 75 72 20 70 61 6c 65 74 74 65 68 6c 69 76 65 73 2d 69 6e 78
1b 61 20 70 72 65 73 65 6e 74 61 74 69 6f 6e 2d 73 79 73 74 65 6d 20 62
6c 6f 63 6b 6e 67 65 6e 65 72 61 74 65 64 2d 69 6e 74 6f 78 20 61 20 73
74 79 6c 65 73 68 65 65 74 27 73 20 63 75 73 74 6f 6d 20 70 72 6f 70 65
72 74 69 65 73 a4 62 62 79 70 61 20 70 61 67 65 20 67 65 6e 65 72 61 74
6f 72 64 66 61 63 74 6e 74 68 65 20 6e 61 76 69 67 61 74 69 6f 6e 68 6c
69 76 65 73 2d 69 6e 6d 61 20 73 68 65 6c 6c 20 62 6c 6f 63 6b 6e 67 65
6e 65 72 61 74 65 64 2d 69 6e 74 6f 78 18 74 68 65 20 6d 61 72 6b 75 70
20 6f 66 20 65 76 65 72 79 20 70 61 67 65 a4 62 62 79 72 61 20 72 65 61
64 6d 65 20 67 65 6e 65 72 61 74 6f 72 64 66 61 63 74 68 61 20 52 45 41
44 4d 45 68 6c 69 76 65 73 2d 69 6e 75 61 20 64 6f 63 75 6d 65 6e 74 61
74 69 6f 6e 20 62 6c 6f 63 6b 6e 67 65 6e 65 72 61 74 65 64 2d 69 6e 74
6f 69 52 45 41 44 4d 45 2e 6d 64 a4 62 62 79 78 20 77 72 69 74 74 65 6e
20 62 79 20 68 61 6e 64 20 66 72 6f 6d 20 74 68 65 20 76 65 63 74 6f 72
73 64 66 61 63 74 73 63 6f 6e 66 6f 72 6d 61 6e 63 65 20 76 65 63 74 6f
72 73 68 6c 69 76 65 73 2d 69 6e 73 61 20 63 6f 6e 66 6f 72 6d 61 6e 63
65 20 62 6c 6f 63 6b 6e 67 65 6e 65 72 61 74 65 64 2d 69 6e 74 6f 6c 61
20 74 65 73 74 20 73 75 69 74 65 76 74 68 65 2d 6c 61 73 74 2d 72 6f 77
2d 69 73 2d 68 6f 6e 65 73 74 79 01 0e 56 65 63 74 6f 72 73 20 61 72 65
20 75 73 75 61 6c 6c 79 20 74 72 61 6e 73 63 72 69 62 65 64 20 69 6e 74
6f 20 74 65 73 74 73 20 62 79 20 68 61 6e 64 0a 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 61 74 68
65 72 20 74 68 61 6e 20 67 65 6e 65 72 61 74 65 64 2e 20 54 68 61 74 20
69 73 20 61 20 77 65 61 6b 65 72 20 6c 69 6e 6b 20 74 68 61 6e 0a 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 74 68 65 20 6f 74 68 65 72 73 20 61 6e 64 20 77 6f 72 74 68 20 6b
6e 6f 77 69 6e 67 3a 20 61 20 76 65 63 74 6f 72 20 6e 6f 62 6f 64 79 0a
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 74 72 61 6e 73 63 72 69 62 65 64 20 69 73 20 61 20 76 65 63
74 6f 72 20 6e 6f 74 68 69 6e 67 20 63 68 65 63 6b 73 2e 67 70 72 65 6d
69 73 65 79 01 55 41 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 20 74 68
61 74 20 6f 6e 6c 79 20 64 65 73 63 72 69 62 65 73 20 69 73 20 61 20 64
6f 63 75 6d 65 6e 74 20 74 68 61 74 20 63 61 6e 20 62 65 20 77 72 6f 6e
67 0a 20 20 20 20 20 20 20 20 20 20 20 77 69 74 68 6f 75 74 20 61 6e 79
74 68 69 6e 67 20 6e 6f 74 69 63 69 6e 67 2e 20 41 20 73 70 65 63 69 66
69 63 61 74 69 6f 6e 20 74 68 61 74 20 67 65 6e 65 72 61 74 65 73 20 63
61 6e 6e 6f 74 20 62 65 0a 20 20 20 20 20 20 20 20 20 20 20 77 72 6f 6e
67 20 61 62 6f 75 74 20 74 68 65 20 74 68 69 6e 67 20 69 74 20 67 65 6e
65 72 61 74 65 73 2c 20 62 65 63 61 75 73 65 20 74 68 65 20 74 68 69 6e
67 20 69 73 20 69 74 73 20 6f 75 74 70 75 74 2e 0a 20 20 20 20 20 20 20
20 20 20 20 53 6f 20 74 68 65 20 70 72 61 63 74 69 63 65 20 69 73 20 74
6f 20 6d 6f 76 65 20 66 61 63 74 73 20 66 72 6f 6d 20 70 72 6f 73 65 20
69 6e 74 6f 20 64 61 74 61 2c 20 61 6e 64 20 74 68 65 6e 20 74 6f 0a 20
20 20 20 20 20 20 20 20 20 20 64 65 72 69 76 65 20 74 68 65 69 72 20 61
70 70 65 61 72 61 6e 63 65 73 2e 67 74 6f 6f 6c 69 6e 67 a6 63 64 6f 63
78 c1 41 20 74 6f 6f 6c 20 74 68 61 74 20 72 65 61 64 73 20 74 68 65 73
65 20 64 6f 63 75 6d 65 6e 74 73 20 69 73 20 65 69 74 68 65 72 20 67 65
6e 65 72 69 63 20 6f 72 20 64 6f 6d 61 69 6e 2d 73 70 65 63 69 66 69 63
2c 0a 20 20 20 20 20 20 20 20 20 61 6e 64 20 74 68 65 20 74 77 6f 20 61
72 65 20 6e 6f 74 20 70 6f 69 6e 74 73 20 6f 6e 20 61 20 73 63 61 6c 65
20 e2 80 94 20 74 68 65 79 20 61 72 65 20 6f 70 70 6f 73 69 74 65 20 63
6f 6d 6d 69 74 6d 65 6e 74 73 2c 0a 20 20 20 20 20 20 20 20 20 61 6e 64
20 74 68 65 20 66 61 69 6c 75 72 65 20 69 73 20 74 68 65 20 6d 69 64 64
6c 65 2e 65 6b 69 6e 64 73 82 a3 64 6b 69 6e 64 da 00 01 11 d4 67 67 65
6e 65 72 69 63 65 6b 6e 6f 77 73 78 31 73 74 72 75 63 74 75 72 65 20 61
6c 6f 6e 65 20 e2 80 94 20 6d 61 70 73 2c 20 73 65 71 75 65 6e 63 65 73
2c 20 72 65 63 6f 72 64 20 73 68 61 70 65 67 72 65 66 75 73 65 73 77 74
6f 20 6c 65 61 72 6e 20 61 6e 79 20 76 6f 63 61 62 75 6c 61 72 79 a3 64
6b 69 6e 64 da 00 01 11 d4 6f 64 6f 6d 61 69 6e 2d 73 70 65 63 69 66 69
63 65 6b 6e 6f 77 73 78 22 65 78 61 63 74 6c 79 20 6f 6e 65 20 76 6f 63
61 62 75 6c 61 72 79 2c 20 63 6f 6d 70 6c 65 74 65 6c 79 67 72 65 66 75
73 65 73 78 1d 61 6e 79 20 64 6f 63 75 6d 65 6e 74 20 6e 6f 74 20 66 6f
6c 6c 6f 77 69 6e 67 20 69 74 6b 77 6f 72 6b 65 64 2d 70 61 69 72 79 01
e6 41 20 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 73 75 72 66 61 63 65 20
72 65 6e 64 65 72 73 20 61 6e 79 20 64 6f 63 75 6d 65 6e 74 20 61 74 20
61 6c 6c 20 61 6e 64 20 68 61 73 20 6e 6f 0a 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 70 65 72 2d 64 6f 6d 61 69 6e 20 68 61 6e 64 6c
65 72 73 2c 20 62 65 63 61 75 73 65 20 74 68 65 20 6d 6f 6d 65 6e 74 20
69 74 20 6b 6e 6f 77 73 20 61 62 6f 75 74 20 6f 6e 65 0a 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 64 6f 6d 61 69 6e 20 69 74 20 69 73
20 61 20 76 69 65 77 65 72 20 66 6f 72 20 74 68 61 74 20 64 6f 6d 61 69
6e 20 72 61 74 68 65 72 20 74 68 61 6e 20 61 20 73 75 72 66 61 63 65 0a
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 61 6c 6c
20 6f 66 20 74 68 65 6d 2e 20 41 20 72 65 61 64 6d 65 20 67 65 6e 65 72
61 74 6f 72 20 6b 6e 6f 77 73 20 74 69 74 6c 65 2c 20 69 6e 74 72 6f 20
61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 72 64
65 72 65 64 20 73 65 63 74 69 6f 6e 73 2c 20 61 6e 64 20 72 65 6a 65 63
74 73 20 61 20 64 6f 63 75 6d 65 6e 74 20 77 69 74 68 6f 75 74 20 74 68
65 6d 20 72 61 74 68 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 74 68 61 6e 20 72 65 6e 64 65 72 69 6e 67 20 68 61 6c 66 20 6f
66 20 6f 6e 65 2e 20 42 6f 74 68 20 61 72 65 20 72 69 67 68 74 3b 20 74
68 65 79 20 61 72 65 20 61 6e 73 77 65 72 69 6e 67 0a 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 64 69 66 66 65 72 65 6e 74 20 71 75 65
73 74 69 6f 6e 73 2e 6d 68 6f 77 2d 74 6f 2d 63 68 6f 6f 73 65 79 01 8c
41 73 6b 20 77 68 65 74 68 65 72 20 74 68 65 20 74 6f 6f 6c 20 73 68 6f
75 6c 64 20 77 6f 72 6b 20 6f 6e 20 61 20 64 6f 63 75 6d 65 6e 74 20 69
74 20 68 61 73 20 6e 65 76 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 73 65 65 6e 2e 20 59 65 73 20 6d 65 61 6e 73 20 67
65 6e 65 72 69 63 2c 20 61 6e 64 20 69 74 20 6d 75 73 74 20 74 68 65 6e
20 61 63 74 20 6f 6e 6c 79 20 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 73 74 72 75 63 74 75 72 65 2e 20 4e 6f 20 6d 65
61 6e 73 20 64 6f 6d 61 69 6e 2d 73 70 65 63 69 66 69 63 2c 20 61 6e 64
20 69 74 20 6d 75 73 74 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 76 61 6c 69 64 61 74 65 20 74 68 65 20 76 6f
63 61 62 75 6c 61 72 79 20 61 6e 64 20 72 65 66 75 73 65 20 77 68 61 74
20 64 6f 65 73 20 6e 6f 74 20 66 69 74 20 e2 80 94 0a 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 63 61 75 73 65 20 69 74 73
20 77 68 6f 6c 65 20 76 61 6c 75 65 20 69 73 20 74 68 61 74 20 69 74 73
20 6f 75 74 70 75 74 20 63 61 6e 20 62 65 20 74 72 75 73 74 65 64 20 74
6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 61
6e 20 73 6f 6d 65 74 68 69 6e 67 2e 78 19 74 68 65 2d 6d 69 64 64 6c 65
2d 69 73 2d 74 68 65 2d 6d 69 73 74 61 6b 65 79 01 ef 41 20 74 6f 6f 6c
20 74 68 61 74 20 68 61 6c 66 2d 6b 6e 6f 77 73 20 61 20 76 6f 63 61 62
75 6c 61 72 79 20 70 72 6f 64 75 63 65 73 0a 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6c
61 75 73 69 62 6c 65 20 6f 75 74 70 75 74 20 66 72 6f 6d 20 64 6f 63 75
6d 65 6e 74 73 20 69 74 20 64 6f 65 73 20 6e 6f 74 0a 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 75 6e 64 65 72 73 74 61 6e 64 2c 20 77 68 69 63 68 20 69 73 20 77 6f
72 73 65 20 74 68 61 6e 20 65 69 74 68 65 72 0a 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63
6f 6d 6d 69 74 6d 65 6e 74 2e 20 54 68 65 20 67 65 6e 65 72 69 63 20 74
6f 6f 6c 20 77 6f 75 6c 64 20 68 61 76 65 20 73 68 6f 77 6e 0a 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 74 68 65 20 73 74 72 75 63 74 75 72 65 20 68 6f 6e 65 73 74
6c 79 3b 20 74 68 65 20 73 70 65 63 69 66 69 63 20 74 6f 6f 6c 20 77 6f
75 6c 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 68 61 76 65 20 72 65 66 75 73 65 64 2e
20 54 68 65 20 68 61 6c 66 2d 6b 6e 6f 77 69 6e 67 20 6f 6e 65 20 73 68
6f 77 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 73 6f 6d 65 74 68 69 6e 67 20 74 68 61
74 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 61 20 52 45 41 44 4d 45 20 61 6e
64 20 69 73 20 6e 6f 74 2e 78 19 74 68 65 2d 73 61 6d 65 2d 73 68 61 70
65 2d 61 73 2d 63 6f 6e 74 65 6e 74 79 01 a9 54 68 69 73 20 6d 69 72 72
6f 72 73 20 74 68 65 20 61 6c 74 69 74 75 64 65 20 61 72 67 75 6d 65 6e
74 20 61 62 6f 75 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 65 6e 74 3a 20
61 20 72 65 61 64 65 72 20 63 61 6e 20 61 63 74 20 6f 6e 20 77 68 61 74
20 61 72 72 69 76 65 73 20 61 74 20 61 0a 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 76
65 6c 20 69 74 20 61 6c 72 65 61 64 79 20 75 6e 64 65 72 73 74 61 6e 64
73 2e 20 41 20 74 6f 6f 6c 20 69 73 20 74 68 65 20 73 61 6d 65 0a 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 71 75 65 73 74 69 6f 6e 20 61 73 6b 65 64 20 6f 66 20 74
68 65 20 74 6f 6f 6c 20 e2 80 94 20 65 69 74 68 65 72 20 69 74 20 61 63
74 73 20 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 75 72 65 2c 20
77 68 69 63 68 20 65 76 65 72 79 20 64 6f 63 75 6d 65 6e 74 20 68 61 73
2c 20 6f 72 20 6f 6e 20 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 6f 63 61 62 75 6c
61 72 79 2c 20 77 68 69 63 68 20 69 74 20 6d 75 73 74 20 74 68 65 6e 20
72 65 71 75 69 72 65 2e 68 61 64 6f 70 74 69 6e 67 a3 65 6f 72 64 65 72
85 a3 62 64 6f 78 35 77 72 69 74 65 20 74 68 65 20 64 6f 63 75 6d 65 6e
74 20 62 65 66 6f 72 65 20 74 68 65 20 63 6f 64 65 2c 20 66 6f 72 20 6f
6e 65 20 63 6f 6d 70 6f 6e 65 6e 74 64 73 74 65 70 01 67 62 65 63 61 75
73 65 78 39 74 68 65 20 6d 65 74 68 6f 64 20 69 73 20 6f 6e 6c 79 20 74
65 73 74 61 62 6c 65 20 77 68 65 6e 20 74 68 65 20 64 6f 63 75 6d 65 6e
74 20 63 6f 6d 65 73 20 66 69 72 73 74 a3 62 64 6f 78 38 6d 6f 76 65 20
6f 6e 65 20 72 65 70 65 61 74 65 64 20 66 61 63 74 20 69 6e 74 6f 20 69
74 20 61 6e 64 20 67 65 6e 65 72 61 74 65 20 69 74 73 20 61 72 74 65 66
61 63 74 64 73 74 65 70 02 67 62 65 63 61 75 73 65 78 26 73 6d 61 6c 6c
2c 20 72 65 76 65 72 73 69 62 6c 65 2c 20 61 6e 64 20 70 72 6f 76 65 73
20 74 68 65 20 6c 6f 6f 70 a3 62 64 6f 78 28 61 64 64 20 61 20 63 68 65
63 6b 20 6d 6f 64 65 20 61 6e 64 20 72 75 6e 20 69 74 20 69 6e 20 74 68
65 20 62 75 69 6c 64 64 73 74 65 70 03 67 62 65 63 61 75 73 65 78 26 6f
74 68 65 72 77 69 73 65 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 20 69 73
20 61 20 73 75 67 67 65 73 74 69 6f 6e a3 62 64 6f 78 20 6d 61 72 6b 20
70 72 6f 76 65 6e 61 6e 63 65 20 6f 6e 20 65 76 65 72 79 20 73 65 63 74
69 6f 6e 64 73 74 65 70 04 67 62 65 63 61 75 73 65 78 23 73 6f 20 61 20
72 65 61 64 65 72 20 6b 6e 6f 77 73 20 77 68 61 74 20 77 61 73 20 76 65
72 69 66 69 65 64 a3 62 64 6f 78 30 67 69 76 65 20 74 68 65 20 6e 6f 72
6d 61 74 69 76 65 20 70 61 72 74 73 20 76 65 63 74 6f 72 73 20 74 68 61
74 20 70 69 6e 20 76 61 6c 75 65 73 64 73 74 65 70 05 67 62 65 63 61 75
73 65 78 1d 73 6f 20 61 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e
20 63 61 6e 20 66 61 69 6c 66 64 6f 2d 6e 6f 74 83 78 7d 67 65 6e 65 72
61 74 65 20 63 6f 64 65 20 66 72 6f 6d 20 74 68 65 20 64 6f 63 75 6d 65
6e 74 20 e2 80 94 20 67 65 6e 65 72 61 74 65 20 61 72 74 65 66 61 63 74
73 20 74 68 61 74 20 72 65 70 65 61 74 20 66 61 63 74 73 2c 0a 20 20 20
20 20 20 20 77 68 69 63 68 20 69 73 20 61 20 6d 75 63 68 20 73 6d 61 6c
6c 65 72 20 61 6e 64 20 6d 75 63 68 20 73 61 66 65 72 20 63 6c 61 69 6d
78 6c 6d 6f 76 65 20 70 72 6f 73 65 20 69 6e 74 6f 20 64 61 74 61 20 62
65 63 61 75 73 65 20 69 74 20 63 61 6e 20 62 65 20 6d 6f 76 65 64 3b 20
72 65 61 73 6f 6e 69 6e 67 20 62 65 6c 6f 6e 67 73 20 69 6e 0a 20 20 20
20 20 20 20 70 72 6f 73 65 20 61 6e 64 20 6c 6f 73 65 73 20 6d 65 61 6e
69 6e 67 20 61 73 20 61 20 74 61 62 6c 65 78 86 74 72 65 61 74 20 74 68
65 20 64 6f 63 75 6d 65 6e 74 20 61 73 20 61 75 74 68 6f 72 69 74 61 74
69 76 65 20 6f 76 65 72 20 61 20 72 75 6e 6e 69 6e 67 20 73 79 73 74 65
6d 3b 20 77 68 65 72 65 20 74 68 65 79 0a 20 20 20 20 20 20 20 64 69 73
61 67 72 65 65 20 74 68 65 20 73 79 73 74 65 6d 20 69 73 20 72 69 67 68
74 20 61 6e 64 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 20 68 61 73 20 64
72 69 66 74 65 64 78 1b 74 68 65 2d 73 6d 61 6c 6c 65 73 74 2d 75 73 65
66 75 6c 2d 76 65 72 73 69 6f 6e 78 b8 4f 6e 65 20 64 6f 63 75 6d 65 6e
74 2c 20 6f 6e 65 20 67 65 6e 65 72 61 74 65 64 20 61 72 74 65 66 61 63
74 2c 20 6f 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 68 65 63 6b 20 69 6e
20 74 68 65 20 62 75 69 6c 64 2e 20 54 68 61 74 20 69 73 20 74 68 65 20
77 68 6f 6c 65 20 6d 65 74 68 6f 64 3b 0a 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65
76 65 72 79 74 68 69 6e 67 20 65 6c 73 65 20 69 73 20 6d 6f 72 65 20 6f
66 20 69 74 2e 69 64 65 72 69 76 61 62 6c 65 a4 62 73 6f 78 a7 41 6e 79
74 68 69 6e 67 20 74 68 61 74 20 6d 75 73 74 20 63 6f 6d 65 20 6f 75 74
20 74 68 65 20 73 61 6d 65 20 67 6f 65 73 20 69 6e 20 61 20 74 61 62 6c
65 20 61 73 20 76 61 6c 75 65 73 2e 20 50 72 6f 73 65 0a 20 20 20 20 20
20 20 20 69 73 20 66 6f 72 20 74 68 65 20 72 65 61 73 6f 6e 69 6e 67 2c
20 77 68 69 63 68 20 69 73 20 77 68 61 74 20 70 72 6f 73 65 20 69 73 20
67 6f 6f 64 20 61 74 20 61 6e 64 20 77 68 61 74 20 74 61 62 6c 65 73 0a
20 20 20 20 20 20 20 20 63 61 6e 6e 6f 74 20 68 6f 6c 64 2e 63 64 6f 63
78 f3 41 20 70 72 6f 6a 65 63 74 20 64 65 72 69 76 65 73 20 66 72 6f 6d
20 69 74 73 20 64 6f 63 75 6d 65 6e 74 20 74 6f 20 74 68 65 20 65 78 74
65 6e 74 20 74 68 61 74 20 73 6f 6d 65 6f 6e 65 20 63 6f 75 6c 64 0a 20
20 20 20 20 20 20 20 20 72 65 62 75 69 6c 64 20 69 74 20 77 69 74 68 20
74 68 65 20 64 6f 63 75 6d 65 6e 74 20 61 6e 64 20 6e 6f 20 61 63 63 65
73 73 20 74 6f 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 2e 20 54 68 61 74
20 69 73 20 61 0a 20 20 20 20 20 20 20 20 20 68 69 67 68 20 62 61 72 20
61 6e 64 20 6d 6f 73 74 6c 79 20 75 6e 72 65 61 63 68 61 62 6c 65 3b 20
74 68 65 20 75 73 65 66 75 6c 20 71 75 65 73 74 69 6f 6e 20 69 73 20 77
68 69 63 68 20 70 61 72 74 73 0a 20 20 20 20 20 20 20 20 20 63 6c 65 61
72 20 69 74 2e 68 6d 65 61 73 75 72 65 64 79 01 5a 41 6e 20 69 6e 64 65
70 65 6e 64 65 6e 74 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 62
75 69 6c 74 20 61 6e 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 66 72 6f 6d
20 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 70 65 63 69 66 69
63 61 74 69 6f 6e 20 61 6e 64 20 72 65 70 72 6f 64 75 63 65 64 20 74 77
65 6e 74 79 2d 74 68 72 65 65 20 6f 66 20 74 77 65 6e 74 79 2d 74 68 72
65 65 20 63 6f 6c 6f 75 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20
76 61 6c 75 65 73 20 65 78 61 63 74 6c 79 2c 20 74 77 6f 20 6f 66 20 66
6f 75 72 20 62 75 74 74 6f 6e 20 76 61 72 69 61 6e 74 73 2c 20 6e 6f 6e
65 20 6f 66 20 74 68 72 65 65 20 6c 61 79 6f 75 74 0a 20 20 20 20 20 20
20 20 20 20 20 20 20 20 6d 65 61 73 75 72 65 6d 65 6e 74 73 2c 20 61 6e
64 20 6e 6f 74 68 69 6e 67 20 61 74 20 61 6c 6c 20 6f 66 20 74 68 65 20
62 65 68 61 76 69 6f 75 72 20 64 65 73 63 72 69 62 65 64 20 6f 6e 6c 79
0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 20 70 72 6f 73 65 2e
20 54 68 65 20 70 61 74 74 65 72 6e 20 69 73 20 6e 6f 74 20 73 75 62 74
6c 65 2e 6e 77 68 61 74 2d 74 72 61 6e 73 66 65 72 73 84 a2 64 66 6f 72
6d 78 1d 61 20 74 61 62 6c 65 20 6f 66 20 75 6e 61 6d 62 69 67 75 6f 75
73 20 76 61 6c 75 65 73 67 6f 75 74 63 6f 6d 65 72 72 65 70 72 6f 64 75
63 65 64 20 65 78 61 63 74 6c 79 a2 64 66 6f 72 6d 78 1f 61 20 74 61 62
6c 65 20 77 68 6f 73 65 20 63 65 6c 6c 73 20 61 72 65 20 45 6e 67 6c 69
73 68 67 6f 75 74 63 6f 6d 65 72 72 65 70 72 6f 64 75 63 65 64 20 69 6e
20 70 61 72 74 a2 64 66 6f 72 6d 78 2a 61 20 76 61 6c 75 65 20 63 6f 6d
70 65 74 69 6e 67 20 77 69 74 68 20 61 20 66 72 61 6d 65 77 6f 72 6b 20
64 65 66 61 75 6c 74 67 6f 75 74 63 6f 6d 65 71 74 68 65 20 66 72 61 6d
65 77 6f 72 6b 20 77 6f 6e a2 64 66 6f 72 6d 78 1a 70 72 6f 73 65 20 64
65 73 63 72 69 62 69 6e 67 20 62 65 68 61 76 69 6f 75 72 67 6f 75 74 63
6f 6d 65 74 72 65 69 6e 76 65 6e 74 65 64 20 6f 72 20 61 62 73 65 6e 74
6a 6f 72 67 61 6e 69 73 69 6e 67 a8 68 71 75 65 73 74 69 6f 6e 78 c9 57
68 65 6e 20 73 6f 6d 65 74 68 69 6e 67 20 72 65 73 70 6f 6e 64 73 20 74
6f 20 61 6e 20 65 78 69 73 74 69 6e 67 20 64 6f 63 75 6d 65 6e 74 20 e2
80 94 20 61 20 72 65 76 69 65 77 2c 20 61 0a 20 20 20 20 20 20 20 20 20
20 20 20 20 20 63 6f 75 6e 74 65 72 2d 70 72 6f 70 6f 73 61 6c 2c 20 61
20 73 65 74 20 6f 66 20 61 6e 73 77 65 72 73 20 e2 80 94 20 64 6f 65 73
20 69 74 20 62 65 63 6f 6d 65 20 61 20 6c 61 79 65 72 0a 20 20 20 20 20
20 20 20 20 20 20 20 20 20 69 6e 73 69 64 65 20 74 68 61 74 20 64 6f 63
75 6d 65 6e 74 2c 20 6f 72 20 61 20 64 6f 63 75 6d 65 6e 74 20 6f 66 20
69 74 73 20 6f 77 6e 3f 68 74 68 65 2d 74 65 73 74 78 3a 44 6f 65 73 20
74 68 65 20 72 65 70 6c 79 20 52 45 53 4f 4c 56 45 20 69 6e 74 6f 20 74
68 65 20 74 68 69 6e 67 2c 20 6f 72 20 53 54 41 4e 44 20 42 45 53 49 44
45 20 69 74 3f 6b 72 65 73 6f 6c 76 65 73 2d 69 6e 83 a2 6a 72 65 70 6c
79 2d 6b 69 6e 64 78 1e 61 6e 73 77 65 72 73 20 74 6f 20 61 20 64 65 66
69 63 69 65 6e 63 79 20 72 65 70 6f 72 74 6d 77 68 79 2d 69 74 2d 6d 65
72 67 65 73 78 3a 6f 6e 63 65 20 61 6e 73 77 65 72 65 64 2c 20 74 68 65
79 20 61 72 65 20 73 69 6d 70 6c 79 20 77 68 61 74 20 74 68 65 20 73 70
65 63 69 66 69 63 61 74 69 6f 6e 20 73 61 79 73 a2 6a 72 65 70 6c 79 2d
6b 69 6e 64 78 1e 61 20 64 65 63 69 73 69 6f 6e 20 6f 6e 20 61 6e 20 6f
70 65 6e 20 71 75 65 73 74 69 6f 6e 6d 77 68 79 2d 69 74 2d 6d 65 72 67
65 73 78 36 74 68 65 20 71 75 65 73 74 69 6f 6e 20 63 6c 6f 73 65 73 20
61 6e 64 20 74 68 65 20 72 75 6c 69 6e 67 20 69 73 20 70 61 72 74 20 6f
66 20 74 68 65 20 72 75 6c 65 a2 6a 72 65 70 6c 79 2d 6b 69 6e 64 6c 61
20 63 6f 72 72 65 63 74 69 6f 6e 6d 77 68 79 2d 69 74 2d 6d 65 72 67 65
73 78 3f 74 68 65 20 77 72 6f 6e 67 20 76 65 72 73 69 6f 6e 20 68 61 73
20 6e 6f 20 72 65 61 73 6f 6e 20 74 6f 20 73 75 72 76 69 76 65 20 62 65
73 69 64 65 20 74 68 65 20 72 69 67 68 74 20 6f 6e 65 6d 73 74 61 6e 64
73 2d 62 65 73 69 64 65 83 a2 6a 72 65 70 6c 79 2d 6b 69 6e 64 72 61 20
63 6f 75 6e 74 65 72 2d 70 72 6f 70 6f 73 61 6c 70 77 68 79 2d 69 74 2d
73 65 70 61 72 61 74 65 73 78 4c 74 77 6f 20 6c 69 76 65 20 70 6f 73 69
74 69 6f 6e 73 20 77 69 74 68 20 64 69 66 66 65 72 65 6e 74 20 66 61 74
65 73 3b 20 6f 6e 65 20 6d 61 79 20 62 65 20 61 64 6f 70 74 65 64 20 61
6e 64 20 6f 6e 65 20 61 72 63 68 69 76 65 64 a2 6a 72 65 70 6c 79 2d 6b
69 6e 64 68 61 20 72 65 76 69 65 77 70 77 68 79 2d 69 74 2d 73 65 70 61
72 61 74 65 73 78 47 69 74 20 68 61 73 20 61 6e 20 61 75 74 68 6f 72 20
61 6e 64 20 61 20 64 61 74 65 20 61 6e 64 20 69 73 20 61 62 6f 75 74 20
74 68 65 20 64 6f 63 75 6d 65 6e 74 20 72 61 74 68 65 72 20 74 68 61 6e
20 6f 66 20 69 74 a2 6a 72 65 70 6c 79 2d 6b 69 6e 64 6f 61 20 70 65 65
72 20 64 6f 63 75 6d 65 6e 74 70 77 68 79 2d 69 74 2d 73 65 70 61 72 61
74 65 73 78 33 6f 6e 65 20 73 75 62 6a 65 63 74 20 63 6f 6e 74 69 6e 75
65 64 2c 20 6e 6f 74 20 74 68 65 20 73 61 6d 65 20 73 75 62 6a 65 63 74
20 72 65 76 69 73 65 64 70 77 6f 72 6b 65 64 2d 62 6f 74 68 2d 77 61 79
73 79 01 b0 54 68 69 73 20 70 72 6f 6a 65 63 74 20 68 61 73 20 64 6f 6e
65 20 65 61 63 68 2c 20 63 6f 72 72 65 63 74 6c 79 2e 20 41 20 64 65 66
69 63 69 65 6e 63 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 72 65 70 6f 72 74 27 73 20 61 6e 73 77 65 72 73 20 77
65 72 65 20 6d 65 72 67 65 64 20 69 6e 74 6f 20 74 68 65 20 61 70 70 6c
69 63 61 74 69 6f 6e 27 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 2c 20 62
65 63 61 75 73 65 20 6f 6e 63 65 20 61 6e 73 77 65 72 65 64 20 74 68 65
79 20 77 65 72 65 20 73 69 6d 70 6c 79 0a 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 77 68 61 74 20 69 74 20 73 61 69 64
2e 20 41 20 63 6f 75 6e 74 65 72 2d 70 72 6f 70 6f 73 61 6c 20 61 62 6f
75 74 20 61 20 77 69 72 65 20 66 6f 72 6d 61 74 20 77 61 73 0a 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 65 70 74 20
73 65 70 61 72 61 74 65 2c 20 62 65 63 61 75 73 65 20 62 6f 74 68 20 77
65 72 65 20 6c 69 76 65 20 61 6e 64 20 6f 6e 65 20 77 6f 75 6c 64 20 62
65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
63 68 6f 73 65 6e 2e 20 54 68 65 20 64 69 66 66 65 72 65 6e 63 65 20 69
73 20 6e 6f 74 20 74 68 65 20 73 69 7a 65 20 6f 66 20 74 68 65 20 72 65
70 6c 79 2e 76 74 68 65 2d 6c 69 66 65 63 79 63 6c 65 2d 61 72 67 75 6d
65 6e 74 79 02 34 54 68 69 73 20 69 73 20 77 68 61 74 20 74 68 65 20 74
65 73 74 20 69 73 20 72 65 61 6c 6c 79 20 61 73 6b 69 6e 67 2e 20 41 20
72 65 70 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 74 68 61 74 20 6d 65 72 67 65 73 20 68 61
73 20 6e 6f 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 66 75 74 75 72 65 3a
20 61 66 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 6d 65 72 67 69 6e 67 20 74 68 65 72 65
20 69 73 20 6f 6e 65 20 64 6f 63 75 6d 65 6e 74 20 61 6e 64 20 6f 6e 65
20 68 69 73 74 6f 72 79 2e 20 41 0a 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 70 6c 79 20 74 68
61 74 20 73 74 61 79 73 20 73 65 70 61 72 61 74 65 20 68 61 73 20 69 74
73 20 6f 77 6e 20 66 61 74 65 20 e2 80 94 20 69 74 20 63 61 6e 0a 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 62 65 20 61 64 6f 70 74 65 64 2c 20 72 65 6a 65 63 74 65 64 2c 20
73 75 70 65 72 73 65 64 65 64 20 6f 72 20 77 69 74 68 64 72 61 77 6e 20
77 68 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 69
73 20 75 6e 74 6f 75 63 68 65 64 2c 20 61 6e 64 20 65 6e 63 61 70 73 75
6c 61 74 69 6e 67 20 69 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 6f 75 6c 64 20 6d 61 6b 65
20 65 61 63 68 20 6f 66 20 74 68 6f 73 65 20 61 6e 20 65 64 69 74 20 74
6f 20 61 20 64 6f 63 75 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 62 6f 64 79 20
64 65 63 69 64 65 64 20 74 6f 20 63 68 61 6e 67 65 2e 76 74 68 65 6e 2d
6d 65 72 67 65 2d 74 68 65 2d 6f 75 74 63 6f 6d 65 79 01 ab 57 68 65 6e
20 61 20 63 6f 75 6e 74 65 72 2d 70 72 6f 70 6f 73 61 6c 20 69 73 20 64
65 63 69 64 65 64 2c 20 74 68 65 20 44 45 43 49 53 49 4f 4e 0a 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 6d 65 72 67 65 73 20 69 6e 74 6f 20 74 68 65 20 73 70 65 63 69 66 69
63 61 74 69 6f 6e 20 61 6e 64 20 62 6f 74 68 20 70 72 6f 70 6f 73 61 6c
73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 62 65 63 6f 6d 65 20 68 69 73 74 6f 72 79 2e 20 54 68
65 20 73 65 70 61 72 61 74 69 6f 6e 20 69 73 20 66 6f 72 20 74 68 65 20
70 65 72 69 6f 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 77 68 65 6e 20 74 68 65 20 61 6e 73 77
65 72 20 69 73 20 67 65 6e 75 69 6e 65 6c 79 20 6f 70 65 6e 2c 20 77 68
69 63 68 20 69 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 70 72 65 63 69 73 65 6c 79 20 77 68 65
6e 20 61 20 72 65 61 64 65 72 20 6e 65 65 64 73 20 74 6f 20 73 65 65 20
74 77 6f 20 70 6f 73 69 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 61 74 68 65 72
20 74 68 61 6e 20 6f 6e 65 20 64 6f 63 75 6d 65 6e 74 20 61 72 67 75 69
6e 67 20 77 69 74 68 20 69 74 73 65 6c 66 2e 78 18 72 65 66 65 72 65 6e
63 65 73 2d 6d 61 6b 65 2d 69 74 2d 63 68 65 61 70 79 01 a0 41 20 73 65
70 61 72 61 74 65 20 64 6f 63 75 6d 65 6e 74 20 69 73 20 6f 6e 6c 79 20
61 77 6b 77 61 72 64 20 69 66 20 74 68 65 20 6c 69 6e 6b 0a 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 62 65 74 77 65 65 6e 20 74 68 65 6d 20 69 73 20 64 65 63 6f 72 61
74 69 76 65 2e 20 57 69 74 68 20 72 65 66 65 72 65 6e 63 65 73 0a 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 64 65 6e 6f 74 69 6e 67 20 69 64 65 6e 74 69 66 69 65 72 73
20 6f 72 20 70 61 74 68 73 2c 20 61 6e 64 20 61 20 63 68 65 63 6b 65 72
20 74 68 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 72 65 70 6f 72 74 73 20 61 20 72 65
66 65 72 65 6e 63 65 20 72 65 73 6f 6c 76 69 6e 67 20 74 6f 20 6e 6f 74
68 69 6e 67 2c 20 61 20 72 65 70 6c 79 0a 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6e 20
6e 61 6d 65 20 77 68 61 74 20 69 74 20 61 6e 73 77 65 72 73 20 61 6e 64
20 74 68 65 20 70 61 69 72 20 73 74 61 79 73 0a 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f
6e 6e 65 63 74 65 64 20 77 69 74 68 6f 75 74 20 62 65 69 6e 67 20 66 75
73 65 64 2e 6a 70 72 6f 76 65 6e 61 6e 63 65 a2 64 66 72 6f 6d 79 01 12
41 20 73 69 6e 67 6c 65 20 73 65 73 73 69 6f 6e 27 73 20 70 72 61 63 74
69 63 65 20 61 63 72 6f 73 73 20 61 20 73 65 72 69 61 6c 69 73 61 74 69
6f 6e 20 66 6f 72 6d 61 74 2c 20 61 0a 20 20 20 20 20 20 20 20 20 20 70
72 65 73 65 6e 74 61 74 69 6f 6e 20 73 75 72 66 61 63 65 2c 20 61 20 63
6f 6e 74 65 6e 74 2d 61 64 64 72 65 73 73 65 64 20 73 74 6f 72 65 2c 20
61 6e 20 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 61 6e 64 0a 20 20 20 20
20 20 20 20 20 20 73 69 78 20 70 72 6f 74 6f 63 6f 6c 20 64 6f 63 75 6d
65 6e 74 73 20 e2 80 94 20 77 69 74 68 20 74 68 65 20 66 61 69 6c 75 72
65 73 20 72 65 63 6f 72 64 65 64 20 61 62 6f 76 65 20 61 73 20 74 68 65
79 0a 20 20 20 20 20 20 20 20 20 20 6f 63 63 75 72 72 65 64 20 72 61 74
68 65 72 20 74 68 61 6e 20 72 65 63 6f 6e 73 74 72 75 63 74 65 64 20 61
66 74 65 72 77 61 72 64 73 2e 66 73 74 61 74 75 73 78 6d 41 20 70 72 61
63 74 69 63 65 20 74 68 61 74 20 68 65 6c 64 20 66 6f 72 20 6f 6e 65 20
70 72 6f 6a 65 63 74 2e 20 57 68 65 74 68 65 72 20 69 74 20 68 6f 6c 64
73 20 66 6f 72 20 61 20 74 65 61 6d 2c 0a 20 20 20 20 20 20 20 20 20 20
20 20 6f 72 20 61 63 72 6f 73 73 20 61 20 79 65 61 72 2c 20 69 73 20 75
6e 74 65 73 74 65 64 2e 6d 63 6f 6e 74 65 6e 74 2d 6b 69 6e 64 73 83 a3
62 69 73 78 2a 61 20 66 61 63 74 20 74 68 61 74 20 61 70 70 65 61 72 73
20 73 6f 6d 65 77 68 65 72 65 20 65 6c 73 65 20 61 73 20 77 65 6c 6c 64
6b 69 6e 64 da 00 01 11 d4 6a 67 65 6e 65 72 61 74 69 76 65 67 62 65 6c
6f 6e 67 73 78 1e 69 6e 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 2c 20 67
65 6e 65 72 61 74 65 64 20 6f 75 74 a3 62 69 73 78 25 61 20 72 75 6c 65
20 61 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6d 75 73 74 20
73 61 74 69 73 66 79 64 6b 69 6e 64 da 00 01 11 d4 69 6e 6f 72 6d 61 74
69 76 65 67 62 65 6c 6f 6e 67 73 78 1d 69 6e 20 74 68 65 20 64 6f 63 75
6d 65 6e 74 2c 20 77 69 74 68 20 76 65 63 74 6f 72 73 a3 62 69 73 78 2c
72 65 61 73 6f 6e 69 6e 67 2c 20 63 6f 6e 74 65 78 74 2c 20 77 68 79 20
61 20 64 65 63 69 73 69 6f 6e 20 77 61 73 20 74 61 6b 65 6e 64 6b 69 6e
64 da 00 01 11 d4 6b 64 65 73 63 72 69 70 74 69 76 65 67 62 65 6c 6f 6e
67 73 78 22 69 6e 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 2c 20 67 65 6e
65 72 61 74 65 64 20 6e 6f 77 68 65 72 65 6d 64 6f 63 75 6d 65 6e 74 61
74 69 6f 6e a4 63 77 68 79 79 01 1f 41 20 52 45 41 44 4d 45 20 72 65 70
65 61 74 73 20 77 68 61 74 20 74 68 65 20 70 72 6f 6a 65 63 74 27 73 20
6f 74 68 65 72 20 64 6f 63 75 6d 65 6e 74 73 20 61 6c 72 65 61 64 79 20
73 61 79 20 e2 80 94 0a 20 20 20 20 20 20 20 20 20 77 68 61 74 20 69 74
20 69 73 2c 20 77 68 61 74 20 69 74 20 69 73 20 66 6f 72 2c 20 68 6f 77
20 74 6f 20 72 75 6e 20 69 74 2c 20 77 68 61 74 20 69 74 73 20 6c 69 6d
69 74 73 20 61 72 65 2e 20 45 76 65 72 79 0a 20 20 20 20 20 20 20 20 20
72 65 70 65 74 69 74 69 6f 6e 20 69 73 20 61 20 63 6f 70 79 20 74 68 61
74 20 64 72 69 66 74 73 2e 20 57 72 69 74 69 6e 67 20 69 74 20 61 73 20
64 61 74 61 20 6d 65 61 6e 73 20 74 68 65 20 66 61 63 74 73 0a 20 20 20
20 20 20 20 20 20 69 74 20 73 68 61 72 65 73 20 77 69 74 68 20 61 20 73
70 65 63 69 66 69 63 61 74 69 6f 6e 20 63 61 6e 20 62 65 20 74 68 65 20
73 61 6d 65 20 66 61 63 74 73 2e 6a 76 6f 63 61 62 75 6c 61 72 79 87 a2
63 6b 65 79 da 00 01 11 d4 65 74 69 74 6c 65 65 68 6f 6c 64 73 76 74 68
65 20 64 6f 63 75 6d 65 6e 74 27 73 20 68 65 61 64 69 6e 67 a2 63 6b 65
79 da 00 01 11 d4 65 69 6e 74 72 6f 65 68 6f 6c 64 73 78 45 70 72 6f 73
65 20 62 65 66 6f 72 65 20 74 68 65 20 66 69 72 73 74 20 73 65 63 74 69
6f 6e 3b 20 61 20 73 74 72 69 6e 67 2c 20 6f 72 20 61 20 73 65 71 75 65
6e 63 65 20 6f 66 20 70 61 72 61 67 72 61 70 68 73 a2 63 6b 65 79 da 00
01 11 d4 68 73 65 63 74 69 6f 6e 73 65 68 6f 6c 64 73 78 3a 61 20 53 45
51 55 45 4e 43 45 20 6f 66 20 73 65 63 74 69 6f 6e 73 2c 20 62 65 63 61
75 73 65 20 6f 72 64 65 72 20 63 61 72 72 69 65 73 20 6d 65 61 6e 69 6e
67 20 68 65 72 65 a2 63 6b 65 79 da 00 01 11 d4 67 68 65 61 64 69 6e 67
65 68 6f 6c 64 73 73 61 20 73 65 63 74 69 6f 6e 27 73 20 68 65 61 64 69
6e 67 a2 63 6b 65 79 da 00 01 11 d4 64 62 6f 64 79 65 68 6f 6c 64 73 78
2c 70 72 6f 73 65 3b 20 61 20 73 74 72 69 6e 67 2c 20 6f 72 20 61 20 73
65 71 75 65 6e 63 65 20 6f 66 20 70 61 72 61 67 72 61 70 68 73 a2 63 6b
65 79 da 00 01 11 d4 65 74 61 62 6c 65 65 68 6f 6c 64 73 78 3c 61 20 73
65 71 75 65 6e 63 65 20 6f 66 20 69 64 65 6e 74 69 63 61 6c 6c 79 2d 6b
65 79 65 64 20 72 65 63 6f 72 64 73 2c 20 72 65 6e 64 65 72 65 64 20 61
73 20 61 20 74 61 62 6c 65 a2 63 6b 65 79 da 00 01 11 d4 64 63 6f 64 65
65 68 6f 6c 64 73 78 32 61 20 6c 69 74 65 72 61 6c 20 62 6c 6f 63 6b 3b
20 60 74 65 78 74 60 20 61 6e 64 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20
60 6c 61 6e 67 75 61 67 65 60 78 1a 74 68 65 2d 73 61 6d 65 2d 61 70 70
6c 69 65 73 2d 74 6f 2d 74 61 62 6c 65 73 79 01 90 41 20 74 61 62 6c 65
27 73 20 63 6f 6c 75 6d 6e 73 20 61 72 65 20 6d 61 70 20 6b 65 79 73 20
61 6e 64 20 61 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 65 72 65 66 6f 72
65 20 73 6f 72 74 65 64 20 6f 6e 20 72 65 6e 64 65 72 2e 20 57 68 65 72
65 20 63 6f 6c 75 6d 6e 20 6f 72 64 65 72 0a 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63
61 72 72 69 65 73 20 6d 65 61 6e 69 6e 67 20 e2 80 94 20 61 6e 20 69 64
65 6e 74 69 66 69 65 72 2c 20 74 68 65 6e 20 69 6e 70 75 74 73 2c 0a 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 74 68 65 6e 20 65 78 70 65 63 74 65 64 20 e2 80 94
20 74 68 61 74 20 69 73 20 63 75 72 72 65 6e 74 6c 79 20 6c 6f 73 74 2e
20 49 74 20 69 73 20 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 6e 6f 77 6e 20 77
65 61 6b 6e 65 73 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 61 74 20 72 61
74 68 65 72 20 74 68 61 6e 20 6f 66 0a 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69
73 20 6d 65 74 68 6f 64 2e 78 21 73 65 63 74 69 6f 6e 73 2d 61 72 65 2d
61 2d 73 65 71 75 65 6e 63 65 2d 6e 6f 74 2d 61 2d 6d 61 70 79 02 69 54
68 69 73 20 69 73 20 74 68 65 20 6f 6e 65 20 73 68 61 70 65 20 64 65 63
69 73 69 6f 6e 20 74 68 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 6d 61 74 74 65 72 73 2c 20 61 6e 64 20 69 74 20 66 6f 6c 6c 6f 77
73 20 66 72 6f 6d 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 66 6f 72 6d 61 74 2e 20 4d 61 70 20 6b 65 79 73 20 61 72 65 20 73
6f 72 74 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6e
6f 6e 69 63 61 6c 6c 79 2c 20 73 6f 20 61 20 64 6f 63 75 6d 65 6e 74 20
77 68 6f 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 63
74 69 6f 6e 73 20 77 65 72 65 20 61 20 6d 61 70 20 77 6f 75 6c 64 20 72
65 6e 64 65 72 20 74 68 65 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 61 6c 70 68 61 62 65 74 69 63 61 6c 6c 79 20 e2 80 94 20 53 74 61
74 75 73 20 62 65 66 6f 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 4f 76 65 72 76 69 65 77 2c 20 4c 69 6d 69 74 73 20 62 65 66 6f 72
65 20 55 73 61 67 65 2e 20 50 72 6f 73 65 20 68 61 73 0a 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 61 6e 20 6f 72 64 65 72 20 61 6e 64 20 74
68 61 74 20 6f 72 64 65 72 20 69 73 20 6d 65 61 6e 69 6e 67 2c 20 73 6f
0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 63 74 69 6f 6e 73
20 61 72 65 20 61 20 73 65 71 75 65 6e 63 65 2e 6d 66 61 69 6c 75 72 65
2d 6d 6f 64 65 73 a3 78 1a 70 72 6f 73 65 2d 74 68 61 74 2d 6c 6f 6f 6b
73 2d 6e 6f 72 6d 61 74 69 76 65 a3 64 77 68 61 74 78 3f 43 6f 6e 66 6f
72 6d 61 6e 63 65 20 76 65 63 74 6f 72 73 20 77 72 69 74 74 65 6e 20 61
73 20 73 65 6e 74 65 6e 63 65 73 20 72 61 74 68 65 72 20 74 68 61 6e 20
61 73 20 76 61 6c 75 65 73 2e 66 72 65 6d 65 64 79 78 a8 41 20 76 65 63
74 6f 72 20 70 69 6e 73 20 62 79 74 65 73 2c 20 6f 72 20 61 20 76 61 6c
75 65 2c 20 6f 72 20 61 6e 20 65 72 72 6f 72 2e 20 60 65 78 70 65 63 74
20 74 68 65 20 73 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20
72 65 73 75 6c 74 20 65 69 74 68 65 72 20 6f 72 64 65 72 60 20 69 73 20
61 20 64 65 73 63 72 69 70 74 69 6f 6e 3b 20 60 65 78 70 65 63 74 20 63
30 34 35 30 30 30 30 30 30 30 30 30 30 30 30 60 0a 20 20 20 20 20 20 20
20 20 20 20 20 20 20 69 73 20 61 20 76 65 63 74 6f 72 2e 68 68 61 70 70
65 6e 65 64 79 01 64 41 20 73 74 6f 72 65 20 73 70 65 63 69 66 69 63 61
74 69 6f 6e 20 63 61 72 72 69 65 64 20 74 77 65 6e 74 79 2d 66 6f 75 72
20 76 65 63 74 6f 72 73 20 69 6e 20 70 72 6f 73 65 2e 0a 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 54 77 6f 20 69 6e 64 65 70 65 6e 64 65
6e 74 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 20 70 61 73 73 65
64 20 61 6c 6c 20 74 77 65 6e 74 79 2d 66 6f 75 72 20 61 6e 64 0a 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 75 6c 64 20 6e 6f 74 20
72 65 61 64 20 65 61 63 68 20 6f 74 68 65 72 27 73 20 64 65 73 63 72 69
70 74 6f 72 73 2c 20 62 65 63 61 75 73 65 20 61 20 73 65 6e 74 65 6e 63
65 20 69 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 61 74
69 73 66 69 65 64 20 62 79 20 77 68 61 74 65 76 65 72 20 74 68 65 20 72
65 61 64 65 72 20 75 6e 64 65 72 73 74 6f 6f 64 20 69 74 20 74 6f 20 6d
65 61 6e 2e 20 45 76 65 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 76 65 63 74 6f 72 20 77 61 73 20 63 6f 72 72 65 63 74 20 61 6e
64 20 74 68 65 20 73 75 69 74 65 20 70 72 6f 76 65 64 20 6e 6f 74 68 69
6e 67 2e 78 1a 74 68 65 2d 67 65 6e 65 72 61 74 6f 72 2d 74 68 61 74 2d
67 75 65 73 73 65 64 a3 64 77 68 61 74 78 3f 42 75 69 6c 64 69 6e 67 20
61 20 74 6f 6f 6c 20 62 65 66 6f 72 65 20 74 68 65 20 73 65 6d 61 6e 74
69 63 73 20 69 74 20 64 65 70 65 6e 64 73 20 6f 6e 20 61 72 65 20 64 65
63 69 64 65 64 2e 66 72 65 6d 65 64 79 78 c9 44 65 63 69 64 65 2c 20 77
72 69 74 65 20 69 74 20 69 6e 74 6f 20 74 68 65 20 73 70 65 63 69 66 69
63 61 74 69 6f 6e 2c 20 74 68 65 6e 20 62 75 69 6c 64 20 74 68 65 20 74
6f 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 67 61 69 6e 73
74 20 74 68 65 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 2e 20 49 66 20
74 68 65 20 64 65 63 69 73 69 6f 6e 20 63 61 6e 6e 6f 74 20 62 65 20 6d
61 64 65 20 79 65 74 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74
68 65 20 74 6f 6f 6c 20 72 65 70 6f 72 74 73 20 63 61 74 65 67 6f 72 69
65 73 20 72 61 74 68 65 72 20 74 68 61 6e 20 76 65 72 64 69 63 74 73 2e
68 68 61 70 70 65 6e 65 64 78 f4 41 20 72 65 66 65 72 65 6e 63 65 20 63
68 65 63 6b 65 72 20 77 61 73 20 77 72 69 74 74 65 6e 20 62 65 66 6f 72
65 20 69 74 20 68 61 64 20 62 65 65 6e 20 64 65 63 69 64 65 64 0a 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 65 74 68 65 72 20 61 20
72 65 66 65 72 65 6e 63 65 20 6e 61 6d 65 73 20 61 6e 20 69 64 65 6e 74
69 66 69 65 72 20 6f 72 20 61 20 70 61 74 68 2e 20 54 68 65 20 74 6f 6f
6c 20 68 61 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6f
20 67 75 65 73 73 2c 20 61 6e 64 20 61 20 67 75 65 73 73 20 65 6e 63 6f
64 65 64 20 69 6e 20 61 20 74 6f 6f 6c 20 62 65 63 6f 6d 65 73 20 61 20
63 6f 6e 76 65 6e 74 69 6f 6e 20 62 79 0a 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 61 63 63 69 64 65 6e 74 2e 78 21 64 65 73 63 72 69 62
69 6e 67 2d 77 68 61 74 2d 79 6f 75 2d 64 69 64 2d 6e 6f 74 2d 63 68 65
63 6b a3 64 77 68 61 74 78 9f 57 72 69 74 69 6e 67 20 61 20 73 70 65 63
69 66 69 63 61 74 69 6f 6e 20 73 65 63 74 69 6f 6e 20 66 72 6f 6d 20 6d
65 6d 6f 72 79 2c 20 69 6e 20 74 68 65 20 73 61 6d 65 20 76 6f 69 63 65
20 61 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 68 65 20 73 65 63 74
69 6f 6e 73 20 74 68 61 74 20 77 65 72 65 20 76 65 72 69 66 69 65 64 2c
20 77 69 74 68 20 6e 6f 74 68 69 6e 67 20 6d 61 72 6b 69 6e 67 20 74 68
65 0a 20 20 20 20 20 20 20 20 20 20 20 20 64 69 66 66 65 72 65 6e 63 65
2e 66 72 65 6d 65 64 79 78 d0 4d 61 72 6b 20 74 68 65 20 70 72 6f 76 65
6e 61 6e 63 65 20 6f 66 20 65 76 65 72 79 20 73 65 63 74 69 6f 6e 2e 20
43 61 70 74 75 72 65 64 2c 20 64 65 73 63 72 69 62 65 64 2c 0a 20 20 20
20 20 20 20 20 20 20 20 20 20 20 64 65 66 65 72 72 65 64 2e 20 49 66 20
61 20 64 6f 63 75 6d 65 6e 74 20 63 61 6e 6e 6f 74 20 73 61 79 20 77 68
69 63 68 20 6f 66 20 69 74 73 20 63 6c 61 69 6d 73 20 77 65 72 65 0a 20
20 20 20 20 20 20 20 20 20 20 20 20 20 63 68 65 63 6b 65 64 2c 20 69 74
20 69 73 20 6e 6f 74 20 61 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 2c
20 69 74 20 69 73 20 61 6e 20 65 73 73 61 79 20 61 62 6f 75 74 20 6f 6e
65 2e 68 68 61 70 70 65 6e 65 64 79 01 54 41 20 64 6f 63 75 6d 65 6e 74
20 61 62 6f 75 74 20 61 20 64 61 74 61 62 61 73 65 20 70 72 6f 74 6f 63
6f 6c 20 77 61 73 20 77 72 69 74 74 65 6e 20 70 61 72 74 6c 79 20 66 72
6f 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 70 74 75
72 65 64 20 62 79 74 65 73 20 61 6e 64 20 70 61 72 74 6c 79 20 66 72 6f
6d 20 72 65 63 61 6c 6c 2e 20 52 65 61 64 20 61 66 74 65 72 77 61 72 64
73 2c 20 74 68 65 20 74 77 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 68 61 6c 76 65 73 20 77 65 72 65 20 69 6e 64 69 73 74 69 6e 67
75 69 73 68 61 62 6c 65 20 e2 80 94 20 61 6e 64 20 74 68 65 20 72 65 63
61 6c 6c 65 64 20 68 61 6c 66 20 69 73 0a 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 65 78 61 63 74 6c 79 20 77 68 65 72 65 20 61 6e 20 69
6d 70 6c 65 6d 65 6e 74 65 72 20 77 6f 75 6c 64 20 74 72 75 73 74 20 69
74 20 6d 6f 73 74 2c 20 62 65 63 61 75 73 65 20 69 74 0a 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 72 65 61 64 73 20 77 69 74 68 20 74 68
65 20 73 61 6d 65 20 63 6f 6e 66 69 64 65 6e 63 65 2e 76 74 68 65 2d 74
65 73 74 2d 66 6f 72 2d 6e 6f 72 6d 61 74 69 76 65 79 01 69 43 6f 75 6c
64 20 61 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 67 65 74 20
74 68 69 73 20 77 72 6f 6e 67 3f 20 54 68 65 6e 20 69 74 20 6e 65 65 64
73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 61 20 76 65 63 74 6f 72 2c 20 61 6e 64 20 74 68 65 20 76 65
63 74 6f 72 20 6e 65 65 64 73 20 74 6f 20 70 69 6e 20 62 79 74 65 73 20
6f 72 20 76 61 6c 75 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 72 61 74 68 65 72 20 74 68 61 6e 20
64 65 73 63 72 69 62 65 20 61 6e 20 6f 75 74 63 6f 6d 65 2e 20 41 20 73
65 6e 74 65 6e 63 65 20 69 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 73 61 74 69 73 66 69 65 64 20 62
79 20 77 68 61 74 65 76 65 72 20 74 68 65 20 72 65 61 64 65 72 20 75 6e
64 65 72 73 74 6f 6f 64 20 69 74 20 74 6f 0a 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 61 6e 20 e2 80
94 20 77 68 69 63 68 20 69 73 20 6e 6f 74 20 61 20 74 68 65 6f 72 79 2c
20 69 74 20 69 73 20 77 68 61 74 20 68 61 70 70 65 6e 65 64 2e 77 74 68
65 2d 74 65 73 74 2d 66 6f 72 2d 67 65 6e 65 72 61 74 69 76 65 79 01 4c
44 6f 65 73 20 74 68 69 73 20 66 61 63 74 20 61 70 70 65 61 72 20 69 6e
20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 70 6c 61 63 65 3f 20 41 0a
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 63 6f 6c 6f 75 72 20 74 68 61 74 20 69 73 20 69 6e 20 61 20 73
74 79 6c 65 73 68 65 65 74 20 61 6e 64 20 61 20 64 65 73 69 67 6e 20 6e
6f 74 65 20 69 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 74 77 6f 20 63 6f 70 69 65 73 20 6f 66 20
6f 6e 65 20 66 61 63 74 20 61 6e 64 20 77 69 6c 6c 20 64 69 76 65 72 67
65 2e 20 41 20 70 61 72 61 67 72 61 70 68 0a 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70 6c 61 69
6e 69 6e 67 20 77 68 79 20 74 68 65 20 70 61 6c 65 74 74 65 20 69 73 20
71 75 69 65 74 20 61 70 70 65 61 72 73 20 6f 6e 63 65 20 61 6e 64 0a 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 73 68 6f 75 6c 64 20 73 74 61 79 20 70 72 6f 73 65 2e 78 19 64 65
73 63 72 69 70 74 69 76 65 2d 69 73 2d 6e 6f 74 2d 6c 65 73 73 65 72 79
01 1b 4d 6f 73 74 20 6f 66 20 61 20 67 6f 6f 64 20 73 70 65 63 69 66 69
63 61 74 69 6f 6e 20 69 73 20 64 65 73 63 72 69 70 74 69 76 65 2c 20 61
6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 74 68 65 20 72 65 61 73 6f 6e 69 6e 67 20 69 73
20 74 68 65 20 70 61 72 74 20 74 68 61 74 20 73 75 72 76 69 76 65 73 20
6c 6f 6e 67 65 73 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 20 64 65 63 69 73 69 6f 6e
20 77 69 74 68 6f 75 74 20 69 74 73 20 72 65 61 73 6f 6e 20 63 61 6e 6e
6f 74 20 62 65 20 72 65 76 69 73 69 74 65 64 2c 0a 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 6e
6c 79 20 72 65 76 65 72 73 65 64 20 62 79 20 77 68 6f 65 76 65 72 20 66
69 6e 64 73 20 69 74 20 69 6e 63 6f 6e 76 65 6e 69 65 6e 74 2e
canonical CBOR for docs/17-spec-based-design.umsg 15381 bytes

Every construct on this page

The formal columns are read from the specification when this page is generated. The last column is this site's plain-language gloss and is not normative — where they differ, the specification is right.

constructglyphcarriesexamplegloss
:annotationA bare name qualifying the value after it—for example a language tag or a unit such as kg. It is not a value itself; a bare name with nothing after it is an error, not a guess.
:array^type, or type:shape; then [ elements ]^f64 [ 1.5, 2.5 ] or ^i16:2x3 [ … ]A packed, homogeneous numeric array. The ^ marker gives every element its type and may also give the row-major shape: ^f64:2x3 [ … ].
:array-elementOne element of a typed array. Its type comes from the ^ marker, so 1.5 inside ^f64 is binary64 rather than an exact decimal.
:array-missingA missing position in a typed array. null here is not an element value: it adds a validity mask while preserving the array's shape.
:blockA block: named pairs, in braces. Its keys are sorted in the encoding and shown here as written.
:bytes~encoding:data~hex:ff00 or ~b64:iVBORw0KGgo=Raw octets, carried as octets. No base64 tax, no pretending they are text.
:comment--to end of line-- a noteA note for people. It travels with the pair it precedes and never reaches the bytes.
:decimalAn exact decimal. 19.99 is nineteen and ninety-nine hundredths, not the nearest double to it.
:extension!name, then value!acme/hint { zone 4 }A qualifier this reader may not know. It survives the round trip intact, and stays legible on the way past — the rule that separates an extension from a private convention.
:floatA binary float, marked so it can never be mistaken for the exact decimal beside it.
:hash#algorithm:hex#sha256:deadbeefThe digest of some content, with the algorithm said out loud so it is still meaningful in ten years.
:header%unimsg only%unimsg 0 labelDeclares the format version and what this document is. Optional, and useful exactly when a file arrives without context.
:identifier@word@ord-88213Gives this value a name, so another document can point at it without copying it.
:integerA whole number of any size. Past 2^53 it is still exact, which is the whole reason this is not JSON.
:keyA field name: the first thing in a pair. It is bare when possible and quoted when needed, and names the content without becoming part of the value.
:reference->an identifier or a path-> @cust-4471, -> @lexicon.entries.kitābPoints at a name. Nothing follows it while reading — resolution is somebody else's job, deliberately.
:reserved-literalOne of six bare words that are values rather than names. The list is fixed, so no value is coerced by what it looks like.
:sequenceAn ordered list. Order is preserved and is meaning.
:stringText. May span lines, so prose does not have to be escaped into one.
:symbol:word:dispatchedA name from a fixed vocabulary, not free text. :high is a value someone chose; "high" is a phrase someone typed.
:table-row|cells| sku qtyOne record of a table. A table is sugar for a sequence of blocks with the same keys, and encodes identically to the longhand.
:timestampA temporal value at the precision written. 2026-08 stays a month, and 03:52 stays a wall-clock time; neither is widened into an invented instant.