<?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.38 (Ruby 3.4.9) -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-xu-oan-resource-identity-discovery-00" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="OAN Resource Discovery">Trust-Governed Resource Identity and Discovery Architecture for OpenAgenet</title>
    <author initials="J." surname="Xu" fullname="Jinliang Xu">
      <organization>CAICT</organization>
      <address>
        <postal>
          <street>No. 52, Huayuan North Road</street>
          <city>Beijing</city>
          <region>Haidian District</region>
          <code>100191</code>
          <country>China</country>
        </postal>
        <email>xujinliang@caict.ac.cn</email>
      </address>
    </author>
    <author initials="B." surname="Li" fullname="Bingqi Li">
      <organization>CAICT</organization>
      <address>
        <postal>
          <street>No. 52, Huayuan North Road</street>
          <city>Beijing</city>
          <region>Haidian District</region>
          <code>100191</code>
          <country>China</country>
        </postal>
        <email>libingqi@caict.ac.cn</email>
      </address>
    </author>
    <author initials="R." surname="Zhu" fullname="Runkai Zhu">
      <organization>CAICT</organization>
      <address>
        <postal>
          <street>No. 52, Huayuan North Road</street>
          <city>Beijing</city>
          <region>Haidian District</region>
          <code>100191</code>
          <country>China</country>
        </postal>
        <email>zhurunkai@caict.ac.cn</email>
      </address>
    </author>
    <date year="2026" month="June" day="09"/>
    <area>General</area>
    <workgroup>Network Working Group</workgroup>
    <abstract>
      <?line 49?>

<t>Open agent ecosystems increasingly include heterogeneous resource products:
callable agents, skills, Model Context Protocol (MCP) servers, ordinary tools,
and application programming interfaces.  A user or orchestrator often needs to
discover such resources before it can decide which interaction protocol,
credential, endpoint, or artifact to use.  Discovery alone is not sufficient:
the relying party also needs to know which resource identity was registered,
which authority accepted it, whether the accepted package is current, and
whether the Discovery service is authorized to expose it.</t>
      <t>This document describes a trust-governed resource identity and discovery
architecture for OpenAgenet (OAN).  The architecture separates resource
subjects, resource providers, Registrar Nodes, a Root Node, Discovery Nodes,
content distribution, and resource consumers.  It defines architectural roles,
trust boundaries, resource identity expectations, Root-verified package
semantics, registration and verification behavior, authorization-aware
Discovery, and pre-use verification requirements.</t>
      <t>The architecture can be profiled with Decentralized Identifier (DID) document
concepts and credential-based assertions.  This document does not define a new
DID method, media type, URI scheme, transport protocol, ranking algorithm,
blockchain protocol, agent invocation protocol, or product-native schema.</t>
    </abstract>
  </front>
  <middle>
    <?line 73?>

<section anchor="about-this-document">
      <name>About This Document</name>
      <t>This note is to be removed before publishing as an RFC.</t>
      <t>The OpenAgenet project includes open-source implementation work and related
materials.  The project repository set can be found at
<eref target="https://github.com/OpenAgenet">https://github.com/OpenAgenet</eref>.</t>
      <t>The implementation is provided as running code and engineering feedback for
this draft.  It is not a substitute for the protocol requirements in this
document, and implementation-specific APIs, repository layouts, database
schemas, operational scripts, and deployment choices are not specified by this
document.  The intent of this draft is to describe interoperable behavior that
can be implemented by independent implementations using different codebases,
deployment models, and underlying technologies.</t>
    </section>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>Open agent ecosystems are moving beyond a single "agent service" abstraction.
They can include callable agent services, reusable skills, MCP-compatible
servers, ordinary HTTP or RPC tools, and domain-specific APIs.  These resources
may be implemented by different operators and may be invoked through different
protocols.  A relying party therefore needs a layer that can answer trust and
discovery questions before product-specific interaction begins:</t>
      <t><list style="symbols">
          <t>What stable resource identity is being advertised?</t>
          <t>What type of resource is it?</t>
          <t>Which provider or controller is bound to the resource identity?</t>
          <t>Which Registrar checked the registration evidence?</t>
          <t>Which Root authority accepted the versioned package?</t>
          <t>Which Discovery Node is authorized to expose the resource for the requested
domain?</t>
          <t>Which hashes, proofs, versions, and lifecycle states must be verified before
use?</t>
        </list></t>
      <t>OpenAgenet (OAN) is an open architecture for resource identity, governed
registration, trusted package publication, authorization-aware discovery, and
pre-use verification.  OAN is intentionally protocol-neutral at the interaction
layer.  After OAN checks pass, a consumer can use MCP, A2A, HTTP, RPC, a Skill
runtime, or another product-native protocol.  OAN does not replace those
protocols; it supplies the trust path used to find and approach resources
safely.</t>
      <t>The central abstraction in this document is a discoverable resource, not only
an agent.  A discoverable resource is a product-shaped subject with a stable
resource identifier, resource metadata, versioned package material, and
verifiable Root acceptance.  The initial resource types are:</t>
      <t><list style="symbols">
          <t><spanx style="verb">agent_service</spanx></t>
          <t><spanx style="verb">skill</spanx></t>
          <t><spanx style="verb">mcp_server</spanx></t>
          <t><spanx style="verb">tool_api</spanx></t>
        </list></t>
      <t>This resource-first model allows OAN to support common agent ecosystem assets
without forcing all of them into one runtime protocol or one artifact format.</t>
      <section anchor="problem-statement">
        <name>Problem Statement</name>
        <t>Closed platforms can combine account identity, approval workflow, search,
artifact hosting, ranking, and invocation policy into one administrative
system.  In an open multi-operator environment, those functions need clearer
boundaries.  A Discovery result should not be trusted merely because it appears
in a catalog.  A CDN location should not become a trust anchor.  A local
ranking score should not override revocation state.  A Registrar should not be
able to register a resource whose subject key it never verified.  A valid old
package should not silently remain current after the Root has accepted a newer
or revoked state.</t>
        <t>The architectural gap is the lack of a common trust path that binds:</t>
        <t><list style="symbols">
            <t>stable resource identity;</t>
            <t>resource type and semantic metadata;</t>
            <t>subject-control proof;</t>
            <t>Registrar-issued registration evidence;</t>
            <t>Registrar authorization state;</t>
            <t>Root verification and package acceptance;</t>
            <t>package, metadata, and identity-document hashes;</t>
            <t>Discovery authorization scope;</t>
            <t>signed Discovery response provenance; and</t>
            <t>pre-use verification by consumers.</t>
          </list></t>
        <t>This document specifies that path at the architectural level.</t>
      </section>
      <section anchor="scope">
        <name>Scope</name>
        <t>This document specifies functional expectations for interoperable OAN
deployments.  A compliant implementation is expected to interoperate through
the trust semantics described here, not through shared source code, a shared
database, a single hosted service, or a single vendor-operated deployment.  It
covers:</t>
        <t><list style="symbols">
            <t>architectural roles and their trust boundaries;</t>
            <t>discoverable resource types and identity expectations;</t>
            <t>common resource package semantics;</t>
            <t>Root proof and hash-binding requirements;</t>
            <t>registration and Root verification behavior;</t>
            <t>infrastructure authorization and governance-state boundaries;</t>
            <t>CDN distribution semantics;</t>
            <t>authorization-aware Discovery behavior;</t>
            <t>lifecycle, versioning, and consistency expectations;</t>
            <t>pre-use verification by resource consumers; and</t>
            <t>security and privacy considerations.</t>
          </list></t>
        <t>This document uses normative language to describe architectural requirements.
It does not define a complete wire format.  Future OAN profiles can define
specific JSON schemas, media types, HTTP APIs, canonicalization algorithms, DID
method syntax, or test vectors.</t>
      </section>
      <section anchor="open-interoperability-principles">
        <name>Open Interoperability Principles</name>
        <t>OAN is intended to support an open multi-operator ecosystem.  The architecture
therefore follows these principles:</t>
        <t><list style="symbols">
            <t>interoperability is based on verifiable protocol objects and role behavior,
not on a single implementation, source repository, deployment operator, or
hosted service;</t>
            <t>storage, transport, database, programming language, and user-interface
choices are deployment matters unless a future profile explicitly
standardizes a wire protocol or object format;</t>
            <t>open-source code can provide implementation experience and test material, but
conformance is determined by observable behavior and verification results;</t>
            <t>extensions are expected, but critical extensions need explicit criticality
and failure behavior so that unsupported features do not silently weaken
trust decisions;</t>
            <t>local policy, ranking, semantic search, and review workflow can vary by
operator, while the cryptographic verification path needs stable semantics;
and</t>
            <t>a Root Node is scoped to a trust domain.  This document does not define a
single global Root, require all deployments to use the same administrative
authority, or prevent future federation profiles among trust domains.</t>
          </list></t>
      </section>
      <section anchor="non-goals">
        <name>Non-Goals</name>
        <t>This document does not define:</t>
        <t><list style="symbols">
            <t>a new DID method or identifier syntax;</t>
            <t>a new URI scheme;</t>
            <t>a new media type;</t>
            <t>a new transport protocol;</t>
            <t>a replacement for MCP, A2A, HTTP APIs, RPC, Skill packaging, or other
interaction protocols;</t>
            <t>a ranking, recommendation, reputation, or semantic retrieval algorithm;</t>
            <t>a business ontology or product marketplace policy;</t>
            <t>a blockchain protocol or smart contract interface;</t>
            <t>a Root key-management ceremony;</t>
            <t>a database schema, repository layout, or implementation language;</t>
            <t>a requirement to use any particular open-source codebase or hosted service;</t>
            <t>a user interface or operator review workflow; or</t>
            <t>a mandatory artifact hosting model for Skill files, API specifications, MCP
manifests, executable code, or other product-native payloads.</t>
          </list></t>
      </section>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP 14
<xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as
shown here.</t>
        <dl>
          <dt>Agent Service:</dt>
          <dd>
            <t>A callable business resource, represented as an OAN resource of type
<spanx style="verb">agent_service</spanx>.  It can expose an agent-to-agent endpoint, an HTTP endpoint,
an RPC endpoint, an MCP-related binding, or another product-native
interaction endpoint.</t>
          </dd>
          <dt>Capability Domain:</dt>
          <dd>
            <t>A governance-recognized domain used to determine whether a Discovery Node is
authorized to expose a resource.  Capability domains are distinct from local
custom tags and ranking features.</t>
          </dd>
          <dt>CDN Service:</dt>
          <dd>
            <t>A content distribution service that stores and serves Root-published
packages, identity documents, metadata, manifests, and related artifacts.
A CDN Service is not a protocol trust authority in this architecture.</t>
          </dd>
          <dt>Discoverable Resource:</dt>
          <dd>
            <t>A resource that can be registered, Root-verified, distributed, indexed,
discovered, and verified before use.  Initial OAN resource types are
<spanx style="verb">agent_service</spanx>, <spanx style="verb">skill</spanx>, <spanx style="verb">mcp_server</spanx>, and <spanx style="verb">tool_api</spanx>.</t>
          </dd>
          <dt>Discovery Node:</dt>
          <dd>
            <t>An infrastructure service that synchronizes Root-verified resource packages,
verifies them, applies authorization-domain filtering, builds local indexes,
and returns signed discovery responses.</t>
          </dd>
          <dt>Governance State:</dt>
          <dd>
            <t>The current authorization lifecycle state of an infrastructure subject, such
as a Registrar Node, Discovery Node, or VC issuer.  Governance state is
separate from ordinary resource package lifecycle state.</t>
          </dd>
          <dt>MCP Server:</dt>
          <dd>
            <t>A resource of type <spanx style="verb">mcp_server</spanx> that describes an MCP-compatible server and
its OAN-facing identity, endpoint, metadata, and verification material.</t>
          </dd>
          <dt>Registrar Node:</dt>
          <dd>
            <t>An infrastructure service that assists resource providers, checks candidate
resource material, verifies subject control, issues registration evidence,
and submits complete registration packages to the Root Node.</t>
          </dd>
          <dt>Resource Consumer:</dt>
          <dd>
            <t>A user agent, application, orchestrator, service, or other relying party that
queries Discovery and verifies resource material before download, invocation,
or other use.</t>
          </dd>
          <dt>Resource Identity Document:</dt>
          <dd>
            <t>The identity-facing document for a discoverable resource.  A deployment can
express it as a DID Document profile or another signed representation that
provides equivalent identifier, key, endpoint or artifact-reference,
metadata, and verification properties.</t>
          </dd>
          <dt>Resource Package:</dt>
          <dd>
            <t>A versioned Root-verified package that binds a resource identifier, resource
type, package version, resource identity document, resource metadata, hashes,
lifecycle state, and Root proof.</t>
          </dd>
          <dt>Resource Provider:</dt>
          <dd>
            <t>The subject, operator, or organization responsible for preparing and
