<?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.23 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-koldychev-pce-operational-08" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.27.0 -->
  <front>
    <title abbrev="PCEP-OPERATIONAL">PCEP Operational Clarification</title>
    <seriesInfo name="Internet-Draft" value="draft-koldychev-pce-operational-08"/>
    <author fullname="Mike Koldychev">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <email>mkoldych@cisco.com</email>
      </address>
    </author>
    <author fullname="Siva Sivabalan">
      <organization>Ciena Corporation</organization>
      <address>
        <email>ssivabal@ciena.com</email>
      </address>
    </author>
    <author fullname="Shuping Peng">
      <organization>Huawei Technologies</organization>
      <address>
        <email>pengshuping@huawei.com</email>
      </address>
    </author>
    <author fullname="Diego Achaval">
      <organization>Nokia</organization>
      <address>
        <email>diego.achaval@nokia.com</email>
      </address>
    </author>
    <author fullname="Hari Kotni">
      <organization>Juniper Networks, Inc</organization>
      <address>
        <email>hkotni@juniper.net</email>
      </address>
    </author>
    <author fullname="Andrew Stone">
      <organization>Nokia</organization>
      <address>
        <email>andrew.stone@nokia.com</email>
      </address>
    </author>
    <date/>
    <area>Routing</area>
    <workgroup>PCE Working Group</workgroup>
    <abstract>
      <?line 51?>

<t>This document clarifies certain aspects of
the PCEP protocol.  The content of this document has been compiled
based on several interop exercises.</t>
    </abstract>
  </front>
  <middle>
    <?line 58?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Due to different interpretations of PCEP standards, it was found that
implementations often had to adjust their behavior in order to
interoperate.  The current document serves to clarify certain aspects
of PCEP to make it easier to produce interoperable implementations of
PCEP.</t>
    </section>
    <section anchor="requirements-language">
      <name>Requirements Language</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The following terminologies are used in this document:</t>
      <t>PCC:  Path Computation Client.  Any client application requesting a
path computation to be performed by a Path Computation Element.</t>
      <t>PCE:  Path Computation Element.  An entity (component, application,
or network node) that is capable of computing a network path or
route based on a network graph and applying computational
constraints.</t>
      <t>PCEP:  Path Computation Element Protocol.</t>
      <t>MBB:  Make-Before-Break.  A procedure during which the head-end of a
traffic-engineered path wishes to move traffic to a new path
without losing any traffic, by first "making" a new path and then
"breaking" the old path.</t>
      <t>Association parameters:  As described in <xref target="RFC8697"/>, the combination
of the mandatory fields Association type, Association ID and
Association Source in the ASSOCIATION object uniquely identify the
association group.  If the optional TLVs - Global Association
Source or Extended Association ID are included, then they <bcp14>MUST</bcp14> be
included in combination with mandatory fields to uniquely identify
the association group.</t>
      <t>Association information:  As described in <xref target="RFC8697"/>, the ASSOCIATION
object could also include other optional TLVs based on the
association types, that provides 'information' related to the
association type.</t>
      <t>ERO:  Explicit Route Object is the path of the LSP encoded into a
PCEP object.  To represent an empty ERO object, i.e., without any
subobjects, we use the notation "ERO={}".  To represent an ERO
object containing some given sequence of subobjects, we use the
notation "ERO={A}".</t>
    </section>
    <section anchor="pcep-lsp-database">
      <name>PCEP LSP Database</name>
      <t>We use the concept of the LSP-DB, as a database of actual LSP state
in the network, to illustrate the internal state of PCEP speakers in
response to various PCEP messages.</t>
      <t>Note that the term "LSP", which stands for "Label Switched Path", if
taken too literally would restrict our discussion to MPLS dataplane
only.  We take the term "LSP" to apply to non-MPLS paths as well, to
avoid changing the name.  Alternatively, we could rename LSP to
"Instance".</t>
      <section anchor="structure">
        <name>Structure</name>
        <t>LSP-DB contains two types of objects: LSPs and Tunnels.  An LSP is
