<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-zhao-opsawg-agent-gateway-policy-01" category="std" consensus="true" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="Agent Gateway Policy">Agent Gateway Policy Control Model</title>
    <seriesInfo name="Internet-Draft" value="draft-zhao-opsawg-agent-gateway-policy-01"/>
    <author initials="J." surname="Zhao" fullname="Jing Zhao" role="editor">
      <organization>China Unicom</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>zhaoj501@chinaunicom.cn</email>
      </address>
    </author>
    <author initials="R." surname="Pang" fullname="Ran Pang">
      <organization>China Unicom</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>pangran@chinaunicom.cn</email>
      </address>
    </author>
    <author initials="S." surname="Zhang" fullname="Shuai Zhang">
      <organization>China Unicom</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>zhangs366@chinaunicom.cn</email>
      </address>
    </author>
    <date year="2026" month="July" day="06"/>
    <area>Operations and Management Area</area>
    <workgroup>OPSAWG</workgroup>
    <abstract>
      <?line 54?>

<t>This document defines an operational policy control model for operator-managed Agent Gateways.  The model describes how an operator can control and observe interactions that are admitted, mediated, routed, proxied, or otherwise handled by an Agent Gateway.</t>
      <t>The model does not govern an agent's internal behavior, reasoning, planning, prompts, memory, tools, runtime, or lifecycle.  Instead, it uses agent-related identifiers, groups, tenants, task classes, and service levels as gateway-recognized policy matching attributes.  Those attributes allow an operator-managed Agent Gateway to identify the interactions to which a policy applies.</t>
      <t>The model defines four core policy classes: Interaction Access Control, QoS and Flow Control, Invocation and Token Control, and Path Selection.  It further defines three supporting management capabilities: Subject and Attachment Binding, Applied Policy State and Telemetry, and Policy Lifecycle and Failure Handling.</t>
    </abstract>
  </front>
  <middle>
    <?line 63?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>AI agents increasingly interact with other agents, tools, models, services, and enterprise resources.  In many deployments, these interactions are admitted, mediated, routed, observed, or rejected by an Agent Gateway.</t>
      <t>An Agent Gateway may be operated by a network operator, service provider, cloud provider, or enterprise administrator.  The operator can configure the gateway, observe its state, integrate it with security and operations systems, and connect it to network enforcement mechanisms.  The operator will commonly not control the internal implementation or lifecycle of each agent using the gateway.</t>
      <t>This distinction defines the purpose of this document:
* The operator manages the Agent Gateway and the gateway's treatment of interactions.
* The operator does not manage or govern the internal behavior of the agents using the gateway.
* Agent-related information is used to match policy to an interaction visible to the gateway; it is not used to establish a management relationship with an agent.</t>
      <t>For example, an operator may need to prevent an external interaction from reaching a critical internal agent, limit a trial service to a defined number of model invocations, apply differentiated treatment to premium traffic, or steer a latency-sensitive interaction to an assured path.  These are operational controls on the managed gateway and its associated enforcement mechanisms.  They are not controls on how an agent reasons, plans, selects a tool, or produces a response.</t>
      <t>The word "model" in this document refers to an <em>operational policy control model</em>.  The model describes policy intent, the information needed to match that intent to gateway-mediated interactions, the available enforcement scopes, and the operational state that an operator needs to observe.  A future YANG data model may represent these concepts, but this document is not limited to YANG or to any one implementation technology.</t>
    </section>
    <section anchor="requirements-language">
      <name>Requirements Language</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="RFC8174">RFC2119</xref> when, and only when, they appear in all capitals, as
