<?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.5 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-karboubi-spring-sidlist-optimized-cs-sr-00" category="info" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.19.4 -->
  <front>
    <title abbrev="CS-SR Policies with Optimized SID List">Circuit Style Segment Routing Policies with Optimized SID List Depth</title>
    <seriesInfo name="Internet-Draft" value="draft-karboubi-spring-sidlist-optimized-cs-sr-00"/>
    <author initials="A." surname="Karboubi" fullname="Amal Karboubi" role="editor">
      <organization>Ciena</organization>
      <address>
        <email>akarboub@ciena.com</email>
      </address>
    </author>
    <author initials="C." surname="Alaettinoglu" fullname="Cengiz Alaettinoglu" role="editor">
      <organization>Ciena</organization>
      <address>
        <email>cengiz@ciena.com</email>
      </address>
    </author>
    <author initials="H." surname="Shah" fullname="Himanshu Shah">
      <organization>Ciena</organization>
      <address>
        <email>hshah@ciena.com</email>
      </address>
    </author>
    <author initials="S." surname="Sivalaban" fullname="Siva Sivabalan">
      <organization>Ciena</organization>
      <address>
        <email>ssivabal@ciena.com</email>
      </address>
    </author>
    <author initials="T." surname="Defillipi" fullname="Todd Defillipi">
      <organization>Ciena</organization>
      <address>
        <email>todd@ciena.com</email>
      </address>
    </author>
    <date year="2024" month="February" day="21"/>
    <area>General</area>
    <workgroup>SPRING Working Group</workgroup>
    <keyword>keyword1</keyword>
    <keyword>keyword2</keyword>
    <abstract>
      <?line 97?>

<t>Service providers require delivery of circuit-style transport services in a segment routing based IP network.
This document introduces a solution that supports circuit style segment routing policies that allows usage of optimized SID lists (i.e. SID List that may contain non-contiguous node SIDs as instructions) and describes mechanisms that would allow such encoding to still honor all the requirements of the circuit style policies notably traffic engineering and bandwidth requirements.</t>
    </abstract>
  </front>
  <middle>
    <?line 102?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Service providers require delivery of circuit-style transport services in a segment routing based IP network. <xref target="I-D.ietf-spring-cs-sr-policy"/> introduces a solution that supports circuit style SR policies. However, the solution uses a fully specified SID list where the path is encoded using persistent or manually configured adjacency SIDs. Using a fully specified SID list causes a very large segment stack that may not be feasible for low-end edge devices often found in access networks.</t>
      <t>This document presents a solution that removes the fully specified SID list requirement while still maintaining the key features presented in <xref target="I-D.ietf-spring-cs-sr-policy"/>. It enables use of compressed SID list (i.e. allows the use of node SIDs) in circuit-style SR policies.</t>
      <t><xref target="I-D.ietf-spring-cs-sr-policy"/> defines circuit-style SR as an SR policy with the following characteristics:</t>
      <ul spacing="normal">
        <li>
          <t>Persistent end-to-end traffic engineered paths that provide predictable and identical latency in both directions</t>
        </li>
        <li>
          <t>Strict bandwidth commitment per path to ensure no impact on the Service Level Agreement (SLA) due to changing network load from other services</t>
        </li>
        <li>
          <t>End-to-end protection (&lt;50msec protection switching) and restoration mechanisms</t>
        </li>
        <li>
          <t>Monitoring and maintenance of path integrity</t>
        </li>
        <li>
          <t>Data plane remaining up while control plane is down</t>
        </li>
      </ul>
      <t>Note that for some service providers the bidirectional co-routed paths may not be necessary.</t>
      <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>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>SID : Segment Identifier</t>
      <t>SLA : Service Level Agreement</t>
      <t>SR : Segment Routing</t>
      <t>CS-SR : Circuit-Style Segment Routing</t>
      <t>PCE : Path Computation Element</t>
      <t>PCEP : Path Computation Element Communication Protocol</t>
    </section>
    <section anchor="problem-statement-issues-with-sid-list-compression">
      <name>Problem statement: Issues with SID list compression</name>
      <t>A PCE computes a path for the service according to the network state and available capacity at that time. These paths are referred to as intended paths. It then compresses the intended path into SIDs using a combination of node and adjacency SIDs as defined in SR architecture <xref target="RFC8402"/> .