identified by the LSP-IDENTIFIERS TLV.  A Tunnel is identified by the
PLSP-ID in the LSP object and/or the SYMBOLIC-NAME.  See <xref target="RFC8231"/>.</t>
        <t>A Tunnel may or may not be an actual tunnel on the router.  For
example, working and protect paths can be implemented as a single
tunnel interface, but in PCEP we would refer to them as two different
Tunnels, because they would have different PLSP-IDs.</t>
        <t>An LSP can be thought of as a instance of a Tunnel.  In steady-state,
a Tunnel has only one LSP, but during make-before-break (see
<xref target="RFC3209"/>) it can have multiple LSPs, to represent both new and old
instances that exist simultaneously for a time.</t>
      </section>
      <section anchor="synchronization">
        <name>Synchronization</name>
        <t>Both PCE and PCC maintain their separate copies of the LSP-DB.  The
PCE LSP-DB is only modified by PCRpt messages, no other PCEP message
may modify the PCE LSP-DB.  The PCC LSP-DB is built from actual
forwarding state that PCC has installed.  PCC uses PCRpt messages to
synchronize its local LSP-DB to the PCE.</t>
        <t>The PCE <bcp14>MUST</bcp14> always act on the latest state of the PCE LSP DB.  Note
that this does not mean that the PCE cannot use information from
outside of LSP-DB.  For example, the PCE can use other mechanisms to
collect traffic statistics and use them in the computation.  However,
these traffic statistics are not part of the LSP-DB, but only
reference it.</t>
        <t>The LSP-DB on both the PCC and the PCE only stores the actual state
in the network, it does not store the desired state.  For example,
consider the case of PCE Initiated LSP, configured on the PCE.  When
the operator modifies the configuration of this LSP, that is a change
in desired state.  The actual state has not yet changed, so LSP-DB is
not modified yet.  The LSP-DB is only modified after the PCE sends
PCInit/PCUpd message to the PCC and the PCC decides to act on that
message.  When the PCC acts on a message from a PCE, it would update
its own PCC LSP DB and send a PCRpt to the PCE(s) to synchronize the
change.  When the PCE receives the PCRpt msg, it updates its own PCE
LSP DB.  After this, the PCC LSP-DB and PCE LSP-DB are in sync.</t>
      </section>
      <section anchor="successful-mbb">
        <name>Successful MBB</name>
        <t>Below we give an example of doing MBB to switch the Tunnel from one
path to another.  We represent the path encoded into the ERO object
as ERO={A} and ERO={B}.</t>
        <t>PCC has an existing LSP in UP state, with LSP-ID=2.  PCC sends
PCRpt(R-FLAG=0, PLSP-ID=100, LSP-ID=2, ERO={A}, OPER-FLAG=UP).</t>
        <artwork><![CDATA[
+---------------------------------------------------------------+
| TUNNEL          | LSP                                         |
+-----------------+---------------------------------------------+
| PLSP-ID=100     | LSP-ID=2, ERO={A}, OPER=UP                  |
+---------------------------------------------------------------+

                Figure 1: Content of LSP DB
]]></artwork>
        <t>PCC initiates the MBB procedure by creating a new LSP with LSP-ID=3.
It does not matter what triggered the creation of the new LSP, it
could have been due to a new path received via PCUpd (if the given
Tunnel is delegated), or it could have been local computation on the
PCC (if the Tunnel is locally computed on the PCC), or it could have
been a change in configuration on the PCC (if the Tunnel's path is
explicitly configured on the PCC).  It is important to emphasize that
the procedure for updating the LSP-DB is common, regardless of the
trigger that caused the change.</t>
        <t>PCC sends PCRpt(R-FLAG=0, PLSP-ID=100, LSP-ID=3, ERO={B}, OPER-
FLAG=UP).</t>
        <artwork><![CDATA[
+---------------------------------------------------------------+
| TUNNEL          | LSP                                         |
+-----------------+---------------------------------------------+
| PLSP-ID=100     | LSP-ID=2, ERO={A}, OPER=UP                  |
|                 | LSP-ID=3, ERO={B}, OPER=UP                  |
+---------------------------------------------------------------+

                Figure 2: Content of LSP DB
]]></artwork>
        <t>After traffic has successfully switched to the new LSP, the PCC
