<?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.19 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ippm-qoo-01" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.1 -->
  <front>
    <title abbrev="QoO">Quality of Outcome</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ippm-qoo-01"/>
    <author fullname="Bjørn Ivar Teigen">
      <organization>Domos</organization>
      <address>
        <postal>
          <street>Gaustadalléen 21</street>
          <code>0349</code>
          <country>NORWAY</country>
        </postal>
        <email>bjorn@domos.no</email>
      </address>
    </author>
    <author fullname="Magnus Olden">
      <organization>Domos</organization>
      <address>
        <postal>
          <street>Gaustadalléen 21</street>
          <code>0349</code>
          <country>NORWAY</country>
        </postal>
        <email>magnus@domos.no</email>
      </address>
    </author>
    <date year="2024" month="September" day="20"/>
    <area>Transport</area>
    <workgroup>IP Performance Measurement</workgroup>
    <keyword>Quality Attenuation</keyword>
    <keyword>Application Outcomes</keyword>
    <keyword>Quality of Outcome</keyword>
    <keyword>Performance monitoring</keyword>
    <keyword>Network quality</keyword>
    <abstract>
      <?line 102?>

<t>This document describes a new network quality framework named Quality of Outcome
(QoO). The QoO framework is unique among network quality frameworks because it
is designed to meet the needs of application developers, users and operators.
This is achieved by basing the framework on Quality Attenuation, defining a
simple format for specifying application requirements, and defining a way to
compute a simple and intuitive user-facing metric.</t>
      <t>The framework proposes a way of sampling network quality, setting network
quality requirements and a formula for calculating the probability for the
sampled network to satisfy network requirements.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://github.com/domoslabs/QoOID"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-ippm-qoo/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        IP Performance Measurement Working Group mailing list (<eref target="mailto:ippm@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ippm/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/ippm/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/domoslabs/QoOID"/>.</t>
    </note>
  </front>
  <middle>
    <?line 115?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document explores how the quality attenuation metric and framework
<xref target="TR-452.1"/> can be extended to meet the full set of requirements described in
the Motivation section. The goal is to define a network requirement framework
that allows application developers to specify their network requirements, along
with a way to create a simple user-facing metric based on comparing application
requirements to measurements of network performance. Basing this framework on
quality attenuation <xref target="TR-452.1"/> ensures that network operators get the
fault-isolation and network planning benefits of composability.</t>
      <t>Quality attenuation is a network quality metric that meets most of the criteria
set out in the requirements; it can capture the probability of a network
satisfying application requirements, it is composable, and it can be compared to
a variety of application requirements. The part that is yet missing is how to
present quality attenuation results to end-users and application developers in
an understandable way. We believe a per-application, per application-type, or
per-SLA approach is appropriate here. The challenge lies in specifying how to
simplify enough without losing too much in terms of precision and accuracy.</t>
      <t>We believe the probabilistic approach is key as the network stack and
application's network quality adaptation can be highly complex. Applications and
the underlying networking protocols make separate optimizations based on their
perceived network quality over time and saying something about an outcome with
absolute certainty will be practically impossible. We can however make educated
guesses on the probability of outcomes.</t>
      <t>We propose representing network quality as a minimum required throughput and set
of latency and loss percentiles. Application developers, regulatory bodies and
other interested parties can describe network requirements in the same manner.
We propose a formula for a distance measure between perfect and unusable. This
distance measure can, with some assumptions, calculate something that can be
simplified into statements such as “A Video Conference has a 93% chance of being
lag free on this network” all while making it possible to use the framework both
for end-to-end test and analysis from within the network.</t>
      <t>The work proposes a minimum viable framework, and often trades precision for
simplicity. The justification for this is to ensure adoption and usability in
many different contexts such as active testing from applications and monitoring
from network equipment. To counter the loss of precision, we require some
parameters that allow for analysis of the precision.</t>
    </section>
    <section anchor="motivation">
      <name>Motivation</name>
      <t>This section describes the features and attributes a network quality framework
must have to be useful for different stakeholders. The stakeholders included are
Application developers, End-Users, and Network Operators and Vendors. At a high
level, End-Users need an understandable network metric. Application developers
need a network metric that allows them to evaluate how well their application is
likely to perform given the measured network performance. Network Operators and
Vendors need a metric that facilitates troubleshooting and optimization of their
networks. Existing network quality metrics and frameworks typically address the
needs of one or two of these stakeholders, but we have yet to find one that
bridges the needs of all three.</t>
      <section anchor="introduction-1">
        <name>Introduction</name>
        <t>This section aims to describe the features a network performance framework must
have to be understandable to end-users, useful for application developers, and
actionable for network operators. One of the key motivations behind this
initiative is to bridge the gap between the technical aspects of network
performance and the practical needs of those who depend on it. While solutions
exist for many of the problems causing high and unstable latency in the
Internet, the incentives to deploy them have remained relatively weak. By
creating a unifying framework for assessing network quality, we aim to
strengthen these incentives significantly.</t>
        <t>Bandwidth is necessary but not sufficient for high-quality modern network
experiences. Idle latency, working latency, jitter, and unmitigated packet loss
are major causes of poor application outcomes. The impact of latency is widely
recognized in network engineering circles <xref target="BITAG"/>. Unfortunately, it is
complicated to benchmark the quality of network transport. Most end-users are
unable to relate to metrics other than Mbps, which they have long been
conditioned to think of as the only dimension of network quality.</t>
        <t>Real Time Response under load tests<xref target="RRUL"/> and Responsiveness <xref target="RPM"/> make huge
strides in making a better network quality metric that is far closer to
application outcomes than bandwidth is, and the latter is successful at being
relatively relatable/understandable to end-users.</t>
        <t>As pointed out in <xref target="RPM"/>, “Our networks remain unresponsive, not from a lack of
technical solutions, but rather a lack of awareness of the problem.” The lack of
awareness means a lack of incentives for operators to invest in improving
network quality (beyond increasing the throughput). While Open Source solutions
exist, vendors rarely implement them. And it all boils down to the lack of a
universally accepted network quality framework that captures how well
applications are likely to work.</t>
        <t>A recent IAB workshop on measuring internet quality for end users identified
this important point: Users mostly care about application performance (as
opposed to network performance). Among the conclusions is the statement, "A
really meaningful metric for users is whether their application will work
properly or fail because of a lack of a network with sufficient characteristics"
<xref target="RFC9318"/>. One of the requirements we set out here is, therefore, to be able
to answer this question: "Will an application work properly?". An answer to this
question requires a few things; First, we must acknowledge that the internet is
stochastic (from the point-of-view of any given client), and we can never answer
this question with certainty. Second, different applications have different
needs and adapt differently to varying network conditions. Any framework aiming
to answer this question must be able to cater to the needs of different
applications. Thirdly, end users are individuals with different perception of,
and levels of tolerance for, degradation of network conditions and the resulting
effect on application experience.</t>
      </section>
      <section anchor="design-goal">
        <name>Design Goal</name>
        <t>The overall goal is to describe the requirements for an objective network
quality framework and metric that is useful for end-users, application
developers, and network operators/vendors alike.</t>
      </section>
      <section anchor="requirements">
        <name>Requirements</name>
        <t>This section describes the three main requirements and the motivation for each.</t>
        <t>In general, all stakeholders ultimately care about the success of applications
running over the network. Application success depends not just on bandwidth but
also on the delay of the network links and computational steps involved in
making the application function.</t>
        <t>These delays in turn depend on how the application places load on the network,
how the network is affected by environmental conditions and the behavior of
other users sharing the network resources.</t>
        <t>Different applications have different needs from the network, and they put
different patterns of load on the network. To provide an answer to whether or
not applications will work well or fail, a network quality framework must
therefore be able to compare measurements of network performance to many
different application requirements.</t>
        <t>Flexibility in describing application requirements and the ability to capture
the delay characteristics of the network in enough detail to compute how likely
application success is with satisfactory accuracy and precision are necessary
conditions.</t>
        <t>How can operators take action when measurements show that applications fail too
often? We can answer this question if the measured metric(s) support spatial
composition <xref target="RFC6049"/>, <xref target="RFC6390"/>. Spatial composition gives us the ability
to divide results into sub-results, each measuring the performance of a required
sub-milestone that must be reached in time for the application to succeed.</t>
        <t>To summarise, the framework and "meaningful metric" we're looking for should
have the following properties:</t>
        <ol spacing="normal" type="1"><li>
            <t>Capture the information necessary to compute the probability that
applications will work well. (Useful for End-users and Application
developers)</t>
          </li>
          <li>
            <t>Compare meaningfully to different application requirements.</t>
          </li>
          <li>
            <t>Compose. So that operators can isolate and quantify the contributions of
different sub-outcomes and sub-paths of the network. (Useful for Operators
and Vendors)</t>
          </li>
        </ol>
        <section anchor="requirements-for-end-users">
          <name>Requirements for end-users</name>
          <t>The quality framework should facilitate a metric that is objective, relatable,
and relatively understandable for an end-user. We are looking for a middle
ground between objective QoS metrics (Throughput, packet loss, jitter, average
latency) and subjective but understandable QoE metrics (MOS, 5-star ratings).
The ideal framework should be objective, like QoS metrics, and understandable,
like QoE metrics.</t>
          <t>If these requirements are met, the end-user can understand if a network can
reliably deliver what they care about: the outcomes of applications. Examples
are how quickly a web page loads, the smoothness of a video conference, or
whether or not a video game has any lag.</t>
          <t>Each end user will have an individual tolerance of session quality, below which
their quality of experience becomes personally unacceptable. However it may not
be feasible to capture and represent these tolerances <em>per user</em> as the user
group scales. A compromise is for the quality of experience framework to place
the responsibility for sourcing and representing end-user requirements onto the
application developer. Application developers should perform user-acceptance
testing (UAT) of their application across a range of users, terminals and
network conditions to determine the terminal and network requirements that will
meet the end-user quality threshold for an acceptable subset of their end users.
Some real world examples where 'acceptable levels' have been derived by
application developers include (note: developers of similar applications may
have arrived at different figures):</t>
          <ul spacing="normal">
            <li>
              <t>Remote music collaboration: 28ms latency note-to-ear for direct monitoring,
&lt;2ms jitter</t>
            </li>
            <li>
              <t>Online gaming: 6Mb/s downlink throughput and 30ms RTT to join a multiplayer
game</t>
            </li>
            <li>
              <t>Virtual reality: &lt;20ms RTT from head motion to rendered update in VR</t>
            </li>
          </ul>
          <t>Performing this UAT helps the developer understand what likelihood a new
end-user has of an acceptable Quality of Experience based on the application's
existing requirements towards the network. These requirements can evolve and
improve based on feedback from end users, and in turn better inform the
application's requirements towards the network.</t>
        </section>
        <section anchor="requirements-from-application-and-platform-developers">
          <name>Requirements from Application and Platform Developers</name>
          <t>The framework needs to give developers the ability to describe the network
requirements of their applications. The format for specifying network
requirements must include all relevant dimensions of network quality so that
different applications which are sensitive to different network quality
dimensions can all evaluate the network accurately. We can only expect some
developers to have network expertise, so to make it easy for developers to use
the framework, developers must be able to specify network requirements
approximately. Therefore, it must be possible to describe both simple and
complex network requirements. The framework also needs to be flexible so that it
can be used with different kinds of traffic and that extreme network
requirements which far exceed the needs of today's applications can also be
articulated.</t>
          <t>If these requirements are met, developers of applications or platforms can state
or test their network requirements and evaluate if the network is sufficient for
a great application outcome. Both the application developers with networking
expertise and those without can use the framework.</t>
        </section>
        <section anchor="requirements-for-network-operators-and-network-solution-vendors">
          <name>Requirements for Network Operators and Network Solution Vendors</name>
          <t>From an operator perspective, the key is to have a framework that lets operators