controlling a discoverable resource.</t>
          </dd>
          <dt>Root Node:</dt>
          <dd>
            <t>The trust anchor role for one OAN trust domain.  It verifies Registrar
submissions, accepts or rejects resource packages, signs Root proofs,
publishes package facts, maintains or consumes infrastructure authorization
state, and coordinates downstream distribution.  A Root Node is not assumed
to be globally unique across all OAN deployments.</t>
          </dd>
          <dt>Skill:</dt>
          <dd>
            <t>A resource of type <spanx style="verb">skill</spanx> that describes a capability.  A Skill can refer to
one or more Agent Service, MCP Server, or Tool/API implementations.  The
Skill artifact itself can be hosted outside OAN, provided that OAN metadata
includes verifiable references.</t>
          </dd>
          <dt>Tool/API:</dt>
          <dd>
            <t>A resource of type <spanx style="verb">tool_api</spanx> that describes a callable tool, API, function
gateway, enterprise connector, or similar interface.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="architecture-overview">
      <name>Architecture Overview</name>
      <t>OAN separates governance, registration, Root acceptance, distribution,
Discovery, and product-native use.  The high-level relationship is:</t>
      <figure>
        <artwork><![CDATA[
Resource Provider
   | prepares resource identity, metadata, package, hashes
   v
Registrar Node
   | verifies subject control and issues registration evidence
   | submits signed upstream request
   v
Root Node
   | verifies Registrar authorization, evidence, hashes, package
   | signs Root proof and queues publication
   v
CDN Service
   | distributes Root-published packages and metadata
   v
Discovery Node
   | verifies packages, enforces authorized domains, signs responses
   v
Resource Consumer
   | verifies Discovery response and selected package before use
   v
Product-native protocol or artifact retrieval
]]></artwork>
      </figure>
      <t>The architecture has several important invariants:</t>
      <t><list style="symbols">
          <t>Root acceptance is the authoritative resource-package trust event within the
applicable trust domain.</t>
          <t>Registrar review is not sufficient without Root verification.</t>
          <t>CDN distribution is not a trust decision.</t>
          <t>Discovery indexing is not a Root lifecycle state.</t>
          <t>Discovery ranking is not authorization.</t>
          <t>Product-native invocation or artifact retrieval begins only after OAN
verification has succeeded.</t>
        </list></t>
      <section anchor="role-responsibilities">
        <name>Role Responsibilities</name>
        <section anchor="root-node">
          <name>Root Node</name>
          <t>Within its trust domain, the Root Node is responsible for:</t>
          <t><list style="symbols">
              <t>verifying Registrar-origin resource submissions;</t>
              <t>verifying signed upstream envelopes, timestamp freshness, nonce uniqueness,
and body-hash binding;</t>
              <t>verifying registration evidence, issuer authorization, and subject-control
binding;</t>
              <t>verifying resource identity document structure, resource type consistency,
package hashes, metadata hashes, and package versions;</t>
              <t>creating Root proofs over accepted package claims;</t>
              <t>preserving versioned resource package history;</t>
              <t>publishing or queuing packages for CDN distribution;</t>
              <t>notifying or enabling Discovery synchronization;</t>
              <t>issuing or validating infrastructure authorization credentials when the
deployment profile uses them; and</t>
              <t>enforcing current governance state for infrastructure subjects.</t>
            </list></t>
          <t>The Root Node MUST NOT treat CDN location, Discovery ranking, local search
signals, or Registrar policy recommendation as a substitute for Root
verification.</t>
        </section>
        <section anchor="registrar-node">
          <name>Registrar Node</name>
          <t>A Registrar Node is the onboarding and submission gateway for resources.  It
is responsible for:</t>
          <t><list style="symbols">
              <t>assisting resource providers with draft resource identity documents and
metadata;</t>
              <t>validating resource type, resource identifier, metadata, package version,
hashes, and hash algorithm fields;</t>
              <t>verifying that the applicant controls the resource subject key material;</t>
              <t>issuing registration evidence after successful policy review and
subject-control verification;</t>
              <t>preserving local evidence for audit and resubmission; and</t>
              <t>submitting complete resource packages to the Root Node with a signed
upstream envelope.</t>
            </list></t>
          <t>A Registrar Node MUST NOT issue authoritative registration evidence for a
resource subject unless the subject-control proof or an equivalent verified
binding has succeeded.  A Registrar Node SHOULD fail closed for Root-facing
authoritative submission when its own infrastructure authorization credential
or current governance state is missing, stale beyond policy, suspended,
revoked, expired, or unknown.</t>
        </section>
        <section anchor="discovery-node">
          <name>Discovery Node</name>
          <t>A Discovery Node is responsible for:</t>
          <t><list style="symbols">
              <t>synchronizing Root-verified resource packages from approved distribution
locations;</t>
              <t>verifying Root proofs, package hashes, metadata hashes, identity-document
hashes, and lifecycle state;</t>
              <t>enforcing its authorized capability domains;</t>
              <t>maintaining accepted and rejected package state;</t>
              <t>building local indexes over accepted packages; and</t>
              <t>returning signed Discovery responses.</t>
            </list></t>
          <t>Discovery Nodes MAY use local ranking, semantic matching, reputation, or
operator policy after package verification and authorization filtering.  These
local signals MUST NOT cause a resource to be exposed outside the Discovery
Node's authorized domains, override Root revocation state, or hide verification
failures.</t>
        </section>
        <section anchor="cdn-service">
          <name>CDN Service</name>
          <t>The CDN Service is a distribution layer.  It stores and serves Root-published
resource packages, identity documents, metadata, manifests, and related
artifacts.  The CDN Service is not an OAN trust authority, is not necessarily a
chain-governed infrastructure subject, and does not decide whether a resource
is accepted.</t>
          <t>Relying parties MUST verify Root proofs and package hashes after fetching
content from a CDN Service.  A manifest entry, storage location, URL, or CDN
identity MUST NOT be treated as sufficient proof of resource trust.</t>
        </section>
        <section anchor="resource-provider">
          <name>Resource Provider</name>
          <t>A Resource Provider prepares the resource identity document, metadata,
endpoint descriptors, artifact references, package version, and hash material.
The provider is responsible for controlling the corresponding subject key
material and for maintaining product-native endpoints or artifacts.  OAN does
not require Discovery Nodes or CDN Services to host provider-native Skill
files, OpenAPI specifications, MCP manifests, executables, or other external
payloads.</t>
        </section>
        <section anchor="resource-consumer">
          <name>Resource Consumer</name>
          <t>A Resource Consumer queries Discovery and verifies selected candidates before
use.  It is responsible for checking the Discovery response signature, Root
proofs, hashes, lifecycle state, endpoint or artifact-reference binding,
resource type consistency, and any product-specific credential requirements.
After these checks pass, the consumer can use the relevant product-native
protocol or retrieve the referenced artifact.</t>
        </section>
      </section>
    </section>
    <section anchor="resource-identity-model">
      <name>Resource Identity Model</name>
      <t>An OAN resource identity model separates stable identity, package version,
protocol version, and endpoint or artifact version.</t>
      <t>The stable resource identifier identifies the resource subject.  It SHOULD NOT
encode a package version, endpoint version, protocol version, cryptographic
algorithm, mutable URL, or mutable descriptive metadata.</t>
      <t>The package version identifies a Root-verified release of resource identity and
metadata.  A resource can publish multiple package versions under the same
stable resource identifier.  A new resource identifier SHOULD be used when the
controller boundary, trust boundary, or core product semantics change enough
that treating the change as a new package version would mislead relying
parties.</t>
      <t>The protocol or interface version identifies a product-native interface such
as an MCP version, HTTP API version, A2A profile, Skill format version, schema
version, or endpoint contract version.  OAN can record these versions as
metadata, but it does not define their native semantics.</t>
      <section anchor="resource-types">
        <name>Resource Types</name>
        <t>An OAN deployment that implements this document SHOULD support the following
initial resource types:</t>
        <texttable>
          <ttcol align="left">Resource Type</ttcol>
          <ttcol align="left">Product Form</ttcol>
          <ttcol align="left">Typical OAN Material</ttcol>
          <c>
            <spanx style="verb">agent_service</spanx></c>
          <c>Callable agent service</c>
          <c>endpoint, supported protocols, capabilities</c>
          <c>
            <spanx style="verb">skill</spanx></c>
          <c>Capability description or package</c>
          <c>artifact URI, digest, semantics, implementations</c>
          <c>
            <spanx style="verb">mcp_server</spanx></c>
          <c>MCP-compatible server</c>
          <c>endpoint, transport, protocol hints, tools summary</c>
          <c>
            <spanx style="verb">tool_api</spanx></c>
          <c>Tool or API</c>
          <c>endpoint or schema reference, auth mode, policy</c>
        </texttable>
        <t>Resource-type-specific data SHOULD be represented in typed extension fields or
profile-specific objects rather than by creating unrelated package formats.</t>
      </section>
      <section anchor="resource-identifier-and-type-consistency">
        <name>Resource Identifier and Type Consistency</name>
        <t>When a deployment uses a DID-based identifier profile, the resource identity
document SHOULD make the product form explicit in its OAN metadata.  A
deployment MAY use subject-code conventions, method-specific syntax, or another
profile mechanism to distinguish resource types.  When such a mechanism is
used, the following values MUST be mutually consistent:</t>
        <t><list style="symbols">
            <t>the public resource identifier;</t>
            <t>the resource type declared in the registration submission;</t>
            <t>the resource type declared in OAN metadata; and</t>
            <t>the resource type bound by the Root proof.</t>
          </list></t>
        <t>Registrars, Root Nodes, Discovery Nodes, and SDKs MUST reject or quarantine
resource packages where the resource identifier profile and declared resource
type conflict, unless a future OAN profile explicitly defines an alias or
migration rule.</t>
      </section>
      <section anchor="resource-identity-document-expectations">
        <name>Resource Identity Document Expectations</name>
        <t>A Resource Identity Document SHOULD contain or reference:</t>
        <t><list style="symbols">
            <t>the stable resource identifier;</t>
            <t>verification methods and verification relationships needed by the profile;</t>
            <t>controller or provider information;</t>
            <t>resource type and product-form metadata;</t>
            <t>semantic metadata used for discovery;</t>
            <t>capability tags or capability domains;</t>
            <t>endpoint descriptors for service resources;</t>
            <t>artifact references for resource types that use external artifacts;</t>
            <t>credential references or registration evidence references;</t>
            <t>package version information;</t>
            <t>lifecycle-state information or references; and</t>
            <t>extension fields, with clear criticality semantics where supported.</t>
          </list></t>
        <t>The document MUST NOT be trusted merely because it resolves or parses.  It is
trusted only when it is bound to a verified package, Root proof, and acceptable
current lifecycle state.</t>
      </section>
      <section anchor="capability-metadata">
        <name>Capability Metadata</name>
        <t>Capability metadata has two components:</t>
        <t><list style="symbols">
            <t>governance-recognized capability domains; and</t>
            <t>custom tags, local labels, search hints, embeddings, examples, or other
descriptive fields.</t>
          </list></t>
        <t>Only governance-recognized capability domains can expand Discovery
authorization scope.  Custom tags MAY refine local search after authorization
has succeeded, but they MUST NOT cause a Discovery Node to expose a resource
outside its authorized domains.</t>
        <t>Unknown non-critical extension fields MAY be ignored.  Unknown critical fields
MUST cause rejection by a verifier that does not understand them.</t>
      </section>
      <section anchor="external-artifact-references">
        <name>External Artifact References</name>
        <t>Some resources, especially <spanx style="verb">skill</spanx>, can reference external artifacts.  Examples
include Skill files, MCP manifests, OpenAPI descriptions, source archives,
schemas, or executable packages.  OAN does not require these artifacts to be
hosted by a Discovery Node or CDN Service.</t>
        <t>An external artifact reference SHOULD include:</t>
        <t><list style="symbols">
            <t>URI;</t>
            <t>media type or profile identifier;</t>
            <t>expected version;</t>
            <t>digest algorithm;</t>
            <t>digest value;</t>
            <t>retrieval policy where applicable; and</t>
            <t>the identity or package claims that bind the artifact to the resource.</t>
          </list></t>
        <t>The Root proof can make the reference and digest trustworthy as accepted
metadata.  It does not make the remote artifact host trustworthy.  Consumers
MUST verify the artifact digest after retrieval when the artifact is used for a
trust-sensitive purpose.</t>
      </section>
    </section>
    <section anchor="resourcepackage-and-root-proof-model">
      <name>ResourcePackage and Root Proof Model</name>
      <t>The ResourcePackage is the common Root-verified registry object.  It binds a