Nodes in the network forward packet to node SID N by using their IGP (or flex-algo) shortest paths to N. This is referred to as path expansion. At the time of installing the compressed SID list, this expansion and the intended path are identical.</t>
      <t>However, network changes, particularly link and/or node failures and repairs may cause the intended path and this path expansion to deviate resulting in a service's traffic to use resources on a path that the PCE did not reserve any bandwidth on, causing service degradation for both this service and the other services on that path.</t>
      <t>Both the failure and repair cases are illustrated using the example network topology of figure 1. An SR policy from node A to node Z with two diverse traffic engineered candidate paths was computed by PCE and signaled to head end node A resulting in the following intended paths and their respective compressed SID List:</t>
      <ul spacing="normal">
        <li>
          <t>Candidate path 1:  intended path A-B, B-D, D-E, E-Z links and compressed as SID list B, E, Z</t>
        </li>
        <li>
          <t>Candidate path 2: intended path  A-C, C-D, D-F, F-Z links and compressed as SID list C, F, Z</t>
        </li>
      </ul>
      <figure anchor="figure1">
        <name>SR policy with 2 diverse candidate paths</name>
        <artwork alt="SR Policy"><![CDATA[
            +-----+                 +-----+
   +--------+     +--------+ +------+     +-------+
   |        | B   |        | |      | E   |       |
   |        +--+--+        | |      +-----+       |
   |           |           | |                    |
+--+--+     +--+--+      +-+-+-+               +--+--+
| A   |     |     |      |     |               |     |
|     +-----+  G  +------+  D  |               |  Z  |
+--+--+     +-----+      +-+-+-+               +---+-+
   |                       | |                     |
   |         +-----+       | |       +-----+       |
   |         |     |       | |       |     |       |
   +---------+  C  +-------+ +-------+ F   +-------+
             +-----+                 +-----+

    SR Policy A-Z:
      Candidate path1
        SIDList1 [B,E,Z]
      Candidate path2
        SIDList2 [C,F,Z]
]]></artwork>
      </figure>
      <section anchor="deviation-due-to-failures">
        <name>Deviation due to failures</name>
        <t>In Figure 2, link B-D fails. The expected circuit-style behavior is to start using the second candidate path.