find the network quality bottlenecks and objectively compare different networks
and technologies. The framework must support mathematically sound
compositionality ('addition' and 'subtraction') to achieve this. Why? Network
operators rarely manage network traffic end-to-end. If a test is purely
end-to-end, the ability to find bottlenecks may be gone. If, however, we could
measure end-to-end (e.g., a-b-c-d-e) and not-end-to-end (e.g., b-c-d-e) and
subtract, we can isolate the areas outside the influence of the network
operator. In other words, we could get the network quality of a-b and b-c-d-e
separately. Compositionality is essential for fault detection and
accountability.</t>
          <t>By having mathematically correct composition, a network operator can measure two
segments separately, perhaps even with different approaches, and add them
together to understand the end-to-end network quality.</t>
          <t>For another example where spatial composition is useful, we can look at a
typical web page load sequence. If we measure web page load times and find they
are too often too slow, we may then separately measure DNS resolution time, TCP
round-trip time, and the time it takes to establish TLS connections to get a
better idea of where the problem is. A network quality framework should support
this kind of analysis to be maximally useful for operators. The quality
framework must be applicable in both lab testing and monitoring of production
networks. It must be useful on different time scales, and it can't have a
dependency on network technology or OSI layer.</t>
          <t>If these requirements are met, a network operator can monitor and test their
network and understand where the true bottlenecks are, regardless of network
technology.</t>
        </section>
      </section>
    </section>
    <section anchor="background">
      <name>Background</name>
      <t>The foundation of the framework is Quality Attenuation <xref target="TR-452.1"/>. This work
will not go into detail about how to measure Quality Attenuation, but some
relevant techniques are:</t>
      <ul spacing="normal">
        <li>
          <t>Active probing with TWAMP Light <xref target="RFC5357"/> / STAMP <xref target="RFC8762"/> / IRTT
<xref target="IRTT"/></t>
        </li>
        <li>
          <t>Varying Latency Under Load Tests</t>
        </li>
        <li>
          <t>Varying Speed Tests with latency measures</t>
        </li>
        <li>
          <t>Simulating real traffic</t>
        </li>
        <li>
          <t>End-to-end measurements of real traffic</t>
        </li>
        <li>
          <t>TCP SYN ACK / DNS Lookup RTT Capture</t>
        </li>
        <li>
          <t>Estimation</t>
        </li>
      </ul>
      <t>Quality Attenuation represents quality measurements as distributions. Using
Latency distributions to measure network quality is nothing new and has been
proposed by various researchers/practitioners <xref target="Kelly"/><xref target="RFC8239"/><xref target="RFC6049"/>.
The novelty of the Quality Attenuation metric is to view packet loss as infinite
(or too late to be of use e.g. &gt; 3 seconds) latency <xref target="TR-452.1"/>.</t>
      <t>Latency Distributions can be gathered via both passive monitoring and active
testing. The active testing can use any type of IP traffic, such as TCP, UDP, or
QUIC. It is OSI Layer and network technology independent, meaning it can be
gathered in an end-user application, within some network equipment, or anywhere
in between.</t>
      <t>A key assumption behind the choice of latency distribution is that different
applications and application categories fail at different points of the latency
distribution. Some applications, typically downloads, have lenient latency
requirements. Video Conferences typically are sensitive to high 90th percentile
latency and to the difference between the 90th and the 99th percentile. Online
gaming typically has a low tolerance for high 99th percentile latency. All
applications require a minumum level of throughput and a maximum packet loss
rate. A network quality metric that aims to generalize network quality must take
the latency distribution, throughput, and packet loss into consideration.</t>
      <t>Two distributions can be composed using convolution <xref target="TR-452.1"/>.</t>
      <section anchor="discussion-of-other-performance-metrics">
        <name>Discussion of other performance metrics</name>
        <t>Many network performance metrics and frameworks for reasoning about them have
been proposed, used, and abused throughout the years. We present a brief
description of some of the most relevant metrics.</t>
        <t>For each of the metrics below, we discuss whether or not they meet each of the
three criteria set out in the requirements.</t>
        <section anchor="average-peak-throughput">
          <name>Average Peak Throughput</name>
          <t>Throughput is related to user-observable application outcomes because there must
be <em>enough</em> bandwidth available. Adding extra bandwidth above a certain
threshold will, at best, receive diminishing returns (and any returns are often
due to reduced latency). It is not possible to compute the probability of
application success or failure based on throughput alone for most applications.
Throughput can be compared to a variety of application requirements, but since
there is no direct correlation between throughput and application performance,
it is not possible to conclude that an application will work well even if we
know that enough throughput is available.</t>
          <t>Throughput cannot be composed.</t>
        </section>
        <section anchor="average-latency">
          <name>Average Latency</name>
          <t>Average latency relates to user-observable application outcomes in the sense
that the average latency must be low enough to support a good experience.
However, it is not possible to conclude that a general application will work
well based on the fact that the average latency is good enough <xref target="BITAG"/>.</t>
          <t>Average latency can be composed. If the average latency of links a-b and b-c is
known, then the average latency of the composition a-b-c is the sum of a-b and
b-c.</t>
        </section>
        <section anchor="th-percentile-of-latency">
          <name>99th Percentile of Latency</name>
          <t>The 99th percentile of latency relates to user-observable application outcomes
because it captures some information about how bad the tail latency is. If an
application can handle 1% of packets being too late, for instance by maintaining
a playback buffer, then the 99th percentile can be a good metric for measuring
application performance. It does not work as well for applications that are very
sensitive to overly delayed packets because the 99th percentile disregards all
information about the delays of the worst 1% of packets.</t>
          <t>It is not possible to compose 99th-percentile values.</t>
        </section>
        <section anchor="variance-of-latency">
          <name>Variance of latency</name>
          <t>The variance of latency can be calculated from any collection of samples, but
network latency is not necessarily normally distributed, and so it can be
difficult to extrapolate from a measure of the variance of latency to how well
specific applications will work.</t>
          <t>The variance of latency can be composed. If the variance of links a-b and b-c is
known, then the variance of the composition a-b-c is the sum of the variances
a-b and b-c.</t>
        </section>
        <section anchor="inter-packet-delay-variation-ipdv">
          <name>Inter-Packet Delay Variation (IPDV)</name>
          <t>The most common definition of IPDV <xref target="RFC5481"/> measures the difference in
one-delay between subsequent packets. Some applications are very sensitive to
this because of time-outs that cause later-than-usual packets to be discarded.
For some applications, IPDV can be useful in assessing application performance,
especially when it is combined with other latency metrics. IPDV does not contain
enough information to compute the probability that a wide range of applications
will work well.</t>
          <t>IPDV cannot be composed.</t>
        </section>
        <section anchor="packet-delay-variation-pdv">
          <name>Packet Delay Variation (PDV)</name>
          <t>The most common definition of PDV <xref target="RFC5481"/> measures the difference in
one-delay between the smallest recorded latency and each value in a sample.</t>
          <t>PDV cannot be composed.</t>
        </section>
        <section anchor="trimmed-mean-of-latency">
          <name>Trimmed Mean of Latency</name>
          <t>The trimmed mean of latency is the average computed after the worst x percent of
samples have been removed. Trimmed means are typically used in cases where there
is a known rate of measurement errors that should be filtered out before
computing results.</t>
          <t>In the case where the trimmed mean simply removes measurement errors, the result
can be composed in the same way as the average latency. In cases where the
trimmed mean removes real measurements, the trimming operation introduces errors
that may compound when composed.</t>
        </section>
        <section anchor="round-trips-per-minute">
          <name>Round-trips Per Minute</name>
          <t>Round-trips per minute <xref target="RPM"/> is a metric and test procedure specifically
designed to measure delays as experienced by application-layer protocol
procedures such as HTTP GET, establishing a TLS connection, and DNS lookups. It,
therefore, measures something very close to the user-perceived application
performance of HTTP-based applications. RPM loads the network before conducting
latency measurements and is, therefore, a measure of loaded latency (also known
as working latency) well-suited to detecting bufferbloat <xref target="Bufferbloat"/>.</t>
          <t>RPM is not composable.</t>
        </section>
        <section anchor="quality-attenuation">
          <name>Quality Attenuation</name>
          <t>Quality Attenuation is a network performance metric that combines latency and
packet loss into a single variable <xref target="TR-452.1"/>.</t>
          <t>Quality Attenuation relates to user-observable outcomes in the sense that
user-observable outcomes can be measured using the Quality Attenuation metric
directly, or the quality attenuation value describing the time-to-completion of
a user-observable outcome can be computed if we know the quality attenuation of
each sub-goal required to reach the desired outcome <xref target="Haeri22"/>.</t>
          <t>Quality Attenuation is composable because the convolution of quality attenuation
values allows us to compute the time it takes to reach specific outcomes given
the quality attenuation of each sub-goal <xref target="Haeri22"/>.</t>
        </section>
        <section anchor="summary-of-performance-metrics">
          <name>Summary of performance metrics</name>
          <t>This table summarizes the properties of each of the metrics we have surveyed.</t>
          <t>The column "Capture probability of general applications working well" records
whether each metric can, in principle, capture the information necessary to
compute the probability that a general application will work well. We assume
measurements capture the properties of the end-to-end network path that the
application is using.</t>
          <table>
            <thead>
              <tr>
                <th align="left">Metric</th>
                <th align="left">Capture probability of general applications working well</th>
                <th align="left">Easy to articulate Application requirements</th>
                <th align="left">Composable</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Average latency</td>
                <td align="left">Yes for some applications</td>
                <td align="left">Yes</td>
                <td align="left">Yes</td>
              </tr>
              <tr>
                <td align="left">Variance of latency</td>
                <td align="left">No</td>
                <td align="left">No</td>
                <td align="left">Yes</td>
              </tr>
              <tr>
                <td align="left">IPDV</td>
                <td align="left">Yes for some applications</td>
                <td align="left">No</td>
                <td align="left">No</td>
              </tr>
              <tr>
                <td align="left">PDV</td>
                <td align="left">Yes for some applications</td>
                <td align="left">No</td>
                <td align="left">No</td>
              </tr>
              <tr>
                <td align="left">Average Peak Throughput</td>
                <td align="left">Yes for some applications</td>
                <td align="left">Yes</td>
                <td align="left">No</td>
              </tr>
              <tr>
                <td align="left">99th Percentile of Latency</td>
                <td align="left">No</td>
                <td align="left">No</td>
                <td align="left">No</td>
              </tr>
              <tr>
                <td align="left">Trimmed mean of latency</td>
                <td align="left">Yes for some applications</td>
                <td align="left">Yes</td>
                <td align="left">No</td>
              </tr>
              <tr>
                <td align="left">Round Trips Per Minute</td>
                <td align="left">Yes for some applications</td>
                <td align="left">Yes</td>
                <td align="left">No</td>
              </tr>
              <tr>
                <td align="left">Quality Attenuation</td>
                <td align="left">Yes</td>
                <td align="left">No</td>
                <td align="left">Yes</td>
              </tr>
            </tbody>
          </table>
          <t>Explanations:</t>
          <ul spacing="normal">
            <li>
              <t>"Captures probability" refers to whether the metric captures enough information to compute the likelihood of an application succeeding.</t>
            </li>
            <li>
              <t>"Articulate requirements" refers to the ease with which application-specific requirements can be expressed using the metric.</t>
            </li>
            <li>
              <t>"Composable" means whether the metric supports mathematical composition to allow for detailed network analysis.</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="sampling-requirements">
      <name>Sampling requirements</name>
      <t>To reach the design goal of being useful in the contexts laid out in the
Motivation section, this work imposes no requirement on the time period or the
network loading situation. This choice has pros and cons. Latency under load is
extremely important, but average or median latency has a role too. However, a
network quality metric that does not take latency under load into account is
bound to fail at predicting application outcome.</t>
      <t>This framework only requires a latency distribution. If the sampling is done