resource identity document, normalized metadata, version information, hashes,
lifecycle state, and Root proof.</t>
      <t>A ResourcePackage SHOULD include:</t>
      <t><list style="symbols">
          <t><spanx style="verb">resourceDid</spanx> or an equivalent stable resource identifier;</t>
          <t><spanx style="verb">resourceType</spanx>;</t>
          <t><spanx style="verb">packageVersion</spanx>;</t>
          <t>the resource identity document or a verifiable reference to it;</t>
          <t>resource metadata;</t>
          <t><spanx style="verb">didDocumentHash</spanx>;</t>
          <t><spanx style="verb">metadataHash</spanx>;</t>
          <t><spanx style="verb">packageHash</spanx>;</t>
          <t><spanx style="verb">hashAlgorithm</spanx>;</t>
          <t>lifecycle state;</t>
          <t>Registrar identity and registration evidence reference;</t>
          <t>Root proof claims;</t>
          <t>publication cursor or sequence where applicable; and</t>
          <t>endpoint or artifact-reference metadata needed for verification.</t>
        </list></t>
      <t>The Root proof over an accepted package MUST bind at least:</t>
      <t><list style="symbols">
          <t>stable resource identifier;</t>
          <t>resource type;</t>
          <t>package version;</t>
          <t>identity-document hash;</t>
          <t>metadata hash;</t>
          <t>package hash;</t>
          <t>hash algorithm identifier; and</t>
          <t>lifecycle state at the time of acceptance or publication.</t>
        </list></t>
      <t>The proof SHOULD also bind Registrar identity, registration evidence reference,
publication cursor, and any critical extension fields that affect
verification.</t>
      <section anchor="hash-and-canonicalization-requirements">
        <name>Hash and Canonicalization Requirements</name>
        <t>OAN relies on hash binding.  A deployment profile MUST define deterministic
canonicalization rules for every object whose bytes are hashed or signed.
Objects that require stable canonicalization include:</t>
        <t><list style="symbols">
            <t>resource identity documents;</t>
            <t>normalized resource metadata;</t>
            <t>registration evidence;</t>
            <t>signed upstream envelopes;</t>
            <t>ResourcePackage payloads;</t>
            <t>Root proof claims;</t>
            <t>Discovery response payloads; and</t>
            <t>trusted invocation or access envelopes, when used.</t>
          </list></t>
        <t>Hashes MUST identify their algorithm.  A bare digest value without an
algorithm identifier is insufficient for interoperable verification.</t>
      </section>
      <section anchor="version-and-lifecycle-binding">
        <name>Version and Lifecycle Binding</name>
        <t>Package-version lifecycle is distinct from resource-identifier lifecycle.  A
package version can be superseded, suspended, expired, or revoked while the
stable resource identifier remains active.  If the resource identity itself is
deactivated, the resource subject is inactive even if older package files are
still reachable from caches.</t>
        <t>Discovery Nodes SHOULD return the latest active package version by default.
When a Discovery Node returns a historical version, the response MUST indicate
the exact version, package hash, metadata hash, Root proof reference, lifecycle
state, and whether the version is recommended for new use.</t>
      </section>
    </section>
    <section anchor="trust-and-governance-layers">
      <name>Trust and Governance Layers</name>
      <t>OAN separates governance review, credential issuance, subject-control proof,
runtime verification, and resource package lifecycle.</t>
      <section anchor="governance-review">
        <name>Governance Review</name>
        <t>Operator review, legal review, organizational checks, contact validation, or
manual approval can be useful before a Registrar, Discovery Node, VC issuer, or
ordinary resource is admitted.  These processes are policy decisions.  They are
not protocol proofs by themselves.</t>
        <t>Email addresses, phone numbers, SMS codes, web account login, and similar
account-centric factors MAY be used in private review workflows.  They MUST
NOT be required as OAN protocol trust primitives for cross-network
interoperability.</t>
      </section>
      <section anchor="credential-issuance">
        <name>Credential Issuance</name>
        <t>After review and cryptographic checks succeed, an authorized issuer can issue a
credential or credential-like assertion.  A registration credential binds the
issuer, subject resource identifier, credential type, claims, issuance time,
expiration time if present, and proof.</t>
        <t>The credential is the protocol-facing result of review.  It does not replace
Root acceptance, package verification, or current lifecycle-state checks.</t>
      </section>
      <section anchor="subject-control-proof">
        <name>Subject-Control Proof</name>
        <t>Subject-control proof prevents a Registrar from issuing registration evidence
for a resource identifier whose key material the applicant does not control.
The proof SHOULD be challenge-response based and bind:</t>
        <t><list style="symbols">
            <t>challenge identifier;</t>
            <t>resource identifier;</t>
            <t>Registrar identifier;</t>
            <t>identity-document hash or equivalent stable representation hash;</t>
            <t>proof purpose;</t>
            <t>verification method;</t>
            <t>nonce;</t>
            <t>issuance time; and</t>
            <t>expiration time.</t>
          </list></t>
        <t>The Registrar MUST verify subject-control proof before issuing authoritative
registration evidence.  Root verification MUST ensure that registration
evidence remains bound to the subject-control process and target resource
identifier.</t>
      </section>
      <section anchor="infrastructure-governance-state">
        <name>Infrastructure Governance State</name>
        <t>Infrastructure subjects, such as Registrar Nodes, Discovery Nodes, and future
third-party VC issuers, can have lifecycle state governed by a bulletin,
committee process, on-chain event source, or another deployment-specific
governance mechanism.</t>
        <t>This infrastructure governance state is separate from ordinary resource
package state.  It governs whether an infrastructure subject is active,
suspended, revoked, expired, unknown, or otherwise inactive.  It does not by
itself create a resource package, validate a DID Document, host an artifact, or
make a Discovery result trustworthy.</t>
        <t>Where an OAN deployment uses Root-issued infrastructure authorization
credentials, effective infrastructure authorization is the conjunction of:</t>
        <t><list style="symbols">
            <t>a valid Root-issued authorization credential for the infrastructure subject;
and</t>
            <t>latest governance-derived state showing that the same subject and role are
active within the applicable scope.</t>
          </list></t>
        <t>If either condition is missing, stale beyond policy, suspended, revoked,
expired, or unknown, infrastructure peers SHOULD fail closed for
trust-sensitive operations.</t>
      </section>
      <section anchor="on-chain-governance-profile">
        <name>On-Chain Governance Profile</name>
        <t>An OAN deployment MAY use on-chain governance as the publication mechanism for
infrastructure lifecycle outcomes.  In such a profile, blockchain contract
events can provide an auditable source of governance results for infrastructure
subjects such as Registrar Nodes, Discovery Nodes, and future VC issuers.</t>
        <t>The on-chain governance profile is an infrastructure-governance profile.  It
does not make the blockchain a storage system for resource identity documents,
ResourcePackages, credentials, external artifacts, or product-native payloads.
It also does not require ordinary Resource Providers, Resource Consumers, or
lightweight SDKs to subscribe to blockchain events.</t>
        <t>An on-chain governance event is not, by itself, an OAN service credential.  For
trust-sensitive infrastructure interactions, the effective authorization
decision still depends on the combination of current governance-derived state
and protocol-verifiable authorization material, such as a Root-issued
infrastructure authorization credential.</t>
        <t>This document does not define a blockchain protocol, blockchain contract
interface, transaction format, consensus mechanism, governance voting procedure,
or chain-specific event schema.  Those choices are deployment or future-profile
matters.  The interoperability requirement here is that relying infrastructure
can determine the current governance state that is relevant to a trust decision
and can combine that state with OAN protocol evidence.</t>
      </section>
      <section anchor="bulletin-boundary">
        <name>Bulletin Boundary</name>
        <t>A governance bulletin can publish infrastructure authorization outcomes,
package publication events, or other deployment-specific facts.  A profile MAY
implement the bulletin as an append-only signed log, an on-chain event stream,
a committee-approved record, or a combination of these mechanisms.</t>
        <t>The bulletin MUST NOT be assumed to store complete resource identity
documents, full credentials, private credential material, resource packages,
external artifacts, or product-native payloads unless a future profile
explicitly defines such storage.  In the architecture described here, resource
package trust remains based on Root verification, Root proof, hashes, package
state, and Discovery verification.</t>
      </section>
    </section>
    <section anchor="registration-and-root-verification">
      <name>Registration and Root Verification</name>
      <t>The standard OAN registration flow is:</t>
      <t><list style="numbers" type="1">
          <t>The Resource Provider prepares a resource identity document, metadata,
package version, hashes, endpoint descriptors, or artifact references.</t>
          <t>The Registrar validates resource type, resource identifier consistency,
identity-document shape, metadata, hashes, and hash algorithm fields.</t>
          <t>The Resource Provider proves control of the resource subject key material.</t>
          <t>The Registrar applies local policy and issues registration evidence.</t>
          <t>The Registrar creates a complete registration submission.</t>
          <t>The Registrar signs an upstream request envelope and submits it to Root.</t>
          <t>Root verifies infrastructure authorization, request integrity, freshness,
replay protection, registration evidence, subject-control binding, hashes,
and package semantics.</t>
          <t>Root accepts or rejects the package.</t>
          <t>On acceptance, Root archives the version, creates a Root proof, and queues
package publication and Discovery synchronization.</t>
        </list></t>
      <t>Create and update operations SHOULD use a complete-document path.  Root SHOULD
verify a complete new resource identity representation rather than applying
ambiguous partial patches.</t>
      <section anchor="signed-upstream-envelope">
        <name>Signed Upstream Envelope</name>
        <t>Registrar-to-Root submissions and other trusted upstream writes MUST be
authenticated and integrity protected.  A signed upstream envelope SHOULD cover:</t>
        <t><list style="symbols">
            <t>request identifier;</t>
            <t>protocol version or profile identifier;</t>
            <t>request purpose;</t>
            <t>HTTP method or equivalent operation;</t>
            <t>path or target operation name;</t>
            <t>audience identifier;</t>
            <t>signer identifier;</t>
            <t>timestamp;</t>
            <t>nonce;</t>
            <t>body hash;</t>
            <t>canonicalization algorithm; and</t>
            <t>proof.</t>
          </list></t>
        <t>Receivers MUST verify the sender's authorization state, proof validity, body
hash, timestamp freshness, nonce uniqueness, audience binding, and expected
operation before processing the body.</t>
      </section>
      <section anchor="root-verification-requirements">
        <name>Root Verification Requirements</name>
        <t>Root verification MUST be deterministic and auditable.  At a minimum, Root
MUST verify:</t>
        <t><list style="symbols">
            <t>the Registrar is currently authorized for the requested operation;</t>
            <t>the upstream envelope signature is valid;</t>
            <t>the request timestamp is fresh according to policy;</t>
            <t>the nonce has not been replayed within the replay window;</t>
            <t>the body hash matches the received body;</t>
            <t>the resource identifier syntax or profile is valid;</t>
            <t>the identity document is bound to the submitted resource identifier;</t>
            <t>the declared resource type is consistent across submitted objects;</t>
            <t>the identity-document hash matches the submitted identity document;</t>
            <t>the metadata hash matches normalized metadata;</t>
            <t>the package hash and hash algorithm are valid;</t>
            <t>registration evidence is issued by an authorized Registrar;</t>
            <t>registration evidence is bound to the target resource identifier;</t>
            <t>subject-control proof or an equivalent verified binding is present; and</t>
            <t>the requested lifecycle transition is valid.</t>
          </list></t>
        <t>Root MUST reject a submission if a required verification step fails.  Silent
partial acceptance is unsafe because downstream consumers can treat Root
acceptance as evidence that the complete trust path succeeded.</t>
      </section>
      <section anchor="registration-outcome">
        <name>Registration Outcome</name>
        <t>On successful verification, Root SHOULD:</t>
        <t><list style="symbols">
            <t>archive the accepted identity document and metadata;</t>
            <t>assign or confirm the package version;</t>
            <t>create Root proof claims over required package fields;</t>
            <t>create or update the latest-version index;</t>
            <t>record publication state or cursor information;</t>
            <t>queue CDN publication or equivalent distribution; and</t>
            <t>make Discovery synchronization possible.</t>
          </list></t>
        <t>A successful Root response indicates Root acceptance of a specific package
version.  It does not prove product quality, endpoint liveness, ranking value,
or suitability for a particular task.</t>
      </section>
    </section>
    <section anchor="distribution-model">
      <name>Distribution Model</name>
      <t>OAN distribution has two layers:</t>
      <t><list style="symbols">
          <t>Root-to-Discovery distribution of Root-verified package material; and</t>
          <t>provider-to-consumer distribution of product-native external artifacts.</t>
        </list></t>
      <t>The CDN Service belongs to the Root-to-Discovery distribution path.  It can
serve ResourcePackages, identity documents, metadata, manifests, and package
indexes.  It does not make bytes trustworthy.</t>
      <t>Provider-to-consumer artifact distribution remains outside the OAN core.  A