Though this path may be used initially, once the IGP converges, the candidate path 1 becomes valid as node B regains a shortest path to the next node SID E.
Once the headend switches to the candidate path 1, the intended path and the expansion of the SID list which now becomes (A-B, B-G, G-D, D-E, E-Z) deviate. The service starts to use resources on B-G and G-D links where the PCE has not made a bandwidth reservation.</t>
        <figure anchor="figure2">
          <name>SR policy CP1 deviation after link failure and IGP convergence</name>
          <artwork alt="SR Policy deviation"><![CDATA[
            +-----+                 +-----+
   +--------+     +---xxx--+ +------+     +-------+
   |        | B   |        | |      | E   |       |
   |        +--+--+        | |      +-----+       |
   |           |           | |                    |
+--+--+     +--+--+      +-+-+-+               +--+--+
| A   |     |     |      |     |               |     |
|     +-----+  G  +------+  D  |               |  Z  |
+--+--+     +-----+      +-+-+-+               +---+-+
   |                       | |                     |
   |         +-----+       | |       +-----+       |
   |         |     |       | |       |     |       |
   +---------+  C  +-------+ +-------+ F   +-------+
             +-----+                 +-----+

    SR Policy A-Z:
      Candidate path1
        SIDList1 [B,E,Z] --> deviation from intended path due to failure
      Candidate path2
        SIDList2 [C,F,Z]
]]></artwork>
        </figure>
        <t>A possible solution to this is for PCE to monitor these deviations and correct the compressed SID lists. However, the PCE is not as real-time as the IGP (e.g. many BGP-LS implementations use periodic injection of IGP events into BGP) and PCE is burdened by many more services going over this link not just by the services originating at node A. As a result, relying on PCE to correct this behavior is not desired.</t>
        <t>This document proposes a simple extension to the active candidate path selection logic defined in <xref target="RFC9256"/> which renders the candidate path 1 ineligible for selection at the head-end node. Making a path eligible again is the responsibility of the PCE. This is elaborated in <xref target="failure"/>.</t>
      </section>
      <section anchor="deviation-due-to-repairs">
        <name>Deviation due to repairs</name>
        <t>Figure 3 shows an example where a link B-E  that was down at the time PCE computed the above two candidate paths is now repaired. When the link B-E repairs, the compressed SID list expands now to (A-B, B-E, E-Z) which is a deviation from the intended path. Though this path looks attractive, it may not have the bandwidth the service needs.</t>
        <figure anchor="figure3">
          <name>SR policy CP1 deviation after link repair and IGP convergence</name>
          <artwork alt="SR Policy deviation"><![CDATA[
               +--+-----------------+--+
            +--+--+                 +--+--+
   +--------+     +--------+ +------+     +-------+
   |        | B   |        | |      | E   |       |
   |        +--+--+        | |      +-----+       |
   |           |           | |                    |
+--+--+     +--+--+      +-+-+-+               +--+--+
| A   |     |     |      |     |               |     |
|     +-----+  G  +------+  D  |               |  Z  |
+--+--+     +-----+      +-+-+-+               +---+-+
   |                       | |                     |
   |         +-----+       | |       +-----+       |
   |         |     |       | |       |     |       |
   +---------+  C  +-------+ +-------+ F   +-------+
             +-----+                 +-----+

    SR Policy A-Z:
      Candidate path1
        SIDList1 [B,E,Z] --> deviation from intended path due to repair
      Candidate path2
        SIDList2 [C,F,Z]
]]></artwork>
        </figure>
        <t>This document presents a SID compression algorithm that is resilient to such repairs.  This is elaborated in <xref target="repairs"/>.</t>
      </section>
    </section>
    <section anchor="failure">
      <name>Dealing with deviation due to failures</name>
      <t>In <xref target="I-D.ietf-spring-cs-sr-policy"/>, the head-end node is responsible for detecting failures and switching to the next candidate path within 50 milliseconds. 
We introduce a new flag at the candidate path level called eligibility. When the head-end detects the path failure, it sets eligibility flag to false.</t>
      <t>Candidate path selection logic is modified so that eligibility flag must be considered as part of the candidate path validity check defined in <xref target="RFC9256"/>; that is only candidate paths with eligibility flag true must be considered valid.</t>
      <t>The eligibility of a path is also controlled by the PCE. The PCE may set it to true or false depending on whether the  expanded SID list matches the intended path. When the link B-D in Figure 2 repairs, it is the responsibility of the PCE to set the eligibility of the candidate path 1 to true. This allows eligibility mechanism to work across IGP areas and BGP autonomous systems.</t>
      <t>We introduce a second property that controls this new behavior. An operator who plans to implement circuit style policies would enable this property, see <xref target="control"/></t>
      <section anchor="headEnd">
        <name>Head end node procedure</name>
        <t>The head-end node shall run a connectivity verification protocol as specified in section 7.1 of <xref target="I-D.ietf-spring-cs-sr-policy"/>  to determine path failure. 