cleans up the old LSP.  PCC sends PCRpt(R-FLAG=1, PLSP-ID=100, LSP-
ID=2).</t>
        <artwork><![CDATA[
+---------------------------------------------------------------+
| TUNNEL          | LSP                                         |
+-----------------+---------------------------------------------+
| PLSP-ID=100     | LSP-ID=3, ERO={B}, OPER=UP                  |
+---------------------------------------------------------------+

                Figure 3: Content of LSP DB
]]></artwork>
      </section>
      <section anchor="aborted-mbb">
        <name>Aborted MBB</name>
        <t>The MBB process can abort when the newly created LSP is destroyed
before it is installed as traffic carrying.  This scenario is
described below.</t>
        <t>PCC has an existing LSP in UP state, with LSP-ID=2.  PCC sends
PCRpt(R-FLAG=0, OPER-FLAG=UP, PLSP-ID=100, LSP-ID=2).</t>
        <artwork><![CDATA[
+---------------------------------------------------------------+
| TUNNEL          | LSP                                         |
+-----------------+---------------------------------------------+
| PLSP-ID=100     | LSP-ID=2, OPER=UP                           |
+---------------------------------------------------------------+

                Figure 4: Content of LSP DB
]]></artwork>
        <t>MBB procedure is initiated, a new LSP is created with LSP-ID=3.  LSP
is currently being established, so its oper state is DOWN.  PCC sends
PCRpt(R-FLAG=0, OPER-FLAG=DOWN, PLSP-ID=100, LSP-ID=3).</t>
        <artwork><![CDATA[
+---------------------------------------------------------------+
| TUNNEL          | LSP                                         |
+-----------------+---------------------------------------------+
| PLSP-ID=100     | LSP-ID=2, OPER=UP                           |
|                 | LSP-ID=3, OPER=DOWN                         |
+---------------------------------------------------------------+

                Figure 5: Content of LSP DB
]]></artwork>
        <t>MBB procedure is aborted.  PCC sends PCRpt(R-FLAG=1, PLSP-ID=100,
LSP-ID=3).</t>
        <artwork><![CDATA[
+---------------------------------------------------------------+
| TUNNEL          | LSP                                         |
+-----------------+---------------------------------------------+
| PLSP-ID=100     | LSP-ID=2, OPER=UP                           |
+---------------------------------------------------------------+

                Figure 6: Content of LSP DB
]]></artwork>
      </section>
    </section>
    <section anchor="pcep-association-database">
      <name>PCEP Association Database</name>
      <t>PCEP Association is a group of zero or more LSPs.</t>
      <t>The PCE ASSO DB is populated by PCRpt messages and/or via
configuration on the PCE itself.  An Association is identified by the
Association Parameters.  The Association parameters contain many
fields, so for convenience we will group all the fields into a single
value.  We will use ASSO_PARAM=A, ASSO_PARAM=B, to refer to different
PCEP Associations: A and B, respectively.</t>
      <section anchor="lsps-in-same-association">
        <name>LSPs in same Association</name>
        <t>Below, we give an example to illustrate how LSPs join the same
Association.</t>
        <t>PCC creates the first LSP.  PCC sends PCRpt(R-FLAG=0, PLSP-ID=100,
LSP-ID=1, ASSO_PARAM=A, ASSO_R_FLAG=0).</t>
        <artwork><![CDATA[
+---------------------------------------------------------------+
| ASSO            | LSP                                         |
+-----------------+---------------------------------------------+
| ASSO_PARAM=A    | PLSP-ID=100, LSP-ID=1                       |
+---------------------------------------------------------------+

                Figure 7: Content of PCE ASSO DB
]]></artwork>
        <t>PCC creates the second LSP.  PCC sends PCRpt(R-FLAG=0, PLSP-ID=200,
LSP-ID=1, ASSO_PARAM=A, ASSO_R_FLAG=0).</t>
        <artwork><![CDATA[
+---------------------------------------------------------------+
| ASSO            | LSP                                         |
+-----------------+---------------------------------------------+
| ASSO_PARAM=A    | PLSP-ID=100, LSP-ID=1                       |
|                 | PLSP-ID=200, LSP-ID=1                       |
+---------------------------------------------------------------+

                Figure 8: Content of PCE ASSO DB
]]></artwork>
        <t>PCC updates the first LSP, the PCC is NOT <bcp14>REQUIRED</bcp14> to send the