while the network is loaded, latency under load will be part of the
distribution, which is encouraged, but is not always possible, for example when
passively monitoring the latency of real traffic.</t>
      <t>It takes quite a few samples to have a statistically significant distribution.
Modeling a distribution may be a challenging software engineering task, hence we
need to sample the latency distribution at certain percentiles. A list of 10
percentiles in a logarithmic-esque fashion has already been suggested in
industry [0th, 10th, 25th, 50th, 75th, 90th, 95th, 99th, 99.9th, 100th] and
seems adequate. We propose to define a shared set of percentile values to
report.</t>
      <t>The framework is flexible when it comes to the direction of traffic that is
being sampled, but does require that it is noted whether the latency
distribution is measured one-way or two-way. The framework does not require an
explicit throughput measurement, but does require a note on the maximal observed
throughput in the time period.</t>
      <t>By not requiring a specific number of samples, this framework allows taking 10
samples and calling it a distribution, which of course is not ideal. On the
other hand, making the framework overly complex and difficult to adhere to using
real-world equipment and applications is likely to reduce willingness to adopt
the framework. Constraints will vary for different network equipment and
applications.</t>
      <t>To make sure we can trust measurements from others and analyze their precision,
we require:</t>
      <ul spacing="normal">
        <li>
          <t>Timestamp of first sample</t>
        </li>
        <li>
          <t>Duration of the sampling period</t>
        </li>
        <li>
          <t>Number of samples</t>
        </li>
        <li>
          <t>Type of measurement:  </t>
          <ul spacing="normal">
            <li>
              <t>Cyclic (a sample every Nth ms) - Specify N</t>
            </li>
            <li>
              <t>Bursts (X samples every Nth ms) - Specify X and N</t>
            </li>
            <li>
              <t>Passive (observing traffic and therefore unevenly sampled)</t>
            </li>
          </ul>
        </li>
      </ul>
      <t>By requiring the report of these variables, we ensure that the network
measurements can be analyzed for precision and confidence.</t>
    </section>
    <section anchor="describing-network-requirements">
      <name>Describing Network Requirements</name>
      <t>This work builds upon the work already proposed in the Broadband Forum standard
called Quality of Experience Delivered (QED/TR-452) <xref target="TR-452.1"/>, which defines
the Quality Attenuation metric. In essence, QoO
describes network requirements as a list of percentile and latency requirement
tuples. In other words, a network requirement may be expressed as: The network
requirement for this app quality level/app/app category/SLA is “at 4 Mbps, 90%
of packets needs to arrive within 100 ms, 100% of packets needs to arrive within
200ms”. This list can be as simple as “100% of packets need to arrive within
200ms” or as long as you would like. For the sake of simplicity, the
requirements percentiles must match one or more of the percentiles defined in
the measurements, i.e., one can set requirements at the [0th, 10th, 25th, 50th,
75th, 90th, 95th, 99th, 99.9th, 100th] percentiles. Packet loss must be
reported as a separate value.</t>
      <t>Applications do of course have throughput requirements. We cannot rely
on monitoring latency exclusively, because low bandwidth may give poor application
outcomes without necessarily inducing a lot of latency. Therefore, the network
requirements should include a minimum throughput requirement. A fully specified
requirement can be thought of as specifying the latency and loss requirements to
be met while the end-to-end network path is loaded in a way that is at least as
demanding of the network as the application itself. This may be achieved by
running the actual application and measuring delay and loss alongside it, or by
generating artificial traffic to a level at least equivalent to the application traffic load.</t>
      <t>Whether the requirements are one-way or two-way must be specified. Where the
requirement is one-way, the direction (uplink or downlink) must be specified. If
two-way, a decomposition into uplink and downlink measurements may be specified.</t>
      <t>Until now, network requirements and measurements are what is already
standardized in the BBF TR-452 (aka QED) framework <xref target="TR-452.1"/>. The novel part
of this work is what comes next. A method for going from Network Requirements
and Network Measurements to probabilities of good application outcomes.</t>
      <t>To do that we need to make articulating the network requirements a little bit
more complicated. A key design goal was to have a distance measure between
perfect and unusable, and have a way of quantifying what is ‘better’.</t>
      <t>We extend the requirements to include the quality required for perfection and a
quality threshold beyond which the application is considered unusable.</t>
      <t>This is named Network Requirements for Perfection (NRP). As an example: At 4
Mbps, 99% of packets need to arrive within 100ms, 99.9% within 200ms (implying
that 0.1% packet loss is acceptable) for the outcome to be perfect. Network
Requirement Point of Unusableness (NRPoU): If 99% of the packets have not
arrived after 200ms, or 99.9% within 300ms, the outcome will be unusable.</t>
      <t>Where the NRPoU percentiles and NRP are a required pair then neither should
define a percentile not included in the other - i.e., if the 99.9th percentile
is part of the NRPoU then the NRP must also include the 99.9th percentile.</t>
    </section>
    <section anchor="calculating-quality-of-outcome-qoo">
      <name>Calculating Quality of Outcome (QoO)</name>
      <t>The QoO metric calculates the likelihood of application success based on network performance, incorporating both latency and packet loss. There are three key scenarios:</t>
      <ul spacing="normal">
        <li>
          <t>The network meets all the requirements for perfection. Probability of success: 100%.</t>
        </li>
        <li>
          <t>The network fails one or more criteria at the Point of Unusableness (NRPoU). Probability of success: 0%.</t>
        </li>
        <li>
          <t>The network performance falls between perfection and unusable. In this case, a
QoO score is computed. The QoO score is calculated by taking the worst score
derived from latency and packet loss.</t>
        </li>
      </ul>
      <t>Latency Component
The latency-based QoO score is computed as follows:</t>
      <t>QoO_latency = min_{i}(min(max((1 - ((ML_i - NRP_i) / (NRPoU_i - NRP_i))) * 100, 0), 100))</t>
      <t>Where:</t>
      <ul spacing="normal">
        <li>
          <t>ML_i is the Measured Latency at percentile i.</t>
        </li>
        <li>
          <t>NRP_i is the Network Requirement for Perfection at percentile i.</t>
        </li>
        <li>
          <t>NRPoU_i is the Network Requirement Point of Unusableness at percentile i.</t>
        </li>
      </ul>
      <t>Packet Loss Component
Packet loss is considered as a separate, single measurement that applies across the entire traffic sample, not at each percentile. The packet loss score is calculated using a similar interpolation formula, but based on the total measured packet loss (MLoss) and the packet loss thresholds defined in the NRP and NRPoU:</t>
      <t>QoO_loss = min(max((1 - ((MLoss - NRP_Loss) / (NRPoU_Loss - NRP_Loss))) * 100, 0), 100)</t>
      <t>Where:</t>
      <ul spacing="normal">
        <li>
          <t>MLoss is the Measured Packet Loss.</t>
        </li>
        <li>
          <t>NRP_Loss is the acceptable packet loss for perfection.</t>
        </li>
        <li>
          <t>NRPoU_Loss is the packet loss threshold beyond which the application becomes unusable.</t>
        </li>
      </ul>
      <t>Final QoO Calculation
The overall QoO score is the minimum of the latency and packet loss scores:</t>
      <t>QoO = min(QoO_latency, QoO_loss)</t>
      <t>Example Requirements and Measured Data:</t>
      <ul spacing="normal">
        <li>
          <t>NRP: 4 Mbps {99%, 250 ms, 0.1% loss}, {99.9%, 350 ms, 0.1% loss}</t>
        </li>
        <li>
          <t>NRPoU: {99%, 400 ms, 1% loss}, {99.9%, 401 ms, 1% loss}</t>
        </li>
        <li>
          <t>Measured Latency: 99% = 350 ms, 99.9% = 352 ms</t>
        </li>
        <li>
          <t>Measured Packet Loss: 0.5%</t>
        </li>
        <li>
          <t>Measured Minimum Bandwidth: 32 Mbps / 28 Mbps</t>
        </li>
      </ul>
      <t>Then the QoO is defined:</t>
      <t>QoO_latency