When the head end detects a failure of a candidate path, the eligibility flag is set immediately to false. 
Head end node will no longer consider this candidate path in its active path selection logic no matter what other link/node failures and repairs and IP convergence may happen in the network. 
If another candidate path exists, the head end will switch to the next eligible candidate path per the active candidate path selection algorithm.</t>
      </section>
      <section anchor="controllerpce-component-procedure">
        <name>Controller/PCE component procedure</name>
        <t>The PCE also maintains an accurate view of the network topology in all IGP areas and BGP autonomous systems in the network. After the failures have been repaired, the candidate paths that have been set as not eligible by head-end nodes may now be eligible again. In this case, PCE will set the eligibility flag of these candidate paths to true.</t>
        <t>It is up to the SR policy head-end node to reselect the active candidate path after PCE changes eligibility of the candidate paths. The head end may either implement a standard revertive behavior whereby it can revert immediately or wait for a period of time or implement a non-revertive behavior whereby traffic is not switched back automatically until there is a failure on the currently active candidate path. This behavior may be controlled by a SP provider policy and is outside the scope of this document.</t>
        <t>A PCE may also set a candidate path as ineligible if it detects that the SID list when expanded is different from the intended path. This step is not mandatory when head-end is able to monitor all candidate paths for failures. But, this step is necessary for implementations that do not monitor the inactive candidate paths.  This is an implementation detail. We allow PCE to set eligibility flag to true or false. The node is only allowed to set it to false.</t>
      </section>
      <section anchor="control">
        <name>Eligibility control flag</name>
        <t>The second configuration flag at the SR policy level is used by head end node to determine whether the behavior described in <xref target="headEnd"/> is desirable or not.
This flag is called eligibilityControl and when set to false (default) the SR policy has the same original behavior as defined in <xref target="RFC9256"/>.</t>
      </section>
    </section>
    <section anchor="repairs">
      <name>Dealing with deviation due to repairs/changes</name>
      <t>Network improvements and node and/or link repairs can also result in segment list expansions and intended paths to deviate.
Network improvement may include addition of brand new links or changes of link attributes such as metric, SRLG values, affinity values, etc. We assume these changes are done during maintenance-windows and under the supervision of an SDN controller and can be coordinated with the PCE directly. Hence, we focus on node and/or link repairs (not necessarily limited to the links used by the candidate paths).</t>
      <t>For repairs, we propose a segment compaction algorithm whose compaction is resilient to nodes and/or links repairs; that is the segment list expands to the same path before or after any of these down links in any combination repairs. Any algorithm that is resilient to repairs would work. We highlight one such algorithm in the next paragraph.</t>
      <t>While the PCE computes the intended path on current state of the network, the proposed segment compaction algorithm uses a network view where all down links are restored to produce the SID list for the intended path.