ASSOCIATION object in this PCRpt, since the LSP is already in the
Association.  PCC sends PCRpt(R-FLAG=0, PLSP-ID=100, LSP-ID=1).  The
content of the PCE ASSO DB is unchanged.  Note that the PCC sends the
ASSOCIATION OBJECT in the first PCRpt during SYNC state, even if it
has already issued a PCRpt with the association object sometime in
the past with this PCE.  The synchronization steps outlined in
<xref target="RFC8697"/> are to be followed.</t>
        <artwork><![CDATA[
+---------------------------------------------------------------+
| ASSO            | LSP                                         |
+-----------------+---------------------------------------------+
| ASSO_PARAM=A    | PLSP-ID=100, LSP-ID=1                       |
|                 | PLSP-ID=200, LSP-ID=1                       |
+---------------------------------------------------------------+

                Figure 9: Content of PCE ASSO DB
]]></artwork>
        <t>PCC decides to delete the second LSP.  PCC sends PCRpt(R-FLAG=1,
PLSP-ID=200, LSP-ID=1).</t>
        <artwork><![CDATA[
+---------------------------------------------------------------+
| ASSO            | LSP                                         |
+-----------------+---------------------------------------------+
| ASSO_PARAM=A    | PLSP-ID=100, LSP-ID=1                       |
+---------------------------------------------------------------+

                Figure 10: Content of PCE ASSO DB
]]></artwork>
        <t>PCC decides to remove the first LSP from the Association, but not
delete the LSP itself.  PCC sends PCRpt(R-FLAG=0, PLSP-ID=100, LSP-
ID=1, ASSO_PARAM=A, ASSO_R_FLAG=1).  The PCE ASSO DB is now empty.</t>
        <artwork><![CDATA[
+---------------------------------------------------------------+
| ASSO            | LSP                                         |
+-----------------+---------------------------------------------+
| ASSO_PARAM=A    |                                             |
+---------------------------------------------------------------+

                Figure 11: Content of PCE ASSO DB
]]></artwork>
      </section>
      <section anchor="switch-association-during-mbb">
        <name>Switch Association during MBB</name>
        <t>Below, we give an example to illustrate how a Tunnel goes through MBB
and switches from Association A to Association B.</t>
        <t>Each new LSP (identified by the LSP-ID) does not inherit the
Association membership of any previous LSPs within the same Tunnel.
This is so that a Tunnel can have two LSPs that are in different
Associations, this may be done when switching from one Association to
another.</t>
        <t>PCC creates the first LSP.  PCC sends PCRpt(R-FLAG=0, PLSP-ID=100,
LSP-ID=1, ASSO_PARAM=A, ASSO_R_FLAG=0).</t>
        <artwork><![CDATA[
+---------------------------------------------------------------+
| ASSO            | LSP                                         |
+-----------------+---------------------------------------------+
| ASSO_PARAM=A    | PLSP-ID=100, LSP-ID=1                       |
+---------------------------------------------------------------+

                Figure 12: Content of PCE ASSO DB
]]></artwork>
        <t>PCC creates the MBB LSP in a different Association.  PCC sends