Skill file, MCP manifest, OpenAPI document, source archive, executable, or
other artifact can be hosted by the provider, a repository, object storage, an
institutional website, or another distribution service.  OAN verifies the
reference, digest, package binding, publisher identity, and Root proof; it does
not require OAN infrastructure to host the artifact.</t>
      <t>Discovery Nodes and consumers MUST verify fetched package material before
using it.  Verification includes Root proof, package hash, metadata hash,
identity-document hash, resource type, lifecycle state, and applicable bulletin
or publication facts.</t>
    </section>
    <section anchor="authorization-aware-discovery">
      <name>Authorization-Aware Discovery</name>
      <t>Discovery has three separate outputs:</t>
      <t><list style="symbols">
          <t>eligibility from verified Root-anchored package data;</t>
          <t>matching and ordering from local query logic; and</t>
          <t>response provenance from the Discovery Node signature.</t>
        </list></t>
      <t>These outputs MUST NOT be conflated.  A resource can be valid but not highly
ranked.  A response can be signed by a Discovery Node but still contain only
local ranking decisions.  A high local score does not make an unverifiable or
revoked package trusted.</t>
      <section anchor="synchronization">
        <name>Synchronization</name>
        <t>Discovery synchronization SHOULD follow this order:</t>
        <t><list style="numbers" type="1">
            <t>identify the Root trust anchor or Root endpoint for the deployment;</t>
            <t>obtain current Root or bulletin facts needed by the profile;</t>
            <t>resolve distribution locations from verifiable Root-controlled material
when available;</t>
            <t>fetch manifests or package indexes;</t>
            <t>fetch resource packages;</t>
            <t>verify identity-document hash, metadata hash, package hash, and Root proof;</t>
            <t>verify lifecycle state and current-version expectations;</t>
            <t>enforce Discovery authorized domains;</t>
            <t>persist accepted packages into the query index; and</t>
            <t>persist rejected packages with inspectable reasons.</t>
          </list></t>
        <t>Discovery MUST NOT index packages that fail verification as trusted
candidates.  Discovery SHOULD keep accepted and rejected package state
separate so operators can distinguish missing publication, verification
failure, authorization-domain mismatch, and query mismatch.</t>
      </section>
      <section anchor="authorized-domains">
        <name>Authorized Domains</name>
        <t>A Discovery Node's authorized domains limit which resources it may expose.
Profiles can express these domains through a capability tree, tags, policy
attributes, or another governance-recognized mechanism.</t>
        <t>A Discovery Node MUST NOT expose a resource as trusted unless the resource is
eligible under the Discovery Node's authorized domains.  Custom tags, semantic
embeddings, local labels, or ranking features MUST NOT expand the authorized
domain set.</t>
      </section>
      <section anchor="query-model">
        <name>Query Model</name>
        <t>A Discovery query MAY include text, capability tags, resource type, protocol
binding, provider identifier, endpoint type, version requirement, package hash,
authorization domain, lifecycle state, or other profile-specific filters.</t>
        <t>Discovery SHOULD return the latest active package version by default.  If a
consumer asks for an exact version, version constraint, or package hash,
Discovery MUST NOT silently substitute a different package version unless the
response clearly indicates the substitution and the consumer policy allows it.</t>
      </section>
      <section anchor="signed-discovery-response">
        <name>Signed Discovery Response</name>
        <t>A Discovery response SHOULD be signed by the Discovery Node.  The signed
payload SHOULD include:</t>
        <t><list style="symbols">
            <t>Discovery Node identifier;</t>
            <t>response timestamp;</t>
            <t>query echo or query hash;</t>
            <t>candidate identifiers;</t>
            <t>package versions and package hashes;</t>
            <t>Root proof references;</t>
            <t>lifecycle states;</t>
            <t>matched fields or explanation metadata when provided;</t>
            <t>nonce or correlation identifier where useful; and</t>
            <t>proof.</t>
          </list></t>
        <t>The Discovery signature proves response provenance from that Discovery Node.
It does not prove product quality, endpoint liveness, user suitability, or
business trustworthiness.</t>
      </section>
    </section>
    <section anchor="pre-use-verification">
      <name>Pre-Use Verification</name>
      <t>Before downloading, invoking, composing, or otherwise relying on a discovered
resource, a Resource Consumer SHOULD verify:</t>
      <t><list style="symbols">
          <t>Discovery response signature and freshness;</t>
          <t>Discovery Node authorization, where required by the profile;</t>
          <t>selected candidate identifier and resource type;</t>
          <t>ResourcePackage Root proof;</t>
          <t>identity-document hash;</t>
          <t>metadata hash;</t>
          <t>package hash and hash algorithm;</t>
          <t>package version and lifecycle state;</t>
          <t>endpoint descriptor or artifact-reference binding;</t>
          <t>external artifact digest after retrieval, when an artifact is used;</t>
          <t>credential requirements and issuer authorization where applicable;</t>
          <t>resource identifier and resource type consistency; and</t>
          <t>timestamp, nonce, audience, target, and body-hash binding for signed access
or invocation envelopes.</t>
        </list></t>
      <t>For service resources, an SDK or client SHOULD construct the product-native
client only after OAN verification has passed.  For Skill resources, a client
SHOULD verify the referenced Skill file or manifest before resolving and
invoking implementation resources.</t>
      <t>OAN verification is a pre-use guard.  After it succeeds, control moves to the
product-native protocol or artifact format.  Product-native behavior remains
outside this document.</t>
    </section>
    <section anchor="lifecycle-versioning-and-consistency">
      <name>Lifecycle, Versioning, and Consistency</name>
      <t>OAN uses multiple lifecycle scopes.  Implementations MUST keep them distinct.</t>
      <section anchor="registrar-draft-state">
        <name>Registrar Draft State</name>
        <t>Registrar draft state is local onboarding workflow state.  Example states can
include draft, challenged, control-verified, credentialed, submitted,
accepted, or rejected.  Draft existence MUST NOT imply Root acceptance or
Discovery visibility.</t>
      </section>
      <section anchor="resource-package-state">
        <name>Resource Package State</name>
        <t>Resource package state is Root-governed version state.  Example states include
accepted, published, active, superseded, suspended, expired, and revoked.
These states apply to a versioned package, not necessarily to every historical
package or to every local Discovery index row.</t>
        <t>Root MUST avoid ambiguous current-version state for the same resource
identifier.  Discovery Nodes SHOULD suppress revoked, suspended, expired, or
otherwise inactive package versions from default trusted query results.</t>
      </section>
      <section anchor="discovery-index-state">
        <name>Discovery Index State</name>
        <t>Discovery index state is local to a Discovery Node.  Example states include
fetched, accepted, indexed, rejected, quarantined, or stale.  These states
describe Discovery-local processing outcomes.  They do not modify Root package
lifecycle state.</t>
      </section>
      <section anchor="infrastructure-authorization-state">
        <name>Infrastructure Authorization State</name>
        <t>Infrastructure authorization state applies to Registrar Nodes, Discovery
Nodes, and future infrastructure issuers.  It is separate from ordinary
resource package state.  Revoking a Registrar does not automatically revoke all
historical resource packages that Registrar helped onboard, unless the Root or
profile defines such a consequence.  However, a revoked Registrar MUST NOT be
accepted for new authoritative submissions.</t>
      </section>
      <section anchor="asynchronous-publication">
        <name>Asynchronous Publication</name>
        <t>Root acceptance, CDN publication, Discovery synchronization, and query
visibility can be asynchronous.  A newly accepted package may not be
immediately queryable.  This is acceptable if implementations expose enough
state for operators and consumers to distinguish publication delay,
verification failure, authorization-domain filtering, and query mismatch.</t>
        <t>Discovery MUST NOT compensate for staleness by accepting unverifiable packages.
If synchronization is stale beyond policy, Discovery SHOULD fail closed for
trust-sensitive results or clearly mark the response freshness state.</t>
      </section>
    </section>
    <section anchor="relationship-to-other-protocols">
      <name>Relationship to Other Protocols</name>
      <t>OAN is an identity, registration, package, and discovery trust layer.  It can
be used before or around product-native protocols.</t>
      <dl>
        <dt>MCP:</dt>
        <dd>
          <t>OAN can discover and verify an <spanx style="verb">mcp_server</spanx> resource, then allow an MCP
client to connect using MCP semantics.  OAN does not define MCP tool
behavior.</t>
        </dd>
        <dt>A2A or Agent Interaction Protocols:</dt>
        <dd>
          <t>OAN can discover and verify an <spanx style="verb">agent_service</spanx> resource and provide identity
and package evidence before the agent interaction protocol begins.  OAN does
not define the full task conversation.</t>
        </dd>
        <dt>HTTP or RPC APIs:</dt>
        <dd>
          <t>OAN can discover and verify a <spanx style="verb">tool_api</spanx> resource, endpoint descriptor, and
schema or artifact reference.  The API's business semantics remain native to
that API.</t>
        </dd>
        <dt>Skills:</dt>
        <dd>
          <t>OAN can discover and verify a <spanx style="verb">skill</spanx> resource and its external artifact
reference.  Skill package format, execution, and composition semantics remain
outside the OAN core.</t>
        </dd>
      </dl>
    </section>
    <section anchor="protocol-object-expectations">
      <name>Protocol Object Expectations</name>
      <t>Future OAN profiles are expected to define concrete object schemas.  This
document identifies the expected objects and minimum semantic requirements.</t>
      <section anchor="registration-submission">
        <name>Registration Submission</name>
        <t>A registration submission SHOULD contain:</t>
        <t><list style="symbols">
            <t>Registrar identifier;</t>
            <t>resource identifier;</t>
            <t>resource type;</t>
            <t>complete resource identity document;</t>
            <t>normalized metadata;</t>
            <t>package version;</t>
            <t>identity-document hash;</t>
            <t>metadata hash;</t>
            <t>package hash;</t>
            <t>hash algorithm;</t>
            <t>registration evidence;</t>
            <t>subject-control proof or equivalent binding; and</t>
            <t>signed upstream envelope.</t>
          </list></t>
      </section>
      <section anchor="registration-evidence">
        <name>Registration Evidence</name>
        <t>Registration evidence SHOULD contain:</t>
        <t><list style="symbols">
            <t>issuer identifier;</t>
            <t>subject resource identifier;</t>
            <t>credential or evidence type;</t>
            <t>issued-at time;</t>
            <t>expiration time where applicable;</t>
            <t>registration purpose;</t>
            <t>identity-document hash;</t>
            <t>subject-control proof hash or equivalent reference;</t>
            <t>verified verification method; and</t>
            <t>proof.</t>
          </list></t>
      </section>
      <section anchor="discovery-candidate">
        <name>Discovery Candidate</name>
        <t>A Discovery candidate SHOULD contain:</t>
        <t><list style="symbols">
            <t>resource identifier;</t>
            <t>resource type;</t>
            <t>package version;</t>
            <t>package hash;</t>
            <t>metadata hash;</t>
            <t>identity-document hash;</t>
            <t>lifecycle state;</t>
            <t>endpoint descriptors or artifact references;</t>
            <t>matched capability domains or tags;</t>
            <t>Root proof reference; and</t>
            <t>product-native protocol hints where applicable.</t>
          </list></t>
      </section>
    </section>
    <section anchor="error-taxonomy">
      <name>Error Taxonomy</name>
      <t>Precise errors improve interoperability and operations.  Implementations
SHOULD distinguish at least the following categories:</t>
      <texttable>
        <ttcol align="left">Category</ttcol>
        <ttcol align="left">Example</ttcol>
        <ttcol align="left">Expected Behavior</ttcol>
        <c>syntax</c>
        <c>malformed object</c>
        <c>reject before trust checks</c>
        <c>crypto</c>
        <c>bad signature</c>
        <c>reject and audit signer</c>
        <c>authorization</c>
        <c>inactive Registrar</c>
        <c>reject as unauthorized</c>
        <c>freshness</c>
        <c>stale timestamp</c>
        <c>reject as expired</c>
        <c>replay</c>
        <c>repeated nonce</c>
        <c>reject and audit</c>
        <c>binding</c>
        <c>wrong resource identifier</c>
        <c>reject as mismatch</c>
        <c>hash</c>
        <c>metadata hash mismatch</c>
        <c>reject or quarantine</c>
        <c>scope</c>
        <c>out-of-domain package</c>
        <c>do not index</c>
        <c>state</c>
        <c>revoked package</c>
        <c>suppress from trusted results</c>
        <c>artifact</c>
        <c>digest mismatch</c>
        <c>do not use artifact</c>
      </texttable>
      <t>External error messages MAY avoid exposing sensitive operator details, but
internal logs SHOULD preserve enough information for audit and debugging.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document follows the general guidance for protocol threat analysis in
<xref target="RFC3552"/>.</t>
      <dl>
        <dt>Malicious Registrar:</dt>
        <dd>
          <t>A Registrar can attempt to register resources without verifying subject