This compaction may not be as short as the compaction with the restored links as down but has the property that it is resilient to repairs. That is, the SID list will always expand to the intended path. This property is independent of the order at which the links are repaired</t>
    </section>
    <section anchor="protocol-and-model-changes">
      <name>Protocol and model changes</name>
      <section anchor="active-candidate-path-selection">
        <name>Active candidate path selection</name>
        <t>As described in <xref target="failure"/>, this proposal introduces a new criteria to the active CP selection criteria described in section 2.9 of <xref target="RFC9256"/>.</t>
      </section>
      <section anchor="pcep-extensions">
        <name>PCEP extensions</name>
        <t>The extensions defined in <xref target="I-D.sidor-pce-circuit-style-pcep-extensions"/> regarding the strict path enforcement (using strict adjacency SIDs) becomes optional.</t>
        <t>PCEP shall be extended to signal the 2 new properties that are the eligibility flag and eligibility control flag of the SR policy candidate paths.</t>
      </section>
      <section anchor="sr-policy-yang-changes">
        <name>SR policy Yang changes</name>
        <t>The eligibility control and eligibility flags shall be added for the SR policy and candidate path YANG models respectively.</t>
        <t>NetConf RPC calls can be used to set eligibility flag of candidate paths to true or false.</t>
      </section>
    </section>
    <section anchor="IANA">
      <name>IANA considerations</name>
      <t>This document includes no request to IANA.</t>
    </section>
    <section anchor="Security">
      <name>Security considerations</name>
      <t>TO BE ADDED</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8402">
          <front>
            <title>Segment Routing Architecture</title>
            <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
            <author fullname="S. Previdi" initials="S." role="editor" surname="Previdi"/>
            <author fullname="L. Ginsberg" initials="L." surname="Ginsberg"/>
            <author fullname="B. Decraene" initials="B." surname="Decraene"/>
            <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
            <author fullname="R. Shakir" initials="R." surname="Shakir"/>
            <date month="July" year="2018"/>
            <abstract>
              <t>Segment Routing (SR) leverages the source routing paradigm. A node steers a packet through an ordered list of instructions, called "segments". A segment can represent any instruction, topological or service based. A segment can have a semantic local to an SR node or global within an SR domain. SR provides a mechanism that allows a flow to be restricted to a specific topological path, while maintaining per-flow state only at the ingress node(s) to the SR domain.</t>
              <t>SR can be directly applied to the MPLS architecture with no change to the forwarding plane. A segment is encoded as an MPLS label. An ordered list of segments is encoded as a stack of labels. The segment to process is on the top of the stack. Upon completion of a segment, the related label is popped from the stack.</t>
              <t>SR can be applied to the IPv6 architecture, with a new type of routing header. A segment is encoded as an IPv6 address. An ordered list of segments is encoded as an ordered list of IPv6 addresses in the routing header. The active segment is indicated by the Destination Address (DA) of the packet. The next active segment is indicated by a pointer in the new routing header.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8402"/>
          <seriesInfo name="DOI" value="10.17487/RFC8402"/>
        </reference>
        <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-spring-cs-sr-policy" target="https://datatracker.ietf.org/doc/draft-ietf-spring-cs-sr-policy">
          <front>
            <title>Circuit Style Segment Routing Policies, Work in Progress, Internet-Draft,draft-ietf-spring-cs-sr-policy-01</title>
            <author initials="C." surname="Schmutzer" fullname="C, Schmutzer">
              <organization>Cisco</organization>
            </author>
            <author initials="Z." surname="Ali" fullname="Z, Ali">
              <organization>Cisco</organization>
            </author>
            <author initials="P." surname="Maheshwari" fullname="P, Maheshwari">
              <organization>Airtel India</organization>
            </author>
            <author initials="R." surname="Rokui" fullname="R, Rokui">
              <organization>Ciena</organization>
            </author>
            <author initials="A." surname="Stone" fullname="A, Stone">
              <organization>Nokia</organization>
            </author>
            <date year="2023" month="October" day="23"/>
          </front>
        </reference>
        <reference anchor="I-D.sidor-pce-circuit-style-pcep-extensions" target="https://datatracker.ietf.org/doc/html/draft-sidor-pce-circuit-style-pcep-extensions-06">
          <front>
            <title>PCEP extensions for Circuit Style Policies", Work in Progress, Internet-Draft, draft-sidor-pce-circuit-style-pcep-extensions-06</title>
            <author initials="S." surname="Sidor" fullname="S, Sidor">
              <organization>Cisco</organization>
            </author>
            <author initials="Z." surname="Ali" fullname="Z, Ali">
              <organization>Cisco</organization>
            </author>
            <author initials="P." surname="Maheshwari" fullname="P, Maheshwari">
              <organization>Airtel India</organization>
            </author>
            <author initials="R." surname="Rokui" fullname="R, Rokui">
              <organization>Ciena</organization>
            </author>
            <author initials="A." surname="Stone" fullname="A, Stone">
              <organization>Nokia</organization>
            </author>
            <author initials="L." surname="Jalil" fullname="L, Jalil">
              <organization>Verizon</organization>
            </author>
            <author initials="S." surname="Peng" fullname="S, Peng">
              <organization>Huwaei Technologies</organization>
            </author>
            <author initials="T." surname="Saad" fullname="T, Saad">
              <organization>Juniper</organization>
            </author>
            <author initials="D." surname="Voyer" fullname="D, Voyer">
              <organization>Bell Canada</organization>
            </author>
            <date year="2023" month="December" day="15"/>
          </front>
        </reference>
        <reference anchor="RFC9256">
          <front>
            <title>Segment Routing Policy Architecture</title>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="K. Talaulikar" initials="K." role="editor" surname="Talaulikar"/>
            <author fullname="D. Voyer" initials="D." surname="Voyer"/>
            <author fullname="A. Bogdanov" initials="A." surname="Bogdanov"/>
            <author fullname="P. Mattes" initials="P." surname="Mattes"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>Segment Routing (SR) allows a node to steer a packet flow along any path. Intermediate per-path states are eliminated thanks to source routing. SR Policy is an ordered list of segments (i.e., instructions) that represent a source-routed policy. Packet flows are steered into an SR Policy on a node where it is instantiated called a headend node. The packets steered into an SR Policy carry an ordered list of segments associated with that SR Policy.</t>
              <t>This document updates RFC 8402 as it details the concepts of SR Policy and steering into an SR Policy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9256"/>
          <seriesInfo name="DOI" value="10.17487/RFC9256"/>
        </reference>
      </references>
    </references>
    <?line 351?>



  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1bbXMbR3L+zir+h4n0IdIJC5G0fWczji/giyReKIoR5XNZ