= min(
(min(max((1 - (350 ms - 250 ms) / (400 ms - 250 ms)) * 100, 0), 100),
(min(max((1 - (352 ms - 350 ms) / (401 ms - 350 ms)) * 100, 0), 100))
)
= min(33.33, 96.08)
= 33.33</t>
      <t>QoO_loss
= min(max((1 - (0.5% - 0.1%) / (1% - 0.1%)) * 100, 0), 100)
= 55.56</t>
      <t>Finally, the overall QoO score is:</t>
      <t>QoO = min(33.33, 55.56)
= 33.33</t>
      <t>In this example, the application has a 33% chance of meeting the quality expectations on this network, considering both latency and packet loss.</t>
    </section>
    <section anchor="how-to-find-network-requirements">
      <name>How to find network requirements</name>
      <t>A key advantage of having a measurement that stretches between perfect and
unusable, as opposed to having a binary (Good/Bad) or other low resolution
(Superbad/Bad/OK/Great/Supergreat) metrics, is that we have some leeway. The
leeway is useful, for instance: a lower than 20% chance of lag free experience
is intuitively not good and a greater than 90% chance of lag free experience is
intuitively good --- meaning we don’t have to find perfection for making the QoO
metric useful.</t>
      <t>Nevertheless we have to find some points for unusableness and perfection. There
is no strict definition of when the network is so bad that the application is
unusable. For perfect, we may have a definition for some apps, but for apps like
web browsing and gaming, lower latency is simply better. But to assist those who
wish to make a requirement, we can say that if the end-user experience does not
change when reducing the latency, the network quality is sufficient for the
Network Requirements for Perfection (NRP) .</t>
      <t>Someone who wishes to make a network requirement for an application in the
simplest possible way, should do something along these lines.</t>
      <ul spacing="normal">
        <li>
          <t>Simulate increasing levels of latency</t>
        </li>
        <li>
          <t>Observe the application and note the threshold where the application stops
working perfectly</t>
        </li>
        <li>
          <t>Observe the application and note the threshold where the application stops
being useful at all</t>
        </li>
      </ul>
      <t>Someone who wishes to find sophisticated network requirements might proceed in
this way</t>
      <ul spacing="normal">
        <li>
          <t>Set thresholds for acceptable fps, animation fluidity, i/o latency (voice,
video, actions), or other metrics capturing outcomes that directly affects the
user experience</t>
        </li>
        <li>
          <t>Create a tool for measuring these user-facing metrics</t>
        </li>
        <li>
          <t>Simulate varying latency distribution with increasing levels of latency while
measuring the user facing metrics.</t>
        </li>
      </ul>
      <t>A QoO score at 94 can be communicated as "John's smartphone has a 94% chance of
lag-free Video Conferencing", however, this does not mean that at any point of
time there is a 6% chance of lag. It means there is a 6% chance of experiencing
lag during the entire session/time-period, and the network requirements should
be adjusted accordingly.</t>
      <t>The reason for making the QoO metric for a session is to make it understandable
for an end-user, an end-user should not have to relate to the time period the
metric is for.</t>
      <section anchor="an-example">
        <name>An example</name>
        <t>Example.com's video-conferencing service requirements can be translated into the
QoO Framework. For best performance for video meetings, they specify 4/4 Mbps,
100 ms latency, &lt;1% packet loss, and &lt;30 ms jitter. This can be translated to an
NRP:</t>
        <t>NRP example.com video conferencing service: At minimum 4/4 Mbps.
{0p=70ms,99p=100ms}</t>
        <t>For minimum requirements example.com does not specify anything, but at 500ms
latency or 1000ms 99p latency, a video conference is very unlikely to work in a
remotely satisfactory way.</t>
        <t>NRPoU {0p=500,99p=1000ms}</t>
        <t>Of course, it is possible to specify network requirements for Example.com with
multiple NRP/NRPoU, for different quality levels, one/two way video, and so on.
Then one can calculate the QoO at each level.</t>
      </section>
    </section>
    <section anchor="known-weaknesses-and-open-questions">
      <name>Known Weaknesses and open questions</name>
      <t>We have described a way of simplifying how the network requirements of
applications can be compared to quality attenuation measurements. The
simplification introduces several artifacts that may or may not be significant.
If new information emerges that indicate other tradeoffs are more fit for our
purpose, we should switch before this Internet Draft moves further. In this
section we discuss some known limitations.</t>
      <t>Volatile networks - in particular, mobile cellular networks - pose a challenge
for network quality prediction, with the level of assurance of the prediction
likely to decrease as session duration increases. Historic network conditions
for a given cell may help indicate times of network load or reduced transmission
power, and their effect on throughput/latency/loss. However: as terminals are
mobile, the signal bandwidth available to a given terminal can change by an
order of magnitude within seconds due to physical radio factors. These include
whether the terminal is at the edge of cell, or undergoing cell handover, the
interference and fading from the local environment, and any switch between radio
bearers with differing signal bandwidth and transmission-time intervals (e.g. 4G
and 5G). This suggests a requirement for measuring quality attenuation to and
from an individual terminal, as that can account for the factors described
above. How that facility is provisioned onto indiviudal terminals, and how
terminal-hosted applications can trigger a quality attenuation query, is an open
question.</t>
      <section anchor="missing-temporal-information-in-distributions">
        <name>Missing Temporal Information in Distributions.</name>
        <t>These two latency series: 1,200,1,200,1,200,1,200,1,200 and
1,1,1,1,1,200,200,200,200,200 will have identical distributions, but may have
different application performance. Ignoring this information is a tradeoff
between simplicity and precision. To capture all information necessary to
perfectly capture outcomes we are getting into extreme computational complexity.
As an application's performance is bound by how the developers react to varying
network performance, meaning nearly all different series of latencies may have
different application outcomes.</t>
        <t>It will most likely be necessary to add a time-scale to the application
requirement specifications.</t>
      </section>
      <section anchor="subsampling-the-real-distribution">
        <name>Subsampling the real distribution</name>
        <t>Additionally, we cannot capture latency on every packet that is sent. We can
probe and sample, but there will always be unknowns. We are now in the realm of
probability. Perfection is impossible, but instead of denying this, we should
embrace it, which is why talking about the probability of outcomes is the way
forward.</t>
      </section>
      <section anchor="assuming-linear-relationship-between-perfect-and-unusable-and-that-it-is-not-really-a-probability">
        <name>Assuming Linear Relationship between Perfect and Unusable (and that it is not really a probability)</name>
        <t>One can conjure up scenarios where 50ms latency is actually worse than 51ms
latency as developers may have chosen 50ms as the threshold for changing
quality, and the threshold may be imperfect. Taking these scenarios into account
would add another magnitude of complexity to determining network requirements
and finding a distance measure (between requirement and actual measured
capability).</t>
      </section>
      <section anchor="binary-bandwidth-threshold">
        <name>Binary Bandwidth threshold</name>
        <t>Choosing this is to reduce complexity, but we do acknowledge that the
applications are not that simple. The defence for this trade off is that
insufficient bandwidth will cause queues and therefore latency, and it should be
possible to see this. Additionally, network requirements can be set up per
quality level (resolution, fps etc.) for the application. However, having too
many network requirements also increases the complexity for users of the
framework, and it is still unclear if this is the optimal tradeoff.</t>
      </section>
      <section anchor="low-resolution-on-packet-loss">
        <name>Low resolution on Packet Loss</name>
        <t>To ensure simplicity, packet loss is described as infinite latency and the
resolution will be bound to the percentiles we chose to sample. There is a good
argument that some applications need higher resolution on packet loss for
sufficiently describing application outcomes. If this good evidence is presented
for this, packet loss should be measured separately and added to the QoO
formula.</t>
      </section>
      <section anchor="arbitrary-selection-of-percentiles">
        <name>Arbitrary selection of percentiles</name>
        <t>There is a need for a selection of percentiles, as we in the name of simplicity
can’t use them all. But how should we select them? The 0th (minimal) and 50th
(median) percentile have implicit usage by themselves. <xref target="BITAG"/> discusses that
the 90th, 98th and 99th percentiles are key for some apps. In general the wisdom
is that the higher percentiles are more useful for interactive applications, but
only to a certain point. At this point an application sees it as packet loss and
may adapt to it. Should we pick the 95th, 96th percentile, the 96.5th or the
97th? We don’t know, and as this is likely not universal across applications and
applications classes, we simply have to choose arbitrarily, and to the best of
our knowledge.</t>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation status</name>
      <t>Note to RFC Editor: This section <bcp14>MUST</bcp14> be removed before publication of the
document.</t>
      <t>This section records the status of known implementations of the protocol defined
by this specification at the time of posting of this Internet-Draft, and is
based on a proposal described in <xref target="RFC7942"/>. The description of implementations
in this section is intended to assist the IETF in its decision processes in
progressing drafts to RFCs. Please note that the listing of any individual
implementation here does not imply endorsement by the IETF. Furthermore, no
effort has been spent to verify the information presented here that was supplied
by IETF contributors. This is not intended as, and must not be construed to be,
a catalog of available implementations or their features. Readers are advised to
note that other implementations may exist.</t>
      <t>According to <xref target="RFC7942"/>, "this will allow reviewers and working groups to assign
due consideration to documents that have the benefit of running code, which may
serve as evidence of valuable experimentation and feedback that have made the
implemented protocols more mature. It is up to the individual working groups to
use this information as they see fit".</t>
      <section anchor="qoo-c">
        <name>qoo-c</name>
        <ul spacing="normal">
          <li>
            <t>Link to the open-source repository:  </t>
            <t>
https://github.com/domoslabs/qoo-c</t>
          </li>
          <li>
            <t>The organization responsible for the implementation:  </t>
            <t>
Domos</t>
          </li>
          <li>
            <t>A brief general description:  </t>
            <t>
A C library for calculating Quality of Outcome</t>
          </li>
          <li>
            <t>The implementation's level of maturity:  </t>
            <t>
A complete implentation of the specification described in this document</t>
          </li>
          <li>
            <t>Coverage:  </t>
            <t>
The library is tested with unit tests</t>
          </li>
          <li>
            <t>Licensing:  </t>
            <t>
GPL 2.0</t>
          </li>
          <li>
            <t>Implementation experience:  </t>
            <t>
Tested by the author. Needs additional testing by third parties.</t>
          </li>
          <li>
            <t>Contact information:  </t>
            <t>
Bjørn Ivar Teigen: bjorn@domos.no</t>
          </li>
          <li>
            <t>The date when information about this particular implementation was last
updated:  </t>
            <t>
10th of January 2024</t>
          </li>
        </ul>
      </section>
      <section anchor="goresponsiveness">
        <name>goresponsiveness</name>
        <ul spacing="normal">
          <li>
            <t>Link to the open-source repository:  </t>
            <t>
https://github.com/network-quality/goresponsiveness  </t>
            <t>
The specific pull-request:
https://github.com/network-quality/goresponsiveness/pull/56</t>
          </li>
          <li>
            <t>The organization responsible for the implementation:  </t>
            <t>
University of Cincinatti for goresponsiveness as a whole, Domos for the QoO
part.</t>
          </li>
          <li>
            <t>A brief general description:  </t>
            <t>
A network quality test written in Go. Capable of measuring RPM and QoO.</t>
          </li>
          <li>
            <t>The implementation's level of maturity:  </t>
            <t>
In active development</t>
          </li>
          <li>
            <t>Coverage:  </t>
            <t>
The QoO part is tested with unit tests</t>
          </li>
          <li>
            <t>Licensing:  </t>
            <t>
GPL 2.0</t>
          </li>
          <li>
            <t>Implementation experience:  </t>
            <t>
Needs testing by third parties</t>
          </li>
          <li>
            <t>Contact information:  </t>
            <t>
Bjørn Ivar Teigen: bjorn@domos.no  </t>
            <t>
William Hawkins III: hawkinwh@ucmail.uc.edu</t>
          </li>
          <li>
            <t>The date when information about this particular implementation was last
updated:  </t>
            <t>
10th of January 2024</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</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="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="TR-452.1" target="https://www.broadband-forum.org/download/TR-452.1.pdf">
          <front>
            <title>TR-452.1: Quality Attenuation Measurement Architecture and Requirements</title>
            <author>
              <organization>Broadband Forum</organization>
            </author>
            <date year="2020" month="September"/>
          </front>
        </reference>
        <reference anchor="BITAG" target="https://www.bitag.org/documents/BITAG_latency_explained.pdf">
          <front>
            <title>Latency Explained</title>
            <author>
              <organization>BITAG</organization>
            </author>
            <date year="2022" month="October"/>
          </front>
        </reference>
        <reference anchor="RFC5481">
          <front>
            <title>Packet Delay Variation Applicability Statement</title>
            <author fullname="A. Morton" initials="A." surname="Morton"/>
            <author fullname="B. Claise" initials="B." surname="Claise"/>
            <date month="March" year="2009"/>
            <abstract>
              <t>Packet delay variation metrics appear in many different standards documents. The metric definition in RFC 3393 has considerable flexibility, and it allows multiple formulations of delay variation through the specification of different packet selection functions.</t>
              <t>Although flexibility provides wide coverage and room for new ideas, it can make comparisons of independent implementations more difficult. Two different formulations of delay variation have come into wide use in the context of active measurements. This memo examines a range of circumstances for active measurements of delay variation and their uses, and recommends which of the two forms is best matched to particular conditions and tasks. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5481"/>
          <seriesInfo name="DOI" value="10.17487/RFC5481"/>
        </reference>
        <reference anchor="RFC6049">
          <front>
            <title>Spatial Composition of Metrics</title>
            <author fullname="A. Morton" initials="A." surname="Morton"/>
            <author fullname="E. Stephan" initials="E." surname="Stephan"/>
            <date month="January" year="2011"/>
            <abstract>
              <t>This memo utilizes IP performance metrics that are applicable to both complete paths and sub-paths, and it defines relationships to compose a complete path metric from the sub-path metrics with some accuracy with regard to the actual metrics. This is called "spatial composition" in RFC 2330. The memo refers to the framework for metric composition, and provides background and motivation for combining metrics to derive others. The descriptions of several composed metrics and statistics follow. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6049"/>
          <seriesInfo name="DOI" value="10.17487/RFC6049"/>
        </reference>
        <reference anchor="RFC6390">
          <front>
            <title>Guidelines for Considering New Performance Metric Development</title>
            <author fullname="A. Clark" initials="A." surname="Clark"/>
            <author fullname="B. Claise" initials="B." surname="Claise"/>
            <date month="October" year="2011"/>
            <abstract>
              <t>This document describes a framework and a process for developing Performance Metrics of protocols and applications transported over IETF-specified protocols. These metrics can be used to characterize traffic on live networks and services. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="170"/>
          <seriesInfo name="RFC" value="6390"/>
          <seriesInfo name="DOI" value="10.17487/RFC6390"/>
        </reference>
        <reference anchor="RFC9318">
          <front>
            <title>IAB Workshop Report: Measuring Network Quality for End-Users</title>
            <author fullname="W. Hardaker" initials="W." surname="Hardaker"/>
            <author fullname="O. Shapira" initials="O." surname="Shapira"/>
            <date month="October" year="2022"/>
            <abstract>
              <t>The Measuring Network Quality for End-Users workshop was held virtually by the Internet Architecture Board (IAB) on September 14-16, 2021. This report summarizes the workshop, the topics discussed, and some preliminary conclusions drawn at the end of the workshop.</t>
              <t>Note that this document is a report on the proceedings of the workshop. The views and positions documented in this report are those of the workshop participants and do not necessarily reflect IAB views and positions.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9318"/>
          <seriesInfo name="DOI" value="10.17487/RFC9318"/>
        </reference>
        <reference anchor="RPM" target="https://datatracker.ietf.org/doc/html/draft-ietf-ippm-responsiveness">
          <front>
            <title>Responsiveness under Working Conditions</title>
            <author>
              <organization/>
            </author>
            <date year="2022" month="July"/>
          </front>
        </reference>
        <reference anchor="RRUL" target="https://www.bufferbloat.net/projects/bloat/wiki/RRUL_Spec/">
          <front>
            <title>Real-time response under load test specification</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="Bufferbloat" target="https://queue.acm.org/detail.cfm?id=2071893">
          <front>
            <title>Bufferbloat: Dark buffers in the Internet</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="Haeri22" target="https://www.mdpi.com/2073-431X/11/3/45">
          <front>
            <title>Mind Your Outcomes: The ΔQSD Paradigm for Quality-Centric Systems Development and Its Application to a Blockchain Case Study</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC5357">
          <front>
            <title>A Two-Way Active Measurement Protocol (TWAMP)</title>
            <author fullname="K. Hedayat" initials="K." surname="Hedayat"/>
            <author fullname="R. Krzanowski" initials="R." surname="Krzanowski"/>
            <author fullname="A. Morton" initials="A." surname="Morton"/>
            <author fullname="K. Yum" initials="K." surname="Yum"/>
            <author fullname="J. Babiarz" initials="J." surname="Babiarz"/>
            <date month="October" year="2008"/>
            <abstract>
              <t>The One-way Active Measurement Protocol (OWAMP), specified in RFC 4656, provides a common protocol for measuring one-way metrics between network devices. OWAMP can be used bi-directionally to measure one-way metrics in both directions between two network elements. However, it does not accommodate round-trip or two-way measurements. This memo specifies a Two-Way Active Measurement Protocol (TWAMP), based on the OWAMP, that adds two-way or round-trip measurement capabilities. The TWAMP measurement architecture is usually comprised of two hosts with specific roles, and this allows for some protocol simplifications, making it an attractive alternative in some circumstances. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5357"/>
          <seriesInfo name="DOI" value="10.17487/RFC5357"/>
        </reference>
        <reference anchor="RFC8762">
          <front>
            <title>Simple Two-Way Active Measurement Protocol</title>
            <author fullname="G. Mirsky" initials="G." surname="Mirsky"/>
            <author fullname="G. Jun" initials="G." surname="Jun"/>
            <author fullname="H. Nydell" initials="H." surname="Nydell"/>
            <author fullname="R. Foote" initials="R." surname="Foote"/>
            <date month="March" year="2020"/>
            <abstract>
              <t>This document describes the Simple Two-way Active Measurement Protocol (STAMP), which enables the measurement of both one-way and round-trip performance metrics, like delay, delay variation, and packet loss.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8762"/>
          <seriesInfo name="DOI" value="10.17487/RFC8762"/>
        </reference>
        <reference anchor="IRTT" target="https://github.com/heistp/irtt">
          <front>
            <title>Isochronous Round-Trip Tester</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="Kelly" target="https://www.cambridge.org/core/journals/advances-in-applied-probability/article/abs/networks-of-queues/38A1EA868A62B09C77A073BECA1A1B56">
          <front>
            <title>Networks of Queues</title>
            <author initials="F. P." surname="Kelly" fullname="Frank P. Kelly">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC8239">
          <front>
            <title>Data Center Benchmarking Methodology</title>
            <author fullname="L. Avramov" initials="L." surname="Avramov"/>
            <author fullname="J. Rapp" initials="J." surname="Rapp"/>
            <date month="August" year="2017"/>
            <abstract>
              <t>The purpose of this informational document is to establish test and evaluation methodology and measurement techniques for physical network equipment in the data center. RFC 8238 is a prerequisite for this document, as it contains terminology that is considered normative. Many of these terms and methods may be applicable beyond the scope of this document as the technologies originally applied in the data center are deployed elsewhere.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8239"/>
          <seriesInfo name="DOI" value="10.17487/RFC8239"/>
        </reference>
      </references>
    </references>
    <?line 979?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA8V9WXMkx5Hme/yKWMhkBGR14OgmGxhxKPRFQuoDbKDJkc2M
0bKqsgrJzsos5gGwRLWZfsQ+7JrtmO3r/oN53nnfH6Ffsv65e0RGZCWarWN3
Zm1FdFYeER4e7p+fMR6PTZM1eXpm975ukzxrtrZc2tdtMy/X6Z5JZrMqvcWP
5es9M0+adFVW2zObFcvSmEU5L5I1PbuokmUzztJmOc42m/X4h7IcHx6Zup2t
s7rOyqLZbui2i2fXz639hU3yuqR3ZsUi3aT0P0WzN7J7F+eP6T9lRX+9uX6+
Z4p2PUurM7Ogr56ZeVnUaVG39ZltqjY1NKgTk1RpQi+6rpKi3pRVs2fuyurd
qirbDV2+uLSXabUsq3VSzFP7Mk3qtkrX+Jx5l27p1sWZsWPrJn7eNGnRJg2N
F5fPN5s8m/M/HUHq8PaOTrgafmldFllTVlmxwi+v0gajsj/Ic+aWPkITsvZj
xmmtkG7vW3oFvdB+iYdwfZ1kOYhI9P4NKD8pqxWuJ9X8hq7fNM2mPptOcRsu
ZbfpxN02xYXprCrv6nSKF0zx4CprbtoZPboo12WdJ7N6Sqt+8RS/5bQGdRO8
Vm6e0OynO7ebpG1uygq0pUetXbZ5Lnzy+Pv/+PeqsBe3SWWv02yVFnwDDSkp
sj8wqc/sU7yPr6cyx9n3ZVX8hj8zKUr+pW6qNKXxfJm0dZMskjz/j/+VFvb4
iH+dlwv62OHJg1P9Z1s04NpXr998e/773WG9TFZFW9vX+eLjBrTm+/+OIzIF
Fr+hNTozBnvL/4u2y5vnTx4dnx6e0cZ5/vV3T8qnae4uH56c4PLlxTO6Qhc+
O31wjAsX603ODCTcu0gbGndt63QuzG2v34wfPDyeHJ3xcJwE8FeHtkTIl/Yc
HNXQ6+iCTYqFfZP+0GbyY73HL/VMYJWitPxVmSxmuP15WbVr/ol3t71KN02K
7W6PD48PZXmYCO75y6fPz6xjvru7u8nMvWu8xLuYrRflXZHT5ambyGSzWNIL
Hl9cn38ZTfUFfbWYb+2zHzd5khXp4t4h49GPGk/WJCsdxbxlOkz54e9y+dZ3
qfuWjsrN/fW8KXXmx7qwJyenvLCQDMn8XdpYWvRka79JqkwWY//i8uk3B7Lq
Dx88OmI2GL5V5dgs4xW9Ip7gZZJnPz18cIpnrzZ0c5LbJ+V6U9YZP0gC7mXa
VNm81ntPhAu/bLNFmtNMahCFHilqugBxR7LurifL8DwN6TbNy41+dpd17+Fx
unp6cvSIKXH+2EIE1jflxlYphD2es1dfnb959pT3ScjIN6m9KJq0KogeWW0T
e3VDumLhZPGe3t8t+C94VUUc7F01bVI19slNWt8QU7u7Ow74xTAPZMmMOeBu
MyZ1RaveTGnc43YDpqyntMBH08PTqWjLub59nOlAx6QqeZTjw8OZ8siby5cR
375JSc8RuUmHpHVtW1KelXWqgRZiwSsnwqpJqhUkkhshcVvSVOCRqtMExKzT
m2adT/sqvIq+FLDrb9t863j1zZu3L3rjS/Jxk61Tq8+nOkZQwEKH2HqTzrOl
KtbBgfJ2apfLtJrRY82EaDPdVOX3JG7qKV+a3mXvsim+/t0VvW6KPd49EAu1
8Af7NCFFLO+uCcTYJmCUvcHB/NCmbTpJ5iphWJJO5sv1F9ni8+PDz44enZ7Q
c18lxP/Hx/GXXxLAsb8v28rDhzMLzvw///Xrq6e0W6tkka3WvIdU3o6fEM9g
w1xta9qldbhxWMxeNHWES5qSePtxXs7fzW9IttgnCVGc2HexHZ4NSLtebDJW
3DT8k/GDk6N/mh4dTU+mDx6qODl5+Bm23PW35y8vbZ6tblRWPPrsU9YuV9f0
A10imHYdz/iiLuc3VVmUpE3fkI5bjK+rbEOqnmZTDY8oABI3aVY3m2lWNfjg
79I838av191bQzJ9jXUZVDW6iZ8TKHxnLyfyovjjeyE95sl6VmWLVcorPC+r
dPo9LVpBKHWaLG4hx2rapOMEdKfdSaw4U2lKQKrJ5nk6BfopdHTjcjlmrqmn
J4/Oj56dP/r00fmnx48PT5989tk50fzxsyfnR+dHjx9+uqeEPT5hIfwmZb6k
Rb0hSpSrKlljqqpAbJ1ArdfGjMdjS1/EZm6MuaabrVM6pOvreZXNUgi9gqRx
EaNPu6SXpnwFdFoModl9wnEHE2ZV+it4IoPEyWhuNiGIu7r/3bWdpXMCQqnN
GoPRpXW2Is2Hqa0JJvG+K9J0wUuZBAy9EIYnMowsPU/UANvjQkKIup7IbCHS
CYDQvQs729pZUkP+4aXdYOllAyhmRF9YZgVuT0ydgaAq13kfinDa8s/BqKoA
3Yx4RN1b7B1p26YkA2W9aRsijdXX4jaS7W0GJMeTGS+TOZ5Zs1acYOnCERNj
ke7llcM7iTK84tkupUcE5Zom+MG4JQhHyiNIeHptzv+18ySf09+NI1fAy/w7
XTPCZgv/TVqzmp6ol1t/KfzKRPhxnS0WeWrMLyBPq3LRCtSMmRMQiPZXbW/K
O/6+G3YS4EyhDg/e08b89JPDdO/f0ywKYjB6WwPrMeYqoHpQB+SLiOE2BhbF
4M6XJS2MfFKBsfD8qiQclPE25FVOeSftTDwYXHND7EOIn+ype5iZiSi8hVFm
1SApibVy2lfmjmSiZyw7JyM35KtdTsIGoHnRF8GESdVjXxPRgYnlkTxvQDeW
TYfcJvax21REinBXmaE1i5YHZjoWmcni3u23sF3JSpll0uYAPWUu78CC+5Hk
ScHba0bwY5nJMOeMTZVdie2+HhhIVger5UaqVOLxgFFqstBr5hDwAXEFaaeM
xAG4pm0cLgip9g8kyJjt5smGbZ7+5oEY85tRt8uHpUjGyNTNKU9FruhniLtl
KZm7TWLJYiZstu2Ly2gjMvdugFx5pvT2Lc2IPTA0kkx3XWk2tDhg4KGFpJ9o
VZhLaG+NOxF8D1/TXqLhMsYjs7dYYCZg3In9NqVZ5JDRRBm6dxy8YYQL4SvH
8HLA+WNw59WLc/xIFt78hlcUf29gz6T2Jq1SmSkhnjxPi1VKGCVlNBdIb50q
bxlsupQwyerGYmdhifNSmLukzdDiI7TkabVmNiPyzLPacWQyn7ekZ8FvwYyi
5a8biKtgvO9SImqtSk5YkYgzf4cXmmDWn9Q7rJosiMGEysoHNwTACHGDHfL0
x0kI/3hlWJbxAuTbQCPgTxpRU85LsvzXybuUpBwxB2hYbgiiq3uj7oQHCyYs
wDzNbgMF4MZW3tKiMbgHYeqEP1cTYiAZAVafgbI06FJwBBPbEE4pc+jFeVoR
di7oPXcZiegZCEj4haZC8Mxm2AZ1RtzDnIO50xKm+CKPPSWFQkNfmBXhKuhI
GW9/D+qna1ktVaiwF4XlB1QpFiqhTVJk63bt9hNtOoKxxDCbVnA3iQYTIDFc
IhaqLROL3kuwLFqZCMdU6Qo6t6wIqZQL8CqWraThV5aNP8DjBe9c/Ii5O2U1
qCacgCJFnRJ1ioIMunC6scpP7CLD1oRfUuQ+0b65S9OC5T1pPp5OW7QshrC3
strsPEOjGvGK8ooT1ep2vWEGGnlUkQbcwCJIWNjtwox1LzSh80HUtsbuoyX4
85/+x7n9JlukJcxYgsEpPn7Di3N68ktsdlygNZil8KvmyYq0UpoKH2R+I/35
T/8GTWzvbmhNwDos+hrruAuCDbg0xoozWgwDYkHmNeWY/iPGKksAsgS2NWvB
cs0kUPrrJxXH9SGcY6nbjGWi/5jI+XJJnGQJwdNKBxKHxqDUmkPHsZz7viUB
4wxmRWmCgVlI8+oki3LjlWjrdCSkM/HHljhgySSlFYFf4seA8NiCEGg0W5CK
55j0REzo0OYbHFeCKdk4pZGW4tVMGUTK7giFKTGPV6nMJgbCiLiF0ZEHUMKy
juKqof1LJsCXHW4TdKngLbB8eHEJNDEK4SVsCADMSAoNoYMOx62J0sRzt8wl
M0ZaBCd5SB0FiXnfpTdlDo0nCxReIZLP8xaglHS3uU8iPCM2e1vznxieixC8
9hgJV78hLoTJQ+YLjRpqwOR4R/A421B2VwG7KaqhcY9kMvJ0724bolmi5JrZ
7DbJW1a/tER3ZFArig1RAUmNPHuX5gxaFUraFRxIvCAqSBbDaHOQBEZJoNOM
BggATMuHuARto7Kladc3ZclMLCZjp+OUj0i5ORt9Yp/9mNWD+kA+Usf2R40w
jKqqZLGo4HwDhvU2bElmAnbmXakfq2O+GFliP2wBZi/gMiLSEg4iPIkZGXFC
ONjgbGMmNQk6sP6QbeW4P8nWarKo5og3wRDVAwEIzjch58f8FKLBUbgt7jPd
GejwwET4ldWuITCxr4vUbXFAprXf2PAf3IA4kHSGBGmTcTxEhZ5Qip9bJRuv
zvDvJp3fFFgokm0bOAwD+8aEc0/47QEI6WhOEJFW7+4GxER8EjomIxH3LesU
hjPsZE3BQjw3FrJeWJU05TX0eMsgEztXVSxRFORwMEL0iHEOyBE/TwIEiOI2
1eUki3kr+5DXp0IMCq6UKs2ZJsSRd2nyjgy2rWFTUbwSbaFIuFtkXjCAp3rQ
pUDMSUzEqLkhSbeibxbKycGY4MhhbVQ0OUDxY5rZXbZoGPgW6ZzengDoELcX
JUnLdkk3Z2wv0+dBi7HfaSUxWeFXJ/2R1ieD3ifWuFh0dBpZB2j9he8zslmq
kZJ1TfyxSgRDcQgE2gfBYVqY79nr0TJkJHVU9pjWA0aW5KR5iRtCnxtN6g7R
ji0Z0fOSpv4HBjGdBixWtBoS/Jhn1ZykEBnDHPh5/35i3yKW17QFvS3fqs3H
niIegLguyMSd36zhmA49IoFZ3rjw9oR0H3FcYJiRjmkLt0WZI1Ix8EWGCcYk
6VLYl7MN7UuCRaT26epWuAnuBhpAWiC+LsEDGRRAzjsWQCKQyiIHjCBdX6tA
7fEPsQKc//Ya9sGbe5z/9U8/wWn//r3GDKNgBv12+ZJ+Yrx/065S8GG2ENNO
kVyCzQ6M8SETH1AtoVUnLsDsSzO04EKVWcC9Iy8T8oS/kTFKAkdD3NGLBXoG
G4//BPmnHxCYRJlzwngloP7CORh0siMA39etn0+t+5sI1wVgRryTBJnR2OZY
F9MJOi+QRMeQcMWi+zttckdswhSOJdQEWPmapyuv7G4kXQ3k518R7H/s4s6X
Q/PMilsgZRoz7Z6qvAWJ+quzP0u3JbtDIaG8s7Yzsg6cdCX9X9irsiWzqi9p
R/ZW4UBF4xSbUaLcLB4J5Yj/BCpzViLejXiwMHPaUYM2DE2kqkWX0/JumgFb
t5OaashsRJE6/GNijFzBCeGwjxoF57SWIBvHLu9c7JIdnEBCbJi4GKX/rNgg
6vrOkBrDdpMRyL+GFCDJK9x0ZgUEwpkFDwFGoUZ4wPCh0ttPalNuYKHwJh/A
BLQQ5+zbZ89YCTBb8xQzkQPedBvZvXPaCkxFsAtNB7tE9yHmoXMgAXqTqhzq
Q0b2BIhqrsBU9C56cJlkuQ8gsGPNL54fsliinXIh+xCKnAQxvDH1nqENJtFj
iOEAaESG9F1qndMPfiUWAhhqSuOnbSdYCBvaINBW1HepGl8/tLCXkByy9y3m
QKIkmpezBTGlL/bAmv7xUkCNe4MbELbbMr1jwbuq/8E+zyqwPI2QrRIiQFHe
5angnqRRqOBD3CQrS6IBu6L2WVTwTgebIB51m9GrQUDCKQLJ5znodiBC7048
LgX7W2SgJpqn0Nu7cCb2KoXCGAV2UbQhWLn43xQmsyUG/1b3i2yYW0IMISTx
ugjGTxFuRgIokC/3rIaQSpeMXedJ40geYOpuXOGY2fFRLaCmux2ILUU4NLvN
FrRDayFDN2d2/2zUxBgZdgsBBYuoLXMSk4yzywpxpxVZ+94e2Z2rVz/ig8U8
0yX7Z8qYuzqgJEbBU46u2S/LJGdPBPx0EIJRICOwCqItIPa2LWcIrwNi9yNK
AfHhCYj1bGAKBAZCGHvoWQW7ZsDUSfUEElRmFGYTfcjIZ8vIssLcCXyxzdmF
eHiIyfyGPnBR2BXpOaLRiJVFZL+D8muGa6FAZdEnWKDngq9N1UqoQtyjgV8o
Mrvd02JS1KzS4dnB4nYohBS4QXakc28uOJdHRZcjXU7QTOYoMUf+AIBAk24A
lm7L/FbCXIqa8HDIQMu2kHgXe65q/Yz4FduqCMweF6eLFApJY6I/g7oy8oSN
jLvfDRXOe+ZhCdSmxW1WlQVnpuVDrE9mX3KbAWIs1UEq+xCJMW4mnUu0ZpwA
gPX0Y8SQSgAvHd2o3de3lohpgt3NMLDgFR+YLfu8GPEsUlYAXsA7hVdWBssc
DcmrPHGjqLobfcgvJda510uRgJMg0cdE9NguIPlvBkV2P6T7PCfM5b2Ibtt9
KKLl19A5H1n+MmwyHSv39HSftelTGqmRTBs3x1ZdTwKyIkDvNlam0lmCb/QN
+Ntd9IYHFwR2qrSzVU2gboz5ir4CXRhgXNgj4szAyhYxsWth+aS3zEsZfGnY
0fuFi2kMaq1sGTvIRMbu1wc0tw0Qn60lO8/Mg+w8BjhI34MVIf84OT0E2nG5
fOHdKwbvbR2uENQoq7bUh/3EPd/OxnphxDIzQKyMKgKmYlDmoiZI+B6vEQxp
nFfLq+QKLxLbmUNImm0QsRN/m1YzXUAy4R9rsouzOh31/PVYzb0d1LlHW+oT
IPGyZLHHCR03ZZsv1LWFd5RwbGpwjCaCiMuZMfZoYp8EoV2fg1sWgVMjYMZ+
7Ik9eJyLdP9mn9j9t52+fBaFVwNVIbl2Xm0e0OiOJ5yYqTtdZy3Y6aN2sz2Z
aGZnSuxRysp0HA7OlDi8+MVIAsHu2DojQJznPKNSM1c7dzgtubepOVRGF4gB
b/p7O5699/MK0Tp3N02XEEAMAWJ8wRhnV0jKSgd+4Z7DGOEEB3JGneUuqC2w
6XuWvOIj93WOTiY9Jktc9gsy+ultziHZgaqvyyvvlNm/9mbvKHRYBV4tALhV
atQJdeDo6t4GM783zK/LZ90HXr6+GtmHY/q1gjsABsXBhMlGe50Eww7RaH8G
tIGQDUfs3GzhB0dG7/KfBbBynu9YLzDXqnfT0ZF5rnslZGCnAek3eFkQONtC
b8BeJ9ErVk+Iy87EN+XYr4fM4OTXlDk8AUFNw5q/g91PG3JGxEfyAHJzZXD1
uiTQ4Vwlib3leOTcxyM5QaFT7ozh3F0rBGM5XkkGS56siBzPIDqdLSGygOUQ
dpu3KQIzAQlfKZfLdE7ZWYqgGLvtjNjPgYOwMwRgLjMJIDEABpmRxbshUd2v
NJqekUgmPUxDNzMOEPiwqEttkf3gkkRkQf0ga/vdRlHZd843iH8w629sPU8k
FM6CkoBWVrPT3kn74cEHzpZS4KVRO4g9YEF+GiM+F+KJwvqesSLeKwsx/sxg
oOK+wJjbFi6IxRlXSswCg9Ng6f7b8+sDH1yKBHAyrxABJd2YIEOF7lHbCGkm
GXJLOUYyYAWytSZ3pRrSkCci8ylO6cLWAH8ZnwbnyeEoDlOphpHjJFrHHBAt
mjEnE/H278RclZzLnbAao4dT3VFAQsQrnwRvEcv3E+Fx+JQtigIkRXOY/j5a
aveJH1FH1v2CzUDGfp5UsUol5hVtnlTy8iRwJ9hltoKb7oBU+q9IhZD9x/4T
0gFzUvwkMyqt6Tl+tK69kx8f57A/fUyCvRXM7i7qPSIt9etjekIkNL37dYEC
COx6+vnMfvpyNhV/I4yzfvbIySE9+ub6Gmv7fUkIiBQG7Exi9S29zbLwoJd+
k1UNRALoTWt2Rt90T7LRcpMmC7ZpBStVyH4EYGw3SM0HtPrmjTFaf+GT94hJ
6cl8U6tFqSQOpS/LVsbW2U1ZSkz4zngeglhj51HINEHi8LNADgXJROHCfaJO
XIyql454l1SLOkYK17taBPoiZcuWN474moPvLQk1zuAmZEp5DtasOjVsNXgg
6K4vFz6pf35kg+AEHwwFCb54SbzFH3nahdvjbF8xRmkZAc2jVNHYhopcN845
Ewu5AQGkAa3h1ObBtzBQd/sRbhHSwOktnM0+7BOZlk6w1AInh83KWiNO0L8o
35Rc6Ai29t5ngq+xxUQj8dkHoakoph0cNT5jjINU0Cu0eTnFJE7AZbHhA3c/
MvqHbYEZlBJ2Iu1IGlF0TfwwcZOJjJBReEPf8ehyfYfEteFUwR/Vy8Tr5BzO
WWcvhQlLngWQpxSklxtNChzOy7Yxv7FbyTMddD+b+BzRVoTcGM05bLGper5O
QrsaHq8SuN3V3k+Q1d3gm8NsJeuPeFz6Iyy72BXblItk+0kds4wse41BGi6w
4Nyyxc8DzFh9RO+k9dzolpQPcCDDAJYgetXcm5PN0/QMmPXcFXUvwG0Su0IM
fijGPLGPsXx9ozcYNFO8y980nkeV1pyWoBmsjJ/7iWzD8okmOZxh5K5eaaDN
2WDmOccaOycIw8qNsw9cvkbW7aqkHzDLkWXtLUyzzIpFRDknPYijmzwlE1s9
mt4M0ZRXrO2OrKjZZuMIaJmXqyzdYXbeRc57skZEFMa85O/UsNFCV4rGKD9J
FoLBPuGRfEKoiCtscOWAK62k5IS1KuKV2y8cBU1nS2tscp0UMC6CED7vmS6/
cGIvYGIw9xEhNy0eM93vo74eYBKG5AKMn6FcoUjxspFLmOWg0ZzdHi55M0hr
3E8nqwlpxfFsPB8vxqkYl4SAxrs3hbcYR46RixY5jwGPE2FdMDoqQZ0HJW9T
NWtC1eVIRWMuNEEBlfh1N2xXIbCbgLzEuHnAOjTjcpohSJ/0l5ToimThgr1h
S3a1EuxieD13mtqQHkHeYldW8JhzI7i6ImaceVkxLgxYJ/Tb+s0C4jjK0080
xpX6Cv1gOQH+JiFMliIY1xO1Lpc8VfhCjMkhbtOUKw2lliF8c4BfV283M+M5
Q34htiJ4BfD1gK/Qx3X8UsPZAaCdGE2Di81nmtgPvNbM1Hdd0nB8F/x+mlen
4mDLhjmy8DUflv6qyeCVuGfCDqgiIJt/8dNXV+z/V7mFN4/s9ZNLww6YcYOq
Q7no6MNOR9Kv8OZK5iwnY2X1jb1+cQUDrBCmEEyWYrIOLi7SBLwnFAsyKGzG
pu79jnu1I1UQSUj1HSf9LbskV9HG6wSIgO32zksW5MoFTi/Tk3Mzr1CgzQnr
Mkwga8dn9cY5vJKX69MIu5zIiw5+6CCgnzxbMgnFwg+LVT7RnNnEuHYeZFKV
XYqUl9Mc3H99dWHZ7Pl5dX7f1pKJyMp65e1N6dhXFSwa2obE+qZiR+CKUH6u
Ph8npLoxc8rxYzIsxLenNXv4M0wtjYskh7onhBVSkmMviQ/sFoIjaVWK910D
HxJ3lDIWz/aDBY3wBjLa9YBdcoMQX8Ac2RY+F88hGBccwAJHCnxfoMBXAgio
/H3/3k6lwleuoeiXr6Hal0zVn37CH+/fw1zVsL1rpvCWk71eYKuj4rcObrna
APrxVfm2M711Zrj3Klu70kR2OKjOpF+edbKtH+jq3UkiwF79/pU9f/I7GjKk
xAsSXe2GbWh18OOFNQd5wf1maLG8Z6kOEsyCD5OuQ4GEd4tP7FskNRlHiejH
cAH7oiLjQPCNGGV3zLswtjkjT2sJOHCK8i8UVWNUaN5C3D2VzFVO2auQPcd1
zu/fy6odn5zqnxIiEvdvQSZz3viA8tDU1WUuconTRgIXNSZOih0JuanZB3gm
ge2SDmfOzWWBHuw/2hNE7UuyGg78cke7wHh6PY3opUbIihPZaP63WSIibZPU
yIcLRZmUaIG3nVdORGWvrMGhZThnUWqGkV5cOsYZ+WoI4p+Rffv0kj29X7+9
eMJCkYgBsfUCYivywgWiLWhmNHJBmq6az/jJwPvThRNCS2Dkaku4wGanxIJb
I9H4WaCZrHBRBs40k4ozV5LTZU+jSq7MBITlA8wpaV2hC62X2Nar/NMOUChT
4ghn5HzjbCMf9tHPmfBzCD6tI/MHHlGfWe/6t9BFyU5NCzas3Kti87ZfLRTl
6Pf9DZyEfXoIJvIlWy6+IppEkoTcbOZplFbOTzoocXoavWaizkAjzsBgFFK+
lLMMD3KBdDDxW9wkCVD0swtd1QzXFLWoKWJXqxA6cjQmAiPojjARGthpCKdE
9R5aPqCJMdkfdmUVQwPAJxMsb8RNo2A8ghBC2cHaba7NYhKXf3JX9qRlUP7K
0k+S6Om5W4f2ekIEGVBZPW9rl5ksODeMUmuIyrzE/h/Kjbin6AOLBcumLLoC
x8al4hv2cTspzWURC8XrM3agKDFc/tCWJHfNvioXW0lQyZAujfh3XB6Z7H/d
RVyo7BV7F2p7rulM/j6dAMeLGD4vhCa2F6/iCBqHCYLHjSRSuUpo+4FK6Il4
GM4lRGkv0+Sd7QKapvsTokUy0hfqP6vG5Yz+95Zh6mBOtkv6ZFkpaS/ECr+S
lJBfBXlSyS3amnFg65ysdsR/fiRhHt4xK9kvoTmLpot/AHGNJJ0bGZZI0mUP
LFILyRwQ/AF3cW33pf5v6y9ArrCpYhat5twTjKYZulCt0xcgdejCuy9vAGnX
A8ksmhbExZqdR73b6znyK7jyBPwR+X3DJdgtJbcfVUquoDIrJBLHmbE0JRcY
YUNYq/Y7KRlLouEM5JHJ7iGPOp5FGPWyaeOUKbaYM9iZBjmx6oOUrKEmYr+O
S0yPKvh+IGR6TK2wxLh/O1kn7Fx/NDu7Ol1SRKnxWbtJ763O5IKecNMovfMq
IcOgXEQ5n185P89H0dKJ9HsSr5mkUdQGuVP23tHSB2VAMtKu1sXskKsnydk5
MPRKYBNJaeycO0hpxuqyTlElPPCcJKh0rgt2a/lc9XYduIwM/aLrzKr3slO9
dJNb8utd/R5ip7+QA0zXBqcrIWDxHiYYdabeLFFnBbBVR3HxFRYmRmIFaaEC
ZVJHv2SLnlVtLUUqHpiPWEpkhVZzz7acLQuJCHslgVN8y2EzaYoVULtPBV1N
5ccgz98nh5l7Nj3LxEWZCquKkV7LXu7VELpKYBI4tNZbE0E45NdKPgjh8EUw
X68zdsZMOlDse2QX52aX6D4x0cNWGh5tx4ik8FTcK9Thk8dnx8FnES1Inabk
RnxFBMGZy253r/sd4+rpF1r1U2w5fq1eS9cYKBU57T0fwRbFSF3eWpYjwl2J
c8ljLYdV6jKwUoB+EW7h6lTWqBvx8WrxkTNjlVZDUwDWdjUyrtXbPUlxWjj/
IUL0RUd078fIjPCBjxEW4TO1CV6uq8m1muMPN2W8driNPrbmCA9bzLp0uEfd
LQ8eoV2Oc4H07Q8CLaTlx5I369Qsp2rA2dp47ty1qfwGimwgcT8GdTXw5yF3
T3edXMcKVGMUx5GBimQEt8/EwgeqpP0Elfmc83F2zDmeXxdHhBcRNq+vO70X
GaTMLsylnGbrG+TMuN6V3UYC7TvnkcBh+aaXMMhYBORTFRXu+p/J4EReGKfD
uqSdKNG/l81JUkGnOowm7mOSj+CRv4lFJJMNvXHYdCCwtugAqoQzgfxZSPHS
qDShYX9wPtdVtkbHuJdpUvRVZqO/rfW3QBSFmltpT/Bw6RpFiLz90UltAGIV
bkEiEcFSkv4kBq6D7wibd9Y221wZNGPt85MacZbADGfJYKX/zTJ059m0qkrX
hKJLiFxmecMeG+iJGQfotcebWAicHy3VJCxYkjqNnM0BQThiv9VZ1APfHqmZ
hXeavgEcdntBS7CkHkJDHE7rTd1Eo3CfZ5dp6M4cdSPm6MBGzXNY7BwmoIdk
nAJiEZjh0bXiXy/6nPLGB2FqwCz7Mito1U14GQlIa77s6355lYLmb+zbpx1K
5lXLkSrtG0prbeKGgqKUVI8TeTqwzM7TsM8Uhx58YyTjX981RPnq+vrSfvns
etRFiKTyOA4TifaEhzlnDzOHT0Zdlcao27RdUxyWyVyX7PxNjCK7lkth5VQv
zR7jGgtQj/N8iHqSxBrFTIVjObEQcR5umRO53Lvshl7VY6Tm8eJAeuxzXgZv
JZPU/br8AxaM47rN1OjXSCtqzLsurLAZun+x5YApZE54u4ZoykxD3dmHHNdR
57dd347qONEmdSgOzY6TCq32ilWuSABgr+dyGo4Z3GsaDBqEkjV1760qBXxR
SOurpu/32huxzxFe7uXbhi3eRPAHFT0uPIoYi2QUqR4i++Ce8YUAjQU62+NW
7fHh79L7WPGgQIBLE7tmW6WUhygcrzMVu/yln37S5rr3Uj5qoxfZA6HXkJh5
YFRGsLrrd9PWfYiwEzeWkXpo6xeMy2rN/ZO38eTjaYHRr7jahc3aId+l1EG6
hF0ujPmDIoKulMV/p+cWdI1niJdu063U1zB98nZd2D1X+tLrpjbgOej2PLb6
nuKL2mfFa7kQ7zhuGZbBRZoV82yDFofzj6ixMT+D0D7oz9BCm2+1Q1lqImnX
694YEO2eFAoUsnhfSGTfcpIEwk3GmD+6Puf3/d8f7V9LYXr0GRISIZV8KlyU
bRrFzvlT3V74o/nj+Gf+72dv+Ps9Gt1PQ7N9h9EO1X6vDSd2zIx7KR09+vH/
F92PoQ1Y7fH9r8q/4PV/y6M7Q2Or4+fu/yup9pcOLbgfQ/vwyP5Th3ZPwOLv
MrS/lNd6Q7vfHbl7/1/2f38z1a7vsev8/f95VGNrAgOMjIze+/9zhjYEUv6G
99/3qY+6PxIehs87KYQMZ8aMveqvQ80Ete460QfNWzq9ro/8vIMlqCnRApJ+
sCtdsBKlkZx3+i3UaeFgWEsnmgXtSgsC686jsp3SEW4XjrhrHWFp14kdhPBq
c0/dCwNT16hMHaWGRk5FKGrfyFJyuYL2Qi7pj7PKrlx396g64LoPhleFdPJw
vU8Dr5piXOnomSfZIojamt3+5iNOXRacxA132WEWNTXXGBCjXhjRWDhpC++9
zGQRcuPfrBHW1mw2TTRBzgOxkutPAQPVCbOgGViGciCuGtDev9zWSMKOzrHB
oYVFhvRTfYHkU1Qle99LX9NIJutOx6nQ6POOQa7kzwdGw0af5AFjaDMWLci5
1hwXYpxFJobsUGK/YvOwS3ruW/FLH63dZAnv0/ZN/rlTfpEa6V0bGvNZrYb4
aGj4vp8yWn9rQD9Oy5CdgnTogiYJ6i6E1mp0J/kdXCcutiFBoyBRuDCaeoUU
3C75KswD6eXiScxEjKYf4A/Q9kbOt9cVDqAQg5tBSHJ+114wphaxMx86tNKG
xj6DSdPgE98PXLpSLxt0M4v68zVJ/W5kb9hzeie9O+VwA57mfUktWH9NIui1
e7Zo/Y2JHx2a4BfxqebliiBkc7PO5uO0xpkZy6S+wfuYi3Mi1mIr3s26Xa2k
BXRWmKxYtPTxrf2Xfz5sbkb0bvzv8UP870P++zP++5T/PpW/T+V/J6fyBP30
L/8qSfspOlES5/zQchJQ0CU6PN5Azh1yxybsRLJglMmZSztnVoDtXR2R89pr
fz2XUFV1YStXBqEF+UbkmR44IRzJm9VlPGlZkrJpuohE8lCCGe70LhO4xvkg
De7LOuau9PHovWTwKVYFim64+3KYSxAYkQOjTHhwTnRqIrcVpwm3butyEnak
q9QbdEMQBvd6TM5AjCJ+vQMZXKNe6fRDnOh2GMtf+lXzEBM7JBL4VIW2qlMn
CbhBADLaWIpIuAVh5pENegkFgk5isq4OjU9GCWOIyUJ80aXoXG4YN9ZKYpfY
2M8X4VYuXTc9ybBhIUdv4OJ8fnG5aeKCvAmfREYsxlmILBTRWKzXvnknr7Lf
lL+W3iPSMV+KGBhBNBXyNCJ3AkdFmUZ11yn8D6kkpAetr03X+pqTsdEjk8Te
egP6L9HoTZeXfnvaVlFiudcOwi90x6s+T/ArNak1GB/amthf2SfbeY6mcC7M
g/wZosorAlDr+sCOkZvNtYqv+PbHxA00tf1/8qL6vvv/SWrI+KlLzczdF65n
RonKBF3vohY95qAdddMfMP93vC9xEM588X2UnRdWSoS047lPUHEp+z1HjyQr
yIJIzXt8rgO6OqC/ojRRQw815w51VXG7TcjEsd5m+aK27Ub3u+5Ckec+Z1t3
eu/EQyv9M6qFwc6MT18KiqifSssL+n3/62dP9TTDg8gJ7TawiPDafNgxzMEh
LoVCE4uvy9em66M2XPTIqEXVW6APuMOdz4XxD5im3bBO7Jd0DZ+coyq7A+SJ
now2UEHaNbynPerhHSfATukK/r/LSt5OcXBIxocJEHM80J63p4e/NEF+jC+B
lQYCLumatCbxN2vPKJ1m+HZzfHi4rv/8p39T8MukckxX+xJdHsrQG+9/IWd5
19KYl/67LVuiJUKS3B0PbKRi4V2qPRL0sACO4cS1tyEo4SwzMlgg9KVX+brs
MjnCO4Wl/DFJcaQwm6STEb+Bi2jTpsc3sifvwy7mY7FLBLQug/iMJsspHGHW
gb50J5swXkEqWqhOFmWg57QTlFfJcU65FJKLOs63pixCuOsYP/2Ru6Lech2f
CzfknL7lsk/B4VzX3284bXy8wBXyhmk6AH/S3oTeF/ahjqrEm+Gd4tuW+CJ+
fwbF8HwBYaWPlOINAivhzlN+xjBRIiTNoIM2AiFi9iei9FooGI5hNbazae7z
snsbR/AzH36lfZu4njhBomtNgmtN39IqttBGcmHx0Eff1Gm+1C3q7ITu3Djf
ubGRgpG2F1RIfL0RbpIkCz9PPqmLq10zKc2g94k3X8zEis/syDqLSJJvJXPf
TwjEIp7l6rpyZ/zuSdAFJ9oE4HenYm4X7PrEUr+6KFp2qQHhQqM1ljw+6mH2
/XbDDU0AobS5ycHQey+WRr8Kmb9Io3JSWNf6HgaIrktKpLF1ebp3GvMWAoBQ
6d3o/sr8OJgNtOZ4RjSycRrXNW5nrfz4uZ6ATLDoXWJJyR4EoLZfqqd1U2xf
G+Y670Sp5Xuyo4v0R95TiPaXgjlWpT9UZRBWhFX4L8OpNGXgkNMYFSdeDjav
Z8S60DYOd6lXMQxifdxot4FmSExSMCiNtLOsMWtJHfBt6jErlBiF7qi7JLTi
7ztjyAydMTTSQjd+Uo86dD3nOPCla/jnP/03KcH985/+u5zoJEf+7e4A7kPu
sp67CKyPMC+lh8Gyq/u2ie9w25UGaJty3yW/d76Jr15Jg/OSjD+SUg7UHFpn
/v5l9/39V28u0Wm75low8bOc4ZyXB0Yxy+nPQwYoy3UtuvOX7hrDCLvPCUfc
KRmkPJwc/TIuxamDTj4HvjuXC7lLqp/Sy5/NYoIZ2UvUemGIb5UObJhhXuXb
gzO4tnQKjC50GtKApWyM793EaWDHMg8aRDSVE7kcDsx5ugLie4lm+dsRkuHd
9eaS5ULXpZKGk1WSIVqkGUtU7RLp/SEB4mWj2J3po/JDIO5YwZD2BBEIE5aX
oa1D55LT8fnMVAxMWnsjpSbk3p03sYXyJDi6c/fQVsuHtrJzBme2ek+9JhLX
Q974gboTXwgwkEiDWP68rDalqjitMu/0f8BhilckQ49riyA+apoPClkl9BAA
fj2VUQ67GWhQ3W1dQoNxBF1HfsbAfdJ77ZKPvQ/xri9xUqT6QT6+/2O7n4rO
1aGJ1P1T1pzc6Q5au9Cjy5C1Bx+25aWrcQKxy2lpWfi6Ve1+6hLEZ1vn++my
Kfk+Y33/NdY/961UV4XLEZAC5tx1h+w05WxwZMBc0lAVK0q3uLPu7eeAnt/9
lL3fp//ur5Mf9/ePaMPs77988V1GfxB9v8sO7FQpHVw7OLC/wlqO7OEB2wMH
B7rJmWn4ec0qfekcfW4CSRPu3AxLxC91DwyI5r5kHn4Fj/ADLxnmop13GbVk
XkAGd9S+jCVzoGQi42bkstLC/NGu8zDknTQdFJTdsANVEaR4W+QgkURL/8IK
1msvpWUYQ5wmUbPEt+Xj0wc27vRWPXJQ3KNRPVFTNl3CaVwSSuxA/znoDmMK
fvNaObRIveRU0V6+dYyHR5jrYm7DZeEC+ZLnuP4vu3wXs50uTsR3wXI6Xgvv
C5rlhRPrCTTPYeGjg4T4MDxxHUAD3fic20Zi63rlwceGdUcERNuarX21GOMi
7p1aXn5GN72SPdj+7GLiJTlAyFncjm/60N2T8WnSJExlosOZum3sT4Qf4DsQ
rwwjGLwQva4ZJYzsyc5vjpRn+vQD59PZefbB4VH0C5a4J03OGMF87j8j2AT/
PqZ/hw8EbECaYfLwl+GPL5Wg/pysM3tyLFOc2uNH/BcHVYS3Qc/Mc3wsVY0Q
2vRkqgyQ/hJiMY/LzLtrO8w92n3LsTxxEr7lKLo2IJoPdFAnJ5OTEyLSp5PD
R7jG/+62pulvTZCJ/ou1408d+X/t7sPP7cOHk4efKj/naqQOsXDEkDokfjYY
ktO6CrtHOxtJoswn0aGjwCdOxzqzQRoNuv5y8TGkIy/FfxYpAdt9JW1euC3S
YMtA7fCwQBV4IqUp2qMq2VUHOL6tQfeooYNeTWCEoUObPwzIv29GVK62dv9L
wonTx8niAOBJC29onF3bJbN/1dKbZwnfNn39u+mX6H035avcBu+gayHtGk34
TFSA1jxNXVTOyN9h86mwcvFMGim408yOD8PV8YfBdon/AN+koNpMe8lJhx3Y
z9wmgUfnXnb6cy+zfAhh9zJ+0RiH3mufD5TblwVZqd3xobyWAfSTYwI9UIMP
XkG6TJf44BUiLfQjNyNydHKvYnpphw0+XSlCGtG3FHwbqdlG0G/e9AqM7py8
CTsZllp/6ip/47M9O9z6vFNgvlGXcwN0XwlTr7SgXKs9Jbpn0BxsVhF2dH1c
pH/GSNc5KCHS+hnxBUzs41Zii3WdcfcnPa3R3KGZl/d6hBvINzKrvVexS/nl
PizBYrugsAFPrDSszVHIntMz8sSGLX16hx7C3fbRXgFLjICCPhgtOIISk5Jo
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
ra0QeIZTy1H1luSlEML7o3a4q1Jn2DJNuGnHhMB8suCKVZi5i9tM8j9MR2XB
qf03QZrwEa4IublAEUbjeWdk9yTmKaaRJIvgCBlXH+vCunxWdO1YZSXN9KOT
IRgN6+ZSOauFW9jvRQpfLToOaAHPvFykzgjCAcESKUYnSKd06WY+wxE0knBa
xyiMqt3xsd231onkY3d8hexF3aa1CPc1E9U1/ScYqDIpcC7tTNqIiuz5KsQu
2TIEpdntiSL/oSzHcwSQX/CxwqWis7QY80nYUitbQ4Ztudz3pmk29dl0usqa
m3aG+MSUdFVZE3PUU/8yzgCsVkmR/cH1ENOTtvPU49N4/fntT/EqPk1KDq7w
ajGQF3zjuX1C+3RWufLr+Qdz192Q4i9+UndeaSYzTkSWl2uTQn3CLaMrmI7k
ZSTlNGQrbIWvPiml1wi/l5OeddBQ7tKSgb2YpMsavlDLWszRVrlY8WNfXr6w
x5ND/NDTN11EXd4vL1Sxk7TNDQ5BfMX1pYk3N/yRRSL/q4U4/zUb4wlaG8+b
kHP43Y+//49/rwp7cUtY/jrNaF3O7Oz7sip+w8s/IYmmROaToqVTw0A3dC1Z
kFhDb0FYnpGWboycN73gL6PGE6T/bVK0oNzx4fEDZt1V6bjqlpOU/jYuVjto
rCbWdPftsoC+c8KmzfMxrCYi59lf984p3jFF4uFfv2XeCgpShn+CRohF0jSZ
VofFH5R87zsyu0ma8WbzrwbEt7w2k4/bgP2wD3fTvasQS2aP75flBE0Jpann
MnCdoxcrJCJ9cfIX7syLwp27pV6Ye/cZgphcG/P/YqPJlrpvH/2t28jab9GK
Ilnbr5I7kuwEui4uzkhl4B93N79p52tSxpN2PkkX7f/nXYeJ3QLDu7O7nvp8
PEkyZvOGa/PtHmDu3kj+a1+95r/fPPv67cWbZ0/x99VX5y9e+D+M3nH11eu3
L552f3VPPnn98uWzV0/lYbpqo0tm7+X57/cE2Oy9vry+eP3q/MXejlSWiiGu
P5P6giqV7B0TSfLHTy7/9/88ekDm3n8h9HF8dHRKFp/849HRZw/oHyC2fI3t
Kvlnw0eObjbs8pCzxefJJmskFMN2950AR7D+P4My/3pmfz2bb44e/KNewISj
i45m0UWm2e6VnYeFiAOXBj7jqRld71E6Hu/576N/O7oHF3/9BXL97Pjo0Rf/
aAy3JUvnvKW5nYpHZOCf109f+1/51ovzV+e7t0XrCQRdlHKnZqyhZSqyZ4G3
8JZz7zAUL+dPZ9L2Jl18vrekpUn33uvHA9fixPxfDwoIQry4AAA=

-->

</rfc>