control or after losing authorization.  Root MUST verify Registrar
authorization, signed upstream envelopes, freshness, replay protection,
registration evidence, and subject-control binding.</t>
        </dd>
        <dt>Subject-control failure:</dt>
        <dd>
          <t>An applicant can try to register a resource identifier controlled by another
party.  Registrars MUST verify subject-control proof before issuing
authoritative registration evidence, and Root MUST verify that the evidence
remains bound to the target resource.</t>
        </dd>
        <dt>Tampered CDN content:</dt>
        <dd>
          <t>A CDN or intermediary can serve modified packages or stale manifests.
Discovery Nodes and consumers MUST verify Root proofs and all relevant hashes
after retrieval.</t>
        </dd>
        <dt>Overbroad Discovery exposure:</dt>
        <dd>
          <t>A Discovery Node can expose resources outside its authorized domains.
Discovery implementations MUST enforce authorized-domain filtering before
indexing or returning trusted candidates.</t>
        </dd>
        <dt>Ranking as authorization:</dt>
        <dd>
          <t>Local ranking, semantic search, or reputation features can be mistaken for
trust decisions.  Implementations MUST apply ranking only after Root package
verification and Discovery authorization filtering.</t>
        </dd>
        <dt>Stale lifecycle state:</dt>
        <dd>
          <t>A stale cache can return superseded or revoked resources.  Discovery Nodes
SHOULD track freshness and fail closed for trust-sensitive results when
lifecycle state is stale beyond policy.</t>
        </dd>
        <dt>Replay attacks:</dt>
        <dd>
          <t>Attackers can replay upstream submissions or signed invocation envelopes.
Signed envelopes MUST bind timestamp, nonce, audience, operation, and body
hash.  Receivers MUST enforce freshness windows and nonce uniqueness.</t>
        </dd>
        <dt>Wrong-target invocation:</dt>
        <dd>
          <t>A request prepared for one resource can be redirected to another endpoint.
Consumers and service resources SHOULD bind signed access or invocation
envelopes to the selected target identifier and verified endpoint metadata.</t>
        </dd>
        <dt>External artifact substitution:</dt>
        <dd>
          <t>A Skill file, MCP manifest, API description, or executable can be replaced at
its external host.  Consumers MUST verify artifact digests and package
binding before use.</t>
        </dd>
        <dt>Canonicalization mismatch:</dt>
        <dd>
          <t>Independent implementations can compute different hashes for the same
logical object.  Profiles MUST define canonicalization rules and SHOULD
provide test vectors.</t>
        </dd>
        <dt>Root key compromise:</dt>
        <dd>
          <t>A compromised Root signing key can undermine a trust domain.  Deployments
SHOULD define key rotation, compromise response, revocation, and recovery
procedures.  Higher-assurance deployments SHOULD consider threshold signing
or other operational controls.</t>
        </dd>
        <dt>Denial of service:</dt>
        <dd>
          <t>Attackers can submit many registrations, trigger expensive verification, or
overload Discovery queries.  Registrars, Root Nodes, CDN Services, and
Discovery Nodes SHOULD apply rate limits, quotas, backpressure, input size
limits, and monitoring.</t>
        </dd>
      </dl>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>OAN metadata can reveal provider identities, service endpoints, capability
areas, business relationships, policy requirements, and organizational
structure.  Deployments SHOULD minimize public metadata and avoid publishing
private endpoint details, unnecessary internal schemas, private credentials,
or sensitive operational information.</t>
      <t>Discovery queries can reveal user or enterprise intent.  Discovery Nodes
SHOULD provide transport confidentiality, access control where appropriate,
retention limits, privacy-preserving logs, and clear operator policies for
query data.</t>
      <t>External artifact references can leak which users or organizations retrieve a
Skill, API description, or package from a third-party host.  Consumers SHOULD
consider retrieval privacy and artifact caching policies for sensitive
deployments.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document makes no IANA requests.</t>
      <t>Future OAN profiles that define media types, URI schemes, HTTP fields, well-
known URIs, registries, or protocol parameter values are expected to include
their own IANA considerations.</t>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>This section is to be removed before publication as an RFC.</t>
      <t>A research implementation of OAN has been developed with
separate Root, Registrar, Discovery, and CDN services; resource-oriented
registration; <spanx style="verb">did:oan</spanx> resource identifiers; first-class resource types for
Agent Service, Skill, MCP Server, and Tool/API; subject-control proof;
Registrar-issued registration evidence; Root-verified ResourcePackage objects;
signed upstream envelopes; Root-to-CDN package publication; Discovery package
verification; authorized-domain filtering; signed Discovery responses; and
pre-use verification examples.</t>
      <t>The open-source project is available at <eref target="https://github.com/OpenAgenet">https://github.com/OpenAgenet</eref>.
The repository set is expected to evolve as the implementation and draft are
refined.  The existence of this code is intended to support experimentation,
review, and interoperability feedback; it is not required for conformance.</t>
      <t>Implementation details such as repository layout, programming language,
database backend, HTTP route names, local file paths, and operator tooling are
not specified by this document.</t>
    </section>
    <section anchor="conformance-checklist">
      <name>Conformance Checklist</name>
      <t>An implementation or deployment can be reviewed against the following
checklist:</t>
      <t><list style="symbols">
          <t>resource type consistency is checked across identifiers, metadata,
submissions, packages, and Root proofs;</t>
          <t>subject-control proof is required before authoritative registration evidence
is issued;</t>
          <t>trusted upstream writes are signed and bind method, path, audience,
timestamp, nonce, and body hash;</t>
          <t>Registrar and Discovery infrastructure authorization checks fail closed when
state is missing, stale, suspended, revoked, expired, or unknown;</t>
          <t>Root proof binds resource identifier, resource type, package version,
identity-document hash, metadata hash, package hash, hash algorithm, and
lifecycle state;</t>
          <t>CDN content is verified after retrieval;</t>
          <t>Discovery enforces authorized domains before ranking or returning trusted
candidates;</t>
          <t>custom tags do not expand authorization scope;</t>
          <t>latest active package version is returned by default;</t>
          <t>historical versions are explicitly identified when returned;</t>
          <t>external artifacts are verified by digest before use;</t>
          <t>signed Discovery responses are verified by consumers; and</t>
          <t>replayed or stale signed envelopes are rejected.</t>
        </list></t>
    </section>
  </middle>
  <back>
    <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="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="RFC3552">
        <front>
          <title>Guidelines for Writing RFC Text on Security Considerations</title>
          <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
          <author fullname="B. Korver" initials="B." surname="Korver"/>
          <date month="July" year="2003"/>
          <abstract>
            <t>All RFCs are required to have a Security Considerations section. Historically, such sections have been relatively weak. This document provides guidelines to RFC authors on how to write a good Security Considerations section. 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="72"/>
        <seriesInfo name="RFC" value="3552"/>
        <seriesInfo name="DOI" value="10.17487/RFC3552"/>
      </reference>
    </references>
    <?line 1251?>

<section anchor="example-resourcepackage-informative">
      <name>Example ResourcePackage (Informative)</name>
      <t>The following JSON fragment illustrates a ResourcePackage.  It is not a
mandatory wire format.</t>
      <figure>
        <sourcecode type="json">
{
  "resourceDid": "did:oan:AG:example-translator",
  "resourceType": "agent_service",
  "packageVersion": "3",
  "lifecycleState": "active",
  "didDocumentHash": "sha256:012345...",
  "metadataHash": "sha256:abcdef...",
  "packageHash": "sha256:789abc...",
  "hashAlgorithm": "sha256",
  "metadata": {
    "name": "Example Translator",
    "capabilityTags": ["translation", "translation.zh-en"],
    "customTags": ["legal-contract-translation"],
    "protocolBindings": ["https"]
  },
  "registrarDid": "did:oan:REG:registrar-01",
  "rootProof": {
    "type": "ExampleDataIntegrityProof2026",
    "verificationMethod": "did:oan:ROOT:root-01#key-1",
    "packageClaims": {
      "resourceDid": "did:oan:AG:example-translator",
      "resourceType": "agent_service",
      "packageVersion": "3",
      "didDocumentHash": "sha256:012345...",
      "metadataHash": "sha256:abcdef...",
      "packageHash": "sha256:789abc...",
      "lifecycleState": "active"
    },
    "proofValue": "..."
  }
}
</sourcecode>
      </figure>
    </section>
    <section anchor="example-skill-artifact-reference-informative">
      <name>Example Skill Artifact Reference (Informative)</name>
      <t>The following JSON fragment illustrates an external artifact reference for a
Skill resource.  It is not a mandatory wire format.</t>
      <figure>
        <sourcecode type="json">
{
  "resourceDid": "did:oan:SK:invoice-review",
  "resourceType": "skill",
  "packageVersion": "1.0.0",
  "artifact": {
    "uri": "https://example.org/skills/invoice-review.skill.json",
    "mediaType": "application/example-skill+json",
    "version": "1.0.0",
    "digest": "sha256:13579b...",
    "retrievalPolicy": "public-read"
  },
  "implementedBy": [
    {
      "resourceDid": "did:oan:MC:accounting-mcp",
      "resourceType": "mcp_server"
    }
  ]
}
</sourcecode>
      </figure>
    </section>
    <section anchor="example-discovery-response-informative">
      <name>Example Discovery Response (Informative)</name>
      <t>The following JSON fragment illustrates a signed Discovery response.  It is not
a mandatory wire format.</t>
      <figure>
        <sourcecode type="json">
{
  "discoveryDid": "did:oan:DIS:discovery-01",
  "issuedAt": "2026-06-06T08:01:00Z",
  "queryHash": "sha256:2468ac...",
  "results": [
    {
      "resourceDid": "did:oan:AG:example-translator",
      "resourceType": "agent_service",
      "packageVersion": "3",
      "packageHash": "sha256:789abc...",
      "metadataHash": "sha256:abcdef...",
      "lifecycleState": "active",
      "matchedTags": ["translation.zh-en"],
      "rootProofRef": "root-proof:4812"
    }
  ],
  "proof": {
    "type": "ExampleDataIntegrityProof2026",
    "verificationMethod": "did:oan:DIS:discovery-01#key-1",
    "proofValue": "..."
  }
}
</sourcecode>
      </figure>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The authors thank participants in discussions on open agent networks, resource