PCRpt(R-FLAG=0, PLSP-ID=100, LSP-ID=2, ASSO_PARAM=B, ASSO_R_FLAG=0).</t>
        <artwork><![CDATA[
+---------------------------------------------------------------+
| ASSO            | LSP                                         |
+-----------------+---------------------------------------------+
| ASSO_PARAM=A    | PLSP-ID=100, LSP-ID=1                       |
+---------------------------------------------------------------+
| ASSO_PARAM=B    | PLSP-ID=100, LSP-ID=2                       |
+---------------------------------------------------------------+

                Figure 13: Content of PCE ASSO DB
]]></artwork>
        <t>PCC deletes the old LSP.  PCC sends PCRpt(R-FLAG=1, PLSP-ID=100, LSP-
ID=1).</t>
        <artwork><![CDATA[
+---------------------------------------------------------------+
| ASSO            | LSP                                         |
+-----------------+---------------------------------------------+
| ASSO_PARAM=B    | PLSP-ID=100, LSP-ID=2                       |
+---------------------------------------------------------------+

                Figure 14: Content of PCE ASSO DB
]]></artwork>
      </section>
    </section>
    <section anchor="computation-constraints">
      <name>Computation Constraints</name>
      <t>For any PCEP object that does not have an explicit removal flag, the
absence of that object indicates removal of the constraint specified
by that object.  For example, suppose the first state-report contains
an LSPA object with some affinity constraints.  Then if a subsequent
state-report does not contain an LSPA object, then this means that
the previously specified affinity constraints do not apply anymore.
Same applies to all PCEP objects, like METRIC, BANDWIDTH, etc., which
do not have an explicit flag for removal.  This simply ensures that
it is possible to remove a constraint without using an explicit
removal flag.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>None at this time.</t>
    </section>
    <section anchor="managability-considerations">
      <name>Managability Considerations</name>
      <t>None at this time.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>None at this time.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
      <reference anchor="RFC8231">
        <front>
          <title>Path Computation Element Communication Protocol (PCEP) Extensions for Stateful PCE</title>
          <author fullname="E. Crabbe" initials="E." surname="Crabbe"/>
          <author fullname="I. Minei" initials="I." surname="Minei"/>
          <author fullname="J. Medved" initials="J." surname="Medved"/>
          <author fullname="R. Varga" initials="R." surname="Varga"/>
          <date month="September" year="2017"/>
          <abstract>
            <t>The Path Computation Element Communication Protocol (PCEP) provides mechanisms for Path Computation Elements (PCEs) to perform path computations in response to Path Computation Client (PCC) requests.</t>
            <t>Although PCEP explicitly makes no assumptions regarding the information available to the PCE, it also makes no provisions for PCE control of timing and sequence of path computations within and across PCEP sessions. This document describes a set of extensions to PCEP to enable stateful control of MPLS-TE and GMPLS Label Switched Paths (LSPs) via PCEP.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8231"/>
        <seriesInfo name="DOI" value="10.17487/RFC8231"/>
      </reference>
      <reference anchor="RFC8697">
        <front>
          <title>Path Computation Element Communication Protocol (PCEP) Extensions for Establishing Relationships between Sets of Label Switched Paths (LSPs)</title>
          <author fullname="I. Minei" initials="I." surname="Minei"/>
          <author fullname="E. Crabbe" initials="E." surname="Crabbe"/>
          <author fullname="S. Sivabalan" initials="S." surname="Sivabalan"/>
          <author fullname="H. Ananthakrishnan" initials="H." surname="Ananthakrishnan"/>
          <author fullname="D. Dhody" initials="D." surname="Dhody"/>
          <author fullname="Y. Tanaka" initials="Y." surname="Tanaka"/>
          <date month="January" year="2020"/>
          <abstract>
            <t>This document introduces a generic mechanism to create a grouping of Label Switched Paths (LSPs) in the context of a Path Computation Element (PCE). This grouping can then be used to define associations between sets of LSPs or between a set of LSPs and a set of attributes (such as configuration parameters or behaviors), and it is equally applicable to the stateful PCE (active and passive modes) and the stateless PCE.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8697"/>
        <seriesInfo name="DOI" value="10.17487/RFC8697"/>
      </reference>
      <reference anchor="RFC3209">
        <front>
          <title>RSVP-TE: Extensions to RSVP for LSP Tunnels</title>
          <author fullname="D. Awduche" initials="D." surname="Awduche"/>
          <author fullname="L. Berger" initials="L." surname="Berger"/>
          <author fullname="D. Gan" initials="D." surname="Gan"/>
          <author fullname="T. Li" initials="T." surname="Li"/>
          <author fullname="V. Srinivasan" initials="V." surname="Srinivasan"/>
          <author fullname="G. Swallow" initials="G." surname="Swallow"/>
          <date month="December" year="2001"/>
          <abstract>
            <t>This document describes the use of RSVP (Resource Reservation Protocol), including all the necessary extensions, to establish label-switched paths (LSPs) in MPLS (Multi-Protocol Label Switching). Since the flow along an LSP is completely identified by the label applied at the ingress node of the path, these paths may be treated as tunnels. A key application of LSP tunnels is traffic engineering with MPLS as specified in RFC 2702. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="3209"/>
        <seriesInfo name="DOI" value="10.17487/RFC3209"/>
      </reference>
    </references>
    <?line 457?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank Adrian Farrel for useful review
