
From nobody Sun Nov  3 17:01:45 2019
Return-Path: <tonysietf@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4A1B21200EB; Sun,  3 Nov 2019 17:01:43 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level: 
X-Spam-Status: No, score=-1.997 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Gib5HUXgJouf; Sun,  3 Nov 2019 17:01:38 -0800 (PST)
Received: from mail-io1-xd33.google.com (mail-io1-xd33.google.com [IPv6:2607:f8b0:4864:20::d33]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C2621120072; Sun,  3 Nov 2019 17:01:37 -0800 (PST)
Received: by mail-io1-xd33.google.com with SMTP id s3so12764330ioe.3; Sun, 03 Nov 2019 17:01:37 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=CTlYCVgriVJji9QjR22JjSx4N5IoHhernQAQP//w648=; b=KcaUnhr108nDJ/TiZvjQAA37OoIjfiCtrbcRqF8E868+3PrpaVmmld2/Ldn9x/xGJU ndBxpSPD740Xi8jl+c3J1hrOsvupQJ42ZkRKbW8lo6hUwcN14TpaIrOO/dQZmQ9XJgbq 7ZZgtH9L6m9oOd/Mhm24W5zsVIA/zBCg9CMuU/ebUZXZUrh+CwyKZPjUKmYtfx1qqzrS khGV2EOo51RfPycv0FNYCQz+B/+6tHjWXyFOzfiQi8NQ5IpXVEk3s2TzH8OcxUzoKFJ5 14UNMGo65cUk1nVR1yH32Y1gjOw79ZpPfWdDJTHPffxH1i+GKC6mReLpxPE7J7r05Rm4 4XcA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=CTlYCVgriVJji9QjR22JjSx4N5IoHhernQAQP//w648=; b=EQHxGhRhWGzKKx5GNAtxQGvs4ikpxWLgs+EOgyc5sVJ0tSL5RmBU1UHkacVG59VNW8 i02GmlbSkBvq7Dm6MRm+cbUvhBgLvdCTVI5OtURQQoEyW1njex/4jJukipyVAROiRNui 1AKGGDqeTthaud70AgdzDi4FYgtbYn+tH9lcVmT1nQQGz1Eic6lZBxeh0wnLWj1RbWu8 1BE7YGoapgoYzTInVpfAazhlGrqf2qUDkAqtfwouHqauoXdTBBc/Uhg5TaSyqEkKHqFp LyeXoTseEATzZvfJNRsbmPPPHM3y30KsaIKxQSLmHOX6fB1QGIvWKqFHKlXRYgZ7boGN VRXg==
X-Gm-Message-State: APjAAAV3fHWnlkFTpAyDlVAsxbIPE1rbQNuGubSDG+6QmOTnAW8PYqQe PYoIEhAym+ts1Zz9obsuolNJYP3XgvQ1SIr0qL8=
X-Google-Smtp-Source: APXvYqw/ZN/5oPwzCzYzXURP2BnFSl7xeRtQ76K5E5a6GfO/jbYyz24KXPGUQw/Gzhj/WqZZn8EzO6GAWcNlWYo0aok=
X-Received: by 2002:a6b:b54a:: with SMTP id e71mr21447039iof.132.1572829296541;  Sun, 03 Nov 2019 17:01:36 -0800 (PST)
MIME-Version: 1.0
References: <BL0PR02MB48689FA2D6B7C255DF11045D84630@BL0PR02MB4868.namprd02.prod.outlook.com>
In-Reply-To: <BL0PR02MB48689FA2D6B7C255DF11045D84630@BL0PR02MB4868.namprd02.prod.outlook.com>
From: Tony Przygienda <tonysietf@gmail.com>
Date: Sun, 3 Nov 2019 17:00:43 -0800
Message-ID: <CA+wi2hO=rZ2mbX3ZJVgn9cSvfbot29W+MNnunysPhPv+3Mxykw@mail.gmail.com>
To: Jonathan Hardwick <Jonathan.Hardwick=40metaswitch.com@dmarc.ietf.org>
Cc: "rift-wg-chairs@ietf.org" <rift-wg-chairs@ietf.org>,  "draft-ietf-rift-rift.all@ietf.org" <draft-ietf-rift-rift.all@ietf.org>, "rtg-dir@ietf.org" <rtg-dir@ietf.org>,  =?UTF-8?Q?Luc_Andr=C3=A9_Burdet?= <laburdet.ietf@gmail.com>,  Min Ye <amy.yemin@huawei.com>, "rift@ietf.org" <rift@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000083468b05967adb47"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/ASB89Up8rCaBXgccUnr815NeJhw>
Subject: Re: [Rift] Routing directorate early review of draft-ietf-rift-rift
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Nov 2019 01:01:43 -0000

--00000000000083468b05967adb47
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Jonathan, thanks for your review, responses inline

On Thu, Oct 31, 2019 at 11:01 AM Jonathan Hardwick <Jonathan.Hardwick=3D
40metaswitch.com@dmarc.ietf.org> wrote:

> Hello
>
>
>
> I have been selected to do a Routing Directorate =E2=80=9Cearly review=E2=
=80=9D of this
> draft:
>
> https://datatracker.ietf.org/doc/draft-ietf-rift-rift/
>
>
>
> The routing directorate will, on request from the working group chair,
> perform an =E2=80=9Cearly=E2=80=9D review of a draft before it is submitt=
ed for publication
> to the IESG. The early review can be performed at any time during the
> draft=E2=80=99s lifetime as a working group document. The purpose of the =
early
> review depends on the stage that the document has reached.  As this
> document has advanced to working group last call, my focus for the review
> was to determine whether the document is ready to be published. Please
> consider my comments along with the other working group last call comment=
s.
>
>
>
> For more information about the Routing Directorate, please see
> http://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir
>
>
>
> Document: draft-ietf-rift-rift
>
> Reviewer: Jon Hardwick
>
> Review Date: 31 Oct 2019
>
> Intended Status: Standards Track
>
>
>
> *Summary*
>
> Thanks for writing this document.  It is a very interesting approach and =
I
> really enjoyed getting to grips with the ideas presented in the draft!
>

thanks, quite a lot of work


> Unfortunately, I have some concerns about the document and think it needs
> more work before being submitted to the IESG.  The problem is that I foun=
d
> the document hard to read, for several reasons.
>
>    - It is very light in its use of normative RFC-2119 style language.
>    An implementer would have to fill in quite a few gaps and/or make
>    assumptions about various passages.
>
> I will address in specifics the sections you raised inline.

Otherwise, in meta terms, as to the question of "is this specification
being precise enough?" I can quote only what I wrote to Robert Sparks
already:

*"we have two interoperable implementations since a bit, one completely
open source which has been produced based on the spec. It was in fact open
source work that helped to refine the document content to make sure we can
have an implementation produced based on the text without further "guessing
things". As example the LIE FSM has been implemented initially in open
source without consulting authors of the spec and interoperat'ed without a
single defect (but discovered a protocol underspecification in case of
misconfiguration that was subsequently added). Please refer to IETF
proceedings for the according presentations if necessary. We have a third
implemenation progressing now where all questions the implementor asked so
far could be answered by pointing directly @  the specification as written.
This seems to answer to me the "suspicion of specification maybe not being
good enough to implement" as an objective measuring stick as far I can
imagine one. *
*"*

We are in IETF here where "rough consenus and running code" was the receipe
of success vs. much heavier handed organizations like OSI and I think in
this philosophy the spec, if anything, is possibly overspecified already
;-) The core pieces that bare no slips like flooding and adjacency
formation are very precisely written including FSMs.


>
>    -
>    - The definition of the protocol and some of the normative behaviour
>    is deferred to the appendices, whereas I would expect to encounter it =
early
>    on in the text, with an in-line discussion of the purposes of the mess=
ages
>    and fields.
>
>
Ok, seems like the second directorate reviewers prefers the appendices to
be pulled into the document. Let me do that thenl


>
>    -
>    - It sometimes refers to concepts or terms that are either not defined
>    or have not yet been introduced to the reader, suggesting an ordering =
issue
>    within the text.
>
>
>
> I think that the document needs to be refactored somewhat to solve the
> ordering issues, use more normative language, eliminate any text that is
> not actually relevant to the implementation and deployment of the protoco=
l,
> and pull together the normative definition of the protocol into a
> contiguous block early on in the document.
>

further inline


>
>
> The other issue is that, because the document is large and I found it
> rather hard going, I did not have time do a thorough review beyond sectio=
n
> 5.3.  I=E2=80=99d therefore have to recommend another directorate review =
once we
> have concluded on the issues I=E2=80=99m raising below.
>

ok, obviously as much is written as we expect is necessary to "clearly"
spec out the protocol. The document is more than simply a dry prescriptive
normative though since very early in the workgroup sessions the input of
many people was that they would prefer is some more "narrative" explanation
of "what" and "why" is inserted instead of purely the algorithms. We tried
to find a balance but obviously opinions will always vary between "this is
too chatty and should be just a dry normative" and "this does not explain
WHY that would work and WHY it has been designed that way". Based on Robert
Sparks review I will try to simplify the language and cut out some
superfluous text he pointed out or I find. We'll see where we end.


>
>
> *Details*
>
> Here are comments on the sections that I was able to review in detail
> before I ran out of time.
>
>
>
> Abstract
>
> Is it possible to reformat this as a list of items on multiple lines? It
> would read more clearly.
>

yes


>
>
> Section 2
>
> "an optimal approach does not seem however": this appears to be a value
> judgment rather than consensus opinion, appearing as it does without
> citation, and may be perceived as treading on the toes of other
> standardization efforts currently in progress at the IETF. I suggest you
> simply state the facts: "RIFT approaches this problem using a mixture of.=
.."
>

done, sure.


>
>
> Section 2.1
>
> The form of words in the Requirements Language boilerplate has changed
> recently - see RFC 8174.
>

thanks, corrected


>
>
> Section 3.1
>
> ZTP - expand acronym on first use.
>

yes, ZTP added. glossary will be rea-arranged based on other reviewers
input.


> There is potential for confusion between N-TIE and Node TIE! I'd prefer
> "North TIE" for the former.
>
> An example of confusion: is the "South Node TIE" referred to in the
> definition of "South Reflection" the same as the S-TIE referred to in the
> definition of "TIE"?
>
> "The document sometimes calls them flood leaders as well." But it would b=
e
> better if you just used one term.
>

OK, I expand N- and S- to North- and South- everywhere in the document


>
>
> Section 4
>
> Personally I could live without this section
>
> Merge PEND1 with NONREQx (or explain the distinction)
>

thanks, there were multiple discussions pro/cons on mike/list about this
section and suggestions along the lines to split it out into a different
document (but standardizing requirement drafts went out of fashion recently
;-) or drop it. I'm dropping it based on your input and others desiring to
shorten the document.


>
>
> Section 5.1.3 - 5.1.5
>
> This discussion is not possible to follow properly until you have been
> introduced to positive & negative disaggregation and southern reflection.
> As such I wonder if it really belongs in a section called "overview".
>

Jonathan, well, section 5.1.3 "fallen leaf" (4 now given requirements is
removed) _is_ the overview section. Southern reflection is defined in the
glossary already and the "negative disaggregation" is a mechanism
introduced to address the "fallen leaf problem" later and obviously the
problem itself has to be explained & introduced first. Negative
disaggregation is arguably (beside flooding scopes) the most complex part
of the spec and we spent lots of time and effort (especially Pascal) with
multiple rewrites to give the narrative describing the CLOS inherent
problem. Moreover we didn't want to mix it up with RIFT specific mechanism
since the "fallen leaf": problem exists in multi-plane CLOS independent of
any protocol and BTW, I never saw it explained as clearly as Pascal did in
the multi-plane introduction section. Also, we clearly state in the section
that if someone builds a single plane CLOS the section can be disregarded
to simplify the reading of the spec for many people.


>
>
> Section 5.2.2
>
>
>
>    A node configured with "undefined" PoD membership MUST, after
>
>    building first northbound three way adjacencies to a node being in a
>
>    defined PoD, advertise that PoD as part of its LIEs.  In case that
>
>    adjacency is lost, from all available northbound three way
>
>    adjacencies the node with the highest System ID and defined PoD is
>
>    chosen.
>
>
>
> It seems odd that the choice of advertised pod is at first
> non-deterministic (race to the first adjacency) and then, only if this
> initial adjacency is lost, the choice of pod becomes deterministic. Why n=
ot
> make it deterministic the whole time?
>

The first adjacency is simply used to speed up things since otherwise how
long do you wait until you have all northbound adjacencies?  Observe that
level ZTP will possibly drop adjacencies while it's converging so the
consequent set will refine the PoD as well, i.e. the ZTP is guaranteed to
get the node to the maximum available level @ which point in time the
northbound available adjacencies will determine the PoD. Obviouly the
adjacencies can disagree about the PoD and such a scenario can be used by
an implementation to report miscablings. We talk quickly about miscabling
detection in the spec since it's such a desirable property _of an
implementaiton_ but it's not necessary for correct protocol operation so we
don't make anything normative except disallowing adjacency forming across
PoDs if defined. Since configurting and converging PoDs is optional we
allow even to disregard this rule on adjacency formation.


>
>
> Section 5.2.3.2
>
>
>
> In the example TIEs, "Spine21" should be "ToF 21" to agree with the
> nomenclature of figure 2.  Ditto in table 4 (section 5.2.3.4)
>
> In Spine 111's Node-S-TIE, I am not sure that the links(...) should be
> given for each neighbor.
>

corrected the ToF 21/22 everywhere.  Yes, on careful reading one wonders
WHY node south tie should include _all_ links. This is necessary for both
flood reduction as well as bandwidth balancing since both happen from south
going up and the node computing needs the northbound neighbors of the level
up. That's one of the reasons the example is givne. I'll add a clarifying
sentence.


>
>
> Section 5.2.3.5
>
> "It should only set it in the southbound direction."  - SHOULD?
>

corrected


>
> Section 5.2.3.8
>
> Define N-SPF on first use
>

OK, N-SPF and S-SPF added to glossary.


>
>
> Section 5.2.4
>
> "A node has three sources" - I see only two listed.
>
> "We use simple, familiar SPF algorithms here..." - is the use of those
> algorithms supposed to be normative? Or are you just giving an example an=
d
> leaving me to choose my own algorithm?  If SPF is normative then you need
> to specify it using normative language or include a normative reference t=
o
> it.
>

I tried to clarify that better in the existing text by expanding to

<t>A node has three possible sources of relevant information for
reachability computation.
    A node knows
    the full topology south of it from the received North Node TIEs or
alternately
    north of it from the South Node TIEs.  A node has the
    set of prefixes with their associated distances and bandwidths from
    corresponding prefix TIEs.</t>

<t>To compute prefix reachability, a node runs conceptually a northbound
    and a southbound
    SPF.
    We call that N-SPF and S-SPF denoting the direction in which the comput=
ation
    front is progressing.
</t>

<t>Since neither computation can "loop", it is
    possible to compute non-equal-cost or even
    <xref target=3D"EPPSTEIN">k-shortest paths</xref>
    and "saturate" the fabric
    to the extent desired but we use simple, familiar SPF algorithms and
    concepts here as example due to their prevalence in today's routing.
</t>


So the algorithms given are NOT normative but I improved what _is_
normative in the N-SPF and S-SPF section

<section anchor=3D"nspf" title=3D"Northbound SPF">

    <t> N-SPF *MUST use ONLY* northbound and East-West adjacencies in
the computing
        node's node North TIEs (since if the node is a leaf it may not have
        generated a node South TIE)
        when starting SPF. ...

<t>Once progressing, we are using the next higher level's node South TIEs t=
o
    find according adjacencies to verify backlink connectivity.
    Just as in case of IS-IS or OSPF, two unidirectional links* MUST* be
    associated
    together to confirm bidirectional connectivity. ...

<section anchor=3D"sspf" title=3D"Southbound SPF">

    <t> *S-SPF MUST use ONLY* the
        southbound adjacencies in the node South TIEs,
        i.e. progresses towards nodes at lower levels. Observe that
        E-W adjacencies are NEVER used in the computation. This enforces th=
e
        requirement that a packet traversing in a southbound direction must
        never change its direction.</t>
    <t>*S-SPF MUST* use northbound adjacencies in node North TIEs to
verify backlink
        connectivity by checking for presence of the link beside
correct SystemID and
        level. </t>


This is about all that needs to be said here in terms of normative language
beside the one already present.


> Section 5.2.4.1
>
> Please define the terms "south prefix" and "north prefix"
>
> "Supersuming" is not a word I recognise.  Use "or a non-default prefix
> which contains this south prefix"
>
> "the node does not..." -> "the computing node does not..."
>
>
>
> Section 5.2.4.2
>
> "S-SPF uses northbound adjacencies in node N-TIEs to verify backlink
> connectivity" - this statement needs to be recast into normative language
> using RFC 2119 terms.  "A node MUST verify backlink connectivity ... Else
> it MUST NOT include the link.... Etc."
>
> Same comment applies in many places throughout the document.
>

re-read and applied more normative language to the specific section as
indicated above.  Re-read the document and normalized more languagte where
necessary.


>
>
> Section 5.2.4.3
>
> What is a `"ring protection" scheme`?
>

Ring based protection scheme just like BLSR. I replace with "ring-based
protection" which is fairly well understood term in networking.

Removed the ring based protection of a level to applicability draft which
multiple authors work on and where it seems to belong rather than in the
spec. Left only clarification

<t>Using south prefixes over horizontal links MAY occur
 if the N-SPF is East-West adjacencies in computation.
    It can
    protect against pathological fabric partitioning cases that
    leave only paths to destinations that would necessitate multiple
    changes of forwarding direction between north and south.
    </t>



> Are E-W links permitted between planes?
>
> Not sure what this is telling me: "Using south prefixes over horizontal
> links is optional..." - is that OPTIONAL as in RFC 2119?  Do you mean tha=
t
> my implementation can ignore them? Or not advertise them? Or that the
> network operator does not have to cable them?
>

Clarified as per section above. If the N-SPF is using horizontal
adjacencies it will pick up those prefixes.


>
>
> Section 5.2.4.4
>
> "Even though a ToF node could
>
>    be tempted to use those links during southbound SPF this MUST NOT be
>
>    attempted since it may lead in, e.g. anycast cases to routing loops."
>
>
>
> This is too verbose and obtuse.  I cannot see how anycast cases lead to
> routing loops and I don't know if I need to understand why or not.  Sugge=
st
>


>
> "A ToF node MUST NOT include east-west links in its south-SPF calculation=
."
>

This is already said in the S-SPF section very explicitly as

<t> S-SPF




*MUST use ONLY the    southbound adjacencies in the node South TIEs,
 i.e. progresses towards nodes at lower levels. Observe that    E-W
adjacencies are NEVER used in the computation. This enforces the
requirement that a packet traversing in a southbound direction must
never change its direction.*</t




>
>
> This section gives the impression that E-W links at the ToF will never be
> used for forwarding data - is that true?  They are used for control plane
> only?
>

Yes, it is described in text but I clarified the section on horizontal
links in ToF further

<t>E-W ToF links behave in terms of flooding scopes defined in
    <xref target=3D"tiescopes"/> like northbound links and
*MUST be used for control plane    information flooding ONLY*. Even
though a ToF node could be tempted
    to use those links during southbound SPF and carry traffic over them th=
is
    MUST NOT be attempted since it may lead in, e.g. anycast cases to
routing loops.
    An implemention MAY try to resolve the looping problem by
following on the ring strictly
    tie-broken
    shortest-paths only but the details are outside this
specification. And even then,
    the problem of proper capacity provisioning of such links when
they become traffic-bearing in
    case of failures is vexing.</t>



>
>
> "An implementation could try ... but the details are outside this
> specification" - so why mention it?
>

Because of the fact that the question was coming up multiple times in
meetings/mails and so on. Instead of negative disaggregation people were
tempted to "forward through the horizontal links on top" when a fallen leaf
starts forwarding in the wrong plane (i.e. the one where it's fallen). This
section points out that this should not be attempted due to looping
problems, i.e. a ToF node that has no reachability to an anycast address
(since a fallen leaf forwarded to an anycast destination that is also
fallen) could try to use horizontal links to forward traffic but it may
have multiple planes that can reach the destination. Obviously when it
forwards e.g. left on the ring & the traffic arrives on the ToF that seems
to be able to reach that anycast the ToF may choose to forward it back on
the ring to "another ToF" that can reach the anycast. Observer that RIFT is
loop-free i.e. one can forward on any path as long it reaches the
destination but since horizontal is considered equivalent to northbound
forwarding and metric can be disregarded (RIFT is not bound by shortest
path) the traffic may just end up looping in the ring. This is hard to
describe and would to lots figures hence the spec simply says "don't do it"
and if one is tempted to one will find out why it's a bad idea when one
implemented this. And then the said implementer will probably try to fix it
by the "shortest path" computation @ ToF level which is next layer of the
onion the document mentions and then explains again that this may work but
he stop going out there with this spec.

The "ring" between planes necessary is visualized in figure 13 and
described in section

4.2.5.2.1.  Cabling of Multiple Top-of-Fabric Planes


again in an example. I don't think that needs further clarification.


>
>
> Section 5.2.5.1
>
> "A DAG computation" - expand DAG.
>

already expanded in entrance to terminology section but added a more
specific definition


>
>
> "Neither
>
>        is it necessary for the receiving node to reflect the
>
>        disaggregated prefixes back over its adjacencies to nodes at the
>
>        level from which it was received."
>
>
>
> Please restate this using RFC 2119 language.
>

done. It's actually not necessary for this language here to be normative
since the normative part is Table 3 and when it is implemented all the
algorithm behavior and resulting flooding follows straight out of that. I
emphasized that the flooding scopes table is normative.


>
>
> How can we guarantee that a same-level node does not have a next hop to a
> given prefix that is unknown to the node doing the computation?  If X
> reaches P via N1 and N2, Y (at the same level as X) can reach P via N3 bu=
t
> X does not know this and assumes Y cannot reach P because Y is not adjace=
nt
> to N1 and N2, then X unnecessarily disaggregates P positively.  For
> instance if X's link to N3 has failed and Y's links to N1 and N2 have
> failed.
>

that cannot be guaranteed. If X can reach prefix via N1 which Y doesn't
have and Y via N3 that X doesn't have but they only see via a nexthops N0
(though which the prefix cannot be reached) then both will disaggregate
since anything else would be assuming necessity of "harmonica routing"
which RIFT doesn't do since harmonica is opposite to valley free routing
which RIFT does to guarantee loop free behavior.  That is actually a good
example why RIFT positive disaggregation guarantees sufficient
disaggregation to prevent blackholes, loops and bow-ties but possibly more
than necessary (which is never claimed in the document).


>
>
> "Each entry is a list of south neighbor of X and a list of nodes
>
>        of X.level that can't reach that neighbor"
>
>
>
> Think this should say
>
>
>
> "Each entry in the set is a south neighbor of X and a list of nodes
>
>        of X.level that can't reach that neighbor"
>

yes, thanks.


>
>
> "X does not to disaggregate any prefixes" -> ""X does not disaggregate an=
y
> prefixes.""
>

yes


>
>
> "The PoD containing the prefix will prefer southbound anyway." - I didn't
> understand the point. Is it necessary for me to understand it? Please
> expand or delete the sentence if it's not necessary.
>

clarified:

<t>all the lower level nodes are flooded the same disaggregated
    prefixes since we don't want to build an South TIE per node and
    complicate things unnecessarily. The lower level node
    that can compute a southbound route to the prefix
    will prefer it to the disaggregated route anyway based on
    route preference rules.</t>



>
>
> Section 5.2.6
>
> "such as mobility per section 5.3.3 necessary" - delete "necessary".
>

yes


> "ties are broken based upon type first and then distance and further
> attributes" - I don't see mention of further attributes in the proposed
> algorithm.
>

corrected to

PrefixAttributes


which are contained in the schema. Mobility tie-breaking is described in
its own section.

The document does not standardize further tie-breaking since .e.g.
tie-breaking on tags is possible but can be completely implementation
dependent given RIFT is loop-free. Neither do I think any kind of
"standardizable agreement" could be possible here.


>
> "The nexthop
>
>    adjacencies for a negative prefix are inherited from the longest
>
>    prefix that aggregates it" - suggest changing to "longest positive
> prefix"
>

ok


>
>
> "all entries of the father" -> "all entries of the parent"
>

ok


> Section 5.2.7.3
>
> "we have to decide whether node Y is at the same level as I, J or at
>
>    the same level as Y and consequently, X is south of it."
>
>
>
> I could not parse this.  I think you might mean this:
>
>
>
> "we have to decide whether node Y is at the same level as I, J
>
>   (and consequently X is south of it) or at the same level as X."
>

yes, correct, somewhat it got garbled, corrected to

<t>First, we must anchor the "top" of the cabling and that's what
    the TOP_OF_FABRIC flag at node A is for. Then things look smooth until
    we have to decide whether node Y is at the same level as I, J
    (and as consequence, X is south of it) or at
    the same level as X. This is
    unresolvable here until we
    "nail down the bottom" of the topology. To achieve that we choose to
    use in this
    example the leaf flags in X and Y. In case where Y would not have a lea=
f
    flag it will try to elect highest level offered and end up being
    in same level as I and J.
    </t>



>
>
> Section 5.2.7.4
>
> How does a ToF node know what value to advertise in its LEVEL_VALUE?
>

This constant is provided in appendix D.1

I'm working on the other directorate reviews and will try to cut a new
version with all those changes before deadline

--00000000000083468b05967adb47
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Jonathan, thanks for your review, responses inline<br=
></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr"=
>On Thu, Oct 31, 2019 at 11:01 AM Jonathan Hardwick &lt;Jonathan.Hardwick=
=3D<a href=3D"mailto:40metaswitch.com@dmarc.ietf.org" target=3D"_blank">40m=
etaswitch.com@dmarc.ietf.org</a>&gt; wrote:<br></div><blockquote class=3D"g=
mail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204=
,204,204);padding-left:1ex">





<div lang=3D"EN-US">
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Hello<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">I have been selected to do a Ro=
uting Directorate =E2=80=9Cearly review=E2=80=9D of this draft:<u></u><u></=
u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><a href=3D"https://datatracker.=
ietf.org/doc/draft-ietf-rift-rift/" target=3D"_blank">https://datatracker.i=
etf.org/doc/draft-ietf-rift-rift/</a><u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">The routing directorate will, o=
n request from the working group chair, perform an =E2=80=9Cearly=E2=80=9D =
review of a draft before it is submitted for publication to the IESG. The e=
arly review can be performed at any time during the
 draft=E2=80=99s lifetime as a working group document. The purpose of the e=
arly review depends on the stage that the document has reached.=C2=A0 As th=
is document has advanced to working group last call, my focus for the revie=
w was to determine whether the document is ready
 to be published. Please consider my comments along with the other working =
group last call comments.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">For more information about the =
Routing Directorate, please see <a href=3D"http://trac.tools.ietf.org/area/=
rtg/trac/wiki/RtgDir" target=3D"_blank">http://trac.tools.ietf.org/area/rtg=
/trac/wiki/RtgDir</a><u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Document: draft-ietf-rift-rift<=
u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Reviewer: Jon Hardwick<u></u><u=
></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Review Date: 31 Oct 2019<u></u>=
<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Intended Status: Standards Trac=
k<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><b><span lang=3D"EN-GB">Summary<u></u><u></u></span>=
</b></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Thanks for writing this documen=
t.=C2=A0 It is a very interesting approach and I really enjoyed getting to =
grips with the ideas presented in the draft!</span></p></div></div></blockq=
uote><div><br></div><div>thanks, quite a lot of work<br></div><div>=C2=A0</=
div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bor=
der-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang=3D"EN-US"><=
div><p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Unfortunately, I have some conc=
erns about the document and think it needs more work before being submitted=
 to the IESG.=C2=A0 The problem is that I found the document hard to read, =
for several reasons.<u></u><u></u></span></p>
<ul style=3D"margin-top:0cm" type=3D"disc">
<li style=3D"margin-left:0cm"><span lang=3D"EN-GB">It is very light in its =
use of normative RFC-2119 style language.=C2=A0 An implementer would have t=
o fill in quite a few gaps and/or make assumptions about various passages.<=
/span></li></ul></div></div></blockquote><div>I will address in specifics t=
he sections you raised inline. <br></div><div><br></div><div>Otherwise, in =
meta terms, as to the question of &quot;is this specification being precise=
 enough?&quot; I can quote only what I wrote to Robert Sparks already:</div=
><div><br></div><div><i>&quot;we have two interoperable implementations sin=
ce a bit, one completely=20
open source which has been produced based on the spec. It was in fact=20
open source work that helped to refine the document content to make sure
 we can have an implementation produced based on the text without=20
further &quot;guessing things&quot;. As example the LIE FSM has been implem=
ented=20
initially in open source without consulting authors of the spec and=20
interoperat&#39;ed without a single defect (but discovered a protocol=20
underspecification in case of misconfiguration that was subsequently=20
added). Please refer to IETF proceedings for the according presentations
 if necessary. We have a third implemenation progressing now where all=20
questions the implementor asked so far could be answered by pointing=20
directly @=C2=A0 the specification as written. This seems to answer to me t=
he
 &quot;suspicion of specification maybe not being good enough to implement&=
quot;=20
as an objective measuring stick as far I can imagine one. </i></div><div><i=
>&quot;</i></div><div><i><br></i></div><div>We are in IETF here where &quot=
;rough consenus and running code&quot; was the receipe of success vs. much =
heavier handed organizations like OSI and I think in this philosophy the sp=
ec, if anything, is possibly overspecified already ;-) The core pieces that=
 bare no slips like flooding and adjacency formation are very precisely wri=
tten including FSMs.<br></div><div>=C2=A0</div><blockquote class=3D"gmail_q=
uote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,2=
04);padding-left:1ex"><div lang=3D"EN-US"><div><ul style=3D"margin-top:0cm"=
 type=3D"disc"><li style=3D"margin-left:0cm"><span lang=3D"EN-GB"><u></u><u=
></u></span></li><li style=3D"margin-left:0cm"><span lang=3D"EN-GB">The def=
inition of the protocol and some of the normative behaviour is deferred to =
the appendices, whereas I would expect to encounter it early on in the text=
, with
 an in-line discussion of the purposes of the messages and fields.</span></=
li></ul></div></div></blockquote><div><br></div><div>Ok, seems like the sec=
ond directorate reviewers prefers the appendices to be pulled into the docu=
ment. Let me do that thenl<br></div><div>=C2=A0</div><blockquote class=3D"g=
mail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204=
,204,204);padding-left:1ex"><div lang=3D"EN-US"><div><ul style=3D"margin-to=
p:0cm" type=3D"disc"><li style=3D"margin-left:0cm"><span lang=3D"EN-GB"><u>=
</u><u></u></span></li><li style=3D"margin-left:0cm"><span lang=3D"EN-GB">I=
t sometimes refers to concepts or terms that are either not defined or have=
 not yet been introduced to the reader, suggesting an ordering issue within=
 the text.<u></u><u></u></span></li></ul>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">I think that the document needs=
 to be refactored somewhat to solve the ordering issues, use more normative=
 language, eliminate any text that is not actually relevant to the implemen=
tation and deployment of the protocol,
 and pull together the normative definition of the protocol into a contiguo=
us block early on in the document.</span></p></div></div></blockquote><div>=
<br></div><div>further inline<br></div><div>=C2=A0</div><blockquote class=
=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rg=
b(204,204,204);padding-left:1ex"><div lang=3D"EN-US"><div><p class=3D"MsoNo=
rmal"><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">The other issue is that, becaus=
e the document is large and I found it rather hard going, I did not have ti=
me do a thorough review beyond section 5.3.=C2=A0 I=E2=80=99d therefore hav=
e to recommend another directorate review once we
 have concluded on the issues I=E2=80=99m raising below.</span></p></div></=
div></blockquote><div><br></div><div>ok, obviously as much is written as we=
 expect is necessary to &quot;clearly&quot; spec out the protocol. The docu=
ment is more than simply a dry prescriptive normative though since very ear=
ly in the workgroup sessions the input of many people was that they would p=
refer is some more &quot;narrative&quot; explanation of &quot;what&quot; an=
d &quot;why&quot; is inserted instead of purely the algorithms. We tried to=
 find a balance but obviously opinions will always vary between &quot;this =
is too chatty and should be just a dry normative&quot; and &quot;this does =
not explain WHY that would work and WHY it has been designed that way&quot;=
. Based on Robert Sparks review I will try to simplify the language and cut=
 out some superfluous text he pointed out or I find. We&#39;ll see where we=
 end. <br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D=
"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-le=
ft:1ex"><div lang=3D"EN-US"><div><p class=3D"MsoNormal"><span lang=3D"EN-GB=
"><u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><b><span lang=3D"EN-GB">Details<u></u><u></u></span>=
</b></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Here are comments on the sectio=
ns that I was able to review in detail before I ran out of time.<u></u><u><=
/u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Abstract<u></u><u></u></span></=
p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Is it possible to reformat this=
 as a list of items on multiple lines? It would read more clearly.</span></=
p></div></div></blockquote><div><br></div>yes<div>=C2=A0</div><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px soli=
d rgb(204,204,204);padding-left:1ex"><div lang=3D"EN-US"><div><p class=3D"M=
soNormal"><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Section 2<u></u><u></u></span><=
/p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&quot;an optimal approach does =
not seem however&quot;: this appears to be a value judgment rather than con=
sensus opinion, appearing as it does without citation, and may be perceived=
 as treading on the toes of other standardization
 efforts currently in progress at the IETF. I suggest you simply state the =
facts: &quot;RIFT approaches this problem using a mixture of...&quot;</span=
></p></div></div></blockquote><div><br></div><div>done, sure. <br></div><di=
v>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px=
 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang=
=3D"EN-US"><div><p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u><u></u><=
/span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Section 2.1<u></u><u></u></span=
></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">The form of words in the Requir=
ements Language boilerplate has changed recently - see RFC 8174.</span></p>=
</div></div></blockquote><div><br></div><div>thanks, corrected<br></div><di=
v>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px=
 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang=
=3D"EN-US"><div><p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u><u></u><=
/span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Section 3.1<u></u><u></u></span=
></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">ZTP - expand acronym on first u=
se.</span></p></div></div></blockquote><div><br></div><div>yes, ZTP added. =
glossary will be rea-arranged based on other reviewers input. <br></div><di=
v>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px=
 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang=
=3D"EN-US"><div><p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u><u></u><=
/span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">There is potential for confusio=
n between N-TIE and Node TIE! I&#39;d prefer &quot;North TIE&quot; for the =
former.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">An example of confusion: is the=
 &quot;South Node TIE&quot; referred to in the definition of &quot;South Re=
flection&quot; the same as the S-TIE referred to in the definition of &quot=
;TIE&quot;?<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&quot;The document sometimes ca=
lls them flood leaders as well.&quot; But it would be better if you just us=
ed one term.</span></p></div></div></blockquote><div><br></div><div>OK, I e=
xpand N- and S- to North- and South- everywhere in the document <br></div><=
div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0=
px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang=
=3D"EN-US"><div><p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u><u></u><=
/span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Section 4<u></u><u></u></span><=
/p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Personally I could live without=
 this section<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Merge PEND1 with NONREQx (or ex=
plain the distinction)</span></p></div></div></blockquote><div><br></div><d=
iv>thanks, there were multiple discussions pro/cons on mike/list about this=
 section and suggestions along the lines to split it out into a different d=
ocument (but standardizing requirement drafts went out of fashion recently =
;-) or drop it. I&#39;m dropping it based on your input and others desiring=
 to shorten the document.<br></div><div>=C2=A0</div><blockquote class=3D"gm=
ail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,=
204,204);padding-left:1ex"><div lang=3D"EN-US"><div><p class=3D"MsoNormal">=
<span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Section 5.1.3 - 5.1.5<u></u><u>=
</u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">This discussion is not possible=
 to follow properly until you have been introduced to positive &amp; negati=
ve disaggregation and southern reflection.=C2=A0 As such I wonder if it rea=
lly belongs in a section called &quot;overview&quot;.</span></p></div></div=
></blockquote><div><br></div><div>Jonathan, well, section 5.1.3 &quot;falle=
n leaf&quot; (4 now given requirements is removed) _is_ the overview sectio=
n. Southern reflection is defined in the glossary already and the &quot;neg=
ative disaggregation&quot; is a mechanism introduced to address the &quot;f=
allen leaf problem&quot; later and obviously the problem itself has to be e=
xplained &amp; introduced first. Negative disaggregation is arguably (besid=
e flooding scopes) the most complex part of the spec and we spent lots of t=
ime and effort (especially Pascal) with multiple rewrites to give the narra=
tive describing the CLOS inherent problem. Moreover we didn&#39;t want to m=
ix it up with RIFT specific mechanism since the &quot;fallen leaf&quot;: pr=
oblem exists in multi-plane CLOS independent of any protocol and BTW, I nev=
er saw it explained as clearly as Pascal did in the multi-plane introductio=
n section. Also, we clearly state in the section that if someone builds a s=
ingle plane CLOS the section can be disregarded to simplify the reading of =
the spec for many people. <br></div><div>=C2=A0</div><blockquote class=3D"g=
mail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204=
,204,204);padding-left:1ex"><div lang=3D"EN-US"><div><p class=3D"MsoNormal"=
><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Section 5.2.2<u></u><u></u></sp=
an></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0=C2=A0 A node configured =
with &quot;undefined&quot; PoD membership MUST, after<u></u><u></u></span><=
/p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0=C2=A0 building first nor=
thbound three way adjacencies to a node being in a<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0=C2=A0 defined PoD, adver=
tise that PoD as part of its LIEs.=C2=A0 In case that<u></u><u></u></span><=
/p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0=C2=A0 adjacency is lost,=
 from all available northbound three way<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0=C2=A0 adjacencies the no=
de with the highest System ID and defined PoD is<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0=C2=A0 chosen.<u></u><u><=
/u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">It seems odd that the choice of=
 advertised pod is at first non-deterministic (race to the first adjacency)=
 and then, only if this initial adjacency is lost, the choice of pod become=
s deterministic. Why not make it deterministic
 the whole time?</span></p></div></div></blockquote><div><br></div><div>The=
 first adjacency is simply used to speed up things since otherwise how long=
 do you wait until you have all northbound adjacencies?=C2=A0 Observe that =
level ZTP will possibly drop adjacencies while it&#39;s converging so the c=
onsequent set will refine the PoD as well, i.e. the ZTP is guaranteed to ge=
t the node to the maximum available level=C2=A0@ which point in time the no=
rthbound available adjacencies will determine the PoD. Obviouly the adjacen=
cies can disagree about the PoD and such a scenario can be used by an imple=
mentation to report miscablings. We talk quickly about miscabling detection=
 in the spec since it&#39;s such a desirable property _of an implementaiton=
_ but it&#39;s not necessary for correct protocol operation so we don&#39;t=
 make anything normative except disallowing adjacency forming across PoDs i=
f defined. Since configurting and converging PoDs is optional we allow even=
 to disregard this rule on adjacency formation.=C2=A0 <br></div><div>=C2=A0=
</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;b=
order-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang=3D"EN-US"=
><div><p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Section 5.2.3.2</span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">In the example TIEs, &quot;Spin=
e21&quot; should be &quot;ToF 21&quot; to agree with the nomenclature of fi=
gure 2.=C2=A0 Ditto in table 4 (section 5.2.3.4)<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">In Spine 111&#39;s Node-S-TIE, =
I am not sure that the links(...) should be given for each neighbor.</span>=
</p></div></div></blockquote><div><br></div><div>corrected the ToF 21/22 ev=
erywhere.=C2=A0 Yes, on careful reading one wonders WHY node south tie shou=
ld include _all_ links. This is necessary for both flood reduction as well =
as bandwidth balancing since both happen from south going up and the node c=
omputing needs the northbound neighbors of the level up. That&#39;s one of =
the reasons the example is givne. I&#39;ll add a clarifying sentence. <br><=
/div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px=
 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><di=
v lang=3D"EN-US"><div><p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u><u=
></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Section 5.2.3.5<u></u><u></u></=
span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&quot;It should only set it in =
the southbound direction.&quot;=C2=A0 - SHOULD?</span></p></div></div></blo=
ckquote><div><br></div><div>corrected</div><div> <br></div><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid r=
gb(204,204,204);padding-left:1ex"><div lang=3D"EN-US"><div><p class=3D"MsoN=
ormal"><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Section 5.2.3.8<u></u><u></u></=
span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Define N-SPF on first use</span=
></p></div></div></blockquote><div><br></div><div>OK, N-SPF and S-SPF added=
 to glossary.</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=
=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding=
-left:1ex"><div lang=3D"EN-US"><div><p class=3D"MsoNormal"><span lang=3D"EN=
-GB"><u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Section 5.2.4<u></u><u></u></sp=
an></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&quot;A node has three sources&=
quot; - I see only two listed.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&quot;We use simple, familiar S=
PF algorithms here...&quot; - is the use of those algorithms supposed to be=
 normative? Or are you just giving an example and leaving me to choose my o=
wn algorithm?=C2=A0 If SPF is normative then you need
 to specify it using normative language or include a normative reference to=
 it.</span></p></div></div></blockquote><div><br></div><div>I tried to clar=
ify that better in the existing text by expanding to <br></div><div><br></d=
iv><div><pre style=3D"background-color:rgb(255,255,255);color:rgb(0,0,0);fo=
nt-family:&quot;Menlo&quot;;font-size:8.3pt"><span style=3D"background-colo=
r:rgb(239,239,239)"><span style=3D"background-color:rgb(239,239,239)"><span=
 style=3D"background-color:rgb(239,239,239)">&lt;</span><span style=3D"colo=
r:rgb(0,0,128);background-color:rgb(239,239,239);font-weight:bold">t</span>=
<span style=3D"background-color:rgb(239,239,239)">&gt;</span>A node has thr=
ee possible sources of relevant information for reachability computation.  =
<br>    A node knows<br>    the full topology south of it from the received=
 North Node TIEs or alternately<br>    north of it from the South Node TIEs=
.  A node has the<br>    set of prefixes with their associated distances an=
d bandwidths from<br>    corresponding prefix TIEs.<span style=3D"backgroun=
d-color:rgb(239,239,239)">&lt;/</span><span style=3D"color:rgb(0,0,128);bac=
kground-color:rgb(239,239,239);font-weight:bold">t</span><span style=3D"bac=
kground-color:rgb(239,239,239)">&gt;</span><br><br><span style=3D"backgroun=
d-color:rgb(239,239,239)">&lt;</span><span style=3D"color:rgb(0,0,128);back=
ground-color:rgb(239,239,239);font-weight:bold">t</span><span style=3D"back=
ground-color:rgb(239,239,239)">&gt;</span>To compute prefix reachability, a=
 node runs conceptually a northbound<br>    and a southbound<br>    SPF.<br=
>    We call that N-SPF and S-SPF denoting the direction in which the compu=
tation<br>    front is progressing.<br><span style=3D"background-color:rgb(=
239,239,239)">&lt;/</span><span style=3D"color:rgb(0,0,128);background-colo=
r:rgb(239,239,239);font-weight:bold">t</span><span style=3D"background-colo=
r:rgb(239,239,239)">&gt;</span><br><br><span style=3D"background-color:rgb(=
239,239,239)">&lt;</span><span style=3D"color:rgb(0,0,128);background-color=
:rgb(239,239,239);font-weight:bold">t</span><span style=3D"background-color=
:rgb(239,239,239)">&gt;</span>Since neither computation can &quot;loop&quot=
;, it is<br>    possible to compute non-equal-cost or even<br>    <span sty=
le=3D"background-color:rgb(239,239,239)">&lt;</span><span style=3D"color:rg=
b(0,0,128);background-color:rgb(239,239,239);font-weight:bold">xref </span>=
<span style=3D"color:rgb(0,0,255);background-color:rgb(239,239,239);font-we=
ight:bold">target</span><span style=3D"color:rgb(0,128,0);background-color:=
rgb(239,239,239);font-weight:bold">=3D&quot;EPPSTEIN&quot;</span><span styl=
e=3D"background-color:rgb(239,239,239)">&gt;</span>k-shortest paths<span st=
yle=3D"background-color:rgb(239,239,239)">&lt;/</span><span style=3D"color:=
rgb(0,0,128);background-color:rgb(239,239,239);font-weight:bold">xref</span=
><span style=3D"background-color:rgb(239,239,239)">&gt;</span><br>    and &=
quot;saturate&quot; the fabric<br>    to the extent desired but we use simp=
le, familiar SPF algorithms and<br>    concepts here as example due to thei=
r prevalence in today&#39;s routing.<br><span style=3D"background-color:rgb=
(239,239,239)">&lt;/</span><span style=3D"color:rgb(0,0,128);background-col=
or:rgb(239,239,239);font-weight:bold">t</span><span style=3D"background-col=
or:rgb(239,239,239)">&gt;</span></span><span style=3D"background-color:rgb(=
239,239,239)"></span></span><span style=3D"background-color:rgb(239,239,239=
)"></span></pre></div><div>=C2=A0</div><div>So the algorithms given are NOT=
 normative but I improved what _is_ normative in the N-SPF and S-SPF sectio=
n <br></div><div><pre style=3D"background-color:rgb(255,255,255);color:rgb(=
0,0,0);font-family:&quot;Menlo&quot;;font-size:8.3pt"><span style=3D"backgr=
ound-color:rgb(239,239,239)">&lt;</span><span style=3D"color:rgb(0,0,128);b=
ackground-color:rgb(239,239,239);font-weight:bold">section </span><span sty=
le=3D"color:rgb(0,0,255);background-color:rgb(239,239,239);font-weight:bold=
">anchor</span><span style=3D"color:rgb(0,128,0);background-color:rgb(239,2=
39,239);font-weight:bold">=3D&quot;nspf&quot; </span><span style=3D"color:r=
gb(0,0,255);background-color:rgb(239,239,239);font-weight:bold">title</span=
><span style=3D"color:rgb(0,128,0);background-color:rgb(239,239,239);font-w=
eight:bold">=3D&quot;Northbound SPF&quot;</span><span style=3D"background-c=
olor:rgb(239,239,239)">&gt;</span><br><br>    <span style=3D"background-col=
or:rgb(239,239,239)">&lt;</span><span style=3D"color:rgb(0,0,128);backgroun=
d-color:rgb(239,239,239);font-weight:bold">t</span><span style=3D"backgroun=
d-color:rgb(239,239,239)">&gt;</span> N-SPF <b>MUST use ONLY</b> northbound=
 and East-West adjacencies in the computing<br>        node&#39;s node Nort=
h TIEs (since if the node is a leaf it may not have<br>        generated a =
node South TIE)<br>        when starting SPF. <span style=3D"background-col=
or:rgb(239,239,239)">...<br><br><span style=3D"background-color:rgb(239,239=
,239)">&lt;</span><span style=3D"color:rgb(0,0,128);background-color:rgb(23=
9,239,239);font-weight:bold">t</span><span style=3D"background-color:rgb(23=
9,239,239)">&gt;</span>Once progressing, we are using the next higher level=
&#39;s node South TIEs to<br>    find according adjacencies to verify backl=
ink connectivity.<br>    Just as in case of IS-IS or OSPF, two unidirection=
al links<b> MUST</b> be<br>    associated<br>    together to confirm bidire=
ctional connectivity. ...<br><br><span style=3D"background-color:rgb(239,23=
9,239)"></span></span></pre></div><div><pre style=3D"background-color:rgb(2=
55,255,255);color:rgb(0,0,0);font-family:&quot;Menlo&quot;;font-size:8.3pt"=
><span style=3D"background-color:rgb(239,239,239)">&lt;</span><span style=
=3D"color:rgb(0,0,128);background-color:rgb(239,239,239);font-weight:bold">=
section </span><span style=3D"color:rgb(0,0,255);background-color:rgb(239,2=
39,239);font-weight:bold">anchor</span><span style=3D"color:rgb(0,128,0);ba=
ckground-color:rgb(239,239,239);font-weight:bold">=3D&quot;sspf&quot; </spa=
n><span style=3D"color:rgb(0,0,255);background-color:rgb(239,239,239);font-=
weight:bold">title</span><span style=3D"color:rgb(0,128,0);background-color=
:rgb(239,239,239);font-weight:bold">=3D&quot;Southbound SPF&quot;</span><sp=
an style=3D"background-color:rgb(239,239,239)">&gt;</span><br><br>    <span=
 style=3D"background-color:rgb(239,239,239)">&lt;</span><span style=3D"colo=
r:rgb(0,0,128);background-color:rgb(239,239,239);font-weight:bold">t</span>=
<span style=3D"background-color:rgb(239,239,239)">&gt;</span> <b>S-SPF MUST=
 use ONLY</b> the<br>        southbound adjacencies in the node South TIEs,=
<br>        i.e. progresses towards nodes at lower levels. Observe that<br>=
        E-W adjacencies are NEVER used in the computation. This enforces th=
e<br>        requirement that a packet traversing in a southbound direction=
 must<br>        never change its direction.<span style=3D"background-color=
:rgb(239,239,239)">&lt;/</span><span style=3D"color:rgb(0,0,128);background=
-color:rgb(239,239,239);font-weight:bold">t</span><span style=3D"background=
-color:rgb(239,239,239)">&gt;</span><br>    <span style=3D"background-color=
:rgb(239,239,239)">&lt;</span><span style=3D"color:rgb(0,0,128);background-=
color:rgb(239,239,239);font-weight:bold">t</span><span style=3D"background-=
color:rgb(239,239,239)">&gt;</span><b>S-SPF MUST</b> use northbound adjacen=
cies in node North TIEs to verify backlink<br>        connectivity by check=
ing for presence of the link beside correct SystemID and <br>        level.=
 <span style=3D"background-color:rgb(239,239,239)">&lt;/</span><span style=
=3D"color:rgb(0,0,128);background-color:rgb(239,239,239);font-weight:bold">=
t</span><span style=3D"background-color:rgb(239,239,239)">&gt;<br><br></spa=
n></pre><pre style=3D"background-color:rgb(255,255,255);color:rgb(0,0,0);fo=
nt-family:&quot;Menlo&quot;;font-size:8.3pt"><span style=3D"background-colo=
r:rgb(239,239,239)"><br></span></pre></div><div>This is about all that need=
s to be said here in terms of normative language beside the one already pre=
sent. <br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D=
"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-le=
ft:1ex"><div lang=3D"EN-US"><div><p class=3D"MsoNormal"><span lang=3D"EN-GB=
"><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Section 5.2.4.1<u></u><u></u></=
span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Please define the terms &quot;s=
outh prefix&quot; and &quot;north prefix&quot;<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&quot;Supersuming&quot; is not =
a word I recognise.=C2=A0 Use &quot;or a non-default prefix which contains =
this south prefix&quot;<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&quot;the node does not...&quot=
; -&gt; &quot;the computing node does not...&quot;<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Section 5.2.4.2<u></u><u></u></=
span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&quot;S-SPF uses northbound adj=
acencies in node N-TIEs to verify backlink connectivity&quot; - this statem=
ent needs to be recast into normative language using RFC 2119 terms.=C2=A0 =
&quot;A node MUST verify backlink connectivity ... Else
 it MUST NOT include the link.... Etc.&quot;<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Same comment applies in many pl=
aces throughout the document.</span></p></div></div></blockquote><div><br><=
/div><div>re-read and applied more normative language to the specific secti=
on as indicated above.=C2=A0 Re-read the document and normalized more langu=
agte where necessary. <br></div><div>=C2=A0</div><blockquote class=3D"gmail=
_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204=
,204);padding-left:1ex"><div lang=3D"EN-US"><div><p class=3D"MsoNormal"><sp=
an lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Section 5.2.4.3<u></u><u></u></=
span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">What is a `&quot;ring protectio=
n&quot; scheme`?</span></p></div></div></blockquote><div><br></div><div>Rin=
g based protection scheme just like BLSR. I replace with &quot;ring-based p=
rotection&quot; which is fairly well understood term in networking. <br></d=
iv><div><br></div><div>Removed the ring based protection of a level to appl=
icability draft which multiple authors work on and where it seems to belong=
 rather than in the spec. Left only clarification<br></div><div><br></div><=
div><pre style=3D"background-color:rgb(255,255,255);color:rgb(0,0,0);font-f=
amily:&quot;Menlo&quot;;font-size:8.3pt"><span style=3D"background-color:rg=
b(239,239,239)">&lt;</span><span style=3D"color:rgb(0,0,128);background-col=
or:rgb(239,239,239);font-weight:bold">t</span><span style=3D"background-col=
or:rgb(239,239,239)">&gt;</span>Using south prefixes over horizontal links =
MAY occur<br>=C2=A0if the N-SPF is East-West adjacencies in computation.<br=
>    It can<br>    protect against pathological fabric partitioning cases t=
hat<br>    leave only paths to destinations that would necessitate multiple=
<br>    changes of forwarding direction between north and south.<br>    <sp=
an style=3D"background-color:rgb(239,239,239)">&lt;/</span><span style=3D"c=
olor:rgb(0,0,128);background-color:rgb(239,239,239);font-weight:bold">t</sp=
an><span style=3D"background-color:rgb(239,239,239)">&gt;</span></pre></div=
><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px=
 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div la=
ng=3D"EN-US"><div><p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u><u></u=
></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Are E-W links permitted between=
 planes?<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Not sure what this is telling m=
e: &quot;Using south prefixes over horizontal links is optional...&quot; - =
is that OPTIONAL as in RFC 2119?=C2=A0 Do you mean that my implementation c=
an ignore them? Or not advertise them? Or that the
 network operator does not have to cable them?</span></p></div></div></bloc=
kquote><div><br></div><div>Clarified as per section above. If the N-SPF is =
using horizontal adjacencies it will pick up those prefixes. <br></div><div=
>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px =
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang=3D=
"EN-US"><div><p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u><u></u></sp=
an></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Section 5.2.4.4<u></u><u></u></=
span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&quot;Even though a ToF node co=
uld<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0=C2=A0 be tempted to use =
those links during southbound SPF this MUST NOT be<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0=C2=A0 attempted since it=
 may lead in, e.g. anycast cases to routing loops.&quot;<u></u><u></u></spa=
n></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">This is too verbose and obtuse.=
=C2=A0 I cannot see how anycast cases lead to routing loops and I don&#39;t=
 know if I need to understand why or not.=C2=A0 Suggest<br></span></p></div=
></div></blockquote><div>=C2=A0</div><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);paddin=
g-left:1ex"><div lang=3D"EN-US"><div><p class=3D"MsoNormal"><span lang=3D"E=
N-GB">
<br>
<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&quot;A ToF node MUST NOT inclu=
de east-west links in its south-SPF calculation.&quot;</span></p></div></di=
v></blockquote><div><br></div><div>This is already said in the S-SPF sectio=
n very explicitly as <br></div><div><br></div><div><pre style=3D"background=
-color:rgb(255,255,255);color:rgb(0,0,0);font-family:&quot;Menlo&quot;;font=
-size:8.3pt"><span style=3D"background-color:rgb(239,239,239)">&lt;</span><=
span style=3D"color:rgb(0,0,128);background-color:rgb(239,239,239);font-wei=
ght:bold">t</span><span style=3D"background-color:rgb(239,239,239)">&gt;</s=
pan> S-SPF <b>MUST use ONLY the<br>    southbound adjacencies in the node S=
outh TIEs,<br>    i.e. progresses towards nodes at lower levels. Observe th=
at<br>    E-W adjacencies are NEVER used in the computation. This enforces =
the<br>    requirement that a packet traversing in a southbound direction m=
ust<br>    never change its direction.</b><span style=3D"background-color:r=
gb(239,239,239)">&lt;/</span><span style=3D"color:rgb(0,0,128);background-c=
olor:rgb(239,239,239);font-weight:bold">t</span><span style=3D"background-c=
olor:rgb(239,239,239)"></span></pre></div><div><br></div><div>=C2=A0</div><=
blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l=
eft:1px solid rgb(204,204,204);padding-left:1ex"><div lang=3D"EN-US"><div><=
p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">This section gives the impressi=
on that E-W links at the ToF will never be used for forwarding data - is th=
at true?=C2=A0 They are used for control plane only?</span></p></div></div>=
</blockquote><div><br></div><div><div><div>Yes, it is described in text but=
 I clarified the section on horizontal links in ToF further</div><div><br><=
/div><div><pre style=3D"background-color:rgb(255,255,255);color:rgb(0,0,0);=
font-family:&quot;Menlo&quot;;font-size:8.3pt"><span style=3D"background-co=
lor:rgb(239,239,239)">&lt;</span><span style=3D"color:rgb(0,0,128);backgrou=
nd-color:rgb(239,239,239);font-weight:bold">t</span><span style=3D"backgrou=
nd-color:rgb(239,239,239)">&gt;</span>E-W ToF links behave in terms of floo=
ding scopes defined in<br>    <span style=3D"background-color:rgb(239,239,2=
39)">&lt;</span><span style=3D"color:rgb(0,0,128);background-color:rgb(239,=
239,239);font-weight:bold">xref </span><span style=3D"color:rgb(0,0,255);ba=
ckground-color:rgb(239,239,239);font-weight:bold">target</span><span style=
=3D"color:rgb(0,128,0);background-color:rgb(239,239,239);font-weight:bold">=
=3D&quot;tiescopes&quot;</span><span style=3D"background-color:rgb(239,239,=
239)">/&gt;</span> like northbound links and <b>MUST be used for control pl=
ane<br>    information flooding ONLY</b>. Even though a ToF node could be t=
empted<br>    to use those links during southbound SPF and carry traffic ov=
er them this<br>    MUST NOT be attempted since it may lead in, e.g. anycas=
t cases to routing loops.<br>    An implemention MAY try to resolve the loo=
ping problem by following on the ring strictly<br>    tie-broken<br>    sho=
rtest-paths only but the details are outside this specification. And even t=
hen,<br>    the problem of proper capacity provisioning of such links when =
they become traffic-bearing in<br>    case of failures is vexing.<span styl=
e=3D"background-color:rgb(239,239,239)">&lt;/</span><span style=3D"color:rg=
b(0,0,128);background-color:rgb(239,239,239);font-weight:bold">t</span><spa=
n style=3D"background-color:rgb(239,239,239)">&gt;</span></pre></div></div>=
</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0p=
x 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><d=
iv lang=3D"EN-US"><div><p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u><=
u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&quot;An implementation could t=
ry ... but the details are outside this specification&quot; - so why mentio=
n it?</span></p></div></div></blockquote><div><br></div><div>Because of the=
 fact that the question was coming up multiple times in meetings/mails and =
so on. Instead of negative disaggregation people were tempted to &quot;forw=
ard through the horizontal links on top&quot; when a fallen leaf starts for=
warding in the wrong plane (i.e. the one where it&#39;s fallen). This secti=
on points out that this should not be attempted due to looping problems, i.=
e. a ToF node that has no reachability to an anycast address (since a falle=
n leaf forwarded to an anycast destination that is also fallen) could try t=
o use horizontal links to forward traffic but it may have multiple planes t=
hat can reach the destination. Obviously when it forwards e.g. left on the =
ring &amp; the traffic arrives on the ToF that seems to be able to reach th=
at anycast the ToF may choose to forward it back on the ring to &quot;anoth=
er ToF&quot; that can reach the anycast. Observer that RIFT is loop-free i.=
e. one can forward on any path as long it reaches the destination but since=
 horizontal is considered equivalent to northbound forwarding and metric ca=
n be disregarded (RIFT is not bound by shortest path) the traffic may just =
end up looping in the ring. This is hard to describe and would to lots figu=
res hence the spec simply says &quot;don&#39;t do it&quot; and if one is te=
mpted to one will find out why it&#39;s a bad idea when one implemented thi=
s. And then the said implementer will probably try to fix it by the &quot;s=
hortest path&quot; computation=C2=A0@ ToF level which is next layer of the =
onion the document mentions and then explains again that this may work but =
he stop going out there with this spec. <br></div><div><br></div><div>The &=
quot;ring&quot; between planes necessary is visualized in figure 13 and des=
cribed in section <br></div><div><br></div><div><pre style=3D"background-co=
lor:rgb(255,255,255);color:rgb(0,0,0);font-family:&quot;Menlo&quot;;font-si=
ze:8.3pt">4.2.5.2.1.  Cabling of Multiple Top-of-Fabric Planes</pre></div><=
div><br></div><div>again in an example. I don&#39;t think that needs furthe=
r clarification. <br></div><div>=C2=A0</div><blockquote class=3D"gmail_quot=
e" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204)=
;padding-left:1ex"><div lang=3D"EN-US"><div><p class=3D"MsoNormal"><span la=
ng=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Section 5.2.5.1<u></u><u></u></=
span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&quot;A DAG computation&quot; -=
 expand DAG.</span></p></div></div></blockquote><div><br></div><div>already=
 expanded in entrance to terminology section but added a more specific defi=
nition <br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=
=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding=
-left:1ex"><div lang=3D"EN-US"><div><p class=3D"MsoNormal"><span lang=3D"EN=
-GB"><u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&quot;Neither<u></u><u></u></sp=
an></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 is it necessary for the receiving node to reflect the<u></u><u></u><=
/span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 disaggregated prefixes back over its adjacencies to nodes at the<u><=
/u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 level from which it was received.&quot;<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Please restate this using RFC 2=
119 language.</span></p></div></div></blockquote><div><br></div><div>done. =
It&#39;s actually not necessary for this language here to be normative sinc=
e the normative part is Table 3 and when it is implemented all the algorith=
m behavior and resulting flooding follows straight out of that. I emphasize=
d that the flooding scopes table is normative. <br></div><div>=C2=A0</div><=
blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l=
eft:1px solid rgb(204,204,204);padding-left:1ex"><div lang=3D"EN-US"><div><=
p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">How can we guarantee that a sam=
e-level node does not have a next hop to a given prefix that is unknown to =
the node doing the computation?=C2=A0 If X reaches P via N1 and N2, Y (at t=
he same level as X) can reach P via N3 but
 X does not know this and assumes Y cannot reach P because Y is not adjacen=
t to N1 and N2, then X unnecessarily disaggregates P positively.=C2=A0 For =
instance if X&#39;s link to N3 has failed and Y&#39;s links to N1 and N2 ha=
ve failed.</span></p></div></div></blockquote><div><br></div><div>that cann=
ot be guaranteed. If X can reach prefix via N1 which Y doesn&#39;t have and=
 Y via N3 that X doesn&#39;t have but they only see via a nexthops N0 (thou=
gh which the prefix cannot be reached) then both will disaggregate since an=
ything else would be assuming necessity of &quot;harmonica routing&quot; wh=
ich RIFT doesn&#39;t do since harmonica is opposite to valley free routing =
which RIFT does to guarantee loop free behavior.=C2=A0 That is actually a g=
ood example why RIFT positive disaggregation guarantees sufficient disaggre=
gation to prevent blackholes, loops and bow-ties but possibly more than nec=
essary (which is never claimed in the document). =C2=A0 <br></div><div>=C2=
=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8e=
x;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang=3D"EN-=
US"><div><p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u><u></u></span><=
/p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&quot;Each entry is a list of s=
outh neighbor of X and a list of nodes<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 of X.level that can&#39;t reach that neighbor&quot;<u></u><u></u></s=
pan></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Think this should say<u></u><u>=
</u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&quot;Each entry in the set is =
a south neighbor of X and a list of nodes<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 of X.level that can&#39;t reach that neighbor&quot;</span></p></div>=
</div></blockquote><div><br></div><div>yes, thanks.<br></div><div>=C2=A0</d=
iv><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bord=
er-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang=3D"EN-US"><d=
iv><p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&quot;X does not to disaggregat=
e any prefixes&quot; -&gt; &quot;&quot;X does not disaggregate any prefixes=
.&quot;&quot;</span></p></div></div></blockquote><div><br></div><div>yes<br=
></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0=
px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><=
div lang=3D"EN-US"><div><p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=
<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&quot;The PoD containing the pr=
efix will prefer southbound anyway.&quot; - I didn&#39;t understand the poi=
nt. Is it necessary for me to understand it? Please expand or delete the se=
ntence if it&#39;s not necessary.</span></p></div></div></blockquote><div><=
br></div><div>clarified: <br></div><div><br></div><div><pre style=3D"backgr=
ound-color:rgb(255,255,255);color:rgb(0,0,0);font-family:&quot;Menlo&quot;;=
font-size:8.3pt"><span style=3D"background-color:rgb(239,239,239)">&lt;</sp=
an><span style=3D"color:rgb(0,0,128);background-color:rgb(239,239,239);font=
-weight:bold">t</span><span style=3D"background-color:rgb(239,239,239)">&gt=
;</span>all the lower level nodes are flooded the same disaggregated<br>   =
 prefixes since we don&#39;t want to build an South TIE per node and<br>   =
 complicate things unnecessarily. The lower level node <br>    that can com=
pute a southbound route to the prefix<br>    will prefer it to the disaggre=
gated route anyway based on <br>    route preference rules.<span style=3D"b=
ackground-color:rgb(239,239,239)">&lt;/</span><span style=3D"color:rgb(0,0,=
128);background-color:rgb(239,239,239);font-weight:bold">t</span><span styl=
e=3D"background-color:rgb(239,239,239)">&gt;</span></pre></div><div>=C2=A0<=
/div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bo=
rder-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang=3D"EN-US">=
<div><p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Section 5.2.6 <u></u><u></u></s=
pan></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&quot;such as mobility per sect=
ion 5.3.3 necessary&quot; - delete &quot;necessary&quot;.</span></p></div><=
/div></blockquote><div><br></div><div>yes<br></div><div>=C2=A0</div><blockq=
uote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1p=
x solid rgb(204,204,204);padding-left:1ex"><div lang=3D"EN-US"><div><p clas=
s=3D"MsoNormal"><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&quot;ties are broken based upo=
n type first and then distance and further attributes&quot; - I don&#39;t s=
ee mention of further attributes in the proposed algorithm.</span></p></div=
></div></blockquote><div><br></div><div>corrected to <br><pre style=3D"back=
ground-color:rgb(255,255,255);color:rgb(0,0,0);font-family:&quot;Menlo&quot=
;;font-size:8.3pt">PrefixAttributes</pre></div><div>=C2=A0</div><div>which =
are contained in the schema. Mobility tie-breaking is described in its own =
section. <br></div><div><br></div><div>The document does not standardize fu=
rther tie-breaking since .e.g. tie-breaking on tags is possible but can be =
completely implementation dependent given RIFT is loop-free. Neither do I t=
hink any kind of &quot;standardizable agreement&quot; could be possible her=
e. <br></div><div><br></div><blockquote class=3D"gmail_quote" style=3D"marg=
in:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1e=
x"><div lang=3D"EN-US"><div><p class=3D"MsoNormal"><span lang=3D"EN-GB"><u>=
</u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&quot;The nexthop<u></u><u></u>=
</span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0=C2=A0 adjacencies for a =
negative prefix are inherited from the longest<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0=C2=A0 prefix that aggreg=
ates it&quot; - suggest changing to &quot;longest positive prefix&quot;</sp=
an></p></div></div></blockquote><div><br></div><div>ok<br></div><div>=C2=A0=
</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;b=
order-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang=3D"EN-US"=
><div><p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&quot;all entries of the father=
&quot; -&gt; &quot;all entries of the parent&quot;</span></p></div></div></=
blockquote><div><br></div><div>ok <br></div><div>=C2=A0</div><blockquote cl=
ass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid=
 rgb(204,204,204);padding-left:1ex"><div lang=3D"EN-US"><div>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Section 5.2.7.3<u></u><u></u></=
span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&quot;we have to decide whether=
 node Y is at the same level as I, J or at<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0=C2=A0 the same level as =
Y and consequently, X is south of it.&quot;<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">I could not parse this.=C2=A0 I=
 think you might mean this:<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&quot;we have to decide whether=
 node Y is at the same level as I, J
<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0=C2=A0(and consequently X=
 is south of it) or at the same level as X.&quot;</span></p></div></div></b=
lockquote><div><br></div><div>yes, correct, somewhat it got garbled, correc=
ted to <br></div><div><br></div><div><pre style=3D"background-color:rgb(255=
,255,255);color:rgb(0,0,0);font-family:&quot;Menlo&quot;;font-size:8.3pt"><=
span style=3D"background-color:rgb(239,239,239)">&lt;</span><span style=3D"=
color:rgb(0,0,128);background-color:rgb(239,239,239);font-weight:bold">t</s=
pan><span style=3D"background-color:rgb(239,239,239)">&gt;</span>First, we =
must anchor the &quot;top&quot; of the cabling and that&#39;s what<br>    t=
he TOP_OF_FABRIC flag at node A is for. Then things look smooth until<br>  =
  we have to decide whether node Y is at the same level as I, J<br>    (and=
 as consequence, X is south of it) or at<br>    the same level as X. This i=
s<br>    unresolvable here until we<br>    &quot;nail down the bottom&quot;=
 of the topology. To achieve that we choose to<br>    use in this<br>    ex=
ample the leaf flags in X and Y. In case where Y would not have a leaf<br> =
   flag it will try to elect highest level offered and end up being<br>    =
in same level as I and J.<br>    <span style=3D"background-color:rgb(239,23=
9,239)">&lt;/</span><span style=3D"color:rgb(0,0,128);background-color:rgb(=
239,239,239);font-weight:bold">t</span><span style=3D"background-color:rgb(=
239,239,239)">&gt;</span></pre></div><div>=C2=A0</div><blockquote class=3D"=
gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(20=
4,204,204);padding-left:1ex"><div lang=3D"EN-US"><div><p class=3D"MsoNormal=
"><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Section 5.2.7.4<u></u><u></u></=
span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">How does a ToF node know what v=
alue to advertise in its LEVEL_VALUE?</span></p></div></div></blockquote><d=
iv><br></div><div>This constant is provided in appendix D.1 <br></div><div>=
<br></div><div>I&#39;m working on the other directorate reviews and will tr=
y to cut a new version with all those changes before deadline<br></div><div=
>=C2=A0</div></div></div>

--00000000000083468b05967adb47--


From nobody Sun Nov  3 22:11:07 2019
Return-Path: <tonysietf@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2D8CD12010D; Sun,  3 Nov 2019 22:11:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level: 
X-Spam-Status: No, score=-1.997 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id faiexuGNB0Wm; Sun,  3 Nov 2019 22:11:02 -0800 (PST)
Received: from mail-il1-x12c.google.com (mail-il1-x12c.google.com [IPv6:2607:f8b0:4864:20::12c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A90DC12006E; Sun,  3 Nov 2019 22:11:02 -0800 (PST)
Received: by mail-il1-x12c.google.com with SMTP id d83so13754156ilk.7; Sun, 03 Nov 2019 22:11:02 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=vKge5WN2m2UvViW3HBIJAA/xrFjEjhLv1mP5kgn5ceQ=; b=vdbG0at0YO9fs5VR/2gU7JUwTjGLbBlACkmyBzFNtKGVTWUgApYe7t7z7rYdTVCrja 9Ou+2XVvDcLgiWcH+QDFXzVzcX6gXx1ESjyDM79W2rCsyKTVcWcybpUKf0le/coE8Yre 40sbOOzaihNv6BRDmYPrSpyoHQhD5+INeSLOpp+a8K+jrs5a4tvanxovhppahLwS8nxT ZzSONjNm6UiD5uYY1fBrHUMcjkmmNWsc0Efyjz1bn1deFys+ITFxEXZSHGuZnR+YCtEg bPdUAe1R1VMF+FDthxZnua0gYRQbHU0FdrF/WVd+PDnGabqDwH7YryV6hZwhLufPuhMy ZNlA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=vKge5WN2m2UvViW3HBIJAA/xrFjEjhLv1mP5kgn5ceQ=; b=PW1ftyPG3SmRy/Tghh9QvvMHsPhAYOJ/MMh7YD2L/pFmTFA2prWIlbbX8vSMNrE0o5 meg9CEulzcHTmPHEbXWgPzxFnC4gkhWnP+F7Q8JuWfAygaLG42nqKkoJdDn1HAQqX3Ip e9oivVbx1SrSy+TI5hCwhFoMdlCNUKUuap0Uh/jw+oR5RRRTuAGahUDzVYvcshQOt93B UEf0pyrXY6eSEqKViLGmTmj8k6ljxc4xBOXTHWtVP849gENXWjKlBz1vz4NRT3WYl1WO AM8+RImQ/3cyj8ZdrffZwWsNSllcnyvTWTghTJ+PGxEu9Mkt5CDcOyvPcHJ/pzdrH7I4 S2xg==
X-Gm-Message-State: APjAAAUAxQRaDy/tEPIEG61smMsY8YJSAb1yZYniNE36h5ZwD9CKntUB ftKZGm0rfFNIpjF/8mMDZj0B2EPD+L5wAHTZbQE=
X-Google-Smtp-Source: APXvYqzj4VytX3EH4Tx2+nBjr1fQciG8pDGg8MmKEfKZJncx698fdaF5BofTMNdfAcG7ycrhUGqZa0HF6zhRDnccEmc=
X-Received: by 2002:a92:c504:: with SMTP id r4mr22981109ilg.132.1572847861913;  Sun, 03 Nov 2019 22:11:01 -0800 (PST)
MIME-Version: 1.0
References: <157257415137.30463.17526140657219162235@ietfa.amsl.com>
In-Reply-To: <157257415137.30463.17526140657219162235@ietfa.amsl.com>
From: Tony Przygienda <tonysietf@gmail.com>
Date: Sun, 3 Nov 2019 22:10:08 -0800
Message-ID: <CA+wi2hMHdA1mDVbxMsaa0hB4H93C5_+kBZTzhGfM2HEd4Bxj+w@mail.gmail.com>
To: Nagendra Kumar <naikumar@cisco.com>
Cc: ops-dir@ietf.org, draft-ietf-rift-rift.all@ietf.org, rift@ietf.org
Content-Type: multipart/alternative; boundary="000000000000185e7905967f2ef7"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/qpBLQizxlKq5zJuW4lKPPgCFaQI>
Subject: Re: [Rift] Opsdir early review of draft-ietf-rift-rift-08
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Nov 2019 06:11:06 -0000

--000000000000185e7905967f2ef7
Content-Type: text/plain; charset="UTF-8"

Nagendra, thanks so much for taking the time to go through the doc

inline

On Thu, Oct 31, 2019 at 7:09 PM Nagendra Kumar via Datatracker <
noreply@ietf.org> wrote:

> Reviewer: Nagendra Kumar
> Review result: Has Issues
>
> Hi,
>
> I have reviewed this document as part of the Operational directorate's
> ongoing
> effort to review all IETF documents being processed by the IESG.  These
> comments were written with the intent of improving the operational aspects
> of
> the IETF drafts per guidelines in RFC5706.
>
> Comments that are not addressed in last call may be included
> in AD reviews during the IESG review.  Document editors and WG chairs
> should
> treat these comments just like any other last call comments.
>
> Overall Summary:
>
> This draft is a standard track proposing a very new protocol and not an
> extension of any existing protocol. As such, there are no backward
> compatibility issues expected. Overall this is a well written document.
> Some
> ambiguity that needs attention are listed below. I chose "Has Issues"
> primarily
> to address the issue that may cause behavior inconsistency or traffic blakc
> holes. More details below:
>

yes, multiple thorough reviews came in, I'm incorporating comments and it
will need a document spin.


>
> --> LIE with TTL more than 1 is clearly defined to be discarded. I couldn't
> find a similar clarification when TIE is received with TTL more than 1?.
> If i
> didn't miss it, I think it is better to be clarified for consistent
> behavior.
>

version -09 already says

<t>The TIE exchange
    mechanism uses
    the port indicated by each node in the LIE
    exchange and the interface on which the adjacency has been
    formed as destination. It SHOULD use TTL of 1 as well and
    set inter-network control precedence on according packets.
    </t>



>
>
> 5.3.7.  Label Binding
>
>    A node MAY advertise on its TIEs a locally significant, downstream
>    assigned label for the according interface.  One use of such label is
>    a hop-by-hop encapsulation allowing to easily distinguish forwarding
>    planes served by a multiplicity of RIFT instances.
>
> --> Read this more than a couple of times and not sure if "for the
> accordingly
> interface" means assigning a locally unique label for each
> interface/adjacency
> or just one label for the node and advertise the same label over all
> adjacency.
>

aha, yes, not clear. good catch. per interface (downstream unsolicited).
will add. additionally, it says on its TIEs but it's the LIE that has
interface specific label.

labels are optional in the schema so we can easily add them later in all
kind of variations as well as extend node and link capabilities with
according indications.


>
> --> Since it is mentioned that the use of this label is for HbH
> encapsulation,
> a node at Level n should install (or ignore) the label from node at Level
> (n-1)
> in its Incoming Label Mapping (ILM) table?
>


>
> --> On the same line, a node at Level n should install (or ignore) the
> label
> from node at Level (n-2)?.
>
> --> I think some clarity is better to avoid traffic black holing due to
> inconsistent behavior.
>

well, spec says only

"

One use of such label is
a hop-by-hop encapsulation allowing to easily distinguish forwarding
planes served by a multiplicity of RIFT instances."

since there were discussions how to multi-instantiate RIFT with dataplane
(since control plane is so easy. to run multiple times, even over same
links).  If you suggest a good wording and reference here we can add it to
make the example ore specific. Observe that the use of the label is
non-normative. I would expect people to write drafts adding e.g. adjacency
capability something saying "binding label to ILM" and if the other side
doesn't support that not advertise the label (kind of like BGP
capabilities). Or they add their own optional schema element saying
"ILM-label" or something. Protocol will allow that fine as long it's
optional and has no default. We just bump the schema minor version up and
allocate new codepoint (i.e. thrift field number).


>
> 5.3.8.1.  Global Segment Identifiers Assignment
>
>    Global segment identifiers are normally assumed to be provided by
>    some kind of a centralized "controller" instance and distributed to
>    other entities.  This can be performed in RIFT by attaching a
>    controller to the Top-of-Fabric nodes at the top of the fabric where
>    the whole topology is always visible, assign such identifiers and
>    then distribute those via the KV mechanism towards all nodes so they
>    can perform things like probing the fabric for failures using a stack
>    of segments.
>
> --> According to RFC 8402, Global Segment is a generic term that refers to
> a
> segment from SR Global Block with instruction or forwarding semantic
> defined at
> the domain level. But it does not have a default instruction associated
> with
> it. I think the above should be more specific as Prefix SID or something
> related to RIFT.
>

we removed the detailed SR support into its own draft and now you mentioned
it I think that belongs there with all the other considerations, otherwise
we'll drag the whole SR right back into RIFT draft which runs counter most
comments that what we have is too long already. So, I'm removing the whole
SR section from the main spec and punting the text to the authros of
https://tools.ietf.org/html/draft-zzhang-rift-sr-01

The SR draft seems expired couple days ago, thought it was adopted
actually, not sure what the status is, up to the chairs.


>
> Few observations below:
>
> Clos/Fat Tree:  This document uses the terms Clos and Fat Tree
>       interchangeably whereas it always refers to a folded spine-and-
>       leaf topology with possibly multiple PoDs and one or multiple ToF
>
> --> ToF and PoD were not expanded in the first occurrence. ToF was
> explained
> later.
>

expanded acronym but the sequence is a circular dependency. Can't introduce
ToF until I have fabric but fabric hard to describe without mentioning
planes/tof/pods as well since otherwise it's not clear how those terms fold
in.


>
> --> While Southbound representation is explained in the terminology
> section,
> northbound representation is not. I think it is better to define the same
> for
> consistency.
>

done


>
> Multiple
>       adjacencies can be formed to a neighbor via parallel interfaces
>       but such adjacencies are NOT sharing a neighbor structure.  Saying
>       "neighbor" is thus equivalent to saying "a three way adjacency".
>
>
yes, it's very different from OSPF here.


> --> The above says "Multiple adjacencies can be formed to a neighbor.."
> where
> the "neighbor" here is implicitly defining the remote node and then the
> sentence further continues stating "Saying "neighbor" is thus equivalent to
> saying "a three way adjacency"".  May be the first "neighbor" can be
> changed to
> "remote node"?
>

done, very good improvement in language.


>
> mobility defined in Paragraph 17
>
> --> I assume that you are referring to REQ#17?. I think it is better to
> refer
> it as REQ#17. But I will leave that to the authors to decide.
>
>  The solution should allow for access to link states of the
>             whole topology to enable efficient support for modern
>             control architectures like SPRING [RFC7855] or PCE
>             [RFC4655].
>
> --> RFC 7855 is an information RFC that outlines the problem statement and
> use
> case. I think you should refer RFC 8402 here for the SR architecture.
>

Section for SR removed into the SR with rift draft.

requirements section removed completely based on other reviewers' comments.


>
> "Future
>    versions of this document may describe support for such tunneling in
>    RIFT."
>
> --> Section 5.3.3.4 talks about Overlay encapsulation and leave it a bit
> ambiguous with the above statement. I think, it should be removed.
>

Yes, Pascal's idea that we moved into the future. Sentence removed.


>
> already to HAT nodes with level different than the adjacent
>
> --> HAT was first expanded in page 66 while the abbreviation is used
> in/from
> Page 34.
>

best I could do was to clarify

8.  [

       i) the node is at level 0 and has no three way adjacencies
       already to Highest Adjacency Three-Way (HAT) nodes (defined in
       Section 4.2.7.1) with level different than the adjacent node OR


since we moved the whole ZTP detailed terminology from main terminology
section given it was overwhelming down into the ZTP section.


> In Section 5.2.3.2, I hope the first node is "ToF21 S-TIEs" instead of
> "Spine21
> S-TIEs"?. Similar references are throughout the example with Spine21 and
> Spine22.
>

yes, came up in another review, all Spine 21/22 corrected to ToF 21/22


>
> "scope of this document and may be covered in a separate document
>    about policy guided prefixes [PGP reference]."
>
> --> There is no PGP reference. This may need to be fixed or removed.
>

yes, it's a separate draft. To progress the document to standard we
actually have to remove all the references to drafts so I remove the
reference here.

thanks

--- tony

--000000000000185e7905967f2ef7
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div>Nagendra, thanks so much for taking =
the time to go through the doc</div><div><br></div><div>inline<br></div></d=
iv><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On =
Thu, Oct 31, 2019 at 7:09 PM Nagendra Kumar via Datatracker &lt;<a href=3D"=
mailto:noreply@ietf.org">noreply@ietf.org</a>&gt; wrote:<br></div><blockquo=
te class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px =
solid rgb(204,204,204);padding-left:1ex">Reviewer: Nagendra Kumar<br>
Review result: Has Issues<br>
<br>
Hi,<br>
<br>
I have reviewed this document as part of the Operational directorate&#39;s =
ongoing<br>
effort to review all IETF documents being processed by the IESG.=C2=A0 Thes=
e<br>
comments were written with the intent of improving the operational aspects =
of<br>
the IETF drafts per guidelines in RFC5706.<br>
<br>
Comments that are not addressed in last call may be included<br>
in AD reviews during the IESG review.=C2=A0 Document editors and WG chairs =
should<br>
treat these comments just like any other last call comments.<br>
<br>
Overall Summary:<br>
<br>
This draft is a standard track proposing a very new protocol and not an<br>
extension of any existing protocol. As such, there are no backward<br>
compatibility issues expected. Overall this is a well written document. Som=
e<br>
ambiguity that needs attention are listed below. I chose &quot;Has Issues&q=
uot; primarily<br>
to address the issue that may cause behavior inconsistency or traffic blakc=
<br>
holes. More details below:<br></blockquote><div><br></div><div>yes, multipl=
e thorough reviews came in, I&#39;m incorporating comments and it will need=
 a document spin. <br></div><div>=C2=A0</div><blockquote class=3D"gmail_quo=
te" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204=
);padding-left:1ex">
<br>
--&gt; LIE with TTL more than 1 is clearly defined to be discarded. I could=
n&#39;t<br>
find a similar clarification when TIE is received with TTL more than 1?. If=
 i<br>
didn&#39;t miss it, I think it is better to be clarified for consistent beh=
avior.<br></blockquote><div><br></div><div>version -09 already says <br></d=
iv><div><br></div><div><pre style=3D"background-color:rgb(255,255,255);colo=
r:rgb(0,0,0);font-family:&quot;Menlo&quot;;font-size:8.3pt"><span style=3D"=
background-color:rgb(239,239,239)">&lt;</span><span style=3D"color:rgb(0,0,=
128);background-color:rgb(239,239,239);font-weight:bold">t</span><span styl=
e=3D"background-color:rgb(239,239,239)">&gt;</span>The TIE exchange<br>    =
mechanism uses<br>    the port indicated by each node in the LIE<br>    exc=
hange and the interface on which the adjacency has been<br>    formed as de=
stination. It SHOULD use TTL of 1 as well and<br>    set inter-network cont=
rol precedence on according packets.<br>    <span style=3D"background-color=
:rgb(239,239,239)">&lt;/</span><span style=3D"color:rgb(0,0,128);background=
-color:rgb(239,239,239);font-weight:bold">t</span><span style=3D"background=
-color:rgb(239,239,239)">&gt;</span></pre></div></div><div class=3D"gmail_q=
uote"><br>=C2=A0<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0=
px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
5.3.7.=C2=A0 Label Binding<br>
<br>
=C2=A0 =C2=A0A node MAY advertise on its TIEs a locally significant, downst=
ream<br>
=C2=A0 =C2=A0assigned label for the according interface.=C2=A0 One use of s=
uch label is<br>
=C2=A0 =C2=A0a hop-by-hop encapsulation allowing to easily distinguish forw=
arding<br>
=C2=A0 =C2=A0planes served by a multiplicity of RIFT instances.<br>
<br>
--&gt; Read this more than a couple of times and not sure if &quot;for the =
accordingly<br>
interface&quot; means assigning a locally unique label for each interface/a=
djacency<br>
or just one label for the node and advertise the same label over all adjace=
ncy.<br></blockquote><div><br></div><div>aha, yes, not clear. good catch. p=
er interface (downstream unsolicited). will add. additionally, it says on i=
ts TIEs but it&#39;s the LIE that has interface specific label. <br></div><=
div><br></div><div>labels are optional in the schema so we can easily add t=
hem later in all kind of variations as well as extend node and link capabil=
ities with according indications. <br></div><div>=C2=A0</div><blockquote cl=
ass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid=
 rgb(204,204,204);padding-left:1ex">
<br>
--&gt; Since it is mentioned that the use of this label is for HbH encapsul=
ation,<br>
a node at Level n should install (or ignore) the label from node at Level (=
n-1)<br>
in its Incoming Label Mapping (ILM) table?<br></blockquote><div>=C2=A0</div=
><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border=
-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
--&gt; On the same line, a node at Level n should install (or ignore) the l=
abel<br>
from node at Level (n-2)?.<br>
<br>
--&gt; I think some clarity is better to avoid traffic black holing due to<=
br>
inconsistent behavior.<br></blockquote><div><br></div><div>well, spec says =
only <br></div><div><br></div><div>&quot;<br><pre style=3D"background-color=
:rgb(255,255,255);color:rgb(0,0,0);font-family:&quot;Menlo&quot;;font-size:=
8.3pt">One use of such label is<br>a hop-by-hop encapsulation allowing to e=
asily distinguish forwarding<br>planes served by a multiplicity of RIFT ins=
tances.&quot;<br><br></pre></div><div>since there were discussions how to m=
ulti-instantiate RIFT with dataplane (since control plane is so easy. to ru=
n multiple times, even over same links).=C2=A0 If you suggest a good wordin=
g and reference here we can add it to make the example ore specific. Observ=
e that the use of the label is non-normative. I would expect people to writ=
e drafts adding e.g. adjacency capability something saying &quot;binding la=
bel to ILM&quot; and if the other side doesn&#39;t support that not adverti=
se the label (kind of like BGP capabilities). Or they add their own optiona=
l schema element saying &quot;ILM-label&quot; or something. Protocol will a=
llow that fine as long it&#39;s optional and has no default. We just bump t=
he schema minor version up and allocate new codepoint (i.e. thrift field nu=
mber). <br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=
=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding=
-left:1ex">
<br>
5.3.8.1.=C2=A0 Global Segment Identifiers Assignment<br>
<br>
=C2=A0 =C2=A0Global segment identifiers are normally assumed to be provided=
 by<br>
=C2=A0 =C2=A0some kind of a centralized &quot;controller&quot; instance and=
 distributed to<br>
=C2=A0 =C2=A0other entities.=C2=A0 This can be performed in RIFT by attachi=
ng a<br>
=C2=A0 =C2=A0controller to the Top-of-Fabric nodes at the top of the fabric=
 where<br>
=C2=A0 =C2=A0the whole topology is always visible, assign such identifiers =
and<br>
=C2=A0 =C2=A0then distribute those via the KV mechanism towards all nodes s=
o they<br>
=C2=A0 =C2=A0can perform things like probing the fabric for failures using =
a stack<br>
=C2=A0 =C2=A0of segments.<br>
<br>
--&gt; According to RFC 8402, Global Segment is a generic term that refers =
to a<br>
segment from SR Global Block with instruction or forwarding semantic define=
d at<br>
the domain level. But it does not have a default instruction associated wit=
h<br>
it. I think the above should be more specific as Prefix SID or something<br=
>
related to RIFT.<br></blockquote><div><br></div><div>we removed the detaile=
d SR support into its own draft and now you mentioned it I think that belon=
gs there with all the other considerations, otherwise we&#39;ll drag the wh=
ole SR right back into RIFT draft which runs counter most comments that wha=
t we have is too long already. So, I&#39;m removing the whole SR section fr=
om the main spec and punting the text to the authros of <a href=3D"https://=
tools.ietf.org/html/draft-zzhang-rift-sr-01">https://tools.ietf.org/html/dr=
aft-zzhang-rift-sr-01</a></div><div><br></div><div>The SR draft seems expir=
ed couple days ago, thought it was adopted actually, not sure what the stat=
us is, up to the chairs. <br></div><div>=C2=A0</div><blockquote class=3D"gm=
ail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,=
204,204);padding-left:1ex">
<br>
Few observations below:<br>
<br>
Clos/Fat Tree:=C2=A0 This document uses the terms Clos and Fat Tree<br>
=C2=A0 =C2=A0 =C2=A0 interchangeably whereas it always refers to a folded s=
pine-and-<br>
=C2=A0 =C2=A0 =C2=A0 leaf topology with possibly multiple PoDs and one or m=
ultiple ToF<br>
<br>
--&gt; ToF and PoD were not expanded in the first occurrence. ToF was expla=
ined<br>
later.<br></blockquote><div><br></div><div>expanded acronym but the sequenc=
e is a circular dependency. Can&#39;t introduce ToF until I have fabric but=
 fabric hard to describe without mentioning planes/tof/pods as well since o=
therwise it&#39;s not clear how those terms fold in. <br></div><div>=C2=A0<=
/div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bo=
rder-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
--&gt; While Southbound representation is explained in the terminology sect=
ion,<br>
northbound representation is not. I think it is better to define the same f=
or<br>
consistency.<br></blockquote><div><br></div><div>done<br></div><div>=C2=A0<=
/div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bo=
rder-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Multiple<br>
=C2=A0 =C2=A0 =C2=A0 adjacencies can be formed to a neighbor via parallel i=
nterfaces<br>
=C2=A0 =C2=A0 =C2=A0 but such adjacencies are NOT sharing a neighbor struct=
ure.=C2=A0 Saying<br>
=C2=A0 =C2=A0 =C2=A0 &quot;neighbor&quot; is thus equivalent to saying &quo=
t;a three way adjacency&quot;.<br>
<br></blockquote><div><br></div><div>yes, it&#39;s very different from OSPF=
 here.=C2=A0 <br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" s=
tyle=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);pad=
ding-left:1ex">
--&gt; The above says &quot;Multiple adjacencies can be formed to a neighbo=
r..&quot; where<br>
the &quot;neighbor&quot; here is implicitly defining the remote node and th=
en the<br>
sentence further continues stating &quot;Saying &quot;neighbor&quot; is thu=
s equivalent to<br>
saying &quot;a three way adjacency&quot;&quot;.=C2=A0 May be the first &quo=
t;neighbor&quot; can be changed to<br>
&quot;remote node&quot;?<br></blockquote><div><br></div><div>done, very goo=
d improvement in language. <br></div><div>=C2=A0</div><blockquote class=3D"=
gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(20=
4,204,204);padding-left:1ex">
<br>
mobility defined in Paragraph 17<br>
<br>
--&gt; I assume that you are referring to REQ#17?. I think it is better to =
refer<br>
it as REQ#17. But I will leave that to the authors to decide.<br>
<br>
=C2=A0The solution should allow for access to link states of the<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 whole topology to enable efficien=
t support for modern<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 control architectures like SPRING=
 [RFC7855] or PCE<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [RFC4655].<br>
<br>
--&gt; RFC 7855 is an information RFC that outlines the problem statement a=
nd use<br>
case. I think you should refer RFC 8402 here for the SR architecture.<br></=
blockquote><div><br></div><div>Section for SR removed into the SR with rift=
 draft. <br></div><div><br></div><div>requirements section removed complete=
ly based on other reviewers&#39; comments. <br></div><div>=C2=A0</div><bloc=
kquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:=
1px solid rgb(204,204,204);padding-left:1ex">
<br>
&quot;Future<br>
=C2=A0 =C2=A0versions of this document may describe support for such tunnel=
ing in<br>
=C2=A0 =C2=A0RIFT.&quot;<br>
<br>
--&gt; Section 5.3.3.4 talks about Overlay encapsulation and leave it a bit=
<br>
ambiguous with the above statement. I think, it should be removed.<br></blo=
ckquote><div><br></div><div>Yes, Pascal&#39;s idea that we moved into the f=
uture. Sentence removed. <br></div><div>=C2=A0</div><blockquote class=3D"gm=
ail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,=
204,204);padding-left:1ex">
<br>
already to HAT nodes with level different than the adjacent<br>
<br>
--&gt; HAT was first expanded in page 66 while the abbreviation is used in/=
from<br>
Page 34.<br></blockquote><div><br></div><div>best I could do was to clarify=
 <br></div><div><pre style=3D"background-color:rgb(255,255,255);color:rgb(0=
,0,0);font-family:&quot;Menlo&quot;;font-size:8.3pt">8.  [<br><br>       i)=
 the node is at level 0 and has no three way adjacencies<br>       already =
to Highest Adjacency Three-Way (HAT) nodes (defined in<br>       Section 4.=
2.7.1) with level different than the adjacent node OR<br></pre></div><div>=
=C2=A0</div><div>since we moved the whole ZTP detailed terminology from mai=
n terminology section given it was overwhelming down into the ZTP section. =
<br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margi=
n:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex=
">In Section 5.2.3.2, I hope the first node is &quot;ToF21 S-TIEs&quot; ins=
tead of &quot;Spine21<br>
S-TIEs&quot;?. Similar references are throughout the example with Spine21 a=
nd<br>
Spine22.<br></blockquote><div><br></div><div>yes, came up in another review=
, all Spine 21/22 corrected to ToF 21/22<br></div><div>=C2=A0</div><blockqu=
ote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px=
 solid rgb(204,204,204);padding-left:1ex">
<br>
&quot;scope of this document and may be covered in a separate document<br>
=C2=A0 =C2=A0about policy guided prefixes [PGP reference].&quot;<br>
<br>
--&gt; There is no PGP reference. This may need to be fixed or removed.<br>=
</blockquote><div><br></div>yes, it&#39;s a separate draft. To progress the=
 document to standard we actually have to remove all the references to draf=
ts so I remove the reference here. <br></div><div class=3D"gmail_quote"><br=
></div><div class=3D"gmail_quote">thanks <br></div><div class=3D"gmail_quot=
e"><br></div><div class=3D"gmail_quote">--- tony <br></div></div>

--000000000000185e7905967f2ef7--


From nobody Mon Nov  4 04:40:23 2019
Return-Path: <Jonathan.Hardwick@metaswitch.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F1AD0120019; Mon,  4 Nov 2019 04:40:20 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=metaswitch.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CYJ2SDopRrFX; Mon,  4 Nov 2019 04:40:15 -0800 (PST)
Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-eopbgr820129.outbound.protection.outlook.com [40.107.82.129]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8E06112004C; Mon,  4 Nov 2019 04:40:15 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Y7btMDbR03mL/qRMwMP2MN+eIkf/nqiSvoe5itRE/USfX6kFMbuv8sGCSOsBQWIQFH2didu6EECKqIkZVvKuicHAs+eZAHIM5ubeuVf4v1y/ssi0F+azAU5bHcYdMDKLL+SAkieMqs/5tH9YQgBdL34ZFkx5WkOu8B++Roa+W+tWBOhcmknW6D7VwrW5fpxM6qZ2L4KS3562GoKTyiUyo9f3pT+ajNMm+Sp/2RiU5+URHCMbZKx9yUNwdHysW5XXB65xOSk7UWqzCcSC/OUGL8QzdxHewgMJW9ceP0QrHfqIV/ftdnpIfxm3xm1xqfpavf7ocYuQ6UENrX6kt+fgNg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;  s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WDFIREhbanSE+e9IVye/W4+CL7/E3pQ45U+bNQdzTXA=; b=QzE5ibdMSBHj+P311nJnWwmc6Uj5NJ3lmAGmAvZeodg+Q3WFR6jGIxXAftt+G4fWQdz7Y/qSiYf0eIh5Ll8fZOcagYJ2cIpxJ8zoBOQx8mDF4pLk/HgHmaAT47VSVucGO+SVAYY3Zh7CsYmnwE6HdVLyy6X49stGNlV5CvUFWQmQxZtOV1aFeQWhIBb3HMgnmtm3W98ePbwP7Rn/xnsR/3ZvIeCrzvTAH6nGLCm/RHbT9zv56wI1t7HngmfEg/0HNNIk8RVRPovV3oug2eDhjbP61pC7yFp8MufYk8MiLGnFnH1L2WvsGz/gHNCouKVsIyqM7/G7BLO5ZthOHUrHFQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=metaswitch.com; dmarc=pass action=none header.from=metaswitch.com; dkim=pass header.d=metaswitch.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=metaswitch.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WDFIREhbanSE+e9IVye/W4+CL7/E3pQ45U+bNQdzTXA=; b=Cxgji3LsbAYzMZqLaleWToVnRJbUfDbTUWKV9bL5azGNgzoU/5nGbzV3zs5iFifPApoyunu30BhxCOGd+z8rQCxrLmGqcdA13zt64KsbvEt+t/3KmUbb/NA9UyIAE0bztGFg4X9BbzU2Q+UKClsyUtVNnxCBeUmfds0sZzWukxA=
Received: from BL0PR02MB4868.namprd02.prod.outlook.com (20.177.144.87) by BL0PR02MB4354.namprd02.prod.outlook.com (10.167.172.219) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2408.24; Mon, 4 Nov 2019 12:40:13 +0000
Received: from BL0PR02MB4868.namprd02.prod.outlook.com ([fe80::d967:8fc7:e08c:410c]) by BL0PR02MB4868.namprd02.prod.outlook.com ([fe80::d967:8fc7:e08c:410c%5]) with mapi id 15.20.2408.024; Mon, 4 Nov 2019 12:40:13 +0000
From: Jonathan Hardwick <Jonathan.Hardwick@metaswitch.com>
To: Tony Przygienda <tonysietf@gmail.com>
CC: "rift-chairs@ietf.org" <rift-chairs@ietf.org>, "draft-ietf-rift-rift.all@ietf.org" <draft-ietf-rift-rift.all@ietf.org>, "rtg-dir@ietf.org" <rtg-dir@ietf.org>, =?utf-8?B?THVjIEFuZHLDqSBCdXJkZXQ=?= <laburdet.ietf@gmail.com>, Min Ye <amy.yemin@huawei.com>, "rift@ietf.org" <rift@ietf.org>
Thread-Topic: [Rift] Routing directorate early review of draft-ietf-rift-rift
Thread-Index: AdWQFFZ+nLkvsrpgQ+mvM9YJ2lkc7wClvH2AABTQPpA=
Date: Mon, 4 Nov 2019 12:40:12 +0000
Message-ID: <BL0PR02MB48684435784A92180AEE2F87847F0@BL0PR02MB4868.namprd02.prod.outlook.com>
References: <BL0PR02MB48689FA2D6B7C255DF11045D84630@BL0PR02MB4868.namprd02.prod.outlook.com> <CA+wi2hO=rZ2mbX3ZJVgn9cSvfbot29W+MNnunysPhPv+3Mxykw@mail.gmail.com>
In-Reply-To: <CA+wi2hO=rZ2mbX3ZJVgn9cSvfbot29W+MNnunysPhPv+3Mxykw@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ts-tracking-id: 4c09a58c-52b0-4530-a236-9190537f30a4.0
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Jonathan.Hardwick@metaswitch.com; 
x-originating-ip: [192.91.191.162]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 5c2a3a24-f984-4c92-60d6-08d76124231c
x-ms-traffictypediagnostic: BL0PR02MB4354:
x-ms-exchange-purlcount: 2
x-microsoft-antispam-prvs: <BL0PR02MB43540609AD9C043368E58D85847F0@BL0PR02MB4354.namprd02.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 0211965D06
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(4636009)(136003)(366004)(376002)(346002)(396003)(39850400004)(51444003)(54094003)(189003)(199004)(76176011)(71200400001)(71190400001)(6246003)(86362001)(55016002)(6436002)(102836004)(6506007)(53546011)(7696005)(229853002)(5660300002)(790700001)(52536014)(6116002)(3846002)(4326008)(30864003)(6306002)(446003)(11346002)(9686003)(186003)(14444005)(256004)(54896002)(486006)(236005)(476003)(66066001)(2906002)(8936002)(6916009)(74316002)(66946007)(478600001)(8676002)(81156014)(14454004)(81166006)(33656002)(54906003)(1411001)(316002)(26005)(7736002)(76116006)(966005)(64756008)(66446008)(66556008)(66476007)(99286004)(25786009)(606006)(60764002)(559001)(569006); DIR:OUT; SFP:1102; SCL:1; SRVR:BL0PR02MB4354; H:BL0PR02MB4868.namprd02.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: metaswitch.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 9r4TdrT8sA0k18zT2XMLlAFsHmV35TgDb6MXiqI77gM2WPj0DnRYQFZHDsigAP5cTmo9Rp4+QpT/eDI/7znnjYt9fDf+J45MVXiMMzFkLUk7lyFSdKhBpe0KCzk2cwxeLW54f+4N6OJKMug5o57K8EUfyj/a1QIqJ0ylHWdsh1Ya+eDU3/xPEPrBeaw7zwY0Nomm2ijEeKqlcJBlJEyRRPxv4uow7m1Eu5lWqURpapozdRwQlgNJtfD1E3VvgLf/SctW3JSJuteKEtcgp7L0a5RSz9tUJsw72420juDCXdmrXM8/p03QckG6nbbYPVS6id1mMr6Ip97AjDXMkZYhJSp38z8BWj+q9oOU33CK8R94Y3sw8NfWtDvJ9Cu8e7V4cLrSn7tm2PEJvGPMmIun2uP5BqrJnf3PDweWeSwMF70/wzh0J4sax9+tZhRwI0ZUF452iu6CyjJVrcnG7RDthSmmvRTe/V05UC3dEIjas2w=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_BL0PR02MB48684435784A92180AEE2F87847F0BL0PR02MB4868namp_"
MIME-Version: 1.0
X-OriginatorOrg: metaswitch.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5c2a3a24-f984-4c92-60d6-08d76124231c
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Nov 2019 12:40:13.0594 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 9d9e56eb-f613-4ddb-b27b-bfcdf14b2cdb
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: c9eI2GNU8k+JMULv+iYVU714ijxr+K8wSFebiqKnEASDWuivVXRXW/tsC8blsoSTxk4aP07QoxiJConImjczhQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR02MB4354
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/WVGd3tzSSugfw_8mcXZlT-8eB8k>
Subject: Re: [Rift] Routing directorate early review of draft-ietf-rift-rift
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Nov 2019 12:40:21 -0000

--_000_BL0PR02MB48684435784A92180AEE2F87847F0BL0PR02MB4868namp_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

VG9ueSwgbWFueSB0aGFua3MgZm9yIHlvdXIgcmVwbHkg4oCTIHBsZWFzZSBzZWUgW0pFSF0gYmVs
b3cuDQpKb24NCg0KRnJvbTogVG9ueSBQcnp5Z2llbmRhIDx0b255c2lldGZAZ21haWwuY29tPg0K
U2VudDogMDQgTm92ZW1iZXIgMjAxOSAwMTowMQ0KVG86IEpvbmF0aGFuIEhhcmR3aWNrIDxKb25h
dGhhbi5IYXJkd2lja0BtZXRhc3dpdGNoLmNvbT4NCkNjOiByaWZ0LXdnLWNoYWlyc0BpZXRmLm9y
ZzsgZHJhZnQtaWV0Zi1yaWZ0LXJpZnQuYWxsQGlldGYub3JnOyBydGctZGlyQGlldGYub3JnOyBM
dWMgQW5kcsOpIEJ1cmRldCA8bGFidXJkZXQuaWV0ZkBnbWFpbC5jb20+OyBNaW4gWWUgPGFteS55
ZW1pbkBodWF3ZWkuY29tPjsgcmlmdEBpZXRmLm9yZw0KU3ViamVjdDogUmU6IFtSaWZ0XSBSb3V0
aW5nIGRpcmVjdG9yYXRlIGVhcmx5IHJldmlldyBvZiBkcmFmdC1pZXRmLXJpZnQtcmlmdA0KDQpO
T1RFOiBNZXNzYWdlIGlzIGZyb20gYW4gZXh0ZXJuYWwgc2VuZGVyDQpKb25hdGhhbiwgdGhhbmtz
IGZvciB5b3VyIHJldmlldywgcmVzcG9uc2VzIGlubGluZQ0KDQpPbiBUaHUsIE9jdCAzMSwgMjAx
OSBhdCAxMTowMSBBTSBKb25hdGhhbiBIYXJkd2ljayA8Sm9uYXRoYW4uSGFyZHdpY2s9NDBtZXRh
c3dpdGNoLmNvbUBkbWFyYy5pZXRmLm9yZzxtYWlsdG86NDBtZXRhc3dpdGNoLmNvbUBkbWFyYy5p
ZXRmLm9yZz4+IHdyb3RlOg0KSGVsbG8NCg0KSSBoYXZlIGJlZW4gc2VsZWN0ZWQgdG8gZG8gYSBS
b3V0aW5nIERpcmVjdG9yYXRlIOKAnGVhcmx5IHJldmlld+KAnSBvZiB0aGlzIGRyYWZ0Og0KaHR0
cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvZHJhZnQtaWV0Zi1yaWZ0LXJpZnQvPGh0dHBz
Oi8vbmFtMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUy
RiUyRmRhdGF0cmFja2VyLmlldGYub3JnJTJGZG9jJTJGZHJhZnQtaWV0Zi1yaWZ0LXJpZnQlMkYm
ZGF0YT0wMiU3QzAxJTdDSm9uYXRoYW4uSGFyZHdpY2slNDBtZXRhc3dpdGNoLmNvbSU3QzZhOWJm
MTE5Yzc1NTQ2NDIzZTE1MDhkNzYwYzI5MDZmJTdDOWQ5ZTU2ZWJmNjEzNGRkYmIyN2JiZmNkZjE0
YjJjZGIlN0MxJTdDMSU3QzYzNzA4NDI2MTA4MDg2MzkxMiZzZGF0YT1mZWt1RyUyQlV4dVNzazBJ
OVUyYyUyQjJMbjk3Qm9KdnBQQ05TRWo3OHVUSll6USUzRCZyZXNlcnZlZD0wPg0KDQpUaGUgcm91
dGluZyBkaXJlY3RvcmF0ZSB3aWxsLCBvbiByZXF1ZXN0IGZyb20gdGhlIHdvcmtpbmcgZ3JvdXAg
Y2hhaXIsIHBlcmZvcm0gYW4g4oCcZWFybHnigJ0gcmV2aWV3IG9mIGEgZHJhZnQgYmVmb3JlIGl0
IGlzIHN1Ym1pdHRlZCBmb3IgcHVibGljYXRpb24gdG8gdGhlIElFU0cuIFRoZSBlYXJseSByZXZp
ZXcgY2FuIGJlIHBlcmZvcm1lZCBhdCBhbnkgdGltZSBkdXJpbmcgdGhlIGRyYWZ04oCZcyBsaWZl
dGltZSBhcyBhIHdvcmtpbmcgZ3JvdXAgZG9jdW1lbnQuIFRoZSBwdXJwb3NlIG9mIHRoZSBlYXJs
eSByZXZpZXcgZGVwZW5kcyBvbiB0aGUgc3RhZ2UgdGhhdCB0aGUgZG9jdW1lbnQgaGFzIHJlYWNo
ZWQuICBBcyB0aGlzIGRvY3VtZW50IGhhcyBhZHZhbmNlZCB0byB3b3JraW5nIGdyb3VwIGxhc3Qg
Y2FsbCwgbXkgZm9jdXMgZm9yIHRoZSByZXZpZXcgd2FzIHRvIGRldGVybWluZSB3aGV0aGVyIHRo
ZSBkb2N1bWVudCBpcyByZWFkeSB0byBiZSBwdWJsaXNoZWQuIFBsZWFzZSBjb25zaWRlciBteSBj
b21tZW50cyBhbG9uZyB3aXRoIHRoZSBvdGhlciB3b3JraW5nIGdyb3VwIGxhc3QgY2FsbCBjb21t
ZW50cy4NCg0KRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIFJvdXRpbmcgRGlyZWN0b3Jh
dGUsIHBsZWFzZSBzZWUgaHR0cDovL3RyYWMudG9vbHMuaWV0Zi5vcmcvYXJlYS9ydGcvdHJhYy93
aWtpL1J0Z0RpcjxodHRwczovL25hbTAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29t
Lz91cmw9aHR0cCUzQSUyRiUyRnRyYWMudG9vbHMuaWV0Zi5vcmclMkZhcmVhJTJGcnRnJTJGdHJh
YyUyRndpa2klMkZSdGdEaXImZGF0YT0wMiU3QzAxJTdDSm9uYXRoYW4uSGFyZHdpY2slNDBtZXRh
c3dpdGNoLmNvbSU3QzZhOWJmMTE5Yzc1NTQ2NDIzZTE1MDhkNzYwYzI5MDZmJTdDOWQ5ZTU2ZWJm
NjEzNGRkYmIyN2JiZmNkZjE0YjJjZGIlN0MxJTdDMSU3QzYzNzA4NDI2MTA4MDg3MzkwNSZzZGF0
YT0lMkJTRXJJRWdoZjhJQ1VzV0VmZm9zJTJGMGFzUTdXbkthbTJMbkplaUxTbXhYNCUzRCZyZXNl
cnZlZD0wPg0KDQpEb2N1bWVudDogZHJhZnQtaWV0Zi1yaWZ0LXJpZnQNClJldmlld2VyOiBKb24g
SGFyZHdpY2sNClJldmlldyBEYXRlOiAzMSBPY3QgMjAxOQ0KSW50ZW5kZWQgU3RhdHVzOiBTdGFu
ZGFyZHMgVHJhY2sNCg0KU3VtbWFyeQ0KVGhhbmtzIGZvciB3cml0aW5nIHRoaXMgZG9jdW1lbnQu
ICBJdCBpcyBhIHZlcnkgaW50ZXJlc3RpbmcgYXBwcm9hY2ggYW5kIEkgcmVhbGx5IGVuam95ZWQg
Z2V0dGluZyB0byBncmlwcyB3aXRoIHRoZSBpZGVhcyBwcmVzZW50ZWQgaW4gdGhlIGRyYWZ0IQ0K
DQp0aGFua3MsIHF1aXRlIGEgbG90IG9mIHdvcmsNCg0KVW5mb3J0dW5hdGVseSwgSSBoYXZlIHNv
bWUgY29uY2VybnMgYWJvdXQgdGhlIGRvY3VtZW50IGFuZCB0aGluayBpdCBuZWVkcyBtb3JlIHdv
cmsgYmVmb3JlIGJlaW5nIHN1Ym1pdHRlZCB0byB0aGUgSUVTRy4gIFRoZSBwcm9ibGVtIGlzIHRo
YXQgSSBmb3VuZCB0aGUgZG9jdW1lbnQgaGFyZCB0byByZWFkLCBmb3Igc2V2ZXJhbCByZWFzb25z
Lg0KDQogICogICBJdCBpcyB2ZXJ5IGxpZ2h0IGluIGl0cyB1c2Ugb2Ygbm9ybWF0aXZlIFJGQy0y
MTE5IHN0eWxlIGxhbmd1YWdlLiAgQW4gaW1wbGVtZW50ZXIgd291bGQgaGF2ZSB0byBmaWxsIGlu
IHF1aXRlIGEgZmV3IGdhcHMgYW5kL29yIG1ha2UgYXNzdW1wdGlvbnMgYWJvdXQgdmFyaW91cyBw
YXNzYWdlcy4NCkkgd2lsbCBhZGRyZXNzIGluIHNwZWNpZmljcyB0aGUgc2VjdGlvbnMgeW91IHJh
aXNlZCBpbmxpbmUuDQoNCk90aGVyd2lzZSwgaW4gbWV0YSB0ZXJtcywgYXMgdG8gdGhlIHF1ZXN0
aW9uIG9mICJpcyB0aGlzIHNwZWNpZmljYXRpb24gYmVpbmcgcHJlY2lzZSBlbm91Z2g/IiBJIGNh
biBxdW90ZSBvbmx5IHdoYXQgSSB3cm90ZSB0byBSb2JlcnQgU3BhcmtzIGFscmVhZHk6DQoNCiJ3
ZSBoYXZlIHR3byBpbnRlcm9wZXJhYmxlIGltcGxlbWVudGF0aW9ucyBzaW5jZSBhIGJpdCwgb25l
IGNvbXBsZXRlbHkgb3BlbiBzb3VyY2Ugd2hpY2ggaGFzIGJlZW4gcHJvZHVjZWQgYmFzZWQgb24g
dGhlIHNwZWMuIEl0IHdhcyBpbiBmYWN0IG9wZW4gc291cmNlIHdvcmsgdGhhdCBoZWxwZWQgdG8g
cmVmaW5lIHRoZSBkb2N1bWVudCBjb250ZW50IHRvIG1ha2Ugc3VyZSB3ZSBjYW4gaGF2ZSBhbiBp
bXBsZW1lbnRhdGlvbiBwcm9kdWNlZCBiYXNlZCBvbiB0aGUgdGV4dCB3aXRob3V0IGZ1cnRoZXIg
Imd1ZXNzaW5nIHRoaW5ncyIuIEFzIGV4YW1wbGUgdGhlIExJRSBGU00gaGFzIGJlZW4gaW1wbGVt
ZW50ZWQgaW5pdGlhbGx5IGluIG9wZW4gc291cmNlIHdpdGhvdXQgY29uc3VsdGluZyBhdXRob3Jz
IG9mIHRoZSBzcGVjIGFuZCBpbnRlcm9wZXJhdCdlZCB3aXRob3V0IGEgc2luZ2xlIGRlZmVjdCAo
YnV0IGRpc2NvdmVyZWQgYSBwcm90b2NvbCB1bmRlcnNwZWNpZmljYXRpb24gaW4gY2FzZSBvZiBt
aXNjb25maWd1cmF0aW9uIHRoYXQgd2FzIHN1YnNlcXVlbnRseSBhZGRlZCkuIFBsZWFzZSByZWZl
ciB0byBJRVRGIHByb2NlZWRpbmdzIGZvciB0aGUgYWNjb3JkaW5nIHByZXNlbnRhdGlvbnMgaWYg
bmVjZXNzYXJ5LiBXZSBoYXZlIGEgdGhpcmQgaW1wbGVtZW5hdGlvbiBwcm9ncmVzc2luZyBub3cg
d2hlcmUgYWxsIHF1ZXN0aW9ucyB0aGUgaW1wbGVtZW50b3IgYXNrZWQgc28gZmFyIGNvdWxkIGJl
IGFuc3dlcmVkIGJ5IHBvaW50aW5nIGRpcmVjdGx5IEAgIHRoZSBzcGVjaWZpY2F0aW9uIGFzIHdy
aXR0ZW4uIFRoaXMgc2VlbXMgdG8gYW5zd2VyIHRvIG1lIHRoZSAic3VzcGljaW9uIG9mIHNwZWNp
ZmljYXRpb24gbWF5YmUgbm90IGJlaW5nIGdvb2QgZW5vdWdoIHRvIGltcGxlbWVudCIgYXMgYW4g
b2JqZWN0aXZlIG1lYXN1cmluZyBzdGljayBhcyBmYXIgSSBjYW4gaW1hZ2luZSBvbmUuDQoiDQoN
CldlIGFyZSBpbiBJRVRGIGhlcmUgd2hlcmUgInJvdWdoIGNvbnNlbnVzIGFuZCBydW5uaW5nIGNv
ZGUiIHdhcyB0aGUgcmVjZWlwZSBvZiBzdWNjZXNzIHZzLiBtdWNoIGhlYXZpZXIgaGFuZGVkIG9y
Z2FuaXphdGlvbnMgbGlrZSBPU0kgYW5kIEkgdGhpbmsgaW4gdGhpcyBwaGlsb3NvcGh5IHRoZSBz
cGVjLCBpZiBhbnl0aGluZywgaXMgcG9zc2libHkgb3ZlcnNwZWNpZmllZCBhbHJlYWR5IDstKSBU
aGUgY29yZSBwaWVjZXMgdGhhdCBiYXJlIG5vIHNsaXBzIGxpa2UgZmxvb2RpbmcgYW5kIGFkamFj
ZW5jeSBmb3JtYXRpb24gYXJlIHZlcnkgcHJlY2lzZWx5IHdyaXR0ZW4gaW5jbHVkaW5nIEZTTXMu
DQoNCltKRUhdIFN1cmUuICBNeSBjb21tZW50cyB3ZXJlIGludGVuZGVkIHRvIGhlbHAgaW1wcm92
ZSB0aGUgdXNlIG9mIG5vcm1hdGl2ZSBsYW5ndWFnZSBhbmQgdGhlIGRlbGluZWF0aW9uIGJldHdl
ZW4gbm9ybWF0aXZlIHBhc3NhZ2VzIGFuZCBpbmZvcm1hdGl2ZSBvbmVzLg0KDQoNCg0KICAqDQog
ICogICBUaGUgZGVmaW5pdGlvbiBvZiB0aGUgcHJvdG9jb2wgYW5kIHNvbWUgb2YgdGhlIG5vcm1h
dGl2ZSBiZWhhdmlvdXIgaXMgZGVmZXJyZWQgdG8gdGhlIGFwcGVuZGljZXMsIHdoZXJlYXMgSSB3
b3VsZCBleHBlY3QgdG8gZW5jb3VudGVyIGl0IGVhcmx5IG9uIGluIHRoZSB0ZXh0LCB3aXRoIGFu
IGluLWxpbmUgZGlzY3Vzc2lvbiBvZiB0aGUgcHVycG9zZXMgb2YgdGhlIG1lc3NhZ2VzIGFuZCBm
aWVsZHMuDQoNCk9rLCBzZWVtcyBsaWtlIHRoZSBzZWNvbmQgZGlyZWN0b3JhdGUgcmV2aWV3ZXJz
IHByZWZlcnMgdGhlIGFwcGVuZGljZXMgdG8gYmUgcHVsbGVkIGludG8gdGhlIGRvY3VtZW50LiBM
ZXQgbWUgZG8gdGhhdCB0aGVubA0KDQpbSkVIXSBNeSBhcG9sb2dpZXMg4oCTIGl0IGlzIHVuZm9y
dHVuYXRlIHdoZW4gdHdvIGRpZmZlcmVudCByZXZpZXdlcnMgZ2l2ZSBjb250cmFkaWN0b3J5IG9w
aW5pb25zISAgWW91IHNob3VsZCBvZiBjb3Vyc2Ugd2VpZ2ggbXkgb3BpbmlvbiB3aXRoIGV2ZXJ5
b25lIGVsc2XigJlzLg0KDQoNCiAgKg0KICAqICAgSXQgc29tZXRpbWVzIHJlZmVycyB0byBjb25j
ZXB0cyBvciB0ZXJtcyB0aGF0IGFyZSBlaXRoZXIgbm90IGRlZmluZWQgb3IgaGF2ZSBub3QgeWV0
IGJlZW4gaW50cm9kdWNlZCB0byB0aGUgcmVhZGVyLCBzdWdnZXN0aW5nIGFuIG9yZGVyaW5nIGlz
c3VlIHdpdGhpbiB0aGUgdGV4dC4NCg0KSSB0aGluayB0aGF0IHRoZSBkb2N1bWVudCBuZWVkcyB0
byBiZSByZWZhY3RvcmVkIHNvbWV3aGF0IHRvIHNvbHZlIHRoZSBvcmRlcmluZyBpc3N1ZXMsIHVz
ZSBtb3JlIG5vcm1hdGl2ZSBsYW5ndWFnZSwgZWxpbWluYXRlIGFueSB0ZXh0IHRoYXQgaXMgbm90
IGFjdHVhbGx5IHJlbGV2YW50IHRvIHRoZSBpbXBsZW1lbnRhdGlvbiBhbmQgZGVwbG95bWVudCBv
ZiB0aGUgcHJvdG9jb2wsIGFuZCBwdWxsIHRvZ2V0aGVyIHRoZSBub3JtYXRpdmUgZGVmaW5pdGlv
biBvZiB0aGUgcHJvdG9jb2wgaW50byBhIGNvbnRpZ3VvdXMgYmxvY2sgZWFybHkgb24gaW4gdGhl
IGRvY3VtZW50Lg0KDQpmdXJ0aGVyIGlubGluZQ0KDQoNClRoZSBvdGhlciBpc3N1ZSBpcyB0aGF0
LCBiZWNhdXNlIHRoZSBkb2N1bWVudCBpcyBsYXJnZSBhbmQgSSBmb3VuZCBpdCByYXRoZXIgaGFy
ZCBnb2luZywgSSBkaWQgbm90IGhhdmUgdGltZSBkbyBhIHRob3JvdWdoIHJldmlldyBiZXlvbmQg
c2VjdGlvbiA1LjMuICBJ4oCZZCB0aGVyZWZvcmUgaGF2ZSB0byByZWNvbW1lbmQgYW5vdGhlciBk
aXJlY3RvcmF0ZSByZXZpZXcgb25jZSB3ZSBoYXZlIGNvbmNsdWRlZCBvbiB0aGUgaXNzdWVzIEni
gJltIHJhaXNpbmcgYmVsb3cuDQoNCm9rLCBvYnZpb3VzbHkgYXMgbXVjaCBpcyB3cml0dGVuIGFz
IHdlIGV4cGVjdCBpcyBuZWNlc3NhcnkgdG8gImNsZWFybHkiIHNwZWMgb3V0IHRoZSBwcm90b2Nv
bC4gVGhlIGRvY3VtZW50IGlzIG1vcmUgdGhhbiBzaW1wbHkgYSBkcnkgcHJlc2NyaXB0aXZlIG5v
cm1hdGl2ZSB0aG91Z2ggc2luY2UgdmVyeSBlYXJseSBpbiB0aGUgd29ya2dyb3VwIHNlc3Npb25z
IHRoZSBpbnB1dCBvZiBtYW55IHBlb3BsZSB3YXMgdGhhdCB0aGV5IHdvdWxkIHByZWZlciBpcyBz
b21lIG1vcmUgIm5hcnJhdGl2ZSIgZXhwbGFuYXRpb24gb2YgIndoYXQiIGFuZCAid2h5IiBpcyBp
bnNlcnRlZCBpbnN0ZWFkIG9mIHB1cmVseSB0aGUgYWxnb3JpdGhtcy4gV2UgdHJpZWQgdG8gZmlu
ZCBhIGJhbGFuY2UgYnV0IG9idmlvdXNseSBvcGluaW9ucyB3aWxsIGFsd2F5cyB2YXJ5IGJldHdl
ZW4gInRoaXMgaXMgdG9vIGNoYXR0eSBhbmQgc2hvdWxkIGJlIGp1c3QgYSBkcnkgbm9ybWF0aXZl
IiBhbmQgInRoaXMgZG9lcyBub3QgZXhwbGFpbiBXSFkgdGhhdCB3b3VsZCB3b3JrIGFuZCBXSFkg
aXQgaGFzIGJlZW4gZGVzaWduZWQgdGhhdCB3YXkiLi4gQmFzZWQgb24gUm9iZXJ0IFNwYXJrcyBy
ZXZpZXcgSSB3aWxsIHRyeSB0byBzaW1wbGlmeSB0aGUgbGFuZ3VhZ2UgYW5kIGN1dCBvdXQgc29t
ZSBzdXBlcmZsdW91cyB0ZXh0IGhlIHBvaW50ZWQgb3V0IG9yIEkgZmluZC4gV2UnbGwgc2VlIHdo
ZXJlIHdlIGVuZC4NCg0KW0pFSF0gVGhhbmtzLiAgQXMgaXQgaGFwcGVucyBJIHByZWZlciBkb2N1
bWVudHMgdG8gaGF2ZSBpbmZvcm1hdGl2ZSBwYXNzYWdlcyB0byBoZWxwIG1lIHVuZGVyc3RhbmQg
dGhlIG5vcm1hdGl2ZSBvbmVzLCBwcm92aWRlZCB0aGV5IGdpdmUgbWUgZW5vdWdoIGNvbnRleHQg
dG8gdW5kZXJzdGFuZCB0aGVtIGFuZCB0aGV5IGFyZSBzdWZmaWNpZW50bHkgcmVsZXZhbnQuICBN
eSBjb21tZW50cyB3ZXJlIHRhcmdldGVkIHRvIGhlbHAgaW1wcm92ZSB0aGUgY29udGV4dCAmIHJl
bGV2YW5jZS4gIEkgc3VnZ2VzdCBhIHN1YnNlcXVlbnQgUnRnRGlyIHJldmlldyBvbmx5IGJlY2F1
c2UgSSB3YXMgbm90IGFibGUgdG8gYXBwbHkgYXMgbXVjaCBkaWxpZ2VuY2UgdG8gdGhlIGxhdGVy
IHNlY3Rpb25zIG9mIHRoZSBkb2N1bWVudCBhcyBJIHdvdWxkIGhhdmUgbGlrZWQuICBJIHdpbGwg
bGVhdmUgaXQgdG8gdGhlIFdHIGlmIHRoZXkgd2FudCB0byBhY3Rpb24gdGhpcy4NCg0KDQpEZXRh
aWxzDQpIZXJlIGFyZSBjb21tZW50cyBvbiB0aGUgc2VjdGlvbnMgdGhhdCBJIHdhcyBhYmxlIHRv
IHJldmlldyBpbiBkZXRhaWwgYmVmb3JlIEkgcmFuIG91dCBvZiB0aW1lLg0KDQpBYnN0cmFjdA0K
SXMgaXQgcG9zc2libGUgdG8gcmVmb3JtYXQgdGhpcyBhcyBhIGxpc3Qgb2YgaXRlbXMgb24gbXVs
dGlwbGUgbGluZXM/IEl0IHdvdWxkIHJlYWQgbW9yZSBjbGVhcmx5Lg0KDQp5ZXMNCg0KDQpTZWN0
aW9uIDINCiJhbiBvcHRpbWFsIGFwcHJvYWNoIGRvZXMgbm90IHNlZW0gaG93ZXZlciI6IHRoaXMg
YXBwZWFycyB0byBiZSBhIHZhbHVlIGp1ZGdtZW50IHJhdGhlciB0aGFuIGNvbnNlbnN1cyBvcGlu
aW9uLCBhcHBlYXJpbmcgYXMgaXQgZG9lcyB3aXRob3V0IGNpdGF0aW9uLCBhbmQgbWF5IGJlIHBl
cmNlaXZlZCBhcyB0cmVhZGluZyBvbiB0aGUgdG9lcyBvZiBvdGhlciBzdGFuZGFyZGl6YXRpb24g
ZWZmb3J0cyBjdXJyZW50bHkgaW4gcHJvZ3Jlc3MgYXQgdGhlIElFVEYuIEkgc3VnZ2VzdCB5b3Ug
c2ltcGx5IHN0YXRlIHRoZSBmYWN0czogIlJJRlQgYXBwcm9hY2hlcyB0aGlzIHByb2JsZW0gdXNp
bmcgYSBtaXh0dXJlIG9mLi4uIg0KDQpkb25lLCBzdXJlLg0KDQoNClNlY3Rpb24gMi4xDQpUaGUg
Zm9ybSBvZiB3b3JkcyBpbiB0aGUgUmVxdWlyZW1lbnRzIExhbmd1YWdlIGJvaWxlcnBsYXRlIGhh
cyBjaGFuZ2VkIHJlY2VudGx5IC0gc2VlIFJGQyA4MTc0Lg0KDQp0aGFua3MsIGNvcnJlY3RlZA0K
DQoNClNlY3Rpb24gMy4xDQpaVFAgLSBleHBhbmQgYWNyb255bSBvbiBmaXJzdCB1c2UuDQoNCnll
cywgWlRQIGFkZGVkLiBnbG9zc2FyeSB3aWxsIGJlIHJlYS1hcnJhbmdlZCBiYXNlZCBvbiBvdGhl
ciByZXZpZXdlcnMgaW5wdXQuDQoNClRoZXJlIGlzIHBvdGVudGlhbCBmb3IgY29uZnVzaW9uIGJl
dHdlZW4gTi1USUUgYW5kIE5vZGUgVElFISBJJ2QgcHJlZmVyICJOb3J0aCBUSUUiIGZvciB0aGUg
Zm9ybWVyLg0KQW4gZXhhbXBsZSBvZiBjb25mdXNpb246IGlzIHRoZSAiU291dGggTm9kZSBUSUUi
IHJlZmVycmVkIHRvIGluIHRoZSBkZWZpbml0aW9uIG9mICJTb3V0aCBSZWZsZWN0aW9uIiB0aGUg
c2FtZSBhcyB0aGUgUy1USUUgcmVmZXJyZWQgdG8gaW4gdGhlIGRlZmluaXRpb24gb2YgIlRJRSI/
DQoiVGhlIGRvY3VtZW50IHNvbWV0aW1lcyBjYWxscyB0aGVtIGZsb29kIGxlYWRlcnMgYXMgd2Vs
bC4iIEJ1dCBpdCB3b3VsZCBiZSBiZXR0ZXIgaWYgeW91IGp1c3QgdXNlZCBvbmUgdGVybS4NCg0K
T0ssIEkgZXhwYW5kIE4tIGFuZCBTLSB0byBOb3J0aC0gYW5kIFNvdXRoLSBldmVyeXdoZXJlIGlu
IHRoZSBkb2N1bWVudA0KDQoNClNlY3Rpb24gNA0KUGVyc29uYWxseSBJIGNvdWxkIGxpdmUgd2l0
aG91dCB0aGlzIHNlY3Rpb24NCk1lcmdlIFBFTkQxIHdpdGggTk9OUkVReCAob3IgZXhwbGFpbiB0
aGUgZGlzdGluY3Rpb24pDQoNCnRoYW5rcywgdGhlcmUgd2VyZSBtdWx0aXBsZSBkaXNjdXNzaW9u
cyBwcm8vY29ucyBvbiBtaWtlL2xpc3QgYWJvdXQgdGhpcyBzZWN0aW9uIGFuZCBzdWdnZXN0aW9u
cyBhbG9uZyB0aGUgbGluZXMgdG8gc3BsaXQgaXQgb3V0IGludG8gYSBkaWZmZXJlbnQgZG9jdW1l
bnQgKGJ1dCBzdGFuZGFyZGl6aW5nIHJlcXVpcmVtZW50IGRyYWZ0cyB3ZW50IG91dCBvZiBmYXNo
aW9uIHJlY2VudGx5IDstKSBvciBkcm9wIGl0LiBJJ20gZHJvcHBpbmcgaXQgYmFzZWQgb24geW91
ciBpbnB1dCBhbmQgb3RoZXJzIGRlc2lyaW5nIHRvIHNob3J0ZW4gdGhlIGRvY3VtZW50Lg0KDQoN
ClNlY3Rpb24gNS4xLjMgLSA1LjEuNQ0KVGhpcyBkaXNjdXNzaW9uIGlzIG5vdCBwb3NzaWJsZSB0
byBmb2xsb3cgcHJvcGVybHkgdW50aWwgeW91IGhhdmUgYmVlbiBpbnRyb2R1Y2VkIHRvIHBvc2l0
aXZlICYgbmVnYXRpdmUgZGlzYWdncmVnYXRpb24gYW5kIHNvdXRoZXJuIHJlZmxlY3Rpb24uICBB
cyBzdWNoIEkgd29uZGVyIGlmIGl0IHJlYWxseSBiZWxvbmdzIGluIGEgc2VjdGlvbiBjYWxsZWQg
Im92ZXJ2aWV3Ii4NCg0KSm9uYXRoYW4sIHdlbGwsIHNlY3Rpb24gNS4xLjMgImZhbGxlbiBsZWFm
IiAoNCBub3cgZ2l2ZW4gcmVxdWlyZW1lbnRzIGlzIHJlbW92ZWQpIF9pc18gdGhlIG92ZXJ2aWV3
IHNlY3Rpb24uIFNvdXRoZXJuIHJlZmxlY3Rpb24gaXMgZGVmaW5lZCBpbiB0aGUgZ2xvc3Nhcnkg
YWxyZWFkeSBhbmQgdGhlICJuZWdhdGl2ZSBkaXNhZ2dyZWdhdGlvbiIgaXMgYSBtZWNoYW5pc20g
aW50cm9kdWNlZCB0byBhZGRyZXNzIHRoZSAiZmFsbGVuIGxlYWYgcHJvYmxlbSIgbGF0ZXIgYW5k
IG9idmlvdXNseSB0aGUgcHJvYmxlbSBpdHNlbGYgaGFzIHRvIGJlIGV4cGxhaW5lZCAmIGludHJv
ZHVjZWQgZmlyc3QuIE5lZ2F0aXZlIGRpc2FnZ3JlZ2F0aW9uIGlzIGFyZ3VhYmx5IChiZXNpZGUg
Zmxvb2Rpbmcgc2NvcGVzKSB0aGUgbW9zdCBjb21wbGV4IHBhcnQgb2YgdGhlIHNwZWMgYW5kIHdl
IHNwZW50IGxvdHMgb2YgdGltZSBhbmQgZWZmb3J0IChlc3BlY2lhbGx5IFBhc2NhbCkgd2l0aCBt
dWx0aXBsZSByZXdyaXRlcyB0byBnaXZlIHRoZSBuYXJyYXRpdmUgZGVzY3JpYmluZyB0aGUgQ0xP
UyBpbmhlcmVudCBwcm9ibGVtLiBNb3Jlb3ZlciB3ZSBkaWRuJ3Qgd2FudCB0byBtaXggaXQgdXAg
d2l0aCBSSUZUIHNwZWNpZmljIG1lY2hhbmlzbSBzaW5jZSB0aGUgImZhbGxlbiBsZWFmIjogcHJv
YmxlbSBleGlzdHMgaW4gbXVsdGktcGxhbmUgQ0xPUyBpbmRlcGVuZGVudCBvZiBhbnkgcHJvdG9j
b2wgYW5kIEJUVywgSSBuZXZlciBzYXcgaXQgZXhwbGFpbmVkIGFzIGNsZWFybHkgYXMgUGFzY2Fs
IGRpZCBpbiB0aGUgbXVsdGktcGxhbmUgaW50cm9kdWN0aW9uIHNlY3Rpb24uIEFsc28sIHdlIGNs
ZWFybHkgc3RhdGUgaW4gdGhlIHNlY3Rpb24gdGhhdCBpZiBzb21lb25lIGJ1aWxkcyBhIHNpbmds
ZSBwbGFuZSBDTE9TIHRoZSBzZWN0aW9uIGNhbiBiZSBkaXNyZWdhcmRlZCB0byBzaW1wbGlmeSB0
aGUgcmVhZGluZyBvZiB0aGUgc3BlYyBmb3IgbWFueSBwZW9wbGUuDQoNCltKRUhdIFRoYW5rcy4g
Rmlyc3RseSwgUGFzY2FsIGlzIHRvIGJlIGNvbmdyYXR1bGF0ZWQgb24gdGhlIHRleHQgZGVzY3Jp
YmluZyBtdWx0aS1wbGFuZSB0b3BvbG9naWVzLiBJIGhhZCBubyBwcm9ibGVtIGdldHRpbmcgdG8g
Z3JpcHMgd2l0aCB0aGVtIHdpdGggdGhlIGhlbHAgb2YgaGlzIHRleHQgYW5kIHNvbWUgTGVnbyBt
b2RlbHMgdGhhdCBpdCBpbnNwaXJlZCBtZSB0byBidWlsZCA6LSkgIEkgaGF2ZSByZS1yZWFkIHRo
ZXNlIHNlY3Rpb25zIGp1c3Qgbm93IGFuZCBJIGRvIG5vdyBmaW5kIHRoZW0gZWFzaWVyIHRvIGZv
bGxvdyDigJMgaGF2aW5nIGFscmVhZHkgcmVhZCB0aGUgcmVsZXZhbnQgcGFydHMgb2YgdGhlIGxh
dGVyIHNwZWMuICBPbiB0aGUgZmlyc3QgcmVhZC10aHJvdWdoIEkgdGhpbmsgSSB3YXMgdHJvdWJs
ZWQgYnkgdG9vIG1hbnkgcXVlc3Rpb25zOiBXaGF0IGRvIHRoZXkgbWVhbiBieSDigJxwb3NpdGl2
ZeKAnSBhbmQg4oCcbmVnYXRpdmXigJ0gaW4gdGhlIGNvbnRleHQgb2YgZGlzYWdncmVnYXRpb24/
ICBXaGF0IGRvIHRoZXkgbWVhbiBieSDigJx0cmFuc2l0aXZl4oCdPyAgSSBoYXZlIGJlZW4gdG9s
ZCB3aGF0IHNvdXRoZXJuIHJlZmxlY3Rpb24gaXMsIGJ1dCB3aGF0IHJlbGV2YW50IGluZm9ybWF0
aW9uIGRvZXMgaXQgcHJvdmlkZSBhbmQgaG93IGlzIGl0IHVzZWZ1bD8gIEluIGhpbmRzaWdodCB0
aGVzZSB3ZXJlIGFsbCBndWVzc2FibGUgYnV0IEkgZm91bmQgdGhlc2UgY29uY2VwdHMgYSBiYXJy
aWVyIHRvIG15IHVuZGVyc3RhbmRpbmcuICBJZiB5b3UgaGF2ZSB0aGUgc3RvbWFjaCBmb3IgYW5v
dGhlciBpdGVyYXRpb24gb2YgdGhlc2Ugc2VjdGlvbnMsIEkgd291bGQgcmVxdWVzdCBzb21lIGFk
ZGl0aW9uYWwgZXhwbGFuYXRpb24gdG8gYmUgaW5jbHVkZWQuDQoNCg0KDQpTZWN0aW9uIDUuMi4y
DQoNCiAgIEEgbm9kZSBjb25maWd1cmVkIHdpdGggInVuZGVmaW5lZCIgUG9EIG1lbWJlcnNoaXAg
TVVTVCwgYWZ0ZXINCiAgIGJ1aWxkaW5nIGZpcnN0IG5vcnRoYm91bmQgdGhyZWUgd2F5IGFkamFj
ZW5jaWVzIHRvIGEgbm9kZSBiZWluZyBpbiBhDQogICBkZWZpbmVkIFBvRCwgYWR2ZXJ0aXNlIHRo
YXQgUG9EIGFzIHBhcnQgb2YgaXRzIExJRXMuICBJbiBjYXNlIHRoYXQNCiAgIGFkamFjZW5jeSBp
cyBsb3N0LCBmcm9tIGFsbCBhdmFpbGFibGUgbm9ydGhib3VuZCB0aHJlZSB3YXkNCiAgIGFkamFj
ZW5jaWVzIHRoZSBub2RlIHdpdGggdGhlIGhpZ2hlc3QgU3lzdGVtIElEIGFuZCBkZWZpbmVkIFBv
RCBpcw0KICAgY2hvc2VuLg0KDQpJdCBzZWVtcyBvZGQgdGhhdCB0aGUgY2hvaWNlIG9mIGFkdmVy
dGlzZWQgcG9kIGlzIGF0IGZpcnN0IG5vbi1kZXRlcm1pbmlzdGljIChyYWNlIHRvIHRoZSBmaXJz
dCBhZGphY2VuY3kpIGFuZCB0aGVuLCBvbmx5IGlmIHRoaXMgaW5pdGlhbCBhZGphY2VuY3kgaXMg
bG9zdCwgdGhlIGNob2ljZSBvZiBwb2QgYmVjb21lcyBkZXRlcm1pbmlzdGljLiBXaHkgbm90IG1h
a2UgaXQgZGV0ZXJtaW5pc3RpYyB0aGUgd2hvbGUgdGltZT8NCg0KVGhlIGZpcnN0IGFkamFjZW5j
eSBpcyBzaW1wbHkgdXNlZCB0byBzcGVlZCB1cCB0aGluZ3Mgc2luY2Ugb3RoZXJ3aXNlIGhvdyBs
b25nIGRvIHlvdSB3YWl0IHVudGlsIHlvdSBoYXZlIGFsbCBub3J0aGJvdW5kIGFkamFjZW5jaWVz
PyAgT2JzZXJ2ZSB0aGF0IGxldmVsIFpUUCB3aWxsIHBvc3NpYmx5IGRyb3AgYWRqYWNlbmNpZXMg
d2hpbGUgaXQncyBjb252ZXJnaW5nIHNvIHRoZSBjb25zZXF1ZW50IHNldCB3aWxsIHJlZmluZSB0
aGUgUG9EIGFzIHdlbGwsIGkuZS4gdGhlIFpUUCBpcyBndWFyYW50ZWVkIHRvIGdldCB0aGUgbm9k
ZSB0byB0aGUgbWF4aW11bSBhdmFpbGFibGUgbGV2ZWwgQCB3aGljaCBwb2ludCBpbiB0aW1lIHRo
ZSBub3J0aGJvdW5kIGF2YWlsYWJsZSBhZGphY2VuY2llcyB3aWxsIGRldGVybWluZSB0aGUgUG9E
LiBPYnZpb3VseSB0aGUgYWRqYWNlbmNpZXMgY2FuIGRpc2FncmVlIGFib3V0IHRoZSBQb0QgYW5k
IHN1Y2ggYSBzY2VuYXJpbyBjYW4gYmUgdXNlZCBieSBhbiBpbXBsZW1lbnRhdGlvbiB0byByZXBv
cnQgbWlzY2FibGluZ3MuIFdlIHRhbGsgcXVpY2tseSBhYm91dCBtaXNjYWJsaW5nIGRldGVjdGlv
biBpbiB0aGUgc3BlYyBzaW5jZSBpdCdzIHN1Y2ggYSBkZXNpcmFibGUgcHJvcGVydHkgX29mIGFu
IGltcGxlbWVudGFpdG9uXyBidXQgaXQncyBub3QgbmVjZXNzYXJ5IGZvciBjb3JyZWN0IHByb3Rv
Y29sIG9wZXJhdGlvbiBzbyB3ZSBkb24ndCBtYWtlIGFueXRoaW5nIG5vcm1hdGl2ZSBleGNlcHQg
ZGlzYWxsb3dpbmcgYWRqYWNlbmN5IGZvcm1pbmcgYWNyb3NzIFBvRHMgaWYgZGVmaW5lZC4gU2lu
Y2UgY29uZmlndXJ0aW5nIGFuZCBjb252ZXJnaW5nIFBvRHMgaXMgb3B0aW9uYWwgd2UgYWxsb3cg
ZXZlbiB0byBkaXNyZWdhcmQgdGhpcyBydWxlIG9uIGFkamFjZW5jeSBmb3JtYXRpb24uDQoNCltK
RUhdIFRoYW5rcyDigJMgbWFrZXMgc2Vuc2UuIEkgaGFkIG1pc3NlZCB0aGF0IFpUUCBjYW4gZHJv
cCBhZGphY2VuY2llcyB3aGVuIEkgd3JvdGUgdGhpcyBjb21tZW50Lg0KDQoNClNlY3Rpb24gNS4y
LjMuMg0KDQpJbiB0aGUgZXhhbXBsZSBUSUVzLCAiU3BpbmUyMSIgc2hvdWxkIGJlICJUb0YgMjEi
IHRvIGFncmVlIHdpdGggdGhlIG5vbWVuY2xhdHVyZSBvZiBmaWd1cmUgMi4gIERpdHRvIGluIHRh
YmxlIDQgKHNlY3Rpb24gNS4yLjMuNCkNCkluIFNwaW5lIDExMSdzIE5vZGUtUy1USUUsIEkgYW0g
bm90IHN1cmUgdGhhdCB0aGUgbGlua3MoLi4uKSBzaG91bGQgYmUgZ2l2ZW4gZm9yIGVhY2ggbmVp
Z2hib3IuDQoNCmNvcnJlY3RlZCB0aGUgVG9GIDIxLzIyIGV2ZXJ5d2hlcmUuICBZZXMsIG9uIGNh
cmVmdWwgcmVhZGluZyBvbmUgd29uZGVycyBXSFkgbm9kZSBzb3V0aCB0aWUgc2hvdWxkIGluY2x1
ZGUgX2FsbF8gbGlua3MuIFRoaXMgaXMgbmVjZXNzYXJ5IGZvciBib3RoIGZsb29kIHJlZHVjdGlv
biBhcyB3ZWxsIGFzIGJhbmR3aWR0aCBiYWxhbmNpbmcgc2luY2UgYm90aCBoYXBwZW4gZnJvbSBz
b3V0aCBnb2luZyB1cCBhbmQgdGhlIG5vZGUgY29tcHV0aW5nIG5lZWRzIHRoZSBub3J0aGJvdW5k
IG5laWdoYm9ycyBvZiB0aGUgbGV2ZWwgdXAuIFRoYXQncyBvbmUgb2YgdGhlIHJlYXNvbnMgdGhl
IGV4YW1wbGUgaXMgZ2l2bmUuIEknbGwgYWRkIGEgY2xhcmlmeWluZyBzZW50ZW5jZS4NCg0KW0pF
SF0gVGhhbmtzLiBEb2VzIHRoYXQgbWVhbiB0aGUgbGlua3Mo4oCmKSBzaG91bGQgYmUgYWRkZWQg
dG8gU3BpbmUxMjHigJlzIE5vZGUgUy1USUUgaW4gdGhlIHNhbWUgZXhhbXBsZT8NCg0KU2VjdGlv
biA1LjIuMy41DQoiSXQgc2hvdWxkIG9ubHkgc2V0IGl0IGluIHRoZSBzb3V0aGJvdW5kIGRpcmVj
dGlvbi4iICAtIFNIT1VMRD8NCg0KY29ycmVjdGVkDQoNCg0KU2VjdGlvbiA1LjIuMy44DQpEZWZp
bmUgTi1TUEYgb24gZmlyc3QgdXNlDQoNCk9LLCBOLVNQRiBhbmQgUy1TUEYgYWRkZWQgdG8gZ2xv
c3NhcnkuDQoNCg0KU2VjdGlvbiA1LjIuNA0KIkEgbm9kZSBoYXMgdGhyZWUgc291cmNlcyIgLSBJ
IHNlZSBvbmx5IHR3byBsaXN0ZWQuDQoiV2UgdXNlIHNpbXBsZSwgZmFtaWxpYXIgU1BGIGFsZ29y
aXRobXMgaGVyZS4uLiIgLSBpcyB0aGUgdXNlIG9mIHRob3NlIGFsZ29yaXRobXMgc3VwcG9zZWQg
dG8gYmUgbm9ybWF0aXZlPyBPciBhcmUgeW91IGp1c3QgZ2l2aW5nIGFuIGV4YW1wbGUgYW5kIGxl
YXZpbmcgbWUgdG8gY2hvb3NlIG15IG93biBhbGdvcml0aG0/ICBJZiBTUEYgaXMgbm9ybWF0aXZl
IHRoZW4geW91IG5lZWQgdG8gc3BlY2lmeSBpdCB1c2luZyBub3JtYXRpdmUgbGFuZ3VhZ2Ugb3Ig
aW5jbHVkZSBhIG5vcm1hdGl2ZSByZWZlcmVuY2UgdG8gaXQuDQoNCkkgdHJpZWQgdG8gY2xhcmlm
eSB0aGF0IGJldHRlciBpbiB0aGUgZXhpc3RpbmcgdGV4dCBieSBleHBhbmRpbmcgdG8NCg0KDQo8
dD5BIG5vZGUgaGFzIHRocmVlIHBvc3NpYmxlIHNvdXJjZXMgb2YgcmVsZXZhbnQgaW5mb3JtYXRp
b24gZm9yIHJlYWNoYWJpbGl0eSBjb21wdXRhdGlvbi4NCiAgICBBIG5vZGUga25vd3MNCiAgICB0
aGUgZnVsbCB0b3BvbG9neSBzb3V0aCBvZiBpdCBmcm9tIHRoZSByZWNlaXZlZCBOb3J0aCBOb2Rl
IFRJRXMgb3IgYWx0ZXJuYXRlbHkNCiAgICBub3J0aCBvZiBpdCBmcm9tIHRoZSBTb3V0aCBOb2Rl
IFRJRXMuLiAgQSBub2RlIGhhcyB0aGUNCiAgICBzZXQgb2YgcHJlZml4ZXMgd2l0aCB0aGVpciBh
c3NvY2lhdGVkIGRpc3RhbmNlcyBhbmQgYmFuZHdpZHRocyBmcm9tDQogICAgY29ycmVzcG9uZGlu
ZyBwcmVmaXggVElFcy48L3Q+DQoNCjx0PlRvIGNvbXB1dGUgcHJlZml4IHJlYWNoYWJpbGl0eSwg
YSBub2RlIHJ1bnMgY29uY2VwdHVhbGx5IGEgbm9ydGhib3VuZA0KICAgIGFuZCBhIHNvdXRoYm91
bmQNCiAgICBTUEYuDQogICAgV2UgY2FsbCB0aGF0IE4tU1BGIGFuZCBTLVNQRiBkZW5vdGluZyB0
aGUgZGlyZWN0aW9uIGluIHdoaWNoIHRoZSBjb21wdXRhdGlvbg0KICAgIGZyb250IGlzIHByb2dy
ZXNzaW5nLg0KPC90Pg0KDQo8dD5TaW5jZSBuZWl0aGVyIGNvbXB1dGF0aW9uIGNhbiAibG9vcCIs
IGl0IGlzDQogICAgcG9zc2libGUgdG8gY29tcHV0ZSBub24tZXF1YWwtY29zdCBvciBldmVuDQog
ICAgPHhyZWYgdGFyZ2V0PSJFUFBTVEVJTiI+ay1zaG9ydGVzdCBwYXRoczwveHJlZj4NCiAgICBh
bmQgInNhdHVyYXRlIiB0aGUgZmFicmljDQogICAgdG8gdGhlIGV4dGVudCBkZXNpcmVkIGJ1dCB3
ZSB1c2Ugc2ltcGxlLCBmYW1pbGlhciBTUEYgYWxnb3JpdGhtcyBhbmQNCiAgICBjb25jZXB0cyBo
ZXJlIGFzIGV4YW1wbGUgZHVlIHRvIHRoZWlyIHByZXZhbGVuY2UgaW4gdG9kYXkncyByb3V0aW5n
Lg0KPC90Pg0KDQpTbyB0aGUgYWxnb3JpdGhtcyBnaXZlbiBhcmUgTk9UIG5vcm1hdGl2ZSBidXQg
SSBpbXByb3ZlZCB3aGF0IF9pc18gbm9ybWF0aXZlIGluIHRoZSBOLVNQRiBhbmQgUy1TUEYgc2Vj
dGlvbg0KDQo8c2VjdGlvbiBhbmNob3I9Im5zcGYiIHRpdGxlPSJOb3J0aGJvdW5kIFNQRiI+DQoN
CiAgICA8dD4gTi1TUEYgTVVTVCB1c2UgT05MWSBub3J0aGJvdW5kIGFuZCBFYXN0LVdlc3QgYWRq
YWNlbmNpZXMgaW4gdGhlIGNvbXB1dGluZw0KICAgICAgICBub2RlJ3Mgbm9kZSBOb3J0aCBUSUVz
IChzaW5jZSBpZiB0aGUgbm9kZSBpcyBhIGxlYWYgaXQgbWF5IG5vdCBoYXZlDQogICAgICAgIGdl
bmVyYXRlZCBhIG5vZGUgU291dGggVElFKQ0KICAgICAgICB3aGVuIHN0YXJ0aW5nIFNQRi4gLi4u
DQoNCjx0Pk9uY2UgcHJvZ3Jlc3NpbmcsIHdlIGFyZSB1c2luZyB0aGUgbmV4dCBoaWdoZXIgbGV2
ZWwncyBub2RlIFNvdXRoIFRJRXMgdG8NCiAgICBmaW5kIGFjY29yZGluZyBhZGphY2VuY2llcyB0
byB2ZXJpZnkgYmFja2xpbmsgY29ubmVjdGl2aXR5Lg0KICAgIEp1c3QgYXMgaW4gY2FzZSBvZiBJ
Uy1JUyBvciBPU1BGLCB0d28gdW5pZGlyZWN0aW9uYWwgbGlua3MgTVVTVCBiZQ0KICAgIGFzc29j
aWF0ZWQNCiAgICB0b2dldGhlciB0byBjb25maXJtIGJpZGlyZWN0aW9uYWwgY29ubmVjdGl2aXR5
LiAuLi4NCg0KPHNlY3Rpb24gYW5jaG9yPSJzc3BmIiB0aXRsZT0iU291dGhib3VuZCBTUEYiPg0K
DQogICAgPHQ+IFMtU1BGIE1VU1QgdXNlIE9OTFkgdGhlDQogICAgICAgIHNvdXRoYm91bmQgYWRq
YWNlbmNpZXMgaW4gdGhlIG5vZGUgU291dGggVElFcywNCiAgICAgICAgaS5lLiBwcm9ncmVzc2Vz
IHRvd2FyZHMgbm9kZXMgYXQgbG93ZXIgbGV2ZWxzLiBPYnNlcnZlIHRoYXQNCiAgICAgICAgRS1X
IGFkamFjZW5jaWVzIGFyZSBORVZFUiB1c2VkIGluIHRoZSBjb21wdXRhdGlvbi4gVGhpcyBlbmZv
cmNlcyB0aGUNCiAgICAgICAgcmVxdWlyZW1lbnQgdGhhdCBhIHBhY2tldCB0cmF2ZXJzaW5nIGlu
IGEgc291dGhib3VuZCBkaXJlY3Rpb24gbXVzdA0KICAgICAgICBuZXZlciBjaGFuZ2UgaXRzIGRp
cmVjdGlvbi48L3Q+DQogICAgPHQ+Uy1TUEYgTVVTVCB1c2Ugbm9ydGhib3VuZCBhZGphY2VuY2ll
cyBpbiBub2RlIE5vcnRoIFRJRXMgdG8gdmVyaWZ5IGJhY2tsaW5rDQogICAgICAgIGNvbm5lY3Rp
dml0eSBieSBjaGVja2luZyBmb3IgcHJlc2VuY2Ugb2YgdGhlIGxpbmsgYmVzaWRlIGNvcnJlY3Qg
U3lzdGVtSUQgYW5kDQogICAgICAgIGxldmVsLiA8L3Q+DQoNCg0KVGhpcyBpcyBhYm91dCBhbGwg
dGhhdCBuZWVkcyB0byBiZSBzYWlkIGhlcmUgaW4gdGVybXMgb2Ygbm9ybWF0aXZlIGxhbmd1YWdl
IGJlc2lkZSB0aGUgb25lIGFscmVhZHkgcHJlc2VudC4NCg0KW0pFSF0gT0ssIHRoYW5rcy4NClNl
Y3Rpb24gNS4yLjQuMQ0KUGxlYXNlIGRlZmluZSB0aGUgdGVybXMgInNvdXRoIHByZWZpeCIgYW5k
ICJub3J0aCBwcmVmaXgiDQoiU3VwZXJzdW1pbmciIGlzIG5vdCBhIHdvcmQgSSByZWNvZ25pc2Uu
ICBVc2UgIm9yIGEgbm9uLWRlZmF1bHQgcHJlZml4IHdoaWNoIGNvbnRhaW5zIHRoaXMgc291dGgg
cHJlZml4Ig0KInRoZSBub2RlIGRvZXMgbm90Li4uIiAtPiAidGhlIGNvbXB1dGluZyBub2RlIGRv
ZXMgbm90Li4uIg0KDQpTZWN0aW9uIDUuMi40LjINCiJTLVNQRiB1c2VzIG5vcnRoYm91bmQgYWRq
YWNlbmNpZXMgaW4gbm9kZSBOLVRJRXMgdG8gdmVyaWZ5IGJhY2tsaW5rIGNvbm5lY3Rpdml0eSIg
LSB0aGlzIHN0YXRlbWVudCBuZWVkcyB0byBiZSByZWNhc3QgaW50byBub3JtYXRpdmUgbGFuZ3Vh
Z2UgdXNpbmcgUkZDIDIxMTkgdGVybXMuICAiQSBub2RlIE1VU1QgdmVyaWZ5IGJhY2tsaW5rIGNv
bm5lY3Rpdml0eSAuLi4gRWxzZSBpdCBNVVNUIE5PVCBpbmNsdWRlIHRoZSBsaW5rLi4uLiBFdGMu
Ig0KU2FtZSBjb21tZW50IGFwcGxpZXMgaW4gbWFueSBwbGFjZXMgdGhyb3VnaG91dCB0aGUgZG9j
dW1lbnQuDQoNCnJlLXJlYWQgYW5kIGFwcGxpZWQgbW9yZSBub3JtYXRpdmUgbGFuZ3VhZ2UgdG8g
dGhlIHNwZWNpZmljIHNlY3Rpb24gYXMgaW5kaWNhdGVkIGFib3ZlLiAgUmUtcmVhZCB0aGUgZG9j
dW1lbnQgYW5kIG5vcm1hbGl6ZWQgbW9yZSBsYW5ndWFndGUgd2hlcmUgbmVjZXNzYXJ5Lg0KDQoN
ClNlY3Rpb24gNS4yLjQuMw0KV2hhdCBpcyBhIGAicmluZyBwcm90ZWN0aW9uIiBzY2hlbWVgPw0K
DQpSaW5nIGJhc2VkIHByb3RlY3Rpb24gc2NoZW1lIGp1c3QgbGlrZSBCTFNSLiBJIHJlcGxhY2Ug
d2l0aCAicmluZy1iYXNlZCBwcm90ZWN0aW9uIiB3aGljaCBpcyBmYWlybHkgd2VsbCB1bmRlcnN0
b29kIHRlcm0gaW4gbmV0d29ya2luZy4NCg0KUmVtb3ZlZCB0aGUgcmluZyBiYXNlZCBwcm90ZWN0
aW9uIG9mIGEgbGV2ZWwgdG8gYXBwbGljYWJpbGl0eSBkcmFmdCB3aGljaCBtdWx0aXBsZSBhdXRo
b3JzIHdvcmsgb24gYW5kIHdoZXJlIGl0IHNlZW1zIHRvIGJlbG9uZyByYXRoZXIgdGhhbiBpbiB0
aGUgc3BlYy4gTGVmdCBvbmx5IGNsYXJpZmljYXRpb24NCg0KDQo8dD5Vc2luZyBzb3V0aCBwcmVm
aXhlcyBvdmVyIGhvcml6b250YWwgbGlua3MgTUFZIG9jY3VyDQogaWYgdGhlIE4tU1BGIGlzIEVh
c3QtV2VzdCBhZGphY2VuY2llcyBpbiBjb21wdXRhdGlvbi4NCiAgICBJdCBjYW4NCiAgICBwcm90
ZWN0IGFnYWluc3QgcGF0aG9sb2dpY2FsIGZhYnJpYyBwYXJ0aXRpb25pbmcgY2FzZXMgdGhhdA0K
ICAgIGxlYXZlIG9ubHkgcGF0aHMgdG8gZGVzdGluYXRpb25zIHRoYXQgd291bGQgbmVjZXNzaXRh
dGUgbXVsdGlwbGUNCiAgICBjaGFuZ2VzIG9mIGZvcndhcmRpbmcgZGlyZWN0aW9uIGJldHdlZW4g
bm9ydGggYW5kIHNvdXRoLg0KICAgIDwvdD4NCg0KW0pFSF0gU3VnZ2VzdCB5b3UgY2hhbmdlIOKA
nGlmIHRoZSBOLVNQRiBpcyBFYXN0LVdlc3QgYWRqYWNlbmNpZXPigJ0gdG8g4oCcaWYgdGhlIE4t
U1BGIGluY2x1ZGVzIEVhc3QtV2VzdCBhZGphY2VuY2llc+KAnQ0KQXJlIEUtVyBsaW5rcyBwZXJt
aXR0ZWQgYmV0d2VlbiBwbGFuZXM/DQpOb3Qgc3VyZSB3aGF0IHRoaXMgaXMgdGVsbGluZyBtZTog
IlVzaW5nIHNvdXRoIHByZWZpeGVzIG92ZXIgaG9yaXpvbnRhbCBsaW5rcyBpcyBvcHRpb25hbC4u
LiIgLSBpcyB0aGF0IE9QVElPTkFMIGFzIGluIFJGQyAyMTE5PyAgRG8geW91IG1lYW4gdGhhdCBt
eSBpbXBsZW1lbnRhdGlvbiBjYW4gaWdub3JlIHRoZW0/IE9yIG5vdCBhZHZlcnRpc2UgdGhlbT8g
T3IgdGhhdCB0aGUgbmV0d29yayBvcGVyYXRvciBkb2VzIG5vdCBoYXZlIHRvIGNhYmxlIHRoZW0/
DQoNCkNsYXJpZmllZCBhcyBwZXIgc2VjdGlvbiBhYm92ZS4gSWYgdGhlIE4tU1BGIGlzIHVzaW5n
IGhvcml6b250YWwgYWRqYWNlbmNpZXMgaXQgd2lsbCBwaWNrIHVwIHRob3NlIHByZWZpeGVzLg0K
DQpbSkVIXSBMb29rcyBPSy4NCg0KU2VjdGlvbiA1LjIuNC40DQoiRXZlbiB0aG91Z2ggYSBUb0Yg
bm9kZSBjb3VsZA0KICAgYmUgdGVtcHRlZCB0byB1c2UgdGhvc2UgbGlua3MgZHVyaW5nIHNvdXRo
Ym91bmQgU1BGIHRoaXMgTVVTVCBOT1QgYmUNCiAgIGF0dGVtcHRlZCBzaW5jZSBpdCBtYXkgbGVh
ZCBpbiwgZS5nLiBhbnljYXN0IGNhc2VzIHRvIHJvdXRpbmcgbG9vcHMuIg0KDQpUaGlzIGlzIHRv
byB2ZXJib3NlIGFuZCBvYnR1c2UuICBJIGNhbm5vdCBzZWUgaG93IGFueWNhc3QgY2FzZXMgbGVh
ZCB0byByb3V0aW5nIGxvb3BzIGFuZCBJIGRvbid0IGtub3cgaWYgSSBuZWVkIHRvIHVuZGVyc3Rh
bmQgd2h5IG9yIG5vdC4gIFN1Z2dlc3QNCg0KDQoiQSBUb0Ygbm9kZSBNVVNUIE5PVCBpbmNsdWRl
IGVhc3Qtd2VzdCBsaW5rcyBpbiBpdHMgc291dGgtU1BGIGNhbGN1bGF0aW9uLiINCg0KVGhpcyBp
cyBhbHJlYWR5IHNhaWQgaW4gdGhlIFMtU1BGIHNlY3Rpb24gdmVyeSBleHBsaWNpdGx5IGFzDQoN
Cg0KPHQ+IFMtU1BGIE1VU1QgdXNlIE9OTFkgdGhlDQogICAgc291dGhib3VuZCBhZGphY2VuY2ll
cyBpbiB0aGUgbm9kZSBTb3V0aCBUSUVzLA0KICAgIGkuZS4gcHJvZ3Jlc3NlcyB0b3dhcmRzIG5v
ZGVzIGF0IGxvd2VyIGxldmVscy4gT2JzZXJ2ZSB0aGF0DQogICAgRS1XIGFkamFjZW5jaWVzIGFy
ZSBORVZFUiB1c2VkIGluIHRoZSBjb21wdXRhdGlvbi4gVGhpcyBlbmZvcmNlcyB0aGUNCiAgICBy
ZXF1aXJlbWVudCB0aGF0IGEgcGFja2V0IHRyYXZlcnNpbmcgaW4gYSBzb3V0aGJvdW5kIGRpcmVj
dGlvbiBtdXN0DQogICAgbmV2ZXIgY2hhbmdlIGl0cyBkaXJlY3Rpb24uPC90DQoNCg0KDQpUaGlz
IHNlY3Rpb24gZ2l2ZXMgdGhlIGltcHJlc3Npb24gdGhhdCBFLVcgbGlua3MgYXQgdGhlIFRvRiB3
aWxsIG5ldmVyIGJlIHVzZWQgZm9yIGZvcndhcmRpbmcgZGF0YSAtIGlzIHRoYXQgdHJ1ZT8gIFRo
ZXkgYXJlIHVzZWQgZm9yIGNvbnRyb2wgcGxhbmUgb25seT8NCg0KWWVzLCBpdCBpcyBkZXNjcmli
ZWQgaW4gdGV4dCBidXQgSSBjbGFyaWZpZWQgdGhlIHNlY3Rpb24gb24gaG9yaXpvbnRhbCBsaW5r
cyBpbiBUb0YgZnVydGhlcg0KDQoNCjx0PkUtVyBUb0YgbGlua3MgYmVoYXZlIGluIHRlcm1zIG9m
IGZsb29kaW5nIHNjb3BlcyBkZWZpbmVkIGluDQogICAgPHhyZWYgdGFyZ2V0PSJ0aWVzY29wZXMi
Lz4gbGlrZSBub3J0aGJvdW5kIGxpbmtzIGFuZCBNVVNUIGJlIHVzZWQgZm9yIGNvbnRyb2wgcGxh
bmUNCiAgICBpbmZvcm1hdGlvbiBmbG9vZGluZyBPTkxZLiBFdmVuIHRob3VnaCBhIFRvRiBub2Rl
IGNvdWxkIGJlIHRlbXB0ZWQNCiAgICB0byB1c2UgdGhvc2UgbGlua3MgZHVyaW5nIHNvdXRoYm91
bmQgU1BGIGFuZCBjYXJyeSB0cmFmZmljIG92ZXIgdGhlbSB0aGlzDQogICAgTVVTVCBOT1QgYmUg
YXR0ZW1wdGVkIHNpbmNlIGl0IG1heSBsZWFkIGluLCBlLmcuIGFueWNhc3QgY2FzZXMgdG8gcm91
dGluZyBsb29wcy4NCiAgICBBbiBpbXBsZW1lbnRpb24gTUFZIHRyeSB0byByZXNvbHZlIHRoZSBs
b29waW5nIHByb2JsZW0gYnkgZm9sbG93aW5nIG9uIHRoZSByaW5nIHN0cmljdGx5DQogICAgdGll
LWJyb2tlbg0KICAgIHNob3J0ZXN0LXBhdGhzIG9ubHkgYnV0IHRoZSBkZXRhaWxzIGFyZSBvdXRz
aWRlIHRoaXMgc3BlY2lmaWNhdGlvbi4gQW5kIGV2ZW4gdGhlbiwNCiAgICB0aGUgcHJvYmxlbSBv
ZiBwcm9wZXIgY2FwYWNpdHkgcHJvdmlzaW9uaW5nIG9mIHN1Y2ggbGlua3Mgd2hlbiB0aGV5IGJl
Y29tZSB0cmFmZmljLWJlYXJpbmcgaW4NCiAgICBjYXNlIG9mIGZhaWx1cmVzIGlzIHZleGluZy48
L3Q+DQoNCltKRUhdIE9LLCB0aGlzIGlzIGNsZWFyZXIuDQoNCiJBbiBpbXBsZW1lbnRhdGlvbiBj
b3VsZCB0cnkgLi4uIGJ1dCB0aGUgZGV0YWlscyBhcmUgb3V0c2lkZSB0aGlzIHNwZWNpZmljYXRp
b24iIC0gc28gd2h5IG1lbnRpb24gaXQ/DQoNCkJlY2F1c2Ugb2YgdGhlIGZhY3QgdGhhdCB0aGUg
cXVlc3Rpb24gd2FzIGNvbWluZyB1cCBtdWx0aXBsZSB0aW1lcyBpbiBtZWV0aW5ncy9tYWlscyBh
bmQgc28gb24uIEluc3RlYWQgb2YgbmVnYXRpdmUgZGlzYWdncmVnYXRpb24gcGVvcGxlIHdlcmUg
dGVtcHRlZCB0byAiZm9yd2FyZCB0aHJvdWdoIHRoZSBob3Jpem9udGFsIGxpbmtzIG9uIHRvcCIg
d2hlbiBhIGZhbGxlbiBsZWFmIHN0YXJ0cyBmb3J3YXJkaW5nIGluIHRoZSB3cm9uZyBwbGFuZSAo
aS5lLiB0aGUgb25lIHdoZXJlIGl0J3MgZmFsbGVuKS4gVGhpcyBzZWN0aW9uIHBvaW50cyBvdXQg
dGhhdCB0aGlzIHNob3VsZCBub3QgYmUgYXR0ZW1wdGVkIGR1ZSB0byBsb29waW5nIHByb2JsZW1z
LCBpLmUuIGEgVG9GIG5vZGUgdGhhdCBoYXMgbm8gcmVhY2hhYmlsaXR5IHRvIGFuIGFueWNhc3Qg
YWRkcmVzcyAoc2luY2UgYSBmYWxsZW4gbGVhZiBmb3J3YXJkZWQgdG8gYW4gYW55Y2FzdCBkZXN0
aW5hdGlvbiB0aGF0IGlzIGFsc28gZmFsbGVuKSBjb3VsZCB0cnkgdG8gdXNlIGhvcml6b250YWwg
bGlua3MgdG8gZm9yd2FyZCB0cmFmZmljIGJ1dCBpdCBtYXkgaGF2ZSBtdWx0aXBsZSBwbGFuZXMg
dGhhdCBjYW4gcmVhY2ggdGhlIGRlc3RpbmF0aW9uLiBPYnZpb3VzbHkgd2hlbiBpdCBmb3J3YXJk
cyBlLmcuIGxlZnQgb24gdGhlIHJpbmcgJiB0aGUgdHJhZmZpYyBhcnJpdmVzIG9uIHRoZSBUb0Yg
dGhhdCBzZWVtcyB0byBiZSBhYmxlIHRvIHJlYWNoIHRoYXQgYW55Y2FzdCB0aGUgVG9GIG1heSBj
aG9vc2UgdG8gZm9yd2FyZCBpdCBiYWNrIG9uIHRoZSByaW5nIHRvICJhbm90aGVyIFRvRiIgdGhh
dCBjYW4gcmVhY2ggdGhlIGFueWNhc3QuIE9ic2VydmVyIHRoYXQgUklGVCBpcyBsb29wLWZyZWUg
aS5lLiBvbmUgY2FuIGZvcndhcmQgb24gYW55IHBhdGggYXMgbG9uZyBpdCByZWFjaGVzIHRoZSBk
ZXN0aW5hdGlvbiBidXQgc2luY2UgaG9yaXpvbnRhbCBpcyBjb25zaWRlcmVkIGVxdWl2YWxlbnQg
dG8gbm9ydGhib3VuZCBmb3J3YXJkaW5nIGFuZCBtZXRyaWMgY2FuIGJlIGRpc3JlZ2FyZGVkIChS
SUZUIGlzIG5vdCBib3VuZCBieSBzaG9ydGVzdCBwYXRoKSB0aGUgdHJhZmZpYyBtYXkganVzdCBl
bmQgdXAgbG9vcGluZyBpbiB0aGUgcmluZy4gVGhpcyBpcyBoYXJkIHRvIGRlc2NyaWJlIGFuZCB3
b3VsZCB0byBsb3RzIGZpZ3VyZXMgaGVuY2UgdGhlIHNwZWMgc2ltcGx5IHNheXMgImRvbid0IGRv
IGl0IiBhbmQgaWYgb25lIGlzIHRlbXB0ZWQgdG8gb25lIHdpbGwgZmluZCBvdXQgd2h5IGl0J3Mg
YSBiYWQgaWRlYSB3aGVuIG9uZSBpbXBsZW1lbnRlZCB0aGlzLiBBbmQgdGhlbiB0aGUgc2FpZCBp
bXBsZW1lbnRlciB3aWxsIHByb2JhYmx5IHRyeSB0byBmaXggaXQgYnkgdGhlICJzaG9ydGVzdCBw
YXRoIiBjb21wdXRhdGlvbiBAIFRvRiBsZXZlbCB3aGljaCBpcyBuZXh0IGxheWVyIG9mIHRoZSBv
bmlvbiB0aGUgZG9jdW1lbnQgbWVudGlvbnMgYW5kIHRoZW4gZXhwbGFpbnMgYWdhaW4gdGhhdCB0
aGlzIG1heSB3b3JrIGJ1dCBoZSBzdG9wIGdvaW5nIG91dCB0aGVyZSB3aXRoIHRoaXMgc3BlYy4N
Cg0KVGhlICJyaW5nIiBiZXR3ZWVuIHBsYW5lcyBuZWNlc3NhcnkgaXMgdmlzdWFsaXplZCBpbiBm
aWd1cmUgMTMgYW5kIGRlc2NyaWJlZCBpbiBzZWN0aW9uDQoNCg0KNC4yLjUuMi4xLiAgQ2FibGlu
ZyBvZiBNdWx0aXBsZSBUb3Atb2YtRmFicmljIFBsYW5lcw0KDQphZ2FpbiBpbiBhbiBleGFtcGxl
LiBJIGRvbid0IHRoaW5rIHRoYXQgbmVlZHMgZnVydGhlciBjbGFyaWZpY2F0aW9uLg0KDQpbSkVI
XSBVbmRlcnN0b29kLiBJIHdvdWxkIHN1Z2dlc3QgbW92aW5nIOKAnEFuIGltcGxlbWVudGF0aW9u
IGNvdWxk4oCm4oCdIHRvIGEgZm9vdG5vdGUg4oCTIGlmIG9ubHkgb25lIGNvdWxkIGhhdmUgZm9v
dG5vdGVzIGluIGFuIFJGQy4NCg0KU2VjdGlvbiA1LjIuNS4xDQoiQSBEQUcgY29tcHV0YXRpb24i
IC0gZXhwYW5kIERBRy4NCg0KYWxyZWFkeSBleHBhbmRlZCBpbiBlbnRyYW5jZSB0byB0ZXJtaW5v
bG9neSBzZWN0aW9uIGJ1dCBhZGRlZCBhIG1vcmUgc3BlY2lmaWMgZGVmaW5pdGlvbg0KW0pFSF0g
QWgg4oCTIHNvcnJ5LiBNaXNzZWQgaXQuDQoNCg0KIk5laXRoZXINCiAgICAgICBpcyBpdCBuZWNl
c3NhcnkgZm9yIHRoZSByZWNlaXZpbmcgbm9kZSB0byByZWZsZWN0IHRoZQ0KICAgICAgIGRpc2Fn
Z3JlZ2F0ZWQgcHJlZml4ZXMgYmFjayBvdmVyIGl0cyBhZGphY2VuY2llcyB0byBub2RlcyBhdCB0
aGUNCiAgICAgICBsZXZlbCBmcm9tIHdoaWNoIGl0IHdhcyByZWNlaXZlZC4iDQoNClBsZWFzZSBy
ZXN0YXRlIHRoaXMgdXNpbmcgUkZDIDIxMTkgbGFuZ3VhZ2UuDQoNCmRvbmUuIEl0J3MgYWN0dWFs
bHkgbm90IG5lY2Vzc2FyeSBmb3IgdGhpcyBsYW5ndWFnZSBoZXJlIHRvIGJlIG5vcm1hdGl2ZSBz
aW5jZSB0aGUgbm9ybWF0aXZlIHBhcnQgaXMgVGFibGUgMyBhbmQgd2hlbiBpdCBpcyBpbXBsZW1l
bnRlZCBhbGwgdGhlIGFsZ29yaXRobSBiZWhhdmlvciBhbmQgcmVzdWx0aW5nIGZsb29kaW5nIGZv
bGxvd3Mgc3RyYWlnaHQgb3V0IG9mIHRoYXQuIEkgZW1waGFzaXplZCB0aGF0IHRoZSBmbG9vZGlu
ZyBzY29wZXMgdGFibGUgaXMgbm9ybWF0aXZlLg0KDQpbSkVIXSBPSw0KDQoNCkhvdyBjYW4gd2Ug
Z3VhcmFudGVlIHRoYXQgYSBzYW1lLWxldmVsIG5vZGUgZG9lcyBub3QgaGF2ZSBhIG5leHQgaG9w
IHRvIGEgZ2l2ZW4gcHJlZml4IHRoYXQgaXMgdW5rbm93biB0byB0aGUgbm9kZSBkb2luZyB0aGUg
Y29tcHV0YXRpb24/ICBJZiBYIHJlYWNoZXMgUCB2aWEgTjEgYW5kIE4yLCBZIChhdCB0aGUgc2Ft
ZSBsZXZlbCBhcyBYKSBjYW4gcmVhY2ggUCB2aWEgTjMgYnV0IFggZG9lcyBub3Qga25vdyB0aGlz
IGFuZCBhc3N1bWVzIFkgY2Fubm90IHJlYWNoIFAgYmVjYXVzZSBZIGlzIG5vdCBhZGphY2VudCB0
byBOMSBhbmQgTjIsIHRoZW4gWCB1bm5lY2Vzc2FyaWx5IGRpc2FnZ3JlZ2F0ZXMgUCBwb3NpdGl2
ZWx5LiAgRm9yIGluc3RhbmNlIGlmIFgncyBsaW5rIHRvIE4zIGhhcyBmYWlsZWQgYW5kIFkncyBs
aW5rcyB0byBOMSBhbmQgTjIgaGF2ZSBmYWlsZWQuDQoNCnRoYXQgY2Fubm90IGJlIGd1YXJhbnRl
ZWQuIElmIFggY2FuIHJlYWNoIHByZWZpeCB2aWEgTjEgd2hpY2ggWSBkb2Vzbid0IGhhdmUgYW5k
IFkgdmlhIE4zIHRoYXQgWCBkb2Vzbid0IGhhdmUgYnV0IHRoZXkgb25seSBzZWUgdmlhIGEgbmV4
dGhvcHMgTjAgKHRob3VnaCB3aGljaCB0aGUgcHJlZml4IGNhbm5vdCBiZSByZWFjaGVkKSB0aGVu
IGJvdGggd2lsbCBkaXNhZ2dyZWdhdGUgc2luY2UgYW55dGhpbmcgZWxzZSB3b3VsZCBiZSBhc3N1
bWluZyBuZWNlc3NpdHkgb2YgImhhcm1vbmljYSByb3V0aW5nIiB3aGljaCBSSUZUIGRvZXNuJ3Qg
ZG8gc2luY2UgaGFybW9uaWNhIGlzIG9wcG9zaXRlIHRvIHZhbGxleSBmcmVlIHJvdXRpbmcgd2hp
Y2ggUklGVCBkb2VzIHRvIGd1YXJhbnRlZSBsb29wIGZyZWUgYmVoYXZpb3IuICBUaGF0IGlzIGFj
dHVhbGx5IGEgZ29vZCBleGFtcGxlIHdoeSBSSUZUIHBvc2l0aXZlIGRpc2FnZ3JlZ2F0aW9uIGd1
YXJhbnRlZXMgc3VmZmljaWVudCBkaXNhZ2dyZWdhdGlvbiB0byBwcmV2ZW50IGJsYWNraG9sZXMs
IGxvb3BzIGFuZCBib3ctdGllcyBidXQgcG9zc2libHkgbW9yZSB0aGFuIG5lY2Vzc2FyeSAod2hp
Y2ggaXMgbmV2ZXIgY2xhaW1lZCBpbiB0aGUgZG9jdW1lbnQpLg0KDQpbSkVIXSBVbmRlcnN0b29k
LiBTbyB0aGVyZSBtYXkgYmUgcmVkdW5kYW50IGRpc2FnZ3JlZ2F0aW9uIGJ1dCBpdCBrZWVwcyB0
aGUgZm9yd2FyZGluZyBwbGFuZSB2YWxsZXkgZnJlZS4gIEkgdGhpbmsgdGhhdOKAmXMgT0suDQoN
Cg0KIkVhY2ggZW50cnkgaXMgYSBsaXN0IG9mIHNvdXRoIG5laWdoYm9yIG9mIFggYW5kIGEgbGlz
dCBvZiBub2Rlcw0KICAgICAgIG9mIFgubGV2ZWwgdGhhdCBjYW4ndCByZWFjaCB0aGF0IG5laWdo
Ym9yIg0KDQpUaGluayB0aGlzIHNob3VsZCBzYXkNCg0KIkVhY2ggZW50cnkgaW4gdGhlIHNldCBp
cyBhIHNvdXRoIG5laWdoYm9yIG9mIFggYW5kIGEgbGlzdCBvZiBub2Rlcw0KICAgICAgIG9mIFgu
bGV2ZWwgdGhhdCBjYW4ndCByZWFjaCB0aGF0IG5laWdoYm9yIg0KDQp5ZXMsIHRoYW5rcy4NCg0K
DQoiWCBkb2VzIG5vdCB0byBkaXNhZ2dyZWdhdGUgYW55IHByZWZpeGVzIiAtPiAiIlggZG9lcyBu
b3QgZGlzYWdncmVnYXRlIGFueSBwcmVmaXhlcy4uIiINCg0KeWVzDQoNCg0KIlRoZSBQb0QgY29u
dGFpbmluZyB0aGUgcHJlZml4IHdpbGwgcHJlZmVyIHNvdXRoYm91bmQgYW55d2F5LiIgLSBJIGRp
ZG4ndCB1bmRlcnN0YW5kIHRoZSBwb2ludC4gSXMgaXQgbmVjZXNzYXJ5IGZvciBtZSB0byB1bmRl
cnN0YW5kIGl0PyBQbGVhc2UgZXhwYW5kIG9yIGRlbGV0ZSB0aGUgc2VudGVuY2UgaWYgaXQncyBu
b3QgbmVjZXNzYXJ5Lg0KDQpjbGFyaWZpZWQ6DQoNCg0KPHQ+YWxsIHRoZSBsb3dlciBsZXZlbCBu
b2RlcyBhcmUgZmxvb2RlZCB0aGUgc2FtZSBkaXNhZ2dyZWdhdGVkDQogICAgcHJlZml4ZXMgc2lu
Y2Ugd2UgZG9uJ3Qgd2FudCB0byBidWlsZCBhbiBTb3V0aCBUSUUgcGVyIG5vZGUgYW5kDQogICAg
Y29tcGxpY2F0ZSB0aGluZ3MgdW5uZWNlc3NhcmlseS4gVGhlIGxvd2VyIGxldmVsIG5vZGUNCiAg
ICB0aGF0IGNhbiBjb21wdXRlIGEgc291dGhib3VuZCByb3V0ZSB0byB0aGUgcHJlZml4DQogICAg
d2lsbCBwcmVmZXIgaXQgdG8gdGhlIGRpc2FnZ3JlZ2F0ZWQgcm91dGUgYW55d2F5IGJhc2VkIG9u
DQogICAgcm91dGUgcHJlZmVyZW5jZSBydWxlcy48L3Q+DQoNCltKRUhdIFRoYXTigJlzIGJldHRl
ciwgdGhhbmtzLg0KDQpTZWN0aW9uIDUuMi42DQoic3VjaCBhcyBtb2JpbGl0eSBwZXIgc2VjdGlv
biA1LjMuMyBuZWNlc3NhcnkiIC0gZGVsZXRlICJuZWNlc3NhcnkiLg0KDQp5ZXMNCg0KInRpZXMg
YXJlIGJyb2tlbiBiYXNlZCB1cG9uIHR5cGUgZmlyc3QgYW5kIHRoZW4gZGlzdGFuY2UgYW5kIGZ1
cnRoZXIgYXR0cmlidXRlcyIgLSBJIGRvbid0IHNlZSBtZW50aW9uIG9mIGZ1cnRoZXIgYXR0cmli
dXRlcyBpbiB0aGUgcHJvcG9zZWQgYWxnb3JpdGhtLg0KDQpjb3JyZWN0ZWQgdG8NCg0KUHJlZml4
QXR0cmlidXRlcw0KDQp3aGljaCBhcmUgY29udGFpbmVkIGluIHRoZSBzY2hlbWEuIE1vYmlsaXR5
IHRpZS1icmVha2luZyBpcyBkZXNjcmliZWQgaW4gaXRzIG93biBzZWN0aW9uLg0KDQpUaGUgZG9j
dW1lbnQgZG9lcyBub3Qgc3RhbmRhcmRpemUgZnVydGhlciB0aWUtYnJlYWtpbmcgc2luY2UgLmUu
Zy4gdGllLWJyZWFraW5nIG9uIHRhZ3MgaXMgcG9zc2libGUgYnV0IGNhbiBiZSBjb21wbGV0ZWx5
IGltcGxlbWVudGF0aW9uIGRlcGVuZGVudCBnaXZlbiBSSUZUIGlzIGxvb3AtZnJlZS4gTmVpdGhl
ciBkbyBJIHRoaW5rIGFueSBraW5kIG9mICJzdGFuZGFyZGl6YWJsZSBhZ3JlZW1lbnQiIGNvdWxk
IGJlIHBvc3NpYmxlIGhlcmUuDQoNCg0KIlRoZSBuZXh0aG9wDQogICBhZGphY2VuY2llcyBmb3Ig
YSBuZWdhdGl2ZSBwcmVmaXggYXJlIGluaGVyaXRlZCBmcm9tIHRoZSBsb25nZXN0DQogICBwcmVm
aXggdGhhdCBhZ2dyZWdhdGVzIGl0IiAtIHN1Z2dlc3QgY2hhbmdpbmcgdG8gImxvbmdlc3QgcG9z
aXRpdmUgcHJlZml4Ig0KDQpvaw0KDQoNCiJhbGwgZW50cmllcyBvZiB0aGUgZmF0aGVyIiAtPiAi
YWxsIGVudHJpZXMgb2YgdGhlIHBhcmVudCINCg0Kb2sNCg0KU2VjdGlvbiA1LjIuNy4zDQoid2Ug
aGF2ZSB0byBkZWNpZGUgd2hldGhlciBub2RlIFkgaXMgYXQgdGhlIHNhbWUgbGV2ZWwgYXMgSSwg
SiBvciBhdA0KICAgdGhlIHNhbWUgbGV2ZWwgYXMgWSBhbmQgY29uc2VxdWVudGx5LCBYIGlzIHNv
dXRoIG9mIGl0LiINCg0KSSBjb3VsZCBub3QgcGFyc2UgdGhpcy4gIEkgdGhpbmsgeW91IG1pZ2h0
IG1lYW4gdGhpczoNCg0KIndlIGhhdmUgdG8gZGVjaWRlIHdoZXRoZXIgbm9kZSBZIGlzIGF0IHRo
ZSBzYW1lIGxldmVsIGFzIEksIEoNCiAgKGFuZCBjb25zZXF1ZW50bHkgWCBpcyBzb3V0aCBvZiBp
dCkgb3IgYXQgdGhlIHNhbWUgbGV2ZWwgYXMgWC4iDQoNCnllcywgY29ycmVjdCwgc29tZXdoYXQg
aXQgZ290IGdhcmJsZWQsIGNvcnJlY3RlZCB0bw0KDQoNCjx0PkZpcnN0LCB3ZSBtdXN0IGFuY2hv
ciB0aGUgInRvcCIgb2YgdGhlIGNhYmxpbmcgYW5kIHRoYXQncyB3aGF0DQogICAgdGhlIFRPUF9P
Rl9GQUJSSUMgZmxhZyBhdCBub2RlIEEgaXMgZm9yLiBUaGVuIHRoaW5ncyBsb29rIHNtb290aCB1
bnRpbA0KICAgIHdlIGhhdmUgdG8gZGVjaWRlIHdoZXRoZXIgbm9kZSBZIGlzIGF0IHRoZSBzYW1l
IGxldmVsIGFzIEksIEoNCiAgICAoYW5kIGFzIGNvbnNlcXVlbmNlLCBYIGlzIHNvdXRoIG9mIGl0
KSBvciBhdA0KICAgIHRoZSBzYW1lIGxldmVsIGFzIFguIFRoaXMgaXMNCiAgICB1bnJlc29sdmFi
bGUgaGVyZSB1bnRpbCB3ZQ0KICAgICJuYWlsIGRvd24gdGhlIGJvdHRvbSIgb2YgdGhlIHRvcG9s
b2d5LiBUbyBhY2hpZXZlIHRoYXQgd2UgY2hvb3NlIHRvDQogICAgdXNlIGluIHRoaXMNCiAgICBl
eGFtcGxlIHRoZSBsZWFmIGZsYWdzIGluIFggYW5kIFkuIEluIGNhc2Ugd2hlcmUgWSB3b3VsZCBu
b3QgaGF2ZSBhIGxlYWYNCiAgICBmbGFnIGl0IHdpbGwgdHJ5IHRvIGVsZWN0IGhpZ2hlc3QgbGV2
ZWwgb2ZmZXJlZCBhbmQgZW5kIHVwIGJlaW5nDQogICAgaW4gc2FtZSBsZXZlbCBhcyBJIGFuZCBK
Lg0KICAgIDwvdD4NCg0KW0pFSF0gTG9va3MgZ29vZC4NCg0KU2VjdGlvbiA1LjIuNy40DQpIb3cg
ZG9lcyBhIFRvRiBub2RlIGtub3cgd2hhdCB2YWx1ZSB0byBhZHZlcnRpc2UgaW4gaXRzIExFVkVM
X1ZBTFVFPw0KDQpUaGlzIGNvbnN0YW50IGlzIHByb3ZpZGVkIGluIGFwcGVuZGl4IEQuMQ0KDQpJ
J20gd29ya2luZyBvbiB0aGUgb3RoZXIgZGlyZWN0b3JhdGUgcmV2aWV3cyBhbmQgd2lsbCB0cnkg
dG8gY3V0IGEgbmV3IHZlcnNpb24gd2l0aCBhbGwgdGhvc2UgY2hhbmdlcyBiZWZvcmUgZGVhZGxp
bmUNCg0KW0pFSF0gVGhhbmtzIGFnYWluIGZvciBjb25zaWRlcmluZyBhbGwgbXkgY29tbWVudHMu
DQoNCg==

--_000_BL0PR02MB48684435784A92180AEE2F87847F0BL0PR02MB4868namp_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m
YWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAy
IDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseToiU2Vnb2UgVUkiOw0KCXBhbm9zZS0xOjIg
MTEgNSAyIDQgMiA0IDIgMiAzO30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6TWVubG87DQoJ
cGFub3NlLTE6MCAwIDAgMCAwIDAgMCAwIDAgMDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5
OkNvbnNvbGFzOw0KCXBhbm9zZS0xOjIgMTEgNiA5IDIgMiA0IDMgMiA0O30NCi8qIFN0eWxlIERl
ZmluaXRpb25zICovDQpwLk1zb05vcm1hbCwgbGkuTXNvTm9ybWFsLCBkaXYuTXNvTm9ybWFsDQoJ
e21hcmdpbjowY207DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6ZToxMS4wcHQ7
DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7fQ0KYTpsaW5rLCBzcGFuLk1zb0h5
cGVybGluaw0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6Ymx1ZTsNCgl0ZXh0LWRl
Y29yYXRpb246dW5kZXJsaW5lO30NCmE6dmlzaXRlZCwgc3Bhbi5Nc29IeXBlcmxpbmtGb2xsb3dl
ZA0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6cHVycGxlOw0KCXRleHQtZGVjb3Jh
dGlvbjp1bmRlcmxpbmU7fQ0KcHJlDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgltc28tc3R5
bGUtbGluazoiSFRNTCBQcmVmb3JtYXR0ZWQgQ2hhciI7DQoJbWFyZ2luOjBjbTsNCgltYXJnaW4t
Ym90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseToiQ291cmll
ciBOZXciO30NCnAubXNvbm9ybWFsMCwgbGkubXNvbm9ybWFsMCwgZGl2Lm1zb25vcm1hbDANCgl7
bXNvLXN0eWxlLW5hbWU6bXNvbm9ybWFsOw0KCW1zby1tYXJnaW4tdG9wLWFsdDphdXRvOw0KCW1h
cmdpbi1yaWdodDowY207DQoJbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87DQoJbWFyZ2luLWxl
ZnQ6MGNtOw0KCWZvbnQtc2l6ZToxMS4wcHQ7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMt
c2VyaWY7fQ0Kc3Bhbi5IVE1MUHJlZm9ybWF0dGVkQ2hhcg0KCXttc28tc3R5bGUtbmFtZToiSFRN
TCBQcmVmb3JtYXR0ZWQgQ2hhciI7DQoJbXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1zdHls
ZS1saW5rOiJIVE1MIFByZWZvcm1hdHRlZCI7DQoJZm9udC1mYW1pbHk6Q29uc29sYXM7fQ0Kc3Bh
bi5FbWFpbFN0eWxlMjANCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWwtcmVwbHk7DQoJZm9udC1m
YW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7DQoJY29sb3I6d2luZG93dGV4dDt9DQouTXNvQ2hw
RGVmYXVsdA0KCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seTsNCglmb250LXNpemU6MTAuMHB0
O30NCkBwYWdlIFdvcmRTZWN0aW9uMQ0KCXtzaXplOjYxMi4wcHQgNzkyLjBwdDsNCgltYXJnaW46
NzIuMHB0IDcyLjBwdCA3Mi4wcHQgNzIuMHB0O30NCmRpdi5Xb3JkU2VjdGlvbjENCgl7cGFnZTpX
b3JkU2VjdGlvbjE7fQ0KLyogTGlzdCBEZWZpbml0aW9ucyAqLw0KQGxpc3QgbDANCgl7bXNvLWxp
c3QtaWQ6MjYxMTA2MTQzOw0KCW1zby1saXN0LXRlbXBsYXRlLWlkczo2MzU5OTc3NzI7fQ0KQGxp
c3QgbDA6bGV2ZWwxDQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2
ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjM2LjBwdDsNCgltc28tbGV2ZWwtbnVt
YmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250
LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsMDpsZXZlbDINCgl7
bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCglt
c28tbGV2ZWwtdGFiLXN0b3A6NzIuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVm
dDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJ
Zm9udC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwwOmxldmVsMw0KCXttc28tbGV2ZWwtbnVtYmVy
LWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3Rv
cDoxMDguMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVu
dDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6U3lt
Ym9sO30NCkBsaXN0IGwwOmxldmVsNA0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7
DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDoxNDQuMHB0Ow0KCW1z
by1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1z
by1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGww
OmxldmVsNQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRl
eHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDoxODAuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXIt
cG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6
ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwwOmxldmVsNg0KCXttc28t
bGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1s
ZXZlbC10YWItc3RvcDoyMTYuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsN
Cgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9u
dC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwwOmxldmVsNw0KCXttc28tbGV2ZWwtbnVtYmVyLWZv
cm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDoy
NTIuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDot
MTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6U3ltYm9s
O30NCkBsaXN0IGwwOmxldmVsOA0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJ
bXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDoyODguMHB0Ow0KCW1zby1s
ZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1h
bnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwwOmxl
dmVsOQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ6
74K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDozMjQuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9z
aXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZTox
MC4wcHQ7DQoJZm9udC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwxDQoJe21zby1saXN0LWlkOjk3
MDA5NTA3MTsNCgltc28tbGlzdC10ZW1wbGF0ZS1pZHM6MTE3Nzg2NDc5MDt9DQpAbGlzdCBsMTps
ZXZlbDENCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0
Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6MzYuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9z
aXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZTox
MC4wcHQ7DQoJZm9udC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwxOmxldmVsMg0KCXttc28tbGV2
ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZl
bC10YWItc3RvcDo3Mi4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRl
eHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZh
bWlseTpTeW1ib2w7fQ0KQGxpc3QgbDE6bGV2ZWwzDQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0
OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjEwOC4w
cHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4w
cHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0K
QGxpc3QgbDE6bGV2ZWw0DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28t
bGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjE0NC4wcHQ7DQoJbXNvLWxldmVs
LW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2kt
Zm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3QgbDE6bGV2ZWw1
DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7
DQoJbXNvLWxldmVsLXRhYi1zdG9wOjE4MC4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlv
bjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBw
dDsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3QgbDE6bGV2ZWw2DQoJe21zby1sZXZlbC1u
dW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRh
Yi1zdG9wOjIxNi4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQt
aW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWls
eTpTeW1ib2w7fQ0KQGxpc3QgbDE6bGV2ZWw3DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1
bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjI1Mi4wcHQ7
DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7
DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxp
c3QgbDE6bGV2ZWw4DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2
ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjI4OC4wcHQ7DQoJbXNvLWxldmVsLW51
bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9u
dC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3QgbDE6bGV2ZWw5DQoJ
e21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJ
bXNvLWxldmVsLXRhYi1zdG9wOjMyNC4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjps
ZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsN
Cglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3QgbDINCgl7bXNvLWxpc3QtaWQ6MTY4MjM5MzIy
OTsNCgltc28tbGlzdC10ZW1wbGF0ZS1pZHM6OTE1MTQ1NDgwO30NCkBsaXN0IGwyOmxldmVsMQ0K
CXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0K
CW1zby1sZXZlbC10YWItc3RvcDozNi4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjps
ZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsN
Cglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3QgbDI6bGV2ZWwyDQoJe21zby1sZXZlbC1udW1i
ZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1z
dG9wOjcyLjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRl
bnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OlN5
bWJvbDt9DQpAbGlzdCBsMjpsZXZlbDMNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0
Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6MTA4LjBwdDsNCglt
c28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCglt
c28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBs
MjpsZXZlbDQNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10
ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6MTQ0LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVy
LXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNp
emU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsMjpsZXZlbDUNCgl7bXNv
LWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28t
bGV2ZWwtdGFiLXN0b3A6MTgwLjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7
DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZv
bnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsMjpsZXZlbDYNCgl7bXNvLWxldmVsLW51bWJlci1m
b3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6
MjE2LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6
LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OlN5bWJv
bDt9DQpAbGlzdCBsMjpsZXZlbDcNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0K
CW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6MjUyLjBwdDsNCgltc28t
bGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28t
YW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsMjps
ZXZlbDgNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0
Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6Mjg4LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBv
c2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6
MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsMjpsZXZlbDkNCgl7bXNvLWxl
dmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2
ZWwtdGFiLXN0b3A6MzI0LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJ
dGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQt
ZmFtaWx5OlN5bWJvbDt9DQpvbA0KCXttYXJnaW4tYm90dG9tOjBjbTt9DQp1bA0KCXttYXJnaW4t
Ym90dG9tOjBjbTt9DQotLT48L3N0eWxlPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hh
cGVkZWZhdWx0cyB2OmV4dD0iZWRpdCIgc3BpZG1heD0iMTAyNiIgLz4NCjwveG1sPjwhW2VuZGlm
XS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVsYXlvdXQgdjpleHQ9ImVkaXQi
Pg0KPG86aWRtYXAgdjpleHQ9ImVkaXQiIGRhdGE9IjEiIC8+DQo8L286c2hhcGVsYXlvdXQ+PC94
bWw+PCFbZW5kaWZdLS0+DQo8L2hlYWQ+DQo8Ym9keSBsYW5nPSJFTi1VUyIgbGluaz0iYmx1ZSIg
dmxpbms9InB1cnBsZSI+DQo8ZGl2IGNsYXNzPSJXb3JkU2VjdGlvbjEiPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tR0IiPlRvbnksIG1hbnkgdGhhbmtzIGZvciB5b3VyIHJl
cGx5IOKAkyBwbGVhc2Ugc2VlIFtKRUhdIGJlbG93LjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUdCIj5Kb248bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1HQiI+PG86cD4mbmJz
cDs8L286cD48L3NwYW4+PC9wPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRl
ci10b3A6c29saWQgI0UxRTFFMSAxLjBwdDtwYWRkaW5nOjMuMHB0IDBjbSAwY20gMGNtIj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxiPkZyb206PC9iPiBUb255IFByenlnaWVuZGEgJmx0O3Rvbnlz
aWV0ZkBnbWFpbC5jb20mZ3Q7IDxicj4NCjxiPlNlbnQ6PC9iPiAwNCBOb3ZlbWJlciAyMDE5IDAx
OjAxPGJyPg0KPGI+VG86PC9iPiBKb25hdGhhbiBIYXJkd2ljayAmbHQ7Sm9uYXRoYW4uSGFyZHdp
Y2tAbWV0YXN3aXRjaC5jb20mZ3Q7PGJyPg0KPGI+Q2M6PC9iPiByaWZ0LXdnLWNoYWlyc0BpZXRm
Lm9yZzsgZHJhZnQtaWV0Zi1yaWZ0LXJpZnQuYWxsQGlldGYub3JnOyBydGctZGlyQGlldGYub3Jn
OyBMdWMgQW5kcsOpIEJ1cmRldCAmbHQ7bGFidXJkZXQuaWV0ZkBnbWFpbC5jb20mZ3Q7OyBNaW4g
WWUgJmx0O2FteS55ZW1pbkBodWF3ZWkuY29tJmd0OzsgcmlmdEBpZXRmLm9yZzxicj4NCjxiPlN1
YmplY3Q6PC9iPiBSZTogW1JpZnRdIFJvdXRpbmcgZGlyZWN0b3JhdGUgZWFybHkgcmV2aWV3IG9m
IGRyYWZ0LWlldGYtcmlmdC1yaWZ0PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8dGFibGUgY2xhc3M9Ik1z
b05vcm1hbFRhYmxlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIg
YWxpZ249ImxlZnQiIHdpZHRoPSIxMDAlIiBzdHlsZT0id2lkdGg6MTAwLjAlO2JvcmRlci1jb2xs
YXBzZTpjb2xsYXBzZSI+DQo8dGJvZHk+DQo8dHI+DQo8dGQgc3R5bGU9ImJhY2tncm91bmQ6Izkx
MEExOTtwYWRkaW5nOjMuMHB0IDEuNXB0IDMuMHB0IDEuNXB0Ij48L3RkPg0KPHRkIHdpZHRoPSIx
MDAlIiBzdHlsZT0id2lkdGg6MTAwLjAlO2JhY2tncm91bmQ6I0ZERjJGNDtwYWRkaW5nOjMuMHB0
IDMuNzVwdCAzLjBwdCAxMS4yNXB0O3dvcmQtd3JhcDpicmVhay13b3JkIj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiIHN0eWxlPSJtc28tZWxlbWVudDpmcmFtZTttc28tZWxlbWVudC1mcmFtZS1oc3Bh
Y2U6Mi4yNXB0O21zby1lbGVtZW50LXdyYXA6YXJvdW5kO21zby1lbGVtZW50LWFuY2hvci12ZXJ0
aWNhbDpwYXJhZ3JhcGg7bXNvLWVsZW1lbnQtYW5jaG9yLWhvcml6b250YWw6Y29sdW1uO21zby1o
ZWlnaHQtcnVsZTpleGFjdGx5Ij4NCjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7U2Vnb2UgVUkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMjEyMTIxIj5OT1RF
OiBNZXNzYWdlIGlzIGZyb20gYW4gZXh0ZXJuYWwgc2VuZGVyPG86cD48L286cD48L3NwYW4+PC9w
Pg0KPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPkpvbmF0aGFuLCB0aGFua3MgZm9yIHlvdXIgcmV2aWV3LCBy
ZXNwb25zZXMgaW5saW5lPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj5PbiBUaHUsIE9jdCAzMSwgMjAxOSBhdCAxMTowMSBBTSBKb25hdGhhbiBIYXJkd2ljayAm
bHQ7Sm9uYXRoYW4uSGFyZHdpY2s9PGEgaHJlZj0ibWFpbHRvOjQwbWV0YXN3aXRjaC5jb21AZG1h
cmMuaWV0Zi5vcmciIHRhcmdldD0iX2JsYW5rIj40MG1ldGFzd2l0Y2guY29tQGRtYXJjLmlldGYu
b3JnPC9hPiZndDsgd3JvdGU6PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHN0
eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCAjQ0NDQ0NDIDEuMHB0O3BhZGRpbmc6
MGNtIDBjbSAwY20gNi4wcHQ7bWFyZ2luLWxlZnQ6NC44cHQ7bWFyZ2luLXJpZ2h0OjBjbSI+DQo8
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1h
bHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPkhl
bGxvPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1z
by1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBs
YW5nPSJFTi1HQiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs
dDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+SSBoYXZlIGJlZW4gc2VsZWN0ZWQgdG8gZG8gYSBS
b3V0aW5nIERpcmVjdG9yYXRlIOKAnGVhcmx5IHJldmlld+KAnSBvZiB0aGlzIGRyYWZ0Ojwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2lu
LXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4t
R0IiPjxhIGhyZWY9Imh0dHBzOi8vbmFtMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5j
b20vP3VybD1odHRwcyUzQSUyRiUyRmRhdGF0cmFja2VyLmlldGYub3JnJTJGZG9jJTJGZHJhZnQt
aWV0Zi1yaWZ0LXJpZnQlMkYmYW1wO2RhdGE9MDIlN0MwMSU3Q0pvbmF0aGFuLkhhcmR3aWNrJTQw
bWV0YXN3aXRjaC5jb20lN0M2YTliZjExOWM3NTU0NjQyM2UxNTA4ZDc2MGMyOTA2ZiU3QzlkOWU1
NmViZjYxMzRkZGJiMjdiYmZjZGYxNGIyY2RiJTdDMSU3QzElN0M2MzcwODQyNjEwODA4NjM5MTIm
YW1wO3NkYXRhPWZla3VHJTJCVXh1U3NrMEk5VTJjJTJCMkxuOTdCb0p2cFBDTlNFajc4dVRKWXpR
JTNEJmFtcDtyZXNlcnZlZD0wIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9kYXRhdHJhY2tlci5p
ZXRmLm9yZy9kb2MvZHJhZnQtaWV0Zi1yaWZ0LXJpZnQvPC9hPjwvc3Bhbj48bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt
c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2lu
LXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4t
R0IiPlRoZSByb3V0aW5nIGRpcmVjdG9yYXRlIHdpbGwsIG9uIHJlcXVlc3QgZnJvbSB0aGUgd29y
a2luZyBncm91cCBjaGFpciwgcGVyZm9ybSBhbiDigJxlYXJseeKAnSByZXZpZXcgb2YgYSBkcmFm
dCBiZWZvcmUgaXQgaXMgc3VibWl0dGVkIGZvciBwdWJsaWNhdGlvbiB0byB0aGUgSUVTRy4NCiBU
aGUgZWFybHkgcmV2aWV3IGNhbiBiZSBwZXJmb3JtZWQgYXQgYW55IHRpbWUgZHVyaW5nIHRoZSBk
cmFmdOKAmXMgbGlmZXRpbWUgYXMgYSB3b3JraW5nIGdyb3VwIGRvY3VtZW50LiBUaGUgcHVycG9z
ZSBvZiB0aGUgZWFybHkgcmV2aWV3IGRlcGVuZHMgb24gdGhlIHN0YWdlIHRoYXQgdGhlIGRvY3Vt
ZW50IGhhcyByZWFjaGVkLiZuYnNwOyBBcyB0aGlzIGRvY3VtZW50IGhhcyBhZHZhbmNlZCB0byB3
b3JraW5nIGdyb3VwIGxhc3QgY2FsbCwgbXkgZm9jdXMgZm9yDQogdGhlIHJldmlldyB3YXMgdG8g
ZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGRvY3VtZW50IGlzIHJlYWR5IHRvIGJlIHB1Ymxpc2hlZC4g
UGxlYXNlIGNvbnNpZGVyIG15IGNvbW1lbnRzIGFsb25nIHdpdGggdGhlIG90aGVyIHdvcmtpbmcg
Z3JvdXAgbGFzdCBjYWxsIGNvbW1lbnRzLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJv
dHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0
bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPkZvciBtb3Jl
IGluZm9ybWF0aW9uIGFib3V0IHRoZSBSb3V0aW5nIERpcmVjdG9yYXRlLCBwbGVhc2Ugc2VlDQo8
YSBocmVmPSJodHRwczovL25hbTAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91
cmw9aHR0cCUzQSUyRiUyRnRyYWMudG9vbHMuaWV0Zi5vcmclMkZhcmVhJTJGcnRnJTJGdHJhYyUy
Rndpa2klMkZSdGdEaXImYW1wO2RhdGE9MDIlN0MwMSU3Q0pvbmF0aGFuLkhhcmR3aWNrJTQwbWV0
YXN3aXRjaC5jb20lN0M2YTliZjExOWM3NTU0NjQyM2UxNTA4ZDc2MGMyOTA2ZiU3QzlkOWU1NmVi
ZjYxMzRkZGJiMjdiYmZjZGYxNGIyY2RiJTdDMSU3QzElN0M2MzcwODQyNjEwODA4NzM5MDUmYW1w
O3NkYXRhPSUyQlNFcklFZ2hmOElDVXNXRWZmb3MlMkYwYXNRN1duS2FtMkxuSmVpTFNteFg0JTNE
JmFtcDtyZXNlcnZlZD0wIiB0YXJnZXQ9Il9ibGFuayI+DQpodHRwOi8vdHJhYy50b29scy5pZXRm
Lm9yZy9hcmVhL3J0Zy90cmFjL3dpa2kvUnRnRGlyPC9hPjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28t
bWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzwvc3Bhbj48
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRv
cC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0Ii
PkRvY3VtZW50OiBkcmFmdC1pZXRmLXJpZnQtcmlmdDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy
Z2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPlJldmlld2VyOiBKb24gSGFy
ZHdpY2s8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i
bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFu
IGxhbmc9IkVOLUdCIj5SZXZpZXcgRGF0ZTogMzEgT2N0IDIwMTk8L3NwYW4+PG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87
bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj5JbnRlbmRlZCBT
dGF0dXM6IFN0YW5kYXJkcyBUcmFjazwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRv
bS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt
c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGI+PHNwYW4gbGFuZz0iRU4tR0IiPlN1bW1hcnk8
L3NwYW4+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1z
by1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBs
YW5nPSJFTi1HQiI+VGhhbmtzIGZvciB3cml0aW5nIHRoaXMgZG9jdW1lbnQuJm5ic3A7IEl0IGlz
IGEgdmVyeSBpbnRlcmVzdGluZyBhcHByb2FjaCBhbmQgSSByZWFsbHkgZW5qb3llZCBnZXR0aW5n
IHRvIGdyaXBzIHdpdGggdGhlIGlkZWFzIHByZXNlbnRlZCBpbiB0aGUgZHJhZnQhPC9zcGFuPjxv
OnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPnRoYW5rcywgcXVpdGUgYSBsb3Qgb2Ygd29yazxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVm
dDpzb2xpZCAjQ0NDQ0NDIDEuMHB0O3BhZGRpbmc6MGNtIDBjbSAwY20gNi4wcHQ7bWFyZ2luLWxl
ZnQ6NC44cHQ7bWFyZ2luLXJpZ2h0OjBjbSI+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1h
bHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPlVuZm9ydHVuYXRlbHksIEkgaGF2ZSBzb21lIGNv
bmNlcm5zIGFib3V0IHRoZSBkb2N1bWVudCBhbmQgdGhpbmsgaXQgbmVlZHMgbW9yZSB3b3JrIGJl
Zm9yZSBiZWluZyBzdWJtaXR0ZWQgdG8gdGhlIElFU0cuJm5ic3A7IFRoZSBwcm9ibGVtIGlzIHRo
YXQgSSBmb3VuZCB0aGUgZG9jdW1lbnQNCiBoYXJkIHRvIHJlYWQsIGZvciBzZXZlcmFsIHJlYXNv
bnMuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHVsIHR5cGU9ImRpc2MiPg0KPGxpIGNsYXNzPSJN
c29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRv
bS1hbHQ6YXV0bzttc28tbGlzdDpsMiBsZXZlbDEgbGZvMSI+DQo8c3BhbiBsYW5nPSJFTi1HQiI+
SXQgaXMgdmVyeSBsaWdodCBpbiBpdHMgdXNlIG9mIG5vcm1hdGl2ZSBSRkMtMjExOSBzdHlsZSBs
YW5ndWFnZS4mbmJzcDsgQW4gaW1wbGVtZW50ZXIgd291bGQgaGF2ZSB0byBmaWxsIGluIHF1aXRl
IGEgZmV3IGdhcHMgYW5kL29yIG1ha2UgYXNzdW1wdGlvbnMgYWJvdXQgdmFyaW91cyBwYXNzYWdl
cy48L3NwYW4+PG86cD48L286cD48L2xpPjwvdWw+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1
b3RlPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkkgd2lsbCBhZGRyZXNzIGluIHNwZWNp
ZmljcyB0aGUgc2VjdGlvbnMgeW91IHJhaXNlZCBpbmxpbmUuIDxvOnA+DQo8L286cD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPk90aGVyd2lzZSwgaW4gbWV0YSB0
ZXJtcywgYXMgdG8gdGhlIHF1ZXN0aW9uIG9mICZxdW90O2lzIHRoaXMgc3BlY2lmaWNhdGlvbiBi
ZWluZyBwcmVjaXNlIGVub3VnaD8mcXVvdDsgSSBjYW4gcXVvdGUgb25seSB3aGF0IEkgd3JvdGUg
dG8gUm9iZXJ0IFNwYXJrcyBhbHJlYWR5OjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48aT4mcXVvdDt3ZSBoYXZlIHR3byBpbnRlcm9wZXJhYmxl
IGltcGxlbWVudGF0aW9ucyBzaW5jZSBhIGJpdCwgb25lIGNvbXBsZXRlbHkgb3BlbiBzb3VyY2Ug
d2hpY2ggaGFzIGJlZW4gcHJvZHVjZWQgYmFzZWQgb24gdGhlIHNwZWMuIEl0IHdhcyBpbiBmYWN0
IG9wZW4gc291cmNlIHdvcmsgdGhhdCBoZWxwZWQgdG8gcmVmaW5lIHRoZSBkb2N1bWVudCBjb250
ZW50IHRvIG1ha2Ugc3VyZSB3ZSBjYW4gaGF2ZSBhbiBpbXBsZW1lbnRhdGlvbg0KIHByb2R1Y2Vk
IGJhc2VkIG9uIHRoZSB0ZXh0IHdpdGhvdXQgZnVydGhlciAmcXVvdDtndWVzc2luZyB0aGluZ3Mm
cXVvdDsuIEFzIGV4YW1wbGUgdGhlIExJRSBGU00gaGFzIGJlZW4gaW1wbGVtZW50ZWQgaW5pdGlh
bGx5IGluIG9wZW4gc291cmNlIHdpdGhvdXQgY29uc3VsdGluZyBhdXRob3JzIG9mIHRoZSBzcGVj
IGFuZCBpbnRlcm9wZXJhdCdlZCB3aXRob3V0IGEgc2luZ2xlIGRlZmVjdCAoYnV0IGRpc2NvdmVy
ZWQgYSBwcm90b2NvbCB1bmRlcnNwZWNpZmljYXRpb24NCiBpbiBjYXNlIG9mIG1pc2NvbmZpZ3Vy
YXRpb24gdGhhdCB3YXMgc3Vic2VxdWVudGx5IGFkZGVkKS4gUGxlYXNlIHJlZmVyIHRvIElFVEYg
cHJvY2VlZGluZ3MgZm9yIHRoZSBhY2NvcmRpbmcgcHJlc2VudGF0aW9ucyBpZiBuZWNlc3Nhcnku
IFdlIGhhdmUgYSB0aGlyZCBpbXBsZW1lbmF0aW9uIHByb2dyZXNzaW5nIG5vdyB3aGVyZSBhbGwg
cXVlc3Rpb25zIHRoZSBpbXBsZW1lbnRvciBhc2tlZCBzbyBmYXIgY291bGQgYmUgYW5zd2VyZWQg
YnkgcG9pbnRpbmcNCiBkaXJlY3RseSBAJm5ic3A7IHRoZSBzcGVjaWZpY2F0aW9uIGFzIHdyaXR0
ZW4uIFRoaXMgc2VlbXMgdG8gYW5zd2VyIHRvIG1lIHRoZSAmcXVvdDtzdXNwaWNpb24gb2Ygc3Bl
Y2lmaWNhdGlvbiBtYXliZSBub3QgYmVpbmcgZ29vZCBlbm91Z2ggdG8gaW1wbGVtZW50JnF1b3Q7
IGFzIGFuIG9iamVjdGl2ZSBtZWFzdXJpbmcgc3RpY2sgYXMgZmFyIEkgY2FuIGltYWdpbmUgb25l
Lg0KPC9pPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PGk+JnF1b3Q7PC9pPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj5XZSBhcmUgaW4gSUVURiBoZXJlIHdoZXJlICZxdW90O3JvdWdoIGNvbnNl
bnVzIGFuZCBydW5uaW5nIGNvZGUmcXVvdDsgd2FzIHRoZSByZWNlaXBlIG9mIHN1Y2Nlc3MgdnMu
IG11Y2ggaGVhdmllciBoYW5kZWQgb3JnYW5pemF0aW9ucyBsaWtlIE9TSSBhbmQgSSB0aGluayBp
biB0aGlzIHBoaWxvc29waHkgdGhlIHNwZWMsIGlmIGFueXRoaW5nLCBpcyBwb3NzaWJseSBvdmVy
c3BlY2lmaWVkIGFscmVhZHkgOy0pIFRoZSBjb3JlIHBpZWNlcw0KIHRoYXQgYmFyZSBubyBzbGlw
cyBsaWtlIGZsb29kaW5nIGFuZCBhZGphY2VuY3kgZm9ybWF0aW9uIGFyZSB2ZXJ5IHByZWNpc2Vs
eSB3cml0dGVuIGluY2x1ZGluZyBGU01zLjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj5bSkVIXSBTdXJlLiAmbmJzcDtNeSBjb21tZW50cyB3ZXJlIGludGVuZGVkIHRvIGhl
bHAgaW1wcm92ZSB0aGUgdXNlIG9mIG5vcm1hdGl2ZSBsYW5ndWFnZSBhbmQgdGhlIGRlbGluZWF0
aW9uIGJldHdlZW4gbm9ybWF0aXZlIHBhc3NhZ2VzIGFuZCBpbmZvcm1hdGl2ZSBvbmVzLjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGJsb2Nr
cXVvdGUgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkICNDQ0NDQ0MgMS4wcHQ7
cGFkZGluZzowY20gMGNtIDBjbSA2LjBwdDttYXJnaW4tbGVmdDo0LjhwdDttYXJnaW4tcmlnaHQ6
MGNtIj4NCjxkaXY+DQo8ZGl2Pg0KPHVsIHR5cGU9ImRpc2MiPg0KPGxpIGNsYXNzPSJNc29Ob3Jt
YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6
YXV0bzttc28tbGlzdDpsMSBsZXZlbDEgbGZvMiI+DQo8bzpwPiZuYnNwOzwvbzpwPjwvbGk+PGxp
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy
Z2luLWJvdHRvbS1hbHQ6YXV0bzttc28tbGlzdDpsMSBsZXZlbDEgbGZvMiI+DQo8c3BhbiBsYW5n
PSJFTi1HQiI+VGhlIGRlZmluaXRpb24gb2YgdGhlIHByb3RvY29sIGFuZCBzb21lIG9mIHRoZSBu
b3JtYXRpdmUgYmVoYXZpb3VyIGlzIGRlZmVycmVkIHRvIHRoZSBhcHBlbmRpY2VzLCB3aGVyZWFz
IEkgd291bGQgZXhwZWN0IHRvIGVuY291bnRlciBpdCBlYXJseSBvbiBpbiB0aGUgdGV4dCwgd2l0
aCBhbiBpbi1saW5lIGRpc2N1c3Npb24gb2YgdGhlIHB1cnBvc2VzIG9mIHRoZSBtZXNzYWdlcyBh
bmQgZmllbGRzLjwvc3Bhbj48bzpwPjwvbzpwPjwvbGk+PC91bD4NCjwvZGl2Pg0KPC9kaXY+DQo8
L2Jsb2NrcXVvdGU+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286
cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5Paywgc2VlbXMgbGlr
ZSB0aGUgc2Vjb25kIGRpcmVjdG9yYXRlIHJldmlld2VycyBwcmVmZXJzIHRoZSBhcHBlbmRpY2Vz
IHRvIGJlIHB1bGxlZCBpbnRvIHRoZSBkb2N1bWVudC4gTGV0IG1lIGRvIHRoYXQgdGhlbmw8bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5i
c3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+W0pFSF0gTXkgYXBvbG9naWVzIOKA
kyBpdCBpcyB1bmZvcnR1bmF0ZSB3aGVuIHR3byBkaWZmZXJlbnQgcmV2aWV3ZXJzIGdpdmUgY29u
dHJhZGljdG9yeSBvcGluaW9ucyEmbmJzcDsgWW91IHNob3VsZCBvZiBjb3Vyc2Ugd2VpZ2ggbXkg
b3BpbmlvbiB3aXRoIGV2ZXJ5b25lIGVsc2XigJlzLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHN0
eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCAjQ0NDQ0NDIDEuMHB0O3BhZGRpbmc6
MGNtIDBjbSAwY20gNi4wcHQ7bWFyZ2luLWxlZnQ6NC44cHQ7bWFyZ2luLXJpZ2h0OjBjbSI+DQo8
ZGl2Pg0KPGRpdj4NCjx1bCB0eXBlPSJkaXNjIj4NCjxsaSBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bXNv
LWxpc3Q6bDAgbGV2ZWwxIGxmbzMiPg0KPG86cD4mbmJzcDs8L286cD48L2xpPjxsaSBjbGFzcz0i
TXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0
b20tYWx0OmF1dG87bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzMiPg0KPHNwYW4gbGFuZz0iRU4tR0Ii
Pkl0IHNvbWV0aW1lcyByZWZlcnMgdG8gY29uY2VwdHMgb3IgdGVybXMgdGhhdCBhcmUgZWl0aGVy
IG5vdCBkZWZpbmVkIG9yIGhhdmUgbm90IHlldCBiZWVuIGludHJvZHVjZWQgdG8gdGhlIHJlYWRl
ciwgc3VnZ2VzdGluZyBhbiBvcmRlcmluZyBpc3N1ZSB3aXRoaW4gdGhlIHRleHQuPC9zcGFuPjxv
OnA+PC9vOnA+PC9saT48L3VsPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJn
aW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJF
Ti1HQiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv
Ij48c3BhbiBsYW5nPSJFTi1HQiI+SSB0aGluayB0aGF0IHRoZSBkb2N1bWVudCBuZWVkcyB0byBi
ZSByZWZhY3RvcmVkIHNvbWV3aGF0IHRvIHNvbHZlIHRoZSBvcmRlcmluZyBpc3N1ZXMsIHVzZSBt
b3JlIG5vcm1hdGl2ZSBsYW5ndWFnZSwgZWxpbWluYXRlIGFueSB0ZXh0IHRoYXQgaXMgbm90IGFj
dHVhbGx5IHJlbGV2YW50DQogdG8gdGhlIGltcGxlbWVudGF0aW9uIGFuZCBkZXBsb3ltZW50IG9m
IHRoZSBwcm90b2NvbCwgYW5kIHB1bGwgdG9nZXRoZXIgdGhlIG5vcm1hdGl2ZSBkZWZpbml0aW9u
IG9mIHRoZSBwcm90b2NvbCBpbnRvIGEgY29udGlndW91cyBibG9jayBlYXJseSBvbiBpbiB0aGUg
ZG9jdW1lbnQuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2tx
dW90ZT4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPmZ1cnRoZXIgaW5saW5lPG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRl
ci1sZWZ0OnNvbGlkICNDQ0NDQ0MgMS4wcHQ7cGFkZGluZzowY20gMGNtIDBjbSA2LjBwdDttYXJn
aW4tbGVmdDo0LjhwdDttYXJnaW4tcmlnaHQ6MGNtIj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90
dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv
O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+VGhlIG90aGVy
IGlzc3VlIGlzIHRoYXQsIGJlY2F1c2UgdGhlIGRvY3VtZW50IGlzIGxhcmdlIGFuZCBJIGZvdW5k
IGl0IHJhdGhlciBoYXJkIGdvaW5nLCBJIGRpZCBub3QgaGF2ZSB0aW1lIGRvIGEgdGhvcm91Z2gg
cmV2aWV3IGJleW9uZCBzZWN0aW9uIDUuMy4mbmJzcDsgSeKAmWQgdGhlcmVmb3JlDQogaGF2ZSB0
byByZWNvbW1lbmQgYW5vdGhlciBkaXJlY3RvcmF0ZSByZXZpZXcgb25jZSB3ZSBoYXZlIGNvbmNs
dWRlZCBvbiB0aGUgaXNzdWVzIEnigJltIHJhaXNpbmcgYmVsb3cuPC9zcGFuPjxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPm9rLCBvYnZpb3VzbHkgYXMgbXVjaCBpcyB3cml0dGVuIGFzIHdlIGV4cGVjdCBp
cyBuZWNlc3NhcnkgdG8gJnF1b3Q7Y2xlYXJseSZxdW90OyBzcGVjIG91dCB0aGUgcHJvdG9jb2wu
IFRoZSBkb2N1bWVudCBpcyBtb3JlIHRoYW4gc2ltcGx5IGEgZHJ5IHByZXNjcmlwdGl2ZSBub3Jt
YXRpdmUgdGhvdWdoIHNpbmNlIHZlcnkgZWFybHkgaW4gdGhlIHdvcmtncm91cCBzZXNzaW9ucyB0
aGUgaW5wdXQgb2YgbWFueSBwZW9wbGUgd2FzDQogdGhhdCB0aGV5IHdvdWxkIHByZWZlciBpcyBz
b21lIG1vcmUgJnF1b3Q7bmFycmF0aXZlJnF1b3Q7IGV4cGxhbmF0aW9uIG9mICZxdW90O3doYXQm
cXVvdDsgYW5kICZxdW90O3doeSZxdW90OyBpcyBpbnNlcnRlZCBpbnN0ZWFkIG9mIHB1cmVseSB0
aGUgYWxnb3JpdGhtcy4gV2UgdHJpZWQgdG8gZmluZCBhIGJhbGFuY2UgYnV0IG9idmlvdXNseSBv
cGluaW9ucyB3aWxsIGFsd2F5cyB2YXJ5IGJldHdlZW4gJnF1b3Q7dGhpcyBpcyB0b28gY2hhdHR5
IGFuZCBzaG91bGQgYmUganVzdCBhIGRyeSBub3JtYXRpdmUmcXVvdDsNCiBhbmQgJnF1b3Q7dGhp
cyBkb2VzIG5vdCBleHBsYWluIFdIWSB0aGF0IHdvdWxkIHdvcmsgYW5kIFdIWSBpdCBoYXMgYmVl
biBkZXNpZ25lZCB0aGF0IHdheSZxdW90Oy4uIEJhc2VkIG9uIFJvYmVydCBTcGFya3MgcmV2aWV3
IEkgd2lsbCB0cnkgdG8gc2ltcGxpZnkgdGhlIGxhbmd1YWdlIGFuZCBjdXQgb3V0IHNvbWUgc3Vw
ZXJmbHVvdXMgdGV4dCBoZSBwb2ludGVkIG91dCBvciBJIGZpbmQuIFdlJ2xsIHNlZSB3aGVyZSB3
ZSBlbmQuDQo8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+W0pFSF0gVGhh
bmtzLiZuYnNwOyBBcyBpdCBoYXBwZW5zIEkgcHJlZmVyIGRvY3VtZW50cyB0byBoYXZlIGluZm9y
bWF0aXZlIHBhc3NhZ2VzIHRvIGhlbHAgbWUgdW5kZXJzdGFuZCB0aGUgbm9ybWF0aXZlIG9uZXMs
IHByb3ZpZGVkIHRoZXkgZ2l2ZSBtZSBlbm91Z2ggY29udGV4dCB0byB1bmRlcnN0YW5kIHRoZW0g
YW5kIHRoZXkgYXJlIHN1ZmZpY2llbnRseSByZWxldmFudC4mbmJzcDsgTXkgY29tbWVudHMgd2Vy
ZSB0YXJnZXRlZA0KIHRvIGhlbHAgaW1wcm92ZSB0aGUgY29udGV4dCAmYW1wOyByZWxldmFuY2Uu
Jm5ic3A7IEkgc3VnZ2VzdCBhIHN1YnNlcXVlbnQgUnRnRGlyIHJldmlldyBvbmx5IGJlY2F1c2Ug
SSB3YXMgbm90IGFibGUgdG8gYXBwbHkgYXMgbXVjaCBkaWxpZ2VuY2UgdG8gdGhlIGxhdGVyIHNl
Y3Rpb25zIG9mIHRoZSBkb2N1bWVudCBhcyBJIHdvdWxkIGhhdmUgbGlrZWQuJm5ic3A7IEkgd2ls
bCBsZWF2ZSBpdCB0byB0aGUgV0cgaWYgdGhleSB3YW50IHRvIGFjdGlvbiB0aGlzLjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rp
dj4NCjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCAjQ0ND
Q0NDIDEuMHB0O3BhZGRpbmc6MGNtIDBjbSAwY20gNi4wcHQ7bWFyZ2luLWxlZnQ6NC44cHQ7bWFy
Z2luLXJpZ2h0OjBjbSI+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl
PSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNw
YW4gbGFuZz0iRU4tR0IiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRv
bS1hbHQ6YXV0byI+PGI+PHNwYW4gbGFuZz0iRU4tR0IiPkRldGFpbHM8L3NwYW4+PC9iPjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFs
dDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+SGVy
ZSBhcmUgY29tbWVudHMgb24gdGhlIHNlY3Rpb25zIHRoYXQgSSB3YXMgYWJsZSB0byByZXZpZXcg
aW4gZGV0YWlsIGJlZm9yZSBJIHJhbiBvdXQgb2YgdGltZS48L3NwYW4+PG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNv
LW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8L3NwYW4+
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10
b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdC
Ij5BYnN0cmFjdDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0
eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+
PHNwYW4gbGFuZz0iRU4tR0IiPklzIGl0IHBvc3NpYmxlIHRvIHJlZm9ybWF0IHRoaXMgYXMgYSBs
aXN0IG9mIGl0ZW1zIG9uIG11bHRpcGxlIGxpbmVzPyBJdCB3b3VsZCByZWFkIG1vcmUgY2xlYXJs
eS48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj55ZXMgPG86cD48L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxibG9ja3F1b3Rl
IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCAjQ0NDQ0NDIDEuMHB0O3BhZGRp
bmc6MGNtIDBjbSAwY20gNi4wcHQ7bWFyZ2luLWxlZnQ6NC44cHQ7bWFyZ2luLXJpZ2h0OjBjbSI+
DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRv
cC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0Ii
PiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl
PSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNw
YW4gbGFuZz0iRU4tR0IiPlNlY3Rpb24gMjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJv
dHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZxdW90O2FuIG9wdGltYWwgYXBwcm9h
Y2ggZG9lcyBub3Qgc2VlbSBob3dldmVyJnF1b3Q7OiB0aGlzIGFwcGVhcnMgdG8gYmUgYSB2YWx1
ZSBqdWRnbWVudCByYXRoZXIgdGhhbiBjb25zZW5zdXMgb3BpbmlvbiwgYXBwZWFyaW5nIGFzIGl0
IGRvZXMgd2l0aG91dCBjaXRhdGlvbiwgYW5kIG1heQ0KIGJlIHBlcmNlaXZlZCBhcyB0cmVhZGlu
ZyBvbiB0aGUgdG9lcyBvZiBvdGhlciBzdGFuZGFyZGl6YXRpb24gZWZmb3J0cyBjdXJyZW50bHkg
aW4gcHJvZ3Jlc3MgYXQgdGhlIElFVEYuIEkgc3VnZ2VzdCB5b3Ugc2ltcGx5IHN0YXRlIHRoZSBm
YWN0czogJnF1b3Q7UklGVCBhcHByb2FjaGVzIHRoaXMgcHJvYmxlbSB1c2luZyBhIG1peHR1cmUg
b2YuLi4mcXVvdDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9j
a3F1b3RlPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+ZG9uZSwgc3VyZS4gPG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRl
ci1sZWZ0OnNvbGlkICNDQ0NDQ0MgMS4wcHQ7cGFkZGluZzowY20gMGNtIDBjbSA2LjBwdDttYXJn
aW4tbGVmdDo0LjhwdDttYXJnaW4tcmlnaHQ6MGNtIj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90
dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv
O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+U2VjdGlvbiAy
LjE8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNv
LW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxh
bmc9IkVOLUdCIj5UaGUgZm9ybSBvZiB3b3JkcyBpbiB0aGUgUmVxdWlyZW1lbnRzIExhbmd1YWdl
IGJvaWxlcnBsYXRlIGhhcyBjaGFuZ2VkIHJlY2VudGx5IC0gc2VlIFJGQyA4MTc0Ljwvc3Bhbj48
bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj50aGFua3MsIGNvcnJlY3RlZDxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCAj
Q0NDQ0NDIDEuMHB0O3BhZGRpbmc6MGNtIDBjbSAwY20gNi4wcHQ7bWFyZ2luLWxlZnQ6NC44cHQ7
bWFyZ2luLXJpZ2h0OjBjbSI+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0
eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+
PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJv
dHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPlNlY3Rpb24gMy4xPC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFs
dDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+WlRQ
IC0gZXhwYW5kIGFjcm9ueW0gb24gZmlyc3QgdXNlLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij55ZXMsIFpUUCBhZGRlZC4gZ2xvc3Nhcnkgd2lsbCBiZSByZWEtYXJyYW5nZWQgYmFzZWQgb24g
b3RoZXIgcmV2aWV3ZXJzIGlucHV0Lg0KPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGJsb2Nr
cXVvdGUgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkICNDQ0NDQ0MgMS4wcHQ7
cGFkZGluZzowY20gMGNtIDBjbSA2LjBwdDttYXJnaW4tbGVmdDo0LjhwdDttYXJnaW4tcmlnaHQ6
MGNtIj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJn
aW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJF
Ti1HQiI+VGhlcmUgaXMgcG90ZW50aWFsIGZvciBjb25mdXNpb24gYmV0d2VlbiBOLVRJRSBhbmQg
Tm9kZSBUSUUhIEknZCBwcmVmZXIgJnF1b3Q7Tm9ydGggVElFJnF1b3Q7IGZvciB0aGUgZm9ybWVy
Ljwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28t
bWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFu
Zz0iRU4tR0IiPkFuIGV4YW1wbGUgb2YgY29uZnVzaW9uOiBpcyB0aGUgJnF1b3Q7U291dGggTm9k
ZSBUSUUmcXVvdDsgcmVmZXJyZWQgdG8gaW4gdGhlIGRlZmluaXRpb24gb2YgJnF1b3Q7U291dGgg
UmVmbGVjdGlvbiZxdW90OyB0aGUgc2FtZSBhcyB0aGUgUy1USUUgcmVmZXJyZWQgdG8gaW4gdGhl
IGRlZmluaXRpb24gb2YgJnF1b3Q7VElFJnF1b3Q7Pzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy
Z2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZxdW90O1RoZSBkb2N1bWVu
dCBzb21ldGltZXMgY2FsbHMgdGhlbSBmbG9vZCBsZWFkZXJzIGFzIHdlbGwuJnF1b3Q7IEJ1dCBp
dCB3b3VsZCBiZSBiZXR0ZXIgaWYgeW91IGp1c3QgdXNlZCBvbmUgdGVybS48L3NwYW4+PG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+T0ssIEkgZXhwYW5kIE4tIGFuZCBTLSB0byBOb3J0aC0gYW5kIFNvdXRo
LSBldmVyeXdoZXJlIGluIHRoZSBkb2N1bWVudA0KPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkICNDQ0NDQ0Mg
MS4wcHQ7cGFkZGluZzowY20gMGNtIDBjbSA2LjBwdDttYXJnaW4tbGVmdDo0LjhwdDttYXJnaW4t
cmlnaHQ6MGNtIj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1z
by1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBs
YW5nPSJFTi1HQiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs
dDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+U2VjdGlvbiA0PC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21z
by1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+UGVyc29uYWxseSBJ
IGNvdWxkIGxpdmUgd2l0aG91dCB0aGlzIHNlY3Rpb248L3NwYW4+PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h
cmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj5NZXJnZSBQRU5EMSB3aXRo
IE5PTlJFUXggKG9yIGV4cGxhaW4gdGhlIGRpc3RpbmN0aW9uKTwvc3Bhbj48bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj50aGFua3MsIHRoZXJlIHdlcmUgbXVsdGlwbGUgZGlzY3Vzc2lvbnMgcHJvL2NvbnMg
b24gbWlrZS9saXN0IGFib3V0IHRoaXMgc2VjdGlvbiBhbmQgc3VnZ2VzdGlvbnMgYWxvbmcgdGhl
IGxpbmVzIHRvIHNwbGl0IGl0IG91dCBpbnRvIGEgZGlmZmVyZW50IGRvY3VtZW50IChidXQgc3Rh
bmRhcmRpemluZyByZXF1aXJlbWVudCBkcmFmdHMgd2VudCBvdXQgb2YgZmFzaGlvbiByZWNlbnRs
eSA7LSkgb3IgZHJvcCBpdC4NCiBJJ20gZHJvcHBpbmcgaXQgYmFzZWQgb24geW91ciBpbnB1dCBh
bmQgb3RoZXJzIGRlc2lyaW5nIHRvIHNob3J0ZW4gdGhlIGRvY3VtZW50LjxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpz
b2xpZCAjQ0NDQ0NDIDEuMHB0O3BhZGRpbmc6MGNtIDBjbSAwY20gNi4wcHQ7bWFyZ2luLWxlZnQ6
NC44cHQ7bWFyZ2luLXJpZ2h0OjBjbSI+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6
YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy
Z2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPlNlY3Rpb24gNS4xLjMgLSA1
LjEuNTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt
c28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4g
bGFuZz0iRU4tR0IiPlRoaXMgZGlzY3Vzc2lvbiBpcyBub3QgcG9zc2libGUgdG8gZm9sbG93IHBy
b3Blcmx5IHVudGlsIHlvdSBoYXZlIGJlZW4gaW50cm9kdWNlZCB0byBwb3NpdGl2ZSAmYW1wOyBu
ZWdhdGl2ZSBkaXNhZ2dyZWdhdGlvbiBhbmQgc291dGhlcm4gcmVmbGVjdGlvbi4mbmJzcDsgQXMg
c3VjaCBJIHdvbmRlcg0KIGlmIGl0IHJlYWxseSBiZWxvbmdzIGluIGEgc2VjdGlvbiBjYWxsZWQg
JnF1b3Q7b3ZlcnZpZXcmcXVvdDsuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rp
dj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNw
OzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkpvbmF0aGFu
LCB3ZWxsLCBzZWN0aW9uIDUuMS4zICZxdW90O2ZhbGxlbiBsZWFmJnF1b3Q7ICg0IG5vdyBnaXZl
biByZXF1aXJlbWVudHMgaXMgcmVtb3ZlZCkgX2lzXyB0aGUgb3ZlcnZpZXcgc2VjdGlvbi4gU291
dGhlcm4gcmVmbGVjdGlvbiBpcyBkZWZpbmVkIGluIHRoZSBnbG9zc2FyeSBhbHJlYWR5IGFuZCB0
aGUgJnF1b3Q7bmVnYXRpdmUgZGlzYWdncmVnYXRpb24mcXVvdDsgaXMgYSBtZWNoYW5pc20gaW50
cm9kdWNlZCB0byBhZGRyZXNzIHRoZQ0KICZxdW90O2ZhbGxlbiBsZWFmIHByb2JsZW0mcXVvdDsg
bGF0ZXIgYW5kIG9idmlvdXNseSB0aGUgcHJvYmxlbSBpdHNlbGYgaGFzIHRvIGJlIGV4cGxhaW5l
ZCAmYW1wOyBpbnRyb2R1Y2VkIGZpcnN0LiBOZWdhdGl2ZSBkaXNhZ2dyZWdhdGlvbiBpcyBhcmd1
YWJseSAoYmVzaWRlIGZsb29kaW5nIHNjb3BlcykgdGhlIG1vc3QgY29tcGxleCBwYXJ0IG9mIHRo
ZSBzcGVjIGFuZCB3ZSBzcGVudCBsb3RzIG9mIHRpbWUgYW5kIGVmZm9ydCAoZXNwZWNpYWxseSBQ
YXNjYWwpIHdpdGgNCiBtdWx0aXBsZSByZXdyaXRlcyB0byBnaXZlIHRoZSBuYXJyYXRpdmUgZGVz
Y3JpYmluZyB0aGUgQ0xPUyBpbmhlcmVudCBwcm9ibGVtLiBNb3Jlb3ZlciB3ZSBkaWRuJ3Qgd2Fu
dCB0byBtaXggaXQgdXAgd2l0aCBSSUZUIHNwZWNpZmljIG1lY2hhbmlzbSBzaW5jZSB0aGUgJnF1
b3Q7ZmFsbGVuIGxlYWYmcXVvdDs6IHByb2JsZW0gZXhpc3RzIGluIG11bHRpLXBsYW5lIENMT1Mg
aW5kZXBlbmRlbnQgb2YgYW55IHByb3RvY29sIGFuZCBCVFcsIEkgbmV2ZXIgc2F3IGl0DQogZXhw
bGFpbmVkIGFzIGNsZWFybHkgYXMgUGFzY2FsIGRpZCBpbiB0aGUgbXVsdGktcGxhbmUgaW50cm9k
dWN0aW9uIHNlY3Rpb24uIEFsc28sIHdlIGNsZWFybHkgc3RhdGUgaW4gdGhlIHNlY3Rpb24gdGhh
dCBpZiBzb21lb25lIGJ1aWxkcyBhIHNpbmdsZSBwbGFuZSBDTE9TIHRoZSBzZWN0aW9uIGNhbiBi
ZSBkaXNyZWdhcmRlZCB0byBzaW1wbGlmeSB0aGUgcmVhZGluZyBvZiB0aGUgc3BlYyBmb3IgbWFu
eSBwZW9wbGUuDQo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5i
c3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+W0pFSF0gVGhhbmtzLiBGaXJzdGx5
LCBQYXNjYWwgaXMgdG8gYmUgY29uZ3JhdHVsYXRlZCBvbiB0aGUgdGV4dCBkZXNjcmliaW5nIG11
bHRpLXBsYW5lIHRvcG9sb2dpZXMuIEkgaGFkIG5vIHByb2JsZW0gZ2V0dGluZyB0byBncmlwcyB3
aXRoIHRoZW0gd2l0aCB0aGUgaGVscCBvZiBoaXMgdGV4dCBhbmQgc29tZSBMZWdvIG1vZGVscyB0
aGF0IGl0IGluc3BpcmVkIG1lIHRvIGJ1aWxkIDotKSZuYnNwOyBJIGhhdmUgcmUtcmVhZA0KIHRo
ZXNlIHNlY3Rpb25zIGp1c3Qgbm93IGFuZCBJIGRvIG5vdyBmaW5kIHRoZW0gZWFzaWVyIHRvIGZv
bGxvdyDigJMgaGF2aW5nIGFscmVhZHkgcmVhZCB0aGUgcmVsZXZhbnQgcGFydHMgb2YgdGhlIGxh
dGVyIHNwZWMuJm5ic3A7IE9uIHRoZSBmaXJzdCByZWFkLXRocm91Z2ggSSB0aGluayBJIHdhcyB0
cm91YmxlZCBieSB0b28gbWFueSBxdWVzdGlvbnM6IFdoYXQgZG8gdGhleSBtZWFuIGJ5IOKAnHBv
c2l0aXZl4oCdIGFuZCDigJxuZWdhdGl2ZeKAnSBpbiB0aGUgY29udGV4dA0KIG9mIGRpc2FnZ3Jl
Z2F0aW9uPyZuYnNwOyBXaGF0IGRvIHRoZXkgbWVhbiBieSDigJx0cmFuc2l0aXZl4oCdPyZuYnNw
OyBJIGhhdmUgYmVlbiB0b2xkIHdoYXQgc291dGhlcm4gcmVmbGVjdGlvbiBpcywgYnV0IHdoYXQg
cmVsZXZhbnQgaW5mb3JtYXRpb24gZG9lcyBpdCBwcm92aWRlIGFuZCBob3cgaXMgaXQgdXNlZnVs
PyZuYnNwOyBJbiBoaW5kc2lnaHQgdGhlc2Ugd2VyZSBhbGwgZ3Vlc3NhYmxlIGJ1dCBJIGZvdW5k
IHRoZXNlIGNvbmNlcHRzIGEgYmFycmllciB0byBteSB1bmRlcnN0YW5kaW5nLiZuYnNwOw0KIElm
IHlvdSBoYXZlIHRoZSBzdG9tYWNoIGZvciBhbm90aGVyIGl0ZXJhdGlvbiBvZiB0aGVzZSBzZWN0
aW9ucywgSSB3b3VsZCByZXF1ZXN0IHNvbWUgYWRkaXRpb25hbCBleHBsYW5hdGlvbiB0byBiZSBp
bmNsdWRlZC48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7
PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6bm9uZTtib3Jk
ZXItbGVmdDpzb2xpZCAjQ0NDQ0NDIDEuMHB0O3BhZGRpbmc6MGNtIDBjbSAwY20gNi4wcHQ7bWFy
Z2luLWxlZnQ6NC44cHQ7bWFyZ2luLXJpZ2h0OjBjbSI+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJv
dHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0
bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPlNlY3Rpb24g
NS4yLjI8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i
bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFu
IGxhbmc9IkVOLUdCIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t
YWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDsmbmJzcDsgQSBub2RlIGNvbmZpZ3Vy
ZWQgd2l0aCAmcXVvdDt1bmRlZmluZWQmcXVvdDsgUG9EIG1lbWJlcnNoaXAgTVVTVCwgYWZ0ZXI8
L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h
cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9
IkVOLUdCIj4mbmJzcDsmbmJzcDsgYnVpbGRpbmcgZmlyc3Qgbm9ydGhib3VuZCB0aHJlZSB3YXkg
YWRqYWNlbmNpZXMgdG8gYSBub2RlIGJlaW5nIGluIGE8L3NwYW4+PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h
cmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDsmbmJzcDsgZGVm
aW5lZCBQb0QsIGFkdmVydGlzZSB0aGF0IFBvRCBhcyBwYXJ0IG9mIGl0cyBMSUVzLiZuYnNwOyBJ
biBjYXNlIHRoYXQ8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz
dHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8i
PjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDsmbmJzcDsgYWRqYWNlbmN5IGlzIGxvc3QsIGZyb20g
YWxsIGF2YWlsYWJsZSBub3J0aGJvdW5kIHRocmVlIHdheTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28t
bWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOyZuYnNwOyBh
ZGphY2VuY2llcyB0aGUgbm9kZSB3aXRoIHRoZSBoaWdoZXN0IFN5c3RlbSBJRCBhbmQgZGVmaW5l
ZCBQb0QgaXM8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxz
cGFuIGxhbmc9IkVOLUdCIj4mbmJzcDsmbmJzcDsgY2hvc2VuLjwvc3Bhbj48bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt
c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2lu
LXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4t
R0IiPkl0IHNlZW1zIG9kZCB0aGF0IHRoZSBjaG9pY2Ugb2YgYWR2ZXJ0aXNlZCBwb2QgaXMgYXQg
Zmlyc3Qgbm9uLWRldGVybWluaXN0aWMgKHJhY2UgdG8gdGhlIGZpcnN0IGFkamFjZW5jeSkgYW5k
IHRoZW4sIG9ubHkgaWYgdGhpcyBpbml0aWFsIGFkamFjZW5jeSBpcyBsb3N0LCB0aGUNCiBjaG9p
Y2Ugb2YgcG9kIGJlY29tZXMgZGV0ZXJtaW5pc3RpYy4gV2h5IG5vdCBtYWtlIGl0IGRldGVybWlu
aXN0aWMgdGhlIHdob2xlIHRpbWU/PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rp
dj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNw
OzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoZSBmaXJz
dCBhZGphY2VuY3kgaXMgc2ltcGx5IHVzZWQgdG8gc3BlZWQgdXAgdGhpbmdzIHNpbmNlIG90aGVy
d2lzZSBob3cgbG9uZyBkbyB5b3Ugd2FpdCB1bnRpbCB5b3UgaGF2ZSBhbGwgbm9ydGhib3VuZCBh
ZGphY2VuY2llcz8mbmJzcDsgT2JzZXJ2ZSB0aGF0IGxldmVsIFpUUCB3aWxsIHBvc3NpYmx5IGRy
b3AgYWRqYWNlbmNpZXMgd2hpbGUgaXQncyBjb252ZXJnaW5nIHNvIHRoZSBjb25zZXF1ZW50IHNl
dCB3aWxsDQogcmVmaW5lIHRoZSBQb0QgYXMgd2VsbCwgaS5lLiB0aGUgWlRQIGlzIGd1YXJhbnRl
ZWQgdG8gZ2V0IHRoZSBub2RlIHRvIHRoZSBtYXhpbXVtIGF2YWlsYWJsZSBsZXZlbCZuYnNwO0Ag
d2hpY2ggcG9pbnQgaW4gdGltZSB0aGUgbm9ydGhib3VuZCBhdmFpbGFibGUgYWRqYWNlbmNpZXMg
d2lsbCBkZXRlcm1pbmUgdGhlIFBvRC4gT2J2aW91bHkgdGhlIGFkamFjZW5jaWVzIGNhbiBkaXNh
Z3JlZSBhYm91dCB0aGUgUG9EIGFuZCBzdWNoIGEgc2NlbmFyaW8gY2FuDQogYmUgdXNlZCBieSBh
biBpbXBsZW1lbnRhdGlvbiB0byByZXBvcnQgbWlzY2FibGluZ3MuIFdlIHRhbGsgcXVpY2tseSBh
Ym91dCBtaXNjYWJsaW5nIGRldGVjdGlvbiBpbiB0aGUgc3BlYyBzaW5jZSBpdCdzIHN1Y2ggYSBk
ZXNpcmFibGUgcHJvcGVydHkgX29mIGFuIGltcGxlbWVudGFpdG9uXyBidXQgaXQncyBub3QgbmVj
ZXNzYXJ5IGZvciBjb3JyZWN0IHByb3RvY29sIG9wZXJhdGlvbiBzbyB3ZSBkb24ndCBtYWtlIGFu
eXRoaW5nIG5vcm1hdGl2ZQ0KIGV4Y2VwdCBkaXNhbGxvd2luZyBhZGphY2VuY3kgZm9ybWluZyBh
Y3Jvc3MgUG9EcyBpZiBkZWZpbmVkLiBTaW5jZSBjb25maWd1cnRpbmcgYW5kIGNvbnZlcmdpbmcg
UG9EcyBpcyBvcHRpb25hbCB3ZSBhbGxvdyBldmVuIHRvIGRpc3JlZ2FyZCB0aGlzIHJ1bGUgb24g
YWRqYWNlbmN5IGZvcm1hdGlvbi4mbmJzcDsNCjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5bSkVI
XSBUaGFua3Mg4oCTIG1ha2VzIHNlbnNlLiBJIGhhZCBtaXNzZWQgdGhhdCBaVFAgY2FuIGRyb3Ag
YWRqYWNlbmNpZXMgd2hlbiBJIHdyb3RlIHRoaXMgY29tbWVudC48bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQg
I0NDQ0NDQyAxLjBwdDtwYWRkaW5nOjBjbSAwY20gMGNtIDYuMHB0O21hcmdpbi1sZWZ0OjQuOHB0
O21hcmdpbi1yaWdodDowY20iPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz
dHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8i
PjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1i
b3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj5TZWN0aW9uIDUuMi4zLjI8L3NwYW4+
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10
b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdC
Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxz
cGFuIGxhbmc9IkVOLUdCIj5JbiB0aGUgZXhhbXBsZSBUSUVzLCAmcXVvdDtTcGluZTIxJnF1b3Q7
IHNob3VsZCBiZSAmcXVvdDtUb0YgMjEmcXVvdDsgdG8gYWdyZWUgd2l0aCB0aGUgbm9tZW5jbGF0
dXJlIG9mIGZpZ3VyZSAyLiZuYnNwOyBEaXR0byBpbiB0YWJsZSA0IChzZWN0aW9uIDUuMi4zLjQp
PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1t
YXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5n
PSJFTi1HQiI+SW4gU3BpbmUgMTExJ3MgTm9kZS1TLVRJRSwgSSBhbSBub3Qgc3VyZSB0aGF0IHRo
ZSBsaW5rcyguLi4pIHNob3VsZCBiZSBnaXZlbiBmb3IgZWFjaCBuZWlnaGJvci48L3NwYW4+PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+Y29ycmVjdGVkIHRoZSBUb0YgMjEvMjIgZXZlcnl3aGVyZS4mbmJz
cDsgWWVzLCBvbiBjYXJlZnVsIHJlYWRpbmcgb25lIHdvbmRlcnMgV0hZIG5vZGUgc291dGggdGll
IHNob3VsZCBpbmNsdWRlIF9hbGxfIGxpbmtzLiBUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgYm90aCBm
bG9vZCByZWR1Y3Rpb24gYXMgd2VsbCBhcyBiYW5kd2lkdGggYmFsYW5jaW5nIHNpbmNlIGJvdGgg
aGFwcGVuIGZyb20gc291dGggZ29pbmcgdXAgYW5kDQogdGhlIG5vZGUgY29tcHV0aW5nIG5lZWRz
IHRoZSBub3J0aGJvdW5kIG5laWdoYm9ycyBvZiB0aGUgbGV2ZWwgdXAuIFRoYXQncyBvbmUgb2Yg
dGhlIHJlYXNvbnMgdGhlIGV4YW1wbGUgaXMgZ2l2bmUuIEknbGwgYWRkIGEgY2xhcmlmeWluZyBz
ZW50ZW5jZS4NCjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5bSkVIXSBU
aGFua3MuIERvZXMgdGhhdCBtZWFuIHRoZSBsaW5rcyjigKYpIHNob3VsZCBiZSBhZGRlZCB0byBT
cGluZTEyMeKAmXMgTm9kZSBTLVRJRSBpbiB0aGUgc2FtZSBleGFtcGxlPzxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29s
aWQgI0NDQ0NDQyAxLjBwdDtwYWRkaW5nOjBjbSAwY20gMGNtIDYuMHB0O21hcmdpbi1sZWZ0OjQu
OHB0O21hcmdpbi1yaWdodDowY20iPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
IiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1
dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdp
bi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj5TZWN0aW9uIDUuMi4zLjU8L3Nw
YW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdp
bi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVO
LUdCIj4mcXVvdDtJdCBzaG91bGQgb25seSBzZXQgaXQgaW4gdGhlIHNvdXRoYm91bmQgZGlyZWN0
aW9uLiZxdW90OyZuYnNwOyAtIFNIT1VMRD88L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+
Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Y29y
cmVjdGVkPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRl
cjpub25lO2JvcmRlci1sZWZ0OnNvbGlkICNDQ0NDQ0MgMS4wcHQ7cGFkZGluZzowY20gMGNtIDBj
bSA2LjBwdDttYXJnaW4tbGVmdDo0LjhwdDttYXJnaW4tcmlnaHQ6MGNtIj4NCjxkaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21z
by1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PC9zcGFu
PjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t
dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1H
QiI+U2VjdGlvbiA1LjIuMy44PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs
dDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+RGVmaW5lIE4tU1BGIG9uIGZpcnN0IHVzZTwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5PSywgTi1TUEYgYW5kIFMtU1BGIGFkZGVkIHRvIGdsb3Nz
YXJ5LjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6
bm9uZTtib3JkZXItbGVmdDpzb2xpZCAjQ0NDQ0NDIDEuMHB0O3BhZGRpbmc6MGNtIDBjbSAwY20g
Ni4wcHQ7bWFyZ2luLWxlZnQ6NC44cHQ7bWFyZ2luLXJpZ2h0OjBjbSI+DQo8ZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28t
bWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzwvc3Bhbj48
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRv
cC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0Ii
PlNlY3Rpb24gNS4yLjQ8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
IiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1
dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj4mcXVvdDtBIG5vZGUgaGFzIHRocmVlIHNvdXJjZXMmcXVv
dDsgLSBJIHNlZSBvbmx5IHR3byBsaXN0ZWQuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4t
Ym90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+JnF1b3Q7V2UgdXNlIHNpbXBsZSwg
ZmFtaWxpYXIgU1BGIGFsZ29yaXRobXMgaGVyZS4uLiZxdW90OyAtIGlzIHRoZSB1c2Ugb2YgdGhv
c2UgYWxnb3JpdGhtcyBzdXBwb3NlZCB0byBiZSBub3JtYXRpdmU/IE9yIGFyZSB5b3UganVzdCBn
aXZpbmcgYW4gZXhhbXBsZSBhbmQgbGVhdmluZyBtZSB0bw0KIGNob29zZSBteSBvd24gYWxnb3Jp
dGhtPyZuYnNwOyBJZiBTUEYgaXMgbm9ybWF0aXZlIHRoZW4geW91IG5lZWQgdG8gc3BlY2lmeSBp
dCB1c2luZyBub3JtYXRpdmUgbGFuZ3VhZ2Ugb3IgaW5jbHVkZSBhIG5vcm1hdGl2ZSByZWZlcmVu
Y2UgdG8gaXQuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2tx
dW90ZT4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkkgdHJpZWQgdG8gY2xhcmlmeSB0
aGF0IGJldHRlciBpbiB0aGUgZXhpc3RpbmcgdGV4dCBieSBleHBhbmRpbmcgdG8NCjxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8
L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cHJlIHN0eWxlPSJiYWNrZ3JvdW5kOndoaXRlIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjguNXB0O2ZvbnQtZmFtaWx5OiZxdW90O01lbmxvJnF1b3Q7
LHNlcmlmO2NvbG9yOmJsYWNrO2JhY2tncm91bmQ6I0VGRUZFRiI+Jmx0Ozwvc3Bhbj48Yj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjguNXB0O2ZvbnQtZmFtaWx5OiZxdW90O01lbmxvJnF1b3Q7LHNl
cmlmO2NvbG9yOm5hdnk7YmFja2dyb3VuZDojRUZFRkVGIj50PC9zcGFuPjwvYj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjguNXB0O2ZvbnQtZmFtaWx5OiZxdW90O01lbmxvJnF1b3Q7LHNlcmlmO2Nv
bG9yOmJsYWNrO2JhY2tncm91bmQ6I0VGRUZFRiI+Jmd0O0Egbm9kZSBoYXMgdGhyZWUgcG9zc2li
bGUgc291cmNlcyBvZiByZWxldmFudCBpbmZvcm1hdGlvbiBmb3IgcmVhY2hhYmlsaXR5IGNvbXB1
dGF0aW9uLiZuYnNwOyA8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QSBub2RlIGtub3dzPGJy
PiZuYnNwOyZuYnNwOyZuYnNwOyB0aGUgZnVsbCB0b3BvbG9neSBzb3V0aCBvZiBpdCBmcm9tIHRo
ZSByZWNlaXZlZCBOb3J0aCBOb2RlIFRJRXMgb3IgYWx0ZXJuYXRlbHk8YnI+Jm5ic3A7Jm5ic3A7
Jm5ic3A7IG5vcnRoIG9mIGl0IGZyb20gdGhlIFNvdXRoIE5vZGUgVElFcy4uJm5ic3A7IEEgbm9k
ZSBoYXMgdGhlPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyBzZXQgb2YgcHJlZml4ZXMgd2l0aCB0aGVp
ciBhc3NvY2lhdGVkIGRpc3RhbmNlcyBhbmQgYmFuZHdpZHRocyBmcm9tPGJyPiZuYnNwOyZuYnNw
OyZuYnNwOyBjb3JyZXNwb25kaW5nIHByZWZpeCBUSUVzLiZsdDsvPC9zcGFuPjxiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7
Y29sb3I6bmF2eTtiYWNrZ3JvdW5kOiNFRkVGRUYiPnQ8L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6
YmxhY2s7YmFja2dyb3VuZDojRUZFRkVGIj4mZ3Q7PGJyPjxicj4mbHQ7PC9zcGFuPjxiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2Vy
aWY7Y29sb3I6bmF2eTtiYWNrZ3JvdW5kOiNFRkVGRUYiPnQ8L3NwYW4+PC9iPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29s
b3I6YmxhY2s7YmFja2dyb3VuZDojRUZFRkVGIj4mZ3Q7VG8gY29tcHV0ZSBwcmVmaXggcmVhY2hh
YmlsaXR5LCBhIG5vZGUgcnVucyBjb25jZXB0dWFsbHkgYSBub3J0aGJvdW5kPGJyPiZuYnNwOyZu
YnNwOyZuYnNwOyBhbmQgYSBzb3V0aGJvdW5kPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyBTUEYuPGJy
PiZuYnNwOyZuYnNwOyZuYnNwOyBXZSBjYWxsIHRoYXQgTi1TUEYgYW5kIFMtU1BGIGRlbm90aW5n
IHRoZSBkaXJlY3Rpb24gaW4gd2hpY2ggdGhlIGNvbXB1dGF0aW9uPGJyPiZuYnNwOyZuYnNwOyZu
YnNwOyBmcm9udCBpcyBwcm9ncmVzc2luZy48YnI+Jmx0Oy88L3NwYW4+PGI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZTo4LjVwdDtmb250LWZhbWlseTomcXVvdDtNZW5sbyZxdW90OyxzZXJpZjtjb2xv
cjpuYXZ5O2JhY2tncm91bmQ6I0VGRUZFRiI+dDwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZTo4LjVwdDtmb250LWZhbWlseTomcXVvdDtNZW5sbyZxdW90OyxzZXJpZjtjb2xvcjpibGFj
aztiYWNrZ3JvdW5kOiNFRkVGRUYiPiZndDs8YnI+PGJyPiZsdDs8L3NwYW4+PGI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZTo4LjVwdDtmb250LWZhbWlseTomcXVvdDtNZW5sbyZxdW90OyxzZXJpZjtj
b2xvcjpuYXZ5O2JhY2tncm91bmQ6I0VGRUZFRiI+dDwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZTo4LjVwdDtmb250LWZhbWlseTomcXVvdDtNZW5sbyZxdW90OyxzZXJpZjtjb2xvcjpi
bGFjaztiYWNrZ3JvdW5kOiNFRkVGRUYiPiZndDtTaW5jZSBuZWl0aGVyIGNvbXB1dGF0aW9uIGNh
biAmcXVvdDtsb29wJnF1b3Q7LCBpdCBpczxicj4mbmJzcDsmbmJzcDsmbmJzcDsgcG9zc2libGUg
dG8gY29tcHV0ZSBub24tZXF1YWwtY29zdCBvciBldmVuPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyAm
bHQ7PC9zcGFuPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6bmF2eTtiYWNrZ3JvdW5kOiNFRkVGRUYiPnhyZWYg
PC9zcGFuPjwvYj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjguNXB0O2ZvbnQtZmFtaWx5OiZx
dW90O01lbmxvJnF1b3Q7LHNlcmlmO2NvbG9yOmJsdWU7YmFja2dyb3VuZDojRUZFRkVGIj50YXJn
ZXQ8L3NwYW4+PC9iPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OC41cHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6Z3JlZW47YmFja2dyb3VuZDojRUZFRkVGIj49
JnF1b3Q7RVBQU1RFSU4mcXVvdDs8L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OC41
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6YmxhY2s7YmFja2dy
b3VuZDojRUZFRkVGIj4mZ3Q7ay1zaG9ydGVzdCBwYXRocyZsdDsvPC9zcGFuPjxiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7
Y29sb3I6bmF2eTtiYWNrZ3JvdW5kOiNFRkVGRUYiPnhyZWY8L3NwYW4+PC9iPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29s
b3I6YmxhY2s7YmFja2dyb3VuZDojRUZFRkVGIj4mZ3Q7PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyBh
bmQgJnF1b3Q7c2F0dXJhdGUmcXVvdDsgdGhlIGZhYnJpYzxicj4mbmJzcDsmbmJzcDsmbmJzcDsg
dG8gdGhlIGV4dGVudCBkZXNpcmVkIGJ1dCB3ZSB1c2Ugc2ltcGxlLCBmYW1pbGlhciBTUEYgYWxn
b3JpdGhtcyBhbmQ8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGNvbmNlcHRzIGhlcmUgYXMgZXhhbXBs
ZSBkdWUgdG8gdGhlaXIgcHJldmFsZW5jZSBpbiB0b2RheSdzIHJvdXRpbmcuPGJyPiZsdDsvPC9z
cGFuPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVu
bG8mcXVvdDssc2VyaWY7Y29sb3I6bmF2eTtiYWNrZ3JvdW5kOiNFRkVGRUYiPnQ8L3NwYW4+PC9i
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVv
dDssc2VyaWY7Y29sb3I6YmxhY2s7YmFja2dyb3VuZDojRUZFRkVGIj4mZ3Q7PC9zcGFuPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2Vy
aWY7Y29sb3I6YmxhY2siPjxvOnA+PC9vOnA+PC9zcGFuPjwvcHJlPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5TbyB0aGUgYWxnb3JpdGhtcyBnaXZlbiBhcmUgTk9UIG5v
cm1hdGl2ZSBidXQgSSBpbXByb3ZlZCB3aGF0IF9pc18gbm9ybWF0aXZlIGluIHRoZSBOLVNQRiBh
bmQgUy1TUEYgc2VjdGlvbg0KPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cHJlIHN0
eWxlPSJtYXJnaW4tYm90dG9tOjEyLjBwdDtiYWNrZ3JvdW5kOndoaXRlIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjguNXB0O2ZvbnQtZmFtaWx5OiZxdW90O01lbmxvJnF1b3Q7LHNlcmlmO2NvbG9y
OmJsYWNrO2JhY2tncm91bmQ6I0VGRUZFRiI+Jmx0Ozwvc3Bhbj48Yj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjguNXB0O2ZvbnQtZmFtaWx5OiZxdW90O01lbmxvJnF1b3Q7LHNlcmlmO2NvbG9yOm5h
dnk7YmFja2dyb3VuZDojRUZFRkVGIj5zZWN0aW9uIDwvc3Bhbj48L2I+PGI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZTo4LjVwdDtmb250LWZhbWlseTomcXVvdDtNZW5sbyZxdW90OyxzZXJpZjtjb2xv
cjpibHVlO2JhY2tncm91bmQ6I0VGRUZFRiI+YW5jaG9yPC9zcGFuPjwvYj48Yj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjguNXB0O2ZvbnQtZmFtaWx5OiZxdW90O01lbmxvJnF1b3Q7LHNlcmlmO2Nv
bG9yOmdyZWVuO2JhY2tncm91bmQ6I0VGRUZFRiI+PSZxdW90O25zcGYmcXVvdDsgPC9zcGFuPjwv
Yj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjguNXB0O2ZvbnQtZmFtaWx5OiZxdW90O01lbmxv
JnF1b3Q7LHNlcmlmO2NvbG9yOmJsdWU7YmFja2dyb3VuZDojRUZFRkVGIj50aXRsZTwvc3Bhbj48
L2I+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo4LjVwdDtmb250LWZhbWlseTomcXVvdDtNZW5s
byZxdW90OyxzZXJpZjtjb2xvcjpncmVlbjtiYWNrZ3JvdW5kOiNFRkVGRUYiPj0mcXVvdDtOb3J0
aGJvdW5kIFNQRiZxdW90Ozwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo4LjVwdDtm
b250LWZhbWlseTomcXVvdDtNZW5sbyZxdW90OyxzZXJpZjtjb2xvcjpibGFjaztiYWNrZ3JvdW5k
OiNFRkVGRUYiPiZndDs8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo4LjVwdDtmb250LWZh
bWlseTomcXVvdDtNZW5sbyZxdW90OyxzZXJpZjtjb2xvcjpibGFjayI+PGJyPjxicj4mbmJzcDsm
bmJzcDsmbmJzcDsgPHNwYW4gc3R5bGU9ImJhY2tncm91bmQ6I0VGRUZFRiI+Jmx0Ozwvc3Bhbj48
L3NwYW4+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo4LjVwdDtmb250LWZhbWlseTomcXVvdDtN
ZW5sbyZxdW90OyxzZXJpZjtjb2xvcjpuYXZ5O2JhY2tncm91bmQ6I0VGRUZFRiI+dDwvc3Bhbj48
L2I+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo4LjVwdDtmb250LWZhbWlseTomcXVvdDtNZW5sbyZx
dW90OyxzZXJpZjtjb2xvcjpibGFjaztiYWNrZ3JvdW5kOiNFRkVGRUYiPiZndDs8L3NwYW4+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZTo4LjVwdDtmb250LWZhbWlseTomcXVvdDtNZW5sbyZxdW90Oyxz
ZXJpZjtjb2xvcjpibGFjayI+IE4tU1BGIDxiPk1VU1QgdXNlIE9OTFk8L2I+IG5vcnRoYm91bmQg
YW5kIEVhc3QtV2VzdCBhZGphY2VuY2llcyBpbiB0aGUgY29tcHV0aW5nPGJyPiZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBub2RlJ3Mgbm9kZSBOb3J0aCBUSUVzIChz
aW5jZSBpZiB0aGUgbm9kZSBpcyBhIGxlYWYgaXQgbWF5IG5vdCBoYXZlPGJyPiZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBnZW5lcmF0ZWQgYSBub2RlIFNvdXRoIFRJ
RSk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHdoZW4gc3Rh
cnRpbmcgU1BGLiA8c3BhbiBzdHlsZT0iYmFja2dyb3VuZDojRUZFRkVGIj4uLi48YnI+PGJyPiZs
dDs8L3NwYW4+PC9zcGFuPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OC41cHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6bmF2eTtiYWNrZ3JvdW5kOiNFRkVGRUYi
PnQ8L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6YmxhY2s7YmFja2dyb3VuZDojRUZFRkVGIj4mZ3Q7
T25jZSBwcm9ncmVzc2luZywgd2UgYXJlIHVzaW5nIHRoZSBuZXh0IGhpZ2hlciBsZXZlbCdzIG5v
ZGUgU291dGggVElFcyB0bzxicj4mbmJzcDsmbmJzcDsmbmJzcDsgZmluZCBhY2NvcmRpbmcgYWRq
YWNlbmNpZXMgdG8gdmVyaWZ5IGJhY2tsaW5rIGNvbm5lY3Rpdml0eS48YnI+Jm5ic3A7Jm5ic3A7
Jm5ic3A7IEp1c3QgYXMgaW4gY2FzZSBvZiBJUy1JUyBvciBPU1BGLCB0d28gdW5pZGlyZWN0aW9u
YWwgbGlua3M8Yj4gTVVTVDwvYj4gYmU8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGFzc29jaWF0ZWQ8
YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHRvZ2V0aGVyIHRvIGNvbmZpcm0gYmlkaXJlY3Rpb25hbCBj
b25uZWN0aXZpdHkuIC4uLjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjguNXB0O2ZvbnQt
ZmFtaWx5OiZxdW90O01lbmxvJnF1b3Q7LHNlcmlmO2NvbG9yOmJsYWNrIj48bzpwPjwvbzpwPjwv
c3Bhbj48L3ByZT4NCjwvZGl2Pg0KPGRpdj4NCjxwcmUgc3R5bGU9Im1hcmdpbi1ib3R0b206MTIu
MHB0O2JhY2tncm91bmQ6d2hpdGUiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OC41cHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6YmxhY2s7YmFja2dyb3VuZDojRUZF
RkVGIj4mbHQ7PC9zcGFuPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OC41cHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6bmF2eTtiYWNrZ3JvdW5kOiNFRkVGRUYi
PnNlY3Rpb24gPC9zcGFuPjwvYj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjguNXB0O2ZvbnQt
ZmFtaWx5OiZxdW90O01lbmxvJnF1b3Q7LHNlcmlmO2NvbG9yOmJsdWU7YmFja2dyb3VuZDojRUZF
RkVGIj5hbmNob3I8L3NwYW4+PC9iPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OC41cHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6Z3JlZW47YmFja2dyb3VuZDoj
RUZFRkVGIj49JnF1b3Q7c3NwZiZxdW90OyA8L3NwYW4+PC9iPjxiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6Ymx1
ZTtiYWNrZ3JvdW5kOiNFRkVGRUYiPnRpdGxlPC9zcGFuPjwvYj48Yj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjguNXB0O2ZvbnQtZmFtaWx5OiZxdW90O01lbmxvJnF1b3Q7LHNlcmlmO2NvbG9yOmdy
ZWVuO2JhY2tncm91bmQ6I0VGRUZFRiI+PSZxdW90O1NvdXRoYm91bmQgU1BGJnF1b3Q7PC9zcGFu
PjwvYj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjguNXB0O2ZvbnQtZmFtaWx5OiZxdW90O01lbmxv
JnF1b3Q7LHNlcmlmO2NvbG9yOmJsYWNrO2JhY2tncm91bmQ6I0VGRUZFRiI+Jmd0Ozwvc3Bhbj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjguNXB0O2ZvbnQtZmFtaWx5OiZxdW90O01lbmxvJnF1b3Q7
LHNlcmlmO2NvbG9yOmJsYWNrIj48YnI+PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyA8c3BhbiBzdHls
ZT0iYmFja2dyb3VuZDojRUZFRkVGIj4mbHQ7PC9zcGFuPjwvc3Bhbj48Yj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjguNXB0O2ZvbnQtZmFtaWx5OiZxdW90O01lbmxvJnF1b3Q7LHNlcmlmO2NvbG9y
Om5hdnk7YmFja2dyb3VuZDojRUZFRkVGIj50PC9zcGFuPjwvYj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjguNXB0O2ZvbnQtZmFtaWx5OiZxdW90O01lbmxvJnF1b3Q7LHNlcmlmO2NvbG9yOmJsYWNr
O2JhY2tncm91bmQ6I0VGRUZFRiI+Jmd0Ozwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjgu
NXB0O2ZvbnQtZmFtaWx5OiZxdW90O01lbmxvJnF1b3Q7LHNlcmlmO2NvbG9yOmJsYWNrIj4gPGI+
Uy1TUEYgTVVTVCB1c2UgT05MWTwvYj4gdGhlPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyBzb3V0aGJvdW5kIGFkamFjZW5jaWVzIGluIHRoZSBub2RlIFNvdXRo
IFRJRXMsPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpLmUu
IHByb2dyZXNzZXMgdG93YXJkcyBub2RlcyBhdCBsb3dlciBsZXZlbHMuIE9ic2VydmUgdGhhdDxi
cj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgRS1XIGFkamFjZW5j
aWVzIGFyZSBORVZFUiB1c2VkIGluIHRoZSBjb21wdXRhdGlvbi4gVGhpcyBlbmZvcmNlcyB0aGU8
YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJlcXVpcmVtZW50
IHRoYXQgYSBwYWNrZXQgdHJhdmVyc2luZyBpbiBhIHNvdXRoYm91bmQgZGlyZWN0aW9uIG11c3Q8
YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IG5ldmVyIGNoYW5n
ZSBpdHMgZGlyZWN0aW9uLjxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kOiNFRkVGRUYiPiZsdDsvPC9z
cGFuPjwvc3Bhbj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjguNXB0O2ZvbnQtZmFtaWx5OiZx
dW90O01lbmxvJnF1b3Q7LHNlcmlmO2NvbG9yOm5hdnk7YmFja2dyb3VuZDojRUZFRkVGIj50PC9z
cGFuPjwvYj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjguNXB0O2ZvbnQtZmFtaWx5OiZxdW90O01l
bmxvJnF1b3Q7LHNlcmlmO2NvbG9yOmJsYWNrO2JhY2tncm91bmQ6I0VGRUZFRiI+Jmd0Ozwvc3Bh
bj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjguNXB0O2ZvbnQtZmFtaWx5OiZxdW90O01lbmxvJnF1
b3Q7LHNlcmlmO2NvbG9yOmJsYWNrIj48YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxzcGFuIHN0eWxl
PSJiYWNrZ3JvdW5kOiNFRkVGRUYiPiZsdDs8L3NwYW4+PC9zcGFuPjxiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6
bmF2eTtiYWNrZ3JvdW5kOiNFRkVGRUYiPnQ8L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6YmxhY2s7
YmFja2dyb3VuZDojRUZFRkVGIj4mZ3Q7PC9zcGFuPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6YmxhY2siPlMt
U1BGIE1VU1Q8L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OC41cHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6YmxhY2siPiB1c2Ugbm9ydGhib3VuZCBh
ZGphY2VuY2llcyBpbiBub2RlIE5vcnRoIFRJRXMgdG8gdmVyaWZ5IGJhY2tsaW5rPGJyPiZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBjb25uZWN0aXZpdHkgYnkgY2hl
Y2tpbmcgZm9yIHByZXNlbmNlIG9mIHRoZSBsaW5rIGJlc2lkZSBjb3JyZWN0IFN5c3RlbUlEIGFu
ZCA8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7bGV2
ZWwuIDxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kOiNFRkVGRUYiPiZsdDsvPC9zcGFuPjwvc3Bhbj48
Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjguNXB0O2ZvbnQtZmFtaWx5OiZxdW90O01lbmxvJnF1
b3Q7LHNlcmlmO2NvbG9yOm5hdnk7YmFja2dyb3VuZDojRUZFRkVGIj50PC9zcGFuPjwvYj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjguNXB0O2ZvbnQtZmFtaWx5OiZxdW90O01lbmxvJnF1b3Q7LHNl
cmlmO2NvbG9yOmJsYWNrO2JhY2tncm91bmQ6I0VGRUZFRiI+Jmd0Ozwvc3Bhbj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjguNXB0O2ZvbnQtZmFtaWx5OiZxdW90O01lbmxvJnF1b3Q7LHNlcmlmO2Nv
bG9yOmJsYWNrIj48bzpwPjwvbzpwPjwvc3Bhbj48L3ByZT4NCjxwcmUgc3R5bGU9ImJhY2tncm91
bmQ6d2hpdGUiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6YmxhY2siPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwv
cHJlPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+VGhpcyBpcyBhYm91dCBh
bGwgdGhhdCBuZWVkcyB0byBiZSBzYWlkIGhlcmUgaW4gdGVybXMgb2Ygbm9ybWF0aXZlIGxhbmd1
YWdlIGJlc2lkZSB0aGUgb25lIGFscmVhZHkgcHJlc2VudC4NCjxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj5bSkVIXSBPSywgdGhhbmtzLjxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgI0ND
Q0NDQyAxLjBwdDtwYWRkaW5nOjBjbSAwY20gMGNtIDYuMHB0O21hcmdpbi1sZWZ0OjQuOHB0O21h
cmdpbi1yaWdodDowY20iPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxz
cGFuIGxhbmc9IkVOLUdCIj5TZWN0aW9uIDUuMi40LjE8L3NwYW4+PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h
cmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj5QbGVhc2UgZGVmaW5lIHRo
ZSB0ZXJtcyAmcXVvdDtzb3V0aCBwcmVmaXgmcXVvdDsgYW5kICZxdW90O25vcnRoIHByZWZpeCZx
dW90Ozwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt
c28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4g
bGFuZz0iRU4tR0IiPiZxdW90O1N1cGVyc3VtaW5nJnF1b3Q7IGlzIG5vdCBhIHdvcmQgSSByZWNv
Z25pc2UuJm5ic3A7IFVzZSAmcXVvdDtvciBhIG5vbi1kZWZhdWx0IHByZWZpeCB3aGljaCBjb250
YWlucyB0aGlzIHNvdXRoIHByZWZpeCZxdW90Ozwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2lu
LWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZxdW90O3RoZSBub2RlIGRvZXMg
bm90Li4uJnF1b3Q7IC0mZ3Q7ICZxdW90O3RoZSBjb21wdXRpbmcgbm9kZSBkb2VzIG5vdC4uLiZx
dW90Ozwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt
c28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4g
bGFuZz0iRU4tR0IiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1h
bHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPlNlY3Rpb24gNS4yLjQuMjwvc3Bhbj48bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6
YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZxdW90
O1MtU1BGIHVzZXMgbm9ydGhib3VuZCBhZGphY2VuY2llcyBpbiBub2RlIE4tVElFcyB0byB2ZXJp
ZnkgYmFja2xpbmsgY29ubmVjdGl2aXR5JnF1b3Q7IC0gdGhpcyBzdGF0ZW1lbnQgbmVlZHMgdG8g
YmUgcmVjYXN0IGludG8gbm9ybWF0aXZlIGxhbmd1YWdlIHVzaW5nIFJGQyAyMTE5DQogdGVybXMu
Jm5ic3A7ICZxdW90O0Egbm9kZSBNVVNUIHZlcmlmeSBiYWNrbGluayBjb25uZWN0aXZpdHkgLi4u
IEVsc2UgaXQgTVVTVCBOT1QgaW5jbHVkZSB0aGUgbGluay4uLi4gRXRjLiZxdW90Ozwvc3Bhbj48
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRv
cC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0Ii
PlNhbWUgY29tbWVudCBhcHBsaWVzIGluIG1hbnkgcGxhY2VzIHRocm91Z2hvdXQgdGhlIGRvY3Vt
ZW50Ljwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5yZS1yZWFkIGFuZCBhcHBsaWVkIG1vcmUg
bm9ybWF0aXZlIGxhbmd1YWdlIHRvIHRoZSBzcGVjaWZpYyBzZWN0aW9uIGFzIGluZGljYXRlZCBh
Ym92ZS4mbmJzcDsgUmUtcmVhZCB0aGUgZG9jdW1lbnQgYW5kIG5vcm1hbGl6ZWQgbW9yZSBsYW5n
dWFndGUgd2hlcmUgbmVjZXNzYXJ5Lg0KPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGJsb2Nr
cXVvdGUgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkICNDQ0NDQ0MgMS4wcHQ7
cGFkZGluZzowY20gMGNtIDBjbSA2LjBwdDttYXJnaW4tbGVmdDo0LjhwdDttYXJnaW4tcmlnaHQ6
MGNtIj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJn
aW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJF
Ti1HQiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv
Ij48c3BhbiBsYW5nPSJFTi1HQiI+U2VjdGlvbiA1LjIuNC4zPC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21z
by1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+V2hhdCBpcyBhIGAm
cXVvdDtyaW5nIHByb3RlY3Rpb24mcXVvdDsgc2NoZW1lYD88L3NwYW4+PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+UmluZyBiYXNlZCBwcm90ZWN0aW9uIHNjaGVtZSBqdXN0IGxpa2UgQkxTUi4gSSByZXBs
YWNlIHdpdGggJnF1b3Q7cmluZy1iYXNlZCBwcm90ZWN0aW9uJnF1b3Q7IHdoaWNoIGlzIGZhaXJs
eSB3ZWxsIHVuZGVyc3Rvb2QgdGVybSBpbiBuZXR3b3JraW5nLg0KPG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlJlbW92ZWQgdGhlIHJpbmcgYmFz
ZWQgcHJvdGVjdGlvbiBvZiBhIGxldmVsIHRvIGFwcGxpY2FiaWxpdHkgZHJhZnQgd2hpY2ggbXVs
dGlwbGUgYXV0aG9ycyB3b3JrIG9uIGFuZCB3aGVyZSBpdCBzZWVtcyB0byBiZWxvbmcgcmF0aGVy
IHRoYW4gaW4gdGhlIHNwZWMuIExlZnQgb25seSBjbGFyaWZpY2F0aW9uPG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwcmUgc3R5bGU9ImJhY2tncm91bmQ6d2hpdGUiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7
Y29sb3I6YmxhY2s7YmFja2dyb3VuZDojRUZFRkVGIj4mbHQ7PC9zcGFuPjxiPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29s
b3I6bmF2eTtiYWNrZ3JvdW5kOiNFRkVGRUYiPnQ8L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6Ymxh
Y2s7YmFja2dyb3VuZDojRUZFRkVGIj4mZ3Q7PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6YmxhY2siPlVz
aW5nIHNvdXRoIHByZWZpeGVzIG92ZXIgaG9yaXpvbnRhbCBsaW5rcyBNQVkgb2NjdXI8YnI+Jm5i
c3A7aWYgdGhlIE4tU1BGIGlzIEVhc3QtV2VzdCBhZGphY2VuY2llcyBpbiBjb21wdXRhdGlvbi48
YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IEl0IGNhbjxicj4mbmJzcDsmbmJzcDsmbmJzcDsgcHJvdGVj
dCBhZ2FpbnN0IHBhdGhvbG9naWNhbCBmYWJyaWMgcGFydGl0aW9uaW5nIGNhc2VzIHRoYXQ8YnI+
Jm5ic3A7Jm5ic3A7Jm5ic3A7IGxlYXZlIG9ubHkgcGF0aHMgdG8gZGVzdGluYXRpb25zIHRoYXQg
d291bGQgbmVjZXNzaXRhdGUgbXVsdGlwbGU8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGNoYW5nZXMg
b2YgZm9yd2FyZGluZyBkaXJlY3Rpb24gYmV0d2VlbiBub3J0aCBhbmQgc291dGguPGJyPiZuYnNw
OyZuYnNwOyZuYnNwOyA8c3BhbiBzdHlsZT0iYmFja2dyb3VuZDojRUZFRkVGIj4mbHQ7Lzwvc3Bh
bj48L3NwYW4+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo4LjVwdDtmb250LWZhbWlseTomcXVv
dDtNZW5sbyZxdW90OyxzZXJpZjtjb2xvcjpuYXZ5O2JhY2tncm91bmQ6I0VGRUZFRiI+dDwvc3Bh
bj48L2I+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo4LjVwdDtmb250LWZhbWlseTomcXVvdDtNZW5s
byZxdW90OyxzZXJpZjtjb2xvcjpibGFjaztiYWNrZ3JvdW5kOiNFRkVGRUYiPiZndDs8L3NwYW4+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo4LjVwdDtmb250LWZhbWlseTomcXVvdDtNZW5sbyZxdW90
OyxzZXJpZjtjb2xvcjpibGFjayI+PG86cD48L286cD48L3NwYW4+PC9wcmU+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPltKRUhdIFN1Z2dlc3QgeW91IGNoYW5nZSDigJxpZiB0aGUgTi1TUEYgaXMg
RWFzdC1XZXN0IGFkamFjZW5jaWVz4oCdIHRvIOKAnGlmIHRoZSBOLVNQRiBpbmNsdWRlcyBFYXN0
LVdlc3QgYWRqYWNlbmNpZXPigJ08bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGJsb2NrcXVvdGUg
c3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkICNDQ0NDQ0MgMS4wcHQ7cGFkZGlu
ZzowY20gMGNtIDBjbSA2LjBwdDttYXJnaW4tbGVmdDo0LjhwdDttYXJnaW4tcmlnaHQ6MGNtIj4N
CjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9w
LWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+
QXJlIEUtVyBsaW5rcyBwZXJtaXR0ZWQgYmV0d2VlbiBwbGFuZXM/PC9zcGFuPjxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv
O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+Tm90IHN1cmUg
d2hhdCB0aGlzIGlzIHRlbGxpbmcgbWU6ICZxdW90O1VzaW5nIHNvdXRoIHByZWZpeGVzIG92ZXIg
aG9yaXpvbnRhbCBsaW5rcyBpcyBvcHRpb25hbC4uLiZxdW90OyAtIGlzIHRoYXQgT1BUSU9OQUwg
YXMgaW4gUkZDIDIxMTk/Jm5ic3A7IERvIHlvdSBtZWFuIHRoYXQgbXkgaW1wbGVtZW50YXRpb24N
CiBjYW4gaWdub3JlIHRoZW0/IE9yIG5vdCBhZHZlcnRpc2UgdGhlbT8gT3IgdGhhdCB0aGUgbmV0
d29yayBvcGVyYXRvciBkb2VzIG5vdCBoYXZlIHRvIGNhYmxlIHRoZW0/PC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPkNsYXJpZmllZCBhcyBwZXIgc2VjdGlvbiBhYm92ZS4gSWYgdGhlIE4tU1BG
IGlzIHVzaW5nIGhvcml6b250YWwgYWRqYWNlbmNpZXMgaXQgd2lsbCBwaWNrIHVwIHRob3NlIHBy
ZWZpeGVzLg0KPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPltKRUhdIExv
b2tzIE9LLjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVy
Om5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgI0NDQ0NDQyAxLjBwdDtwYWRkaW5nOjBjbSAwY20gMGNt
IDYuMHB0O21hcmdpbi1sZWZ0OjQuOHB0O21hcmdpbi1yaWdodDowY20iPg0KPGRpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNv
LW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8L3NwYW4+
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10
b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdC
Ij5TZWN0aW9uIDUuMi40LjQ8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0
OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj4mcXVvdDtFdmVuIHRob3VnaCBhIFRvRiBub2RlIGNv
dWxkPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1z
by1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBs
YW5nPSJFTi1HQiI+Jm5ic3A7Jm5ic3A7IGJlIHRlbXB0ZWQgdG8gdXNlIHRob3NlIGxpbmtzIGR1
cmluZyBzb3V0aGJvdW5kIFNQRiB0aGlzIE1VU1QgTk9UIGJlPC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21z
by1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7Jm5ic3A7
IGF0dGVtcHRlZCBzaW5jZSBpdCBtYXkgbGVhZCBpbiwgZS5nLiBhbnljYXN0IGNhc2VzIHRvIHJv
dXRpbmcgbG9vcHMuJnF1b3Q7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs
dDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1t
YXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+VGhpcyBpcyB0b28gdmVy
Ym9zZSBhbmQgb2J0dXNlLiZuYnNwOyBJIGNhbm5vdCBzZWUgaG93IGFueWNhc3QgY2FzZXMgbGVh
ZCB0byByb3V0aW5nIGxvb3BzIGFuZCBJIGRvbid0IGtub3cgaWYgSSBuZWVkIHRvIHVuZGVyc3Rh
bmQgd2h5IG9yIG5vdC4mbmJzcDsgU3VnZ2VzdDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5i
c3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6bm9u
ZTtib3JkZXItbGVmdDpzb2xpZCAjQ0NDQ0NDIDEuMHB0O3BhZGRpbmc6MGNtIDBjbSAwY20gNi4w
cHQ7bWFyZ2luLWxlZnQ6NC44cHQ7bWFyZ2luLXJpZ2h0OjBjbSI+DQo8ZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy
Z2luLWJvdHRvbS1hbHQ6YXV0byI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t
YWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj4mcXVvdDtBIFRvRiBub2RlIE1VU1QgTk9UIGlu
Y2x1ZGUgZWFzdC13ZXN0IGxpbmtzIGluIGl0cyBzb3V0aC1TUEYgY2FsY3VsYXRpb24uJnF1b3Q7
PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoaXMgaXMgYWxyZWFkeSBzYWlkIGluIHRoZSBT
LVNQRiBzZWN0aW9uIHZlcnkgZXhwbGljaXRseSBhcw0KPG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2
Pg0KPGRpdj4NCjxwcmUgc3R5bGU9ImJhY2tncm91bmQ6d2hpdGUiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6Ymxh
Y2s7YmFja2dyb3VuZDojRUZFRkVGIj4mbHQ7PC9zcGFuPjxiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6bmF2eTti
YWNrZ3JvdW5kOiNFRkVGRUYiPnQ8L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OC41
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6YmxhY2s7YmFja2dy
b3VuZDojRUZFRkVGIj4mZ3Q7PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OC41cHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6YmxhY2siPiBTLVNQRiA8Yj5N
VVNUIHVzZSBPTkxZIHRoZTxicj4mbmJzcDsmbmJzcDsmbmJzcDsgc291dGhib3VuZCBhZGphY2Vu
Y2llcyBpbiB0aGUgbm9kZSBTb3V0aCBUSUVzLDxicj4mbmJzcDsmbmJzcDsmbmJzcDsgaS5lLiBw
cm9ncmVzc2VzIHRvd2FyZHMgbm9kZXMgYXQgbG93ZXIgbGV2ZWxzLiBPYnNlcnZlIHRoYXQ8YnI+
Jm5ic3A7Jm5ic3A7Jm5ic3A7IEUtVyBhZGphY2VuY2llcyBhcmUgTkVWRVIgdXNlZCBpbiB0aGUg
Y29tcHV0YXRpb24uIFRoaXMgZW5mb3JjZXMgdGhlPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyByZXF1
aXJlbWVudCB0aGF0IGEgcGFja2V0IHRyYXZlcnNpbmcgaW4gYSBzb3V0aGJvdW5kIGRpcmVjdGlv
biBtdXN0PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyBuZXZlciBjaGFuZ2UgaXRzIGRpcmVjdGlvbi48
L2I+PHNwYW4gc3R5bGU9ImJhY2tncm91bmQ6I0VGRUZFRiI+Jmx0Oy88L3NwYW4+PC9zcGFuPjxi
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVv
dDssc2VyaWY7Y29sb3I6bmF2eTtiYWNrZ3JvdW5kOiNFRkVGRUYiPnQ8L3NwYW4+PC9iPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2Vy
aWY7Y29sb3I6YmxhY2siPjxvOnA+PC9vOnA+PC9zcGFuPjwvcHJlPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGJs
b2NrcXVvdGUgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkICNDQ0NDQ0MgMS4w
cHQ7cGFkZGluZzowY20gMGNtIDBjbSA2LjBwdDttYXJnaW4tbGVmdDo0LjhwdDttYXJnaW4tcmln
aHQ6MGNtIj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1t
YXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5n
PSJFTi1HQiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph
dXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+VGhpcyBzZWN0aW9uIGdpdmVzIHRoZSBpbXByZXNzaW9u
IHRoYXQgRS1XIGxpbmtzIGF0IHRoZSBUb0Ygd2lsbCBuZXZlciBiZSB1c2VkIGZvciBmb3J3YXJk
aW5nIGRhdGEgLSBpcyB0aGF0IHRydWU/Jm5ic3A7IFRoZXkgYXJlIHVzZWQgZm9yIGNvbnRyb2wg
cGxhbmUgb25seT88L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9j
a3F1b3RlPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5ZZXMs
IGl0IGlzIGRlc2NyaWJlZCBpbiB0ZXh0IGJ1dCBJIGNsYXJpZmllZCB0aGUgc2VjdGlvbiBvbiBo
b3Jpem9udGFsIGxpbmtzIGluIFRvRiBmdXJ0aGVyPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0K
PGRpdj4NCjxwcmUgc3R5bGU9ImJhY2tncm91bmQ6d2hpdGUiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6YmxhY2s7
YmFja2dyb3VuZDojRUZFRkVGIj4mbHQ7PC9zcGFuPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6bmF2eTtiYWNr
Z3JvdW5kOiNFRkVGRUYiPnQ8L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OC41cHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6YmxhY2s7YmFja2dyb3Vu
ZDojRUZFRkVGIj4mZ3Q7PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OC41cHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6YmxhY2siPkUtVyBUb0YgbGlua3Mg
YmVoYXZlIGluIHRlcm1zIG9mIGZsb29kaW5nIHNjb3BlcyBkZWZpbmVkIGluPGJyPiZuYnNwOyZu
YnNwOyZuYnNwOyA8c3BhbiBzdHlsZT0iYmFja2dyb3VuZDojRUZFRkVGIj4mbHQ7PC9zcGFuPjwv
c3Bhbj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjguNXB0O2ZvbnQtZmFtaWx5OiZxdW90O01l
bmxvJnF1b3Q7LHNlcmlmO2NvbG9yOm5hdnk7YmFja2dyb3VuZDojRUZFRkVGIj54cmVmIDwvc3Bh
bj48L2I+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo4LjVwdDtmb250LWZhbWlseTomcXVvdDtN
ZW5sbyZxdW90OyxzZXJpZjtjb2xvcjpibHVlO2JhY2tncm91bmQ6I0VGRUZFRiI+dGFyZ2V0PC9z
cGFuPjwvYj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjguNXB0O2ZvbnQtZmFtaWx5OiZxdW90
O01lbmxvJnF1b3Q7LHNlcmlmO2NvbG9yOmdyZWVuO2JhY2tncm91bmQ6I0VGRUZFRiI+PSZxdW90
O3RpZXNjb3BlcyZxdW90Ozwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo4LjVwdDtm
b250LWZhbWlseTomcXVvdDtNZW5sbyZxdW90OyxzZXJpZjtjb2xvcjpibGFjaztiYWNrZ3JvdW5k
OiNFRkVGRUYiPi8mZ3Q7PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OC41cHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6YmxhY2siPiBsaWtlIG5vcnRoYm91
bmQgbGlua3MgYW5kIDxiPk1VU1QgYmUgdXNlZCBmb3IgY29udHJvbCBwbGFuZTxicj4mbmJzcDsm
bmJzcDsmbmJzcDsgaW5mb3JtYXRpb24gZmxvb2RpbmcgT05MWTwvYj4uIEV2ZW4gdGhvdWdoIGEg
VG9GIG5vZGUgY291bGQgYmUgdGVtcHRlZDxicj4mbmJzcDsmbmJzcDsmbmJzcDsgdG8gdXNlIHRo
b3NlIGxpbmtzIGR1cmluZyBzb3V0aGJvdW5kIFNQRiBhbmQgY2FycnkgdHJhZmZpYyBvdmVyIHRo
ZW0gdGhpczxicj4mbmJzcDsmbmJzcDsmbmJzcDsgTVVTVCBOT1QgYmUgYXR0ZW1wdGVkIHNpbmNl
IGl0IG1heSBsZWFkIGluLCBlLmcuIGFueWNhc3QgY2FzZXMgdG8gcm91dGluZyBsb29wcy48YnI+
Jm5ic3A7Jm5ic3A7Jm5ic3A7IEFuIGltcGxlbWVudGlvbiBNQVkgdHJ5IHRvIHJlc29sdmUgdGhl
IGxvb3BpbmcgcHJvYmxlbSBieSBmb2xsb3dpbmcgb24gdGhlIHJpbmcgc3RyaWN0bHk8YnI+Jm5i
c3A7Jm5ic3A7Jm5ic3A7IHRpZS1icm9rZW48YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHNob3J0ZXN0
LXBhdGhzIG9ubHkgYnV0IHRoZSBkZXRhaWxzIGFyZSBvdXRzaWRlIHRoaXMgc3BlY2lmaWNhdGlv
bi4gQW5kIGV2ZW4gdGhlbiw8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHRoZSBwcm9ibGVtIG9mIHBy
b3BlciBjYXBhY2l0eSBwcm92aXNpb25pbmcgb2Ygc3VjaCBsaW5rcyB3aGVuIHRoZXkgYmVjb21l
IHRyYWZmaWMtYmVhcmluZyBpbjxicj4mbmJzcDsmbmJzcDsmbmJzcDsgY2FzZSBvZiBmYWlsdXJl
cyBpcyB2ZXhpbmcuPHNwYW4gc3R5bGU9ImJhY2tncm91bmQ6I0VGRUZFRiI+Jmx0Oy88L3NwYW4+
PC9zcGFuPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6bmF2eTtiYWNrZ3JvdW5kOiNFRkVGRUYiPnQ8L3NwYW4+
PC9iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8m
cXVvdDssc2VyaWY7Y29sb3I6YmxhY2s7YmFja2dyb3VuZDojRUZFRkVGIj4mZ3Q7PC9zcGFuPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDss
c2VyaWY7Y29sb3I6YmxhY2siPjxvOnA+PC9vOnA+PC9zcGFuPjwvcHJlPg0KPC9kaXY+DQo8L2Rp
dj4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+W0pFSF0gT0ssIHRoaXMgaXMgY2xlYXJlci48bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRl
ci1sZWZ0OnNvbGlkICNDQ0NDQ0MgMS4wcHQ7cGFkZGluZzowY20gMGNtIDBjbSA2LjBwdDttYXJn
aW4tbGVmdDo0LjhwdDttYXJnaW4tcmlnaHQ6MGNtIj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90
dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv
O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+JnF1b3Q7QW4g
aW1wbGVtZW50YXRpb24gY291bGQgdHJ5IC4uLiBidXQgdGhlIGRldGFpbHMgYXJlIG91dHNpZGUg
dGhpcyBzcGVjaWZpY2F0aW9uJnF1b3Q7IC0gc28gd2h5IG1lbnRpb24gaXQ/PC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPkJlY2F1c2Ugb2YgdGhlIGZhY3QgdGhhdCB0aGUgcXVlc3Rpb24gd2Fz
IGNvbWluZyB1cCBtdWx0aXBsZSB0aW1lcyBpbiBtZWV0aW5ncy9tYWlscyBhbmQgc28gb24uIElu
c3RlYWQgb2YgbmVnYXRpdmUgZGlzYWdncmVnYXRpb24gcGVvcGxlIHdlcmUgdGVtcHRlZCB0byAm
cXVvdDtmb3J3YXJkIHRocm91Z2ggdGhlIGhvcml6b250YWwgbGlua3Mgb24gdG9wJnF1b3Q7IHdo
ZW4gYSBmYWxsZW4gbGVhZiBzdGFydHMgZm9yd2FyZGluZw0KIGluIHRoZSB3cm9uZyBwbGFuZSAo
aS5lLiB0aGUgb25lIHdoZXJlIGl0J3MgZmFsbGVuKS4gVGhpcyBzZWN0aW9uIHBvaW50cyBvdXQg
dGhhdCB0aGlzIHNob3VsZCBub3QgYmUgYXR0ZW1wdGVkIGR1ZSB0byBsb29waW5nIHByb2JsZW1z
LCBpLmUuIGEgVG9GIG5vZGUgdGhhdCBoYXMgbm8gcmVhY2hhYmlsaXR5IHRvIGFuIGFueWNhc3Qg
YWRkcmVzcyAoc2luY2UgYSBmYWxsZW4gbGVhZiBmb3J3YXJkZWQgdG8gYW4gYW55Y2FzdCBkZXN0
aW5hdGlvbg0KIHRoYXQgaXMgYWxzbyBmYWxsZW4pIGNvdWxkIHRyeSB0byB1c2UgaG9yaXpvbnRh
bCBsaW5rcyB0byBmb3J3YXJkIHRyYWZmaWMgYnV0IGl0IG1heSBoYXZlIG11bHRpcGxlIHBsYW5l
cyB0aGF0IGNhbiByZWFjaCB0aGUgZGVzdGluYXRpb24uIE9idmlvdXNseSB3aGVuIGl0IGZvcndh
cmRzIGUuZy4gbGVmdCBvbiB0aGUgcmluZyAmYW1wOyB0aGUgdHJhZmZpYyBhcnJpdmVzIG9uIHRo
ZSBUb0YgdGhhdCBzZWVtcyB0byBiZSBhYmxlIHRvIHJlYWNoIHRoYXQNCiBhbnljYXN0IHRoZSBU
b0YgbWF5IGNob29zZSB0byBmb3J3YXJkIGl0IGJhY2sgb24gdGhlIHJpbmcgdG8gJnF1b3Q7YW5v
dGhlciBUb0YmcXVvdDsgdGhhdCBjYW4gcmVhY2ggdGhlIGFueWNhc3QuIE9ic2VydmVyIHRoYXQg
UklGVCBpcyBsb29wLWZyZWUgaS5lLiBvbmUgY2FuIGZvcndhcmQgb24gYW55IHBhdGggYXMgbG9u
ZyBpdCByZWFjaGVzIHRoZSBkZXN0aW5hdGlvbiBidXQgc2luY2UgaG9yaXpvbnRhbCBpcyBjb25z
aWRlcmVkIGVxdWl2YWxlbnQgdG8gbm9ydGhib3VuZA0KIGZvcndhcmRpbmcgYW5kIG1ldHJpYyBj
YW4gYmUgZGlzcmVnYXJkZWQgKFJJRlQgaXMgbm90IGJvdW5kIGJ5IHNob3J0ZXN0IHBhdGgpIHRo
ZSB0cmFmZmljIG1heSBqdXN0IGVuZCB1cCBsb29waW5nIGluIHRoZSByaW5nLiBUaGlzIGlzIGhh
cmQgdG8gZGVzY3JpYmUgYW5kIHdvdWxkIHRvIGxvdHMgZmlndXJlcyBoZW5jZSB0aGUgc3BlYyBz
aW1wbHkgc2F5cyAmcXVvdDtkb24ndCBkbyBpdCZxdW90OyBhbmQgaWYgb25lIGlzIHRlbXB0ZWQg
dG8gb25lIHdpbGwgZmluZA0KIG91dCB3aHkgaXQncyBhIGJhZCBpZGVhIHdoZW4gb25lIGltcGxl
bWVudGVkIHRoaXMuIEFuZCB0aGVuIHRoZSBzYWlkIGltcGxlbWVudGVyIHdpbGwgcHJvYmFibHkg
dHJ5IHRvIGZpeCBpdCBieSB0aGUgJnF1b3Q7c2hvcnRlc3QgcGF0aCZxdW90OyBjb21wdXRhdGlv
biZuYnNwO0AgVG9GIGxldmVsIHdoaWNoIGlzIG5leHQgbGF5ZXIgb2YgdGhlIG9uaW9uIHRoZSBk
b2N1bWVudCBtZW50aW9ucyBhbmQgdGhlbiBleHBsYWlucyBhZ2FpbiB0aGF0IHRoaXMgbWF5IHdv
cmsgYnV0DQogaGUgc3RvcCBnb2luZyBvdXQgdGhlcmUgd2l0aCB0aGlzIHNwZWMuIDxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8
L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5UaGUgJnF1b3Q7
cmluZyZxdW90OyBiZXR3ZWVuIHBsYW5lcyBuZWNlc3NhcnkgaXMgdmlzdWFsaXplZCBpbiBmaWd1
cmUgMTMgYW5kIGRlc2NyaWJlZCBpbiBzZWN0aW9uDQo8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHByZSBzdHlsZT0iYmFja2dyb3VuZDp3aGl0ZSI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZTo4LjVwdDtmb250LWZhbWlseTomcXVvdDtNZW5sbyZxdW90OyxzZXJpZjtjb2xvcjpibGFj
ayI+NC4yLjUuMi4xLiZuYnNwOyBDYWJsaW5nIG9mIE11bHRpcGxlIFRvcC1vZi1GYWJyaWMgUGxh
bmVzPG86cD48L286cD48L3NwYW4+PC9wcmU+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPmFnYWluIGluIGFuIGV4YW1wbGUuIEkgZG9uJ3QgdGhpbmsgdGhhdCBuZWVkcyBm
dXJ0aGVyIGNsYXJpZmljYXRpb24uDQo8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+W0pFSF0gVW5kZXJzdG9vZC4gSSB3b3VsZCBzdWdnZXN0IG1vdmluZyDigJxBbiBpbXBs
ZW1lbnRhdGlvbiBjb3VsZOKApuKAnSB0byBhIGZvb3Rub3RlIOKAkyBpZiBvbmx5IG9uZSBjb3Vs
ZCBoYXZlIGZvb3Rub3RlcyBpbiBhbiBSRkMuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxibG9j
a3F1b3RlIHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCAjQ0NDQ0NDIDEuMHB0
O3BhZGRpbmc6MGNtIDBjbSAwY20gNi4wcHQ7bWFyZ2luLWxlZnQ6NC44cHQ7bWFyZ2luLXJpZ2h0
OjBjbSI+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFy
Z2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0i
RU4tR0IiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
IHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0
byI+PHNwYW4gbGFuZz0iRU4tR0IiPlNlY3Rpb24gNS4yLjUuMTwvc3Bhbj48bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt
c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZxdW90O0EgREFH
IGNvbXB1dGF0aW9uJnF1b3Q7IC0gZXhwYW5kIERBRy48L3NwYW4+PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+YWxyZWFkeSBleHBhbmRlZCBpbiBlbnRyYW5jZSB0byB0ZXJtaW5vbG9neSBzZWN0aW9uIGJ1
dCBhZGRlZCBhIG1vcmUgc3BlY2lmaWMgZGVmaW5pdGlvbg0KPG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj5bSkVIXSBBaCDigJMgc29ycnkuIE1pc3NlZCBpdC48bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxl
ZnQ6c29saWQgI0NDQ0NDQyAxLjBwdDtwYWRkaW5nOjBjbSAwY20gMGNtIDYuMHB0O21hcmdpbi1s
ZWZ0OjQuOHB0O21hcmdpbi1yaWdodDowY20iPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t
YWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNv
LW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj4mcXVvdDtOZWl0aGVy
PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1t
YXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5n
PSJFTi1HQiI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlzIGl0IG5lY2Vz
c2FyeSBmb3IgdGhlIHJlY2VpdmluZyBub2RlIHRvIHJlZmxlY3QgdGhlPC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDph
dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGRpc2FnZ3JlZ2F0ZWQgcHJlZml4ZXMgYmFj
ayBvdmVyIGl0cyBhZGphY2VuY2llcyB0byBub2RlcyBhdCB0aGU8L3NwYW4+PG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87
bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgbGV2ZWwgZnJvbSB3aGljaCBpdCB3YXMgcmVjZWl2
ZWQuJnF1b3Q7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5
bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48
c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90
dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+UGxlYXNlIHJlc3RhdGUgdGhpcyB1c2lu
ZyBSRkMgMjExOSBsYW5ndWFnZS48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2
Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7
PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+ZG9uZS4gSXQn
cyBhY3R1YWxseSBub3QgbmVjZXNzYXJ5IGZvciB0aGlzIGxhbmd1YWdlIGhlcmUgdG8gYmUgbm9y
bWF0aXZlIHNpbmNlIHRoZSBub3JtYXRpdmUgcGFydCBpcyBUYWJsZSAzIGFuZCB3aGVuIGl0IGlz
IGltcGxlbWVudGVkIGFsbCB0aGUgYWxnb3JpdGhtIGJlaGF2aW9yIGFuZCByZXN1bHRpbmcgZmxv
b2RpbmcgZm9sbG93cyBzdHJhaWdodCBvdXQgb2YgdGhhdC4gSSBlbXBoYXNpemVkIHRoYXQgdGhl
DQogZmxvb2Rpbmcgc2NvcGVzIHRhYmxlIGlzIG5vcm1hdGl2ZS4gPG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPltKRUhdIE9LPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGJsb2NrcXVvdGUgc3R5
bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkICNDQ0NDQ0MgMS4wcHQ7cGFkZGluZzow
Y20gMGNtIDBjbSA2LjBwdDttYXJnaW4tbGVmdDo0LjhwdDttYXJnaW4tcmlnaHQ6MGNtIj4NCjxk
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFs
dDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+Jm5i
c3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1z
by1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBs
YW5nPSJFTi1HQiI+SG93IGNhbiB3ZSBndWFyYW50ZWUgdGhhdCBhIHNhbWUtbGV2ZWwgbm9kZSBk
b2VzIG5vdCBoYXZlIGEgbmV4dCBob3AgdG8gYSBnaXZlbiBwcmVmaXggdGhhdCBpcyB1bmtub3du
IHRvIHRoZSBub2RlIGRvaW5nIHRoZSBjb21wdXRhdGlvbj8mbmJzcDsgSWYgWCByZWFjaGVzIFAg
dmlhDQogTjEgYW5kIE4yLCBZIChhdCB0aGUgc2FtZSBsZXZlbCBhcyBYKSBjYW4gcmVhY2ggUCB2
aWEgTjMgYnV0IFggZG9lcyBub3Qga25vdyB0aGlzIGFuZCBhc3N1bWVzIFkgY2Fubm90IHJlYWNo
IFAgYmVjYXVzZSBZIGlzIG5vdCBhZGphY2VudCB0byBOMSBhbmQgTjIsIHRoZW4gWCB1bm5lY2Vz
c2FyaWx5IGRpc2FnZ3JlZ2F0ZXMgUCBwb3NpdGl2ZWx5LiZuYnNwOyBGb3IgaW5zdGFuY2UgaWYg
WCdzIGxpbmsgdG8gTjMgaGFzIGZhaWxlZCBhbmQgWSdzIGxpbmtzDQogdG8gTjEgYW5kIE4yIGhh
dmUgZmFpbGVkLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2Nr
cXVvdGU+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj50aGF0IGNhbm5vdCBiZSBndWFy
YW50ZWVkLiBJZiBYIGNhbiByZWFjaCBwcmVmaXggdmlhIE4xIHdoaWNoIFkgZG9lc24ndCBoYXZl
IGFuZCBZIHZpYSBOMyB0aGF0IFggZG9lc24ndCBoYXZlIGJ1dCB0aGV5IG9ubHkgc2VlIHZpYSBh
IG5leHRob3BzIE4wICh0aG91Z2ggd2hpY2ggdGhlIHByZWZpeCBjYW5ub3QgYmUgcmVhY2hlZCkg
dGhlbiBib3RoIHdpbGwgZGlzYWdncmVnYXRlIHNpbmNlIGFueXRoaW5nIGVsc2UNCiB3b3VsZCBi
ZSBhc3N1bWluZyBuZWNlc3NpdHkgb2YgJnF1b3Q7aGFybW9uaWNhIHJvdXRpbmcmcXVvdDsgd2hp
Y2ggUklGVCBkb2Vzbid0IGRvIHNpbmNlIGhhcm1vbmljYSBpcyBvcHBvc2l0ZSB0byB2YWxsZXkg
ZnJlZSByb3V0aW5nIHdoaWNoIFJJRlQgZG9lcyB0byBndWFyYW50ZWUgbG9vcCBmcmVlIGJlaGF2
aW9yLiZuYnNwOyBUaGF0IGlzIGFjdHVhbGx5IGEgZ29vZCBleGFtcGxlIHdoeSBSSUZUIHBvc2l0
aXZlIGRpc2FnZ3JlZ2F0aW9uIGd1YXJhbnRlZXMgc3VmZmljaWVudA0KIGRpc2FnZ3JlZ2F0aW9u
IHRvIHByZXZlbnQgYmxhY2tob2xlcywgbG9vcHMgYW5kIGJvdy10aWVzIGJ1dCBwb3NzaWJseSBt
b3JlIHRoYW4gbmVjZXNzYXJ5ICh3aGljaCBpcyBuZXZlciBjbGFpbWVkIGluIHRoZSBkb2N1bWVu
dCkuICZuYnNwOw0KPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZu
YnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPltKRUhdIFVuZGVyc3Rvb2QuIFNv
IHRoZXJlIG1heSBiZSByZWR1bmRhbnQgZGlzYWdncmVnYXRpb24gYnV0IGl0IGtlZXBzIHRoZSBm
b3J3YXJkaW5nIHBsYW5lIHZhbGxleSBmcmVlLiZuYnNwOyBJIHRoaW5rIHRoYXTigJlzIE9LLjxv
OnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7
PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6bm9uZTti
b3JkZXItbGVmdDpzb2xpZCAjQ0NDQ0NDIDEuMHB0O3BhZGRpbmc6MGNtIDBjbSAwY20gNi4wcHQ7
bWFyZ2luLWxlZnQ6NC44cHQ7bWFyZ2luLXJpZ2h0OjBjbSI+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2lu
LWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzwvc3Bhbj48bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6
YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZxdW90
O0VhY2ggZW50cnkgaXMgYSBsaXN0IG9mIHNvdXRoIG5laWdoYm9yIG9mIFggYW5kIGEgbGlzdCBv
ZiBub2Rlczwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl
PSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNw
YW4gbGFuZz0iRU4tR0IiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBvZiBY
LmxldmVsIHRoYXQgY2FuJ3QgcmVhY2ggdGhhdCBuZWlnaGJvciZxdW90Ozwvc3Bhbj48bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6
YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNw
Ozwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28t
bWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFu
Zz0iRU4tR0IiPlRoaW5rIHRoaXMgc2hvdWxkIHNheTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy
Z2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzwvc3Bhbj48bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1h
bHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZx
dW90O0VhY2ggZW50cnkgaW4gdGhlIHNldCBpcyBhIHNvdXRoIG5laWdoYm9yIG9mIFggYW5kIGEg
bGlzdCBvZiBub2Rlczwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
IHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0
byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyBvZiBYLmxldmVsIHRoYXQgY2FuJ3QgcmVhY2ggdGhhdCBuZWlnaGJvciZxdW90Ozwvc3Bhbj48
bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj55ZXMsIHRoYW5rcy48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgI0NDQ0ND
QyAxLjBwdDtwYWRkaW5nOjBjbSAwY20gMGNtIDYuMHB0O21hcmdpbi1sZWZ0OjQuOHB0O21hcmdp
bi1yaWdodDowY20iPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i
bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFu
IGxhbmc9IkVOLUdCIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t
YWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj4mcXVvdDtYIGRvZXMgbm90IHRvIGRpc2FnZ3Jl
Z2F0ZSBhbnkgcHJlZml4ZXMmcXVvdDsgLSZndDsgJnF1b3Q7JnF1b3Q7WCBkb2VzIG5vdCBkaXNh
Z2dyZWdhdGUgYW55IHByZWZpeGVzLi4mcXVvdDsmcXVvdDs8L3NwYW4+PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+eWVzPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGJsb2NrcXVvdGUgc3R5bGU9ImJv
cmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkICNDQ0NDQ0MgMS4wcHQ7cGFkZGluZzowY20gMGNt
IDBjbSA2LjBwdDttYXJnaW4tbGVmdDo0LjhwdDttYXJnaW4tcmlnaHQ6MGNtIj4NCjxkaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv
O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PC9z
cGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJn
aW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJF
Ti1HQiI+JnF1b3Q7VGhlIFBvRCBjb250YWluaW5nIHRoZSBwcmVmaXggd2lsbCBwcmVmZXIgc291
dGhib3VuZCBhbnl3YXkuJnF1b3Q7IC0gSSBkaWRuJ3QgdW5kZXJzdGFuZCB0aGUgcG9pbnQuIElz
IGl0IG5lY2Vzc2FyeSBmb3IgbWUgdG8gdW5kZXJzdGFuZCBpdD8gUGxlYXNlIGV4cGFuZCBvciBk
ZWxldGUNCiB0aGUgc2VudGVuY2UgaWYgaXQncyBub3QgbmVjZXNzYXJ5Ljwvc3Bhbj48bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj5jbGFyaWZpZWQ6IDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+
DQo8cHJlIHN0eWxlPSJiYWNrZ3JvdW5kOndoaXRlIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjgu
NXB0O2ZvbnQtZmFtaWx5OiZxdW90O01lbmxvJnF1b3Q7LHNlcmlmO2NvbG9yOmJsYWNrO2JhY2tn
cm91bmQ6I0VGRUZFRiI+Jmx0Ozwvc3Bhbj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjguNXB0
O2ZvbnQtZmFtaWx5OiZxdW90O01lbmxvJnF1b3Q7LHNlcmlmO2NvbG9yOm5hdnk7YmFja2dyb3Vu
ZDojRUZFRkVGIj50PC9zcGFuPjwvYj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjguNXB0O2ZvbnQt
ZmFtaWx5OiZxdW90O01lbmxvJnF1b3Q7LHNlcmlmO2NvbG9yOmJsYWNrO2JhY2tncm91bmQ6I0VG
RUZFRiI+Jmd0Ozwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjguNXB0O2ZvbnQtZmFtaWx5
OiZxdW90O01lbmxvJnF1b3Q7LHNlcmlmO2NvbG9yOmJsYWNrIj5hbGwgdGhlIGxvd2VyIGxldmVs
IG5vZGVzIGFyZSBmbG9vZGVkIHRoZSBzYW1lIGRpc2FnZ3JlZ2F0ZWQ8YnI+Jm5ic3A7Jm5ic3A7
Jm5ic3A7IHByZWZpeGVzIHNpbmNlIHdlIGRvbid0IHdhbnQgdG8gYnVpbGQgYW4gU291dGggVElF
IHBlciBub2RlIGFuZDxicj4mbmJzcDsmbmJzcDsmbmJzcDsgY29tcGxpY2F0ZSB0aGluZ3MgdW5u
ZWNlc3NhcmlseS4gVGhlIGxvd2VyIGxldmVsIG5vZGUgPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwO3RoYXQgY2FuIGNvbXB1dGUgYSBzb3V0aGJvdW5kIHJvdXRlIHRvIHRoZSBwcmVmaXg8YnI+
Jm5ic3A7Jm5ic3A7Jm5ic3A7IHdpbGwgcHJlZmVyIGl0IHRvIHRoZSBkaXNhZ2dyZWdhdGVkIHJv
dXRlIGFueXdheSBiYXNlZCBvbiA8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cm91dGUgcHJl
ZmVyZW5jZSBydWxlcy48c3BhbiBzdHlsZT0iYmFja2dyb3VuZDojRUZFRkVGIj4mbHQ7Lzwvc3Bh
bj48L3NwYW4+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo4LjVwdDtmb250LWZhbWlseTomcXVv
dDtNZW5sbyZxdW90OyxzZXJpZjtjb2xvcjpuYXZ5O2JhY2tncm91bmQ6I0VGRUZFRiI+dDwvc3Bh
bj48L2I+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo4LjVwdDtmb250LWZhbWlseTomcXVvdDtNZW5s
byZxdW90OyxzZXJpZjtjb2xvcjpibGFjaztiYWNrZ3JvdW5kOiNFRkVGRUYiPiZndDs8L3NwYW4+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo4LjVwdDtmb250LWZhbWlseTomcXVvdDtNZW5sbyZxdW90
OyxzZXJpZjtjb2xvcjpibGFjayI+PG86cD48L286cD48L3NwYW4+PC9wcmU+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPltKRUhdIFRoYXTigJlzIGJldHRlciwgdGhhbmtzLjxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29s
aWQgI0NDQ0NDQyAxLjBwdDtwYWRkaW5nOjBjbSAwY20gMGNtIDYuMHB0O21hcmdpbi1sZWZ0OjQu
OHB0O21hcmdpbi1yaWdodDowY20iPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
IiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1
dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdp
bi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj5TZWN0aW9uIDUuMi42DQo8L3Nw
YW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdp
bi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVO
LUdCIj4mcXVvdDtzdWNoIGFzIG1vYmlsaXR5IHBlciBzZWN0aW9uIDUuMy4zIG5lY2Vzc2FyeSZx
dW90OyAtIGRlbGV0ZSAmcXVvdDtuZWNlc3NhcnkmcXVvdDsuPC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPnllczxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJi
b3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCAjQ0NDQ0NDIDEuMHB0O3BhZGRpbmc6MGNtIDBj
bSAwY20gNi4wcHQ7bWFyZ2luLWxlZnQ6NC44cHQ7bWFyZ2luLXJpZ2h0OjBjbSI+DQo8ZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0
bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZxdW90O3Rp
ZXMgYXJlIGJyb2tlbiBiYXNlZCB1cG9uIHR5cGUgZmlyc3QgYW5kIHRoZW4gZGlzdGFuY2UgYW5k
IGZ1cnRoZXIgYXR0cmlidXRlcyZxdW90OyAtIEkgZG9uJ3Qgc2VlIG1lbnRpb24gb2YgZnVydGhl
ciBhdHRyaWJ1dGVzIGluIHRoZSBwcm9wb3NlZCBhbGdvcml0aG0uPC9zcGFuPjxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPmNvcnJlY3RlZCB0byA8bzpwPjwvbzpwPjwvcD4NCjxwcmUgc3R5bGU9ImJhY2tn
cm91bmQ6d2hpdGUiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6YmxhY2siPlByZWZpeEF0dHJpYnV0ZXM8bzpwPjwv
bzpwPjwvc3Bhbj48L3ByZT4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZu
YnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
d2hpY2ggYXJlIGNvbnRhaW5lZCBpbiB0aGUgc2NoZW1hLiBNb2JpbGl0eSB0aWUtYnJlYWtpbmcg
aXMgZGVzY3JpYmVkIGluIGl0cyBvd24gc2VjdGlvbi4NCjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5UaGUgZG9jdW1lbnQgZG9lcyBub3Qgc3Rh
bmRhcmRpemUgZnVydGhlciB0aWUtYnJlYWtpbmcgc2luY2UgLmUuZy4gdGllLWJyZWFraW5nIG9u
IHRhZ3MgaXMgcG9zc2libGUgYnV0IGNhbiBiZSBjb21wbGV0ZWx5IGltcGxlbWVudGF0aW9uIGRl
cGVuZGVudCBnaXZlbiBSSUZUIGlzIGxvb3AtZnJlZS4gTmVpdGhlciBkbyBJIHRoaW5rIGFueSBr
aW5kIG9mICZxdW90O3N0YW5kYXJkaXphYmxlIGFncmVlbWVudCZxdW90OyBjb3VsZA0KIGJlIHBv
c3NpYmxlIGhlcmUuIDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHN0eWxl
PSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCAjQ0NDQ0NDIDEuMHB0O3BhZGRpbmc6MGNt
IDBjbSAwY20gNi4wcHQ7bWFyZ2luLWxlZnQ6NC44cHQ7bWFyZ2luLXJpZ2h0OjBjbSI+DQo8ZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6
YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNw
Ozwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28t
bWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFu
Zz0iRU4tR0IiPiZxdW90O1RoZSBuZXh0aG9wPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4t
Ym90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7Jm5ic3A7IGFkamFjZW5j
aWVzIGZvciBhIG5lZ2F0aXZlIHByZWZpeCBhcmUgaW5oZXJpdGVkIGZyb20gdGhlIGxvbmdlc3Q8
L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h
cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9
IkVOLUdCIj4mbmJzcDsmbmJzcDsgcHJlZml4IHRoYXQgYWdncmVnYXRlcyBpdCZxdW90OyAtIHN1
Z2dlc3QgY2hhbmdpbmcgdG8gJnF1b3Q7bG9uZ2VzdCBwb3NpdGl2ZSBwcmVmaXgmcXVvdDs8L3Nw
YW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+b2s8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8Ymxv
Y2txdW90ZSBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgI0NDQ0NDQyAxLjBw
dDtwYWRkaW5nOjBjbSAwY20gMGNtIDYuMHB0O21hcmdpbi1sZWZ0OjQuOHB0O21hcmdpbi1yaWdo
dDowY20iPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h
cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9
IkVOLUdCIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
IiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1
dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj4mcXVvdDthbGwgZW50cmllcyBvZiB0aGUgZmF0aGVyJnF1
b3Q7IC0mZ3Q7ICZxdW90O2FsbCBlbnRyaWVzIG9mIHRoZSBwYXJlbnQmcXVvdDs8L3NwYW4+PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+b2sgPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGJsb2NrcXVv
dGUgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkICNDQ0NDQ0MgMS4wcHQ7cGFk
ZGluZzowY20gMGNtIDBjbSA2LjBwdDttYXJnaW4tbGVmdDo0LjhwdDttYXJnaW4tcmlnaHQ6MGNt
Ij4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t
dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1H
QiI+U2VjdGlvbiA1LjIuNy4zPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs
dDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+JnF1b3Q7d2UgaGF2ZSB0byBkZWNpZGUgd2hldGhl
ciBub2RlIFkgaXMgYXQgdGhlIHNhbWUgbGV2ZWwgYXMgSSwgSiBvciBhdDwvc3Bhbj48bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6
YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNw
OyZuYnNwOyB0aGUgc2FtZSBsZXZlbCBhcyBZIGFuZCBjb25zZXF1ZW50bHksIFggaXMgc291dGgg
b2YgaXQuJnF1b3Q7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv
Ij48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4t
Ym90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+SSBjb3VsZCBub3QgcGFyc2UgdGhp
cy4mbmJzcDsgSSB0aGluayB5b3UgbWlnaHQgbWVhbiB0aGlzOjwvc3Bhbj48bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt
c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2lu
LXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4t
R0IiPiZxdW90O3dlIGhhdmUgdG8gZGVjaWRlIHdoZXRoZXIgbm9kZSBZIGlzIGF0IHRoZSBzYW1l
IGxldmVsIGFzIEksIEoNCjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6
YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOyZuYnNwOyhhbmQgY29uc2VxdWVudGx5IFgg
aXMgc291dGggb2YgaXQpIG9yIGF0IHRoZSBzYW1lIGxldmVsIGFzIFguJnF1b3Q7PC9zcGFuPjxv
OnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPnllcywgY29ycmVjdCwgc29tZXdoYXQgaXQgZ290IGdhcmJsZWQs
IGNvcnJlY3RlZCB0byA8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHByZSBzdHls
ZT0iYmFja2dyb3VuZDp3aGl0ZSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo4LjVwdDtmb250LWZh
bWlseTomcXVvdDtNZW5sbyZxdW90OyxzZXJpZjtjb2xvcjpibGFjaztiYWNrZ3JvdW5kOiNFRkVG
RUYiPiZsdDs8L3NwYW4+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo4LjVwdDtmb250LWZhbWls
eTomcXVvdDtNZW5sbyZxdW90OyxzZXJpZjtjb2xvcjpuYXZ5O2JhY2tncm91bmQ6I0VGRUZFRiI+
dDwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo4LjVwdDtmb250LWZhbWlseTomcXVv
dDtNZW5sbyZxdW90OyxzZXJpZjtjb2xvcjpibGFjaztiYWNrZ3JvdW5kOiNFRkVGRUYiPiZndDs8
L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo4LjVwdDtmb250LWZhbWlseTomcXVvdDtNZW5s
byZxdW90OyxzZXJpZjtjb2xvcjpibGFjayI+Rmlyc3QsIHdlIG11c3QgYW5jaG9yIHRoZSAmcXVv
dDt0b3AmcXVvdDsgb2YgdGhlIGNhYmxpbmcgYW5kIHRoYXQncyB3aGF0PGJyPiZuYnNwOyZuYnNw
OyZuYnNwOyB0aGUgVE9QX09GX0ZBQlJJQyBmbGFnIGF0IG5vZGUgQSBpcyBmb3IuIFRoZW4gdGhp
bmdzIGxvb2sgc21vb3RoIHVudGlsPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyB3ZSBoYXZlIHRvIGRl
Y2lkZSB3aGV0aGVyIG5vZGUgWSBpcyBhdCB0aGUgc2FtZSBsZXZlbCBhcyBJLCBKPGJyPiZuYnNw
OyZuYnNwOyZuYnNwOyAoYW5kIGFzIGNvbnNlcXVlbmNlLCBYIGlzIHNvdXRoIG9mIGl0KSBvciBh
dDxicj4mbmJzcDsmbmJzcDsmbmJzcDsgdGhlIHNhbWUgbGV2ZWwgYXMgWC4gVGhpcyBpczxicj4m
bmJzcDsmbmJzcDsmbmJzcDsgdW5yZXNvbHZhYmxlIGhlcmUgdW50aWwgd2U8YnI+Jm5ic3A7Jm5i
c3A7Jm5ic3A7ICZxdW90O25haWwgZG93biB0aGUgYm90dG9tJnF1b3Q7IG9mIHRoZSB0b3BvbG9n
eS4gVG8gYWNoaWV2ZSB0aGF0IHdlIGNob29zZSB0bzxicj4mbmJzcDsmbmJzcDsmbmJzcDsgdXNl
IGluIHRoaXM8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGV4YW1wbGUgdGhlIGxlYWYgZmxhZ3MgaW4g
WCBhbmQgWS4gSW4gY2FzZSB3aGVyZSBZIHdvdWxkIG5vdCBoYXZlIGEgbGVhZjxicj4mbmJzcDsm
bmJzcDsmbmJzcDsgZmxhZyBpdCB3aWxsIHRyeSB0byBlbGVjdCBoaWdoZXN0IGxldmVsIG9mZmVy
ZWQgYW5kIGVuZCB1cCBiZWluZzxicj4mbmJzcDsmbmJzcDsmbmJzcDsgaW4gc2FtZSBsZXZlbCBh
cyBJIGFuZCBKLjxicj4mbmJzcDsmbmJzcDsmbmJzcDsgPHNwYW4gc3R5bGU9ImJhY2tncm91bmQ6
I0VGRUZFRiI+Jmx0Oy88L3NwYW4+PC9zcGFuPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OC41
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6bmF2eTtiYWNrZ3Jv
dW5kOiNFRkVGRUYiPnQ8L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OC41cHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6YmxhY2s7YmFja2dyb3VuZDoj
RUZFRkVGIj4mZ3Q7PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OC41cHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7TWVubG8mcXVvdDssc2VyaWY7Y29sb3I6YmxhY2siPjxvOnA+PC9vOnA+PC9zcGFu
PjwvcHJlPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5bSkVIXSBMb29rcyBnb29kLjxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxl
ZnQ6c29saWQgI0NDQ0NDQyAxLjBwdDtwYWRkaW5nOjBjbSAwY20gMGNtIDYuMHB0O21hcmdpbi1s
ZWZ0OjQuOHB0O21hcmdpbi1yaWdodDowY20iPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t
YWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNv
LW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj5TZWN0aW9uIDUuMi43
LjQ8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNv
LW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxh
bmc9IkVOLUdCIj5Ib3cgZG9lcyBhIFRvRiBub2RlIGtub3cgd2hhdCB2YWx1ZSB0byBhZHZlcnRp
c2UgaW4gaXRzIExFVkVMX1ZBTFVFPzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9k
aXY+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJz
cDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5UaGlzIGNv
bnN0YW50IGlzIHByb3ZpZGVkIGluIGFwcGVuZGl4IEQuMSA8bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SSdtIHdvcmtpbmcgb24gdGhlIG90aGVy
IGRpcmVjdG9yYXRlIHJldmlld3MgYW5kIHdpbGwgdHJ5IHRvIGN1dCBhIG5ldyB2ZXJzaW9uIHdp
dGggYWxsIHRob3NlIGNoYW5nZXMgYmVmb3JlIGRlYWRsaW5lPG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPltKRUhdIFRoYW5rcyBhZ2FpbiBmb3IgY29uc2lkZXJpbmcgYWxs
IG15IGNvbW1lbnRzLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4m
bmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0K
PC9ib2R5Pg0KPC9odG1sPg0K

--_000_BL0PR02MB48684435784A92180AEE2F87847F0BL0PR02MB4868namp_--


From nobody Mon Nov  4 06:13:02 2019
Return-Path: <zzhang@juniper.net>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7C21D1200E7; Mon,  4 Nov 2019 06:13:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.701
X-Spam-Level: 
X-Spam-Status: No, score=-2.701 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vqEpTjc5aYVU; Mon,  4 Nov 2019 06:12:59 -0800 (PST)
Received: from mx0b-00273201.pphosted.com (mx0b-00273201.pphosted.com [67.231.152.164]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 84865120099; Mon,  4 Nov 2019 06:12:59 -0800 (PST)
Received: from pps.filterd (m0108160.ppops.net [127.0.0.1]) by mx0b-00273201.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id xA4E8Xkm012602; Mon, 4 Nov 2019 06:12:57 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : cc : subject : date : message-id : content-type : content-transfer-encoding : mime-version; s=PPS1017; bh=b3LV2v9LJcmr4ewoZad9ynS8VFj+53WB7R3zsZfrLPU=; b=jhVlluYoxxtV/XU5ft3c/RUoYYciLckXEhwf48Ov+kwIXjH2JnlS9b58pdXp2abnrlF9 xJEQasqolC8eK5jhxqrHW3SdD26ZtV7uNujNZiKp6GQHQ2SLyBmNbdOxYqg+sdS+q43z QTu8wSVz+ylehrYUmxzHLorNhqKnjqSLmAdJ+vLKeUtKG42DRJhSVIbKfTGYCktscBwy 7w4/BICklpfmurZhoz7gcquRHrwTtkHTfRuMckigMNQAZ4xG8oqN3si/0d9D46OvEigq wpYHrfJaOsSDlKY2Le4JJY3zsycwYJ8RRFBkYHKVCft4hFOn730BhGo8Uy/z8s3exl/Z ig== 
Received: from nam01-bn3-obe.outbound.protection.outlook.com (mail-bn3nam01lp2051.outbound.protection.outlook.com [104.47.33.51]) by mx0b-00273201.pphosted.com with ESMTP id 2w2hmx0cas-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 04 Nov 2019 06:12:57 -0800
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KLsodPNmyO6ImXuhF9VC0pfyt/meAH5SfAG9xkSRiAEh/6XPIKICkMm192uTxdXDB8xPjYMrE+FSsoHyduGwfVfMH5x5DSMFMKtRv3eSIfvGkxvPo4smvBgVphssCp4/jfoI79kdbivM0zoLttGMFYSTix8SSjzY9/2Fmb7r662ksE0xukg2wHMP+xvyWdSE9erKrfiE6EfsWl/bsqEhAFYX/6Zols+iyl6q3t1JBINvwW4jvxFrV8FXmVwBvt6GILSrSfBwkETdh/izgJBROB2SfilDLZ/k8P9K52xq37ZhBS8eNH8FBDahRCrCnYOgAB5EJHKOeLOMqVAzsiQ3kg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;  s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=b3LV2v9LJcmr4ewoZad9ynS8VFj+53WB7R3zsZfrLPU=; b=RzmEgvUmdCPzPK0kaFRN051/OP/8Q6cKCsjynYbG+KQO8r/94qXaKIDULlO1KVRa5qaWQJIc/1xGpmKaYvu2g/2OWTn1WKStnxacaPSLOt0sVzj5GVsmIjF73hgyf4WAW3D9YJt/RKz4KCt32AGtLQnMg4DU1YE0wt1qGRcW3sy3zLMILZ3d5TvZQdkeOfD2S46BKK7P7b7N44zupkXQYt1GLJ56VwqQiJgMBHLDLz6QeRUaAXbBGjcLcHu+yNOaPZmysW+AzSEZocrkaXyHsqHpuvzxA3xC49ON3llGFda189WVSyHM8DA5Q3xcpFLXexIN3tsUSCueK8xH7AjfPQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=juniper.net; dmarc=pass action=none header.from=juniper.net; dkim=pass header.d=juniper.net; arc=none
Received: from CY4PR05MB3637.namprd05.prod.outlook.com (10.171.248.25) by CY4PR05MB2982.namprd05.prod.outlook.com (10.169.185.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2430.16; Mon, 4 Nov 2019 14:12:55 +0000
Received: from CY4PR05MB3637.namprd05.prod.outlook.com ([fe80::e036:dbee:4e8c:7359]) by CY4PR05MB3637.namprd05.prod.outlook.com ([fe80::e036:dbee:4e8c:7359%7]) with mapi id 15.20.2430.013; Mon, 4 Nov 2019 14:12:55 +0000
From: "Jeffrey (Zhaohui) Zhang" <zzhang@juniper.net>
To: "rift@ietf.org" <rift@ietf.org>, "rift-chairs@ietf.org" <rift-chairs@ietf.org>
CC: "jefftant.ietf@gmail.com" <jefftant.ietf@gmail.com>
Thread-Topic: RIFT@IETF106 - Call for agenda items
Thread-Index: AdWTGfGsihCFAAM3RreACIzE4lwztQ==
Date: Mon, 4 Nov 2019 14:12:55 +0000
Message-ID: <CY4PR05MB3637B354FC1AD779B6D23ECDD47F0@CY4PR05MB3637.namprd05.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
dlp-product: dlpe-windows
dlp-version: 11.2.0.14
dlp-reaction: no-action
x-originating-ip: [96.237.64.80]
x-ms-publictraffictype: Email
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: 61a29a67-42dc-43fa-e872-08d7613116ac
x-ms-traffictypediagnostic: CY4PR05MB2982:
x-microsoft-antispam-prvs: <CY4PR05MB2982373FF8688505E9226DECD47F0@CY4PR05MB2982.namprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:4714;
x-forefront-prvs: 0211965D06
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39860400002)(136003)(396003)(346002)(376002)(366004)(189003)(199004)(6116002)(3846002)(76116006)(66476007)(66556008)(66446008)(66946007)(110136005)(256004)(2906002)(64756008)(99286004)(26005)(6506007)(2501003)(305945005)(102836004)(316002)(74316002)(55016002)(71200400001)(71190400001)(33656002)(86362001)(478600001)(14454004)(9686003)(52536014)(7696005)(186003)(7736002)(558084003)(486006)(476003)(4326008)(5660300002)(25786009)(8676002)(8936002)(81166006)(81156014)(6436002)(66066001); DIR:OUT; SFP:1102; SCL:1; SRVR:CY4PR05MB2982; H:CY4PR05MB3637.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: kSn0n6OW4BQel9gZQ6KJztlT2KNj6Dstl+RdvTTcVZCqHtNkxEflOGwXBCAowBm9Y/tKaqBk474aeL2GlGJdf1KJ6vxniItvXq2YLKywu3824eEGqD71lbQCQdTVGhzEA6ei/OSQGpzU6Uqv/1WX/F+7ZUOIgE/dVPxQRJmZXeYcMUtEoG2DjXm0Yn3Oi3EBZ6Z2F3kgdQ67xStfCtKOfR5u5BCEYQLJE1sfZYM+O7D73FviPVH+iU0On3byiD4l0gjEIl3AGYCEJR9EwU6xbFo0ByQUv4H3ioxlqpoQ5NglPFNU3LzVKQNonnSPBsSetPRjRdBSobyGKMhtzdsn8ANklNzP8rFXvwsjjK4YMHTwE8Os2xe12LyzlBPPn4c/HkGVbxEDkwGsLhSpkRRjERlF+jRO/jLtqV3sBRC6r5IH/mmz1/zN5fzmaWCvI6I9
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: 61a29a67-42dc-43fa-e872-08d7613116ac
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Nov 2019 14:12:55.7716 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: uHsbQvVbnHfVHfd7CW6XeDcxCPhSyuxBIQeCgw/ejTsdAw0GQKNOpckA25p42LSMd0b2zldiGgpOWHZY/S2CpA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR05MB2982
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,1.0.8 definitions=2019-11-04_08:2019-11-04,2019-11-04 signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 spamscore=0 lowpriorityscore=0 phishscore=0 bulkscore=0 priorityscore=1501 malwarescore=0 clxscore=1015 adultscore=0 impostorscore=0 mlxscore=0 mlxlogscore=834 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-1908290000 definitions=main-1911040141
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/w90NNTNeWoxcmGwQu4Bb3YnJ7wM>
Subject: [Rift] RIFT@IETF106 - Call for agenda items
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Nov 2019 14:13:01 -0000

Hi,

We'll meet at 1:30pm on Thursday, November 21.
As usual, please send agenda items, including draft name, presenter, and re=
quested time.

Thanks!

Jeff & Jeffrey


From nobody Mon Nov  4 07:25:36 2019
Return-Path: <tonysietf@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AEB7D12085B; Mon,  4 Nov 2019 07:25:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level: 
X-Spam-Status: No, score=-1.997 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id mji1KbsZ5dz7; Mon,  4 Nov 2019 07:25:17 -0800 (PST)
Received: from mail-il1-x133.google.com (mail-il1-x133.google.com [IPv6:2607:f8b0:4864:20::133]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2B81D12011F; Mon,  4 Nov 2019 07:25:17 -0800 (PST)
Received: by mail-il1-x133.google.com with SMTP id f201so9497127ilh.6; Mon, 04 Nov 2019 07:25:17 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=sQ7zgMqoepcPxpM/LFdRbO+xQ+Rq3cOXCsd7kz0Fx3I=; b=lGfOd1lARSvyBjzNFXmZTGRuytyf5x0zAa2Jo/wl2iBFbSy48hOf5ZZ1OfSBfieZPs ydcKBrUInVj1fn4KfjGlj6kP0VM4ZJQmKzFvx8WXiwVUMpIIf/aA2Ct02ntJz2sfcc2r FSyOMRPnsVA7nTNpNiegERxShkT/NwWzAacAuPENeVmyIchT1xQshsGV11C31wotfbQU 0qq8Pz0fCsRgYVanL32G/7fT43+AGeBaziWpm49NbrAieUpPDgXh7fswjODjPVpBE+h1 izz5MoIdr7NO6fDI5WGI8CtvCk8A0HPWU+V2GxwKTc88xvAt7g4LgCiYRZhXOBBSzjyc pElg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=sQ7zgMqoepcPxpM/LFdRbO+xQ+Rq3cOXCsd7kz0Fx3I=; b=sxAqKgAFLrLmo8EaFQaKjLYzn82JgOKh0tcOOZ7qXXTt65MXG8ticQfZJiVBp+eBg6 tMJQ4GlUEgpFeWT3A4heNvQoi8UmJUxFdCyVyXfGUwiTWRpfdqpTBeoXndbw/dLF3R8r iJbwD3gG2swnhEVIYPbkghewH85/YBtivVSX3GBcQPHbWT7p+zjC7dFC63CJeoFeLO+8 XiLb70cyiOG3gl8Y4aABbauH/JTY9XZjZPiwoI6hbHohYhQW2vuq1tDy6LAQFnQvXt5o 65AsoNU8Yi/DYTIF/rLsnDjqFF5uxZY5bOd8dQcg6FxTqxVJlNI2skj1ZBmT8kcov3Ro tvmA==
X-Gm-Message-State: APjAAAXxcaLHB3vDSiuo3ZdPu3EMdjVEPLzH/rrwCMFPmb4dD/+YGx10 yu+NmSvs5iRdeW6FR7u5uL1XTmJayGVFh7rpjpE=
X-Google-Smtp-Source: APXvYqzGD2GAk6OgQbSvmQUf3WyxnJ4qR+2FkyHsf+lN/7LOeJi7UdUVQYsAlj0FAtxFF+whM2L2/rOH9X3wZ45miuI=
X-Received: by 2002:a92:5c15:: with SMTP id q21mr29096105ilb.239.1572881116446;  Mon, 04 Nov 2019 07:25:16 -0800 (PST)
MIME-Version: 1.0
References: <BL0PR02MB48689FA2D6B7C255DF11045D84630@BL0PR02MB4868.namprd02.prod.outlook.com> <CA+wi2hO=rZ2mbX3ZJVgn9cSvfbot29W+MNnunysPhPv+3Mxykw@mail.gmail.com> <BL0PR02MB48684435784A92180AEE2F87847F0@BL0PR02MB4868.namprd02.prod.outlook.com>
In-Reply-To: <BL0PR02MB48684435784A92180AEE2F87847F0@BL0PR02MB4868.namprd02.prod.outlook.com>
From: Tony Przygienda <tonysietf@gmail.com>
Date: Mon, 4 Nov 2019 07:24:23 -0800
Message-ID: <CA+wi2hOzCbWh2U9G+AUUb8U+T+v+-7qpPVK7jn4NzxooB=dwgw@mail.gmail.com>
To: Jonathan Hardwick <Jonathan.Hardwick@metaswitch.com>
Cc: "rift-chairs@ietf.org" <rift-chairs@ietf.org>,  "draft-ietf-rift-rift.all@ietf.org" <draft-ietf-rift-rift.all@ietf.org>, "rtg-dir@ietf.org" <rtg-dir@ietf.org>,  =?UTF-8?Q?Luc_Andr=C3=A9_Burdet?= <laburdet.ietf@gmail.com>,  Min Ye <amy.yemin@huawei.com>, "rift@ietf.org" <rift@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000384761059686ec9d"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/1OqcnrCZBRjui3LFGqVdW0Bvo00>
Subject: Re: [Rift] Routing directorate early review of draft-ietf-rift-rift
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Nov 2019 15:25:23 -0000

--000000000000384761059686ec9d
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Nov 4, 2019 at 4:40 AM Jonathan Hardwick <
Jonathan.Hardwick@metaswitch.com> wrote:

> Tony, many thanks for your reply =E2=80=93 please see [JEH] below.
>
> Jon
>
>
>
>
>
> We are in IETF here where "rough consenus and running code" was the
> receipe of success vs. much heavier handed organizations like OSI and I
> think in this philosophy the spec, if anything, is possibly overspecified
> already ;-) The core pieces that bare no slips like flooding and adjacenc=
y
> formation are very precisely written including FSMs.
>
>
>
> [JEH] Sure.  My comments were intended to help improve the use of
> normative language and the delineation between normative passages and
> informative ones.
>
>
>

we're in sync, I am tightening normative language where necessary. Will
take until next rev, I try to put out today intermediate state with lots
review comments accommodate but won't manage to get e'thing in until the
one after.


>
>
>
>    -
>    - The definition of the protocol and some of the normative behaviour
>    is deferred to the appendices, whereas I would expect to encounter it =
early
>    on in the text, with an in-line discussion of the purposes of the mess=
ages
>    and fields.
>
>
>
> Ok, seems like the second directorate reviewers prefers the appendices to
> be pulled into the document. Let me do that thenl
>
>
>
> [JEH] My apologies =E2=80=93 it is unfortunate when two different reviewe=
rs give
> contradictory opinions!  You should of course weigh my opinion with
> everyone else=E2=80=99s.
>

no, actually you're the second IAB/DIR reviewer who said that. However,
earlier on I had gripes that the spec is "too dry" and it's hard to know
"why" things are done so I try to strike a balance between a descriptive
and prescriptive piece. Since it's always a trade-off not everyone will be
ever fully happy with the balance and I can live with that ;-)


>
>
>
>
>
>
> The other issue is that, because the document is large and I found it
> rather hard going, I did not have time do a thorough review beyond sectio=
n
> 5.3.  I=E2=80=99d therefore have to recommend another directorate review =
once we
> have concluded on the issues I=E2=80=99m raising below.
>
>
>
> ok, obviously as much is written as we expect is necessary to "clearly"
> spec out the protocol. The document is more than simply a dry prescriptiv=
e
> normative though since very early in the workgroup sessions the input of
> many people was that they would prefer is some more "narrative" explanati=
on
> of "what" and "why" is inserted instead of purely the algorithms. We trie=
d
> to find a balance but obviously opinions will always vary between "this i=
s
> too chatty and should be just a dry normative" and "this does not explain
> WHY that would work and WHY it has been designed that way".. Based on
> Robert Sparks review I will try to simplify the language and cut out some
> superfluous text he pointed out or I find. We'll see where we end.
>
>
>
> [JEH] Thanks.  As it happens I prefer documents to have informative
> passages to help me understand the normative ones, provided they give me
> enough context to understand them and they are sufficiently relevant.  My
> comments were targeted to help improve the context & relevance.  I sugges=
t
> a subsequent RtgDir review only because I was not able to apply as much
> diligence to the later sections of the document as I would have liked.  I
> will leave it to the WG if they want to action this.
>
>
>
...

ack

Jonathan, well, section 5.1.3 "fallen leaf" (4 now given requirements is
> removed) _is_ the overview section. Southern reflection is defined in the
> glossary already and the "negative disaggregation" is a mechanism
> introduced to address the "fallen leaf problem" later and obviously the
> problem itself has to be explained & introduced first. Negative
> disaggregation is arguably (beside flooding scopes) the most complex part
> of the spec and we spent lots of time and effort (especially Pascal) with
> multiple rewrites to give the narrative describing the CLOS inherent
> problem. Moreover we didn't want to mix it up with RIFT specific mechanis=
m
> since the "fallen leaf": problem exists in multi-plane CLOS independent o=
f
> any protocol and BTW, I never saw it explained as clearly as Pascal did i=
n
> the multi-plane introduction section. Also, we clearly state in the secti=
on
> that if someone builds a single plane CLOS the section can be disregarded
> to simplify the reading of the spec for many people.
>
>
>
> [JEH] Thanks. Firstly, Pascal is to be congratulated on the text
> describing multi-plane topologies. I had no problem getting to grips with
> them with the help of his text and some Lego models that it inspired me t=
o
> build :-)  I have re-read these sections just now and I do now find them
> easier to follow =E2=80=93 having already read the relevant parts of the =
later
> spec.  On the first read-through I think I was troubled by too many
> questions: What do they mean by =E2=80=9Cpositive=E2=80=9D and =E2=80=9Cn=
egative=E2=80=9D in the context of
> disaggregation?  What do they mean by =E2=80=9Ctransitive=E2=80=9D?  I ha=
ve been told what
> southern reflection is, but what relevant information does it provide and
> how is it useful?  In hindsight these were all guessable but I found thes=
e
> concepts a barrier to my understanding.  If you have the stomach for
> another iteration of these sections, I would request some additional
> explanation to be included.
>
>
>

Lego blocks is an ingenious idea here. You inspire me to go steal some from
my kids now ;-)

OK, yes, so I will put explanations of what negative and positive is and
transitive in the running descriptive text if that simplifies the "sliding
into the narrative". That's a good input. Obviusly at the end all the
authors/contributors were cmpletely blind to whether it's comprehensible
anymore sicne we spent I think about 3 versions of text and endless
interims chewing on how to describe all that "fallen leaf" stuff,
especially wiht 2-D ASCII art. Most credit goes to Pascal really I think
without diminishing others that were helping with it.


>
>
>
>
> Section 5.2.2
>
>
>
>    A node configured with "undefined" PoD membership MUST, after
>
>    building first northbound three way adjacencies to a node being in a
>
>    defined PoD, advertise that PoD as part of its LIEs.  In case that
>
>    adjacency is lost, from all available northbound three way
>
>    adjacencies the node with the highest System ID and defined PoD is
>
>    chosen.
>
>
>
> It seems odd that the choice of advertised pod is at first
> non-deterministic (race to the first adjacency) and then, only if this
> initial adjacency is lost, the choice of pod becomes deterministic. Why n=
ot
> make it deterministic the whole time?
>
>
>
> The first adjacency is simply used to speed up things since otherwise how
> long do you wait until you have all northbound adjacencies?  Observe that
> level ZTP will possibly drop adjacencies while it's converging so the
> consequent set will refine the PoD as well, i.e. the ZTP is guaranteed to
> get the node to the maximum available level @ which point in time the
> northbound available adjacencies will determine the PoD. Obviouly the
> adjacencies can disagree about the PoD and such a scenario can be used by
> an implementation to report miscablings. We talk quickly about miscabling
> detection in the spec since it's such a desirable property _of an
> implementaiton_ but it's not necessary for correct protocol operation so =
we
> don't make anything normative except disallowing adjacency forming across
> PoDs if defined. Since configurting and converging PoDs is optional we
> allow even to disregard this rule on adjacency formation.
>
>
>
> [JEH] Thanks =E2=80=93 makes sense. I had missed that ZTP can drop adjace=
ncies
> when I wrote this comment.
>

ack


>
>
>
>
> Section 5.2.3.2
>
>
>
> In the example TIEs, "Spine21" should be "ToF 21" to agree with the
> nomenclature of figure 2.  Ditto in table 4 (section 5.2.3.4)
>
> In Spine 111's Node-S-TIE, I am not sure that the links(...) should be
> given for each neighbor.
>
>
>
> corrected the ToF 21/22 everywhere.  Yes, on careful reading one wonders
> WHY node south tie should include _all_ links. This is necessary for both
> flood reduction as well as bandwidth balancing since both happen from sou=
th
> going up and the node computing needs the northbound neighbors of the lev=
el
> up. That's one of the reasons the example is givne. I'll add a clarifying
> sentence.
>
>
>
> [JEH] Thanks. Does that mean the links(=E2=80=A6) should be added to Spin=
e121=E2=80=99s
> Node S-TIE in the same example?
>

yes, @ certain point I think it starts to do elipsis to avoid endless
repetitions. I'll comb over it quickly again.


> Section 5.2.4.1
>
> Please define the terms "south prefix" and "north prefix"
>
> "Supersuming" is not a word I recognise.  Use "or a non-default prefix
> which contains this south prefix"
>
> "the node does not..." -> "the computing node does not..."
>
>
>
> Section 5.2.4.2
>
> "S-SPF uses northbound adjacencies in node N-TIEs to verify backlink
> connectivity" - this statement needs to be recast into normative language
> using RFC 2119 terms.  "A node MUST verify backlink connectivity ... Else
> it MUST NOT include the link.... Etc."
>
> Same comment applies in many places throughout the document.
>
>
>
> re-read and applied more normative language to the specific section as
> indicated above.  Re-read the document and normalized more languagte wher=
e
> necessary.
>
>
>
>
>
> Section 5.2.4.3
>
> What is a `"ring protection" scheme`?
>
>
>
> Ring based protection scheme just like BLSR. I replace with "ring-based
> protection" which is fairly well understood term in networking.
>
>
>
> Removed the ring based protection of a level to applicability draft which
> multiple authors work on and where it seems to belong rather than in the
> spec. Left only clarification
>
>
>
> <*t*>Using south prefixes over horizontal links MAY occur
>  if the N-SPF is East-West adjacencies in computation.
>     It can
>     protect against pathological fabric partitioning cases that
>     leave only paths to destinations that would necessitate multiple
>     changes of forwarding direction between north and south.
>     </*t*>
>
>
>
> [JEH] Suggest you change =E2=80=9Cif the N-SPF is East-West adjacencies=
=E2=80=9D to =E2=80=9Cif
> the N-SPF includes East-West adjacencies=E2=80=9D
>

ack, typo. thanks


>
>
> "An implementation could try ... but the details are outside this
> specification" - so why mention it?
>
>
>
> Because of the fact that the question was coming up multiple times in
> meetings/mails and so on. Instead of negative disaggregation people were
> tempted to "forward through the horizontal links on top" when a fallen le=
af
> starts forwarding in the wrong plane (i.e. the one where it's fallen). Th=
is
> section points out that this should not be attempted due to looping
> problems, i.e. a ToF node that has no reachability to an anycast address
> (since a fallen leaf forwarded to an anycast destination that is also
> fallen) could try to use horizontal links to forward traffic but it may
> have multiple planes that can reach the destination. Obviously when it
> forwards e.g. left on the ring & the traffic arrives on the ToF that seem=
s
> to be able to reach that anycast the ToF may choose to forward it back on
> the ring to "another ToF" that can reach the anycast. Observer that RIFT =
is
> loop-free i.e. one can forward on any path as long it reaches the
> destination but since horizontal is considered equivalent to northbound
> forwarding and metric can be disregarded (RIFT is not bound by shortest
> path) the traffic may just end up looping in the ring. This is hard to
> describe and would to lots figures hence the spec simply says "don't do i=
t"
> and if one is tempted to one will find out why it's a bad idea when one
> implemented this. And then the said implementer will probably try to fix =
it
> by the "shortest path" computation @ ToF level which is next layer of the
> onion the document mentions and then explains again that this may work bu=
t
> he stop going out there with this spec.
>
>
>
> The "ring" between planes necessary is visualized in figure 13 and
> described in section
>
>
>
> 4.2.5.2.1.  Cabling of Multiple Top-of-Fabric Planes
>
>
>
> again in an example. I don't think that needs further clarification.
>
>
>
> [JEH] Understood. I would suggest moving =E2=80=9CAn implementation could=
=E2=80=A6=E2=80=9D to a
> footnote =E2=80=93 if only one could have footnotes in an RFC.
>

yeah, I won't try footnote adventures ;-) I'm trying to migrate to v3 to
include SVG already and feeling like a serious guinea pig right now ;-)


>
>
>
>
>
>
> How can we guarantee that a same-level node does not have a next hop to a
> given prefix that is unknown to the node doing the computation?  If X
> reaches P via N1 and N2, Y (at the same level as X) can reach P via N3 bu=
t
> X does not know this and assumes Y cannot reach P because Y is not adjace=
nt
> to N1 and N2, then X unnecessarily disaggregates P positively.  For
> instance if X's link to N3 has failed and Y's links to N1 and N2 have
> failed.
>
>
>
> that cannot be guaranteed. If X can reach prefix via N1 which Y doesn't
> have and Y via N3 that X doesn't have but they only see via a nexthops N0
> (though which the prefix cannot be reached) then both will disaggregate
> since anything else would be assuming necessity of "harmonica routing"
> which RIFT doesn't do since harmonica is opposite to valley free routing
> which RIFT does to guarantee loop free behavior.  That is actually a good
> example why RIFT positive disaggregation guarantees sufficient
> disaggregation to prevent blackholes, loops and bow-ties but possibly mor=
e
> than necessary (which is never claimed in the document).
>
>
>
> [JEH] Understood. So there may be redundant disaggregation but it keeps
> the forwarding plane valley free.  I think that=E2=80=99s OK.
>

yes, I was thinking ages ago through implications of making RIFT
"sufficient _and_ necessary only" and you end up with global vs. local
optimality problem which forces you pretty much to have all the info
everywhere to find a global optimum (well, topology info, you could skip
prefixes I think). Or harmonica routing which leads straight back to
traditional link-state with all its problems in the fabric. And all that
would lead to very complex flooding scopes (the ones we have are complex
enough and that's why they are so precisely described in the table &
flooding rules) and so on, IMO it's 80-20 rule here, "sufficient" must be
guaranteed (otherwise you loop or if lucky, bowtie), "necessary only" is a
luxury we should not chase ;-)


>
>
> This constant is provided in appendix D.1
>
>
>
> I'm working on the other directorate reviews and will try to cut a new
> version with all those changes before deadline
>
>
>
> [JEH] Thanks again for considering all my comments.
>
>
>

well, thanks for your time. I know the draft takes time to comprehend given
how far it sometimes stretches IP routing envelope compared to traditional
stuff. Glad you saw it as a puzzle ;-)

And now, for those lego blocks ;-)

--- tony

--000000000000384761059686ec9d
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr" class=3D"gmail_attr">On Mon, Nov 4, 2019 at 4:40 AM Jonath=
an Hardwick &lt;<a href=3D"mailto:Jonathan.Hardwick@metaswitch.com">Jonatha=
n.Hardwick@metaswitch.com</a>&gt; wrote:<br></div><blockquote class=3D"gmai=
l_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,20=
4,204);padding-left:1ex">





<div lang=3D"EN-US">
<div class=3D"gmail-m_-2407483994632617532WordSection1">
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Tony, many thanks for your repl=
y =E2=80=93 please see [JEH] below.</span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Jon</span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0</span></p><div><div><div=
><div>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0</p>
</div>
<div>
<p class=3D"MsoNormal">We are in IETF here where &quot;rough consenus and r=
unning code&quot; was the receipe of success vs. much heavier handed organi=
zations like OSI and I think in this philosophy the spec, if anything, is p=
ossibly overspecified already ;-) The core pieces
 that bare no slips like flooding and adjacency formation are very precisel=
y written including FSMs.</p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0</p>
<p class=3D"MsoNormal">[JEH] Sure.=C2=A0 My comments were intended to help =
improve the use of normative language and the delineation between normative=
 passages and informative ones.</p>
<p class=3D"MsoNormal">=C2=A0</p></div></div></div></div></div></div></bloc=
kquote><div><br></div><div>we&#39;re in sync, I am tightening normative lan=
guage where necessary. Will take until next rev, I try to put out today int=
ermediate state with lots review comments accommodate but won&#39;t manage =
to get e&#39;thing in until the one after. <br></div><div>=C2=A0</div><bloc=
kquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:=
1px solid rgb(204,204,204);padding-left:1ex"><div lang=3D"EN-US"><div class=
=3D"gmail-m_-2407483994632617532WordSection1"><div><div><div><div>
<p class=3D"MsoNormal">=C2=A0</p>
</div>
<blockquote style=3D"border-color:currentcolor currentcolor currentcolor rg=
b(204,204,204);border-style:none none none solid;border-width:medium medium=
 medium 1pt;padding:0cm 0cm 0cm 6pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<ul type=3D"disc">
<li class=3D"MsoNormal">
=C2=A0</li><li class=3D"MsoNormal">
<span lang=3D"EN-GB">The definition of the protocol and some of the normati=
ve behaviour is deferred to the appendices, whereas I would expect to encou=
nter it early on in the text, with an in-line discussion of the purposes of=
 the messages and fields.</span></li></ul>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal">=C2=A0</p>
</div>
<div>
<p class=3D"MsoNormal">Ok, seems like the second directorate reviewers pref=
ers the appendices to be pulled into the document. Let me do that thenl</p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0</p>
<p class=3D"MsoNormal">[JEH] My apologies =E2=80=93 it is unfortunate when =
two different reviewers give contradictory opinions!=C2=A0 You should of co=
urse weigh my opinion with everyone else=E2=80=99s.</p></div></div></div></=
div></div></div></blockquote><div><br></div><div>no, actually you&#39;re th=
e second IAB/DIR reviewer who said that. However, earlier on I had gripes t=
hat the spec is &quot;too dry&quot; and it&#39;s hard to know &quot;why&quo=
t; things are done so I try to strike a balance between a descriptive and p=
rescriptive piece. Since it&#39;s always a trade-off not everyone will be e=
ver fully happy with the balance and I can live with that ;-)<br></div><div=
>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px =
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang=3D=
"EN-US"><div class=3D"gmail-m_-2407483994632617532WordSection1"><div><div><=
div><div>
<p class=3D"MsoNormal">=C2=A0</p></div><div>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0</p>
</div>
<blockquote style=3D"border-color:currentcolor currentcolor currentcolor rg=
b(204,204,204);border-style:none none none solid;border-width:medium medium=
 medium 1pt;padding:0cm 0cm 0cm 6pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0</span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">The other issue is that, becaus=
e the document is large and I found it rather hard going, I did not have ti=
me do a thorough review beyond section 5.3.=C2=A0 I=E2=80=99d therefore
 have to recommend another directorate review once we have concluded on the=
 issues I=E2=80=99m raising below.</span></p>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal">=C2=A0</p>
</div>
<div>
<p class=3D"MsoNormal">ok, obviously as much is written as we expect is nec=
essary to &quot;clearly&quot; spec out the protocol. The document is more t=
han simply a dry prescriptive normative though since very early in the work=
group sessions the input of many people was
 that they would prefer is some more &quot;narrative&quot; explanation of &=
quot;what&quot; and &quot;why&quot; is inserted instead of purely the algor=
ithms. We tried to find a balance but obviously opinions will always vary b=
etween &quot;this is too chatty and should be just a dry normative&quot;
 and &quot;this does not explain WHY that would work and WHY it has been de=
signed that way&quot;.. Based on Robert Sparks review I will try to simplif=
y the language and cut out some superfluous text he pointed out or I find. =
We&#39;ll see where we end.
</p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0</p>
<p class=3D"MsoNormal">[JEH] Thanks.=C2=A0 As it happens I prefer documents=
 to have informative passages to help me understand the normative ones, pro=
vided they give me enough context to understand them and they are sufficien=
tly relevant.=C2=A0 My comments were targeted
 to help improve the context &amp; relevance.=C2=A0 I suggest a subsequent =
RtgDir review only because I was not able to apply as much diligence to the=
 later sections of the document as I would have liked.=C2=A0 I will leave i=
t to the WG if they want to action this.</p>
<p class=3D"MsoNormal">=C2=A0</p></div></div></div></div></div></div></bloc=
kquote>...</div><div class=3D"gmail_quote"><br></div><div class=3D"gmail_qu=
ote">ack</div><div class=3D"gmail_quote"><br></div><div class=3D"gmail_quot=
e"><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bord=
er-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang=3D"EN-US"><d=
iv class=3D"gmail-m_-2407483994632617532WordSection1"><div><div><div><div>
</div>
<div>
<p class=3D"MsoNormal">Jonathan, well, section 5.1.3 &quot;fallen leaf&quot=
; (4 now given requirements is removed) _is_ the overview section. Southern=
 reflection is defined in the glossary already and the &quot;negative disag=
gregation&quot; is a mechanism introduced to address the
 &quot;fallen leaf problem&quot; later and obviously the problem itself has=
 to be explained &amp; introduced first. Negative disaggregation is arguabl=
y (beside flooding scopes) the most complex part of the spec and we spent l=
ots of time and effort (especially Pascal) with
 multiple rewrites to give the narrative describing the CLOS inherent probl=
em. Moreover we didn&#39;t want to mix it up with RIFT specific mechanism s=
ince the &quot;fallen leaf&quot;: problem exists in multi-plane CLOS indepe=
ndent of any protocol and BTW, I never saw it
 explained as clearly as Pascal did in the multi-plane introduction section=
. Also, we clearly state in the section that if someone builds a single pla=
ne CLOS the section can be disregarded to simplify the reading of the spec =
for many people.
<u></u><u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p class=3D"MsoNormal">[JEH] Thanks. Firstly, Pascal is to be congratulated=
 on the text describing multi-plane topologies. I had no problem getting to=
 grips with them with the help of his text and some Lego models that it ins=
pired me to build :-)=C2=A0 I have re-read
 these sections just now and I do now find them easier to follow =E2=80=93 =
having already read the relevant parts of the later spec.=C2=A0 On the firs=
t read-through I think I was troubled by too many questions: What do they m=
ean by =E2=80=9Cpositive=E2=80=9D and =E2=80=9Cnegative=E2=80=9D in the con=
text
 of disaggregation?=C2=A0 What do they mean by =E2=80=9Ctransitive=E2=80=9D=
?=C2=A0 I have been told what southern reflection is, but what relevant inf=
ormation does it provide and how is it useful?=C2=A0 In hindsight these wer=
e all guessable but I found these concepts a barrier to my understanding.=
=C2=A0
 If you have the stomach for another iteration of these sections, I would r=
equest some additional explanation to be included.<u></u><u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0</p></div></div></div></div></div></div=
></blockquote><div><br></div><div>Lego blocks is an ingenious idea here. Yo=
u inspire me to go steal some from my kids now ;-)</div><div><br></div><div=
>OK, yes, so I will put explanations of what negative and positive is and t=
ransitive in the running descriptive text if that simplifies the &quot;slid=
ing into the narrative&quot;. That&#39;s a good input. Obviusly at the end =
all the authors/contributors were cmpletely blind to whether it&#39;s compr=
ehensible anymore sicne we spent I think about 3 versions of text and endle=
ss interims chewing on how to describe all that &quot;fallen leaf&quot; stu=
ff, especially wiht 2-D ASCII art. Most credit goes to Pascal really I thin=
k without diminishing others that were helping with it. <br></div><div>=C2=
=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8e=
x;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang=3D"EN-=
US"><div class=3D"gmail-m_-2407483994632617532WordSection1"><div><div><div>=
<div><p class=3D"MsoNormal"><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<blockquote style=3D"border-color:currentcolor currentcolor currentcolor rg=
b(204,204,204);border-style:none none none solid;border-width:medium medium=
 medium 1pt;padding:0cm 0cm 0cm 6pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Section 5.2.2</span><u></u><u><=
/u></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0=C2=A0 A node configured =
with &quot;undefined&quot; PoD membership MUST, after</span><u></u><u></u><=
/p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0=C2=A0 building first nor=
thbound three way adjacencies to a node being in a</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0=C2=A0 defined PoD, adver=
tise that PoD as part of its LIEs.=C2=A0 In case that</span><u></u><u></u><=
/p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0=C2=A0 adjacency is lost,=
 from all available northbound three way</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0=C2=A0 adjacencies the no=
de with the highest System ID and defined PoD is</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0=C2=A0 chosen.</span><u><=
/u><u></u></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">It seems odd that the choice of=
 advertised pod is at first non-deterministic (race to the first adjacency)=
 and then, only if this initial adjacency is lost, the
 choice of pod becomes deterministic. Why not make it deterministic the who=
le time?</span><u></u><u></u></p>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">The first adjacency is simply used to speed up thing=
s since otherwise how long do you wait until you have all northbound adjace=
ncies?=C2=A0 Observe that level ZTP will possibly drop adjacencies while it=
&#39;s converging so the consequent set will
 refine the PoD as well, i.e. the ZTP is guaranteed to get the node to the =
maximum available level=C2=A0@ which point in time the northbound available=
 adjacencies will determine the PoD. Obviouly the adjacencies can disagree =
about the PoD and such a scenario can
 be used by an implementation to report miscablings. We talk quickly about =
miscabling detection in the spec since it&#39;s such a desirable property _=
of an implementaiton_ but it&#39;s not necessary for correct protocol opera=
tion so we don&#39;t make anything normative
 except disallowing adjacency forming across PoDs if defined. Since configu=
rting and converging PoDs is optional we allow even to disregard this rule =
on adjacency formation.=C2=A0
<u></u><u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p class=3D"MsoNormal">[JEH] Thanks =E2=80=93 makes sense. I had missed tha=
t ZTP can drop adjacencies when I wrote this comment.</p></div></div></div>=
</div></div></div></blockquote><div><br></div><div>ack<br></div><div>=C2=A0=
</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;b=
order-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang=3D"EN-US"=
><div class=3D"gmail-m_-2407483994632617532WordSection1"><div><div><div><di=
v><p class=3D"MsoNormal"><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<blockquote style=3D"border-color:currentcolor currentcolor currentcolor rg=
b(204,204,204);border-style:none none none solid;border-width:medium medium=
 medium 1pt;padding:0cm 0cm 0cm 6pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Section 5.2.3.2</span><u></u><u=
></u></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">In the example TIEs, &quot;Spin=
e21&quot; should be &quot;ToF 21&quot; to agree with the nomenclature of fi=
gure 2.=C2=A0 Ditto in table 4 (section 5.2.3.4)</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">In Spine 111&#39;s Node-S-TIE, =
I am not sure that the links(...) should be given for each neighbor.</span>=
<u></u><u></u></p>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">corrected the ToF 21/22 everywhere.=C2=A0 Yes, on ca=
reful reading one wonders WHY node south tie should include _all_ links. Th=
is is necessary for both flood reduction as well as bandwidth balancing sin=
ce both happen from south going up and
 the node computing needs the northbound neighbors of the level up. That&#3=
9;s one of the reasons the example is givne. I&#39;ll add a clarifying sent=
ence.
<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
<p class=3D"MsoNormal">[JEH] Thanks. Does that mean the links(=E2=80=A6) sh=
ould be added to Spine121=E2=80=99s Node S-TIE in the same example?</p></di=
v></div></div></div></div></div></blockquote><div><br></div><div>yes, @ cer=
tain point I think it starts to do elipsis to avoid endless repetitions. I&=
#39;ll comb over it quickly again. <br></div><div>=C2=A0</div><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px soli=
d rgb(204,204,204);padding-left:1ex"><div lang=3D"EN-US"><div class=3D"gmai=
l-m_-2407483994632617532WordSection1"><div><div><div><div><p class=3D"MsoNo=
rmal"><u></u><u></u></p>
</div><div>
</div>
<blockquote style=3D"border-color:currentcolor currentcolor currentcolor rg=
b(204,204,204);border-style:none none none solid;border-width:medium medium=
 medium 1pt;padding:0cm 0cm 0cm 6pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Section 5.2.4.1</span><u></u><u=
></u></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Please define the terms &quot;s=
outh prefix&quot; and &quot;north prefix&quot;</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&quot;Supersuming&quot; is not =
a word I recognise.=C2=A0 Use &quot;or a non-default prefix which contains =
this south prefix&quot;</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&quot;the node does not...&quot=
; -&gt; &quot;the computing node does not...&quot;</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Section 5.2.4.2</span><u></u><u=
></u></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&quot;S-SPF uses northbound adj=
acencies in node N-TIEs to verify backlink connectivity&quot; - this statem=
ent needs to be recast into normative language using RFC 2119
 terms.=C2=A0 &quot;A node MUST verify backlink connectivity ... Else it MU=
ST NOT include the link.... Etc.&quot;</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Same comment applies in many pl=
aces throughout the document.</span><u></u><u></u></p>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">re-read and applied more normative language to the s=
pecific section as indicated above.=C2=A0 Re-read the document and normaliz=
ed more languagte where necessary.
<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<blockquote style=3D"border-color:currentcolor currentcolor currentcolor rg=
b(204,204,204);border-style:none none none solid;border-width:medium medium=
 medium 1pt;padding:0cm 0cm 0cm 6pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Section 5.2.4.3</span><u></u><u=
></u></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">What is a `&quot;ring protectio=
n&quot; scheme`?</span><u></u><u></u></p>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Ring based protection scheme just like BLSR. I repla=
ce with &quot;ring-based protection&quot; which is fairly well understood t=
erm in networking.
<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Removed the ring based protection of a level to appl=
icability draft which multiple authors work on and where it seems to belong=
 rather than in the spec. Left only clarification<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<pre style=3D"background:white none repeat scroll 0% 0%"><span style=3D"fon=
t-size:8.5pt;font-family:&quot;Menlo&quot;,serif;color:black;background:rgb=
(239,239,239) none repeat scroll 0% 0%">&lt;</span><b><span style=3D"font-s=
ize:8.5pt;font-family:&quot;Menlo&quot;,serif;color:navy;background:rgb(239=
,239,239) none repeat scroll 0% 0%">t</span></b><span style=3D"font-size:8.=
5pt;font-family:&quot;Menlo&quot;,serif;color:black;background:rgb(239,239,=
239) none repeat scroll 0% 0%">&gt;</span><span style=3D"font-size:8.5pt;fo=
nt-family:&quot;Menlo&quot;,serif;color:black">Using south prefixes over ho=
rizontal links MAY occur<br>=C2=A0if the N-SPF is East-West adjacencies in =
computation.<br>=C2=A0=C2=A0=C2=A0 It can<br>=C2=A0=C2=A0=C2=A0 protect aga=
inst pathological fabric partitioning cases that<br>=C2=A0=C2=A0=C2=A0 leav=
e only paths to destinations that would necessitate multiple<br>=C2=A0=C2=
=A0=C2=A0 changes of forwarding direction between north and south.<br>=C2=
=A0=C2=A0=C2=A0 <span style=3D"background:rgb(239,239,239) none repeat scro=
ll 0% 0%">&lt;/</span></span><b><span style=3D"font-size:8.5pt;font-family:=
&quot;Menlo&quot;,serif;color:navy;background:rgb(239,239,239) none repeat =
scroll 0% 0%">t</span></b><span style=3D"font-size:8.5pt;font-family:&quot;=
Menlo&quot;,serif;color:black;background:rgb(239,239,239) none repeat scrol=
l 0% 0%">&gt;</span><span style=3D"font-size:8.5pt;font-family:&quot;Menlo&=
quot;,serif;color:black"><u></u><u></u></span></pre>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
<p class=3D"MsoNormal">[JEH] Suggest you change =E2=80=9Cif the N-SPF is Ea=
st-West adjacencies=E2=80=9D to =E2=80=9Cif the N-SPF includes East-West ad=
jacencies=E2=80=9D</p></div></div></div></div></div></div></blockquote><div=
><br></div><div>ack, typo. thanks <br></div><div>=C2=A0</div><blockquote cl=
ass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid=
 rgb(204,204,204);padding-left:1ex"><div lang=3D"EN-US"><div class=3D"gmail=
-m_-2407483994632617532WordSection1"><div><div><div><div>
</div>
<blockquote style=3D"border-color:currentcolor currentcolor currentcolor rg=
b(204,204,204);border-style:none none none solid;border-width:medium medium=
 medium 1pt;padding:0cm 0cm 0cm 6pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&quot;An implementation could t=
ry ... but the details are outside this specification&quot; - so why mentio=
n it?</span><u></u><u></u></p>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Because of the fact that the question was coming up =
multiple times in meetings/mails and so on. Instead of negative disaggregat=
ion people were tempted to &quot;forward through the horizontal links on to=
p&quot; when a fallen leaf starts forwarding
 in the wrong plane (i.e. the one where it&#39;s fallen). This section poin=
ts out that this should not be attempted due to looping problems, i.e. a To=
F node that has no reachability to an anycast address (since a fallen leaf =
forwarded to an anycast destination
 that is also fallen) could try to use horizontal links to forward traffic =
but it may have multiple planes that can reach the destination. Obviously w=
hen it forwards e.g. left on the ring &amp; the traffic arrives on the ToF =
that seems to be able to reach that
 anycast the ToF may choose to forward it back on the ring to &quot;another=
 ToF&quot; that can reach the anycast. Observer that RIFT is loop-free i.e.=
 one can forward on any path as long it reaches the destination but since h=
orizontal is considered equivalent to northbound
 forwarding and metric can be disregarded (RIFT is not bound by shortest pa=
th) the traffic may just end up looping in the ring. This is hard to descri=
be and would to lots figures hence the spec simply says &quot;don&#39;t do =
it&quot; and if one is tempted to one will find
 out why it&#39;s a bad idea when one implemented this. And then the said i=
mplementer will probably try to fix it by the &quot;shortest path&quot; com=
putation=C2=A0@ ToF level which is next layer of the onion the document men=
tions and then explains again that this may work but
 he stop going out there with this spec. <u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">The &quot;ring&quot; between planes necessary is vis=
ualized in figure 13 and described in section
<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<pre style=3D"background:white none repeat scroll 0% 0%"><span style=3D"fon=
t-size:8.5pt;font-family:&quot;Menlo&quot;,serif;color:black">4.2.5.2.1.=C2=
=A0 Cabling of Multiple Top-of-Fabric Planes<u></u><u></u></span></pre>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">again in an example. I don&#39;t think that needs fu=
rther clarification.
<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
<p class=3D"MsoNormal">[JEH] Understood. I would suggest moving =E2=80=9CAn=
 implementation could=E2=80=A6=E2=80=9D to a footnote =E2=80=93 if only one=
 could have footnotes in an RFC.</p></div></div></div></div></div></div></b=
lockquote><div><br></div><div>yeah, I won&#39;t try footnote adventures ;-)=
 I&#39;m trying to migrate to v3 to include SVG already and feeling like a =
serious guinea pig right now ;-) <br></div><div>=C2=A0</div><blockquote cla=
ss=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid =
rgb(204,204,204);padding-left:1ex"><div lang=3D"EN-US"><div class=3D"gmail-=
m_-2407483994632617532WordSection1"><div><div><div><div><p class=3D"MsoNorm=
al"><u></u><u></u></p>
</div>
<div>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0</p></div><div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<blockquote style=3D"border-color:currentcolor currentcolor currentcolor rg=
b(204,204,204);border-style:none none none solid;border-width:medium medium=
 medium 1pt;padding:0cm 0cm 0cm 6pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">How can we guarantee that a sam=
e-level node does not have a next hop to a given prefix that is unknown to =
the node doing the computation?=C2=A0 If X reaches P via
 N1 and N2, Y (at the same level as X) can reach P via N3 but X does not kn=
ow this and assumes Y cannot reach P because Y is not adjacent to N1 and N2=
, then X unnecessarily disaggregates P positively.=C2=A0 For instance if X&=
#39;s link to N3 has failed and Y&#39;s links
 to N1 and N2 have failed.</span><u></u><u></u></p>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">that cannot be guaranteed. If X can reach prefix via=
 N1 which Y doesn&#39;t have and Y via N3 that X doesn&#39;t have but they =
only see via a nexthops N0 (though which the prefix cannot be reached) then=
 both will disaggregate since anything else
 would be assuming necessity of &quot;harmonica routing&quot; which RIFT do=
esn&#39;t do since harmonica is opposite to valley free routing which RIFT =
does to guarantee loop free behavior.=C2=A0 That is actually a good example=
 why RIFT positive disaggregation guarantees sufficient
 disaggregation to prevent blackholes, loops and bow-ties but possibly more=
 than necessary (which is never claimed in the document). =C2=A0
<u></u><u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p class=3D"MsoNormal">[JEH] Understood. So there may be redundant disaggre=
gation but it keeps the forwarding plane valley free.=C2=A0 I think that=E2=
=80=99s OK.</p></div></div></div></div></div></div></blockquote><div><br></=
div><div>yes, I was thinking ages ago through implications of making RIFT &=
quot;sufficient _and_ necessary only&quot; and you end up with global vs. l=
ocal optimality problem which forces you pretty much to have all the info e=
verywhere to find a global optimum (well, topology info, you could skip pre=
fixes I think). Or harmonica routing which leads straight back to tradition=
al link-state with all its problems in the fabric. And all that would lead =
to very complex flooding scopes (the ones we have are complex enough and th=
at&#39;s why they are so precisely described in the table &amp; flooding ru=
les) and so on, IMO it&#39;s 80-20 rule here, &quot;sufficient&quot; must b=
e guaranteed (otherwise you loop or if lucky, bowtie), &quot;necessary only=
&quot; is a luxury we should not chase ;-)<br></div><div>=C2=A0</div><block=
quote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1=
px solid rgb(204,204,204);padding-left:1ex"><div lang=3D"EN-US"><div class=
=3D"gmail-m_-2407483994632617532WordSection1"><div><div><div><div><p class=
=3D"MsoNormal"><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0</p></div><div>
</div>
<div>
<p class=3D"MsoNormal">This constant is provided in appendix D.1 <u></u><u>=
</u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">I&#39;m working on the other directorate reviews and=
 will try to cut a new version with all those changes before deadline<u></u=
><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
<p class=3D"MsoNormal">[JEH] Thanks again for considering all my comments.<=
u></u><u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0</p></div></div></div></div></div></div=
></blockquote><div><br></div><div>well, thanks for your time. I know the dr=
aft takes time to comprehend given how far it sometimes stretches IP routin=
g envelope compared to traditional stuff. Glad you saw it as a puzzle ;-)<b=
r></div><div><br></div><div>And now, for those lego blocks ;-) <br></div><d=
iv><br></div><div>--- tony <br></div><div>=C2=A0</div></div></div>

--000000000000384761059686ec9d--


From nobody Mon Nov  4 13:07:52 2019
Return-Path: <internet-drafts@ietf.org>
X-Original-To: rift@ietf.org
Delivered-To: rift@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 1D84312022D; Mon,  4 Nov 2019 13:07:44 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: internet-drafts@ietf.org
To: <i-d-announce@ietf.org>
Cc: rift@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.108.0
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: rift@ietf.org
Message-ID: <157290166404.13972.15566452810164919612@ietfa.amsl.com>
Date: Mon, 04 Nov 2019 13:07:44 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/IWmOVaGNS0fKbNWa2W2TSJBOpBg>
Subject: [Rift] I-D Action: draft-ietf-rift-rift-09.txt
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Nov 2019 21:07:44 -0000

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Routing In Fat Trees WG of the IETF.

        Title           : RIFT: Routing in Fat Trees
        Authors         : Tony Przygienda
                          Alankar Sharma
                          Pascal Thubert
                          Bruno Rijsman
                          Dmitry Afanasiev
	Filename        : draft-ietf-rift-rift-09.txt
	Pages           : 154
	Date            : 2019-11-04

Abstract:
   This document defines a specialized, dynamic routing protocol for
   Clos and fat-tree network topologies optimized towards minimization
   of configuration and operational complexity.  The protocol

      deals with no configuration, fully automated construction of fat-
      tree topologies based on detection of links,

      minimizes the amount of routing state held at each level,

      automatically prunes and load balances topology flooding exchanges
      over a sufficient subset of links,

      supports automatic disaggregation of prefixes on link and node
      failures to prevent black-holing and suboptimal routing,

      allows traffic steering and re-routing policies,

      allows loop-free non-ECMP forwarding,

      automatically re-balances traffic towards the spines based on
      bandwidth available and finally

      provides mechanisms to synchronize a limited key-value data-store
      that can be used after protocol convergence to e.g.  bootstrap
      higher levels of functionality on nodes.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-rift-rift/

There are also htmlized versions available at:
https://tools.ietf.org/html/draft-ietf-rift-rift-09
https://datatracker.ietf.org/doc/html/draft-ietf-rift-rift-09

A diff from the previous version is available at:
https://www.ietf.org/rfcdiff?url2=draft-ietf-rift-rift-09


Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/


From nobody Mon Nov  4 13:12:18 2019
Return-Path: <tonysietf@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C5FD4120096 for <rift@ietfa.amsl.com>; Mon,  4 Nov 2019 13:12:16 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level: 
X-Spam-Status: No, score=-1.997 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id xyXl294qURC4 for <rift@ietfa.amsl.com>; Mon,  4 Nov 2019 13:12:14 -0800 (PST)
Received: from mail-io1-xd33.google.com (mail-io1-xd33.google.com [IPv6:2607:f8b0:4864:20::d33]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4055812007C for <rift@ietf.org>; Mon,  4 Nov 2019 13:12:14 -0800 (PST)
Received: by mail-io1-xd33.google.com with SMTP id p6so20142903iod.7 for <rift@ietf.org>; Mon, 04 Nov 2019 13:12:14 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to;  bh=zkrNcvL1Dyjr5nKfAQ6dBziKtdJ4XXLtWlOpFfzNckA=; b=aoEdoJLvGM6I9lwjSWTB6GU69vPm1kBKOSqaq4D6TVwFUMnUhSm24oepsXwZSgMJBZ Jf5l8E09RM4kUuHpq98AhS1Ig/14b4kuo4Tps0Jqqe/mjKaHHPkPnHQGtuYBUyJ3oJ8m 0z2+y+llPqUv1B70xAAU8Ziit7y17iKwvXdEP5J2Ly8+2VZFaFqwrhliomwg6um6pnrq zkR+A1NpVE8PonIQnqy0CGg0FVE1WsP3vyNUCBqcdBJS5vNNmOMQHTL47xZdh3mGRgzM 8fh0cixz06FujG50Dtr6xFJhgXlNgtdSZsSIGzoNQvnGOZsJHbAWpDGk6oYSS2E/WeO5 S7tQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=zkrNcvL1Dyjr5nKfAQ6dBziKtdJ4XXLtWlOpFfzNckA=; b=tDMJWiiYYUmUEZkneWu70xCtBIOQQ4yG6p13iGlqtBTw8XfUJ99ho1ldgB4yBvf4o1 y0dNHifJikHqzxnjDBCP/3fleH3wdEa3zqhgT2KBfvLRhi0oohKYgnmYl8dTVDTgN9l5 DURbsJ31j+6EdIE1tXSRjgRHNWMn+V/8var2jT8iR871Wj9eFghYvDDkFYtQ3Tjo8mic dyS6gfnBYwnTlEUyR2BZ4csVhYOtlng9Kp6guh+yKcThN0kq7gROv46kr4+nPSc/7rFc LP1d5DLOthPMHVs7ewaBnACaz2hEy890iHQBTk0MNy0WVIYbKZpHqSE4VxcIRgg0CV2j auuw==
X-Gm-Message-State: APjAAAX3/vfPajYsYrWYw0V/yknAwJCjSV4donhIwF0Mkmslx8vHIjwt oWZeR5xSS/CtdvMQ3bHHxl+F+MA3640mLLTST1fIADnj
X-Google-Smtp-Source: APXvYqzVp4r1FPrZVn0eadHYS4ZnvkrvJMcL5PDze2VaAsw0GRZoQnLglY8PCkz3HNAWDfZ9ODQAogBDCg1rzgtBzOI=
X-Received: by 2002:a05:6638:626:: with SMTP id h6mr2376845jar.113.1572901933328;  Mon, 04 Nov 2019 13:12:13 -0800 (PST)
MIME-Version: 1.0
References: <157290166404.13972.15566452810164919612@ietfa.amsl.com>
In-Reply-To: <157290166404.13972.15566452810164919612@ietfa.amsl.com>
From: Tony Przygienda <tonysietf@gmail.com>
Date: Mon, 4 Nov 2019 13:11:19 -0800
Message-ID: <CA+wi2hO4Fge-RvMzLLySG5QR8yOdkCrhof9kuc-caS=W8ybybA@mail.gmail.com>
To: rift@ietf.org
Content-Type: multipart/alternative; boundary="00000000000000ad2b05968bc544"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/oiqySlAwxJ-B4O9T2FdWDSqOwvw>
Subject: Re: [Rift] I-D Action: draft-ietf-rift-rift-09.txt
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Nov 2019 21:12:17 -0000

--00000000000000ad2b05968bc544
Content-Type: text/plain; charset="UTF-8"

Editorial version snapshot before IETF. Contains lots of input from 3 early
DIR reviews. Mostly restructuring (appendices pulled in) and lots of
clarifications in the document added as requested by reviewers.

Outstanding moving to XML2RFC V3 to include SVG pictures of FSMs, normative
language fine-comb and general brush to simplify language and correct for
grammar/articles, such stuff ... Will come after IETF

--- tony

On Mon, Nov 4, 2019 at 1:08 PM <internet-drafts@ietf.org> wrote:

>
> A New Internet-Draft is available from the on-line Internet-Drafts
> directories.
> This draft is a work item of the Routing In Fat Trees WG of the IETF.
>
>         Title           : RIFT: Routing in Fat Trees
>         Authors         : Tony Przygienda
>                           Alankar Sharma
>                           Pascal Thubert
>                           Bruno Rijsman
>                           Dmitry Afanasiev
>         Filename        : draft-ietf-rift-rift-09.txt
>         Pages           : 154
>         Date            : 2019-11-04
>
> Abstract:
>    This document defines a specialized, dynamic routing protocol for
>    Clos and fat-tree network topologies optimized towards minimization
>    of configuration and operational complexity.  The protocol
>
>       deals with no configuration, fully automated construction of fat-
>       tree topologies based on detection of links,
>
>       minimizes the amount of routing state held at each level,
>
>       automatically prunes and load balances topology flooding exchanges
>       over a sufficient subset of links,
>
>       supports automatic disaggregation of prefixes on link and node
>       failures to prevent black-holing and suboptimal routing,
>
>       allows traffic steering and re-routing policies,
>
>       allows loop-free non-ECMP forwarding,
>
>       automatically re-balances traffic towards the spines based on
>       bandwidth available and finally
>
>       provides mechanisms to synchronize a limited key-value data-store
>       that can be used after protocol convergence to e.g.  bootstrap
>       higher levels of functionality on nodes.
>
>
> The IETF datatracker status page for this draft is:
> https://datatracker.ietf.org/doc/draft-ietf-rift-rift/
>
> There are also htmlized versions available at:
> https://tools.ietf.org/html/draft-ietf-rift-rift-09
> https://datatracker.ietf.org/doc/html/draft-ietf-rift-rift-09
>
> A diff from the previous version is available at:
> https://www.ietf.org/rfcdiff?url2=draft-ietf-rift-rift-09
>
>
> Please note that it may take a couple of minutes from the time of
> submission
> until the htmlized version and diff are available at tools.ietf.org.
>
> Internet-Drafts are also available by anonymous FTP at:
> ftp://ftp.ietf.org/internet-drafts/
>
> _______________________________________________
> RIFT mailing list
> RIFT@ietf.org
> https://www.ietf.org/mailman/listinfo/rift
>

--00000000000000ad2b05968bc544
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Editorial version snapshot before IETF. Contains lots=
 of input from 3 early DIR reviews. Mostly restructuring (appendices pulled=
 in) and lots of clarifications in the document added as requested by revie=
wers.</div><div><br></div><div>Outstanding moving to XML2RFC V3 to include =
SVG pictures of FSMs, normative language fine-comb and general brush to sim=
plify language and correct for grammar/articles, such stuff ... Will come a=
fter IETF <br></div><div><br></div><div>--- tony <br></div></div><br><div c=
lass=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Mon, Nov 4, 2=
019 at 1:08 PM &lt;<a href=3D"mailto:internet-drafts@ietf.org">internet-dra=
fts@ietf.org</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);paddin=
g-left:1ex"><br>
A New Internet-Draft is available from the on-line Internet-Drafts director=
ies.<br>
This draft is a work item of the Routing In Fat Trees WG of the IETF.<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Title=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0:=
 RIFT: Routing in Fat Trees<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Authors=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: Tony=
 Przygienda<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 Alankar Sharma<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 Pascal Thubert<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 Bruno Rijsman<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 Dmitry Afanasiev<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Filename=C2=A0 =C2=A0 =C2=A0 =C2=A0 : draft-iet=
f-rift-rift-09.txt<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Pages=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0:=
 154<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Date=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 :=
 2019-11-04<br>
<br>
Abstract:<br>
=C2=A0 =C2=A0This document defines a specialized, dynamic routing protocol =
for<br>
=C2=A0 =C2=A0Clos and fat-tree network topologies optimized towards minimiz=
ation<br>
=C2=A0 =C2=A0of configuration and operational complexity.=C2=A0 The protoco=
l<br>
<br>
=C2=A0 =C2=A0 =C2=A0 deals with no configuration, fully automated construct=
ion of fat-<br>
=C2=A0 =C2=A0 =C2=A0 tree topologies based on detection of links,<br>
<br>
=C2=A0 =C2=A0 =C2=A0 minimizes the amount of routing state held at each lev=
el,<br>
<br>
=C2=A0 =C2=A0 =C2=A0 automatically prunes and load balances topology floodi=
ng exchanges<br>
=C2=A0 =C2=A0 =C2=A0 over a sufficient subset of links,<br>
<br>
=C2=A0 =C2=A0 =C2=A0 supports automatic disaggregation of prefixes on link =
and node<br>
=C2=A0 =C2=A0 =C2=A0 failures to prevent black-holing and suboptimal routin=
g,<br>
<br>
=C2=A0 =C2=A0 =C2=A0 allows traffic steering and re-routing policies,<br>
<br>
=C2=A0 =C2=A0 =C2=A0 allows loop-free non-ECMP forwarding,<br>
<br>
=C2=A0 =C2=A0 =C2=A0 automatically re-balances traffic towards the spines b=
ased on<br>
=C2=A0 =C2=A0 =C2=A0 bandwidth available and finally<br>
<br>
=C2=A0 =C2=A0 =C2=A0 provides mechanisms to synchronize a limited key-value=
 data-store<br>
=C2=A0 =C2=A0 =C2=A0 that can be used after protocol convergence to e.g.=C2=
=A0 bootstrap<br>
=C2=A0 =C2=A0 =C2=A0 higher levels of functionality on nodes.<br>
<br>
<br>
The IETF datatracker status page for this draft is:<br>
<a href=3D"https://datatracker.ietf.org/doc/draft-ietf-rift-rift/" rel=3D"n=
oreferrer" target=3D"_blank">https://datatracker.ietf.org/doc/draft-ietf-ri=
ft-rift/</a><br>
<br>
There are also htmlized versions available at:<br>
<a href=3D"https://tools.ietf.org/html/draft-ietf-rift-rift-09" rel=3D"nore=
ferrer" target=3D"_blank">https://tools.ietf.org/html/draft-ietf-rift-rift-=
09</a><br>
<a href=3D"https://datatracker.ietf.org/doc/html/draft-ietf-rift-rift-09" r=
el=3D"noreferrer" target=3D"_blank">https://datatracker.ietf.org/doc/html/d=
raft-ietf-rift-rift-09</a><br>
<br>
A diff from the previous version is available at:<br>
<a href=3D"https://www.ietf.org/rfcdiff?url2=3Ddraft-ietf-rift-rift-09" rel=
=3D"noreferrer" target=3D"_blank">https://www.ietf.org/rfcdiff?url2=3Ddraft=
-ietf-rift-rift-09</a><br>
<br>
<br>
Please note that it may take a couple of minutes from the time of submissio=
n<br>
until the htmlized version and diff are available at <a href=3D"http://tool=
s.ietf.org" rel=3D"noreferrer" target=3D"_blank">tools.ietf.org</a>.<br>
<br>
Internet-Drafts are also available by anonymous FTP at:<br>
<a href=3D"ftp://ftp.ietf.org/internet-drafts/" rel=3D"noreferrer" target=
=3D"_blank">ftp://ftp.ietf.org/internet-drafts/</a><br>
<br>
_______________________________________________<br>
RIFT mailing list<br>
<a href=3D"mailto:RIFT@ietf.org" target=3D"_blank">RIFT@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/rift" rel=3D"noreferrer" t=
arget=3D"_blank">https://www.ietf.org/mailman/listinfo/rift</a><br>
</blockquote></div>

--00000000000000ad2b05968bc544--