identity, trusted discovery, and cross-protocol agent interoperability.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
IAJCnkWpmeWTCdNeXqD01qEHBe9ZiWyDNx9VziG5Kzl2FSj2Cp1S0xv8pAWG
o1HOgGGPceWTS7UAs3dvq4FDLUzqctM4e0Nvg+sHjiqWlCURWXcZKBIcqxkM
CYQih+srzMM08liVoqINJ/ICNKlESqmU1aU3fa3UWDYniuXWy+MOvI9UAtIb
4bFjSV9yKtzmQZujei9h6ktUF3jLHgUyDTl19iXMgQTB204UXiA5qFG/1Lwk
UAxQADwLrKke8xzVD2DuML+z9ayEMgqZladdW66ES96QNKaNZX8SPVsYM0iP
Ry++e/3mUcH/zb99SX/fPv/3725unz/Dv19/ffXNN/YHX5HBh5fffSO/41/h
zuuXL148//YZ3wzf5slXL65+/4hDT49evnpz8/Lbq28ejQNqKPg5RUfrDiJi
4CRWcC/gni+uX+VPPsn++td/uP3y+umTJ5//+GPOHz578qtP4MP9tpJMMkbg
5OOACQ2OUuBDUHoty0M9lJR+6DNw5e8b8l5g9a4o4vSayeEiu0CXSfMfxjUh
2Ae0Ch84F8EpRLSlzHzFoBTIDtjUJG7GeTZUCRLM1mDhbGhnEvUyXAT8RhLE
viGJT0mU6CJMv0jeMRf/4oEwayJr9EmwBtflQU2yZyR8eR2cK4ECaNNQPJ7F
s8VZzRQwrEQ5jucHlRBH9ENkBtbHjUJUQC7RbmArtG66di8RIzBIQFPAx6Hc
iHkoMSTV8jgrcHXifZ2AIRg8Y+BcTNuJB0hhzZ6RA5I2phyDOHxASeYjKlH3
Pk7hmNqlh01awAA1ZPY6AEQ4CWvCVuJllk9RLvLGN0z0mXdmFU7IUw6ureax
FlXu0C8xMqIIS4MfML35A0JkcvOX8etg2oXEOkN3biSUHLGEhZPHTFFoLLmI
Qsn8ihBNdlNkiqK5NakvHO/kqVluu7YhizmGf6S+e48TlF/Jc9kXjKGq+sQh
FtIHgT5QUh0t1noHQpbNRF6vvhCrFETasQMiloDTahRwQiL9yniMQ9E4NcpK
aEwxcvCTlBUFBsfrwEG8gkBbOBZ0GWLETorRIanx2+ucgnsYmnXD4jcRDytO
iFnRkryjYEgyTJgmSCqi86pL6FIEZrT/vIMOBNUkiWbBv5GSAaE2UDZhBmxF
MDeL0AdZGYcPI0NbPR0YZLxGH0BkZY+BjhjXpxApyZkBy61qxMdmucvemHdl
ZKchaYm8FrwVfT4ZZ1UKI4gvvN9CE9HVSt6a7DVfgaYqQ7mWeAtvCxlCxKOF
hxEWEUiwiOJ1rGnSZHqJTuOfj+hX9j4kG0RHP14OFSYrUM9o3BQuU4JTtreh
tHFzMAi2QoGUiSxOLKRh1seaAo2TQUBO3jmoSYmuIeirDg0BTH8gO6GPoW8z
l91pXuF5sxZ4R2RdhEr6HI1YMNYryytxlg+Mt0C8HiQJapigDEwBDxD1gcIs
A6NHbJ1eMUHwVoe84SQ4ziUXfP5kKhmJnjMBxPRWefQULC/AhSZSmZKuh+cl
AqQIgVGKqkaTEpbTPTfp5yM8EehY5S9JkjX7p0C3lFckgaKACfrmDJXACJSd
9M0+u8XhqrVkICnXGTvkN0NgBJM7KGINtY+Gw5JxfeSHcChsrLyI1nq3OrSC
arL0titkdaBdAkRFxhVDQ5D7+wfDyhx/0l1Ytiz3B4qk3DeIyi73kU3F2Tkf
mSC7psdXraguAK0QjjSA0X5sapAUMNmuxUDYju0Hn8fIMvKkzqkOtiFGWgON
fjEoaUTsjaENRGyE+OactgcWYo9yJ3IFyDkTnUUk9AbMkY/QiUuQXhwQhUfx
880dBMFc7dZqc4nbiaA3DMHBDIuA3aOR46SVF8hUF/ChC4wa+1PIW8ZzblXM
fJpaGHFw8BryTAvLMsGrN7C59yXJIHLN6p7i8g3FmDngUO/rXel8ZgKpRTUv
L+9wHat7DjYHhHFwKmLUbZHCE4oYLjyG2Ub+MBugyIbberOdUXaNjW7co22N
CdWLLPtv+N9YdiDu/52IAa+YgikRhJSlJFla4a13ieXAjzun2jm/9IB259tV
t4smOR6E0QTvJO9VJkteeSYJWwQLImCjBAzNL01ECY0V3odjdbAkfrnzXfju
4DykflOwRQioF6gcHhNboslEgpSrMAC9rCJomLiJKgLNrtZNSWyc5NkTGWB2
/HacFFXBGVwcfu6rafBSVM1ggTimuDHgG8EBPeIO0G/YY3CxZFA0KCL4ixMm
CUcoJkAdQn6/gWxMc5Om4ZArAmfIa6SoLFt0xPheG0VZewl4jaoucsXgjPKT
86m0ojmzcVB9HmXoyWEim12vpoeP3Ad/jzr6eounb7wy2R2HtZncH4Fjcvio
VMSbOYRyK+3WETaiAnHNIbfblp1ttiRQy9SYWfsZ/aRcmf2O1x8Z2S95ERvk
ed2nRgntP42B7OqAv4DJwoCDjHIGw2V0Syo4qgZEYksJR4RJwdLuD+DIVf0W
Q1yYx0cSY2VM34iTsWhXpxlKCw0xxa+ZdlDEk0zFjzgtHmMCbznz3HO2Y252
irMiSee5zHMRQjUm6lTu2BceeKLYUEryw4JRKNcZVQRGGtcALXdlvdfUNvlF
cFuwrUeu8bbGGBNFwl0xApAmSln2oERSovGYshXeBlQvS0ToL2Bn/NvVG1nk
o9RbcDPkBgI28eQehBKEMpKeoqoiQpxjpF4PJdsxaqIZe5bUVIggQYxNGk1g
6MpU1EKrYwJvaNw6RzIeIpBZMZYLhcRiODGXIRNQ2Bcx6CbjBHUXZ1XYsUsK
IHAYWSzsmMVjhZ9dJd+oqG6bRYt5W/YtHLOqkRVhhbn4KTsjDTjaEPGGxRsY
PMplDec5pxcHx0O+HEFEzDTy3tjpGxlC5u1hFt3xFUkMy0LlcPdulUgosktJ
obFiasxG6mOst8frabDA0/WkDBJpTmK779fHXdh20nC8FCnize91wtVMWPZ4
iiEcV/WghWy2twZdIRNu4JIci9Ak/tsoOmM4YJLfCD5PJfh8gt6MS0jwjkyE
qfWhCWSjRRZAwhB86RgOyGEOH7vQ2EGmGKdYXcZYTRqt5JQwbw8SlGC3ym0S
q8niGTjGIWmEChWTOB8owxB2eVYYAbvRsymxP5SEYqDyGU3798eeqnxWRSbY
TUzUHWqKhsOTjw0WnKpoSOzZ7GqivGGKvYPcVs3zQMiaI7AMQebYsukIDJ+I
fEz4zYcI3q8cRyDLhMETK+0ykvy4P85QX45SO3i5hiJIOhpQlpjpT7EJbm+g
eHtgRom4T+tmg5BxIN7ZRGPLvx/lGPr8xdXvKbHMrxpjP0ASLbeSnvfp+MyS
xyJwWBA5eRlDX2OiteSC1kNlotBYkwVGZzy2i81xWIUzayHSEBUjZzizf5z2
oQxsTWSSIq6J0Lf4sx9/JsibXmjfu4SkxpP8Vhk7CVppcvMBmbeJwNdPScBl
IQHH4YKpDFzjInYOyiI/NxUqFPDT0GPICB8R6rPP5WK46s0gK1IwrwlTC6XW
ATJOQc4QVUePlfae+TkyTb0dyywqNLeumEStApvFhp80iWddK4z4YIBFwG/O
0Pru9hsiAbgzs3U3WqR6gaqUpLhzGkVjuEI1WlWzotJADCm25MsQmJksWXMx
Zdv8zKLnHPY6IDiy8O6fBtImotZmvYTUkBTy8nDG8juKGBOwq+34EpJVznyx
8mDGrWHk0QnBJKalk+i969q7IqmMi6QYpJWKL3EfZJvJzsAgpM1D38JVWgJS
oRK3aaDKNEyld0kgROyBZt1lETjFbbMFYvw265fvSxdZXMZSalpvmUn2eZjc
GszD6b5MhHxIrrIzSca+6kdVdaNUxMOJGcNhZN1Z15SlfnMa14kGiyVBJF9p
aQmGYn01HlNbUo8n/TGqu5JZ0INAfLhKoiB6g0whgBQoqjtOs1FrEtjDBPti
DMkAqBDyFQBjiKaOXAcbVMSEUyutV4ibOF3zQmg/+3PamWCCCeAmEBlcNz8W
CDYO+2Y83gjKmYUWCPle4FwqQPWzCiZkQZVbMqlkAH4m5cgw3FUEbFtP7ANa
P/bo3CcJCA3MqpWB3ofd6LU9F6QbyjM7v9b0cERKTu2DLPGiYsiQBRNcWbKU
KJyKuFaD0aNLV1HtylBA7zYblJFSqIKupIZtiCn4d3LqcWjpot5TORcY/rCA
K81fZ6JpdSMcrwR44OS2HNKwo15NIIxSQQyBYBQiGr65enqlQRVFjDKgO1zC
iMnMPlMESIjTAJnKIawnON8Fi7gS8WHbW/ZZsJYQel2PkcFcQaO9OHTxJQKq
m439xXqTBy5ERLti6bI+gQAKYWjhAW4alw/gRkxXpYKj9C5+b/5OI775l7BY
8BG+Jfw4juWFatt3cB92EIn+Dd8lgCT45Xqy+QH8ENAkAVNueN0iuDhID/Ro
SUu+i4BtyvUcj1aifBfk23e3N5j5AgN3CL4GGrtJfwl6hQfNvDsDkvEjd7UM
Rtvbmgxn6s4AU9vvEdJDTw8ZxHeU/cQRI8W+iyQz02RQH1yzTkqgUA/oXUjY
z3Ajg8YjlzOICA+vxLzF6UDIf6kEkCgS+ljCKOFBWisCKod7MJVcqacy4dgo
BM8S4sRcKTG7Njuog4jGroPyzrLfoQArPZlTBJQwIdJyx0k/Y+hJ2zVLmWFf
vq206woRNQ4ylD5IKsGnilH2+o4i6rWG2M2KLIQ77gLALtK2XYWVc7VEAl/R
1YVLUYzW/Z6Qnhx9PKLSiNkSxkCrQl3CSndX3aNttipi5saY41HdGdh0UIlH
QgKYkTRQRITWgbKOU4rlUq6I7SxwrXZUg8hZrzj05UJ0773Zr7EGEsZ3cDcN
ajpTpQAViXhJ+yntlJU2xyIqe/3sN7IcHPrghACYTzDXphr7vqhFu2qKpjzR
SdccmZP5mGqPrmFhQRCkBUiuks0VIYWOXAiorktiwn29kZXtjrtqkpEcKit/
7ooBIxdgfKmwA+o0RFySrSryxUjjvD1iYS8D+RHJ91NVSQEhwHVGlW2nLAJX
fZqtwnUT4glyUZTGisdF1moVEBdHhdZp9TUbR+iwGE6UXhxUB0Gd0R6ajKVN
Obz0OFVglmOgkoexIxw3LWHQLtdQ9ZV5dsELlTRZ8FbsOfSYqXhzuMaVdgdr
Kl5Lc7ukitX9HFGDBflSJVFwHJ2aH/iSMWdCMhOZNhejz0RyHN041w0Bl2x3
x/MG67GXJA6KPr3JShPwet+Cpww4aoOVBCEifiKn/7EliEawx/BaDL0Fsnih
+AoP7Pfx3Xy4bykl0TaVYg2mwf4TxCbr7QD4mnMDu4maWXHuTQ2Lar+oVugS
U9ygRDOmjwqgvCfEewczeolr9qFj0rqKqAVvNlH/j1UGrnAAdWXHhq7PGkrw
LAbBRTkNtpepzmQUj02i/VPFDpkGZ5Mweah8+45TCpiUn40rItUOwvFjBc2m
AR8JEy16m93CF2Y0SB4gKxgpuzYClEZXZv6T60dVp5TaZRJ7rlLgSsXHrbFh
lr3GHh8mZWCvycAgvW4ofwPfkUAYSxWYwnMhkUy7kUVFVEkcSsNVzqzurfKX
8DZ3CCgNveU6X2Gl2nTcdogjauwv2eA4wJ4Jko9WL9nrOOQ2J5doNEm3AKLl
ZKbEhmD+U2rEyhBF4ZA6jjWcdW8QEcp9DdBxiKv/5DsyulhNKfZFrHOWgwEd
5M0dCyY4b4UxDwEhLN0tQiNXb5f4fD5Hg5EIzM4Ni8F9TGmoJDjvsa3vKXdN
VHwww5fou4ftsftjVJHnH4bsr/0FMh9Mjyaga0hCICyWBi4cwrMPWrtkaT/r
kUMZF3bskO2jGNor7XKicOZXtCISUKN1Sq4UHIG0nUiDP6RmT+L78KoIZDvt
HxXFyak1AncVHTWS8po2QLLfD8i+Gg19grq/11E9q1ffjxPJD1t0djP6ZN/T
N0KRv+Whfz+y6sfYIQL+T0FqqQfKEJlx3mD7flWv1Dr9GhaF369XhG9kROEL
XMErZcfvI9PG9cSx9HjU1vc9dlTSasRBkQJUE9PePQHgQbkhsouaIE3z+3si
22ZBiJmMZJ9AYxJO57RsM0ZNsedHHdrAnKnKfnigg5Huf2ScTpiQhAiZ7AzE
EtXlt/3d+jkBrLh3y/KkxVcCXqGeYwiVDThNlJVhC0IwEa4SpqB+1bQA460v
3rfvRTbe4JBUOG8ucM3SGmYxgWnKv6b5w0Ou0x4kty4VwXBuMIIxzMXISAMG
pqUzqrZotyWgqOWiGEtYZqN2J+hHsitSkVqVxhbctmtxGqSPBomlFSPRMaM/
z15K+IfmqApc6Gn0Fi+SHkBLMdrOROWkXDjbB+ss/JL5PRaVmjA7y9FT3ar0
HtXW4m0kiFdCP3nwJ+kx1Fuw7V9zspg2SAj+JDFf4wTa1QVX4gZDwuDAZZNN
MQ23l3GZ4HG3qjEJihwnKvzGuO0Lpq4sk9WaqaYKDIlh5ahM2EDRbkR2OYXM
Uv9T6jTAG4Qv2MYPuJ8I7qP926yPxwOZkZxbxKENg0YBquj1GRUl9SLYu7ii
q8tBI2cjjBYtLj+SgN55vcZmdQ5lIm01Ohwc2s9Ag8stjZLWZ1liPd8E6EXk
E0NmpAMddYSRt6XLtqDIUHncDXONjCZGsZbBloJ9JdlkGQyZHpM00yHsNh5l
Qs3HwGFc+rybk9kJZMl7zj4YbbueOcvFd+o3u6cPgFDRbpg3OooJ90Yb//ra
2G8QwNKfL3ERrGHhQyUI0OP6lkl4XaENUyP+SLrljwptmX/cyG4rKb6JG1nA
elQbitfwJ18XB19zarnguNtyMHCoAJvA8zqiJ6OdL4VnYIkQXil1Eq7WeFxm
bDXGDJQaVRAj/mWFoElyZ99IF6kWZZiIfvFZrEsPX3YiUm/a0KJFsTEczNsD
b90RwT/HY0bgJauOngk0tcUasOa4X1Dd7usXr6n1BkrKamF9P7EXtwLYufgp
k59m1EC2XlKBHUbdxCsn14BapxAr50knERs4En0mYSZRXISikTis7wQAj9qT
c8EqkgrmZg2f0pOl3bUkLBQI70YILxM0QcDBJo2IBGAg0Q7qNOGCFILsp4bh
jDV1p3tQgDKcQLCr31bhAALJQTuF6W5kvwWlqRKICrtJHLK7k9HKrCsLYy+y
y4qMBLdU3yJTgaCUDJOVkZH7QjX3nkmj3vdaQNxxp1SSMLh4iSMqDYGyUSXb
FPaPk9tpSE/CnbwF0h5SxMS1iAnyGbPs9SQ4V3otxSX/JPIfBEtnXBE9pcHY
9vLQ6wSzbdOXkczH5u6C8vE7cPI2GMoTcS/nUzTcvISsMbvqnO0ff50az/r9
tBtA4Z8JbzOq0Tb3gJeTnfgzCQU2EMXgiwgvRKUj8lMXyYbtgxDTaGs9akd2
L4JFZ5N7CUQ57iFJLwJ34NhVaiOHWzPnY7C5EnWJnxgYGZUUHSy7TRV4NHOg
ECLemxgPmba7yLKb6TKQQpKJvpbxoQwaJ6/wYItuNeMuBKZruK8i7OzdqDWF
9WTneN7iCNQHZiQeWbMnNWTqB9i1mXEzLC6t045Aruo/+D6WXc2cMWB5UW1Y
mYBFp5Dp72m5EdoTS1vkGwW49wFeeq5DCGlbMuuKzNm6Y4y7ANxD1P4eS4LV
Ak2E4OKUaekzQUK9WLEshxgWVdJKoeCQHSociT+I3fE2jqyLHPahPUrMd5WC
d9P0PEXOpHfxg8XurvAJVoCcZQb0PFBoYEG65k9SRQ0qQjrScSdp//pzRQp2
pMH0boW2f2KRu+wIWP71nbaUxlbV91F9DTXp0023Zprckkfs+lAo6stEOWkC
TLrOq5qIaYmYVp30h5ZNGEllE2UTRTrfQ4UFTdMlIqMoq50Wo71Pm9k1MamT
NK84DjGFUFK0hPG248GydwgEFfuKbMCxJOMOogX8Yux43nPjdkFFGBLEtdVT
zFYmStt36SSrC9aaN8KK+yPnglpqTlTT2fFdP0mKOskpCmtqeSwp0Y8lzGx8
HZe2jWP2bjVKw51L9//JczQc2j9L4ii9twsp3ZgmmKaOmApo5ZuBA3OjTJDJ
3RE4nQ5DS5DM9JZsV2+2w32F/2Z8BzXZXUj7YcwlhZnz9nPCaGqtWeNw/UFB
Jw+RhC1U2mmSP8weOxNPsEtCsq4fnGCJg8SLxaL6WzmHE/jcI4oASnpigT1B
WPJNlFrFEioTy5ttaxeNj0VjaJOkVFx6QZry3zm5Oj5eb9TbefKcsik+NVyn
YOmklx5nTMhvxrU+9kFSFH4f79pBcP7LaoWYcypM20ZnIYl1weeeoY/YEuZ7
sokw3M0sOxMuy6StsDv2Kuq47PtmkrqsLWTKpSaJHOFO1trhb3CNyUbGCoM9
+wA8931ohXpo4/2xGtJ1rxyk7DFyes2gJcn+hdhm+ReCDsackxuF2m4RuPlB
ElExXZgV5WU986Qrb5iw7nLNWl+FYPfV7zPDarKE04ExChgbUzarGYFCJEi8
a6l1+sjCpMhxkfHZD2SNzqzkjzG90jI/4T9OXBsJqhS3gXhki7TlIemENVgT
paojtGKP7WKwl44XthrncAZNYOBx9Vb2twnnc32yswmIGkkLUSWsgoe0/UZ6
iMHInma6NXdIu5SPHKsYsJM2VXEhx6Bv07i36WarCKRH/tbX2WmxA3UBl7IL
dxP1m6YGN0/muU8jTxRRjbz8MyVUeT6uhND5TZdXxQ02QquipzomNUHU+net
ds6WnKdNHSZ8ezpHyZf+vbcOfZ59fH6dWoyvqa/brqcj8D4eMs8+SWeo/SN9
//D3Nv6ZZ5+mz2EXqvfHD5xBtM6zX6Y3c1ccrAlKmgdZOijqIliTyEbam2e/
mntSf0+DsMKei/pmw8WSobNIRkcwH3YlHz/G6KMzSc5xUNz62obucFG9oytK
+GzuO+ZEbdOGUFYzzz6fg5sQxef4NsEL+axA4XYgReZxXyTPJ159xDyfNOXA
7rTiHOORAQdyhYMro84PA8p05wPBY3N4jfLwpZnEkBydTNTjkAEQRbs8Wh5p
lopgSlAmmyMeWE3lMEjAWOpcaTySldZ3SlTPhZgc5hmbGtPoXHca7tLMr5NU
pdHlPdBMAIQTcg/Huyy1ItwIS0lI+gqcy7IGAPFd1UmeV0g0ChSmhVzn0VZ6
v4sIUglP6DTvQou2lQw0GCj0KKEy+42OR+dTV1Z8/EL8RppbGtm01j1R7BF7
9Fjk8vwZIuFYI8WoL6saZ56nYKgeHffOVYpHpeAcmSQpTryOr884CfdhrYXC
lI29qeBPEG1ZWKNwoiYG4bS4C1+obZgSVZmgFc5EQhcJEkEK8cXdRtLCblT4
6/64l8pQt0aGQXcBaDsMfHfy6ZLROZUxceBPY+q1olR8LK1zgDYxGYZ1rnte
akpVcasZEOOhjz/exRuAEFY+I61qRCLLUdNWLEFS+h72pL3Xe422uOGBlVMS
6XB7qDO4K3foQsRXyZTGIK30mFJppFKNjj/3dSCjQgeGT9a9KyvRJpPhgVI2
lI4lSRz4mYd7RwPXp0SJabt5AnWnN/i89pTVgm6frdk0OgjDyRxfxEh2lLEz
In3w7mjFk7B+Kpn+tr4wyuR8XjVpn7iiRjkjRNDIubY4I01dW676MpnSN4ap
1+FgiKTMA55+oFAi+mqv6eCXTHVb3F/v2ODhoAbwdx1O7WQqcjC5GRXJBfcA
YDBbUou+mkZ2R/elzeT8prxktxQx8L570YTXwUouHIEmldwGtxtzlm+/eCk9
pTaNtIJd190+IkcHrJNY/gicxBg/W/UAP9F2T3IjxnvZzAmYEgPyUBsXJk4q
VPV2lDQ67xTImNSJkBFGqGt/U6yNow5qQngUfzxrn4H47KmFAAFb3SZIbxRJ
YCpUpR91aqQTGy1KoO5gqMz1CRPyOKzg789HKlNxPtYO9pW1pvY+JAQWxY76
I2osju1wCtcdgTKU/VtyMJ/5pisCNqZAuP9e60KoKUvoP4mmXFin6A6Y5HTv
aOvRFewNbjkBz7JmBemj0uYX4+KAcUuZBajLZhP10HpgvGI28zkcfFh5isT7
W7vK6M5KI6IpYDqjFuNU1aupBXEAdDdoDUH4fj5U1w1mEQHZQn1EXB7hqiPM
u48rI3wfD8bjcL5QxxG3Lg5VcTT0gg9AsrPVBKlpx6bBCsOwqZUeY4vuqwVc
myRMJ07ikGoM8zwREuLwXFoabd1Z1YDUVkEeSBuj1C+1wj3qm0Jn4cXerbZK
8Wj/CaycHnbIWsGb0NR3Z4IhQsMSbpIFc41sV2v67H3Nh0Bv2bTBkjTGnOhi
UvLJ2Jro09BgFkOXc2W8n+VX0UkYV/HRkH5tSI5su6oKuWug3cNR6syqXb2p
VWJhTtukB3Evt093S6eaSrttsRvZrahHljsThtrHnAintQyNv0Ynu/Idwzbt
lxNMbhYzvY06ipZS2Wyp3mfUT2MhJhqVhiGBYSPq3YlONw7X83gUbMre61Qp
ET6EUy1WA4tHjEe9yCIQ3BW9T+vYlnyOgpdDGAdqXK4F+F2RrFHQU22S17FK
9FucakvN1VKBN3d5oB3ieKQHFjNhR53ype9f0HfqMYV4+yWGENvF4A9bpnvg
Sgtqc43WmRLej+daqJl0INNOeZ4W7bD0mdX9royFMd5DEOryDuxJKp/A8B9x
fNAOvlxKdMMlRvf4slE0/BKDdyI7znF0gnaNpUIi6DB+J48bVS2g0OI1NPsr
PqX1s7k22544TDlUKV5iHA3B0nU/jHvv8ZHmuAfMl2ziEV8+eRzuSzv9SSNT
eDyNiPFZZc/p/TCa0O0SH+t6aaLNTZCByPwveyXtLDSPAp4JDxQKfluBn/AB
rQgzE219awdNyLmvrkuC4CO8RC2ikWn/vGL6oCG4n8SexRthpPodM+lV2BY+
uasfN5yc7PcHdAFeLGLYHT1SDHhfnqRidZ698ifa6hkonF3S5+jRz2VUqw7i
v5DaYI5EZOWgveEjC2C6xNcjpUb9M23zR3W1bqN9G1OHLs5Y/WDbYmtu9AGr
FdcNh74smS9ujougMficnEkWjbzUukl7WSa73lfcHy//d9pw7bblxsmUgNgV
LZIdwFwu0m4BIytAo51ZMJqslYHD1pok5rtUSrjccSJ+klJr7XE+Mjr8YYZx
9xbuehkz+d9RikBlFmUWTOv+LcNkiIyjkgKr/2jR0S+pTY4T3jy/Ccljx8e6
jtHY3nJNluowGl2gxyyYAdicYHdyfqQEmMxuzpVMbCqaS+JzlushismHcd7K
O2LCsTcHXG6wQca8ICgC6UQsqdipus60w22K3eWXRrFrpmHg81a6n3dRBJuF
tHvSVNOIqc6XSQlV3HQiocjeDEsM1GpvIep6UjYG9GWtSzpfT2yx4Ls0KNM2
IjFuuuq0NiINvL+JljpEeyX5+IDdCvot2aPsp8US6KgvFz4gB9AOvAzuKn0m
D+BVV82+g0HFiekv4jO7SKpgCRo3y6UmE3105C1hRxVu0jbuhCXX5bUg/Hra
IVIoz8XgH2royIg2zUJcjsk0SWLyhlkoa9wFZtyB0u93VKCjJappoZ+30X5y
tepEhHiqo8rZJs2j3P3DrSz1yO64i8F0lbyUFzoAr1bJjxrGhCxNSIwnTTfG
lcrTpQDjtfeoAYs1q/iRhFTIQhUS7y6mD7zgPjosJ7mekg+jc5WWVl8JnPLl
VNcdwve8fvYbEhg7qogMPY448uD7fmm3Trk0Pp1kfDYJ9gIlHxPfzQEh/2Z5
YxbxT9r0M8SRqE2ldgSWBBx7T3pGmjJ4ekizvXTOAcZooDX3SaxmGFjfHMuO
nGKaVD1oRFyKzzCrsCdZyF5ElsKCpg7d4cAwPDQ5A8aOhZdYWhZiaQ4WSDLO
qk4LLUa15GTUBA4nR7hy657pOG3Zck+0m6RlH9kO5GJgRZpVrMYpgC5/Rqc4
SHlE+JoPd7DCALY23fkSdu68lgJIJxVRdRTzVHORnlWEapuVrbo7CzZwKxfD
StqryNRBKgLCgoiPB179wKvkzySAcZzGMfLO2VV3tZyio3ldA+ZoNwldj6QE
0haEHHYr51AheGYxZCHcVKzTeKE1Ee+tBWapQyGUucSM5PEEpbAOT3IWjBU/
pE3EsUUQh86sQNZwaBgL0Z95y5Pjk/KuvY9SY+VdW4OcMgxH6uyHE1isNGCq
eidPEeK+X2fHh2JLnch0nXQ2rhQZ229k1YjVbq4bG4OCbmdyCGO5oUkLNaRr
kXAHbcDIpD1DChKzLfJAE3oAshF54bryMflT5YOVqvIjM0UXhnfPBAgWYAyu
RoDKQFcth+raVejuLsmFyX5fSd1UFJ49U1s1geUwoBoiv86WCGTjEoEUSC7l
AtqFe7psadTI0NjzthKF4ssWzaqFgbeY8ltSNymmO/SAMldRPu6RSMZyeNq2
2h0IxEkSs/ABAoklWtvLCEhaMqqbe6fAUL9u75EdOf/B8dOkno9jxSZbrJT8
3JEmQuNXGlZFrn3lTtsb15Mm+c7ifCbThY6yIGM1AF26V2oTZ7Q00n4tGBNi
5EhW76k31YBt8OixApjhgrbe9avDhHzatVZCNtK1OYiiEEOLkypJ21GfmliB
z3UqokYm+cPhNHdu92Q8bcLLR/+lanodJnE7OUgLXSXuLesCx9ZVDKum0kh5
3U/XSo2iHu+re9LaHzInOYqwL7u3cT8Fc36C4ABadWdiwvK+pIDMK21kzKaN
1PRMNqRxR2Byyy4dOUf13ZkeaHFoIbyYkWSuEdDkjEHX82HheKipdq/WN4Tu
nQRwiZofB79xIP+DEhHcchsP9GUremj1GNOcE3CYLg340aQLnBSH4DXYCBnP
qRM7EoOST6+oGzL1iL4JVTRhIT9kBknz6RDG5PWhMjAD38ewV4OZyMJSKJFG
42p6gpnMpxz6oyPypM03I/oRMsDdgrtekaoEc8QszatrbP/8/pn5ztFhYyb8
TqIgPISLW0hP4sclBgUv/kfgOo1PhCaebNNri3I605cEP9yg5wZ/yIilWXe0
BQiKHjm+dI57GBt7TXFLac2rm/iVKIhkueORoys5ldrniItsH3c3Shrofjnq
18v1QdYXEIUn7y/sKFjzmImVLD03RBSxHbpQJ2cm2JO0uTbBhxgUGVrYxidV
jOBMr03PYSzyDHo9afjL6JMzxf0f2h7sfCFLBNg7A8v732wu9nDjqHPgOodo
0siMRDbOoaAnduO5NnzIbieBgBP7IJGZSQjguc2IO4IETJxsDSMVZyXjWC/H
jRLORH7ciB0O+/y+TK/lRC+IqKeeIRIi20JaPiSR3Mg3uda4YBx1D+HCidX9
O5rdpUQ2osLzC/NhccF+WiRHYfOJbryEdd+cjcS7JZwM6VDf4BEBkEB83nXw
8DflD2Cx7k+Io0IEBAgq/L5Ha5Pi36OyR8KMhErxUWhGI2Pe1tTOhEnveszT
IBvLYRTX/PGUvzO/8p3IaVicLzTydO78CUFHv4Pl3KHyMFkLXwnGVRU8WVfS
mgdv5Z49cN2iXLmgt91niHYtJMCbYhfwXfDMg7AND0A0rMuF4v3BonwnhmwA
ovsbJQ5A9wiqnP7gM8I4dTIxUrxcg67v8nswnEcHAVO8179KDXi6mVj7XQrA
tivyqfb6vBEYtIMLQBfP2rV6DOF8DnHPOcxAN5Dv8i5PMTTvQoCEUzYS1FCD
nXZBWeqdhtHdEOVNR9d6GM/PsObLROsww74nLxezwBzyId+KzhtLuiNgU3lY
kBrT0oujFDHjo3btxsI6ctCp+mZRw/X4qNNVtThuNtjvEVnyNVg6VJhD8dGV
8lhac80MxGYFmKl07jnw2arUk0hDq6stQatLGOCppyYp2V//+g+3X15//Omn
T3/8Ef2DEis+0Us2qkULz58yipYeVkLvD2T2s+ao3Em71r/wLhyYzcoC/QUt
/usk6L7jhY0PG5cCrOhQPh0AWutxdumB47hdpcy4To7szclKuXJ8mLZ14hy3
hxLXmBaq8SfuEpj9FK3SdCMoB4aiEgPt307ddiiGoyde/M1tjcJyPXRirYM5
xfVKArS3ZlZ5PtnHKClqwDwsyC3MO1JARc5IZFLCL7RjJQU8WI/zoTocpXOI
595CgQECNs/GIdTziNH0OMeSUjhSSc+ZbVykONuGWRa4f9FhWj68iwSB7nWa
9BQkT9u75FT+vn70fiZpSEc6SzFgLNw8Croo9jVnISrnkYezWVVQOoQWGKkC
oSmTSjSc2jdnzmXlJv6SnNCDWQMIR0JfIHGH8m1Fwg19xqhPwdnsDQf2Fdjj
0nJRwDYfH/I6RtLJsOy4V2BZIqDENONNZNqirp3SRJ9AMSFD4RuThizciAJh
aCLvsZ/FW6fPKbabnMd8LuiEOV48ZjiBFk4Ht6jOkKQaCGR4J3njV/SnFtOI
1DPZ6KtGQ+p1Ot2aK/bFvnPdpR9K+Zo9GLK+csIxybKoMlLJOywX18jxsqXl
jdiLCk2XmQicMHDeTCsl5ZJ8XmtsQpniieE3sKLUl1fInBrqOHdrOcPaIM06
G86nblZxBjvOX8OTwvJp0Z2iHXQWcbrdnCTzG9wphs9HcAEPauJVOF+3kJzo
kB7bYItDzRaxhTjKFB+rQfC+7/UfSdoEwRBhiDDIJ+anKChu/zpqia32Gk4F
M1KU/2qGkXCUXicHRIcFbJic0etzcHRq94YyGdbN39CXvoH2mZbZdIoUl4Ln
FjsktNxdRW1JNUeIjQtwRGCbgufEWxE+i3pFUsFFoIsJOL6SFjDW0YWkOwoY
Q2k74SJjxdvBkhEuC2+xCDV3Botb3ErKKQ9dclCOfV1vgPZn2K2kI5sxoMN7
j6SoGdWJfNruVjoRxmsw+xjflzs1aQh3WDUUrVgrF43FFKfAkVBPkYGCrZO6
erOhI3AxXYCyMi7XIx2DE9vFqlrOvI2sp/i8MH+Gr8ZLz2RmVTkNFaN7e0xX
wvKj2Q/TIKeEsiN1c8DyAlDTJMX5UortAWlhQk1s+1fY0mU5Nu392WgiwO8q
Tm96NCkehViYULLTjD1ONSsR3l2EwG50IJedH+hDjIVUgPjGxZllImOKtGP1
MGYJ09Xj5GzwZGqR9yT5fzoEVDrZuIiIeE/HRvP2p9y8KDtdZtwBp+civXG3
Ojq73hysKPekxyC7dSWsHgpBfCW8pecQRzNMKHhz50QE6ImPXOAp4+LiKFYE
apdbwKVr4RWI180wZNxwnYQQyYEpYibeIsoIdCIlzE1nbZnPSXtXs5zLONl2
Vj2488Nw3vCgt4JNx7mTtvI73ud2dHHJMf5prWFxeT723HcHHekIkZ4mRNwx
OcIGRCyhOI7Lkfwsw067ExkZPHlz9e3Ve1xkrNLB1BNfK0YCAcomAv18XBOL
2XBYUI8Htd8wReIHSt3YeWjVbjfL+IAouKq3tF5dWeslaZ1ddqCS0KyVkxrT
tIJiJgY6KgAfSGNeRvPjeccAMQQmHHXmvRxEVcvRSui1UW8rbfrg26lQRvL2
y+s5ZxHkpK4EfwbSG1cJIXHU5GBVsVHDXQ5C1QYK2GKyT7lgvZ5ZT73+0syp
GYb98GjSqO/uJZ0Nc9GWjUsfedwybEAHZvRyV/ZJwyNmDU4iioyXk3/ZJHpN
2U0eEh7A+hHQ+OW0Q33pmq9IH4DpDENSspsCVK0fwvnzK6zMllAI49Y3l04m
ucpn04aXD3mJl2qmjpG9ctKFIggjF0sPltN+laCFZ4oH6VprdqslWxjc/Zft
MBz6i48+2gBpHBdzME8+oopZDE8N/8pdrEOFK5Zl4DM8G4DtghVl0ig0oUUK
lREiDhut8jFz0tTeYeSovxT1qFhxDweU6yvpxyYnI+Mru9qejHKZu/drZ5wo
1r2uqhWq+0s5bdDVurKngYoANQ931ksYVFSddVx0CwAuWnvkk4M3IB/2JPzL
ZnNELECGoh3bpJGpAVMQ4dO1aPpipxurkCGIDdZiqypXhYFZY3L2pZW/VIco
FjvFal6HeeTXGBcH/T1QC81UKvjefcF9wDVE92GDMY70/OmlPjBO0qTYYmov
gpeSY0W9RRzrx+3UnFdrGIo+Ld3rz6etqLeigtPlrIX3B83QN9LWIJfumJi0
9xKKePUQpSO7pLwK2iznOmO4ZOxYiw9tKSbXDC2KfzzctZPzGz4QIcEGCzHE
TYcn2wznE22Gk2wUHzcwebRAWjSVNMHLplrQfUCJZpwCVlN+IhHnYpHU/ERF
dRL8iwsaJEIxWeqnEG6NWk1E3TDobXE3SuC6YzIlIyFFaxPHal6GptRnarOI
dvGdzMyC+KTM+OhQGDM3tK+jbQ4Tgz1psjCB77ZFw5dxiiU49O54pgktM7rf
ArahrFxaJ1nQt09DUGWnJ21SOTWm+1AuUg5T0oSp5v35jToEd9UvWI2FrOOv
X7/8FqzYcsMwjd3uSIzOfeniBxkGk5CTeGbLqiT5fY/dDgQjn2X/Df/L/9S3
TfZX2PxHSvTP6tWji/yRWDQXV19diGqdkSexw0c9KvwdeBof3hKBmfiS+Hg+
vOhj/sGonoCqdDfRDf+aHLWHP/fb8umnv7x4/OTpx598Op/P+UJ//J67qlws
gcDsKnckn7voV599DtfZRdExfeGy+D3wPS4WfIMKDa/SzXwTLw5cEXzcN8BD
cO1/PdIVxLUocv9x/pftrGoe/UHvJeaz++jInpn2IJ75x+gdarrLWVl8Hxk4
j/4AV/woOyYSOdnk2+dfXdhvs8dPZH9BWNJRI2HWg2y1zPoZLMmNNuajS58+
fvpLXQBvn70gRRK98+XLNxf4Cnjfz95Wp9kTvU+265raC9m7fwqJRnedJ1P/
1hGp0o8fSpB08QcRpX/ng4RJF55lF7rgx0AD7fq36LDhFfgA3PnsR2J1L3k4
8jo+xPcni6CHT7nl41HjqqRYSOV/n5B6/ZsLDGXXVEOOVt20gCKI3znB9GT+
eP6Yf9QpBLo/djVeow6DkNu87TYf0UP7j+L3z+nbOQ5cqZp8dKNBzr4iZ+jD
ZnTLP/tb7qZGR9SI+sxRzJOPP/3V54tAMY/MRnhF4TO8lP0zGF+5emQCwezk
avUFXvVfdPv7GO7F9YUcfQVkMdsvD+eZLUB0hVTh33+YoMhx3fJPV4dnNbun
ueyDac7wzckqPLt5fWG/mdBkO/uKdgeF4ewx/vPm8WcgKS4eP/5PvoqCYQnb
P/3kl5+VQR9Jqu2DN+X/gxT8YHH14RLwQTuAn8UwsykdGitNr7FAouGzSL2Q
VLz45LMnTx0JshD4X1NuKW0kCu59cvpqiR7LrlpttIvpG2sUQZG/5q20eavB
IsfOzQxrPmrKtKEAiODB5Xw41w3CmkYV5g2u4vgXnyxn8UAHLI8OmPsfSqTd
5iDXAAA=

-->

</rfc>