shown here.</t>
    </section>
    <section anchor="operational-scenarios">
      <name>Operational Scenarios</name>
      <t>This section illustrates the operational problem addressed by the framework.  The examples are not protocol specifications.</t>
      <ul spacing="normal">
        <li>
          <t>Protection of Critical Internal Agents: An enterprise may operate internal agents that can access sensitive systems, business processes, or data.  The enterprise may allow interactions from approved internal agents while preventing interactions from external, untrusted, or trial agents.</t>
        </li>
        <li>
          <t>Differentiated Network Treatment: A provider may offer a premium service level for latency-sensitive agent interactions.  The provider may want traffic associated with that service level to receive a defined QoS treatment or to use an assured private path.</t>
        </li>
        <li>
          <t>Differentiated Network Treatment: A provider may offer a premium service level for latency-sensitive agent interactions.  The provider may want traffic associated with that service level to receive a defined QoS treatment or to use an assured private path.</t>
        </li>
        <li>
          <t>Tenant Separation and Accounting: A multi-tenant Agent Gateway may serve independent enterprises or business units.  The operator may need separate access permissions, resource limits, counters, and audit records for each tenant.</t>
        </li>
      </ul>
    </section>
    <section anchor="problem-statement">
      <name>Problem Statement</name>
      <t>Existing network management mechanisms are effective at configuring packet, flow, interface, topology, or service policies. Agent-based systems introduce policy expressions that are closer to the agent, tenant, service-level, task, or invocation abstraction. An operator may want to configure policies such as "Agent Group A can access Agent Group B", "Agent A is limited to 10 Mbit/s", or "high-priority agents use a private path". These policies are meaningful to operators, but they are not directly executable by most network devices.</t>
      <t>The problem is not that existing network policy mechanisms are missing. The problem is that Agent Gateway policy control needs a standard way to represent:</t>
      <ul spacing="normal">
        <li>
          <t>the agent-related subject to which a policy applies;</t>
        </li>
        <li>
          <t>the gateway attachment state that relates the subject to executable selectors;</t>
        </li>
        <li>
          <t>the policy class and requested enforcement scope;</t>
        </li>
        <li>
          <t>whether enforcement is performed at the gateway, in the network, or both;</t>
        </li>
        <li>
          <t>which existing policy object is referenced, when applicable;</t>
        </li>
        <li>
          <t>whether the policy has actually become active; and</t>
        </li>
        <li>
          <t>what operational counters or failures are associated with the policy.</t>
        </li>
      </ul>
      <t>The following issues motivate this document.</t>
      <section anchor="operators-control-the-gateway-not-the-agent-runtime">
        <name>Operators Control the Gateway, Not the Agent Runtime</name>
        <t>An operator can operate an Agent Gateway under its administrative control. The operator can configure the gateway, observe gateway state, and integrate the gateway with network controllers, OSS, BSS, telemetry, and security systems.</t>
        <t>The operator normally does not control the internal implementation of each agent. Therefore, a standard policy model that attempts to govern the internal agent runtime, reasoning process, prompt construction, or planning logic is less likely to be deployable in operator-managed environments.</t>
        <t>This document therefore scopes policy control to the Agent Gateway and its associated enforcement mechanisms.</t>
      </section>
      <section anchor="agent-identity-and-network-selectors-differ">
        <name>Agent Identity and Network Selectors Differ</name>
        <t>An operator may express policy using an agent identifier, agent group, tenant, or service level. A network enforcement point typically enforces policy using selectors such as source address, destination address, transport port, interface, tunnel, VPN instance, network slice, routing instance, DSCP, or flow label.</t>
        <t>A direct one-to-one mapping between an agent and an IP address or port is often invalid. An agent may move, reconnect, scale out, share an address with other agents, or be represented by a proxy, service mesh, sidecar, or gateway.</t>
        <t>An implementation MUST NOT assume that an agent is permanently equivalent to an IP address, transport port, tunnel, VPN instance, network slice, or gateway session.</t>
      </section>
      <section anchor="agent-level-policies-need-gateway-bindings">
        <name>Agent-Level Policies Need Gateway Bindings</name>
        <t>A policy such as "limit Agent A to 10 Mbit/s" can only be enforced if the policy control component can determine the current gateway attachment or network selectors associated with Agent A. The mapping can be configured, learned during authentication, derived from session establishment, provided by a registry, supplied by a controller, or observed locally by the gateway.</t>
        <t>A policy model therefore needs to represent binding creation, validation, refresh, expiration, withdrawal, and verification state.</t>
      </section>
      <section anchor="gateway-local-and-network-enforcement-are-different">
        <name>Gateway-Local and Network Enforcement Are Different</name>
        <t>Some policies require gateway-local enforcement because the required context is visible only at the Agent Gateway. Examples include authenticated agent sessions, agent-to-agent invocation context, request-rate limits, model-token usage, concurrent invocations, and application-layer allow/deny decisions.</t>
        <t>Other policies can be applied through network mechanisms when suitable selectors are available. Examples include ACLs, bandwidth limits, QoS marking, traffic treatment, VPN steering, slice selection, and routing policy.</t>
        <t>The model MUST distinguish gateway-local enforcement from network enforcement.</t>
      </section>
      <section anchor="configuration-alone-is-insufficient">
        <name>Configuration Alone Is Insufficient</name>
        <t>Operators need to know not only what policy was configured, but whether the policy has actually been applied. Applied policy state is needed to determine:</t>
        <ul spacing="normal">
          <li>
            <t>which policy assignments apply to a subject;</t>
          </li>
          <li>
            <t>which bindings were used;</t>
          </li>
          <li>
            <t>which enforcement scope was selected;</t>
          </li>
          <li>
            <t>which enforcement points were used;</t>
          </li>
          <li>
            <t>whether the policy is pending, active, partially active, stale, failed, or withdrawn;</t>
          </li>
          <li>
            <t>why enforcement failed; and</t>
          </li>
          <li>
            <t>what counters are associated with the applied policy.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="agent-gateway-policy-control-framework">
      <name>Agent Gateway Policy Control Framework</name>
      <t>The Agent Gateway policy control model is organized around four core policy classes and three supporting management models.</t>
      <t>The four core policy classes define the types of gateway-mediated interaction policies that can be configured and enforced at an operator-managed Agent Gateway:</t>
      <ul spacing="normal">
        <li>
          <t>Interaction Access Control;</t>
        </li>
        <li>
          <t>QoS and Flow Control;</t>
        </li>
        <li>
          <t>Invocation and Token Control; and</t>
        </li>
        <li>
          <t>Path Selection.</t>
        </li>
      </ul>
      <t>The three supporting management models define how these policies are associated with gateway-recognized matching attributes, how they are applied to gateway-local or network enforcement mechanisms, and how the resulting enforcement state is observed:</t>
      <ul spacing="normal">
        <li>
          <t>Subject and Attachment Binding;</t>
        </li>
        <li>
          <t>Applied Policy State and Telemetry; and</t>
        </li>
        <li>
          <t>Policy Lifecycle and Failure Handling.</t>
        </li>
      </ul>
      <t>The four core policy classes describe what policy functions are provided.  The three supporting management models describe how those policies are made operable, including subject resolution, binding validation, enforcement selection, applied state, counters, failure reporting, and lifecycle updates.</t>
      <t>An implementation is not required to support all four core policy classes.  For every supported core policy class, the implementation MUST expose the corresponding gateway-recognized subject association, effective enforcement scope, applied policy state, and lifecycle status.</t>
      <t>An implementation that supports network enforcement MUST expose the validated attachment binding or other evidence used to derive the network selectors.  An implementation that supports only gateway-local enforcement is not required to create network selectors.</t>
    </section>
    <section anchor="reference-model">
      <name>Reference Model</name>
      <t>The reference model is shown below.</t>
      <artwork><![CDATA[
+----------------------+       +----------------------------------+
| Operator / OSS /     | ----> | Operator-Managed Agent Gateway   |
| Controller           |       |                                  |
+----------------------+       |  Policy Control Component        |
                               |  Gateway-Local Enforcement       |
                               |  - Interaction access control    |
                               |  - Session admission             |
                               |  - Invocation and token control  |
                               |  - Audit and counters            |
                               +----------------------------------+
                                  ^                       |
                                  |                       v
                    gateway-mediated interactions   associated network
                                  |                 enforcement
+----------------------+                           +----------------------+
| Agents / Tools /     |                           | ACL / QoS / TE /      |
| Models / Services    |                           | VPN / Slice /         |
+----------------------+                           | Traffic Steering      |
                                                   +----------------------+
]]></artwork>
      <t>The policy control component controls the Agent Gateway's handling of gateway-mediated interactions.  It MAY be implemented inside the Agent Gateway, in a controller associated with the gateway, or as a combination of both.  This document does not require a specific implementation placement.</t>
      <t>The Agent Gateway or policy control component MAY interact with identity providers, authorization systems, agent registries, DNS or service discovery systems, telemetry collectors, audit systems, network controllers, OSS, and BSS systems.  Such systems may provide input to the policy process, but this document does not define their protocols.</t>
      <t>The reference model assumes that the operator manages the Agent Gateway or the policy control component.  It does not assume that the operator controls the internal runtime behavior of each agent.</t>
    </section>
    <section anchor="core-policy-classes">
      <name>Core Policy Classes</name>
      <t>This section defines the four core policy classes.</t>
      <section anchor="interaction-access-control">
        <name>Interaction Access Control</name>
        <t>Interaction Access Control determines whether an interaction mediated by an Agent Gateway is permitted, denied, or rejected.</t>
        <t>An access-control policy MAY be expressed between a source subject and a destination subject.  The subjects are gateway-recognized policy matching attributes and MAY identify an individual agent, an agent group, a tenant, a task class, a service level, or an administrative domain.</t>
        <t>A destination subject MAY represent another agent, an agent group, a tool, a model, a service, an API, or another gateway-visible resource.</t>
        <t>An interaction access-control policy MAY represent:</t>
        <ul spacing="normal">
          <li>
            <t>a whitelist rule;</t>
          </li>
          <li>
            <t>a blacklist rule;</t>
          </li>
          <li>
            <t>a default-permit or default-deny rule;</t>
          </li>
          <li>
            <t>a rule based on agent identifier;</t>
          </li>
          <li>
            <t>a rule based on agent group membership;</t>
          </li>
          <li>
            <t>a rule based on tenant or administrative domain;</t>
          </li>
          <li>
            <t>a rule based on service level or task class; or</t>
          </li>
          <li>
            <t>a rule based on gateway attachment context.</t>
          </li>
        </ul>
        <t>Interaction Access Control governs the handling of an interaction at the Agent Gateway.  It does not imply management authority over either endpoint of that interaction.  It SHOULD be enforced at the Agent Gateway when the required context is visible at the gateway.  If suitable validated network selectors are available, the same policy assignment MAY also reference existing network ACL mechanisms.</t>
        <t>This document does not redefine ACL semantics.  It defines how an interaction access-control assignment is bound to gateway-local or network enforcement state.</t>
      </section>
      <section anchor="qos-and-flow-control">
        <name>QoS and Flow Control</name>
        <t>QoS and Flow Control governs network-visible resource treatment for traffic associated with a gateway-recognized policy matching attribute.</t>
        <t>Such policies MAY include:</t>
        <ul spacing="normal">
          <li>
            <t>bandwidth limit;</t>
          </li>
          <li>
            <t>packet-rate limit;</t>
          </li>
          <li>
            <t>burst size;</t>
          </li>
          <li>
            <t>DSCP marking;</t>
          </li>
          <li>
            <t>traffic class;</t>
          </li>
          <li>
            <t>queue or scheduling treatment;</t>
          </li>
          <li>
            <t>shaping or policing behavior; or</t>
          </li>
          <li>
            <t>a reference to an existing QoS or traffic policy object.</t>
          </li>
        </ul>
        <t>When an operator configures a policy such as:</t>
        <artwork><![CDATA[
Limit Agent A to 10 Mbit/s.
]]></artwork>
        <t>the policy control component resolves Agent A to current gateway attachment bindings and applies the corresponding flow-control policy using the available selectors.  The resulting enforcement state is reported as applied policy state.</t>
        <t>A QoS or flow-control policy MUST NOT be reported as active for per-agent network enforcement unless the selected network selectors can identify the relevant agent traffic at the required granularity.</t>
        <t>This policy class is intended for network-visible resources.  It is not intended to represent token quotas, prompt budgets, model-compute budgets, or other application-layer resources unless an explicit deployment-specific mapping is configured.</t>
      </section>
      <section anchor="invocation-and-token-control">
        <name>Invocation and Token Control</name>
        <t>Invocation and Token Control governs gateway-visible application-layer resources.</t>
        <t>Such policies MAY include:</t>
        <ul spacing="normal">
          <li>
            <t>request-rate limit;</t>
          </li>
          <li>
            <t>model-invocation-rate limit;</t>
          </li>
          <li>
            <t>token-rate limit;</t>
          </li>
          <li>
            <t>token-quota limit;</t>
          </li>
          <li>
            <t>concurrent-invocation limit;</t>
          </li>
          <li>
            <t>session limit; and</t>
          </li>
          <li>
            <t>exceed action.</t>
          </li>
        </ul>
        <t>Token-rate and invocation-rate controls are normally gateway-local controls.  They SHOULD be enforced at the Agent Gateway, model gateway, API gateway, or another application-layer enforcement point.</t>
        <t>Token-rate limits MUST NOT be automatically represented as packet-level network policies unless an explicit deployment-specific mapping is configured by the operator.</t>
      </section>
      <section anchor="path-selection">
        <name>Path Selection</name>
        <t>Path Selection influences the path or service treatment used by traffic associated with a gateway-recognized policy matching attribute.</t>
        <t>Such policies MAY be expressed in terms of an individual agent, agent group, tenant, service level, or task class.  The applied policy state MAY refer to existing mechanisms such as routing policy, traffic engineering, Segment Routing policy, VPN service, private path, local breakout, or network slice.</t>
        <t>This document does not define path computation, forwarding behavior, or routing protocol extensions.  It specifies how a policy assignment is associated with path-selection enforcement state.</t>
      </section>
    </section>
    <section anchor="supporting-management-models">
      <name>Supporting Management Models</name>
      <t>This section defines the three supporting management models.</t>
      <section anchor="subject-and-attachment-binding-model">
        <name>Subject and Attachment Binding Model</name>
        <t>The Subject and Attachment Binding model relates gateway-recognized policy matching attributes to gateway-local and network-visible selectors.</t>
        <section anchor="policy-subjects">
          <name>Policy Subjects</name>
          <t>A policy subject is a gateway-recognized policy matching attribute that identifies the entity or class of entities to which an Agent Gateway policy applies.  A policy subject does not establish a management relationship with the represented entity.</t>
          <t>A policy subject MAY represent:</t>
          <ul spacing="normal">
            <li>
              <t>an individual agent;</t>
            </li>
            <li>
              <t>an agent group;</t>
            </li>
            <li>
              <t>a tenant;</t>
            </li>
            <li>
              <t>an administrative domain;</t>
            </li>
            <li>
              <t>a task class;</t>
            </li>
            <li>
              <t>a service level; or</t>
            </li>
            <li>
              <t>another implementation-defined subject type.</t>
            </li>
          </ul>
          <t>A policy subject MUST have a locally unique subject identifier within the Agent Gateway policy control system.</t>
          <t>A policy subject SHOULD include a subject type.  The subject type indicates whether the subject represents an agent, agent group, tenant, administrative domain, task class, service level, or another implementation-defined type.</t>
          <t>This document does not define how an agent identifier is issued, authenticated, globally scoped, or resolved.  A deployment MAY obtain such information from identity systems, registries, DNS-based mechanisms, authorization systems, attestation systems, or gateway-local onboarding mechanisms.</t>
          <t>An implementation MUST NOT use an unauthenticated or unverified agent identifier as the sole basis for security-sensitive enforcement unless explicitly allowed by operator policy.</t>
        </section>
        <section anchor="agent-groups">
          <name>Agent Groups</name>
          <t>An agent group is a gateway-recognized policy matching attribute that represents multiple agents or other policy matching attributes.</t>
          <t>Agent group membership MAY be:</t>
          <ul spacing="normal">
            <li>
              <t>statically configured by the operator;</t>
            </li>
            <li>
              <t>learned from an external identity or inventory system;</t>
            </li>
            <li>
              <t>resolved dynamically by the Agent Gateway;</t>
            </li>
            <li>
              <t>derived from tenant, service-level, or task-class metadata; or</t>
            </li>
            <li>
              <t>implementation-specific.</t>
            </li>
          </ul>
          <t>When group membership is provided by an external system, the implementation SHOULD expose whether the membership state is configured, externally learned, dynamically resolved, or stale.</t>
          <t>Agent groups are used by interaction access-control policies, QoS policies, invocation-control policies, and path-selection policies.  Telemetry is a supporting management function that may be enabled for any supported core policy class.</t>
        </section>
        <section anchor="gateway-attachment-bindings">
          <name>Gateway Attachment Bindings</name>
          <t>A gateway attachment binding associates a gateway-recognized policy matching attribute with one or more selectors that can be used for gateway-local or network enforcement.</t>
          <t>A binding MAY include:</t>
          <ul spacing="normal">
            <li>
              <t>gateway identifier;</t>
            </li>
            <li>
              <t>gateway session identifier;</t>
            </li>
            <li>
              <t>ingress or egress interface;</t>
            </li>
            <li>
              <t>source or destination IP prefix;</t>
            </li>
            <li>
              <t>source or destination transport port;</t>
            </li>
            <li>
              <t>transport protocol;</t>
            </li>
            <li>
              <t>tunnel identifier;</t>
            </li>
            <li>
              <t>VPN instance;</t>
            </li>
            <li>
              <t>network slice;</t>
            </li>
            <li>
              <t>routing instance;</t>
            </li>
            <li>
              <t>DSCP value;</t>
            </li>
            <li>
              <t>IPv6 flow label; or</t>
            </li>
            <li>
              <t>another locally significant identifier.</t>
            </li>
          </ul>
          <t>A binding MAY be statically configured, dynamically learned, locally observed, or externally supplied. Dynamic bindings may be derived from authentication, session establishment, registration, metadata synchronization, controller state, service-mesh state, or local observation.</t>
          <t>A binding MUST have a validity context. The validity context MUST include enough information for an implementation to determine whether the binding is valid, stale, expired, or unverified.</t>
          <t>An implementation MUST NOT use an expired binding for active network enforcement unless the applied policy state is explicitly reported as stale, partially active, or failed.</t>
          <t>An implementation MUST NOT claim per-agent network enforcement unless the available selectors can distinguish the relevant agent from other agents sharing the same network-visible attributes.</t>
        </section>
      </section>
      <section anchor="applied-policy-state-and-telemetry-model">
        <name>Applied Policy State and Telemetry Model</name>
        <t>The Applied Policy State and Telemetry model records the effective result of applying a policy assignment through selected enforcement mechanisms.</t>
        <t>Applied policy state MUST identify:</t>
        <ul spacing="normal">
          <li>
            <t>the related policy assignment;</t>
          </li>
          <li>
            <t>the effective enforcement scope;</t>
          </li>
          <li>
            <t>the enforcement status; and</t>
          </li>
          <li>
            <t>the enforcement point or enforcement-point class.</t>
          </li>
        </ul>
        <t>Applied policy state SHOULD identify:</t>
        <ul spacing="normal">
          <li>
            <t>related gateway attachment bindings;</t>
          </li>
          <li>
            <t>referenced network policy object, when applicable;</t>
          </li>
          <li>
            <t>activation time;</t>
          </li>
          <li>
            <t>generation or version;</t>
          </li>
          <li>
            <t>failure reason, when applicable; and</t>
          </li>
          <li>
            <t>operational counters.</t>
          </li>
        </ul>
        <t>Applied policy state is not the same as the configured assignment. The assignment expresses operator intent. Applied policy state records what has actually been applied.</t>
        <t>An implementation MUST expose applied policy state indicating whether a policy assignment is pending, active, partially active, stale, failed, or withdrawn.</t>
        <t>Telemetry associated with applied policy state MAY include:</t>
        <ul spacing="normal">
          <li>
            <t>matched packets;</t>
          </li>
          <li>
            <t>matched bytes;</t>
          </li>
          <li>
            <t>permitted requests;</t>
          </li>
          <li>
            <t>denied requests;</t>
          </li>
          <li>
            <t>rate-limited requests;</t>
          </li>
          <li>
            <t>consumed tokens;</t>
          </li>
          <li>
            <t>active sessions;</t>
          </li>
          <li>
            <t>selected path;</t>
          </li>
          <li>
            <t>binding changes; and</t>
          </li>
          <li>
            <t>enforcement failures.</t>
          </li>
        </ul>
        <t>Counters SHOULD be associated with applied policy state rather than only with the original policy assignment. This enables the operator to determine which binding and enforcement point produced a measurement.</t>
      </section>
      <section anchor="policy-lifecycle-and-failure-handling-model">
        <name>Policy Lifecycle and Failure Handling Model</name>
        <t>The Policy Lifecycle and Failure Handling model defines how policies move from configuration to effective enforcement, and how failures are reported.</t>
        <section anchor="enforcement-status">
          <name>Enforcement Status</name>
          <t>The following enforcement status values are defined:</t>
          <ul spacing="normal">
            <li>
              <t>pending: the policy has been selected for enforcement but enforcement has not been confirmed;</t>
            </li>
            <li>
              <t>active: the policy has been successfully applied to the intended enforcement scope;</t>
            </li>
            <li>
              <t>partially-active: the policy has been applied to some, but not all, required enforcement points or bindings;</t>
            </li>
            <li>
              <t>stale: the policy depends on attachment binding information that is no longer current;</t>
            </li>
            <li>
              <t>failed: the policy could not be applied; and</t>
            </li>
            <li>
              <t>withdrawn: the policy has been removed or deactivated.</t>
            </li>
          </ul>
          <t>An implementation MUST maintain enforcement status for each applied policy.</t>
          <t>An implementation SHOULD update enforcement status when the corresponding assignment, binding, enforcement point, or referenced policy object changes.</t>
        </section>
        <section anchor="failure-reasons">
          <name>Failure Reasons</name>
          <t>When policy enforcement fails, the implementation MUST expose a failure reason.</t>
          <t>The failure reason MUST allow the operator to distinguish at least the following categories:</t>
          <ul spacing="normal">
            <li>
              <t>subject-resolution failure;</t>
            </li>
            <li>
              <t>binding unavailable;</t>
            </li>
            <li>
              <t>binding expired;</t>
            </li>
            <li>
              <t>unsupported selector;</t>
            </li>
            <li>
              <t>referenced policy missing;</t>
            </li>
            <li>
              <t>enforcement-point unreachable;</t>
            </li>
            <li>
              <t>policy programming failure;</t>
            </li>
            <li>
              <t>policy conflict; and</t>
            </li>
            <li>
              <t>unsupported capability.</t>
            </li>
          </ul>
        </section>
        <section anchor="conflict-handling">
          <name>Conflict Handling</name>
          <t>Conflicts may occur when multiple policy assignments apply to the same subject or enforcement scope.</t>
          <t>An implementation MUST apply a deterministic conflict resolution procedure. The procedure MAY be based on precedence, policy class, administrative state, validity period, or implementation-defined local policy.</t>
          <t>The selected result SHOULD be visible in operational state.</t>
        </section>
        <section anchor="binding-change-handling">
          <name>Binding Change Handling</name>
          <t>When a binding changes, the corresponding applied policy state may need to be updated.</t>
          <t>An implementation SHOULD support the following sequence:</t>
          <ol spacing="normal" type="1"><li>
              <t>derive the new effective binding;</t>
            </li>
            <li>
              <t>create or update the corresponding enforcement instance;</t>
            </li>
            <li>
              <t>verify activation of the new enforcement state;</t>
            </li>
            <li>
              <t>withdraw stale enforcement state; and</t>
            </li>
            <li>
              <t>record any failure or partial enforcement.</t>
            </li>
          </ol>
          <t>For access-control and isolation policies, fail-closed behavior SHOULD be supported when a required binding is unavailable or stale. For resource-control or observation policies, degraded or best-effort behavior MAY be acceptable according to operator policy.</t>
        </section>
      </section>
    </section>
    <section anchor="policy-profiles-and-assignments">
      <name>Policy Profiles and Assignments</name>
      <t>A policy profile is a reusable operator-defined policy object.  It describes the requested enforcement scope and exactly one core policy parameter set.</t>
      <t>A policy profile MUST contain exactly one core policy parameter set.  The selected parameter set determines whether the profile represents Interaction Access Control, QoS and Flow Control, Invocation and Token Control, or Path Selection.</t>
      <t>A policy profile MUST identify a requested enforcement scope.  The requested enforcement scope is one of:</t>
      <ul spacing="normal">
        <li>
          <t>gateway-local;</t>
        </li>
        <li>
          <t>network; or</t>
        </li>
        <li>
          <t>gateway-and-network.</t>
        </li>
      </ul>
      <t>A policy profile MAY include telemetry options that apply to the selected core policy class.  Telemetry and accounting are supporting management functions; they are not an additional core policy class.</t>
      <t>A policy profile MAY reference existing network policy objects, such as ACLs, QoS policies, routing policies, VPN services, traffic-engineering policies, Segment Routing policies, or network-slice profiles.  This document does not change the semantics of such referenced objects.</t>
      <t>A policy assignment associates a policy profile with a source policy subject and, when applicable, a destination policy subject.</t>
      <t>A policy assignment MAY include:</t>
      <ul spacing="normal">
        <li>
          <t>assignment identifier;</t>
        </li>
        <li>
          <t>source subject;</t>
        </li>
        <li>
          <t>destination subject;</t>
        </li>
        <li>
          <t>policy profile;</t>
        </li>
        <li>
          <t>precedence;</t>
        </li>
        <li>
          <t>administrative state;</t>
        </li>
        <li>
          <t>validity period; and</t>
        </li>
        <li>
          <t>conflict-handling behavior.</t>
        </li>
      </ul>
      <t>A policy assignment is expressed at the gateway-recognized abstraction level.  It does not need to contain the current IP address, port, tunnel, interface, network slice, or gateway session of the subject.</t>
      <t>A policy assignment MUST reference a valid policy subject.</t>
      <t>A policy assignment MUST reference a valid policy profile.</t>
      <t>When a destination subject is present, the assignment applies to interactions from the source subject to the destination subject.  This is commonly used for interaction access-control policies.</t>
    </section>
    <section anchor="enforcement-selection-and-mapping">
      <name>Enforcement Selection and Mapping</name>
      <t>Enforcement selection determines whether a policy assignment is applied through gateway-local enforcement, network enforcement, or both.</t>
      <t>Enforcement selection MAY depend on:</t>
      <ul spacing="normal">
        <li>
          <t>policy class;</t>
        </li>
        <li>
          <t>requested enforcement scope;</t>
        </li>
        <li>
          <t>available gateway attachment bindings;</t>
        </li>
        <li>
          <t>selector availability;</t>
        </li>
        <li>
          <t>enforcement-point capabilities;</t>
        </li>
        <li>
          <t>trust in the binding;</t>
        </li>
        <li>
          <t>required enforcement granularity;</t>
        </li>
        <li>
          <t>operator configuration; and</t>
        </li>
        <li>
          <t>local policy.</t>
        </li>
      </ul>
      <t>An implementation MUST distinguish gateway-local enforcement from network enforcement in applied policy state.</t>
      <t>If the requested enforcement scope cannot be satisfied, the implementation MUST NOT report the policy as active for that scope. The implementation MAY report the applied policy state as pending, partially active, stale, or failed, depending on the failure condition.</t>
      <t>If network enforcement is not possible but gateway-local enforcement is possible, the implementation MAY apply the policy at the gateway and report the effective enforcement scope accordingly.</t>
      <section anchor="mapping-agent-policies-to-network-policies">
        <name>Mapping Agent Policies to Network Policies</name>
        <t>When network enforcement is selected, the policy control component maps agent-related policy assignments to network selectors derived from gateway attachment bindings.</t>
        <t>For example:</t>
        <artwork><![CDATA[
Operator policy:
  Limit Agent A to 10 Mbit/s.

Resolved binding:
  agent-id           = agent-a
  gateway-session-id = session-123
  source-prefix      = 192.0.2.18/32
  source-port        = 45020
  interface          = access-interface-17

Network enforcement:
  Apply traffic policy rate-limit-10m to traffic matching the
  resolved selectors.
]]></artwork>
        <t>The mapping is dynamic and deployment-specific. This document defines the management model for representing the binding and applied state; it does not define a new network policy language.</t>
      </section>
      <section anchor="gateway-local-enforcement">
        <name>Gateway-Local Enforcement</name>
        <t>Gateway-local enforcement is appropriate when the policy depends on information that is visible at the gateway but not visible at the network layer.</t>
        <t>Examples include:</t>
        <ul spacing="normal">
          <li>
            <t>authenticated agent session;</t>
          </li>
          <li>
            <t>agent-to-agent invocation context;</t>
          </li>
          <li>
            <t>tool or model invocation context;</t>
          </li>
          <li>
            <t>request counters;</t>
          </li>
          <li>
            <t>token counters;</t>
          </li>
          <li>
            <t>concurrent invocation counts; and</t>
          </li>
          <li>
            <t>application-layer access-control decisions.</t>
          </li>
        </ul>
        <t>Application-layer controls such as request-rate limits, token-rate limits, and concurrent invocation limits SHOULD be enforced at an Agent Gateway or application-layer enforcement point.</t>
      </section>
      <section anchor="network-enforcement">
        <name>Network Enforcement</name>
        <t>Network enforcement is appropriate when the policy can be expressed using selectors and enforcement capabilities supported by a network enforcement point.</t>
        <t>Examples include:</t>
        <ul spacing="normal">
          <li>
            <t>ACLs;</t>
          </li>
          <li>
            <t>QoS policies;</t>
          </li>
          <li>
            <t>flow-control policies;</t>
          </li>
          <li>
            <t>routing policies;</t>
          </li>
          <li>
            <t>traffic-engineering policies;</t>
          </li>
          <li>
            <t>VPN steering; and</t>
          </li>
          <li>
            <t>network-slice selection.</t>
          </li>
        </ul>
        <t>When a policy is applied through network enforcement, the applied policy state SHOULD identify the referenced network policy object, enforcement point, and related bindings.</t>
        <t>This document does not redefine the semantics of any referenced network policy object.</t>
      </section>
    </section>
    <section anchor="relationship-to-existing-mechanisms">
      <name>Relationship to Existing Mechanisms</name>
      <t>This document complements Agent Gateway architecture and agent-aware networking work. Agent Gateway architecture documents describe gateway functions such as discovery, protocol mediation, routing, security, model access, tool access, and network connectivity. This document focuses on the policy control model that allows operator-defined agent-related policies to be resolved into current gateway attachments, selected for gateway-local or network enforcement, and exposed as applied policy state.</t>
      <t>This document does not replace existing network policy models. Existing ACL, QoS, routing, VPN, traffic-engineering, and network-slice models define technology-specific policy semantics. The model in this document defines the Agent Gateway policy layer that binds agent-related policy subjects to those enforcement mechanisms.</t>
      <t>This document also does not define how agents themselves are operated or governed. It assumes that an operator-managed gateway can mediate and control interactions that pass through it.</t>
    </section>
    <section anchor="management-data-model">
      <name>Management Data Model</name>
      <t>This document defines management data for Agent Gateway policy control. The management model includes configuration data, operational state, and notifications.</t>
      <t>The managed objects are:</t>
      <ul spacing="normal">
        <li>
          <t>policy subjects;</t>
        </li>
        <li>
          <t>agent groups;</t>
        </li>
        <li>
          <t>static attachment bindings;</t>
        </li>
        <li>
          <t>policy profiles;</t>
        </li>
        <li>
          <t>policy assignments;</t>
        </li>
        <li>
          <t>effective attachment bindings;</t>
        </li>
        <li>
          <t>applied policies;</t>
        </li>
        <li>
          <t>operational counters;</t>
        </li>
        <li>
          <t>failure state; and</t>
        </li>
        <li>
          <t>notifications.</t>
        </li>
      </ul>
      <t>The YANG module in (#yang-module) provides the normative data model for these objects.</t>
      <section anchor="configuration-data">
        <name>Configuration Data</name>
        <t>Configuration data includes:</t>
        <ul spacing="normal">
          <li>
            <t>policy subjects;</t>
          </li>
          <li>
            <t>agent group membership;</t>
          </li>
          <li>
            <t>static gateway attachment bindings;</t>
          </li>
          <li>
            <t>policy profiles; and</t>
          </li>
          <li>
            <t>policy assignments.</t>
          </li>
        </ul>
        <t>A policy subject configuration identifies the gateway-recognized policy matching attribute to which policies can apply.</t>
        <t>A static attachment binding configuration associates a subject with selectors known by the operator.</t>
        <t>A policy profile configuration defines reusable policy parameters and, when applicable, references to existing gateway-local or network policy objects.</t>
        <t>A policy assignment configuration associates a policy profile with a source matching attribute and, optionally, a destination matching attribute.</t>
      </section>
      <section anchor="operational-state">
        <name>Operational State</name>
        <t>Operational state includes:</t>
        <ul spacing="normal">
          <li>
            <t>effective attachment bindings;</t>
          </li>
          <li>
            <t>applied policies;</t>
          </li>
          <li>
            <t>enforcement status;</t>
          </li>
          <li>
            <t>failure reasons;</t>
          </li>
          <li>
            <t>operational counters; and</t>
          </li>
          <li>
            <t>last update timestamps.</t>
          </li>
        </ul>
        <t>Operational state MUST allow an operator to determine whether a configured assignment has actually been applied.</t>
      </section>
      <section anchor="notifications">
        <name>Notifications</name>
        <t>The management model defines notifications for significant changes in policy state.</t>
        <t>An implementation SHOULD support notifications for binding changes, policy enforcement failures, quota threshold crossing, and policy status changes when the corresponding functions are implemented.</t>
      </section>
    </section>
    <section anchor="yang-module">
      <name>YANG Module</name>
      <t>This section defines the YANG module for Agent Gateway policy control.</t>
      <t>The tree diagram follows the notation defined in <xref target="RFC8340"/>.</t>
      <section anchor="tree-diagram">
        <name>Tree Diagram</name>
        <artwork><![CDATA[
module: ietf-agent-gateway-policy

  +--rw agent-gateway-policy
     +--rw policy-subjects
     |  +--rw subject* [subject-id]
     |     +--rw subject-id                 string
     |     +--rw subject-type               identityref
     |     +--rw tenant-id?                 string
     |     +--rw administrative-domain?     string
     |     +--rw service-level?             string
     |     +--rw task-class?                string
     |     +--rw enabled?                   boolean
     |     +--rw description?               string
     |
     +--rw agent-groups
     |  +--rw group* [group-id]
     |     +--rw group-id                   -> /policy-subjects/subject/subject-id
     |     +--rw member-subject*            -> /policy-subjects/subject/subject-id
     |     +--rw membership-origin?         identityref
     |     +--rw description?               string
     |
     +--rw static-bindings
     |  +--rw binding* [binding-id]
     |     +--rw binding-id                 string
     |     +--rw subject-id                 -> /policy-subjects/subject/subject-id
     |     +--rw selectors
     |     |  +--rw gateway-id?             string
     |     |  +--rw gateway-session-id?     string
     |     |  +--rw interface?              string
     |     |  +--rw source-prefix*          inet:ip-prefix
     |     |  +--rw destination-prefix*     inet:ip-prefix
     |     |  +--rw transport-protocol?     uint8
     |     |  +--rw source-port?            inet:port-number
     |     |  +--rw destination-port?       inet:port-number
     |     |  +--rw tunnel-id?              string
     |     |  +--rw network-instance?       string
     |     |  +--rw slice-id?               string
     |     |  +--rw flow-label?             uint32
     |     |  +--rw dscp?                   uint8
     |     +--rw valid-until?               yang:date-and-time
     |
     +--rw policy-profiles
     |  +--rw profile* [profile-id]
     |     +--rw profile-id                 string
     |     +--rw enforcement-scope          identityref
     |     +--rw precedence?                uint32
     |     +--rw (core-policy-parameters)?
     |     |  +--:(interaction-access-control)
     |     |  |  +--rw access-control
     |     |  |     +--rw default-action?   identityref
     |     |  |     +--rw rule* [rule-id]
     |     |  |        +--rw rule-id        string
     |     |  |        +--rw source-subject-id? -> /policy-subjects/subject/subject-id
     |     |  |        +--rw destination-subject-id? -> /policy-subjects/subject/subject-id
     |     |  |        +--rw action         identityref
     |     |  +--:(qos-flow-control)
     |     |  |  +--rw flow-control
     |     |  |     +--rw bandwidth-limit-kbps?  uint64
     |     |  |     +--rw packet-rate-limit-pps? uint64
     |     |  |     +--rw burst-size-bytes?      uint64
     |     |  |     +--rw dscp?                  uint8
     |     |  |     +--rw referenced-qos-policy? instance-identifier
     |     |  +--:(invocation-token-control)
     |     |  |  +--rw invocation-control
     |     |  |     +--rw request-rate-limit? uint64
     |     |  |     +--rw token-rate-limit?   uint64
     |     |  |     +--rw concurrent-limit?   uint32
     |     |  |     +--rw interval?           uint32
     |     |  |     +--rw exceed-action?      identityref
     |     |  +--:(path-selection)
     |     |     +--rw path-selection
     |     |        +--rw path-profile-id?     string
     |     |        +--rw preferred-path-type? identityref
     |     |        +--rw routing-policy?      instance-identifier
     |     |        +--rw network-instance?    string
     |     |        +--rw slice-id?            string
     |     +--rw telemetry-options
     |     |  +--rw enable-packet-counters? boolean
     |     |  +--rw enable-request-counters? boolean
     |     |  +--rw enable-token-counters?  boolean
     |     +--rw description?               string
     |
     +--rw policy-assignments
     |  +--rw assignment* [assignment-id]
     |     +--rw assignment-id              string
     |     +--rw source-subject-id          -> /policy-subjects/subject/subject-id
     |     +--rw destination-subject-id?    -> /policy-subjects/subject/subject-id
     |     +--rw profile-id                 -> /policy-profiles/profile/profile-id
     |     +--rw enabled?                   boolean
     |     +--rw valid-from?                yang:date-and-time
     |     +--rw valid-until?               yang:date-and-time
     |
     +--ro effective-bindings
     |  +--ro binding* [binding-id]
     |     +--ro binding-id                 string
     |     +--ro subject-id                 string
     |     +--ro selectors
     |     +--ro origin                     identityref
     |     +--ro verification-state         identityref
     |     +--ro evidence-ref?              string
     |     +--ro created-at?                yang:date-and-time
     |     +--ro last-refreshed-at?         yang:date-and-time
     |     +--ro expires-at?                yang:date-and-time
     |
     +--ro applied-policies
     |  +--ro applied-policy* [applied-policy-id]
     |     +--ro applied-policy-id          string
     |     +--ro assignment-id              string
     |     +--ro binding-id*                string
     |     +--ro effective-enforcement-scope identityref
     |     +--ro enforcement-point-id?      string
     |     +--ro enforcement-point-type?    string
     |     +--ro referenced-policy?         instance-identifier
     |     +--ro enforcement-status         identityref
     |     +--ro generation?                uint64
     |     +--ro activated-at?              yang:date-and-time
     |     +--ro last-updated-at?           yang:date-and-time
     |     +--ro failure-reason?            identityref
     |     +--ro failure-description?       string
     |     +--ro statistics
     |        +--ro matched-packets?        yang:counter64
     |        +--ro matched-bytes?          yang:counter64
     |        +--ro permitted-requests?     yang:counter64
     |        +--ro denied-requests?        yang:counter64
     |        +--ro rate-limited-requests?  yang:counter64
     |        +--ro consumed-tokens?        yang:counter64
     |
     +---n binding-changed
     +---n policy-status-changed
     +---n policy-enforcement-failed
     +---n quota-threshold-crossed
]]></artwork>
      </section>
      <section anchor="yang-module-definition">
        <name>YANG Module Definition</name>
        <artwork><![CDATA[
module ietf-agent-gateway-policy {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-agent-gateway-policy";
  prefix agp;

  import ietf-yang-types {
    prefix yang;
    reference
      "RFC 6991: Common YANG Data Types";
  }

  import ietf-inet-types {
    prefix inet;
    reference
      "RFC 6991: Common YANG Data Types";
  }

  organization
    "IETF Operations and Management Area Working Group";

  contact
    "WG Web:   <https://datatracker.ietf.org/wg/opsawg/>
     WG List:  <mailto:opsawg@ietf.org>";

  description
    "This module defines an operator-facing management model for
     Agent Gateway policy control.

     The model controls and observes interactions mediated by an
     operator-managed Agent Gateway.  Agent identifiers, agent
     groups, tenants, service levels, and task classes are
     gateway-recognized policy matching attributes; they do not
     establish a management relationship with an agent.

     The model is organized around four core policy classes and
     three supporting management models.  The four core policy
     classes are interaction access control, QoS and flow control,
     invocation and token control, and path selection.  The
     supporting management models are subject and attachment
     binding, applied policy state and telemetry, and policy
     lifecycle and failure handling.

     This module does not define governance or control of an
     agent's internal behavior, lifecycle, reasoning, planning,
     prompt construction, memory, tool selection, or runtime
     implementation.";

  revision 2026-07-06 {
    description
      "Initial revision.";
    reference
      "RFC XXXX: Agent Gateway Policy Control Model";
  }

  /*
   * Identities
   */

  identity subject-type-base {
    description
      "Base identity for policy subject types.";
  }

  identity subject-agent {
    base subject-type-base;
    description
      "A policy subject representing an individual agent.";
  }

  identity subject-agent-group {
    base subject-type-base;
    description
      "A policy subject representing a group of agents.";
  }

  identity subject-tenant {
    base subject-type-base;
    description
      "A policy subject representing a tenant.";
  }

  identity subject-administrative-domain {
    base subject-type-base;
    description
      "A policy subject representing an administrative domain.";
  }

  identity subject-task-class {
    base subject-type-base;
    description
      "A policy subject representing a task class.";
  }

  identity subject-service-level {
    base subject-type-base;
    description
      "A policy subject representing a service level.";
  }

  identity membership-origin-base {
    description
      "Base identity for agent group membership origin.";
  }

  identity membership-configured {
    base membership-origin-base;
    description
      "Group membership is configured locally.";
  }

  identity membership-external {
    base membership-origin-base;
    description
      "Group membership is supplied by an external system.";
  }

  identity membership-dynamic {
    base membership-origin-base;
    description
      "Group membership is dynamically resolved.";
  }

  identity enforcement-scope-base {
    description
      "Base identity for enforcement scope.";
  }

  identity scope-gateway-local {
    base enforcement-scope-base;
    description
      "Enforcement performed at the Agent Gateway or a related
       application-layer enforcement point.";
  }

  identity scope-network {
    base enforcement-scope-base;
    description
      "Enforcement performed through network mechanisms.";
  }

  identity scope-gateway-and-network {
    base enforcement-scope-base;
    description
      "Enforcement performed both at the gateway and through
       network mechanisms.";
  }

  identity policy-action-base {
    description
      "Base identity for policy actions.";
  }

  identity action-permit {
    base policy-action-base;
    description
      "Permit the interaction or traffic.";
  }

  identity action-deny {
    base policy-action-base;
    description
      "Deny the interaction or traffic.";
  }

  identity action-reject {
    base policy-action-base;
    description
      "Reject the request or interaction.";
  }

  identity action-degrade {
    base policy-action-base;
    description
      "Apply degraded treatment.";
  }

  identity action-queue {
    base policy-action-base;
    description
      "Queue the request or interaction.";
  }

  identity action-notify-only {
    base policy-action-base;
    description
      "Generate notification but do not block.";
  }

  identity action-terminate-session {
    base policy-action-base;
    description
      "Terminate the related session.";
  }

  identity preferred-path-type-base {
    description
      "Base identity for preferred path type.";
  }

  identity path-private {
    base preferred-path-type-base;
    description
      "Prefer a private or dedicated path.";
  }

  identity path-public-internet {
    base preferred-path-type-base;
    description
      "Prefer public Internet access.";
  }

  identity path-low-latency {
    base preferred-path-type-base;
    description
      "Prefer a low-latency path.";
  }

  identity path-low-cost {
    base preferred-path-type-base;
    description
      "Prefer a low-cost path.";
  }

  identity binding-origin-base {
    description
      "Base identity for the origin of an attachment binding.";
  }

  identity binding-configured {
    base binding-origin-base;
    description
      "The binding is statically configured.";
  }

  identity binding-learned {
    base binding-origin-base;
    description
      "The binding is dynamically learned.";
  }

  identity binding-observed {
    base binding-origin-base;
    description
      "The binding is locally observed by the Agent Gateway.";
  }

  identity binding-external {
    base binding-origin-base;
    description
      "The binding is supplied by an external system.";
  }

  identity verification-state-base {
    description
      "Base identity for binding verification state.";
  }

  identity verify-verified {
    base verification-state-base;
    description
      "The binding has been verified.";
  }

  identity verify-unverified {
    base verification-state-base;
    description
      "The binding has not been verified.";
  }

  identity verify-stale {
    base verification-state-base;
    description
      "The binding is stale.";
  }

  identity verify-expired {
    base verification-state-base;
    description
      "The binding has expired.";
  }

  identity enforcement-status-base {
    description
      "Base identity for enforcement status.";
  }

  identity status-pending {
    base enforcement-status-base;
    description
      "The policy has been selected for enforcement but enforcement
       has not been confirmed.";
  }

  identity status-active {
    base enforcement-status-base;
    description
      "The policy has been successfully applied.";
  }

  identity status-partially-active {
    base enforcement-status-base;
    description
      "The policy has been partially applied.";
  }

  identity status-stale {
    base enforcement-status-base;
    description
      "The applied policy depends on stale binding information.";
  }

  identity status-failed {
    base enforcement-status-base;
    description
      "Policy enforcement has failed.";
  }

  identity status-withdrawn {
    base enforcement-status-base;
    description
      "The applied policy has been withdrawn.";
  }

  identity failure-reason-base {
    description
      "Base identity for enforcement failure reasons.";
  }

  identity fail-subject-unresolved {
    base failure-reason-base;
    description
      "The policy subject could not be resolved.";
  }

  identity fail-binding-unavailable {
    base failure-reason-base;
    description
      "A required binding is unavailable.";
  }

  identity fail-binding-expired {
    base failure-reason-base;
    description
      "A required binding has expired.";
  }

  identity fail-unsupported-selector {
    base failure-reason-base;
    description
      "A required selector is not supported by the enforcement point.";
  }

  identity fail-referenced-policy-missing {
    base failure-reason-base;
    description
      "A referenced policy object is missing.";
  }

  identity fail-enforcement-point-unreachable {
    base failure-reason-base;
    description
      "The enforcement point cannot be reached.";
  }

  identity fail-policy-programming-failed {
    base failure-reason-base;
    description
      "Programming the enforcement point failed.";
  }

  identity fail-policy-conflict {
    base failure-reason-base;
    description
      "The policy conflicts with another policy.";
  }

  identity fail-capability-unsupported {
    base failure-reason-base;
    description
      "A required capability is not supported.";
  }

  /*
   * Groupings
   */

  grouping selector-set {
    description
      "A set of gateway or network selectors that may be used for
       policy enforcement.";

    leaf gateway-id {
      type string;
      description
        "Agent Gateway identifier.";
    }

    leaf gateway-session-id {
      type string;
      description
        "Gateway session identifier.";
    }

    leaf interface {
      type string;
      description
        "A locally significant interface identifier.";
    }

    leaf-list source-prefix {
      type inet:ip-prefix;
      description
        "Source IP prefixes associated with the binding.";
    }

    leaf-list destination-prefix {
      type inet:ip-prefix;
      description
        "Destination IP prefixes associated with the binding.";
    }

    leaf transport-protocol {
      type uint8;
      description
        "IP transport protocol number.";
    }

    leaf source-port {
      type inet:port-number;
      description
        "Source transport port.";
    }

    leaf destination-port {
      type inet:port-number;
      description
        "Destination transport port.";
    }

    leaf tunnel-id {
      type string;
      description
        "A locally significant tunnel identifier.";
    }

    leaf network-instance {
      type string;
      description
        "A locally significant network instance, routing instance,
         or VPN identifier.";
    }

    leaf slice-id {
      type string;
      description
        "A locally significant network slice identifier.";
    }

    leaf flow-label {
      type uint32 {
        range "0..1048575";
      }
      description
        "IPv6 flow label value.";
    }

    leaf dscp {
      type uint8 {
        range "0..63";
      }
      description
        "DSCP value.";
    }
  }

  grouping access-control-parameters {
    description
      "Gateway-mediated interaction access-control policy parameters.";

    leaf default-action {
      type identityref {
        base policy-action-base;
      }
      default "action-deny";
      description
        "Default action for the access-control profile.";
    }

    list rule {
      key "rule-id";
      description
        "Access-control rule.";

      leaf rule-id {
        type string;
        description
          "Rule identifier.";
      }

      leaf source-subject-id {
        type leafref {
          path "/agp:agent-gateway-policy/agp:policy-subjects"
             + "/agp:subject/agp:subject-id";
          require-instance false;
        }
        description
          "Optional source gateway-recognized policy matching
           attribute for the rule.";
      }

      leaf destination-subject-id {
        type leafref {
          path "/agp:agent-gateway-policy/agp:policy-subjects"
             + "/agp:subject/agp:subject-id";
          require-instance false;
        }
        description
          "Optional destination gateway-recognized policy matching
           attribute for the rule.";
      }

      leaf action {
        type identityref {
          base policy-action-base;
        }
        mandatory true;
        description
          "Rule action.";
      }
    }
  }

  grouping flow-control-parameters {
    description
      "QoS and flow-control policy parameters.";

    leaf bandwidth-limit-kbps {
      type uint64;
      units "kilobits per second";
      description
        "Bandwidth limit.";
    }

    leaf packet-rate-limit-pps {
      type uint64;
      units "packets per second";
      description
        "Packet-rate limit.";
    }

    leaf burst-size-bytes {
      type uint64;
      units "bytes";
      description
        "Burst size.";
    }

    leaf dscp {
      type uint8 {
        range "0..63";
      }
      description
        "DSCP value to mark or match.";
    }

    leaf referenced-qos-policy {
      type instance-identifier {
        require-instance false;
      }
      description
        "Reference to an existing QoS or traffic policy object.";
    }
  }

  grouping invocation-control-parameters {
    description
      "Gateway-local invocation and token control parameters.";

    leaf request-rate-limit {
      type uint64;
      description
        "Maximum number of requests in the measurement interval.";
    }

    leaf token-rate-limit {
      type uint64;
      description
        "Maximum number of model tokens in the measurement interval.";
    }

    leaf concurrent-limit {
      type uint32;
      description
        "Maximum number of concurrent invocations or sessions.";
    }

    leaf interval {
      type uint32;
      units "seconds";
      description
        "Measurement interval.";
    }

    leaf exceed-action {
      type identityref {
        base policy-action-base;
      }
      description
        "Action when the limit is exceeded.";
    }
  }

  grouping path-selection-parameters {
    description
      "Path-selection policy parameters.";

    leaf path-profile-id {
      type string;
      description
        "Identifier of a locally defined path profile.";
    }

    leaf preferred-path-type {
      type identityref {
        base preferred-path-type-base;
      }
      description
        "Preferred path type.";
    }

    leaf routing-policy {
      type instance-identifier {
        require-instance false;
      }
      description
        "Reference to an existing routing or traffic-engineering
         policy object.";
    }

    leaf network-instance {
      type string;
      description
        "Network instance, routing instance, or VPN to use.";
    }

    leaf slice-id {
      type string;
      description
        "Network slice identifier.";
    }
  }

  grouping telemetry-options {
    description
      "Telemetry options that apply to the selected core policy
       class.  Telemetry and accounting are supporting management
       functions, not an additional core policy class.";

    leaf enable-packet-counters {
      type boolean;
      default "false";
      description
        "Enable packet and byte counters when available.";
    }

    leaf enable-request-counters {
      type boolean;
      default "false";
      description
        "Enable request counters when available.";
    }

    leaf enable-token-counters {
      type boolean;
      default "false";
      description
        "Enable token counters when available.";
    }
  }

  grouping applied-policy-statistics {
    description
      "Operational counters associated with an applied policy.";

    leaf matched-packets {
      type yang:counter64;
      description
        "Number of packets matched by the applied policy.";
    }

    leaf matched-bytes {
      type yang:counter64;
      description
        "Number of bytes matched by the applied policy.";
    }

    leaf permitted-requests {
      type yang:counter64;
      description
        "Number of permitted requests.";
    }

    leaf denied-requests {
      type yang:counter64;
      description
        "Number of denied requests.";
    }

    leaf rate-limited-requests {
      type yang:counter64;
      description
        "Number of rate-limited requests.";
    }

    leaf consumed-tokens {
      type yang:counter64;
      description
        "Number of consumed model tokens.";
    }
  }

  /*
   * Data nodes
   */

  container agent-gateway-policy {
    description
      "Top-level container for operator-facing Agent Gateway policy
       control.";

    container policy-subjects {
      description
        "Configured gateway-recognized policy matching attributes.";

      list subject {
        key "subject-id";
        description
          "A gateway-recognized policy matching attribute.";

        leaf subject-id {
          type string;
          description
            "Locally unique identifier for a gateway-recognized
             policy matching attribute.";
        }

        leaf subject-type {
          type identityref {
            base subject-type-base;
          }
          mandatory true;
          description
            "Type of the policy matching attribute.";
        }

        leaf tenant-id {
          type string;
          description
            "Tenant identifier associated with the subject.";
        }

        leaf administrative-domain {
          type string;
          description
            "Administrative domain associated with the subject.";
        }

        leaf service-level {
          type string;
          description
            "Service level associated with the subject.";
        }

        leaf task-class {
          type string;
          description
            "Task class associated with the subject.";
        }

        leaf enabled {
          type boolean;
          default "true";
          description
            "Administrative state of the subject.";
        }

        leaf description {
          type string;
          description
            "Textual description of the subject.";
        }
      }
    }

    container agent-groups {
      description
        "Configured or learned agent groups.";

      list group {
        key "group-id";
        description
          "An agent group.";

        leaf group-id {
          type leafref {
            path "/agp:agent-gateway-policy/agp:policy-subjects"
               + "/agp:subject/agp:subject-id";
          }
          description
            "Identifier of the policy subject that represents this
             agent group.";
        }

        leaf-list member-subject {
          type leafref {
            path "/agp:agent-gateway-policy/agp:policy-subjects"
               + "/agp:subject/agp:subject-id";
          }
          description
            "Member gateway-recognized policy matching attributes.";
        }

        leaf membership-origin {
          type identityref {
            base membership-origin-base;
          }
          default "membership-configured";
          description
            "Origin of the group membership.";
        }

        leaf description {
          type string;
          description
            "Textual description of the group.";
        }
      }
    }

    container static-bindings {
      description
        "Statically configured gateway attachment bindings.";

      list binding {
        key "binding-id";
        description
          "A static gateway attachment binding.";

        leaf binding-id {
          type string;
          description
            "Binding identifier.";
        }

        leaf subject-id {
          type leafref {
            path "/agp:agent-gateway-policy/agp:policy-subjects"
               + "/agp:subject/agp:subject-id";
          }
          mandatory true;
          description
            "Policy matching attribute associated with the binding.";
        }

        container selectors {
          description
            "Selectors associated with the binding.";
          uses selector-set;
        }

        leaf valid-until {
          type yang:date-and-time;
          description
            "Time until which the binding is valid.";
        }
      }
    }

    container policy-profiles {
      description
        "Configured policy profiles.";

      list profile {
        key "profile-id";
        description
          "A reusable policy profile.";

        leaf profile-id {
          type string;
          description
            "Policy profile identifier.";
        }

        leaf enforcement-scope {
          type identityref {
            base enforcement-scope-base;
          }
          mandatory true;
          description
            "Requested enforcement scope.";
        }

        leaf precedence {
          type uint32;
          default "0";
          description
            "Policy precedence.  Higher values indicate higher
             precedence.";
        }

        choice core-policy-parameters {
          mandatory true;
          description
            "Selects exactly one core policy class and its
             parameters.";

          case interaction-access-control {
            container access-control {
              description
                "Gateway-mediated interaction access-control
                 parameters.";
              uses access-control-parameters;
            }
          }

          case qos-flow-control {
            container flow-control {
              description
                "QoS and flow-control parameters.";
              uses flow-control-parameters;
            }
          }

          case invocation-token-control {
            container invocation-control {
              description
                "Gateway-local invocation and token-control
                 parameters.";
              uses invocation-control-parameters;
            }
          }

          case path-selection {
            container path-selection {
              description
                "Path-selection parameters.";
              uses path-selection-parameters;
            }
          }
        }

        container telemetry-options {
          description
            "Telemetry options for the selected core policy class.";
          uses telemetry-options;
        }

        leaf description {
          type string;
          description
            "Textual description of the policy profile.";
        }
      }
    }

    container policy-assignments {
      description
        "Configured policy assignments.";

      list assignment {
        key "assignment-id";
        description
          "A policy assignment.";

        leaf assignment-id {
          type string;
          description
            "Policy assignment identifier.";
        }

        leaf source-subject-id {
          type leafref {
            path "/agp:agent-gateway-policy/agp:policy-subjects"
               + "/agp:subject/agp:subject-id";
          }
          mandatory true;
          description
            "Source gateway-recognized policy matching attribute.";
        }

        leaf destination-subject-id {
          type leafref {
            path "/agp:agent-gateway-policy/agp:policy-subjects"
               + "/agp:subject/agp:subject-id";
            require-instance false;
          }
          description
            "Optional destination gateway-recognized policy matching
             attribute.";
        }

        leaf profile-id {
          type leafref {
            path "/agp:agent-gateway-policy/agp:policy-profiles"
               + "/agp:profile/agp:profile-id";
          }
          mandatory true;
          description
            "Referenced policy profile.";
        }

        leaf enabled {
          type boolean;
          default "true";
          description
            "Administrative state of the assignment.";
        }

        leaf valid-from {
          type yang:date-and-time;
          description
            "Start time of assignment validity.";
        }

        leaf valid-until {
          type yang:date-and-time;
          description
            "End time of assignment validity.";
        }
      }
    }

    container effective-bindings {
      config false;
      description
        "Operational state for effective gateway attachment bindings.";

      list binding {
        key "binding-id";
        description
          "An effective gateway attachment binding.";

        leaf binding-id {
          type string;
          description
            "Binding identifier.";
        }

        leaf subject-id {
          type string;
          description
            "Gateway-recognized policy matching attribute associated
             with the binding.";
        }

        container selectors {
          description
            "Selectors associated with the binding.";
          uses selector-set;
        }

        leaf origin {
          type identityref {
            base binding-origin-base;
          }
          description
            "Origin of the binding.";
        }

        leaf verification-state {
          type identityref {
            base verification-state-base;
          }
          description
            "Verification state of the binding.";
        }

        leaf evidence-ref {
          type string;
          description
            "Reference to evidence supporting the binding.";
        }

        leaf created-at {
          type yang:date-and-time;
          description
            "Creation time.";
        }

        leaf last-refreshed-at {
          type yang:date-and-time;
          description
            "Last refresh time.";
        }

        leaf expires-at {
          type yang:date-and-time;
          description
            "Expiration time.";
        }
      }
    }

    container applied-policies {
      config false;
      description
        "Operational state for applied policies.";

      list applied-policy {
        key "applied-policy-id";
        description
          "An applied policy state entry.";

        leaf applied-policy-id {
          type string;
          description
            "Applied policy identifier.";
        }

        leaf assignment-id {
          type string;
          description
            "Policy assignment that produced this applied policy.";
        }

        leaf-list binding-id {
          type string;
          description
            "Attachment bindings used by this applied policy.";
        }

        leaf effective-enforcement-scope {
          type identityref {
            base enforcement-scope-base;
          }
          description
            "Effective enforcement scope.";
        }

        leaf enforcement-point-id {
          type string;
          description
            "Identifier of the enforcement point.";
        }

        leaf enforcement-point-type {
          type string;
          description
            "Type of the enforcement point.";
        }

        leaf referenced-policy {
          type instance-identifier {
            require-instance false;
          }
          description
            "Reference to the applied or referenced policy object.";
        }

        leaf enforcement-status {
          type identityref {
            base enforcement-status-base;
          }
          mandatory true;
          description
            "Enforcement status.";
        }

        leaf generation {
          type uint64;
          description
            "Generation or version number.";
        }

        leaf activated-at {
          type yang:date-and-time;
          description
            "Time at which the applied policy became active.";
        }

        leaf last-updated-at {
          type yang:date-and-time;
          description
            "Last update time.";
        }

        leaf failure-reason {
          type identityref {
            base failure-reason-base;
          }
          description
            "Failure reason.";
        }

        leaf failure-description {
          type string;
          description
            "Additional diagnostic text.";
        }

        container statistics {
          description
            "Counters associated with the applied policy.";
          uses applied-policy-statistics;
        }
      }
    }
  }

  /*
   * Notifications
   */

  notification binding-changed {
    description
      "A gateway attachment binding has changed.";

    leaf binding-id {
      type string;
      description
        "Binding identifier.";
    }

    leaf subject-id {
      type string;
      description
        "Policy subject identifier.";
    }
  }

  notification policy-status-changed {
    description
      "The status of an applied policy has changed.";

    leaf applied-policy-id {
      type string;
      description
        "Applied policy identifier.";
    }

    leaf assignment-id {
      type string;
      description
        "Policy assignment identifier.";
    }

    leaf enforcement-status {
      type identityref {
        base enforcement-status-base;
      }
      description
        "New enforcement status.";
    }
  }

  notification policy-enforcement-failed {
    description
      "Policy enforcement has failed.";

    leaf applied-policy-id {
      type string;
      description
        "Applied policy identifier.";
    }

    leaf assignment-id {
      type string;
      description
        "Policy assignment identifier.";
    }

    leaf failure-reason {
      type identityref {
        base failure-reason-base;
      }
      description
        "Failure reason.";
    }
  }

  notification quota-threshold-crossed {
    description
      "A request, invocation, or token quota threshold has been crossed.";

    leaf applied-policy-id {
      type string;
      description
        "Applied policy identifier.";
    }

    leaf assignment-id {
      type string;
      description
        "Policy assignment identifier.";
    }

    leaf threshold-type {
      type string;
      description
        "Threshold type.";
    }
  }
}
]]></artwork>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Security considerations will be expanded in future revisions.</t>
      <t>The following aspects require particular attention:</t>
      <ul spacing="normal">
        <li>
          <t>authenticity of agent identifiers used as policy subjects;</t>
        </li>
        <li>
          <t>authorization of policy configuration changes;</t>
        </li>
        <li>
          <t>protection of gateway attachment binding state;</t>
        </li>
        <li>
          <t>prevention of stale or forged binding use;</t>
        </li>
        <li>
          <t>protection of applied policy state and counters;</t>
        </li>
        <li>
          <t>fail-closed behavior for access-control and isolation policies;</t>
        </li>
        <li>
          <t>privacy of agent identifiers, token counters, and interaction logs;</t>
        </li>
        <li>
          <t>secure communication between the Agent Gateway and network enforcement points; and</t>
        </li>
        <li>
          <t>auditability of policy changes and enforcement failures.</t>
        </li>
      </ul>
      <t>An implementation MUST protect the management interface according to existing secure management practices, including authentication, authorization, integrity protection, and confidentiality.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TBD.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <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" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <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="RFC7950" target="https://www.rfc-editor.org/info/rfc7950" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7950.xml">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7950"/>
          <seriesInfo name="DOI" value="10.17487/RFC7950"/>
        </reference>
        <reference anchor="RFC6991" target="https://www.rfc-editor.org/info/rfc6991" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6991.xml">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document introduces a collection of common data types to be used with the YANG data modeling language. This document obsoletes RFC 6021.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6991"/>
          <seriesInfo name="DOI" value="10.17487/RFC6991"/>
        </reference>
        <reference anchor="RFC8340" target="https://www.rfc-editor.org/info/rfc8340" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8340.xml">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <reference anchor="RFC8341" target="https://www.rfc-editor.org/info/rfc8341" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8341.xml">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
              <t>This document obsoletes RFC 6536.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="91"/>
          <seriesInfo name="RFC" value="8341"/>
          <seriesInfo name="DOI" value="10.17487/RFC8341"/>
        </reference>
        <reference anchor="RFC8342" target="https://www.rfc-editor.org/info/rfc8342" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8342.xml">
          <front>
            <title>Network Management Datastore Architecture (NMDA)</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <author fullname="P. Shafer" initials="P." surname="Shafer"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="R. Wilton" initials="R." surname="Wilton"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>Datastores are a fundamental concept binding the data models written in the YANG data modeling language to network management protocols such as the Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an architectural framework for datastores based on the experience gained with the initial simpler model, addressing requirements that were not well supported in the initial model. This document updates RFC 7950.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8342"/>
          <seriesInfo name="DOI" value="10.17487/RFC8342"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8519" target="https://www.rfc-editor.org/info/rfc8519" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8519.xml">
          <front>
            <title>YANG Data Model for Network Access Control Lists (ACLs)</title>
            <author fullname="M. Jethanandani" initials="M." surname="Jethanandani"/>
            <author fullname="S. Agarwal" initials="S." surname="Agarwal"/>
            <author fullname="L. Huang" initials="L." surname="Huang"/>
            <author fullname="D. Blair" initials="D." surname="Blair"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>This document defines a data model for Access Control Lists (ACLs). An ACL is a user-ordered set of rules used to configure the forwarding behavior in a device. Each rule is used to find a match on a packet and define actions that will be performed on the packet.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8519"/>
          <seriesInfo name="DOI" value="10.17487/RFC8519"/>
        </reference>
        <reference anchor="RFC9067" target="https://www.rfc-editor.org/info/rfc9067" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9067.xml">
          <front>
            <title>A YANG Data Model for Routing Policy</title>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <author fullname="J. Tantsura" initials="J." surname="Tantsura"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <author fullname="X. Liu" initials="X." surname="Liu"/>
            <date month="October" year="2021"/>
            <abstract>
              <t>This document defines a YANG data model for configuring and managing routing policies in a vendor-neutral way. The model provides a generic routing policy framework that can be extended for specific routing protocols using the YANG 'augment' mechanism.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9067"/>
          <seriesInfo name="DOI" value="10.17487/RFC9067"/>
        </reference>
        <reference anchor="RFC9899" target="https://www.rfc-editor.org/info/rfc9899" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9899.xml">
          <front>
            <title>Extensions to the YANG Data Model for Access Control Lists (ACLs)</title>
            <author fullname="O. Gonzalez de Dios" initials="O." surname="Gonzalez de Dios"/>
            <author fullname="S. Barguil" initials="S." surname="Barguil"/>
            <author fullname="M. Boucadair" initials="M." surname="Boucadair"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="December" year="2025"/>
            <abstract>
              <t>RFC 8519 defines a YANG data model for Access Control Lists (ACLs). This document specifies a set of extensions that fix many of the limitations of the ACL model as initially defined in RFC 8519. Specifically, it introduces augmentations to the ACL base model to enhance its functionality and applicability.</t>
              <t>This document also creates initial versions of IANA-maintained modules for ICMP types and IPv6 extension headers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9899"/>
          <seriesInfo name="DOI" value="10.17487/RFC9899"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+19a3PbyJXod1f5P6A0H5I4pCx7ZjxjeTezGtsz8ZYfiqVs
bm4qtwokQQkxCTAAKFubTH77nme/0HiQoiuPvf4wQwHo7tOnu8/7nJ5Op/fv
NXmzyk6Ts6usaJIf0yb7mN4m5+Uqn98mz8uiqcpV8qZcZKv799LZrMpu4t/e
v7co50W6hq4WVbpspv99nZbTclOnH6+mKTaYXnGD6YYaTE8e3b83h0dXZXV7
mtTN4v697WYBD+pT6Az+f5o8Pnn8ZHryzfTkyf179Xa2zus6L4vL2w28e/Xy
8of79/JNdZo01bZuHp+cPD15DEBWWXqavNtkVdrAx3WSFovkTVoADGsE+wze
37/3saw+XFXldgOfnl+c/e7H+/eg6ba5LisYHdCS5EV9mvzncfJ/YR7wJ0/t
P/PiSp+U1VVa5P9No5wmz6/zIk1+W+Tzcg0vs3War04TRMKfvj559B9zfL2l
t8fzAj4AtEJ/2SJvygr+nOcNIOH7LP8TjIB/l1tA/a3060D0/jg5T+kThuh9
WuiDMQBt4NMqLdrwjAbgglDiQHBxvU1z82wkVoqr+ssnT3YH4/69oqzW0PtN
BuuUJO9/eP740aOn+vvbR998pb+/efr1if5+8vTpI/PNl1+dOL/d549PcYS8
WIZjfPu1HePpyZNvzO9vnz6lNsfHx/g/wNN0mqSzuqnSecNPLq/zOoHDsaXt
t8iWeZHhrkxK3aPpKuEzAdPlA7fGA5cAGPJRWU3XtIUX/uGrj5Pk8jqT7xdZ
Pa/yGfR+XX60I0Avc/hD+8bzUM7qrLrJYEWbDCGlg9Jcp00CxydJF+u8abLF
JFnDBk3pF5wV+v+mKj/l+ANha66z6mNeZwks6GIFwM1ucVgPxGPGgYGxBPCK
skmuypusKvBzog4/qxkYRMYsu05v8rKCUbO0LgvYCjDwKi3kV1WuN02N0K2B
dkySpixX8GcFWyVfZwTaKl9m89v5KgMEvSrqJksB5LxJtjXinshRla1wakm+
gL/yZZ5V0AfRBPh/kxVpgWM0af0hma/SGhpOCHeIuXyeJavsJltBZ3WihK3K
5uUVbH7oVNYTdhFu8askbRpYGUAhr1gJOLOPknS18hcsvtowUYUWfl+Hy1cm
H6/z+XWS6ujpZrPKYcRgBWQHLsstbIwS1ls3H88SSKvtNjmbz7O6Vk4wSX5T
XhAWfkCIzdNXxU05p71MLy/LD1lh3+Kj87S5Ti6yVUbd4qo0yXJb4Q4yEDXX
VZYl9XazKasGsba2ZHuebtJZvsqbHCG82M7+BD1Rz2dNk86v6aPv82JBW+SM
Zr5QPnbRAAIZMoBgnTW4awgqfv9adwtPDYjUFtDya9zU0N2xnut1voBdzqf6
C8RSVS62NB98cvaKNxZu5DluXGi6ujVrlHzMAQN0ZOQ7s3FpXeD/srNkn2XY
cFPh8aqyGhZrTpvnVYFouQWkbVbl7Vo6us7qYDsMHWQhAXySqwzR2XOAz4KH
AMMtnFPZsNIwKbIGGavZxmZKeGZvYOvCk/mq3C6cv2F0Z6YIcZEj+YTmQtxC
KrbMr3B58ADIyZtYggbor3G1J4SNKwQOzz0hv87m2woYDJNAKyHUt0Ag1oJ2
GKDArQWN4ETpjDLkCXPeiutsDvQur9d1CODHfLWCDtbrsoCVRyqnRNecVqRv
+Xqzoq74xLjkKimXSZbiISZsb3ETuTM9thwFsAQbjXqwBwgwva02SF6go8bl
PMCmHvjQ8uniVv7iIh6cQYE2N7ChG5o99Ovus+NWt4bCc/84PaH1HhKUyDOg
mZ6d2IwfMHiWYiuDhqnn2ASewVoRsVViBn/DbnEgTW7yOp8BhuGN0/0zXOic
AdaOMthBs1VeIyl1SBANj3O+zje8oZR50ar8gDv5U4prO/GYLx6VIuOuNyBA
Y1/wPvuk28EBcgm8DbmecI0E+HmTz/Uj/JoGnMCOgaMNHwAPgYd6zHDWshsW
SbFdzzLCLxP+3BBp3OpAIYGI5MtlViFHIcTaVWZQ1/l2DQ/T5TKf00mFc4Lk
K8F1KECGr7OizlFQ8ibBuAdmAscUjjpQfj4oeL6rzJN75HzUScnbQ/nelbMT
8UxDZ+Wcgew7irc0gHPwqGORhvhIsUhRs0BBRBd5Uo2oLJFZwSw3RNeRLyPl
3cDXmeGhQA0WyREh9Agm7Z8x+BzQWQsCHgwJeA86pDf5FlGKS83Hxm553Evu
jie5jT/GhyqNKMn3jiv3lt4Ai0vxMLjIrOcAsFDB5tpfJ6KpIiE6WxtBoekK
/YUJnQFbb5A+//7s7Y8J6HGpzA+PQZXBrqoJUNoOgI55RrIcCEIBLuVQ0kbn
6VKPMCqh9xZWNgtJaQP7oShX5dXtsbLp99mft3lF39TJa1A8trAPdDU/wI7B
Fa2Toze/vbg8mvD/k7fv6Pf7l7/57av3L1/g74tfn71+bX7wF/fvwV/vfvta
PsBftunzd2/evHz7glvD0yR49Obs90eEbOjl3fnlq3dvz15HthRuaJjwTI4Y
4A+xAVKn7hdc4OT75+fJo6/u3/uDKER/TP4g6tAfQSrMCl5VYkv8Z0OHZbPJ
0grbp8i40k3epCiIpDXo23Bq4OgAdThmRL5ztsPFHOTjKi9rw45qFuwS4IBb
Yt/CWLwzUJWw59bA5BewC2qWGvCjZQWaJPJZORBCRmtzmqFlU87h3NSbbA6y
upAxguxBcg5vZXggds+VZL5SkkncA6RGEGIcUQP3o4gvAXUVVQjFjZTFX0vn
jKwwQ06F7wA2/AZPDnI/2PA6C38sFvI9GY2oPSwCCEN6Th0gQJpfZcoxkB20
2yoPmSSoJgPiRZ5jrsD9CJJe+KT+rQg2l0ryAT1GKmPc4PeoTAgf8PQe0k3b
XIBJrCcfMC68nj+mSACYrbiUnXgqod4fC7Y/qFYZDWC4GyoijlRCVGGLHMbh
PFV+g6tLHOj/Y8Fi4ZK0W1DHNmlltTZQ9dDaAjsNsbDerpp8ynpwRPZX+wGo
IVmBOqmz3WsExJyPbQEMPJSUjUxUMwyZnjT4QMx8qNGL3sNMAB4QgKSoI8Dp
dpEjz50TBce1INGZYRYGwLTrXCgPKYKIKnz88hOJ0FdGyHdkPStYEA3KYBfM
eW0bo4Jg0006/5ABj17C2WaVo1qm8wxVuw3xIRabVAtCxo4auQi0sxSJoJAU
bM2ChwoA2SfklrVvnAH9CbpTKVakQZ6yUbemtGPYeEEA5I5+LsYp0sLPAjGV
92TpaFkKMqjlqJUAo5S9gIYS2CYOkXRffI8cjh+cISd3uPijk+TNLG8e1kcE
2tF1fnU9hX1TsmqmakBGh85u3aNjESENRIiNdZaiUWi5pfOhczHyhCMQLkAI
mDcrxCqogQ1JP8B+1mXdmA2wyEj/NsKeMiwRRWgNsnDXqKnH3zG0iYur4yTo
h/rwj1MgGrJMlaLIVSxSkDbF8mNkp1M+xGb5jV5Ui1Wk0xL0TNsZ8draThwJ
j/tj/u306SCOhWZAtOnRtSHR4axA7srqUGAnGZMagRhCthD3bU7nHyVdFHEa
X8XPWUMQtNPemZXNtXSG0zVLI8CUDDr0SnI5UGlkjyj/MELmOBcPGGcm17DX
4ZhsgW2jpQO0eqRRSAOesdCGrQBGX5th8oSwLdmKJIaYFnnXccxeW5YoHxCb
B8IN7dZlw7vfkwdZGFNpDFbAOGmwzx8VWW/LxtHr37NlVAw5nj1FJaDQ6gNk
GxkV6V7WJoMUUPbp8c62Gd10Yp8h1c7YaNxdSSjS4yXDrYjqv7u4mCTf438a
35BnTDtCTA1araqC+hOupbFPjLLNuOYYmjJspbJC8O0BVQpAag4T6gaA2DSk
GsWMH6KKqsHamLlVmFQjN8IIiGcjI+umYgZPgLmA3ICkFWnvKv+QrW5FUWDT
IB3UPGJTzoqbvCqLtREOfQ9Fo3MUhTCkT8J52hajcXq67F9u/oqs2WKRU2Hs
QomLSGvhtkVGJaxRYWOrkdHxrUl/Ik/Irm/5pMOTiVUCJ4ya+jZljhi53aBC
gbyD3wXjGmpomKSILaLoTFBXA8IkDFgfwoEqajR1J/gfX3rYFgUy8P86f4te
N9ho+FQhrGHsjC25rBboBy8unp/T5FAcAcF0BjMj7An3Q5V52pRT1JzXQAKx
9Qw6zTLriGHJqkhenSuktO0QTNgl5RJQiOJEusoXJD9wI1yTNWz0CYljZEEF
aQSQBidwiz+viQya2ces4UjQM8vm1KiMHqdba0leZ/U1/AVLPE/ZfOyaRgGg
4ASrPk/y8NraMGSnsMSZFvAHru+ft0BzV2JJ8bDQXq9Ri2ThgxmQLOedgOlr
ku3PVaZ5izKxHipxZ9S8hLLljBzGFkCVsTzBiil7QYxL9yycz6XHqeU4A2Pb
lAW7WNCS3KAAXjBBBppa0elpiwtk/JGZmu0fsjkBjlmFbjgcZpZZZgEseZWl
FWozCxaq0Q+PB5glVjw9IAfCa1J5BYvWSLsmCVhUK9kzVXaFDAu3zVZcQfTc
MhN2YIoPBIgpn2+xR3g7KiTvSh2N7csatWa8YAm6fxh0OifyG9pVtHmBeOWV
PEQ8Lar0Yyp+MuAVxr7BnFL3i+yK6WuE1SOYLx2KdQaQGSUXW16g4GJk5oqt
YcZISBP3SB6IOilK34gH+ZqcIk32iY6LmtFpe6VNmxccJy/VfJMX89V2kbkL
ioIdfS3rWAuFRrKkerPRVWTYiQqTUxIVVBmkBYF26Gvc1tB4QvZE2bO+tRtp
Got8+GS6Sm+R8KDE9RB4BXrT5nltTErviC4ZpMmOTWUnNddAea+shOJI/iRb
1ts8kJJZBlSjawRBZ89fo84CYH7MF3BwdIqo3q/T6gM5NdVWYPR9Jj1kk6cP
iOTIqLS5SA4XLhGIm7ybiTiyJ+lqiw6P7n1Bhy/CI3V7PpfzzCt3tkIe86pG
5/sWoc5lO1q5VV0iHwrgVSiPiXUybfTEfQQy55IJ1OmGJXWV7jPkT7JkSjtJ
x8lrx4RuCJ5oVaxJqNoEW/SKBSVxmJCDRXQiR/OQgw8bAM4d+ZFctSTUf2hi
vEydH5Lk0e6vNXliYOL1ZvUEaGFaNTlhQ5/AxNErhTqJWAiV7hTS8a2/2PSh
r+gY5aZLoUk9ZIvVuDeu7Ae1++qu7FWMxYtVa4wRkhLY3bDHu0IZxJXRHVXA
nndHB+voh81tNEsQBtHAtez1s1jaYSzJHssTB78wZt+pEo/9kO3ZHZpB6xiL
znjG7boDNMwyBzEaipVhBCp+0NHWtI004WaJxMtEAmUm2h3bcAz1LQMi5Ugi
cZWD6aB0hjZFtGzCUN65VMqgIoHguz/QhFA7HGtiETw63GRgN7LnxyOWy23h
RH6oOCR211FLKJ0yosqWpS1diDY9W1F0BXIu0n4ERWisXW2Z8agg5Io/Hrod
HiXoE6uAtfCKAQXFKwaa19GGSki0aIfcLzY7I8LAvpH5k7OrC7mAMHLkgxx2
qw1IAAq+FLdsRNcA6a4U+QlasQOZkBHZ9oo7PSGMKGNsbnGOSUBkXVuKRQw+
3HbhhT0LPLE6enLCWcgiEqEyJ0BXWMMAAWOodc8zE0XBUrtrs7MCEfqJByAj
aaBbHIksL0ndscHUESw2QA1n5lNmTIOWv7DrE5Tn8iO1/dvf/nb/3i+n0X+/
TPhfx2vv0/v3/mrsdslDNGbBf/HfXxN8/6vEvp6+iQYAwqfYyXOjxiT231+D
//f8++vgdKCTgFc/N3qi7WRomCRQWlxFZYdOph7bE2+DSgXjO7kQzRHtmfwr
wMk4SDxGytqHgWVkJ2fkuOJoMxGqdoJk3GYb6AT+/b8uIMc07tpnN/HGvWEp
8N4REuQE7weEQyQGd3nsX1cTPHccSACH9hIDN83h7QMPNDv4DuUyaPVSmvAp
fsOM9yFsTI77HO4N9T34nvS8h/b5XhP9a3IpCuWFaJCmt55WXf+60UbUU/xp
naYnjdZqWRN+VnNwOfGafqG75qjiN2e/p2gZZS70EdoL252TU8m1CkX1GuvI
wPf0/Xqm1lyACb1QJGd5cf7qZVCLS2piV0K+t1mljirdVoPKqhtxOFk/wjhX
k7oGG6D8S4ktkpXhhLtKQBzZynKUuF+8vXBt44scpA6WhLSN8bsAECthsBPx
xJuPun03SPO+B76nbpoEJGzQfNUFjmZkgRumtdk26m0QBBj3SDtczCDc6mp5
ZQKHrI4X8ns2C4uiZiOWeuNjS08Fb60K70MDkGt49gbwdr3xDYlXyAuQdXxQ
LMw8R3lUOTRLrq1QLDcquFPcFetNt16JH3S/tfaT2lgngrhbc1QjseVqf5co
ddi6eRCRrlIsc/2p4lpmIWddvEE4hnoz1AVTOwpc6vlh5I1oSPIX6zo7JXRw
ghmeQ03NIAQsctjFWxuwa1wO4opKjTMqdZJMyK/oeqaY6hShE3ZRrtO8UOdO
e1YEkDVMp4XjaonCQrGvEqrpAEHfnp2/EjC4F0WPmoI1TMdoHC1pLbZuYTxD
ilYwIC8wSTgD4phPkxlQxw/hQ9jaKWjxU947FHcnT8ia63yJPxOOsynb7sGe
jwg1mGI0A+p1nW+in0p4FOImtj7RNn5UF5ISs/rPEkwGbDeJ+F/ENH48cDzZ
+cw0wOWjwRmN2/E9KoZM69a1GwhTAU6DYyRZLuEcC3aaUlh/6oXBcY8SJ+t6
pmLDsy19yAvhB4ngAEtrf7eKa8RV5VrkWZmv03XWtvzSXk1XdelwjlYMEEp5
gY+7UxwQ/oRN6gzw2eRzkVyUYEu8es8xcsCDUWZkBB1rGPOcSjGDIb6KPTeb
SXptnX8nEnFJQajx2MZ0J/pKkJKQYMxRLPSQ50RoR+A5oXPHoXmOy4iezrYV
kJIaxqQ/0WOuHhaOZRKg+Tzikz9vsy1lsdTz62yxpRNkJkpf1NfpRmwhDCO5
1Zl7O0fabB92LZtNhLh20OUFL9Hsf3fN/nlXcGBDcm1DvMQvfGoMFq87/cPH
Rijv9QeTQe8mq90+ejzCxgdinG0ie/hWMAxNCNmBTfqxmQmurehy2G7LVkKO
jI/ZyIRVCq5jQJhAgVnm98a2ONzRgH9xUsYO1ragUBwiJeLciRAe9AV4SZwV
vLpBLsI9m1PT+MQP07a3qxQJrqUvXtRdzim0BXq2lvbwt46pUBuxoJkmnieb
7Rp/3pbAnEww0my7uMqs5xV3ChxQ+9jYAtuuVjO2YokOAH6VN04q49ToSBot
kLsuQE3q+KLXn8Essfu9oWOhHNMD9igq1PZSE3lgbFl/dPiecB1/SAvgPLX+
bac/570GR/ATdTtkn+boa00dt44dksPwfNiMYsLBsxI453MX/UYTr0ayddk8
VqkG4dLXsIuuPdRyj4ZTYa+5d5BBSCkxbYrDO9zYIjjZwiFYEPPCefM7blQN
JFGKrezW97DhQ/8J5nmttsgkJJkT3zoKuWWwW02f+ZxM1lOtMP4WxO3aiI8t
DScWaddWZqy4K5Q9Rq5FQ1hypLthlU6ohcZB+fENNkoiK65AmJLIiIvsirD2
PviY4idU03GjzSccEpTMAOEfKILNDXhC+1ufkCciHq0eU0lx7cAG/phWC1dA
YG1X4dI8J0zsKWpr1JLtpsJhREzN2+FXOP7UuNo6hEC0JlxYx6BTKYXtk71m
hZG+9S++GHCk+i6ZgW+ZgGiQ+m66ektIxjFCRhl4jvDcim9XjARBQJ4JM9/t
0Il+pMooY1SMdyjkEVNH4w8+yjO3wkNoRgkKPmAWZgCd2Zujk5tZ+rAEkyE7
js49qs+3acQzee5QClGRmVyY9z3KtKMt8wOPwhhxW7iIb2qdatqUyWq43WQd
M0ImAicUDbcaHbgtcmDwdsGNGYEQJvkJvSEsbOeMjygM1MTM+UB6Vip6RNid
0xlw44KsO16WozYY7yDRUWxPPKNUzCTVi2CD2H4K6WVmO/hEURazIBYTP3Zw
klytyhktBvnD1VZIisqC9r3l0bQry1kDs2Fu4SZRUzibsZUby3VgDJcMLS+W
pMOW3jR4svyHNvhXVfJiVgr9D8wFPYHLks+3LfwwSuh8W3C4qAmqdFCYiiZS
siEp5wQ5zZNwshUjKowKPCvJWmVRw6ifboCXCeWnvK9arbWOCW1PuujsX0pF
3KxMjQijZ/RU2SFAooY8kWyEStGa8fHuFt+I0miQMiftuvUbFpZogyQNf5TG
Y/KM9QLen8nitkjXuRdq7JEL+tqLdu5I7BMxaso8Yp01KeYdK/ELzqSKqtaW
0EJJXvsB1M7seB7RcBehWBIq4hIhp2ujobuRnNo74EHQOvGQoxiTohPpKgsX
lHUTlYKHLM50nlH3t385Ok/7U5QKAunJ5m7awC7e23HxR+OxeDdLuRxYzdlK
1HMsYdATYGSOl7KStiQkcki3LcZKhDufQc7PKMjwtaZkIGPBcEMaaQGWbToX
NT0K31Pg2gq0ziQw0AcJFOFr6EvTVDL+ZTJpWClm4yQ5Cayj5NU55nQv8089
3/gZH2of1Eciq/NjygUJIXMzQ+iBp0EwbQiSeKxV8iYFTZCDN89vnjgpPaGM
o+IJqgKUO+AxggjSZ1mc7Pln0BxM7d+rGOWcYE2xOE5ecHNrCpRt75G0MLuj
I6FDOLF8pCQOyFExv65KLTE4cZ33EgyntBIzhfRZKWiSSaTGEuJgxpH4yHOA
JF3dLCR9hU+5iQpsWUFZAZ6Qwb67MM7NiTr3qKZCgv4NHMrEbVPCiCDe8vyR
coM0Nr0TUGzTHLBiRhXz3BMPXEOpANuOPpds2GGIgfDl6/FW1oixmJOYnISG
iIWVdqGbekbZaWqBJi9QqBEGggUKPYNRv75OO+J71Wu5nAEpgyYSlK3fZHrB
PAQuDtU2AmhqirE/9yRhRnMjeEeLedpJNNcU89aQJgG8J2rVfhNYILa1sVGG
r8WJ6Fn9pvzQssfoFFSP8iehE+hxXIisppniYYI/O2Ti+eO00+V052t+BltL
MsNxGnBokcrRGxvZjGm/7R4VJ7HU8u55myIFsodT9b7YpAOzakzPnI2jZr7a
SvlcUaojh0Z3KUWgdyfg9Jx3kRrjNIY1W9zlJqgkbvK6W+4La6jmALZsqF2G
SV9qIekJPyNzMm8jfTa7baTsgglzUTdBLdI+hrz4z9CYPdWKGd4bTAffrjOJ
O63t3stMPp34AeT8oxDLfk9NTcTau5k9d2HWDzoVCS3PNTLVGvZH4QeAZ36m
KajGmARa81Xu1ELztyPyFZKOa0/1Crmlk23lJtE4NEOqt2G4zxoO2Lby0tRG
pWD4pHtcE7+4Kho2jCkdE6OZ68y9JDm0bMeopk1Y8YpIKK81moEbTn1B5LRd
TKJNclmw5C7FXCMbWQ7TaZhcR0fabKmlT5QpFM/9G1sgIaJWNGEs5+Fs1Y7+
t6S3Lbd0dm2yj8bGkY8yzlrMmZ/2DeD0WZdYdQEBp/i81Wpi/ayRJDxMTHd5
BFEUbxCugkTFBiNamCsSss0XMQQCKZzESl3qhjPAcvjRhdvVQhCqc7CJeUrJ
4lOGrU+VxUitER7VT5XR9EcGs8i+MQWWIol+7e6EbHCSTqw7E9/jxwdYqmDS
iCbtRRG7n+HVfsUXIXLmoOhhfc+1H40dROssBTRwOLknDXi4zdnyHnMbLvzW
ImqOkApbArStupFQTT27Uh0/z2o1VrFtd2pTrXRAj8ZvCyMZe89FE6Bn28La
HlR6DgUgtQ5wKaNnAbsQaWxbULlSM5iN1L2q0vWaNA4HRmsQX8IP66N24TG1
nq2N8bl8b+gtsyh+yHpmOYeTxLvKGAz78niNoKQW84CuEX3pOyvcU2rYEy7o
3MzMyYfjsOUFoMCUg+I/VRs3gX4brPBGaVSTINssMNKLWms0UthYecnSTYdF
ntXfIAvcEHXRLyyvV80nL9p1QM2qqEfuOZ03b204ZikUOyaxAx+TItyauTNN
9euiXAK1pvf5h6hG+QkQSkfo0bGflvbRYcAzk9P5+FhzyVDfZgLWhtvLRrPW
my+PuYbDrasUSI1jGjD0wkKbr44NJWfmEvmKD8rXxyJ6k/lQqQ3a5JkHtsxt
P5C27wcPYsQH7M3Us2uyhDyl8nILG3xud4Q9n6yvWJbp2C0c0mNNt5RRqaE0
BgxTfyOEY4EloRbMtmYYTwNrhOtqYJJTg9PacKQn/CzZreJUgfMT0UWKO6/K
Zb6SqO0zSxc8l9yGP2LzbpVta56P5ubpkfIj9SSEU4v4avBWRw00Fl4/pVSS
Du2srgEYSyKukarA7lWraQAaUSBEJTHrUf2IC9GqBs7LWBx/w6SKhnO8MYe+
HQAWKpJ4Hp+wDbHvw62JGOzGPmZ6o3F76Vue2XztmmrV2KofwASm8qoDTqsf
Osky5aZxyjh6LEjXo+0BcD0NFFRpCnSS8N7vdwAVr3HrH3LtpdyYE2Luhuhk
esKevQOAbmKJyeFyJr6/xYvToSdO8E1t4namTtyO8200gCeXmrtqreP6JwJ7
3Z2SxcxIsC8R2EiiCXxH/pF5+ahx7A+edyXAnARhiV8hcPXDYrasPpMgPcVv
0glD2xzhGkh8d4SfEiPmh1bqSCDF4Wz4kZFNWJeLCCT0IpBJjISngtHU5CEo
Qe+cHNuaJf7MD/V3vVhOSVMt5+alLqggoeSycUpbuQW+/LJeTjm2wZpeyuAH
VwuJmD1Q4mgYvda9rWWtnIjxaGIQuXqJlEsteGc/a9B2GSk1zcEEXk6VULCu
pCoK4rDXYRhX4QhnrfBsz8BhPLF8oRdFXeJn7kfWXRvLS+uImgvKOnXWHJjE
/BGmDulxNyx4RtlCAExHbS0O7X3mBA93GjmsXDVkwlZ1TpuQJtWhvbnX6oh/
c1s3Wmt15pQ5iRpInKD0Z9Zi7WQo0K4wJKClg3RoVnerSEVJvV0pAK+Wg5LZ
PC3E3FIDTPWSUhK7DALotmLDnGuB8dMGuLAFSyaXkX44eE67iOpDqWPq7jRx
Gz/bRLYbJaXwUqqqMEftxUhZgI0oAplubsqalUC0lPWW4tAv43jCBCoWeRwM
edRcKgYbHPQ4k6ysv1LzgFIDCaY5V7sr0CctkafPDHHsmLZKY5P+UonrdBNe
IxYxNTj3B1kHpecL7znK4Z0yNrHnna/f0F10vck+9++91wgk6Z3aMPzAQOy/
f5eHKb7XFRceh1/+uzK86aPHX+I3otNxJIX28ejp4+OT48fHj759+OVj9ytc
XjPSV1+fPD7Bt4bRenAwYzDvpo++wYm8bS8bzeWM95efQmX9KNNHJ2tiV/KB
CXiBVcbmJkLLDf11Chc4Qf4SIkE7NpIPcBwKnU60dBgcTcTBaFbqgHa9G15x
JLqqKIygTMmoEAjkK7nmJF460mFS+P7HvoNNl1NsKhRyrcG2bfSOWbjjKZrG
6h681hlQqgfz0qBIooq33bUkmU8OVZOU9Bq2QIQ3I3kfCZMwvlebmOM/ilad
5E+soy1SftKXffwSlGetz01Sjsl8iBXFDJOJ7K1mERAlYSaeutMKMi/HJ+XA
nosUJ+04wEP7TELNrCYQVl0O/YCuUOOYrbwr6uJwd+w51GdNfT2VUdlh00ok
1Dehvutml0aVXBMxpgU9zdbx9dvas5OIpC+oioizUZm1U84IgidEVhoKiYi4
Z5ihM2v0WNpQXnRLK0dD5xAIpsSXk8QA5N7c8PHGhL60QUCuzuJKHRY1r+ZY
kWBO11kROWbm+JFsKgwHxSjQzUU9bXUsp8qekkNbtk+PtSm6MrHpQFxDg+Ld
ZF9NTCi3ZtQxOeFLJc0fTnqL3myY36BjJWBTS/hB0R9FTPBxK9ujXb1u20Ij
wpCIYLPMslfYGn05xOY6th2CSuWyTPLL9Wf/du48KsDTfbEH5zHZzQTUgIxb
zlrAsY1asLwFkPPrl8y0N5bZlEKF3FYHIBlEWFVY98YRMKK5J0ynafHwIHbI
rab+CSn16OPsCR3zMUnFEaKZHXqZVraGZb2RmANzZWipF0Ni6OgrrZOjNtJI
QVTdMMgQpKqMMjfapu3bjDcphQoyJcyVTDg5bi8wptSJ9ohh1hHbKAQVd2Zf
lo+WOw+EPWEpta8bU5eTto9Ndk7ZBLed2a6NfRKx6lsVdDGtQCRB8xq+0FCC
edx84JuTvGeOcsP2BOdapHhn3mFUJheLa/MC41yP14MOJNBlgIDZLTspf/7F
LQi9U37wC81m4GNhrgx3ryNkxRxr1bpm3lYha9wg6mv2F80s6Djch6VkZBWG
jDnhaihS2isSzyrzN1uQbLhbVk7pFsfWuuik2MvQnRsrgMKzmyugckOvynRY
FbyIplG3nBTBeZJTa9x2oS+s7jC/Gxmj9lKOO3mQ7/zoNNr2TL3XZRBZAYKb
PUlo/gk9Bh1p3V8EVzfi2cLn70KSE27oPU93JMi3HfTaQwiMsRADYtT7nq8x
PWC9kfr8LdCdQBu3UEo01D6Nx8QOhLGiSuMSIp8YO3ReN6BHtjj5zknQkIAI
JF0tQWUwwqHddSvOoiO0CYMJJ1zXg5K36+tyBQy0KinERxKfLDzb2gDaEa7l
l512ii4KryUy/Yaocm8muUvOBxms4r7B7HOQAzDSSEI+lOI3LjWg4gV0IeqX
X538UZfzElu/4NbGuMYgnCZ51izZhDBVCsBA4JdU7rISAaf1XuthVhICCpKd
yRuXypvyWp4/SP6gkV354o/2oyT4zrfV8T9MVkU/SGcbShX2/2nCIlC8SENO
OYSxvhs/mO8MnHIK8XcDALopjd+NG8cmPbaA62wjOXft2STJDFSlLC0ijVhP
I1IbNvQH8pZb9oNkwmqn/I6ewkrT/zvWWd9FQJ3+KnkY7KaH8uOh3R6RPlns
mJqtdrg+UZSZclC3xVH/3toPrSxXTJX1hJiV54Bb+dWBXfu2hd3BUxRpszf2
jJDjvbMbRchJeAAjMLbaWFN95+EzbYxpPViJvjaeud/ZS0Bjm1PYDfwi3tYR
VbwOxrQ1WZdTNYkw0FuYxLf9oEIjb4I0HHVVbHEXjwDW6WJcaw4haJPQPtSq
kUBDCb8b0YYMChFK3deGLJaUR+q3QlSytyaCjXq+idHPNvr5e4pLmGKo0ips
hlraKcp0FEnFt1Jy+xjjVLUnPPLyHI68/Oo48vZtC/YefmGd5OxxNP/6iZsN
kGnhKoJcbvNzDMSa6myNivKL7yILcfpzx8Ax9b0Hvwi/N6jyv4t8ltg9zyVU
eYDveuYbNMRipbAU+L/WOphPva+dBYnv1aCNHGZLVr/bh/y2+3WP+cE7lxCX
oc2ji/vnsp667oTuJXW/6lsXUxVTnKAfZhuUm3AzPvmqr6FTOlOabrDlcEOq
rjnF6ppTynyTgzDcsIPCROm7t/WMY2CK+OM1+87EY09tBFzHgTJFINhxNoj7
dtmIfvCsi44xOQaL1oenbcag0KkN6LVqE3W3FZEUoNcu8odbcUVBh1Ikw/vb
r6fRwnBiN5/7XeQz/0tL4vtEHq8ZbRpQ/qfUASpI3/VB77YVi7/ZaDzz4d3m
9hHl9MNgR5l9t6akkcNTCT2Oc3ZWjqZy4NUG811UMwob6eberZWeM21zcCVM
6Hbqxvb7kNhXwLXsHx0yhPdBHxTuWoX8yrbZW23o4lV36bNHPnL6VCnsofx4
aJsdSt9miRFjolrtuiXGVvv9JU4nE7dDzyxH6pnlHnpmuYeFp+zQI/kdq+WR
JegXYkvv/tkp21bHNdT7v4AsLIfVHm7DWVbAR5p9Vr0kE/FUrtUNuhnVnhMi
693G93aNWIinagEP94z3/hbJjfegYwe1PhqBy93JlLtTHyTJyDb2nLQVpYEd
EkYfW2bWPVqrDbPrvjaOTOix6WSYU7cHFSu46aB3hrbkR1QDDOQ3WTdNy27v
wvFnQPIjgy5GtRevwJT9Mr6ppHey2jDCpbtJFlryME3Wp1nmvZTNEHnEGnlp
JiIzBFhstXUVj7FtTXEOFWqkgzFtuYJH0HBkW7fSh9vDmLZaC4QlqqFxLdWa
Fubcs29n4b1TOYL2fd8X7inhsHPvK/IxTY2PaUo+JvxGwmq/8HxDyQt01ORa
FdtxxXR7YpK/4IDk9pfqOsmj40fP8GGRrrMaNpFs+KNtVZxiP6dkYqlPP61X
p0V9Sqjq7P+IupLQ5vQK3fb4IF+TD46a0eB8I/BfeCj5HF884yeGHAl6kqP3
PzxPnjx9+ugUL1VcA9iECApFucS+eOCf2sOh9TE6HL44zHByt3Jqda+jVy8v
f7AuZLnvyHo9z4ByJL+TUDiqAnokmKJ8q3kj3fzux+R32ewUfv7bddNs6tOH
DzGMAjO3PmTVMU7wGEZ/+PHqYbmpU/jfr2QK0PI1UA1o+m9r2GhNecof/Ie2
+ZWO6NAiGZUcjrKT1N/oxhYt03mQQGnCQ2T0QU8kfWUjtGzxfMz34Zp5tR+b
5F+JJT303/98rIBYzqU3uEl7djtpWd+waK/EAtqivhyNpW13CATRxNJFiW5W
6WB0VWmt9hvD3K5Xe0sHI4qQ8yhhX9LeQUckN03X0yY3UyVGfSp95D3Xgtpy
ok7sLkEkjXvvZeZMX+cSMxOLIa1NkZR44hBCo7YA178vrVdeVSMN0tAUTXeV
nHMUxPpxFB/KVYm91Y5Dd6U1LfnPanvJna1+bwCYSGgI5zit0oJ+SQdyAwny
vKbazrUo5LrESVHEq3OlNGZV8CV6ujpeNMWxUosqu6GI++TxyeMn05NvpidP
lK62CAnSQeRPeEGfNDs+6iW5/wf+nQbUQ4oQ6EUkFHjokd+HD6iPB8krlr1U
pXjwULiBqVjtuPepSnUf5N/je9N0aS+UdOuJ18c+3wlH4lg2GYVGbMHwrBuE
VmCal/cSqRU/Bhp2tX8umCRuD/cxBbIOQCR3wX0uYLj7IazE4jA+35rFLyUc
QJOtW/3ZUGVvGOmHxQtB+WzgeHy4A6JWRMUeZzoebCqmoOFxnaA4FxNxyHrQ
8WOkuLjTt1QTHobHVCA/ODRasDhe6nwYMk0BPDhgsRLoHeC0jC97bJh24ZSO
40L9+4Gw7tzjsPTM3U2TB6kXcwezjlsgcV9rIpG2H5WG1jcVDeH9DJMI066c
zIkxyHXKy3wO6LBQQSz1WqA2CB4NvTpbOCZhbzlEL/CODyK9y2WvLlraw/eg
5Jzba0FJFfPt1Yv9w9PNsnsP/gJb7zs0X4a8/+Dvub1T+CDx63AMzZwKcu0/
Pmdnm7pe5haz/mH54s29B/0NNd93zhRifTulyiV7g/Aj24MzL2CbMqBZeU5m
QEw/9APC0etoJ9RaM3uDc6ldeSW9pduuA952lu9zzLUXVoPpdqCO8dinzzex
eTPtAKTvwPMFcqm52Y3qoC4kdRy76QViOwPccgUCoIcHAoZ75SJq2CsbGfrg
4Hg9EP/ntwdDiNvnEB442Kg+FAJ4cOqwZ2S1UO8tDNuC03JfYTuHZWDoDnk4
AlnfkfOvdYheuzEAh947dDAgIpd8DK2C3PxxOBjCO0Wi1yENQBVVEO62PPso
Bm2P+R7bVYFwO5OMoJ5Rb6fm/i8XBx0QjcSDqR5t7hnphcC5g+ywMJga4uPg
4LqphwMhlwtN+kfVy1UOO3XpdYzqx266O+p+1EmXfsIjaDmpTqXEAjIwURH5
dy4sb5STeIH5fvClGtdngD5Stn4Ak0G1+s8AlFMhbAxE7aOzHxiBA8KpD8Qj
ROrh9wPGbuU7QnbezoRERMmNRL3jm/L6h0eOWSt7GUkcFD8+444nPUjC7RnS
hBhifXep3uEiIQLWuE1qE9Odew0GjF0EkHJ2t8T0/hCdDZWvHgNKjPrfGYxh
BkAwOAXzp6bi40EAMb1JGUCvglL0nqY+OFvRWFO5T+COwHZc/YBeSu6/D6h2
WJlzjcEd93n7RhpbUJLG6F9XG3Or9yfEyOBuYJ07lzHEL9rqpYYuXOZ6g4MQ
g7m5wUGCA9x7XfugsVdEuAfhMPvf9t06AT5IxllLtnwTMqy+2it5ag7UtLZm
hDgM+AGoq1fW+N0uIOneJ6o1dY1s1E77N97uBJW9pZNeqqAkfJ00B+0902cR
ABFEzzjv3DKpvvCfooM5JST3GFSHa9//2TGsrSi5zxTjF2qaLodGn67yugkK
Y/pg+BmvA+BccDkQc10pBqoE93A5VSP7QGon4N4Frhexu1T3AS6S3BvARVlg
A+AACO2rWRNO0u0Y161KGkGEk+U7bon822I7Bg0Ti+82srsIo4Y3mcmHOxmt
q287hg7Tng4HgdJI7XnSulV3YvtAokr38g7Bq/lWh4eT68ANAmAztSPn4cvH
9mGSVHShwdHJ8fGjk6++/fqbr48MgD8NnRvvbmG+HK5r79bzTexoxiF58uVo
IOx9x+7IZnjDSP1cZidfuo+ran1bE3Q5VH/erRUVck8/Rzo8vDZe3kVJv6PG
Qw51nhw5HsejQQrAbQQgNX2H85K7AdrriowBM7ItwB+y2+RIkrSHRj/zh8FW
DsYEZ5rw7aAkdpI6xkD3JYWBt4+LMw+fpDvZVOGg+FmwPgk7pY4epleb01gg
OL0I8uuO3Pbw75fSXtPunN8eHvGfSJqWEi7TlbMfnB3RjZN3UgZMy4UNR/B6
ANuiYrpjzNrFMRvPPvzXR69bYO1z4zgkKv1kZZiweDNdp8UCw8uxSvo2G3vq
PFe502OUPLt1CUYSZzemejwVjhU2iDCmJ18ZsLcFFro++pCvyhn+2tC1V3gZ
whCJ+17H4mrZHawxWjFhFEiS6rQDROd2rF6YwmIMo8ChLwdxgj0n2PPfT1LA
2n7rFKQprOKOx68DlGiFiJbU3UoL9CDtJygDIL83F/YAxORVlMqSuPdtBFBQ
0LpXDmoXodhRFuIYvr6khZ7T1y5q0b+z4mh5k37K19u1qGho9dD8N719xrm9
2ZSp6FJrgooZhwFIyl5Tet0eQIUFOaJS/M5ARSv50x3FegN4n1HkJo0rEyEZ
YEo0SAjejMeGVzLk4IJzXDiloUzhSl4EulMMQTHWvI5D5tchGXnAzr1Gw5ws
KGGyj675ytIsjHQxmqe5pRKlr24FgKBoR/PsskL9sUCD63TeGRzWouVe9ZV/
CCKulgZLyN36745A1UnenfkdwkTydtgYoiYQmMq27sL1Xcwfb0cYOtoHrlWy
pu+gXe55taaBcv8rNk0XpvbtZNQNm8HRj5feCdAtFVMcfIuJgHbvEHl+WXAF
bBqC5ofinSm1LDWwA49ni3DHq/18DkDDC3d2AtAvLPQ5wPOv/ukBLmK58it6
2DoIfXv8XaQ8dsu+noaX3YX7LKipECDGrxYwdK6NFKKdSefqGY5A0l4vr1DD
YcDhrvYBpl354UAI0n6NWNvpEPDKRxxmdO50aOho9YnDAOB2PQRGUMjiMABo
p54QHz2jxotLFREK+Nx348qtsVkVLffdy6PKjaQW2j7QFBQWH4hVGLB8SioN
2FNtOwuMZhZzcew8txHNOyX8+yZd8m5KEI8jX5HZOG6S67Iwne0EhgeFCilR
S2SXfbkTEoDltUjNoP/AZnVkFk6tjEDqdzAAt371U+cUfKHbTKLT+DeQqGqG
s390WgD78IIVQvR2432naCrK33WRLjnF2lmcmLdZ7yDuB6o3VXpfAM9iCdF3
ADKaoLwvcBduHvIdgGpncO+9niZR+w7gSL3BCCyh0MfAiOCHZ+Bov2XlyhrB
ld/9QDp93/0QfMI7Srwu+2HxfvzUZiPutQU78BCgi5qb4t4x1eYWXpUG/Ee8
Qi87GMUpCneIGCcwVye0sRv1SR3EK7WbX+qncevr23OaduQsKbqmxkBN98EF
gIXIckDw8caRQf4dEf/8KHxD89lDyOnEUzu/fw9e3VsjIDpBoVXRKg1jidc7
kwVHWd9B2YF/CLoV3ajejwjVCm4FGSJcF7HUu94LuFt0TCO0Q0pmy2iOk3oH
r36LETinquwdF+J7jXePRVT0iaj/PNR1L1H3vPPquzExjS3UOTvVxO7+ZRwk
F/Zq45EjJwld3+pGGvcuqVMvObKm7cKhY884fJpwr3xXoHuhOd4JjsPuetCD
KtQ7SCjB5YntE61X74Un2npkxp3o1mWDjrslwHzM2WMQv9M5PvevDxx9nNt1
e3dnZb31SIKVxX97Hcj3bDfKFp2VarqmaK9iicwt8HgyDMJpT8ZyVYN8Heg4
SX6dX2H2AoUn1FTQDCsNJNf0OCBuTsNuCnJdor4WvyLGn9he+GUyg/7QdN5g
MnaRtd0W5DbIm1DCjLo0BWxKQeu8qibcT44e0vtdz0xoNjvEebZbh/PxXxJt
7Qw+DT7/KTgELdSEF710I6TvqyF0xCOrBmfZEcO16xy7Llbpnms7pmXfDdAd
3HKn9e8NutkVP35wQTdW+r8bwkgYjTA4x86Yh4H5RadqZ9Hp2R2YRMTLq6GU
Md+uV/PPm1cLgH8ApSciKrQwOigUObec7C4XuZdHt0Qj52LcUDryrhoYJyC1
RoyJRv4VBoeRjpxpjNd3+qLI/+XUnouxAeSj7f3DseL/YEgcETM+2vZ0iMjx
ZDSqe7WJu6NXNadu9OqVQM7vz7BH37fSvTvIZkvV+bv6BgJy1w2nvf7okNr4
RZNWDd2dTpGBlhLScKDdjYLq4EaClyiOjQfK+xHhhO2LmyywbOkLDnOcPbbv
lKfiGdr538VSWIwa/5/JWrjT0D/uwJIcS1lAq/5FLHZ7ex26K6KZocbM0Hcj
DOKSCUj7MrHd4e8vp7XTHP6rVV1tt/m4d5zddXN7EcXasRtwOh4se43aIcn0
c+wVEYVtBiBoXcR2SEBep5ijyp2PAcbe6nZQroW9diPE+xHzsQcXxR2QR3lx
jnnMzO1Hn7b1ufC6ubEu+diFI3CYq9uodte61O6OJ+jMH340g/rMaia550E8
XWznVA88r7siUaPgTV0B4hBYassrXDaGomR3BK739r/P70XoOZ1GTtrVVRC7
lfCuOG+HcHSVzBoPVUd84G7WKCeYb1eIWnW8Yuvdn4KD/w6naHsM1I33xut/
OsqD7eIZ44sf77ipW+UBI1PcSyN+2VW/s2tu9m7KDpeYE1zdP/SPtidAtV69
F5TaiQPhXnZ5cL8zdGmdzgFvmmXzdM3p7DejhBl7o+bBRRnueowk45cw22Mv
dtdAM0OOAfsHr2zkSKAPaEU/s2lVizy9KkpMnUma7FPPgQ4Chbxkm6Hxnncl
2/SklfA/9hR2Jfv0i4ztjIS3zrUBflKCf6GAf52nzjKWknDWY0egypPSR6vi
QkQeGZ8P2GNDCJIOI7aD8cOc+3GSA3mHHgqjt572IRKLGAqLkPry7fquHbjs
EYR3qDA1KPz6mO0QendGbr8/JUzM62ang1nFQ2x0IGH3bfaxu8b18EZoX27b
txmGSwz/b1z+Lu41uPR9XGtg2Ts4Vedyd9xS3E9CJZ9t4oQEUE4154dSl4np
0lZ6lr7/1+4Hi+VIgYFRg14apIZFAug/P9nLpZOLbL6tsITrc2CdAFqlTPT+
PfNq7r0CDr/Ci0nRfgRiHQUQJcttw9uJr/ysj7EDvkt2tSo/kgm63lAUlWg2
XHx9vl2lFfJYxElZnGKzB0m6BQECHsxxdL1X0r3RlzVz2DB+yD8KDty6rORu
ZsoxtUV00bHPz5npcAusgymxH05V2QjnJ9ONNMluGGZswnXbS0qCu3JqVG/r
LDJA5wW0mrxMbbh+76okG4RcA8t2LD/8i+LO6nLl0OXczAu0iHkchZMgTZvv
vHVjwVblFXdT40bAkLf1elsYYSprPmZSMcRPzMR+tIRjS3uun/GNxLhMIKxq
AWFnlXhdqJdISXbeWWdFcFdt8ua3F5eKZi5AY28ItjVpsWxBRSuDxmStTSHz
c1psCAeAZqRd89WWmphdKZTM22cTGuWq4rugdLUnsqyw8QjzKU72mE/eq7O3
Z5FTd/n9C/jgfwBddphTcxwBAA==

-->

</rfc>