rqvUYHcAjLnY3ezsEoQl5bfkt+SX5enumX0DSMpXrlQlZdplA4uZ6Z6efnm6
pzeKot0dV+ks+Xed5pk5VFVZm90dW5T80VUHe3vf7B3s7sS6OlQ2m+UKE+rp
0jpn86xaF5hzdvruxe6OLo0+VC9NZkqd7u6s5ofq6vLt2cVL9UNeXttsrl6W
eV3s7uzuJHmc6SVmJqWeVdG1Lqd5PbWRK0qMi5xNUuuqKC8qu7S/mCSKXeTK
aG+PJle2SjH12JZxbSt1Va1To67MfGmySr3N64pIXeapja1xamWrhXoTFlJX
ZyfqHGurE1NUCzA9nZbmBqtdRVdvH56Fzac6w85MtrtzvTrc3VEqUtdmvcrL
ZF/1vh7g62OV6ArMHuwdHER79K+KIn6mrFMzm6ZY3WZK11W+1JWNdZqu1XSt
bpfpQTmLlZ2pLK/U3N4QRQxb5CWoRqrMSQgmsVVeMl2buUM1Gat/9cKkZyLk
yVKnvcd5OSf5mUzTN7PUNj1U2p/Cv8T0wzjOl3eTOR6rSapNBVHn87RuSR2b
bG5/2fhxK8GYx/bJ8eqvxupqoReqXfaVXerMLer2+dYVFw4/b1nwCgvaG53q
qc46q9Iz/s8UP2V3rgpF5yFbFn43hh7RKdrCdhZ+lyfJ4IetK1cY112VfoKl
waxKO4VGwAYfqyssqRxsMa7q0ijtlGiBIhMZKYxT8xwqa7MqV525jtbb3cny
khTrxrCuvn1x/PWXeweH8huZc+dXIa/UWXQytqaaBXMU4yvINta8ilK/ygZH
7ABIzS/LfF4ahydnWWXKzFTRCXmAkfiBu4hGe/tCttF/+hIFnRupq3ixrKtf
TCm/NOJ2cd4f+34E3bQPjbocqdd6Ydxipcv+4IktK5OC+8Tq/py3I+z7uh6u
7Q+8HTcBtxU8bW/cRX4d1mv8xRfR/l508IWXty7nBg54UVWFO3z+HKN0Ver4
2pR8VGMs8xxe9fn9gmzPFy42x9PYRLGcYeToDOlJEZnbymTk3l3/uC+PTy9V
+6OC9gxUIBz5o884c+/8P5OTaO+P9+jAFaRK6/zfP/8w7nyk/qJTm/bG/dWU
9pc829j7JVxpb+CreqWNVe9MvMjyNJ/jSPqT3oENrZPepL/UmS2CDYWBJyP1
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
Co1H9M//AD5EDkc2RAAA

-->

</rfc>