comments.</t>
    </section>
    <section numbered="false" anchor="contributors">
      <name>Contributors</name>
      <artwork><![CDATA[
Dhruv Dhody
Huawei Technologies
Email: dhruv.ietf@gmail.com

Samuel Sidor
Cisco Systems
Email: ssidor@cisco.com

Mahendra Singh Negi
RtBrick Inc
Email: mahend.ietf@gmail.com
]]></artwork>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1c23Ybx7F976/oQz9YOgEYUdKJba4oEQhCFnN4C0nFy8vL
K6sx0wDaHEwj0zOEEFn+lvMt+bLsquq5AAQlKhcrJxEfJGLQl+q67NrV3cN+
v69KV2Z2X++cD0fn+mxhC1M6n5tMDzNTuIlL+POOMuNxYW9iw/7Z+ehicHV0
djo43lFoYqe+WO1rl0+8UqlPcjPHoGlhJmX/2mfpKpnZm/4isX3fTtF/9KUK
1XjuQsDncrVAl6PR1QuVV/OxLfZVioH39ZvDwdXorUp8HmweqrCvy6KyCrI8
UaawBjJd+Kp0+XRHLX1xPS18tRBB9Tf4jC/01/RsRylTlTOPkXVfafxMqiwT
UU/ctdX/W0vKX/pianL3ZxZ2Xw9dSLy+XIXSzkNPH+XJLreyc+OyfT2Pq3ye
ULvdxM9vz3Hpbgz/MzaZybfOYXOjh75YeNFRdwYoiXtiBrS6Y4ZZtaDlntt8
umX8l5VZWqevbDLLfeanzobuDAv0CjLC8xk33T7LoYO59SCZmRuTbZnm1F87
0x04pQ67Rjo8z+nr7SO/hMvBCmXutgz7uyp3cB59aksysxihO83smno+/0Ha
7ea2vD3DIE8Lu9SXpc/tfUQ33H43UPuO5Cr3xRx9buw+t754MXy8t/dV8+HL
vS+eth8eP9lrP/zqqy+aD08eP0IfRWHTDKdUv9/XZhzKwiSlUlczFzRCqprb
vNSJRKUNOrFFaVyuTVjYpAzaT1Q5s5rjeFH40ic+29X6Cs8QOiV19hNdro02
M0GPrc3RYr5wmU3V2ASbap/rYG8QqBlCurSFX2j72hbwbRt2o4Rzl6aZVeoz
mKEsfFol7LHqsLK69LD5ZGILmoRHWBS2ZB2ToCJkKKFcU6QwpCv1EqJMfJWn
ENGUys0XmSUZm05YAeRNaWyT/lCFEg2tKyA/3Mr5AvPAmCkcpPQqSk1QY2sl
VAWL0yw+2OIGesR4otTVpkpVLSmazA3wAWJaExxPQTrGmq1upxpn+HRLbkVD
7JKeLuyfKlfwt0Efm3xamaklA1t9bVcaTp0GvXPy6vJqpyf/69Mz/v1i9PtX
RxejQ/r98uXg+Lj5RcUWly/PXh0ftr+1PYdnJyej00PpjKd67ZHaORl8i29g
Cr1zdh4hnXS57ikAWlr02LbmhJ+YoFIbksKN8QF9Dobnf/m/vaf6zZv/ihHx
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
PGhoDxc29R/29YA3QQ6o4OFbS3ycFHdw+OyHNnXoQKl7Vi17Ob1tmznr53oz
v5RRfvBx85LG6io1kg/JMCEqgC4SvJPuPtqOAHu9bUq5+KP0+UfCA7tjN9g+
Ajx0lyoybMuSex8BHr5Yg4dO+LY7LV2DB4uoeE+B07H4408W/xstvo0gdLX6
MX3my/f7TL1VvQYS7cY08FtuzcnFPd5KtrJ3r7Zc4qnvt7Gb9QhoE9scQFNi
ygo6HI2HRGuYdV9cavT5MJ4rrt2kvZXYqjyeccTTtO6pWT3d5mLODn43Gl7V
J1miFcmJ8bj28tvTYV3BWboa4ia0zcjVXr3CECrbnjEwy9+8CRSVRldM6OyV
bmPIbntoOrAuRzE1hvVjWTppXqAKqEq6l0gb86q5KdS5HCqXEqGAT3H7/yVu
v3p/3HYOzWhDOt73uQ/q7/XU1nV+Avafy7x7jz7IvoWVC6RdhJbju3KdL8tJ
ee5L1XEJRt6anX8AxKr3MYEagDcRNwc/5at6//b+9CE//1R/2nu3P9HBsZz/
dourmMvac+R71h7NjaapZ95Q0MUoHoZP1mUTPoiDducb0FjdBwd0Z9Qks2ZX
7MFdd98etgeALp/ZwpW36si5pffTwsxx1Uv3qBeFveHbjFwsUT7tlEv1jS15
lYf2cr0wg2Z1zW0rukvGQ8j3cibf1n/d0q8nGZsuKSHxpnTTi3efRSmk7frU
ff0CtVf14funyi2O+jfJ8C8K948/rHSjzbt4UGA6VxPvIMv3vSOxvpfxyRX+
qa6wJsPB3TI8/hju+OQ+7IP4Q/j7zkn/nRnlv5pNn76HAay/W9a+L6UUXWWk
dNl590IyXZNyOQsyJYhvdjAhNZmeZGbak7dBxqF+M4L7NtsBKb0ehnHqLrFI
b9/YoncREk75ilN+03nzjmqoFgsfujSYC/B+YemGSnPlHpmUDDGoReA6ml/i
oDPcnN5g674uxgyW63dD73TIKx6lWhu6UUS9B70+RfPaEGV+vmDQuR0jFIQu
J9TL3CoH5uAZ5PUFmIO263fVJTEVfskuXo/Msq6dwDcyekf+ZHR1cTTs6YPB
6eE3R4dXL3valslufDtDxbFvmZHMx/vn0TjNsTbdxl9perG/iNfGlZyKwwDB
jYUVxqrEdG1Zv4lTxZfZmrlU12V4J1xf2gQEFGoYxuuzQqHoZRPQo/rGc30n
XZ+Y3EzN2GX373I0OB3cqylCS49Nck2dBsk1CpjMplN+J1i92Ze/fGDTZzsT
kwW781YOUOTPFoR43ZTtwPdOTH6tB2nhsPoXpijopiXdjAqWLm2SP9ilogtR
Vt5W/IzjtnCo3DDa9ukohA9nRXWjD2c+XaltfzNgFF/rp2a7zpaT51N6Im/G
w48qeinHpb5Qa381oe4Hu+K7zl9KUCcGXp0W9NcRcvD7Uzt16qI8KFxyzS/5
x45zbrY5I0n8V2tkF2zKQgAA

-->

</rfc>
