Evidence packet — EU GMP Annex 12
One row of this record, assembled so it can be taken somewhere else: what the publisher published, where this record read it, what it hashed, and what changed between two readings it retained. Generated 2026-11-02. It carries no assessment of what the document requires and no reading of what any change means.
The packet, in three formats
- JSON
/packet/eu-gmp-annex-12.json— every field - Markdown
/packet/eu-gmp-annex-12.md— the same content as plain text - ZIP archive
/packet/eu-gmp-annex-12.zip— an RO-Crate holding the files listed below
The archive holds the files listed here, in the order it holds them. The last is a metadata document that neither of the other two formats carries.
-
packet.jsonThe packet object alone. The JSON address serves the same object under itspacketkey, beside fields of its own, so the object is served there and these bytes are not. -
packet.mdThe bytes served at the Markdown address. -
leaves-eu-gmp-annex-12.txtThis row’s lines of the published leaf file, each one a line of the file served at the leaf file’s address. -
root.txtThe bytes served at the root’s address. -
ro-crate-metadata.jsonThe metadata document, served only in this archive. It names this record as the archive’s author and describes each other file listed here. It names the row’s document at the answered address the packet gives for it, or at the row’s source address where the packet gives none, and each reading the packet lists at that reading’s answered address. Forhealth.ec.europa.eu, the host of those addresses, it states whether this record’s rulings file holds a reading of that host’s terms, whether every sentence that reading names is still in the bytes it was read from, and whether it records an attribution. Where the crate carries a credit for a host, it is the credit that reading records, found as whole words in those bytes, and each document at that host carries it.
Every file sits inside the archive’s one top-level directory,
gxplex-packet-eu-gmp-annex-12-2026-11-02/, which is the crate root. The
metadata document is at the top of that directory, beside the files it
describes, and not at the top of the archive.
The packet, in six parts
- Contains
- Source
- Publisher
- Type
- Status, and the dates it is held with
- Verification
- Terms
- Readings with retained text — 2 readings
- Changes — 1 transition
- Integrity — 80 leaf lines
- The conditions, in the order they are evaluated — 13 conditions
- Generated
- On , packet version 1, against the root fixed on (Integrity).
- Omitted
- Independently verifiable
- This row’s 80 leaf lines, each a line of the published leaf file.
- The root, which is the content of the published root file; the verification page carries the command that reduces the whole leaf file to a root.
- Derived
- Computed by this record, not read from a publisher: 2 digests,
each over the normalised text of a reading, which hashing a
source as served does not reproduce
(Readings), and the series state
comparable. - A verdict for the 1 transition, with word counts where a difference was measured (Changes), and the count per condition (Conditions).
- Computed by this record, not read from a publisher: 2 digests,
each over the normalised text of a reading, which hashing a
source as served does not reproduce
(Readings), and the series state
- Depends on external permission
- The terms this record has read for this document
(Terms): licence class
open; a quotation appears in this record: yes. - Of this row’s 1 transition, none was refused by a terms condition (
licence-restrictedorlicence-unread). - The credit the archive’s metadata document carries for a host, where it carries one, is the one this record’s reading of that host’s terms records (the archive’s files, above).
- The terms this record has read for this document
(Terms): licence class
Source
| Field | Value |
|---|---|
| Identifier | eu-gmp-annex-12 |
| Title | EudraLex Volume 4, Annex 12 — Use of Ionising Radiation in the Manufacture of Medicinal Products |
| Jurisdiction | EU |
| Address requested | https://health.ec.europa.eu/document/download/363e435b-23cf-4cb3-9c74-322addb81340_en?filename=anx12_en.pdf |
| Address answered | https://health.ec.europa.eu/document/download/363e435b-23cf-4cb3-9c74-322addb81340_en?filename=anx12_en.pdf |
| Observed cadence | monthly |
| Row | /r/eu-gmp-annex-12 |
The address a request ANSWERED at is this record’s address for the row. The address it aimed at is testimony and is carried beside it, because a redirect is a publisher’s own statement about what supersedes what.
Publisher
| Field | Value |
|---|---|
| Authority | European Commission |
| Origin host | — |
| Origin read from | — |
| Standards body | — |
| Standards body read from | — |
No origin host is recorded for this row. The authority named above is the body; the host is a fact about which origin answered, and this row does not carry one.
Type
| Field | Value |
|---|---|
| Class, as the publisher states it | — |
| Read from | — |
| Source kind, recorded here | document |
| Source type, recorded here | document |
| Record tier | register |
No class statement by the publisher is recorded for this row, so this packet states none. That is an absent reading rather than a document without a class.
Status, and the dates it is held with
| Field | Value |
|---|---|
| Status | unknown |
| Stated as of | — |
| In effect from | — |
| Last changed | — |
| Status read from | — |
| Status withdrawn | — |
| Decay class | live |
These are the dates this record holds for the document’s own status. They state nothing about which products or activities the document reaches; that is a judgment, and this record does not make one.
Verification
| Field | Value |
|---|---|
| State | a register |
| What the state states | observed daily; no person-verification is promised |
| Checked by | machine |
| Check date | — |
| Last verified | — |
Terms
| Field | Value |
|---|---|
| Licence class | open |
| Text retained here | yes |
| A quotation appears in this record | yes |
| Snapshot retained here | yes |
Readings with retained text
| Reading | Days seen | Digest | Class | Answered at | Bytes |
|---|---|---|---|---|---|
| #1 | 24 — last | 791686510e269ed8… | document | https://health.ec.europa.eu/document/download/363e435b-23cf-4cb3-9c74-322addb81340_en?filename=anx12_en.pdf | 12,271 |
| #1 | 56 — last | b3718fa9a67069d4… | document | https://health.ec.europa.eu/document/download/363e435b-23cf-4cb3-9c74-322addb81340_en?filename=anx12_en.pdf | 14,937 |
Digests on this row: 2. With retained text:
2. Without:
0. Series state:
comparable.
A digest is over the NORMALISED text of a reading, not over the bytes served: scripts, comments, navigation and page chrome are removed and tags are stripped before hashing. Hashing a source as served will not reproduce these digests. The full digest for every reading is in the packet; the column above is shortened for width.
Changes
One entry per consecutive pair of retained readings, in the order this record first saw each digest. Every entry carries a measured difference or the first condition that refused one. A refused entry was never tested against the conditions after it.
1 transition(s) between the 2 reading(s) above: 0 carry a measured difference, 0 are withheld above the word ceiling, 1 are refused by a rule, 0 differ in the digest and not in the words, and 0 could not be measured.
#1 → #1
These two digests were taken over different kinds of text — one over markup, one over prose extracted from a file — so the words they yield differ for a reason that is not the publisher’s.
From the two records: markup against pdf-text
| Field | Value |
|---|---|
| Earlier digest | 791686510e269ed82ae3ef63f3f296471ccfcb7ffc92fb27f859bf811ce0b950 |
| Later digest | b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109 |
| Verdict | refused |
| Condition | referent-normalisation (refused) |
| Words differing | — |
| Removed | — |
| Added | — |
| The comparison entry | this pair on the comparison page, which publishes no words for it |
A difference here is a difference between two readings this record retained. It is not a statement about what the document requires, about what changed in substance, or about whether anything follows from it.
Integrity
| Field | Value |
|---|---|
| Root | 42337ae3567aae8138fcb45e977dd94f9c1ade6420a88033e9503203df3fec23 |
| Leaves the root covers | 9,686 |
| Algorithm | SHA-256 over sorted `id|date|content_hash` lines, pairwise; an odd final node is promoted, never doubled. |
| Fixed on | |
| Root published at | /integrity/root.txt |
| Leaves published at | /integrity/leaves.txt |
| The commands | the verification page |
| Leaf lines for this row | 80 |
The root is over every leaf line the record holds, not over the lines below. Reducing it needs the published file, which is served whole at the address named here together with the command that reduces it. These lines are this row's own slice of that file, copied verbatim.
eu-gmp-annex-12|2026-08-15|791686510e269ed82ae3ef63f3f296471ccfcb7ffc92fb27f859bf811ce0b950
eu-gmp-annex-12|2026-08-16|791686510e269ed82ae3ef63f3f296471ccfcb7ffc92fb27f859bf811ce0b950
eu-gmp-annex-12|2026-08-17|791686510e269ed82ae3ef63f3f296471ccfcb7ffc92fb27f859bf811ce0b950
eu-gmp-annex-12|2026-08-18|791686510e269ed82ae3ef63f3f296471ccfcb7ffc92fb27f859bf811ce0b950
eu-gmp-annex-12|2026-08-19|791686510e269ed82ae3ef63f3f296471ccfcb7ffc92fb27f859bf811ce0b950
eu-gmp-annex-12|2026-08-20|791686510e269ed82ae3ef63f3f296471ccfcb7ffc92fb27f859bf811ce0b950
eu-gmp-annex-12|2026-08-21|791686510e269ed82ae3ef63f3f296471ccfcb7ffc92fb27f859bf811ce0b950
eu-gmp-annex-12|2026-08-22|791686510e269ed82ae3ef63f3f296471ccfcb7ffc92fb27f859bf811ce0b950
eu-gmp-annex-12|2026-08-23|791686510e269ed82ae3ef63f3f296471ccfcb7ffc92fb27f859bf811ce0b950
eu-gmp-annex-12|2026-08-24|791686510e269ed82ae3ef63f3f296471ccfcb7ffc92fb27f859bf811ce0b950
eu-gmp-annex-12|2026-08-25|791686510e269ed82ae3ef63f3f296471ccfcb7ffc92fb27f859bf811ce0b950
eu-gmp-annex-12|2026-08-26|791686510e269ed82ae3ef63f3f296471ccfcb7ffc92fb27f859bf811ce0b950
eu-gmp-annex-12|2026-08-27|791686510e269ed82ae3ef63f3f296471ccfcb7ffc92fb27f859bf811ce0b950
eu-gmp-annex-12|2026-08-28|791686510e269ed82ae3ef63f3f296471ccfcb7ffc92fb27f859bf811ce0b950
eu-gmp-annex-12|2026-08-29|791686510e269ed82ae3ef63f3f296471ccfcb7ffc92fb27f859bf811ce0b950
eu-gmp-annex-12|2026-08-30|791686510e269ed82ae3ef63f3f296471ccfcb7ffc92fb27f859bf811ce0b950
eu-gmp-annex-12|2026-08-31|791686510e269ed82ae3ef63f3f296471ccfcb7ffc92fb27f859bf811ce0b950
eu-gmp-annex-12|2026-09-01|791686510e269ed82ae3ef63f3f296471ccfcb7ffc92fb27f859bf811ce0b950
eu-gmp-annex-12|2026-09-02|791686510e269ed82ae3ef63f3f296471ccfcb7ffc92fb27f859bf811ce0b950
eu-gmp-annex-12|2026-09-03|791686510e269ed82ae3ef63f3f296471ccfcb7ffc92fb27f859bf811ce0b950
eu-gmp-annex-12|2026-09-04|791686510e269ed82ae3ef63f3f296471ccfcb7ffc92fb27f859bf811ce0b950
eu-gmp-annex-12|2026-09-05|791686510e269ed82ae3ef63f3f296471ccfcb7ffc92fb27f859bf811ce0b950
eu-gmp-annex-12|2026-09-06|791686510e269ed82ae3ef63f3f296471ccfcb7ffc92fb27f859bf811ce0b950
eu-gmp-annex-12|2026-09-07|791686510e269ed82ae3ef63f3f296471ccfcb7ffc92fb27f859bf811ce0b950
eu-gmp-annex-12|2026-09-08|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-09-09|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-09-10|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-09-11|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-09-12|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-09-13|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-09-14|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-09-15|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-09-16|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-09-17|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-09-18|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-09-19|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-09-20|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-09-21|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-09-22|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-09-23|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-09-24|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-09-25|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-09-26|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-09-27|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-09-28|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-09-29|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-09-30|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-01|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-02|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-03|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-04|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-05|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-06|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-07|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-08|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-09|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-10|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-11|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-12|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-13|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-14|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-15|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-16|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-17|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-18|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-19|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-20|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-21|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-22|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-23|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-24|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-25|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-26|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-27|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-28|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-29|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-30|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-10-31|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-11-01|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109
eu-gmp-annex-12|2026-11-02|b3718fa9a67069d469ac61e32551fe7480090cf31f6c5a195161e7069b751109What this packet does not carry
The conditions, in the order they are evaluated
A change names the FIRST condition that fired and was never tested against the ones after it, so a condition reading a measured zero here is not a condition this row passed. Not measured is not zero; it is the packet’s own “not reached”, and the packet states why. Three of the conditions belong to the form of the comparison that resolves two dates. Every comparison in this packet is formed from readings addressed by the key the store gives them, so those three are never evaluated here: their absence from the entries above records that they were not tested, rather than that they were tested and did not fire.
| Condition | Changes | What it states |
|---|---|---|
licence-restricted | 0 | No text from this document appears on this site, so no difference between two readings of it is shown either. The digests, the dates and the addresses are the record for this row. |
licence-unread | 0 | No reading of the terms this source states is recorded for the row. That is an absent reading rather than an absent term, and the row is handled here exactly as a restricted one until a reading is recorded. |
date-not-observed | not measured | No observation of this row on that day holds retained text. |
date-not-unique | not measured | That day holds more than one distinct retained digest for this row, so a date alone does not name one observation. The addressed form — the day and the sequence within it — does. |
one-point | not measured | Both dates resolve to the same observation. |
referent-unclassified | 0 | The class of one of these observations could not be read, so neither was shown to be an observation of the document itself. |
referent-class | 0 | One of these observations is not of the document. A listing page that names the document and the document are different subjects, and a difference between them is not a difference in the document. |
referent-normalisation | 1 | These two digests were taken over different kinds of text — one over markup, one over prose extracted from a file — so the words they yield differ for a reason that is not the publisher’s. |
referent-address | 0 | These two observations answered at different addresses. A difference between them is at least in part a difference between two pages. |
text-not-retained | 0 | No normalised text is held here for one of these observations, so there is nothing on this side to compare. |
snapshot-unreadable | 0 | Normalised text is recorded for one of these observations and could not be read from this record. |
span-unverified | 0 | A span this comparison would have shown could not be found, word for word and in that order, in the retained text it was drawn from. The comparison is withheld rather than shown: a phrase assembled out of words a publisher did not write next to each other is a fabricated measurement of what the publisher wrote. |
over-ceiling | 0 | A faithful difference is longer than the word ceiling this site publishes under. Its words are withheld whole rather than cut to fit: a shortened quote is a fabricated measurement of what a publisher wrote. The figures below measure the difference and quote none of it. |
Word ceiling: 14. Where a faithful difference is longer
than that, the verdict is withheld and no words are published
for it: a shortened span is a fabricated measurement of what a publisher
wrote, so it is withheld whole rather than cut to fit.
How this record is built.
Last updated: