
From nobody Mon Jan  4 11:02:04 2016
Return-Path: <shares@ndzh.com>
X-Original-To: supa@ietfa.amsl.com
Delivered-To: supa@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 875441A871E; Mon,  4 Jan 2016 11:01:53 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -96.258
X-Spam-Level: 
X-Spam-Status: No, score=-96.258 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DOS_OUTLOOK_TO_MX=2.845, FH_RELAY_NODNS=1.451, HELO_MISMATCH_COM=0.553, RDNS_NONE=0.793, USER_IN_WHITELIST=-100] autolearn=no
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 8YUk-ZUcY0aW; Mon,  4 Jan 2016 11:01:51 -0800 (PST)
Received: from hickoryhill-consulting.com (unknown [50.245.122.97]) (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 9FC411A870B; Mon,  4 Jan 2016 11:01:43 -0800 (PST)
X-Default-Received-SPF: pass (skip=loggedin (res=PASS)) x-ip-name=74.43.47.177; 
From: "Susan Hares" <shares@ndzh.com>
To: <i2rs@ietf.org>, <netmod@ietf.org>, <supa@ietf.org>
References: <20160104170330.13929.73845.idtracker@ietfa.amsl.com>
In-Reply-To: <20160104170330.13929.73845.idtracker@ietfa.amsl.com>
Date: Mon, 4 Jan 2016 14:01:55 -0500
Message-ID: <006701d14722$616c6950$24453bf0$@ndzh.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
X-Mailer: Microsoft Outlook 14.0
Content-Language: en-us
Thread-Index: AQHC7aVhYcGa1ChTuo//84M/O+4YZ58IZpiA
X-Authenticated-User: skh@ndzh.com 
Archived-At: <http://mailarchive.ietf.org/arch/msg/supa/VYmy9_sv-SCB0HR0yXuWfbrTGog>
Subject: [Supa] FW: New Version Notification for draft-hares-i2rs-bnp-eca-data-model-03.txt
X-BeenThere: supa@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "This list is to discuss SUPA \(Simplified Use of Policy Abstractions\) related issues." <supa.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/supa>, <mailto:supa-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/supa/>
List-Post: <mailto:supa@ietf.org>
List-Help: <mailto:supa-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/supa>, <mailto:supa-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Jan 2016 19:01:53 -0000

This model provides a Event-Condition-Action (ECA) policy model.
The I2RS FB-RIB yang data model utilizes this model, but to my knowledge =
the=20
Netmod or netconf has not adopted an ECA policy model to
parallel the ACL model.=20

Chen and co-authors have created the model:
=20
draft-chen-supa-eca-data-model-05.txt=20

But it does not align with this yang model or seem sufficient to
support the FB-RIB information model.   At IETF 94,
I presented a discussion of the issues I found with the=20
draft-chen-supa-eca-data-model-05.txt, but it has not been updated.
We would appreciate feedback on this version of yang model.=20

<i2rs Chair hat on>=20
In my role as I2RS chair,  I2RS needs to make progress soon on the
I2RS FB-RIB data model.  We would appreciate your aid.=20
<i2rs chair hat off> =20

Sue=20

-----Original Message-----
From: internet-drafts@ietf.org [mailto:internet-drafts@ietf.org]=20
Sent: Monday, January 04, 2016 12:04 PM
To: Susan Hares; Qin Wu; Russ White
Subject: New Version Notification for =
draft-hares-i2rs-bnp-eca-data-model-03.txt


A new version of I-D, draft-hares-i2rs-bnp-eca-data-model-03.txt
has been successfully submitted by Susan Hares and posted to the IETF =
repository.

Name:		draft-hares-i2rs-bnp-eca-data-model
Revision:	03
Title:		An Information Model for Basic Network Policy and Filter Rules
Document date:	2016-01-04
Group:		Individual Submission
Pages:		30
URL:            =
https://www.ietf.org/internet-drafts/draft-hares-i2rs-bnp-eca-data-model-=
03.txt
Status:         =
https://datatracker.ietf.org/doc/draft-hares-i2rs-bnp-eca-data-model/
Htmlized:       =
https://tools.ietf.org/html/draft-hares-i2rs-bnp-eca-data-model-03
Diff:           =
https://www.ietf.org/rfcdiff?url2=3Ddraft-hares-i2rs-bnp-eca-data-model-0=
3

Abstract:
   This document contains the Basic Network Policy and Filters (BNP IM)
   Data Model which provides a policy model that support an ordered list
   of match-condition-action (aka event-condition-action (ECA)) for
   multiple layers (interface, L1-L4, application) and other factors
   (size of packet, time of day).  The actions allow for setting actions
   (QOS and other), decapsulation, encapsulation, plus forwarding
   actions.  The policy model can be used with the I2RS filter-based
   RIB.

                                                                         =
        =20


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.

The IETF Secretariat



From nobody Mon Jan  4 12:54:36 2016
Return-Path: <jmh@joelhalpern.com>
X-Original-To: supa@ietfa.amsl.com
Delivered-To: supa@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 54CA91A92ED; Mon,  4 Jan 2016 12:54:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.702
X-Spam-Level: 
X-Spam-Status: No, score=-2.702 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
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 Mnr-lj5RyE6I; Mon,  4 Jan 2016 12:54:30 -0800 (PST)
Received: from maila2.tigertech.net (maila2.tigertech.net [208.80.4.152]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C8C401A92EB; Mon,  4 Jan 2016 12:54:29 -0800 (PST)
Received: from localhost (localhost [127.0.0.1]) by maila2.tigertech.net (Postfix) with ESMTP id B163125DBA5; Mon,  4 Jan 2016 12:54:29 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joelhalpern.com; s=1.tigertech; t=1451940869; bh=oIotwmIeXlL58bL7VXd3wMLgBte+TzwkWvuGYhtdwy8=; h=Subject:To:References:From:Date:In-Reply-To:From; b=JAdQeC/zqPBOmOaGOJcw8xOlWsUp1kpT7BQ8Je5rhbNPEw4y7JYWa35+a7BwszPuq MNXUoOnhFxBU1E8PFtMKXwHtB0WfB1B6oJdNXqcL/roocpE/j0OqiQyt93R7IM9zP/ jATSNv0f/C9fRhTmLIbs+IvH1PiRL7EbtCvRu3GI=
X-Virus-Scanned: Debian amavisd-new at maila2.tigertech.net
Received: from Joels-MacBook-Pro.local (209-255-163-147.ip.mcleodusa.net [209.255.163.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by maila2.tigertech.net (Postfix) with ESMTPSA id 1B904240FDE; Mon,  4 Jan 2016 12:54:28 -0800 (PST)
To: Susan Hares <shares@ndzh.com>, i2rs@ietf.org, netmod@ietf.org, supa@ietf.org
References: <20160104170330.13929.73845.idtracker@ietfa.amsl.com> <006701d14722$616c6950$24453bf0$@ndzh.com>
From: "Joel M. Halpern" <jmh@joelhalpern.com>
Message-ID: <568ADBE7.3030101@joelhalpern.com>
Date: Mon, 4 Jan 2016 15:53:59 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:38.0) Gecko/20100101 Thunderbird/38.5.0
MIME-Version: 1.0
In-Reply-To: <006701d14722$616c6950$24453bf0$@ndzh.com>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/supa/XTzosaP6M5RI-B5LXs0s9N3m_wg>
Subject: Re: [Supa] [i2rs] FW: New Version Notification for draft-hares-i2rs-bnp-eca-data-model-03.txt
X-BeenThere: supa@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "This list is to discuss SUPA \(Simplified Use of Policy Abstractions\) related issues." <supa.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/supa>, <mailto:supa-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/supa/>
List-Post: <mailto:supa@ietf.org>
List-Help: <mailto:supa-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/supa>, <mailto:supa-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Jan 2016 20:54:32 -0000

I think there are two issues here.

1) It is not clear to me why there is any dependence of the fb-rib data 
model on an eca data model.  While supa does allow for policy model to 
be sent directly to the router, it also allows many other cases.

2) The approach with the supa eca data model is still under development. 
  Having said that, the material in there is intended to be very 
general.  From what I understand, there should be no difficulty in 
refining the action side of that model to actions which affect the 
fb-rib in ways that are consistent with the fb-dib data model.

Yours,
Joel

On 1/4/16 2:01 PM, Susan Hares wrote:
> This model provides a Event-Condition-Action (ECA) policy model.
> The I2RS FB-RIB yang data model utilizes this model, but to my knowledge the
> Netmod or netconf has not adopted an ECA policy model to
> parallel the ACL model.
>
> Chen and co-authors have created the model:
>
> draft-chen-supa-eca-data-model-05.txt
>
> But it does not align with this yang model or seem sufficient to
> support the FB-RIB information model.   At IETF 94,
> I presented a discussion of the issues I found with the
> draft-chen-supa-eca-data-model-05.txt, but it has not been updated.
> We would appreciate feedback on this version of yang model.
>
> <i2rs Chair hat on>
> In my role as I2RS chair,  I2RS needs to make progress soon on the
> I2RS FB-RIB data model.  We would appreciate your aid.
> <i2rs chair hat off>
>
> Sue
>
> -----Original Message-----
> From: internet-drafts@ietf.org [mailto:internet-drafts@ietf.org]
> Sent: Monday, January 04, 2016 12:04 PM
> To: Susan Hares; Qin Wu; Russ White
> Subject: New Version Notification for draft-hares-i2rs-bnp-eca-data-model-03.txt
>
>
> A new version of I-D, draft-hares-i2rs-bnp-eca-data-model-03.txt
> has been successfully submitted by Susan Hares and posted to the IETF repository.
>
> Name:		draft-hares-i2rs-bnp-eca-data-model
> Revision:	03
> Title:		An Information Model for Basic Network Policy and Filter Rules
> Document date:	2016-01-04
> Group:		Individual Submission
> Pages:		30
> URL:            https://www.ietf.org/internet-drafts/draft-hares-i2rs-bnp-eca-data-model-03.txt
> Status:         https://datatracker.ietf.org/doc/draft-hares-i2rs-bnp-eca-data-model/
> Htmlized:       https://tools.ietf.org/html/draft-hares-i2rs-bnp-eca-data-model-03
> Diff:           https://www.ietf.org/rfcdiff?url2=draft-hares-i2rs-bnp-eca-data-model-03
>
> Abstract:
>     This document contains the Basic Network Policy and Filters (BNP IM)
>     Data Model which provides a policy model that support an ordered list
>     of match-condition-action (aka event-condition-action (ECA)) for
>     multiple layers (interface, L1-L4, application) and other factors
>     (size of packet, time of day).  The actions allow for setting actions
>     (QOS and other), decapsulation, encapsulation, plus forwarding
>     actions.  The policy model can be used with the I2RS filter-based
>     RIB.
>
>
>
>
> 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.
>
> The IETF Secretariat
>
>
> _______________________________________________
> i2rs mailing list
> i2rs@ietf.org
> https://www.ietf.org/mailman/listinfo/i2rs
>


From nobody Mon Jan  4 14:33:51 2016
Return-Path: <shares@ndzh.com>
X-Original-To: supa@ietfa.amsl.com
Delivered-To: supa@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B51D71AC438; Mon,  4 Jan 2016 14:33:47 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -96.257
X-Spam-Level: 
X-Spam-Status: No, score=-96.257 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DOS_OUTLOOK_TO_MX=2.845, FH_RELAY_NODNS=1.451, HELO_MISMATCH_COM=0.553, HTML_MESSAGE=0.001, RDNS_NONE=0.793, USER_IN_WHITELIST=-100] autolearn=no
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 ux-VTgtvkUyC; Mon,  4 Jan 2016 14:33:43 -0800 (PST)
Received: from hickoryhill-consulting.com (unknown [50.245.122.97]) (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 65A4F1A079D; Mon,  4 Jan 2016 14:33:43 -0800 (PST)
X-Default-Received-SPF: pass (skip=loggedin (res=PASS)) x-ip-name=74.43.47.177; 
From: "Susan Hares" <shares@ndzh.com>
To: "'Joel M. Halpern'" <jmh@joelhalpern.com>, <i2rs@ietf.org>, <netmod@ietf.org>, <supa@ietf.org>
References: <20160104170330.13929.73845.idtracker@ietfa.amsl.com> <006701d14722$616c6950$24453bf0$@ndzh.com> <568ADBE7.3030101@joelhalpern.com>
In-Reply-To: <568ADBE7.3030101@joelhalpern.com>
Date: Mon, 4 Jan 2016 17:33:54 -0500
Message-ID: <00b501d1473f$fef22990$fcd67cb0$@ndzh.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_00B6_01D14716.1620B570"
X-Mailer: Microsoft Outlook 14.0
Content-Language: en-us
Thread-Index: AQHC7aVhYcGa1ChTuo//84M/O+4YZwFG1DOWAZ3SDjie8XuAkA==
X-Authenticated-User: skh@ndzh.com 
Archived-At: <http://mailarchive.ietf.org/arch/msg/supa/wHBguuu3pdJur6siA8iPWDd0gyU>
Subject: Re: [Supa] [i2rs] FW: New Version Notification for draft-hares-i2rs-bnp-eca-data-model-03.txt
X-BeenThere: supa@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "This list is to discuss SUPA \(Simplified Use of Policy Abstractions\) related issues." <supa.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/supa>, <mailto:supa-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/supa/>
List-Post: <mailto:supa@ietf.org>
List-Help: <mailto:supa-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/supa>, <mailto:supa-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Jan 2016 22:33:47 -0000

This is a multipart message in MIME format.

------=_NextPart_000_00B6_01D14716.1620B570
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit

Joel: 

 

On #1) the dependency between I2RS Filter-based RIB (FB-RIB) and ECA, please
see draft-kini-i2rs-fb-rib-info-model-02.txt. In section 1.1, it gives the
definition of the FB-RIB.  In section 1.2, it links this to an
event-condition-action model.  If you disagree with the definition of  I2RS
FB-RIB, then we should probably restrict this conversation to the I2RS mail
list.  Any feedback on the Info-model or data-model would be helpful.  The
authors hoped to go to a WG adoption call at the end of this week. 

 

One challenge for the ephemeral I2RS FB-RIB, is there is no definition of
the non-ephemeral FB-RIB.  If you think there should be a non-ephemeral
FB-RIB - that discussion may be useful between I2RS, Netmod and SUPA. 

 

On #2) SUPA ECA model, I agree that we should be able to have a common
draft.  At IETF 94, I raised issues regarding the SUPA versus my ECA
definition.   

 

Cheerily, 

 

Sue 

 

-----Original Message-----
From: Joel M. Halpern [mailto:jmh@joelhalpern.com] 
Sent: Monday, January 04, 2016 3:54 PM
To: Susan Hares; i2rs@ietf.org; netmod@ietf.org; supa@ietf.org
Subject: Re: [i2rs] FW: New Version Notification for
draft-hares-i2rs-bnp-eca-data-model-03.txt

 

I think there are two issues here.

 

1) It is not clear to me why there is any dependence of the fb-rib data
model on an eca data model.  While supa does allow for policy model to be
sent directly to the router, it also allows many other cases.

 

2) The approach with the supa eca data model is still under development. 

  Having said that, the material in there is intended to be very general.
>From what I understand, there should be no difficulty in refining the action
side of that model to actions which affect the fb-rib in ways that are
consistent with the fb-dib data model.

 

Yours,

Joel

 

On 1/4/16 2:01 PM, Susan Hares wrote:

> This model provides a Event-Condition-Action (ECA) policy model.

> The I2RS FB-RIB yang data model utilizes this model, but to my 

> knowledge the Netmod or netconf has not adopted an ECA policy model to 

> parallel the ACL model.

> 

> Chen and co-authors have created the model:

> 

> draft-chen-supa-eca-data-model-05.txt

> 

> But it does not align with this yang model or seem sufficient to

> support the FB-RIB information model.   At IETF 94,

> I presented a discussion of the issues I found with the 

> draft-chen-supa-eca-data-model-05.txt, but it has not been updated.

> We would appreciate feedback on this version of yang model.

> 

> <i2rs Chair hat on>

> In my role as I2RS chair,  I2RS needs to make progress soon on the 

> I2RS FB-RIB data model.  We would appreciate your aid.

> <i2rs chair hat off>

> 

> Sue

> 

> -----Original Message-----

> From:  <mailto:internet-drafts@ietf.org> internet-drafts@ietf.org [
<mailto:internet-drafts@ietf.org> mailto:internet-drafts@ietf.org]

> Sent: Monday, January 04, 2016 12:04 PM

> To: Susan Hares; Qin Wu; Russ White

> Subject: New Version Notification for 

> draft-hares-i2rs-bnp-eca-data-model-03.txt

> 

> 

> A new version of I-D, draft-hares-i2rs-bnp-eca-data-model-03.txt

> has been successfully submitted by Susan Hares and posted to the IETF
repository.

> 

> Name:                               draft-hares-i2rs-bnp-eca-data-model

> Revision:          03

> Title:                  An Information Model for Basic Network Policy and
Filter Rules

> Document date:           2016-01-04

> Group:                              Individual Submission

> Pages:                               30

> URL:
<https://www.ietf.org/internet-drafts/draft-hares-i2rs-bnp-eca-data-model-03
.txt>
https://www.ietf.org/internet-drafts/draft-hares-i2rs-bnp-eca-data-model-03.
txt

> Status:
<https://datatracker.ietf.org/doc/draft-hares-i2rs-bnp-eca-data-model/>
https://datatracker.ietf.org/doc/draft-hares-i2rs-bnp-eca-data-model/

> Htmlized:
<https://tools.ietf.org/html/draft-hares-i2rs-bnp-eca-data-model-03>
https://tools.ietf.org/html/draft-hares-i2rs-bnp-eca-data-model-03

> Diff:
<https://www.ietf.org/rfcdiff?url2=draft-hares-i2rs-bnp-eca-data-model-03>
https://www.ietf.org/rfcdiff?url2=draft-hares-i2rs-bnp-eca-data-model-03

> 

> Abstract:

>     This document contains the Basic Network Policy and Filters (BNP IM)

>     Data Model which provides a policy model that support an ordered list

>     of match-condition-action (aka event-condition-action (ECA)) for

>     multiple layers (interface, L1-L4, application) and other factors

>     (size of packet, time of day).  The actions allow for setting actions

>     (QOS and other), decapsulation, encapsulation, plus forwarding

>     actions.  The policy model can be used with the I2RS filter-based

>     RIB.

> 

> 

> 

> 

> 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.

> 

> The IETF Secretariat

> 

> 

> _______________________________________________

> i2rs mailing list

>  <mailto:i2rs@ietf.org> i2rs@ietf.org

>  <https://www.ietf.org/mailman/listinfo/i2rs>
https://www.ietf.org/mailman/listinfo/i2rs

> 


------=_NextPart_000_00B6_01D14716.1620B570
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns=3D"http://www.w3.org/TR/REC-html40"><head><meta =
http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii"><meta name=3DGenerator content=3D"Microsoft Word 14 =
(filtered medium)"><style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{mso-style-priority:99;
	mso-style-link:"Plain Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:8.0pt;
	font-family:"Tahoma","sans-serif";}
span.PlainTextChar
	{mso-style-name:"Plain Text Char";
	mso-style-priority:99;
	mso-style-link:"Plain Text";
	font-family:"Calibri","sans-serif";}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-priority:99;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma","sans-serif";}
.MsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri","sans-serif";}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DEN-US link=3Dblue =
vlink=3Dpurple><div class=3DWordSection1><p class=3DMsoPlainText>Joel: =
<o:p></o:p></p><p class=3DMsoPlainText><o:p>&nbsp;</o:p></p><p =
class=3DMsoPlainText>On #1) the dependency between I2RS Filter-based RIB =
(FB-RIB) and ECA, please see draft-kini-i2rs-fb-rib-info-model-02.txt. =
In section 1.1, it gives the definition of the FB-RIB.&nbsp; In section =
1.2, it links this to an event-condition-action model. &nbsp;If you =
disagree with the definition of &nbsp;I2RS FB-RIB, then we should =
probably restrict this conversation to the I2RS mail list. &nbsp;Any =
feedback on the Info-model or data-model would be helpful.&nbsp; The =
authors hoped to go to a WG adoption call at the end of this week. =
<o:p></o:p></p><p class=3DMsoPlainText><o:p>&nbsp;</o:p></p><p =
class=3DMsoPlainText>One challenge for the ephemeral I2RS FB-RIB, is =
there is no definition of the non-ephemeral FB-RIB.&nbsp; If you think =
there should be a non-ephemeral FB-RIB &#8211; that discussion may be =
useful between I2RS, Netmod and SUPA. <o:p></o:p></p><p =
class=3DMsoPlainText><o:p>&nbsp;</o:p></p><p class=3DMsoPlainText>On #2) =
SUPA ECA model, I agree that we should be able to have a common =
draft.&nbsp; At IETF 94, I raised issues regarding the SUPA versus my =
ECA definition.&nbsp; &nbsp;<o:p></o:p></p><p =
class=3DMsoPlainText><o:p>&nbsp;</o:p></p><p =
class=3DMsoPlainText>Cheerily, <o:p></o:p></p><p =
class=3DMsoPlainText><o:p>&nbsp;</o:p></p><p class=3DMsoPlainText>Sue =
<o:p></o:p></p><p class=3DMsoPlainText><o:p>&nbsp;</o:p></p><p =
class=3DMsoPlainText>-----Original Message-----<br>From: Joel M. Halpern =
[mailto:jmh@joelhalpern.com] <br>Sent: Monday, January 04, 2016 3:54 =
PM<br>To: Susan Hares; i2rs@ietf.org; netmod@ietf.org; =
supa@ietf.org<br>Subject: Re: [i2rs] FW: New Version Notification for =
draft-hares-i2rs-bnp-eca-data-model-03.txt</p><p =
class=3DMsoPlainText><o:p>&nbsp;</o:p></p><p class=3DMsoPlainText>I =
think there are two issues here.<o:p></o:p></p><p =
class=3DMsoPlainText><o:p>&nbsp;</o:p></p><p class=3DMsoPlainText>1) It =
is not clear to me why there is any dependence of the fb-rib data model =
on an eca data model.&nbsp; While supa does allow for policy model to be =
sent directly to the router, it also allows many other =
cases.<o:p></o:p></p><p class=3DMsoPlainText><o:p>&nbsp;</o:p></p><p =
class=3DMsoPlainText>2) The approach with the supa eca data model is =
still under development. <o:p></o:p></p><p =
class=3DMsoPlainText>&nbsp;&nbsp;Having said that, the material in there =
is intended to be very general.&nbsp; From what I understand, there =
should be no difficulty in refining the action side of that model to =
actions which affect the fb-rib in ways that are consistent with the =
fb-dib data model.<o:p></o:p></p><p =
class=3DMsoPlainText><o:p>&nbsp;</o:p></p><p =
class=3DMsoPlainText>Yours,<o:p></o:p></p><p =
class=3DMsoPlainText>Joel<o:p></o:p></p><p =
class=3DMsoPlainText><o:p>&nbsp;</o:p></p><p class=3DMsoPlainText>On =
1/4/16 2:01 PM, Susan Hares wrote:<o:p></o:p></p><p =
class=3DMsoPlainText>&gt; This model provides a Event-Condition-Action =
(ECA) policy model.<o:p></o:p></p><p class=3DMsoPlainText>&gt; The I2RS =
FB-RIB yang data model utilizes this model, but to my <o:p></o:p></p><p =
class=3DMsoPlainText>&gt; knowledge the Netmod or netconf has not =
adopted an ECA policy model to <o:p></o:p></p><p =
class=3DMsoPlainText>&gt; parallel the ACL model.<o:p></o:p></p><p =
class=3DMsoPlainText>&gt;<o:p>&nbsp;</o:p></p><p =
class=3DMsoPlainText>&gt; Chen and co-authors have created the =
model:<o:p></o:p></p><p class=3DMsoPlainText>&gt;<o:p>&nbsp;</o:p></p><p =
class=3DMsoPlainText>&gt; =
draft-chen-supa-eca-data-model-05.txt<o:p></o:p></p><p =
class=3DMsoPlainText>&gt;<o:p>&nbsp;</o:p></p><p =
class=3DMsoPlainText>&gt; But it does not align with this yang model or =
seem sufficient to<o:p></o:p></p><p class=3DMsoPlainText>&gt; support =
the FB-RIB information model.&nbsp;&nbsp; At IETF 94,<o:p></o:p></p><p =
class=3DMsoPlainText>&gt; I presented a discussion of the issues I found =
with the <o:p></o:p></p><p class=3DMsoPlainText>&gt; =
draft-chen-supa-eca-data-model-05.txt, but it has not been =
updated.<o:p></o:p></p><p class=3DMsoPlainText>&gt; We would appreciate =
feedback on this version of yang model.<o:p></o:p></p><p =
class=3DMsoPlainText>&gt;<o:p>&nbsp;</o:p></p><p =
class=3DMsoPlainText>&gt; &lt;i2rs Chair hat on&gt;<o:p></o:p></p><p =
class=3DMsoPlainText>&gt; In my role as I2RS chair,&nbsp; I2RS needs to =
make progress soon on the <o:p></o:p></p><p class=3DMsoPlainText>&gt; =
I2RS FB-RIB data model.&nbsp; We would appreciate your =
aid.<o:p></o:p></p><p class=3DMsoPlainText>&gt; &lt;i2rs chair hat =
off&gt;<o:p></o:p></p><p =
class=3DMsoPlainText>&gt;<o:p>&nbsp;</o:p></p><p =
class=3DMsoPlainText>&gt; Sue<o:p></o:p></p><p =
class=3DMsoPlainText>&gt;<o:p>&nbsp;</o:p></p><p =
class=3DMsoPlainText>&gt; -----Original Message-----<o:p></o:p></p><p =
class=3DMsoPlainText>&gt; From: <a =
href=3D"mailto:internet-drafts@ietf.org"><span =
style=3D'color:windowtext;text-decoration:none'>internet-drafts@ietf.org<=
/span></a> [<a href=3D"mailto:internet-drafts@ietf.org"><span =
style=3D'color:windowtext;text-decoration:none'>mailto:internet-drafts@ie=
tf.org</span></a>]<o:p></o:p></p><p class=3DMsoPlainText>&gt; Sent: =
Monday, January 04, 2016 12:04 PM<o:p></o:p></p><p =
class=3DMsoPlainText>&gt; To: Susan Hares; Qin Wu; Russ =
White<o:p></o:p></p><p class=3DMsoPlainText>&gt; Subject: New Version =
Notification for <o:p></o:p></p><p class=3DMsoPlainText>&gt; =
draft-hares-i2rs-bnp-eca-data-model-03.txt<o:p></o:p></p><p =
class=3DMsoPlainText>&gt;<o:p>&nbsp;</o:p></p><p =
class=3DMsoPlainText>&gt;<o:p>&nbsp;</o:p></p><p =
class=3DMsoPlainText>&gt; A new version of I-D, =
draft-hares-i2rs-bnp-eca-data-model-03.txt<o:p></o:p></p><p =
class=3DMsoPlainText>&gt; has been successfully submitted by Susan Hares =
and posted to the IETF repository.<o:p></o:p></p><p =
class=3DMsoPlainText>&gt;<o:p>&nbsp;</o:p></p><p =
class=3DMsoPlainText>&gt; =
Name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
draft-hares-i2rs-bnp-eca-data-model<o:p></o:p></p><p =
class=3DMsoPlainText>&gt; =
Revision:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
03<o:p></o:p></p><p class=3DMsoPlainText>&gt; =
Title:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; An Information Model for Basic =
Network Policy and Filter Rules<o:p></o:p></p><p =
class=3DMsoPlainText>&gt; Document =
date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
2016-01-04<o:p></o:p></p><p class=3DMsoPlainText>&gt; =
Group:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Individual =
Submission<o:p></o:p></p><p class=3DMsoPlainText>&gt; =
Pages:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 30<o:p></o:p></p><p =
class=3DMsoPlainText>&gt; =
URL:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<a =
href=3D"https://www.ietf.org/internet-drafts/draft-hares-i2rs-bnp-eca-dat=
a-model-03.txt"><span =
style=3D'color:windowtext;text-decoration:none'>https://www.ietf.org/inte=
rnet-drafts/draft-hares-i2rs-bnp-eca-data-model-03.txt</span></a><o:p></o=
:p></p><p class=3DMsoPlainText>&gt; =
Status:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a =
href=3D"https://datatracker.ietf.org/doc/draft-hares-i2rs-bnp-eca-data-mo=
del/"><span =
style=3D'color:windowtext;text-decoration:none'>https://datatracker.ietf.=
org/doc/draft-hares-i2rs-bnp-eca-data-model/</span></a><o:p></o:p></p><p =
class=3DMsoPlainText>&gt; Htmlized:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<a =
href=3D"https://tools.ietf.org/html/draft-hares-i2rs-bnp-eca-data-model-0=
3"><span =
style=3D'color:windowtext;text-decoration:none'>https://tools.ietf.org/ht=
ml/draft-hares-i2rs-bnp-eca-data-model-03</span></a><o:p></o:p></p><p =
class=3DMsoPlainText>&gt; =
Diff:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a =
href=3D"https://www.ietf.org/rfcdiff?url2=3Ddraft-hares-i2rs-bnp-eca-data=
-model-03"><span =
style=3D'color:windowtext;text-decoration:none'>https://www.ietf.org/rfcd=
iff?url2=3Ddraft-hares-i2rs-bnp-eca-data-model-03</span></a><o:p></o:p></=
p><p class=3DMsoPlainText>&gt;<o:p>&nbsp;</o:p></p><p =
class=3DMsoPlainText>&gt; Abstract:<o:p></o:p></p><p =
class=3DMsoPlainText>&gt;&nbsp;&nbsp;&nbsp;&nbsp; This document contains =
the Basic Network Policy and Filters (BNP IM)<o:p></o:p></p><p =
class=3DMsoPlainText>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Data Model which =
provides a policy model that support an ordered list<o:p></o:p></p><p =
class=3DMsoPlainText>&gt;&nbsp;&nbsp;&nbsp;&nbsp; of =
match-condition-action (aka event-condition-action (ECA)) =
for<o:p></o:p></p><p class=3DMsoPlainText>&gt;&nbsp;&nbsp;&nbsp;&nbsp; =
multiple layers (interface, L1-L4, application) and other =
factors<o:p></o:p></p><p =
class=3DMsoPlainText>&gt;&nbsp;&nbsp;&nbsp;&nbsp; (size of packet, time =
of day).&nbsp; The actions allow for setting actions<o:p></o:p></p><p =
class=3DMsoPlainText>&gt;&nbsp;&nbsp;&nbsp;&nbsp; (QOS and other), =
decapsulation, encapsulation, plus forwarding<o:p></o:p></p><p =
class=3DMsoPlainText>&gt;&nbsp;&nbsp;&nbsp;&nbsp; actions.&nbsp; The =
policy model can be used with the I2RS filter-based<o:p></o:p></p><p =
class=3DMsoPlainText>&gt;&nbsp;&nbsp;&nbsp;&nbsp; RIB.<o:p></o:p></p><p =
class=3DMsoPlainText>&gt;<o:p>&nbsp;</o:p></p><p =
class=3DMsoPlainText>&gt;<o:p>&nbsp;</o:p></p><p =
class=3DMsoPlainText>&gt;<o:p>&nbsp;</o:p></p><p =
class=3DMsoPlainText>&gt;<o:p>&nbsp;</o:p></p><p =
class=3DMsoPlainText>&gt; 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.<o:p></o:p></p><p =
class=3DMsoPlainText>&gt;<o:p>&nbsp;</o:p></p><p =
class=3DMsoPlainText>&gt; The IETF Secretariat<o:p></o:p></p><p =
class=3DMsoPlainText>&gt;<o:p>&nbsp;</o:p></p><p =
class=3DMsoPlainText>&gt;<o:p>&nbsp;</o:p></p><p =
class=3DMsoPlainText>&gt; =
_______________________________________________<o:p></o:p></p><p =
class=3DMsoPlainText>&gt; i2rs mailing list<o:p></o:p></p><p =
class=3DMsoPlainText>&gt; <a href=3D"mailto:i2rs@ietf.org"><span =
style=3D'color:windowtext;text-decoration:none'>i2rs@ietf.org</span></a><=
o:p></o:p></p><p class=3DMsoPlainText>&gt; <a =
href=3D"https://www.ietf.org/mailman/listinfo/i2rs"><span =
style=3D'color:windowtext;text-decoration:none'>https://www.ietf.org/mail=
man/listinfo/i2rs</span></a><o:p></o:p></p><p =
class=3DMsoPlainText>&gt;<o:p>&nbsp;</o:p></p></div></body></html>
------=_NextPart_000_00B6_01D14716.1620B570--


From nobody Tue Jan  5 19:12:19 2016
Return-Path: <strazpdj@gmail.com>
X-Original-To: supa@ietfa.amsl.com
Delivered-To: supa@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C53BC1A8A86; Tue,  5 Jan 2016 19:12:17 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level: 
X-Spam-Status: No, score=-1.999 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, SPF_PASS=-0.001] autolearn=ham
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 TvYFoGccMAVu; Tue,  5 Jan 2016 19:12:14 -0800 (PST)
Received: from mail-lf0-x233.google.com (mail-lf0-x233.google.com [IPv6:2a00:1450:4010:c07::233]) (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 6F0C61A8A6E; Tue,  5 Jan 2016 19:12:13 -0800 (PST)
Received: by mail-lf0-x233.google.com with SMTP id p203so307916843lfa.0; Tue, 05 Jan 2016 19:12:13 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=sqf7qbpyfX8rIBG2j5kAOHtYljnReiD5nC9Biw0mClU=; b=SXvyHMJGtlyo1pHXMTQ4W8fWbU0RCaq6glYgPM2MyjQQ9omKeUVd6rCJSPv1mnYPLT xR2C4+qpUK4PEpL20NuE1KPF97tOMmkJ5URnZeZMow2r1G8+sBm0hnNthccQOuoNmnum L7T8NWFiUDqt2UWSzSbDrqL0HnJJmhWmIUMJONNsQPivq8jP0BytR+5/SCkhFdVQbn+9 n44wWMk6PDxqMfQbzQ9dois3YCnEBeBrIIgDvEeyipD3qiX2zjU3IuPE2Q0auW2RNvKA 1vXARagokqyg3lNCjp98PDyx5JL7MmtiCpF4/Uj5880FjZMVRcYhkZYDo5GNEQGJRS2s SYOg==
MIME-Version: 1.0
X-Received: by 10.25.170.210 with SMTP id t201mr37004359lfe.16.1452049931626;  Tue, 05 Jan 2016 19:12:11 -0800 (PST)
Received: by 10.25.89.12 with HTTP; Tue, 5 Jan 2016 19:12:11 -0800 (PST)
In-Reply-To: <568ADBE7.3030101@joelhalpern.com>
References: <20160104170330.13929.73845.idtracker@ietfa.amsl.com> <006701d14722$616c6950$24453bf0$@ndzh.com> <568ADBE7.3030101@joelhalpern.com>
Date: Tue, 5 Jan 2016 19:12:11 -0800
Message-ID: <CAJwYUrHRKStOaKS9C3==4QsMN9_81pR+Wa_+3KSC5y6eENqTBQ@mail.gmail.com>
From: John Strassner <strazpdj@gmail.com>
To: "Joel M. Halpern" <jmh@joelhalpern.com>
Content-Type: multipart/alternative; boundary=001a114111945ef1370528a1b8f0
Archived-At: <http://mailarchive.ietf.org/arch/msg/supa/EvHRvf65YtVtbbSSXDzEfH3TpG8>
Cc: i2rs@ietf.org, "supa@ietf.org" <supa@ietf.org>, netmod@ietf.org, Susan Hares <shares@ndzh.com>
Subject: Re: [Supa] [i2rs] FW: New Version Notification for draft-hares-i2rs-bnp-eca-data-model-03.txt
X-BeenThere: supa@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "This list is to discuss SUPA \(Simplified Use of Policy Abstractions\) related issues." <supa.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/supa>, <mailto:supa-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/supa/>
List-Post: <mailto:supa@ietf.org>
List-Help: <mailto:supa-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/supa>, <mailto:supa-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Jan 2016 03:12:17 -0000

--001a114111945ef1370528a1b8f0
Content-Type: text/plain; charset=UTF-8

Hi Joe, et al.,

> 1) It is not clear to me why there is any dependence of the fb-rib
> data model on an eca data model.  While supa does allow for
> policy model to be sent directly to the router, it also allows many
> other cases.

Exactly. More particularly, in scanning this draft, I fail to see how
this is an accepted definition of ECA. In particular, there doesn't
seem to be any event in the rule definition.

Hence, I would suggest that you add wording that says that this is
one of many ways to build such a mapping.


> 2) The approach with the supa eca data model is still under
> development.

Absolutely agree. In particular, draft-chen was the first attempt at
trying to conceptualize what such a data model should look like.

>  Having said that, the material in there is intended to be very
> general.

IFF you mean the SUPA info model, then absolutely (otherwise,
it has failed in its primary mission of providing an extensible
framework to define policies).

IFF you mean draft-chen, then I think it agrees with the spirit of
what you said. I think that we need to discuss how to map from
an info model to a data model in more detail before we come to
any conclusions of its efficacy.

>  From what I understand, there should be no difficulty in
> refining the action side of that model to actions which affect
> the fb-rib in ways that are consistent with the fb-dib data model.

+1. In fact, the whole point of SUPA is to provide different ways
of forming an ECA policy rule to meet different demands of the
user. More particularly, at IETF94, you (Sue) assumed that an
ECA policy rule was made up of Event, Condition, and Action
objects. While that is certainly one alternative, there are others
as well. In addition, please note that the presence of these
objects is NOT sufficient to build an ECA policy rule (e.g., the
Event object needs an attribute (or multiple attributes) to be
compared to something in order to determine if the event
CLAUSE evaluates to TRUE or not.


regards,
John

On Mon, Jan 4, 2016 at 12:53 PM, Joel M. Halpern <jmh@joelhalpern.com>
wrote:

> I think there are two issues here.
>
> 1) It is not clear to me why there is any dependence of the fb-rib data
> model on an eca data model.  While supa does allow for policy model to be
> sent directly to the router, it also allows many other cases.
>
> 2) The approach with the supa eca data model is still under development.
> Having said that, the material in there is intended to be very general.
> From what I understand, there should be no difficulty in refining the
> action side of that model to actions which affect the fb-rib in ways that
> are consistent with the fb-dib data model.
>
> Yours,
> Joel
>
> On 1/4/16 2:01 PM, Susan Hares wrote:
>
>> This model provides a Event-Condition-Action (ECA) policy model.
>> The I2RS FB-RIB yang data model utilizes this model, but to my knowledge
>> the
>> Netmod or netconf has not adopted an ECA policy model to
>> parallel the ACL model.
>>
>> Chen and co-authors have created the model:
>>
>> draft-chen-supa-eca-data-model-05.txt
>>
>> But it does not align with this yang model or seem sufficient to
>> support the FB-RIB information model.   At IETF 94,
>> I presented a discussion of the issues I found with the
>> draft-chen-supa-eca-data-model-05.txt, but it has not been updated.
>> We would appreciate feedback on this version of yang model.
>>
>> <i2rs Chair hat on>
>> In my role as I2RS chair,  I2RS needs to make progress soon on the
>> I2RS FB-RIB data model.  We would appreciate your aid.
>> <i2rs chair hat off>
>>
>> Sue
>>
>> -----Original Message-----
>> From: internet-drafts@ietf.org [mailto:internet-drafts@ietf.org]
>> Sent: Monday, January 04, 2016 12:04 PM
>> To: Susan Hares; Qin Wu; Russ White
>> Subject: New Version Notification for
>> draft-hares-i2rs-bnp-eca-data-model-03.txt
>>
>>
>> A new version of I-D, draft-hares-i2rs-bnp-eca-data-model-03.txt
>> has been successfully submitted by Susan Hares and posted to the IETF
>> repository.
>>
>> Name:           draft-hares-i2rs-bnp-eca-data-model
>> Revision:       03
>> Title:          An Information Model for Basic Network Policy and Filter
>> Rules
>> Document date:  2016-01-04
>> Group:          Individual Submission
>> Pages:          30
>> URL:
>> https://www.ietf.org/internet-drafts/draft-hares-i2rs-bnp-eca-data-model-03.txt
>> Status:
>> https://datatracker.ietf.org/doc/draft-hares-i2rs-bnp-eca-data-model/
>> Htmlized:
>> https://tools.ietf.org/html/draft-hares-i2rs-bnp-eca-data-model-03
>> Diff:
>> https://www.ietf.org/rfcdiff?url2=draft-hares-i2rs-bnp-eca-data-model-03
>>
>> Abstract:
>>     This document contains the Basic Network Policy and Filters (BNP IM)
>>     Data Model which provides a policy model that support an ordered list
>>     of match-condition-action (aka event-condition-action (ECA)) for
>>     multiple layers (interface, L1-L4, application) and other factors
>>     (size of packet, time of day).  The actions allow for setting actions
>>     (QOS and other), decapsulation, encapsulation, plus forwarding
>>     actions.  The policy model can be used with the I2RS filter-based
>>     RIB.
>>
>>
>>
>>
>> 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.
>>
>> The IETF Secretariat
>>
>>
>> _______________________________________________
>> i2rs mailing list
>> i2rs@ietf.org
>> https://www.ietf.org/mailman/listinfo/i2rs
>>
>>
> _______________________________________________
> Supa mailing list
> Supa@ietf.org
> https://www.ietf.org/mailman/listinfo/supa
>



-- 
regards,
John

--001a114111945ef1370528a1b8f0
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Hi Joe, et al.,</div><div><br></div><div>&gt; 1) It i=
s not clear to me why there is any dependence of the fb-rib</div><div>&gt;=
=C2=A0data model on an eca data model.=C2=A0 While supa does allow for </di=
v><div>&gt; policy model to be sent directly to the router, it also allows =
many</div><div>&gt;=C2=A0other cases.<br></div><div><br></div><div>Exactly.=
 More particularly, in scanning this draft, I fail to see how</div><div>thi=
s is an accepted definition of ECA. In particular, there doesn&#39;t</div><=
div>seem to be any event in the rule definition.</div><div><br></div><div>H=
ence, I would suggest that you add wording that says that this is</div><div=
>one of many ways to build such a mapping.</div><div><br></div><div><br></d=
iv><div>&gt;=C2=A02) The approach with the supa eca data model is still und=
er</div><div>&gt;=C2=A0development.</div><div><br></div><div>Absolutely agr=
ee. In particular, draft-chen was the first attempt at</div><div>trying to =
conceptualize what such a data model should look like.</div><div><br></div>=
<div>&gt;=C2=A0 Having said that, the material in there is intended to be v=
ery</div><div>&gt;=C2=A0general.</div><div><br></div><div>IFF you mean the =
SUPA info model, then absolutely (otherwise,</div><div>it has failed in its=
 primary mission of providing an extensible</div><div>framework to define p=
olicies).</div><div><br></div><div>IFF you mean draft-chen, then=C2=A0I thi=
nk it=C2=A0agrees with the spirit of</div><div>what you said. I think that =
we need to discuss how to map from</div><div>an info model to a data model=
=C2=A0in more detail before we come to</div><div>any conclusions of its eff=
icacy.</div><div><br></div><div>&gt;=C2=A0 From what I understand, there sh=
ould be no difficulty in</div><div>&gt;=C2=A0refining the action side of th=
at model to actions which affect</div><div>&gt;=C2=A0the fb-rib in ways tha=
t are consistent with the fb-dib data model.</div><div><br></div><div>+1. I=
n fact, the whole point of SUPA is to provide different ways</div><div>of f=
orming an ECA policy rule to meet different demands of the</div><div>user. =
More particularly, at IETF94, you (Sue) assumed that an</div><div>ECA polic=
y rule was made up of Event, Condition, and Action</div><div>objects. While=
 that is certainly one alternative, there are others</div><div>as well. In =
addition, please note that the presence of these</div><div>objects is NOT s=
ufficient to build an ECA policy rule (e.g., the</div><div>Event object nee=
ds an attribute (or multiple attributes) to be </div><div>compared to somet=
hing in order to determine if the event </div><div>CLAUSE evaluates to TRUE=
 or not.</div><div><br></div><div><br></div><div>regards,</div><div>John<br=
></div></div><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On M=
on, Jan 4, 2016 at 12:53 PM, Joel M. Halpern <span dir=3D"ltr">&lt;<a href=
=3D"mailto:jmh@joelhalpern.com" target=3D"_blank">jmh@joelhalpern.com</a>&g=
t;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0=
 .8ex;border-left:1px #ccc solid;padding-left:1ex">I think there are two is=
sues here.<br>
<br>
1) It is not clear to me why there is any dependence of the fb-rib data mod=
el on an eca data model.=C2=A0 While supa does allow for policy model to be=
 sent directly to the router, it also allows many other cases.<br>
<br>
2) The approach with the supa eca data model is still under development.=C2=
=A0 Having said that, the material in there is intended to be very general.=
=C2=A0 From what I understand, there should be no difficulty in refining th=
e action side of that model to actions which affect the fb-rib in ways that=
 are consistent with the fb-dib data model.<br>
<br>
Yours,<br>
Joel<br>
<br>
On 1/4/16 2:01 PM, Susan Hares wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;padding=
-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-l=
eft-style:solid">
This model provides a Event-Condition-Action (ECA) policy model.<br>
The I2RS FB-RIB yang data model utilizes this model, but to my knowledge th=
e<br>
Netmod or netconf has not adopted an ECA policy model to<br>
parallel the ACL model.<br>
<br>
Chen and co-authors have created the model:<br>
<br>
draft-chen-supa-eca-data-model-05.txt<br>
<br>
But it does not align with this yang model or seem sufficient to<br>
support the FB-RIB information model.=C2=A0 =C2=A0At IETF 94,<br>
I presented a discussion of the issues I found with the<br>
draft-chen-supa-eca-data-model-05.txt, but it has not been updated.<br>
We would appreciate feedback on this version of yang model.<br>
<br>
&lt;i2rs Chair hat on&gt;<br>
In my role as I2RS chair,=C2=A0 I2RS needs to make progress soon on the<br>
I2RS FB-RIB data model.=C2=A0 We would appreciate your aid.<br>
&lt;i2rs chair hat off&gt;<br>
<br>
Sue<br>
<br>
-----Original Message-----<br>
From: <a href=3D"mailto:internet-drafts@ietf.org" target=3D"_blank">interne=
t-drafts@ietf.org</a> [mailto:<a href=3D"mailto:internet-drafts@ietf.org" t=
arget=3D"_blank">internet-drafts@ietf.org</a>]<br>
Sent: Monday, January 04, 2016 12:04 PM<br>
To: Susan Hares; Qin Wu; Russ White<br>
Subject: New Version Notification for draft-hares-i2rs-bnp-eca-data-model-0=
3.txt<br>
<br>
<br>
A new version of I-D, draft-hares-i2rs-bnp-eca-data-model-03.txt<br>
has been successfully submitted by Susan Hares and posted to the IETF repos=
itory.<br>
<br>
Name:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0draft-hares-i2rs-bnp-eca-data=
-model<br>
Revision:=C2=A0 =C2=A0 =C2=A0 =C2=A003<br>
Title:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 An Information Model for Basic Net=
work Policy and Filter Rules<br>
Document date:=C2=A0 2016-01-04<br>
Group:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Individual Submission<br>
Pages:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 30<br>
URL:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 <a href=3D"https://www.ietf.o=
rg/internet-drafts/draft-hares-i2rs-bnp-eca-data-model-03.txt" target=3D"_b=
lank" rel=3D"noreferrer">https://www.ietf.org/internet-drafts/draft-hares-i=
2rs-bnp-eca-data-model-03.txt</a><br>
Status:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0<a href=3D"https://datatracker.iet=
f.org/doc/draft-hares-i2rs-bnp-eca-data-model/" target=3D"_blank" rel=3D"no=
referrer">https://datatracker.ietf.org/doc/draft-hares-i2rs-bnp-eca-data-mo=
del/</a><br>
Htmlized:=C2=A0 =C2=A0 =C2=A0 =C2=A0<a href=3D"https://tools.ietf.org/html/=
draft-hares-i2rs-bnp-eca-data-model-03" target=3D"_blank" rel=3D"noreferrer=
">https://tools.ietf.org/html/draft-hares-i2rs-bnp-eca-data-model-03</a><br=
>
Diff:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0<a href=3D"https://www.ietf.o=
rg/rfcdiff?url2=3Ddraft-hares-i2rs-bnp-eca-data-model-03" target=3D"_blank"=
 rel=3D"noreferrer">https://www.ietf.org/rfcdiff?url2=3Ddraft-hares-i2rs-bn=
p-eca-data-model-03</a><br>
<br>
Abstract:<br>
=C2=A0 =C2=A0 This document contains the Basic Network Policy and Filters (=
BNP IM)<br>
=C2=A0 =C2=A0 Data Model which provides a policy model that support an orde=
red list<br>
=C2=A0 =C2=A0 of match-condition-action (aka event-condition-action (ECA)) =
for<br>
=C2=A0 =C2=A0 multiple layers (interface, L1-L4, application) and other fac=
tors<br>
=C2=A0 =C2=A0 (size of packet, time of day).=C2=A0 The actions allow for se=
tting actions<br>
=C2=A0 =C2=A0 (QOS and other), decapsulation, encapsulation, plus forwardin=
g<br>
=C2=A0 =C2=A0 actions.=C2=A0 The policy model can be used with the I2RS fil=
ter-based<br>
=C2=A0 =C2=A0 RIB.<br>
<br>
<br>
<br>
<br>
Please note that it may take a couple of minutes from the time of submissio=
n until the htmlized version and diff are available at <a href=3D"http://to=
ols.ietf.org" target=3D"_blank" rel=3D"noreferrer">tools.ietf.org</a>.<br>
<br>
The IETF Secretariat<br>
<br>
<br>
_______________________________________________<br>
i2rs mailing list<br>
<a href=3D"mailto:i2rs@ietf.org" target=3D"_blank">i2rs@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/i2rs" target=3D"_blank" re=
l=3D"noreferrer">https://www.ietf.org/mailman/listinfo/i2rs</a><br>
<br>
</blockquote>
<br>
_______________________________________________<br>
Supa mailing list<br>
<a href=3D"mailto:Supa@ietf.org" target=3D"_blank">Supa@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/supa" target=3D"_blank" re=
l=3D"noreferrer">https://www.ietf.org/mailman/listinfo/supa</a><br>
</blockquote></div><br><br clear=3D"all"><br>-- <br><div class=3D"gmail_sig=
nature"><div>regards,</div><div>John</div></div>
</div>

--001a114111945ef1370528a1b8f0--


From nobody Tue Jan  5 19:27:54 2016
Return-Path: <strazpdj@gmail.com>
X-Original-To: supa@ietfa.amsl.com
Delivered-To: supa@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 148C91A8AD1; Tue,  5 Jan 2016 19:27:51 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level: 
X-Spam-Status: No, score=-1.999 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, SPF_PASS=-0.001] autolearn=ham
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 FThLQjltJsR1; Tue,  5 Jan 2016 19:27:47 -0800 (PST)
Received: from mail-lf0-x22a.google.com (mail-lf0-x22a.google.com [IPv6:2a00:1450:4010:c07::22a]) (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 0CB221A8AC8; Tue,  5 Jan 2016 19:27:47 -0800 (PST)
Received: by mail-lf0-x22a.google.com with SMTP id c192so129524375lfe.2; Tue, 05 Jan 2016 19:27:46 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=O/hutANSbakogS0d9e3FD1igoweRHjzqM037hqpTKAE=; b=yBoVAPjvvsssgwbC17EAubvGK28yuCRuDKUOFPvWpT42emxXaQLCgmyaXHmSuAJqvl TBBOHA1CkIrEhngcZCWfblFKIdmJpja7Gbe7p7sbjgCsUT5rvRcR+PEd6YRBzDJzlqfb 3BwsyecYY8RHa+hra0TAL7AGJ8eIHzWXRs5LSggULcv14hjk0cTrBJ5FMvE3gZZXL392 mV4/5Y1j9NZlDsADT5s4IRVj5LLSX07ruKzff8Eqmlt/hvtUGOA+6gTYmKpB7JM+Vax0 mNac9AYUcRS42TSiBiD2EFRVd51Mbo7oti9oL0gDbwXdOPutEBSnel6yfxHOkLQzwcis ThDw==
MIME-Version: 1.0
X-Received: by 10.25.145.14 with SMTP id t14mr18797351lfd.100.1452050865264; Tue, 05 Jan 2016 19:27:45 -0800 (PST)
Received: by 10.25.89.12 with HTTP; Tue, 5 Jan 2016 19:27:45 -0800 (PST)
In-Reply-To: <00b501d1473f$fef22990$fcd67cb0$@ndzh.com>
References: <20160104170330.13929.73845.idtracker@ietfa.amsl.com> <006701d14722$616c6950$24453bf0$@ndzh.com> <568ADBE7.3030101@joelhalpern.com> <00b501d1473f$fef22990$fcd67cb0$@ndzh.com>
Date: Tue, 5 Jan 2016 19:27:45 -0800
Message-ID: <CAJwYUrHc=ynpL5-BS=_xMn-4L0B2mEO4RDRPnkyGQp5CEZzgXA@mail.gmail.com>
From: John Strassner <strazpdj@gmail.com>
To: Susan Hares <shares@ndzh.com>
Content-Type: multipart/alternative; boundary=001a11401eb20522780528a1f064
Archived-At: <http://mailarchive.ietf.org/arch/msg/supa/qxvJKg7cT_gZsUGXrtDUjHEZv8c>
Cc: i2rs@ietf.org, "Joel M. Halpern" <jmh@joelhalpern.com>, "supa@ietf.org" <supa@ietf.org>, netmod@ietf.org, John Strassner <strazpdj@gmail.com>
Subject: Re: [Supa] [i2rs] FW: New Version Notification for draft-hares-i2rs-bnp-eca-data-model-03.txt
X-BeenThere: supa@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "This list is to discuss SUPA \(Simplified Use of Policy Abstractions\) related issues." <supa.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/supa>, <mailto:supa-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/supa/>
List-Post: <mailto:supa@ietf.org>
List-Help: <mailto:supa-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/supa>, <mailto:supa-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Jan 2016 03:27:51 -0000

--001a11401eb20522780528a1f064
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Sue,

> On #1) the dependency between I2RS Filter-based RIB (FB-RIB) and
> ECA, please see draft-kini-i2rs-fb-rib-info-model-02.txt. In section 1.1,
> it gives the definition of the FB-RIB.

Sorry, it does NOT do this. To quote from this section:

   A Filter Based RIB uses Event-Condition-Action policy. A Filter-
   based RIB entry specifies matches on fields in a packet (which may
   include layer 2 fields, IP header fields, transport or application
   fields) or size of the packet or interface received on. The matches
   are contained in an ordered list of filters which contain pairs of
   match condition-action (aka event-condition-action).

Please tell me WHERE the event is in the above definition. All I see is
a condition-action rule. (BTW, the analysis of PCIM and PCIMe is also
not quite correct in your draft).

> In section 1.2, it links this to an event-condition-action model.

Sorry, it does NOT do this.

First, this section simply says, and I quote:

   "The filter based-RIB uses event-condition-action policy (ECA) rules."

That is a tautology at best.

Second, in Section 2, under the definition of FB-Route, the draft says:

   "The policy rules in the filter-based RIB are prescriptive of the
     Event-Condition-Action form which is often represented by
        if Condition then action."

Please note that this definition is incorrect, and in conflict with SUPA.
The whole point of an EVENT-condition-action policy rule is to define
a rule of the form:

    IF <event_clause> evaluates to TRUE
        IF <condition_clause evaluates to TRUE
            THEN execute actions in <action_clause>
        ENDIF
    ENDIF

This definition has been established in the industry and academia
for at least 2 decades.

Variations of the above have been defined and published (e.g.,
FOCALE has an alternate set of actions to execute if the condition
clause evaluated to FALSE; this has NOT been proposed for SUPA
at this time). There have also been extensions to handle sets and
groups, as well as specific ordering (DEN-ng, SID, FOCALE).

Therefore, I would suggest that you change your drafts to use a
condition-action policy rule, OR update the drafts (I would be happy
to help) to use a correct definition of an ECA policy rule.

regards,
John


On Mon, Jan 4, 2016 at 2:33 PM, Susan Hares <shares@ndzh.com> wrote:

> Joel:
>
>
>
> On #1) the dependency between I2RS Filter-based RIB (FB-RIB) and ECA,
> please see draft-kini-i2rs-fb-rib-info-model-02.txt. In section 1.1, it
> gives the definition of the FB-RIB.  In section 1.2, it links this to an
> event-condition-action model.  If you disagree with the definition of  I2=
RS
> FB-RIB, then we should probably restrict this conversation to the I2RS ma=
il
> list.  Any feedback on the Info-model or data-model would be helpful.  Th=
e
> authors hoped to go to a WG adoption call at the end of this week.
>
>
>
> One challenge for the ephemeral I2RS FB-RIB, is there is no definition of
> the non-ephemeral FB-RIB.  If you think there should be a non-ephemeral
> FB-RIB =E2=80=93 that discussion may be useful between I2RS, Netmod and S=
UPA.
>
>
>
> On #2) SUPA ECA model, I agree that we should be able to have a common
> draft.  At IETF 94, I raised issues regarding the SUPA versus my ECA
> definition.
>
>
>
> Cheerily,
>
>
>
> Sue
>
>
>
> -----Original Message-----
> From: Joel M. Halpern [mailto:jmh@joelhalpern.com]
> Sent: Monday, January 04, 2016 3:54 PM
> To: Susan Hares; i2rs@ietf.org; netmod@ietf.org; supa@ietf.org
> Subject: Re: [i2rs] FW: New Version Notification for
> draft-hares-i2rs-bnp-eca-data-model-03.txt
>
>
>
> I think there are two issues here.
>
>
>
> 1) It is not clear to me why there is any dependence of the fb-rib data
> model on an eca data model.  While supa does allow for policy model to be
> sent directly to the router, it also allows many other cases.
>
>
>
> 2) The approach with the supa eca data model is still under development.
>
>   Having said that, the material in there is intended to be very general.
> From what I understand, there should be no difficulty in refining the
> action side of that model to actions which affect the fb-rib in ways that
> are consistent with the fb-dib data model.
>
>
>
> Yours,
>
> Joel
>
>
>
> On 1/4/16 2:01 PM, Susan Hares wrote:
>
> > This model provides a Event-Condition-Action (ECA) policy model.
>
> > The I2RS FB-RIB yang data model utilizes this model, but to my
>
> > knowledge the Netmod or netconf has not adopted an ECA policy model to
>
> > parallel the ACL model.
>
> >
>
> > Chen and co-authors have created the model:
>
> >
>
> > draft-chen-supa-eca-data-model-05.txt
>
> >
>
> > But it does not align with this yang model or seem sufficient to
>
> > support the FB-RIB information model.   At IETF 94,
>
> > I presented a discussion of the issues I found with the
>
> > draft-chen-supa-eca-data-model-05.txt, but it has not been updated.
>
> > We would appreciate feedback on this version of yang model.
>
> >
>
> > <i2rs Chair hat on>
>
> > In my role as I2RS chair,  I2RS needs to make progress soon on the
>
> > I2RS FB-RIB data model.  We would appreciate your aid.
>
> > <i2rs chair hat off>
>
> >
>
> > Sue
>
> >
>
> > -----Original Message-----
>
> > From: internet-drafts@ietf.org [mailto:internet-drafts@ietf.org
> <internet-drafts@ietf.org>]
>
> > Sent: Monday, January 04, 2016 12:04 PM
>
> > To: Susan Hares; Qin Wu; Russ White
>
> > Subject: New Version Notification for
>
> > draft-hares-i2rs-bnp-eca-data-model-03.txt
>
> >
>
> >
>
> > A new version of I-D, draft-hares-i2rs-bnp-eca-data-model-03.txt
>
> > has been successfully submitted by Susan Hares and posted to the IETF
> repository.
>
> >
>
> > Name:                               draft-hares-i2rs-bnp-eca-data-model
>
> > Revision:          03
>
> > Title:                  An Information Model for Basic Network Policy
> and Filter Rules
>
> > Document date:           2016-01-04
>
> > Group:                              Individual Submission
>
> > Pages:                               30
>
> > URL:
> https://www.ietf.org/internet-drafts/draft-hares-i2rs-bnp-eca-data-model-=
03.txt
>
> > Status:
> https://datatracker.ietf.org/doc/draft-hares-i2rs-bnp-eca-data-model/
>
> > Htmlized:
> https://tools.ietf.org/html/draft-hares-i2rs-bnp-eca-data-model-03
>
> > Diff:
> https://www.ietf.org/rfcdiff?url2=3Ddraft-hares-i2rs-bnp-eca-data-model-0=
3
>
> >
>
> > Abstract:
>
> >     This document contains the Basic Network Policy and Filters (BNP IM=
)
>
> >     Data Model which provides a policy model that support an ordered li=
st
>
> >     of match-condition-action (aka event-condition-action (ECA)) for
>
> >     multiple layers (interface, L1-L4, application) and other factors
>
> >     (size of packet, time of day).  The actions allow for setting actio=
ns
>
> >     (QOS and other), decapsulation, encapsulation, plus forwarding
>
> >     actions.  The policy model can be used with the I2RS filter-based
>
> >     RIB.
>
> >
>
> >
>
> >
>
> >
>
> > 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.
>
> >
>
> > The IETF Secretariat
>
> >
>
> >
>
> > _______________________________________________
>
> > i2rs mailing list
>
> > i2rs@ietf.org
>
> > https://www.ietf.org/mailman/listinfo/i2rs
>
> >
>
> _______________________________________________
> Supa mailing list
> Supa@ietf.org
> https://www.ietf.org/mailman/listinfo/supa
>
>


--=20
regards,
John

--001a11401eb20522780528a1f064
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Sue,<br></div><div><p>&gt; On #1) the dependency betw=
een I2RS Filter-based RIB (FB-RIB) and<br>&gt;=C2=A0ECA, please see draft-k=
ini-i2rs-fb-rib-info-model-02.txt. In section 1.1,<br>&gt; it gives the def=
inition of the FB-RIB.</p><p>Sorry, it does NOT do this. To quote from this=
 section:</p><span lang=3D"EN"><p>=C2=A0 =C2=A0A Filter Based RIB uses Even=
t-Condition-Action policy.  A Filter-<br>=C2=A0 =C2=A0based RIB entry speci=
fies matches on fields in a packet (which may<br>=C2=A0 =C2=A0include layer=
 2 fields, IP header fields, transport or application<br>=C2=A0 =C2=A0field=
s) or size of the packet or interface received on.  The matches<br>=C2=A0 =
=C2=A0are contained in an ordered list of filters which contain pairs of<br=
>=C2=A0=C2=A0 match condition-action (aka event-condition-action).</p></spa=
n><p>Please tell me WHERE the event is in the above definition. All I see i=
s<br>a condition-action rule. (BTW, the analysis of PCIM and PCIMe is also<=
br>not quite correct in your draft).</p><p>&gt; In section 1.2, it links th=
is to an event-condition-action model.</p><p>Sorry, it does NOT do this.</p=
><p>First, this section simply says, and I quote:</p><span lang=3D"EN"><p>=
=C2=A0=C2=A0 &quot;The filter based-RIB uses event-condition-action policy =
(ECA) rules.&quot;</p><p>That is a tautology at best.</p><p>Second, in Sect=
ion 2, under the definition of FB-Route, the draft says:</p><p>=C2=A0=C2=A0=
 &quot;The policy rules in the filter-based RIB are prescriptive of the<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0Event-Condition-Action form which is often re=
presented by<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if Condition the=
n action.&quot;</p><span lang=3D"EN"><p>Please note that this definition is=
 incorrect, and in conflict with SUPA.<br>The whole point of an EVENT-condi=
tion-action policy rule is to define<br>a rule of the form:</p><p>=C2=A0=C2=
=A0=C2=A0 IF &lt;event_clause&gt; evaluates to TRUE<br>=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 IF &lt;condition_clause evaluates to TRUE<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 THEN execut=
e actions in &lt;action_clause&gt;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 ENDIF<br>=C2=A0=C2=A0=C2=A0 ENDIF</p><p>This definition has been est=
ablished in the industry and academia<br>for at least 2 decades.</p><p>Vari=
ations of the above have been defined and published (e.g.,<br>FOCALE has an=
 alternate set of actions to execute if the condition<br>clause evaluated t=
o FALSE; this has NOT been proposed for SUPA<br>at this time). There have a=
lso been extensions to handle sets and<br>groups, as well as specific order=
ing (DEN-ng, SID, FOCALE).</p><p>Therefore, I would suggest that you change=
 your drafts to use a<br>condition-action policy rule, OR update the drafts=
 (I would be happy<br>to help) to use a correct definition of an ECA policy=
 rule.</p><p>regards,<br>John</p><p></p></span></span></div></div><div clas=
s=3D"gmail_extra"><br><div class=3D"gmail_quote">On Mon, Jan 4, 2016 at 2:3=
3 PM, Susan Hares <span dir=3D"ltr">&lt;<a href=3D"mailto:shares@ndzh.com" =
target=3D"_blank">shares@ndzh.com</a>&gt;</span> wrote:<br><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;pad=
ding-left:1ex"><div lang=3D"EN-US" vlink=3D"purple" link=3D"blue"><div><p>J=
oel: <u></u><u></u></p><p><u></u>=C2=A0<u></u></p><p>On #1) the dependency =
between I2RS Filter-based RIB (FB-RIB) and ECA, please see draft-kini-i2rs-=
fb-rib-info-model-02.txt. In section 1.1, it gives the definition of the FB=
-RIB.=C2=A0 In section 1.2, it links this to an event-condition-action mode=
l.=C2=A0 If you disagree with the definition of =C2=A0I2RS FB-RIB, then we =
should probably restrict this conversation to the I2RS mail list.=C2=A0 Any=
 feedback on the Info-model or data-model would be helpful.=C2=A0 The autho=
rs hoped to go to a WG adoption call at the end of this week. <u></u><u></u=
></p><p><u></u>=C2=A0<u></u></p><p>One challenge for the ephemeral I2RS FB-=
RIB, is there is no definition of the non-ephemeral FB-RIB.=C2=A0 If you th=
ink there should be a non-ephemeral FB-RIB =E2=80=93 that discussion may be=
 useful between I2RS, Netmod and SUPA. <u></u><u></u></p><p><u></u>=C2=A0<u=
></u></p><p>On #2) SUPA ECA model, I agree that we should be able to have a=
 common draft.=C2=A0 At IETF 94, I raised issues regarding the SUPA versus =
my ECA definition.=C2=A0 =C2=A0<u></u><u></u></p><p><u></u>=C2=A0<u></u></p=
><p>Cheerily, <u></u><u></u></p><p><u></u>=C2=A0<u></u></p><p>Sue <u></u><u=
></u></p><p><u></u>=C2=A0<u></u></p><p>-----Original Message-----<br>From: =
Joel M. Halpern [mailto:<a href=3D"mailto:jmh@joelhalpern.com" target=3D"_b=
lank">jmh@joelhalpern.com</a>] <br>Sent: Monday, January 04, 2016 3:54 PM<b=
r>To: Susan Hares; <a href=3D"mailto:i2rs@ietf.org" target=3D"_blank">i2rs@=
ietf.org</a>; <a href=3D"mailto:netmod@ietf.org" target=3D"_blank">netmod@i=
etf.org</a>; <a href=3D"mailto:supa@ietf.org" target=3D"_blank">supa@ietf.o=
rg</a><br>Subject: Re: [i2rs] FW: New Version Notification for draft-hares-=
i2rs-bnp-eca-data-model-03.txt</p><p><u></u>=C2=A0<u></u></p><p>I think the=
re are two issues here.<u></u><u></u></p><p><u></u>=C2=A0<u></u></p><p>1) I=
t is not clear to me why there is any dependence of the fb-rib data model o=
n an eca data model.=C2=A0 While supa does allow for policy model to be sen=
t directly to the router, it also allows many other cases.<u></u><u></u></p=
><p><u></u>=C2=A0<u></u></p><p>2) The approach with the supa eca data model=
 is still under development. <u></u><u></u></p><p>=C2=A0=C2=A0Having said t=
hat, the material in there is intended to be very general.=C2=A0 From what =
I understand, there should be no difficulty in refining the action side of =
that model to actions which affect the fb-rib in ways that are consistent w=
ith the fb-dib data model.<u></u><u></u></p><p><u></u>=C2=A0<u></u></p><p>Y=
ours,<u></u><u></u></p><p>Joel<u></u><u></u></p><p><u></u>=C2=A0<u></u></p>=
<p>On 1/4/16 2:01 PM, Susan Hares wrote:<u></u><u></u></p><p>&gt; This mode=
l provides a Event-Condition-Action (ECA) policy model.<u></u><u></u></p><p=
>&gt; The I2RS FB-RIB yang data model utilizes this model, but to my <u></u=
><u></u></p><p>&gt; knowledge the Netmod or netconf has not adopted an ECA =
policy model to <u></u><u></u></p><p>&gt; parallel the ACL model.<u></u><u>=
</u></p><p>&gt;<u></u>=C2=A0<u></u></p><p>&gt; Chen and co-authors have cre=
ated the model:<u></u><u></u></p><p>&gt;<u></u>=C2=A0<u></u></p><p>&gt; dra=
ft-chen-supa-eca-data-model-05.txt<u></u><u></u></p><p>&gt;<u></u>=C2=A0<u>=
</u></p><p>&gt; But it does not align with this yang model or seem sufficie=
nt to<u></u><u></u></p><p>&gt; support the FB-RIB information model.=C2=A0=
=C2=A0 At IETF 94,<u></u><u></u></p><p>&gt; I presented a discussion of the=
 issues I found with the <u></u><u></u></p><p>&gt; draft-chen-supa-eca-data=
-model-05.txt, but it has not been updated.<u></u><u></u></p><p>&gt; We wou=
ld appreciate feedback on this version of yang model.<u></u><u></u></p><p>&=
gt;<u></u>=C2=A0<u></u></p><p>&gt; &lt;i2rs Chair hat on&gt;<u></u><u></u><=
/p><p>&gt; In my role as I2RS chair,=C2=A0 I2RS needs to make progress soon=
 on the <u></u><u></u></p><p>&gt; I2RS FB-RIB data model.=C2=A0 We would ap=
preciate your aid.<u></u><u></u></p><p>&gt; &lt;i2rs chair hat off&gt;<u></=
u><u></u></p><p>&gt;<u></u>=C2=A0<u></u></p><p>&gt; Sue<u></u><u></u></p><p=
>&gt;<u></u>=C2=A0<u></u></p><p>&gt; -----Original Message-----<u></u><u></=
u></p><p>&gt; From: <a href=3D"mailto:internet-drafts@ietf.org" target=3D"_=
blank"><span style=3D"color:windowtext;text-decoration:none">internet-draft=
s@ietf.org</span></a> [<a href=3D"mailto:internet-drafts@ietf.org" target=
=3D"_blank"><span style=3D"color:windowtext;text-decoration:none">mailto:in=
ternet-drafts@ietf.org</span></a>]<u></u><u></u></p><p>&gt; Sent: Monday, J=
anuary 04, 2016 12:04 PM<u></u><u></u></p><p>&gt; To: Susan Hares; Qin Wu; =
Russ White<u></u><u></u></p><p>&gt; Subject: New Version Notification for <=
u></u><u></u></p><p>&gt; draft-hares-i2rs-bnp-eca-data-model-03.txt<u></u><=
u></u></p><p>&gt;<u></u>=C2=A0<u></u></p><p>&gt;<u></u>=C2=A0<u></u></p><p>=
&gt; A new version of I-D, draft-hares-i2rs-bnp-eca-data-model-03.txt<u></u=
><u></u></p><p>&gt; has been successfully submitted by Susan Hares and post=
ed to the IETF repository.<u></u><u></u></p><p>&gt;<u></u>=C2=A0<u></u></p>=
<p>&gt; Name:=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=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=C2=A0=C2=A0=C2=A0=C2=A0 draft-hares-i2rs-bnp-eca-data=
-model<u></u><u></u></p><p>&gt; Revision:=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 03<u></u><u></u></p><p>&gt; Title:=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=C2=A0=C2=A0=C2=
=A0=C2=A0 An Information Model for Basic Network Policy and Filter Rules<u>=
</u><u></u></p><p>&gt; Document date:=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 2016-01-04<u></u><u></u></p><p>&gt; Group:=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=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=
=C2=A0=C2=A0=C2=A0 Individual Submission<u></u><u></u></p><p>&gt; Pages:=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=
=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=C2=A0=C2=A0=C2=A0=C2=A0 30<u></u><u></u></p><p>&gt; URL:=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 <a href=3D"https://www.=
ietf.org/internet-drafts/draft-hares-i2rs-bnp-eca-data-model-03.txt" target=
=3D"_blank"><span style=3D"color:windowtext;text-decoration:none">https://w=
ww.ietf.org/internet-drafts/draft-hares-i2rs-bnp-eca-data-model-03.txt</spa=
n></a><u></u><u></u></p><p>&gt; Status:=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 <a href=3D"https://datatracker.ietf.org/doc/draft-hares-i2rs-b=
np-eca-data-model/" target=3D"_blank"><span style=3D"color:windowtext;text-=
decoration:none">https://datatracker.ietf.org/doc/draft-hares-i2rs-bnp-eca-=
data-model/</span></a><u></u><u></u></p><p>&gt; Htmlized:=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 <a href=3D"https://tools.ietf.org/html/draft-hares-i2rs-=
bnp-eca-data-model-03" target=3D"_blank"><span style=3D"color:windowtext;te=
xt-decoration:none">https://tools.ietf.org/html/draft-hares-i2rs-bnp-eca-da=
ta-model-03</span></a><u></u><u></u></p><p>&gt; Diff:=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 <a href=3D"https://www.ietf.org/rfc=
diff?url2=3Ddraft-hares-i2rs-bnp-eca-data-model-03" target=3D"_blank"><span=
 style=3D"color:windowtext;text-decoration:none">https://www.ietf.org/rfcdi=
ff?url2=3Ddraft-hares-i2rs-bnp-eca-data-model-03</span></a><u></u><u></u></=
p><p>&gt;<u></u>=C2=A0<u></u></p><p>&gt; Abstract:<u></u><u></u></p><p>&gt;=
=C2=A0=C2=A0=C2=A0=C2=A0 This document contains the Basic Network Policy an=
d Filters (BNP IM)<u></u><u></u></p><p>&gt;=C2=A0=C2=A0=C2=A0=C2=A0 Data Mo=
del which provides a policy model that support an ordered list<u></u><u></u=
></p><p>&gt;=C2=A0=C2=A0=C2=A0=C2=A0 of match-condition-action (aka event-c=
ondition-action (ECA)) for<u></u><u></u></p><p>&gt;=C2=A0=C2=A0=C2=A0=C2=A0=
 multiple layers (interface, L1-L4, application) and other factors<u></u><u=
></u></p><p>&gt;=C2=A0=C2=A0=C2=A0=C2=A0 (size of packet, time of day).=C2=
=A0 The actions allow for setting actions<u></u><u></u></p><p>&gt;=C2=A0=C2=
=A0=C2=A0=C2=A0 (QOS and other), decapsulation, encapsulation, plus forward=
ing<u></u><u></u></p><p>&gt;=C2=A0=C2=A0=C2=A0=C2=A0 actions.=C2=A0 The pol=
icy model can be used with the I2RS filter-based<u></u><u></u></p><p>&gt;=
=C2=A0=C2=A0=C2=A0=C2=A0 RIB.<u></u><u></u></p><p>&gt;<u></u>=C2=A0<u></u><=
/p><p>&gt;<u></u>=C2=A0<u></u></p><p>&gt;<u></u>=C2=A0<u></u></p><p>&gt;<u>=
</u>=C2=A0<u></u></p><p>&gt; Please note that it may take a couple of minut=
es from the time of submission until the htmlized version and diff are avai=
lable at <a href=3D"http://tools.ietf.org" target=3D"_blank">tools.ietf.org=
</a>.<u></u><u></u></p><p>&gt;<u></u>=C2=A0<u></u></p><p>&gt; The IETF Secr=
etariat<u></u><u></u></p><p>&gt;<u></u>=C2=A0<u></u></p><p>&gt;<u></u>=C2=
=A0<u></u></p><p>&gt; _______________________________________________<u></u=
><u></u></p><p>&gt; i2rs mailing list<u></u><u></u></p><p>&gt; <a href=3D"m=
ailto:i2rs@ietf.org" target=3D"_blank"><span style=3D"color:windowtext;text=
-decoration:none">i2rs@ietf.org</span></a><u></u><u></u></p><p>&gt; <a href=
=3D"https://www.ietf.org/mailman/listinfo/i2rs" target=3D"_blank"><span sty=
le=3D"color:windowtext;text-decoration:none">https://www.ietf.org/mailman/l=
istinfo/i2rs</span></a><u></u><u></u></p><p>&gt;<u></u>=C2=A0<u></u></p></d=
iv></div><br>_______________________________________________<br>
Supa mailing list<br>
<a href=3D"mailto:Supa@ietf.org">Supa@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/supa" target=3D"_blank" re=
l=3D"noreferrer">https://www.ietf.org/mailman/listinfo/supa</a><br>
<br></blockquote></div><br><br clear=3D"all"><br>-- <br><div class=3D"gmail=
_signature"><div>regards,</div><div>John</div></div>
</div>

--001a11401eb20522780528a1f064--


From nobody Wed Jan  6 06:12:50 2016
Return-Path: <shares@ndzh.com>
X-Original-To: supa@ietfa.amsl.com
Delivered-To: supa@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EB12F1B2BE6; Wed,  6 Jan 2016 06:12:47 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -96.257
X-Spam-Level: 
X-Spam-Status: No, score=-96.257 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DOS_OUTLOOK_TO_MX=2.845, FH_RELAY_NODNS=1.451, HELO_MISMATCH_COM=0.553, HTML_MESSAGE=0.001, RDNS_NONE=0.793, USER_IN_WHITELIST=-100] autolearn=no
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 e5VieYiYdxSM; Wed,  6 Jan 2016 06:12:45 -0800 (PST)
Received: from hickoryhill-consulting.com (unknown [50.245.122.97]) (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 7AC511ACE6B; Wed,  6 Jan 2016 06:12:44 -0800 (PST)
X-Default-Received-SPF: pass (skip=loggedin (res=PASS)) x-ip-name=74.43.47.177; 
From: "Susan Hares" <shares@ndzh.com>
To: "'John Strassner'" <strazpdj@gmail.com>, "'Joel M. Halpern'" <jmh@joelhalpern.com>
References: <20160104170330.13929.73845.idtracker@ietfa.amsl.com> <006701d14722$616c6950$24453bf0$@ndzh.com> <568ADBE7.3030101@joelhalpern.com> <CAJwYUrHRKStOaKS9C3==4QsMN9_81pR+Wa_+3KSC5y6eENqTBQ@mail.gmail.com>
In-Reply-To: <CAJwYUrHRKStOaKS9C3==4QsMN9_81pR+Wa_+3KSC5y6eENqTBQ@mail.gmail.com>
Date: Wed, 6 Jan 2016 09:12:57 -0500
Message-ID: <03c101d1488c$587503a0$095f0ae0$@ndzh.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_03C2_01D14862.6FA51620"
X-Mailer: Microsoft Outlook 14.0
Thread-Index: AQHC7aVhYcGa1ChTuo//84M/O+4YZwFG1DOWAZ3SDjgCrQyIcJ7eqKQQ
Content-Language: en-us
X-Authenticated-User: skh@ndzh.com 
Archived-At: <http://mailarchive.ietf.org/arch/msg/supa/JIEt3wLewG_jHnaXJCtgcmk67zs>
Cc: i2rs@ietf.org, netmod@ietf.org, supa@ietf.org
Subject: Re: [Supa] [i2rs] FW: New Version Notification for draft-hares-i2rs-bnp-eca-data-model-03.txt
X-BeenThere: supa@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "This list is to discuss SUPA \(Simplified Use of Policy Abstractions\) related issues." <supa.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/supa>, <mailto:supa-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/supa/>
List-Post: <mailto:supa@ietf.org>
List-Help: <mailto:supa-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/supa>, <mailto:supa-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Jan 2016 14:12:48 -0000

This is a multipart message in MIME format.

------=_NextPart_000_03C2_01D14862.6FA51620
Content-Type: text/plain;
	charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

John:=20

=20

Thank you for your response.   For filter-based FIB,=20

=20

Event =3D receiving packet information on the interface=20

Condition =3D match on a variety of conditions (see the draft)=20

Action =3D a choice of actions modify packet, forward/drop packet, and =
count packet.

=20

You are correct, it is a very simple case, with one type of event.   =
Joel indicated flaws in the document that it did not indicate the event =
was a =E2=80=9Cpacket reception=E2=80=9D.  At this point, it sounds like =
you and Joel are suggesting that this particular simplistic case of =
Event-Condition-Action is OK to go forward with in the I2RS (for =
ephemeral state), and in appropriate WG for the non-ephemeral case.  Is =
this correct?=20

=20

At IETF 94, I was simply comparing Chen=E2=80=99s document versus this =
very simple case of an ECA.  I did not mean to imply it was the only =
possible ECA case.   I look forward to hearing from the SUPA list =
regarding the generic ECA information model and the different types of =
ECA. =20

=20

Sue=20

=20

From: Supa [mailto:supa-bounces@ietf.org] On Behalf Of John Strassner
Sent: Tuesday, January 05, 2016 10:12 PM
To: Joel M. Halpern
Cc: i2rs@ietf.org; supa@ietf.org; netmod@ietf.org; Susan Hares
Subject: Re: [Supa] [i2rs] FW: New Version Notification for =
draft-hares-i2rs-bnp-eca-data-model-03.txt

=20

Hi Joe, et al.,

=20

> 1) It is not clear to me why there is any dependence of the fb-rib

> data model on an eca data model.  While supa does allow for=20

> policy model to be sent directly to the router, it also allows many

> other cases.

=20

Exactly. More particularly, in scanning this draft, I fail to see how

this is an accepted definition of ECA. In particular, there doesn't

seem to be any event in the rule definition.

=20

Hence, I would suggest that you add wording that says that this is

one of many ways to build such a mapping.

=20

=20

> 2) The approach with the supa eca data model is still under

> development.

=20

Absolutely agree. In particular, draft-chen was the first attempt at

trying to conceptualize what such a data model should look like.

=20

>  Having said that, the material in there is intended to be very

> general.

=20

IFF you mean the SUPA info model, then absolutely (otherwise,

it has failed in its primary mission of providing an extensible

framework to define policies).

=20

IFF you mean draft-chen, then I think it agrees with the spirit of

what you said. I think that we need to discuss how to map from

an info model to a data model in more detail before we come to

any conclusions of its efficacy.

=20

>  From what I understand, there should be no difficulty in

> refining the action side of that model to actions which affect

> the fb-rib in ways that are consistent with the fb-dib data model.

=20

+1. In fact, the whole point of SUPA is to provide different ways

of forming an ECA policy rule to meet different demands of the

user. More particularly, at IETF94, you (Sue) assumed that an

ECA policy rule was made up of Event, Condition, and Action

objects. While that is certainly one alternative, there are others

as well. In addition, please note that the presence of these

objects is NOT sufficient to build an ECA policy rule (e.g., the

Event object needs an attribute (or multiple attributes) to be=20

compared to something in order to determine if the event=20

CLAUSE evaluates to TRUE or not.

=20

=20

regards,

John

=20

On Mon, Jan 4, 2016 at 12:53 PM, Joel M. Halpern <jmh@joelhalpern.com> =
wrote:

I think there are two issues here.

1) It is not clear to me why there is any dependence of the fb-rib data =
model on an eca data model.  While supa does allow for policy model to =
be sent directly to the router, it also allows many other cases.

2) The approach with the supa eca data model is still under development. =
 Having said that, the material in there is intended to be very general. =
 From what I understand, there should be no difficulty in refining the =
action side of that model to actions which affect the fb-rib in ways =
that are consistent with the fb-dib data model.

Yours,
Joel

On 1/4/16 2:01 PM, Susan Hares wrote:

This model provides a Event-Condition-Action (ECA) policy model.
The I2RS FB-RIB yang data model utilizes this model, but to my knowledge =
the
Netmod or netconf has not adopted an ECA policy model to
parallel the ACL model.

Chen and co-authors have created the model:

draft-chen-supa-eca-data-model-05.txt

But it does not align with this yang model or seem sufficient to
support the FB-RIB information model.   At IETF 94,
I presented a discussion of the issues I found with the
draft-chen-supa-eca-data-model-05.txt, but it has not been updated.
We would appreciate feedback on this version of yang model.

<i2rs Chair hat on>
In my role as I2RS chair,  I2RS needs to make progress soon on the
I2RS FB-RIB data model.  We would appreciate your aid.
<i2rs chair hat off>

Sue

-----Original Message-----
From: internet-drafts@ietf.org [mailto:internet-drafts@ietf.org]
Sent: Monday, January 04, 2016 12:04 PM
To: Susan Hares; Qin Wu; Russ White
Subject: New Version Notification for =
draft-hares-i2rs-bnp-eca-data-model-03.txt


A new version of I-D, draft-hares-i2rs-bnp-eca-data-model-03.txt
has been successfully submitted by Susan Hares and posted to the IETF =
repository.

Name:           draft-hares-i2rs-bnp-eca-data-model
Revision:       03
Title:          An Information Model for Basic Network Policy and Filter =
Rules
Document date:  2016-01-04
Group:          Individual Submission
Pages:          30
URL:            =
https://www.ietf.org/internet-drafts/draft-hares-i2rs-bnp-eca-data-model-=
03.txt
Status:         =
https://datatracker.ietf.org/doc/draft-hares-i2rs-bnp-eca-data-model/
Htmlized:       =
https://tools.ietf.org/html/draft-hares-i2rs-bnp-eca-data-model-03
Diff:           =
https://www.ietf.org/rfcdiff?url2=3Ddraft-hares-i2rs-bnp-eca-data-model-0=
3

Abstract:
    This document contains the Basic Network Policy and Filters (BNP IM)
    Data Model which provides a policy model that support an ordered =
list
    of match-condition-action (aka event-condition-action (ECA)) for
    multiple layers (interface, L1-L4, application) and other factors
    (size of packet, time of day).  The actions allow for setting =
actions
    (QOS and other), decapsulation, encapsulation, plus forwarding
    actions.  The policy model can be used with the I2RS filter-based
    RIB.




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.

The IETF Secretariat


_______________________________________________
i2rs mailing list
i2rs@ietf.org
https://www.ietf.org/mailman/listinfo/i2rs


_______________________________________________
Supa mailing list
Supa@ietf.org
https://www.ietf.org/mailman/listinfo/supa




--=20

regards,

John


------=_NextPart_000_03C2_01D14862.6FA51620
Content-Type: text/html;
	charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns=3D"http://www.w3.org/TR/REC-html40"><head><meta =
http-equiv=3DContent-Type content=3D"text/html; charset=3Dutf-8"><meta =
name=3DGenerator content=3D"Microsoft Word 14 (filtered =
medium)"><style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:8.0pt;
	font-family:"Tahoma","sans-serif";}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-priority:99;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma","sans-serif";}
span.EmailStyle19
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri","sans-serif";}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DEN-US link=3Dblue =
vlink=3Dpurple><div class=3DWordSection1><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>John: <o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>Thank you for your response. =C2=A0=C2=A0For filter-based FIB, =
<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>Event =3D receiving packet information on the interface =
<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>Condition =3D match on a variety of conditions (see the draft) =
<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>Action =3D a choice of actions modify packet, forward/drop packet, =
and count packet.<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>You are correct, it is a very simple case, with one type of event. =
=C2=A0=C2=A0Joel indicated flaws in the document that it did not =
indicate the event was a =E2=80=9Cpacket reception=E2=80=9D.=C2=A0 At =
this point, it sounds like you and Joel are suggesting that this =
particular simplistic case of Event-Condition-Action is OK to go forward =
with in the I2RS (for ephemeral state), and in appropriate WG for the =
non-ephemeral case.=C2=A0 Is this correct? <o:p></o:p></span></p><p =
class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>At IETF 94, I was simply comparing Chen=E2=80=99s document versus =
this very simple case of an ECA. =C2=A0I did not mean to imply it was =
the only possible ECA case.=C2=A0 =C2=A0I look forward to hearing from =
the SUPA list regarding the generic ECA information model and the =
different types of ECA. =C2=A0<o:p></o:p></span></p><p =
class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>Sue <o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><b><span =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span>=
</b><span style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif"'> =
Supa [mailto:supa-bounces@ietf.org] <b>On Behalf Of </b>John =
Strassner<br><b>Sent:</b> Tuesday, January 05, 2016 10:12 =
PM<br><b>To:</b> Joel M. Halpern<br><b>Cc:</b> i2rs@ietf.org; =
supa@ietf.org; netmod@ietf.org; Susan Hares<br><b>Subject:</b> Re: =
[Supa] [i2rs] FW: New Version Notification for =
draft-hares-i2rs-bnp-eca-data-model-03.txt<o:p></o:p></span></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><div><div><p class=3DMsoNormal>Hi =
Joe, et al.,<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>&gt; 1) It is not clear to me why there is any =
dependence of the fb-rib<o:p></o:p></p></div><div><p =
class=3DMsoNormal>&gt;&nbsp;data model on an eca data model.&nbsp; While =
supa does allow for <o:p></o:p></p></div><div><p class=3DMsoNormal>&gt; =
policy model to be sent directly to the router, it also allows =
many<o:p></o:p></p></div><div><p class=3DMsoNormal>&gt;&nbsp;other =
cases.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>Exactly. More particularly, in scanning this draft, I =
fail to see how<o:p></o:p></p></div><div><p class=3DMsoNormal>this is an =
accepted definition of ECA. In particular, there =
doesn't<o:p></o:p></p></div><div><p class=3DMsoNormal>seem to be any =
event in the rule definition.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>Hence, I would suggest that you add wording that says =
that this is<o:p></o:p></p></div><div><p class=3DMsoNormal>one of many =
ways to build such a mapping.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>&gt;&nbsp;2) The approach with the supa eca data model =
is still under<o:p></o:p></p></div><div><p =
class=3DMsoNormal>&gt;&nbsp;development.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>Absolutely agree. In particular, draft-chen was the =
first attempt at<o:p></o:p></p></div><div><p class=3DMsoNormal>trying to =
conceptualize what such a data model should look =
like.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>&gt;&nbsp; Having said that, the material in there is =
intended to be very<o:p></o:p></p></div><div><p =
class=3DMsoNormal>&gt;&nbsp;general.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>IFF you mean the SUPA info model, then absolutely =
(otherwise,<o:p></o:p></p></div><div><p class=3DMsoNormal>it has failed =
in its primary mission of providing an =
extensible<o:p></o:p></p></div><div><p class=3DMsoNormal>framework to =
define policies).<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>IFF you mean draft-chen, then&nbsp;I think =
it&nbsp;agrees with the spirit of<o:p></o:p></p></div><div><p =
class=3DMsoNormal>what you said. I think that we need to discuss how to =
map from<o:p></o:p></p></div><div><p class=3DMsoNormal>an info model to =
a data model&nbsp;in more detail before we come =
to<o:p></o:p></p></div><div><p class=3DMsoNormal>any conclusions of its =
efficacy.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>&gt;&nbsp; From what I understand, there should be no =
difficulty in<o:p></o:p></p></div><div><p =
class=3DMsoNormal>&gt;&nbsp;refining the action side of that model to =
actions which affect<o:p></o:p></p></div><div><p =
class=3DMsoNormal>&gt;&nbsp;the fb-rib in ways that are consistent with =
the fb-dib data model.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>+1. In fact, the whole point of SUPA is to provide =
different ways<o:p></o:p></p></div><div><p class=3DMsoNormal>of forming =
an ECA policy rule to meet different demands of =
the<o:p></o:p></p></div><div><p class=3DMsoNormal>user. More =
particularly, at IETF94, you (Sue) assumed that =
an<o:p></o:p></p></div><div><p class=3DMsoNormal>ECA policy rule was =
made up of Event, Condition, and Action<o:p></o:p></p></div><div><p =
class=3DMsoNormal>objects. While that is certainly one alternative, =
there are others<o:p></o:p></p></div><div><p class=3DMsoNormal>as well. =
In addition, please note that the presence of =
these<o:p></o:p></p></div><div><p class=3DMsoNormal>objects is NOT =
sufficient to build an ECA policy rule (e.g., =
the<o:p></o:p></p></div><div><p class=3DMsoNormal>Event object needs an =
attribute (or multiple attributes) to be <o:p></o:p></p></div><div><p =
class=3DMsoNormal>compared to something in order to determine if the =
event <o:p></o:p></p></div><div><p class=3DMsoNormal>CLAUSE evaluates to =
TRUE or not.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>regards,<o:p></o:p></p></div><div><p =
class=3DMsoNormal>John<o:p></o:p></p></div></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><div><p class=3DMsoNormal>On Mon, =
Jan 4, 2016 at 12:53 PM, Joel M. Halpern &lt;<a =
href=3D"mailto:jmh@joelhalpern.com" =
target=3D"_blank">jmh@joelhalpern.com</a>&gt; wrote:<o:p></o:p></p><p =
class=3DMsoNormal>I think there are two issues here.<br><br>1) It is not =
clear to me why there is any dependence of the fb-rib data model on an =
eca data model.&nbsp; While supa does allow for policy model to be sent =
directly to the router, it also allows many other cases.<br><br>2) The =
approach with the supa eca data model is still under development.&nbsp; =
Having said that, the material in there is intended to be very =
general.&nbsp; From what I understand, there should be no difficulty in =
refining the action side of that model to actions which affect the =
fb-rib in ways that are consistent with the fb-dib data =
model.<br><br>Yours,<br>Joel<br><br>On 1/4/16 2:01 PM, Susan Hares =
wrote:<o:p></o:p></p><p class=3DMsoNormal =
style=3D'margin-bottom:12.0pt'>This model provides a =
Event-Condition-Action (ECA) policy model.<br>The I2RS FB-RIB yang data =
model utilizes this model, but to my knowledge the<br>Netmod or netconf =
has not adopted an ECA policy model to<br>parallel the ACL =
model.<br><br>Chen and co-authors have created the =
model:<br><br>draft-chen-supa-eca-data-model-05.txt<br><br>But it does =
not align with this yang model or seem sufficient to<br>support the =
FB-RIB information model.&nbsp; &nbsp;At IETF 94,<br>I presented a =
discussion of the issues I found with =
the<br>draft-chen-supa-eca-data-model-05.txt, but it has not been =
updated.<br>We would appreciate feedback on this version of yang =
model.<br><br>&lt;i2rs Chair hat on&gt;<br>In my role as I2RS =
chair,&nbsp; I2RS needs to make progress soon on the<br>I2RS FB-RIB data =
model.&nbsp; We would appreciate your aid.<br>&lt;i2rs chair hat =
off&gt;<br><br>Sue<br><br>-----Original Message-----<br>From: <a =
href=3D"mailto:internet-drafts@ietf.org" =
target=3D"_blank">internet-drafts@ietf.org</a> [mailto:<a =
href=3D"mailto:internet-drafts@ietf.org" =
target=3D"_blank">internet-drafts@ietf.org</a>]<br>Sent: Monday, January =
04, 2016 12:04 PM<br>To: Susan Hares; Qin Wu; Russ White<br>Subject: New =
Version Notification for =
draft-hares-i2rs-bnp-eca-data-model-03.txt<br><br><br>A new version of =
I-D, draft-hares-i2rs-bnp-eca-data-model-03.txt<br>has been successfully =
submitted by Susan Hares and posted to the IETF =
repository.<br><br>Name:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;draft-hares-i2rs-bnp-eca-data-model<br>Revision:&nbsp; &nbsp; =
&nbsp; &nbsp;03<br>Title:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; An =
Information Model for Basic Network Policy and Filter Rules<br>Document =
date:&nbsp; 2016-01-04<br>Group:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
Individual Submission<br>Pages:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
30<br>URL:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a =
href=3D"https://www.ietf.org/internet-drafts/draft-hares-i2rs-bnp-eca-dat=
a-model-03.txt" =
target=3D"_blank">https://www.ietf.org/internet-drafts/draft-hares-i2rs-b=
np-eca-data-model-03.txt</a><br>Status:&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;<a =
href=3D"https://datatracker.ietf.org/doc/draft-hares-i2rs-bnp-eca-data-mo=
del/" =
target=3D"_blank">https://datatracker.ietf.org/doc/draft-hares-i2rs-bnp-e=
ca-data-model/</a><br>Htmlized:&nbsp; &nbsp; &nbsp; &nbsp;<a =
href=3D"https://tools.ietf.org/html/draft-hares-i2rs-bnp-eca-data-model-0=
3" =
target=3D"_blank">https://tools.ietf.org/html/draft-hares-i2rs-bnp-eca-da=
ta-model-03</a><br>Diff:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a =
href=3D"https://www.ietf.org/rfcdiff?url2=3Ddraft-hares-i2rs-bnp-eca-data=
-model-03" =
target=3D"_blank">https://www.ietf.org/rfcdiff?url2=3Ddraft-hares-i2rs-bn=
p-eca-data-model-03</a><br><br>Abstract:<br>&nbsp; &nbsp; This document =
contains the Basic Network Policy and Filters (BNP IM)<br>&nbsp; &nbsp; =
Data Model which provides a policy model that support an ordered =
list<br>&nbsp; &nbsp; of match-condition-action (aka =
event-condition-action (ECA)) for<br>&nbsp; &nbsp; multiple layers =
(interface, L1-L4, application) and other factors<br>&nbsp; &nbsp; (size =
of packet, time of day).&nbsp; The actions allow for setting =
actions<br>&nbsp; &nbsp; (QOS and other), decapsulation, encapsulation, =
plus forwarding<br>&nbsp; &nbsp; actions.&nbsp; The policy model can be =
used with the I2RS filter-based<br>&nbsp; &nbsp; =
RIB.<br><br><br><br><br>Please note that it may take a couple of minutes =
from the time of submission until the htmlized version and diff are =
available at <a href=3D"http://tools.ietf.org" =
target=3D"_blank">tools.ietf.org</a>.<br><br>The IETF =
Secretariat<br><br><br>_______________________________________________<br=
>i2rs mailing list<br><a href=3D"mailto:i2rs@ietf.org" =
target=3D"_blank">i2rs@ietf.org</a><br><a =
href=3D"https://www.ietf.org/mailman/listinfo/i2rs" =
target=3D"_blank">https://www.ietf.org/mailman/listinfo/i2rs</a><o:p></o:=
p></p><p =
class=3DMsoNormal><br>_______________________________________________<br>=
Supa mailing list<br><a href=3D"mailto:Supa@ietf.org" =
target=3D"_blank">Supa@ietf.org</a><br><a =
href=3D"https://www.ietf.org/mailman/listinfo/supa" =
target=3D"_blank">https://www.ietf.org/mailman/listinfo/supa</a><o:p></o:=
p></p></div><p class=3DMsoNormal><br><br clear=3Dall><br>-- =
<o:p></o:p></p><div><div><p =
class=3DMsoNormal>regards,<o:p></o:p></p></div><div><p =
class=3DMsoNormal>John<o:p></o:p></p></div></div></div></div></body></htm=
l>
------=_NextPart_000_03C2_01D14862.6FA51620--


From nobody Wed Jan  6 15:24:54 2016
Return-Path: <shares@ndzh.com>
X-Original-To: supa@ietfa.amsl.com
Delivered-To: supa@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BB0E91A1BCB; Wed,  6 Jan 2016 15:24:49 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -96.257
X-Spam-Level: 
X-Spam-Status: No, score=-96.257 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DOS_OUTLOOK_TO_MX=2.845, FH_RELAY_NODNS=1.451, HELO_MISMATCH_COM=0.553, HTML_MESSAGE=0.001, RDNS_NONE=0.793, USER_IN_WHITELIST=-100] autolearn=no
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 Raf8XrOck1Nr; Wed,  6 Jan 2016 15:24:46 -0800 (PST)
Received: from hickoryhill-consulting.com (unknown [50.245.122.97]) (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 D89DA1A1BCA; Wed,  6 Jan 2016 15:24:45 -0800 (PST)
X-Default-Received-SPF: pass (skip=loggedin (res=PASS)) x-ip-name=74.43.47.177; 
From: "Susan Hares" <shares@ndzh.com>
To: "'John Strassner'" <strazpdj@gmail.com>
References: <20160104170330.13929.73845.idtracker@ietfa.amsl.com>	<006701d14722$616c6950$24453bf0$@ndzh.com>	<568ADBE7.3030101@joelhalpern.com>	<00b501d1473f$fef22990$fcd67cb0$@ndzh.com> <CAJwYUrHc=ynpL5-BS=_xMn-4L0B2mEO4RDRPnkyGQp5CEZzgXA@mail.gmail.com>
In-Reply-To: <CAJwYUrHc=ynpL5-BS=_xMn-4L0B2mEO4RDRPnkyGQp5CEZzgXA@mail.gmail.com>
Date: Wed, 6 Jan 2016 18:25:00 -0500
Message-ID: <013001d148d9$770626d0$65127470$@ndzh.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_0131_01D148AF.8E363950"
X-Mailer: Microsoft Outlook 14.0
Thread-Index: AQHC7aVhYcGa1ChTuo//84M/O+4YZwFG1DOWAZ3SDjgCb9eFfwLXL+Oqnsp5rGA=
Content-Language: en-us
X-Authenticated-User: skh@ndzh.com 
Archived-At: <http://mailarchive.ietf.org/arch/msg/supa/555ByWIEUQfUy5ND79XGJDTLkUQ>
Cc: i2rs@ietf.org, "'Joel M. Halpern'" <jmh@joelhalpern.com>, supa@ietf.org, netmod@ietf.org
Subject: Re: [Supa] [i2rs] FW: New Version Notification for draft-hares-i2rs-bnp-eca-data-model-03.txt
X-BeenThere: supa@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "This list is to discuss SUPA \(Simplified Use of Policy Abstractions\) related issues." <supa.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/supa>, <mailto:supa-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/supa/>
List-Post: <mailto:supa@ietf.org>
List-Help: <mailto:supa-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/supa>, <mailto:supa-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Jan 2016 23:24:49 -0000

This is a multipart message in MIME format.

------=_NextPart_000_0131_01D148AF.8E363950
Content-Type: text/plain;
	charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

John:=20

=20

You are correct in indicating that the draft assumes you understand the =
event =3D Packet reception.  It is a failing in the draft that Joel has =
indicated on these lists.  I will be updating the ECA drafts and FB-RIB =
drafts.  I will send a copy to you and Joel for review this week.=20

=20

Thank you for pointing out the errors in the drafts,=20

=20

Sue=20

=20

From: John Strassner [mailto:strazpdj@gmail.com]=20
Sent: Tuesday, January 05, 2016 10:28 PM
To: Susan Hares
Cc: Joel M. Halpern; i2rs@ietf.org; netmod@ietf.org; supa@ietf.org; John =
Strassner
Subject: Re: [Supa] [i2rs] FW: New Version Notification for =
draft-hares-i2rs-bnp-eca-data-model-03.txt

=20

Sue,

> On #1) the dependency between I2RS Filter-based RIB (FB-RIB) and
> ECA, please see draft-kini-i2rs-fb-rib-info-model-02.txt. In section =
1.1,
> it gives the definition of the FB-RIB.

Sorry, it does NOT do this. To quote from this section:

   A Filter Based RIB uses Event-Condition-Action policy. A Filter-
   based RIB entry specifies matches on fields in a packet (which may
   include layer 2 fields, IP header fields, transport or application
   fields) or size of the packet or interface received on. The matches
   are contained in an ordered list of filters which contain pairs of
   match condition-action (aka event-condition-action).

Please tell me WHERE the event is in the above definition. All I see is
a condition-action rule. (BTW, the analysis of PCIM and PCIMe is also
not quite correct in your draft).

> In section 1.2, it links this to an event-condition-action model.

Sorry, it does NOT do this.

First, this section simply says, and I quote:

   "The filter based-RIB uses event-condition-action policy (ECA) =
rules."

That is a tautology at best.

Second, in Section 2, under the definition of FB-Route, the draft says:

   "The policy rules in the filter-based RIB are prescriptive of the
     Event-Condition-Action form which is often represented by
        if Condition then action."

Please note that this definition is incorrect, and in conflict with =
SUPA.
The whole point of an EVENT-condition-action policy rule is to define
a rule of the form:

    IF <event_clause> evaluates to TRUE
        IF <condition_clause evaluates to TRUE
            THEN execute actions in <action_clause>
        ENDIF
    ENDIF

This definition has been established in the industry and academia
for at least 2 decades.

Variations of the above have been defined and published (e.g.,
FOCALE has an alternate set of actions to execute if the condition
clause evaluated to FALSE; this has NOT been proposed for SUPA
at this time). There have also been extensions to handle sets and
groups, as well as specific ordering (DEN-ng, SID, FOCALE).

Therefore, I would suggest that you change your drafts to use a
condition-action policy rule, OR update the drafts (I would be happy
to help) to use a correct definition of an ECA policy rule.

regards,
John

=20

On Mon, Jan 4, 2016 at 2:33 PM, Susan Hares <shares@ndzh.com> wrote:

Joel:=20

=20

On #1) the dependency between I2RS Filter-based RIB (FB-RIB) and ECA, =
please see draft-kini-i2rs-fb-rib-info-model-02.txt. In section 1.1, it =
gives the definition of the FB-RIB.  In section 1.2, it links this to an =
event-condition-action model.  If you disagree with the definition of  =
I2RS FB-RIB, then we should probably restrict this conversation to the =
I2RS mail list.  Any feedback on the Info-model or data-model would be =
helpful.  The authors hoped to go to a WG adoption call at the end of =
this week.=20

=20

One challenge for the ephemeral I2RS FB-RIB, is there is no definition =
of the non-ephemeral FB-RIB.  If you think there should be a =
non-ephemeral FB-RIB =E2=80=93 that discussion may be useful between =
I2RS, Netmod and SUPA.=20

=20

On #2) SUPA ECA model, I agree that we should be able to have a common =
draft.  At IETF 94, I raised issues regarding the SUPA versus my ECA =
definition.  =20

=20

Cheerily,=20

=20

Sue=20

=20

-----Original Message-----
From: Joel M. Halpern [mailto:jmh@joelhalpern.com]=20
Sent: Monday, January 04, 2016 3:54 PM
To: Susan Hares; i2rs@ietf.org; netmod@ietf.org; supa@ietf.org
Subject: Re: [i2rs] FW: New Version Notification for =
draft-hares-i2rs-bnp-eca-data-model-03.txt

=20

I think there are two issues here.

=20

1) It is not clear to me why there is any dependence of the fb-rib data =
model on an eca data model.  While supa does allow for policy model to =
be sent directly to the router, it also allows many other cases.

=20

2) The approach with the supa eca data model is still under development. =


  Having said that, the material in there is intended to be very =
general.  From what I understand, there should be no difficulty in =
refining the action side of that model to actions which affect the =
fb-rib in ways that are consistent with the fb-dib data model.

=20

Yours,

Joel

=20

On 1/4/16 2:01 PM, Susan Hares wrote:

> This model provides a Event-Condition-Action (ECA) policy model.

> The I2RS FB-RIB yang data model utilizes this model, but to my=20

> knowledge the Netmod or netconf has not adopted an ECA policy model to =


> parallel the ACL model.

>=20

> Chen and co-authors have created the model:

>=20

> draft-chen-supa-eca-data-model-05.txt

>=20

> But it does not align with this yang model or seem sufficient to

> support the FB-RIB information model.   At IETF 94,

> I presented a discussion of the issues I found with the=20

> draft-chen-supa-eca-data-model-05.txt, but it has not been updated.

> We would appreciate feedback on this version of yang model.

>=20

> <i2rs Chair hat on>

> In my role as I2RS chair,  I2RS needs to make progress soon on the=20

> I2RS FB-RIB data model.  We would appreciate your aid.

> <i2rs chair hat off>

>=20

> Sue

>=20

> -----Original Message-----

> From:  <mailto:internet-drafts@ietf.org> internet-drafts@ietf.org [ =
<mailto:internet-drafts@ietf.org> mailto:internet-drafts@ietf.org]

> Sent: Monday, January 04, 2016 12:04 PM

> To: Susan Hares; Qin Wu; Russ White

> Subject: New Version Notification for=20

> draft-hares-i2rs-bnp-eca-data-model-03.txt

>=20

>=20

> A new version of I-D, draft-hares-i2rs-bnp-eca-data-model-03.txt

> has been successfully submitted by Susan Hares and posted to the IETF =
repository.

>=20

> Name:                               =
draft-hares-i2rs-bnp-eca-data-model

> Revision:          03

> Title:                  An Information Model for Basic Network Policy =
and Filter Rules

> Document date:           2016-01-04

> Group:                              Individual Submission

> Pages:                               30

> URL:             =
<https://www.ietf.org/internet-drafts/draft-hares-i2rs-bnp-eca-data-model=
-03.txt> =
https://www.ietf.org/internet-drafts/draft-hares-i2rs-bnp-eca-data-model-=
03.txt

> Status:          =
<https://datatracker.ietf.org/doc/draft-hares-i2rs-bnp-eca-data-model/> =
https://datatracker.ietf.org/doc/draft-hares-i2rs-bnp-eca-data-model/

> Htmlized:        =
<https://tools.ietf.org/html/draft-hares-i2rs-bnp-eca-data-model-03> =
https://tools.ietf.org/html/draft-hares-i2rs-bnp-eca-data-model-03

> Diff:            =
<https://www.ietf.org/rfcdiff?url2=3Ddraft-hares-i2rs-bnp-eca-data-model-=
03> =
https://www.ietf.org/rfcdiff?url2=3Ddraft-hares-i2rs-bnp-eca-data-model-0=
3

>=20

> Abstract:

>     This document contains the Basic Network Policy and Filters (BNP =
IM)

>     Data Model which provides a policy model that support an ordered =
list

>     of match-condition-action (aka event-condition-action (ECA)) for

>     multiple layers (interface, L1-L4, application) and other factors

>     (size of packet, time of day).  The actions allow for setting =
actions

>     (QOS and other), decapsulation, encapsulation, plus forwarding

>     actions.  The policy model can be used with the I2RS filter-based

>     RIB.

>=20

>=20

>=20

>=20

> 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.

>=20

> The IETF Secretariat

>=20

>=20

> _______________________________________________

> i2rs mailing list

>  <mailto:i2rs@ietf.org> i2rs@ietf.org

>  <https://www.ietf.org/mailman/listinfo/i2rs> =
https://www.ietf.org/mailman/listinfo/i2rs

>=20


_______________________________________________
Supa mailing list
Supa@ietf.org
https://www.ietf.org/mailman/listinfo/supa




--=20

regards,

John


------=_NextPart_000_0131_01D148AF.8E363950
Content-Type: text/html;
	charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns=3D"http://www.w3.org/TR/REC-html40"><head><meta =
http-equiv=3DContent-Type content=3D"text/html; charset=3Dutf-8"><meta =
name=3DGenerator content=3D"Microsoft Word 14 (filtered =
medium)"><style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p
	{mso-style-priority:99;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:8.0pt;
	font-family:"Tahoma","sans-serif";}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-priority:99;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma","sans-serif";}
span.EmailStyle20
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri","sans-serif";}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DEN-US link=3Dblue =
vlink=3Dpurple><div class=3DWordSection1><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>John: <o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>You are correct in indicating that the draft assumes you understand =
the event =3D Packet reception.=C2=A0 It is a failing in the draft that =
Joel has indicated on these lists. =C2=A0I will be updating the ECA =
drafts and FB-RIB drafts.=C2=A0 I will send a copy to you and Joel for =
review this week. <o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>Thank you for pointing out the errors in the drafts, =
<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>Sue <o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><b><span =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span>=
</b><span style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif"'> =
John Strassner [mailto:strazpdj@gmail.com] <br><b>Sent:</b> Tuesday, =
January 05, 2016 10:28 PM<br><b>To:</b> Susan Hares<br><b>Cc:</b> Joel =
M. Halpern; i2rs@ietf.org; netmod@ietf.org; supa@ietf.org; John =
Strassner<br><b>Subject:</b> Re: [Supa] [i2rs] FW: New Version =
Notification for =
draft-hares-i2rs-bnp-eca-data-model-03.txt<o:p></o:p></span></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><div><div><p =
class=3DMsoNormal>Sue,<o:p></o:p></p></div><div><p>&gt; On #1) the =
dependency between I2RS Filter-based RIB (FB-RIB) and<br>&gt;&nbsp;ECA, =
please see draft-kini-i2rs-fb-rib-info-model-02.txt. In section =
1.1,<br>&gt; it gives the definition of the =
FB-RIB.<o:p></o:p></p><p>Sorry, it does NOT do this. To quote from this =
section:<o:p></o:p></p><p><span lang=3DEN>&nbsp; &nbsp;A Filter Based =
RIB uses Event-Condition-Action policy. A Filter-<br>&nbsp; &nbsp;based =
RIB entry specifies matches on fields in a packet (which may<br>&nbsp; =
&nbsp;include layer 2 fields, IP header fields, transport or =
application<br>&nbsp; &nbsp;fields) or size of the packet or interface =
received on. The matches<br>&nbsp; &nbsp;are contained in an ordered =
list of filters which contain pairs of<br>&nbsp;&nbsp; match =
condition-action (aka =
event-condition-action).<o:p></o:p></span></p><p>Please tell me WHERE =
the event is in the above definition. All I see is<br>a condition-action =
rule. (BTW, the analysis of PCIM and PCIMe is also<br>not quite correct =
in your draft).<o:p></o:p></p><p>&gt; In section 1.2, it links this to =
an event-condition-action model.<o:p></o:p></p><p>Sorry, it does NOT do =
this.<o:p></o:p></p><p>First, this section simply says, and I =
quote:<o:p></o:p></p><p><span lang=3DEN>&nbsp;&nbsp; &quot;The filter =
based-RIB uses event-condition-action policy (ECA) =
rules.&quot;<o:p></o:p></span></p><p><span lang=3DEN>That is a tautology =
at best.<o:p></o:p></span></p><p><span lang=3DEN>Second, in Section 2, =
under the definition of FB-Route, the draft =
says:<o:p></o:p></span></p><p><span lang=3DEN>&nbsp;&nbsp; &quot;The =
policy rules in the filter-based RIB are prescriptive of =
the<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event-Condition-Action form which =
is often represented by<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if =
Condition then action.&quot;<o:p></o:p></span></p><p><span =
lang=3DEN>Please note that this definition is incorrect, and in conflict =
with SUPA.<br>The whole point of an EVENT-condition-action policy rule =
is to define<br>a rule of the form:<o:p></o:p></span></p><p><span =
lang=3DEN>&nbsp;&nbsp;&nbsp; IF &lt;event_clause&gt; evaluates to =
TRUE<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IF =
&lt;condition_clause evaluates to =
TRUE<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
; THEN execute actions in =
&lt;action_clause&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
ENDIF<br>&nbsp;&nbsp;&nbsp; ENDIF<o:p></o:p></span></p><p><span =
lang=3DEN>This definition has been established in the industry and =
academia<br>for at least 2 decades.<o:p></o:p></span></p><p><span =
lang=3DEN>Variations of the above have been defined and published =
(e.g.,<br>FOCALE has an alternate set of actions to execute if the =
condition<br>clause evaluated to FALSE; this has NOT been proposed for =
SUPA<br>at this time). There have also been extensions to handle sets =
and<br>groups, as well as specific ordering (DEN-ng, SID, =
FOCALE).<o:p></o:p></span></p><p><span lang=3DEN>Therefore, I would =
suggest that you change your drafts to use a<br>condition-action policy =
rule, OR update the drafts (I would be happy<br>to help) to use a =
correct definition of an ECA policy rule.<o:p></o:p></span></p><p><span =
lang=3DEN>regards,<br>John<o:p></o:p></span></p></div></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><div><p class=3DMsoNormal>On Mon, =
Jan 4, 2016 at 2:33 PM, Susan Hares &lt;<a =
href=3D"mailto:shares@ndzh.com" =
target=3D"_blank">shares@ndzh.com</a>&gt; =
wrote:<o:p></o:p></p><div><div><p>Joel: =
<o:p></o:p></p><p>&nbsp;<o:p></o:p></p><p>On #1) the dependency between =
I2RS Filter-based RIB (FB-RIB) and ECA, please see =
draft-kini-i2rs-fb-rib-info-model-02.txt. In section 1.1, it gives the =
definition of the FB-RIB.&nbsp; In section 1.2, it links this to an =
event-condition-action model.&nbsp; If you disagree with the definition =
of &nbsp;I2RS FB-RIB, then we should probably restrict this conversation =
to the I2RS mail list.&nbsp; Any feedback on the Info-model or =
data-model would be helpful.&nbsp; The authors hoped to go to a WG =
adoption call at the end of this week. =
<o:p></o:p></p><p>&nbsp;<o:p></o:p></p><p>One challenge for the =
ephemeral I2RS FB-RIB, is there is no definition of the non-ephemeral =
FB-RIB.&nbsp; If you think there should be a non-ephemeral FB-RIB =
=E2=80=93 that discussion may be useful between I2RS, Netmod and SUPA. =
<o:p></o:p></p><p>&nbsp;<o:p></o:p></p><p>On #2) SUPA ECA model, I agree =
that we should be able to have a common draft.&nbsp; At IETF 94, I =
raised issues regarding the SUPA versus my ECA definition.&nbsp; =
&nbsp;<o:p></o:p></p><p>&nbsp;<o:p></o:p></p><p>Cheerily, =
<o:p></o:p></p><p>&nbsp;<o:p></o:p></p><p>Sue =
<o:p></o:p></p><p>&nbsp;<o:p></o:p></p><p>-----Original =
Message-----<br>From: Joel M. Halpern [mailto:<a =
href=3D"mailto:jmh@joelhalpern.com" =
target=3D"_blank">jmh@joelhalpern.com</a>] <br>Sent: Monday, January 04, =
2016 3:54 PM<br>To: Susan Hares; <a href=3D"mailto:i2rs@ietf.org" =
target=3D"_blank">i2rs@ietf.org</a>; <a href=3D"mailto:netmod@ietf.org" =
target=3D"_blank">netmod@ietf.org</a>; <a href=3D"mailto:supa@ietf.org" =
target=3D"_blank">supa@ietf.org</a><br>Subject: Re: [i2rs] FW: New =
Version Notification for =
draft-hares-i2rs-bnp-eca-data-model-03.txt<o:p></o:p></p><p>&nbsp;<o:p></=
o:p></p><p>I think there are two issues =
here.<o:p></o:p></p><p>&nbsp;<o:p></o:p></p><p>1) It is not clear to me =
why there is any dependence of the fb-rib data model on an eca data =
model.&nbsp; While supa does allow for policy model to be sent directly =
to the router, it also allows many other =
cases.<o:p></o:p></p><p>&nbsp;<o:p></o:p></p><p>2) The approach with the =
supa eca data model is still under development. =
<o:p></o:p></p><p>&nbsp;&nbsp;Having said that, the material in there is =
intended to be very general.&nbsp; From what I understand, there should =
be no difficulty in refining the action side of that model to actions =
which affect the fb-rib in ways that are consistent with the fb-dib data =
model.<o:p></o:p></p><p>&nbsp;<o:p></o:p></p><p>Yours,<o:p></o:p></p><p>J=
oel<o:p></o:p></p><p>&nbsp;<o:p></o:p></p><p>On 1/4/16 2:01 PM, Susan =
Hares wrote:<o:p></o:p></p><p>&gt; This model provides a =
Event-Condition-Action (ECA) policy model.<o:p></o:p></p><p>&gt; The =
I2RS FB-RIB yang data model utilizes this model, but to my =
<o:p></o:p></p><p>&gt; knowledge the Netmod or netconf has not adopted =
an ECA policy model to <o:p></o:p></p><p>&gt; parallel the ACL =
model.<o:p></o:p></p><p>&gt;&nbsp;<o:p></o:p></p><p>&gt; Chen and =
co-authors have created the =
model:<o:p></o:p></p><p>&gt;&nbsp;<o:p></o:p></p><p>&gt; =
draft-chen-supa-eca-data-model-05.txt<o:p></o:p></p><p>&gt;&nbsp;<o:p></o=
:p></p><p>&gt; But it does not align with this yang model or seem =
sufficient to<o:p></o:p></p><p>&gt; support the FB-RIB information =
model.&nbsp;&nbsp; At IETF 94,<o:p></o:p></p><p>&gt; I presented a =
discussion of the issues I found with the <o:p></o:p></p><p>&gt; =
draft-chen-supa-eca-data-model-05.txt, but it has not been =
updated.<o:p></o:p></p><p>&gt; We would appreciate feedback on this =
version of yang model.<o:p></o:p></p><p>&gt;&nbsp;<o:p></o:p></p><p>&gt; =
&lt;i2rs Chair hat on&gt;<o:p></o:p></p><p>&gt; In my role as I2RS =
chair,&nbsp; I2RS needs to make progress soon on the =
<o:p></o:p></p><p>&gt; I2RS FB-RIB data model.&nbsp; We would appreciate =
your aid.<o:p></o:p></p><p>&gt; &lt;i2rs chair hat =
off&gt;<o:p></o:p></p><p>&gt;&nbsp;<o:p></o:p></p><p>&gt; =
Sue<o:p></o:p></p><p>&gt;&nbsp;<o:p></o:p></p><p>&gt; -----Original =
Message-----<o:p></o:p></p><p>&gt; From: <a =
href=3D"mailto:internet-drafts@ietf.org" target=3D"_blank"><span =
style=3D'color:windowtext;text-decoration:none'>internet-drafts@ietf.org<=
/span></a> [<a href=3D"mailto:internet-drafts@ietf.org" =
target=3D"_blank"><span =
style=3D'color:windowtext;text-decoration:none'>mailto:internet-drafts@ie=
tf.org</span></a>]<o:p></o:p></p><p>&gt; Sent: Monday, January 04, 2016 =
12:04 PM<o:p></o:p></p><p>&gt; To: Susan Hares; Qin Wu; Russ =
White<o:p></o:p></p><p>&gt; Subject: New Version Notification for =
<o:p></o:p></p><p>&gt; =
draft-hares-i2rs-bnp-eca-data-model-03.txt<o:p></o:p></p><p>&gt;&nbsp;<o:=
p></o:p></p><p>&gt;&nbsp;<o:p></o:p></p><p>&gt; A new version of I-D, =
draft-hares-i2rs-bnp-eca-data-model-03.txt<o:p></o:p></p><p>&gt; has =
been successfully submitted by Susan Hares and posted to the IETF =
repository.<o:p></o:p></p><p>&gt;&nbsp;<o:p></o:p></p><p>&gt; =
Name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
draft-hares-i2rs-bnp-eca-data-model<o:p></o:p></p><p>&gt; =
Revision:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
03<o:p></o:p></p><p>&gt; =
Title:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; An Information Model for Basic =
Network Policy and Filter Rules<o:p></o:p></p><p>&gt; Document =
date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
2016-01-04<o:p></o:p></p><p>&gt; =
Group:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Individual =
Submission<o:p></o:p></p><p>&gt; =
Pages:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 30<o:p></o:p></p><p>&gt; =
URL:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<a =
href=3D"https://www.ietf.org/internet-drafts/draft-hares-i2rs-bnp-eca-dat=
a-model-03.txt" target=3D"_blank"><span =
style=3D'color:windowtext;text-decoration:none'>https://www.ietf.org/inte=
rnet-drafts/draft-hares-i2rs-bnp-eca-data-model-03.txt</span></a><o:p></o=
:p></p><p>&gt; Status:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<a =
href=3D"https://datatracker.ietf.org/doc/draft-hares-i2rs-bnp-eca-data-mo=
del/" target=3D"_blank"><span =
style=3D'color:windowtext;text-decoration:none'>https://datatracker.ietf.=
org/doc/draft-hares-i2rs-bnp-eca-data-model/</span></a><o:p></o:p></p><p>=
&gt; Htmlized:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a =
href=3D"https://tools.ietf.org/html/draft-hares-i2rs-bnp-eca-data-model-0=
3" target=3D"_blank"><span =
style=3D'color:windowtext;text-decoration:none'>https://tools.ietf.org/ht=
ml/draft-hares-i2rs-bnp-eca-data-model-03</span></a><o:p></o:p></p><p>&gt=
; Diff:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a =
href=3D"https://www.ietf.org/rfcdiff?url2=3Ddraft-hares-i2rs-bnp-eca-data=
-model-03" target=3D"_blank"><span =
style=3D'color:windowtext;text-decoration:none'>https://www.ietf.org/rfcd=
iff?url2=3Ddraft-hares-i2rs-bnp-eca-data-model-03</span></a><o:p></o:p></=
p><p>&gt;&nbsp;<o:p></o:p></p><p>&gt; =
Abstract:<o:p></o:p></p><p>&gt;&nbsp;&nbsp;&nbsp;&nbsp; This document =
contains the Basic Network Policy and Filters (BNP =
IM)<o:p></o:p></p><p>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Data Model which =
provides a policy model that support an ordered =
list<o:p></o:p></p><p>&gt;&nbsp;&nbsp;&nbsp;&nbsp; of =
match-condition-action (aka event-condition-action (ECA)) =
for<o:p></o:p></p><p>&gt;&nbsp;&nbsp;&nbsp;&nbsp; multiple layers =
(interface, L1-L4, application) and other =
factors<o:p></o:p></p><p>&gt;&nbsp;&nbsp;&nbsp;&nbsp; (size of packet, =
time of day).&nbsp; The actions allow for setting =
actions<o:p></o:p></p><p>&gt;&nbsp;&nbsp;&nbsp;&nbsp; (QOS and other), =
decapsulation, encapsulation, plus =
forwarding<o:p></o:p></p><p>&gt;&nbsp;&nbsp;&nbsp;&nbsp; actions.&nbsp; =
The policy model can be used with the I2RS =
filter-based<o:p></o:p></p><p>&gt;&nbsp;&nbsp;&nbsp;&nbsp; =
RIB.<o:p></o:p></p><p>&gt;&nbsp;<o:p></o:p></p><p>&gt;&nbsp;<o:p></o:p></=
p><p>&gt;&nbsp;<o:p></o:p></p><p>&gt;&nbsp;<o:p></o:p></p><p>&gt; Please =
note that it may take a couple of minutes from the time of submission =
until the htmlized version and diff are available at <a =
href=3D"http://tools.ietf.org" =
target=3D"_blank">tools.ietf.org</a>.<o:p></o:p></p><p>&gt;&nbsp;<o:p></o=
:p></p><p>&gt; The IETF =
Secretariat<o:p></o:p></p><p>&gt;&nbsp;<o:p></o:p></p><p>&gt;&nbsp;<o:p><=
/o:p></p><p>&gt; =
_______________________________________________<o:p></o:p></p><p>&gt; =
i2rs mailing list<o:p></o:p></p><p>&gt; <a href=3D"mailto:i2rs@ietf.org" =
target=3D"_blank"><span =
style=3D'color:windowtext;text-decoration:none'>i2rs@ietf.org</span></a><=
o:p></o:p></p><p>&gt; <a =
href=3D"https://www.ietf.org/mailman/listinfo/i2rs" =
target=3D"_blank"><span =
style=3D'color:windowtext;text-decoration:none'>https://www.ietf.org/mail=
man/listinfo/i2rs</span></a><o:p></o:p></p><p>&gt;&nbsp;<o:p></o:p></p></=
div></div><p class=3DMsoNormal =
style=3D'margin-bottom:12.0pt'><br>______________________________________=
_________<br>Supa mailing list<br><a =
href=3D"mailto:Supa@ietf.org">Supa@ietf.org</a><br><a =
href=3D"https://www.ietf.org/mailman/listinfo/supa" =
target=3D"_blank">https://www.ietf.org/mailman/listinfo/supa</a><o:p></o:=
p></p></div><p class=3DMsoNormal><br><br clear=3Dall><br>-- =
<o:p></o:p></p><div><div><p =
class=3DMsoNormal>regards,<o:p></o:p></p></div><div><p =
class=3DMsoNormal>John<o:p></o:p></p></div></div></div></div></body></htm=
l>
------=_NextPart_000_0131_01D148AF.8E363950--


From nobody Wed Jan  6 16:50:21 2016
Return-Path: <John.sc.Strassner@huawei.com>
X-Original-To: supa@ietfa.amsl.com
Delivered-To: supa@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 419D01A21A9; Wed,  6 Jan 2016 16:50:17 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.21
X-Spam-Level: 
X-Spam-Status: No, score=-4.21 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
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 XU7TaDYeeyqX; Wed,  6 Jan 2016 16:50:12 -0800 (PST)
Received: from lhrrgout.huawei.com (lhrrgout.huawei.com [194.213.3.17]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 94AA91A21A7; Wed,  6 Jan 2016 16:50:09 -0800 (PST)
Received: from 172.18.7.190 (EHLO lhreml403-hub.china.huawei.com) ([172.18.7.190]) by lhrrg01-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id CGL00628; Thu, 07 Jan 2016 00:50:06 +0000 (GMT)
Received: from SJCEML703-CHM.china.huawei.com (10.218.25.36) by lhreml403-hub.china.huawei.com (10.201.5.217) with Microsoft SMTP Server (TLS) id 14.3.235.1; Thu, 7 Jan 2016 00:50:05 +0000
Received: from SJCEML701-CHM.china.huawei.com ([169.254.3.81]) by SJCEML703-CHM.china.huawei.com ([169.254.5.130]) with mapi id 14.03.0235.001;  Wed, 6 Jan 2016 16:50:00 -0800
From: John Strassner <John.sc.Strassner@huawei.com>
To: Susan Hares <shares@ndzh.com>, "'John Strassner'" <strazpdj@gmail.com>, "'Joel M. Halpern'" <jmh@joelhalpern.com>
Thread-Topic: [Supa] [i2rs] FW: New Version Notification for draft-hares-i2rs-bnp-eca-data-model-03.txt
Thread-Index: AQHRSDASitFFz8IO2EOQtMd8cV25dJ7vDmuAgAAnhjA=
Date: Thu, 7 Jan 2016 00:49:59 +0000
Message-ID: <B818037A70EDCC4A86113DA25EC02098201B9466@SJCEML701-CHM.china.huawei.com>
References: <20160104170330.13929.73845.idtracker@ietfa.amsl.com> <006701d14722$616c6950$24453bf0$@ndzh.com> <568ADBE7.3030101@joelhalpern.com> <CAJwYUrHRKStOaKS9C3==4QsMN9_81pR+Wa_+3KSC5y6eENqTBQ@mail.gmail.com> <03c101d1488c$587503a0$095f0ae0$@ndzh.com>
In-Reply-To: <03c101d1488c$587503a0$095f0ae0$@ndzh.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.96.255.167]
Content-Type: multipart/alternative; boundary="_000_B818037A70EDCC4A86113DA25EC02098201B9466SJCEML701CHMchi_"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A020202.568DB63F.00C2, ss=1, re=0.000, recu=0.000, reip=0.000,  cl=1, cld=1, fgs=0, ip=169.254.3.81, so=2013-06-18 04:22:30, dmn=2013-03-21 17:37:32
X-Mirapoint-Loop-Id: 4d6003bfb2e2615615912651f617b7fb
Archived-At: <http://mailarchive.ietf.org/arch/msg/supa/o1iA9uTNyUkskN4tfV03yUnQ-6Y>
Cc: "i2rs@ietf.org" <i2rs@ietf.org>, "supa@ietf.org" <supa@ietf.org>, "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [Supa] [i2rs] FW: New Version Notification for draft-hares-i2rs-bnp-eca-data-model-03.txt
X-BeenThere: supa@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "This list is to discuss SUPA \(Simplified Use of Policy Abstractions\) related issues." <supa.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/supa>, <mailto:supa-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/supa/>
List-Post: <mailto:supa@ietf.org>
List-Help: <mailto:supa-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/supa>, <mailto:supa-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 07 Jan 2016 00:50:17 -0000

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

SGkgU3VlLA0KDQpZb3UgYXJlIGNvcnJlY3QsIGl0IGlzIGEgdmVyeSBzaW1wbGUgY2FzZSwgd2l0
aCBvbmUgdHlwZSBvZiBldmVudC4gICBKb2VsIGluZGljYXRlZCBmbGF3cyBpbiB0aGUgZG9jdW1l
bnQgdGhhdCBpdCBkaWQgbm90IGluZGljYXRlIHRoZSBldmVudCB3YXMgYSDigJxwYWNrZXQgcmVj
ZXB0aW9u4oCdLiAgQXQgdGhpcyBwb2ludCwgaXQgc291bmRzIGxpa2UgeW91IGFuZCBKb2VsIGFy
ZSBzdWdnZXN0aW5nIHRoYXQgdGhpcyBwYXJ0aWN1bGFyIHNpbXBsaXN0aWMgY2FzZSBvZiBFdmVu
dC1Db25kaXRpb24tQWN0aW9uIGlzIE9LIHRvIGdvIGZvcndhcmQgd2l0aCBpbiB0aGUgSTJSUyAo
Zm9yIGVwaGVtZXJhbCBzdGF0ZSksIGFuZCBpbiBhcHByb3ByaWF0ZSBXRyBmb3IgdGhlIG5vbi1l
cGhlbWVyYWwgY2FzZS4gIElzIHRoaXMgY29ycmVjdD8NCg0KPGpjcz4NCkFzIGxvbmcgYXMgaXQg
aXMgY2xhcmlmaWVkIHRoYXQgdGhlcmUgaXMsIGluIGZhY3QsIGFuIGV2ZW50LCB0aGVuIEkgdGhp
bmsgdGhhdCBpdCBpcyBmaW5lLiBOb3RlIHRoYXQgaXQgc2hvdWxkIGFsc28gYmUgY2xhcmlmaWVk
IHRoYXQgaWYgdGhlIEV2ZW50IGlzIG5vdCByZWNlaXZlZCwgdGhlbiB0aGUgY29uZGl0aW9uIGNs
YXVzZSBjYW4gbmV2ZXIgYmUgZXZhbHVhdGVkLg0KPC9qY3M+DQoNCkF0IElFVEYgOTQsIEkgd2Fz
IHNpbXBseSBjb21wYXJpbmcgQ2hlbuKAmXMgZG9jdW1lbnQgdmVyc3VzIHRoaXMgdmVyeSBzaW1w
bGUgY2FzZSBvZiBhbiBFQ0EuICBJIGRpZCBub3QgbWVhbiB0byBpbXBseSBpdCB3YXMgdGhlIG9u
bHkgcG9zc2libGUgRUNBIGNhc2UuICAgSSBsb29rIGZvcndhcmQgdG8gaGVhcmluZyBmcm9tIHRo
ZSBTVVBBIGxpc3QgcmVnYXJkaW5nIHRoZSBnZW5lcmljIEVDQSBpbmZvcm1hdGlvbiBtb2RlbCBh
bmQgdGhlIGRpZmZlcmVudCB0eXBlcyBvZiBFQ0EuDQoNCjxqY3M+DQpUaGF0J3Mgd2hhdCBjb25m
dXNlZCBtZSAtIHRoZSBjaGVuIGRvY3VtZW50IGRpZCBoYXZlIGV2ZW50IG5vZGVzIGluIGl0LCBh
bmQgeW91ciBkcmFmdCBkaWRuJ3QuIFRoYXQgYmVpbmcgc2FpZCwgdGhlcmUgYXJlIG1hbnkgd2F5
cyB0byBkZWZpbmUgRXZlbnRzLiBJZiB5b3UgbG9vayBhdCB0aGUgU1VQQSBtb2RlbCwgeW91IHdp
bGwgc2VlIHRoZSBmb2xsb3dpbmcgZXhlbXBsYXIgbWV0aG9kczoNCg0KDQrCtyAgICAgICAgIHlv
dSBjYW4gZGVmaW5lIGEgY2xhdXNlLCBvZiB0aGUgY2Fub25pY2FsIGZvcm0ge3ZhcmlhYmxlLCBv
cGVyYXRvciwgdmFsdWV9LCB0byByZXByZXNlbnQgYW4gZXZlbnQgKGUuZy4sIHRpbWUgPT0gMDg6
MDBhbSkNCg0KwrcgICAgICAgICB5b3UgY2FuIHVzZSBhbiBFdmVudCBvYmplY3QgYXMgdGhlIHZh
cmlhYmxlIG9yIHRoZSB2YWx1ZSBpbiB0aGUgYWJvdmUgY2xhdXNlIChlLmcuLCB1c2Ugb25lIG9y
IG1vcmUgYXR0cmlidXRlcyBmcm9tIG9uZSBvciBtb3JlIEV2ZW50IG9iamVjdHMgaW4gdGhlIGNv
bXBhcmlzb24gY2xhdXNlKQ0KDQrCtyAgICAgICAgIHlvdSBjYW4gdXNlIGEgQ29sbGVjdGlvbiBh
dHRyaWJ1dGVzIHRvIGNvbGxlY3QgZXZlbnRzIGZvciBhZ2dyZWdhdGlvbiwgZmlsdGVyaW5nLCBh
bmQvb3IgY29ycmVsYXRpb24gb3BlcmF0aW9ucyBhcyBwYXJ0IG9mIHRoZSBldmVudCBjbGF1c2Ug
cHJvY2Vzc2luZw0KDQrCtyAgICAgICAgIHlvdSBjYW4gZW5jb2RlIHRoZSBlbnRpcmUgZXZlbnQg
ZXhwcmVzc2lvbiBpbnRvIGFuIGF0dHJpYnV0ZQ0KPC9qY3M+DQoNCnJlZ2FyZHMsDQpKb2huDQoN
CkZyb206IFN1cGEgW21haWx0bzpzdXBhLWJvdW5jZXNAaWV0Zi5vcmddIE9uIEJlaGFsZiBPZiBT
dXNhbiBIYXJlcw0KU2VudDogV2VkbmVzZGF5LCBKYW51YXJ5IDA2LCAyMDE2IDY6MTMgQU0NClRv
OiAnSm9obiBTdHJhc3NuZXInOyAnSm9lbCBNLiBIYWxwZXJuJw0KQ2M6IGkycnNAaWV0Zi5vcmc7
IG5ldG1vZEBpZXRmLm9yZzsgc3VwYUBpZXRmLm9yZw0KU3ViamVjdDogUmU6IFtTdXBhXSBbaTJy
c10gRlc6IE5ldyBWZXJzaW9uIE5vdGlmaWNhdGlvbiBmb3IgZHJhZnQtaGFyZXMtaTJycy1ibnAt
ZWNhLWRhdGEtbW9kZWwtMDMudHh0DQoNCkpvaG46DQoNClRoYW5rIHlvdSBmb3IgeW91ciByZXNw
b25zZS4gICBGb3IgZmlsdGVyLWJhc2VkIEZJQiwNCg0KRXZlbnQgPSByZWNlaXZpbmcgcGFja2V0
IGluZm9ybWF0aW9uIG9uIHRoZSBpbnRlcmZhY2UNCkNvbmRpdGlvbiA9IG1hdGNoIG9uIGEgdmFy
aWV0eSBvZiBjb25kaXRpb25zIChzZWUgdGhlIGRyYWZ0KQ0KQWN0aW9uID0gYSBjaG9pY2Ugb2Yg
YWN0aW9ucyBtb2RpZnkgcGFja2V0LCBmb3J3YXJkL2Ryb3AgcGFja2V0LCBhbmQgY291bnQgcGFj
a2V0Lg0KDQpZb3UgYXJlIGNvcnJlY3QsIGl0IGlzIGEgdmVyeSBzaW1wbGUgY2FzZSwgd2l0aCBv
bmUgdHlwZSBvZiBldmVudC4gICBKb2VsIGluZGljYXRlZCBmbGF3cyBpbiB0aGUgZG9jdW1lbnQg
dGhhdCBpdCBkaWQgbm90IGluZGljYXRlIHRoZSBldmVudCB3YXMgYSDigJxwYWNrZXQgcmVjZXB0
aW9u4oCdLiAgQXQgdGhpcyBwb2ludCwgaXQgc291bmRzIGxpa2UgeW91IGFuZCBKb2VsIGFyZSBz
dWdnZXN0aW5nIHRoYXQgdGhpcyBwYXJ0aWN1bGFyIHNpbXBsaXN0aWMgY2FzZSBvZiBFdmVudC1D
b25kaXRpb24tQWN0aW9uIGlzIE9LIHRvIGdvIGZvcndhcmQgd2l0aCBpbiB0aGUgSTJSUyAoZm9y
IGVwaGVtZXJhbCBzdGF0ZSksIGFuZCBpbiBhcHByb3ByaWF0ZSBXRyBmb3IgdGhlIG5vbi1lcGhl
bWVyYWwgY2FzZS4gIElzIHRoaXMgY29ycmVjdD8NCg0KQXQgSUVURiA5NCwgSSB3YXMgc2ltcGx5
IGNvbXBhcmluZyBDaGVu4oCZcyBkb2N1bWVudCB2ZXJzdXMgdGhpcyB2ZXJ5IHNpbXBsZSBjYXNl
IG9mIGFuIEVDQS4gIEkgZGlkIG5vdCBtZWFuIHRvIGltcGx5IGl0IHdhcyB0aGUgb25seSBwb3Nz
aWJsZSBFQ0EgY2FzZS4gICBJIGxvb2sgZm9yd2FyZCB0byBoZWFyaW5nIGZyb20gdGhlIFNVUEEg
bGlzdCByZWdhcmRpbmcgdGhlIGdlbmVyaWMgRUNBIGluZm9ybWF0aW9uIG1vZGVsIGFuZCB0aGUg
ZGlmZmVyZW50IHR5cGVzIG9mIEVDQS4NCg0KU3VlDQoNCkZyb206IFN1cGEgW21haWx0bzpzdXBh
LWJvdW5jZXNAaWV0Zi5vcmddIE9uIEJlaGFsZiBPZiBKb2huIFN0cmFzc25lcg0KU2VudDogVHVl
c2RheSwgSmFudWFyeSAwNSwgMjAxNiAxMDoxMiBQTQ0KVG86IEpvZWwgTS4gSGFscGVybg0KQ2M6
IGkycnNAaWV0Zi5vcmc7IHN1cGFAaWV0Zi5vcmc7IG5ldG1vZEBpZXRmLm9yZzsgU3VzYW4gSGFy
ZXMNClN1YmplY3Q6IFJlOiBbU3VwYV0gW2kycnNdIEZXOiBOZXcgVmVyc2lvbiBOb3RpZmljYXRp
b24gZm9yIGRyYWZ0LWhhcmVzLWkycnMtYm5wLWVjYS1kYXRhLW1vZGVsLTAzLnR4dA0KDQpIaSBK
b2UsIGV0IGFsLiwNCg0KPiAxKSBJdCBpcyBub3QgY2xlYXIgdG8gbWUgd2h5IHRoZXJlIGlzIGFu
eSBkZXBlbmRlbmNlIG9mIHRoZSBmYi1yaWINCj4gZGF0YSBtb2RlbCBvbiBhbiBlY2EgZGF0YSBt
b2RlbC4gIFdoaWxlIHN1cGEgZG9lcyBhbGxvdyBmb3INCj4gcG9saWN5IG1vZGVsIHRvIGJlIHNl
bnQgZGlyZWN0bHkgdG8gdGhlIHJvdXRlciwgaXQgYWxzbyBhbGxvd3MgbWFueQ0KPiBvdGhlciBj
YXNlcy4NCg0KRXhhY3RseS4gTW9yZSBwYXJ0aWN1bGFybHksIGluIHNjYW5uaW5nIHRoaXMgZHJh
ZnQsIEkgZmFpbCB0byBzZWUgaG93DQp0aGlzIGlzIGFuIGFjY2VwdGVkIGRlZmluaXRpb24gb2Yg
RUNBLiBJbiBwYXJ0aWN1bGFyLCB0aGVyZSBkb2Vzbid0DQpzZWVtIHRvIGJlIGFueSBldmVudCBp
biB0aGUgcnVsZSBkZWZpbml0aW9uLg0KDQpIZW5jZSwgSSB3b3VsZCBzdWdnZXN0IHRoYXQgeW91
IGFkZCB3b3JkaW5nIHRoYXQgc2F5cyB0aGF0IHRoaXMgaXMNCm9uZSBvZiBtYW55IHdheXMgdG8g
YnVpbGQgc3VjaCBhIG1hcHBpbmcuDQoNCg0KPiAyKSBUaGUgYXBwcm9hY2ggd2l0aCB0aGUgc3Vw
YSBlY2EgZGF0YSBtb2RlbCBpcyBzdGlsbCB1bmRlcg0KPiBkZXZlbG9wbWVudC4NCg0KQWJzb2x1
dGVseSBhZ3JlZS4gSW4gcGFydGljdWxhciwgZHJhZnQtY2hlbiB3YXMgdGhlIGZpcnN0IGF0dGVt
cHQgYXQNCnRyeWluZyB0byBjb25jZXB0dWFsaXplIHdoYXQgc3VjaCBhIGRhdGEgbW9kZWwgc2hv
dWxkIGxvb2sgbGlrZS4NCg0KPiAgSGF2aW5nIHNhaWQgdGhhdCwgdGhlIG1hdGVyaWFsIGluIHRo
ZXJlIGlzIGludGVuZGVkIHRvIGJlIHZlcnkNCj4gZ2VuZXJhbC4NCg0KSUZGIHlvdSBtZWFuIHRo
ZSBTVVBBIGluZm8gbW9kZWwsIHRoZW4gYWJzb2x1dGVseSAob3RoZXJ3aXNlLA0KaXQgaGFzIGZh
aWxlZCBpbiBpdHMgcHJpbWFyeSBtaXNzaW9uIG9mIHByb3ZpZGluZyBhbiBleHRlbnNpYmxlDQpm
cmFtZXdvcmsgdG8gZGVmaW5lIHBvbGljaWVzKS4NCg0KSUZGIHlvdSBtZWFuIGRyYWZ0LWNoZW4s
IHRoZW4gSSB0aGluayBpdCBhZ3JlZXMgd2l0aCB0aGUgc3Bpcml0IG9mDQp3aGF0IHlvdSBzYWlk
LiBJIHRoaW5rIHRoYXQgd2UgbmVlZCB0byBkaXNjdXNzIGhvdyB0byBtYXAgZnJvbQ0KYW4gaW5m
byBtb2RlbCB0byBhIGRhdGEgbW9kZWwgaW4gbW9yZSBkZXRhaWwgYmVmb3JlIHdlIGNvbWUgdG8N
CmFueSBjb25jbHVzaW9ucyBvZiBpdHMgZWZmaWNhY3kuDQoNCj4gIEZyb20gd2hhdCBJIHVuZGVy
c3RhbmQsIHRoZXJlIHNob3VsZCBiZSBubyBkaWZmaWN1bHR5IGluDQo+IHJlZmluaW5nIHRoZSBh
Y3Rpb24gc2lkZSBvZiB0aGF0IG1vZGVsIHRvIGFjdGlvbnMgd2hpY2ggYWZmZWN0DQo+IHRoZSBm
Yi1yaWIgaW4gd2F5cyB0aGF0IGFyZSBjb25zaXN0ZW50IHdpdGggdGhlIGZiLWRpYiBkYXRhIG1v
ZGVsLg0KDQorMS4gSW4gZmFjdCwgdGhlIHdob2xlIHBvaW50IG9mIFNVUEEgaXMgdG8gcHJvdmlk
ZSBkaWZmZXJlbnQgd2F5cw0Kb2YgZm9ybWluZyBhbiBFQ0EgcG9saWN5IHJ1bGUgdG8gbWVldCBk
aWZmZXJlbnQgZGVtYW5kcyBvZiB0aGUNCnVzZXIuIE1vcmUgcGFydGljdWxhcmx5LCBhdCBJRVRG
OTQsIHlvdSAoU3VlKSBhc3N1bWVkIHRoYXQgYW4NCkVDQSBwb2xpY3kgcnVsZSB3YXMgbWFkZSB1
cCBvZiBFdmVudCwgQ29uZGl0aW9uLCBhbmQgQWN0aW9uDQpvYmplY3RzLiBXaGlsZSB0aGF0IGlz
IGNlcnRhaW5seSBvbmUgYWx0ZXJuYXRpdmUsIHRoZXJlIGFyZSBvdGhlcnMNCmFzIHdlbGwuIElu
IGFkZGl0aW9uLCBwbGVhc2Ugbm90ZSB0aGF0IHRoZSBwcmVzZW5jZSBvZiB0aGVzZQ0Kb2JqZWN0
cyBpcyBOT1Qgc3VmZmljaWVudCB0byBidWlsZCBhbiBFQ0EgcG9saWN5IHJ1bGUgKGUuZy4sIHRo
ZQ0KRXZlbnQgb2JqZWN0IG5lZWRzIGFuIGF0dHJpYnV0ZSAob3IgbXVsdGlwbGUgYXR0cmlidXRl
cykgdG8gYmUNCmNvbXBhcmVkIHRvIHNvbWV0aGluZyBpbiBvcmRlciB0byBkZXRlcm1pbmUgaWYg
dGhlIGV2ZW50DQpDTEFVU0UgZXZhbHVhdGVzIHRvIFRSVUUgb3Igbm90Lg0KDQoNCnJlZ2FyZHMs
DQpKb2huDQoNCk9uIE1vbiwgSmFuIDQsIDIwMTYgYXQgMTI6NTMgUE0sIEpvZWwgTS4gSGFscGVy
biA8am1oQGpvZWxoYWxwZXJuLmNvbTxtYWlsdG86am1oQGpvZWxoYWxwZXJuLmNvbT4+IHdyb3Rl
Og0KSSB0aGluayB0aGVyZSBhcmUgdHdvIGlzc3VlcyBoZXJlLg0KDQoxKSBJdCBpcyBub3QgY2xl
YXIgdG8gbWUgd2h5IHRoZXJlIGlzIGFueSBkZXBlbmRlbmNlIG9mIHRoZSBmYi1yaWIgZGF0YSBt
b2RlbCBvbiBhbiBlY2EgZGF0YSBtb2RlbC4gIFdoaWxlIHN1cGEgZG9lcyBhbGxvdyBmb3IgcG9s
aWN5IG1vZGVsIHRvIGJlIHNlbnQgZGlyZWN0bHkgdG8gdGhlIHJvdXRlciwgaXQgYWxzbyBhbGxv
d3MgbWFueSBvdGhlciBjYXNlcy4NCg0KMikgVGhlIGFwcHJvYWNoIHdpdGggdGhlIHN1cGEgZWNh
IGRhdGEgbW9kZWwgaXMgc3RpbGwgdW5kZXIgZGV2ZWxvcG1lbnQuICBIYXZpbmcgc2FpZCB0aGF0
LCB0aGUgbWF0ZXJpYWwgaW4gdGhlcmUgaXMgaW50ZW5kZWQgdG8gYmUgdmVyeSBnZW5lcmFsLiAg
RnJvbSB3aGF0IEkgdW5kZXJzdGFuZCwgdGhlcmUgc2hvdWxkIGJlIG5vIGRpZmZpY3VsdHkgaW4g
cmVmaW5pbmcgdGhlIGFjdGlvbiBzaWRlIG9mIHRoYXQgbW9kZWwgdG8gYWN0aW9ucyB3aGljaCBh
ZmZlY3QgdGhlIGZiLXJpYiBpbiB3YXlzIHRoYXQgYXJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgZmIt
ZGliIGRhdGEgbW9kZWwuDQoNCllvdXJzLA0KSm9lbA0KDQpPbiAxLzQvMTYgMjowMSBQTSwgU3Vz
YW4gSGFyZXMgd3JvdGU6DQpUaGlzIG1vZGVsIHByb3ZpZGVzIGEgRXZlbnQtQ29uZGl0aW9uLUFj
dGlvbiAoRUNBKSBwb2xpY3kgbW9kZWwuDQpUaGUgSTJSUyBGQi1SSUIgeWFuZyBkYXRhIG1vZGVs
IHV0aWxpemVzIHRoaXMgbW9kZWwsIGJ1dCB0byBteSBrbm93bGVkZ2UgdGhlDQpOZXRtb2Qgb3Ig
bmV0Y29uZiBoYXMgbm90IGFkb3B0ZWQgYW4gRUNBIHBvbGljeSBtb2RlbCB0bw0KcGFyYWxsZWwg
dGhlIEFDTCBtb2RlbC4NCg0KQ2hlbiBhbmQgY28tYXV0aG9ycyBoYXZlIGNyZWF0ZWQgdGhlIG1v
ZGVsOg0KDQpkcmFmdC1jaGVuLXN1cGEtZWNhLWRhdGEtbW9kZWwtMDUudHh0DQoNCkJ1dCBpdCBk
b2VzIG5vdCBhbGlnbiB3aXRoIHRoaXMgeWFuZyBtb2RlbCBvciBzZWVtIHN1ZmZpY2llbnQgdG8N
CnN1cHBvcnQgdGhlIEZCLVJJQiBpbmZvcm1hdGlvbiBtb2RlbC4gICBBdCBJRVRGIDk0LA0KSSBw
cmVzZW50ZWQgYSBkaXNjdXNzaW9uIG9mIHRoZSBpc3N1ZXMgSSBmb3VuZCB3aXRoIHRoZQ0KZHJh
ZnQtY2hlbi1zdXBhLWVjYS1kYXRhLW1vZGVsLTA1LnR4dCwgYnV0IGl0IGhhcyBub3QgYmVlbiB1
cGRhdGVkLg0KV2Ugd291bGQgYXBwcmVjaWF0ZSBmZWVkYmFjayBvbiB0aGlzIHZlcnNpb24gb2Yg
eWFuZyBtb2RlbC4NCg0KPGkycnMgQ2hhaXIgaGF0IG9uPg0KSW4gbXkgcm9sZSBhcyBJMlJTIGNo
YWlyLCAgSTJSUyBuZWVkcyB0byBtYWtlIHByb2dyZXNzIHNvb24gb24gdGhlDQpJMlJTIEZCLVJJ
QiBkYXRhIG1vZGVsLiAgV2Ugd291bGQgYXBwcmVjaWF0ZSB5b3VyIGFpZC4NCjxpMnJzIGNoYWly
IGhhdCBvZmY+DQoNClN1ZQ0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogaW50
ZXJuZXQtZHJhZnRzQGlldGYub3JnPG1haWx0bzppbnRlcm5ldC1kcmFmdHNAaWV0Zi5vcmc+IFtt
YWlsdG86aW50ZXJuZXQtZHJhZnRzQGlldGYub3JnPG1haWx0bzppbnRlcm5ldC1kcmFmdHNAaWV0
Zi5vcmc+XQ0KU2VudDogTW9uZGF5LCBKYW51YXJ5IDA0LCAyMDE2IDEyOjA0IFBNDQpUbzogU3Vz
YW4gSGFyZXM7IFFpbiBXdTsgUnVzcyBXaGl0ZQ0KU3ViamVjdDogTmV3IFZlcnNpb24gTm90aWZp
Y2F0aW9uIGZvciBkcmFmdC1oYXJlcy1pMnJzLWJucC1lY2EtZGF0YS1tb2RlbC0wMy50eHQNCg0K
DQpBIG5ldyB2ZXJzaW9uIG9mIEktRCwgZHJhZnQtaGFyZXMtaTJycy1ibnAtZWNhLWRhdGEtbW9k
ZWwtMDMudHh0DQpoYXMgYmVlbiBzdWNjZXNzZnVsbHkgc3VibWl0dGVkIGJ5IFN1c2FuIEhhcmVz
IGFuZCBwb3N0ZWQgdG8gdGhlIElFVEYgcmVwb3NpdG9yeS4NCg0KTmFtZTogICAgICAgICAgIGRy
YWZ0LWhhcmVzLWkycnMtYm5wLWVjYS1kYXRhLW1vZGVsDQpSZXZpc2lvbjogICAgICAgMDMNClRp
dGxlOiAgICAgICAgICBBbiBJbmZvcm1hdGlvbiBNb2RlbCBmb3IgQmFzaWMgTmV0d29yayBQb2xp
Y3kgYW5kIEZpbHRlciBSdWxlcw0KRG9jdW1lbnQgZGF0ZTogIDIwMTYtMDEtMDQNCkdyb3VwOiAg
ICAgICAgICBJbmRpdmlkdWFsIFN1Ym1pc3Npb24NClBhZ2VzOiAgICAgICAgICAzMA0KVVJMOiAg
ICAgICAgICAgIGh0dHBzOi8vd3d3LmlldGYub3JnL2ludGVybmV0LWRyYWZ0cy9kcmFmdC1oYXJl
cy1pMnJzLWJucC1lY2EtZGF0YS1tb2RlbC0wMy50eHQNClN0YXR1czogICAgICAgICBodHRwczov
L2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9kcmFmdC1oYXJlcy1pMnJzLWJucC1lY2EtZGF0YS1t
b2RlbC8NCkh0bWxpemVkOiAgICAgICBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQt
aGFyZXMtaTJycy1ibnAtZWNhLWRhdGEtbW9kZWwtMDMNCkRpZmY6ICAgICAgICAgICBodHRwczov
L3d3dy5pZXRmLm9yZy9yZmNkaWZmP3VybDI9ZHJhZnQtaGFyZXMtaTJycy1ibnAtZWNhLWRhdGEt
bW9kZWwtMDMNCg0KQWJzdHJhY3Q6DQogICAgVGhpcyBkb2N1bWVudCBjb250YWlucyB0aGUgQmFz
aWMgTmV0d29yayBQb2xpY3kgYW5kIEZpbHRlcnMgKEJOUCBJTSkNCiAgICBEYXRhIE1vZGVsIHdo
aWNoIHByb3ZpZGVzIGEgcG9saWN5IG1vZGVsIHRoYXQgc3VwcG9ydCBhbiBvcmRlcmVkIGxpc3QN
CiAgICBvZiBtYXRjaC1jb25kaXRpb24tYWN0aW9uIChha2EgZXZlbnQtY29uZGl0aW9uLWFjdGlv
biAoRUNBKSkgZm9yDQogICAgbXVsdGlwbGUgbGF5ZXJzIChpbnRlcmZhY2UsIEwxLUw0LCBhcHBs
aWNhdGlvbikgYW5kIG90aGVyIGZhY3RvcnMNCiAgICAoc2l6ZSBvZiBwYWNrZXQsIHRpbWUgb2Yg
ZGF5KS4gIFRoZSBhY3Rpb25zIGFsbG93IGZvciBzZXR0aW5nIGFjdGlvbnMNCiAgICAoUU9TIGFu
ZCBvdGhlciksIGRlY2Fwc3VsYXRpb24sIGVuY2Fwc3VsYXRpb24sIHBsdXMgZm9yd2FyZGluZw0K
ICAgIGFjdGlvbnMuICBUaGUgcG9saWN5IG1vZGVsIGNhbiBiZSB1c2VkIHdpdGggdGhlIEkyUlMg
ZmlsdGVyLWJhc2VkDQogICAgUklCLg0KDQoNCg0KDQpQbGVhc2Ugbm90ZSB0aGF0IGl0IG1heSB0
YWtlIGEgY291cGxlIG9mIG1pbnV0ZXMgZnJvbSB0aGUgdGltZSBvZiBzdWJtaXNzaW9uIHVudGls
IHRoZSBodG1saXplZCB2ZXJzaW9uIGFuZCBkaWZmIGFyZSBhdmFpbGFibGUgYXQgdG9vbHMuaWV0
Zi5vcmc8aHR0cDovL3Rvb2xzLmlldGYub3JnPi4NCg0KVGhlIElFVEYgU2VjcmV0YXJpYXQNCg0K
DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KaTJycyBt
YWlsaW5nIGxpc3QNCmkycnNAaWV0Zi5vcmc8bWFpbHRvOmkycnNAaWV0Zi5vcmc+DQpodHRwczov
L3d3dy5pZXRmLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2kycnMNCg0KX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18NClN1cGEgbWFpbGluZyBsaXN0DQpTdXBhQGll
dGYub3JnPG1haWx0bzpTdXBhQGlldGYub3JnPg0KaHR0cHM6Ly93d3cuaWV0Zi5vcmcvbWFpbG1h
bi9saXN0aW5mby9zdXBhDQoNCg0KDQotLQ0KcmVnYXJkcywNCkpvaG4NCg==

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

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTIgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
Pg0KPCEtLQ0KIC8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCiBAZm9udC1mYWNlDQoJe2ZvbnQtZmFt
aWx5OldpbmdkaW5nczsNCglwYW5vc2UtMTo1IDAgMCAwIDAgMCAwIDAgMCAwO30NCkBmb250LWZh
Y2UNCgl7Zm9udC1mYW1pbHk6IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQg
NiAzIDIgNDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6
MiAxNSA1IDIgMiAyIDQgMyAyIDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpUYWhvbWE7
DQoJcGFub3NlLTE6MiAxMSA2IDQgMyA1IDQgNCAyIDQ7fQ0KIC8qIFN0eWxlIERlZmluaXRpb25z
ICovDQogcC5Nc29Ob3JtYWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbA0KCXttYXJnaW46
MGluOw0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCglmb250LXNpemU6MTIuMHB0Ow0KCWZvbnQt
ZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iLCJzZXJpZiI7fQ0KYTpsaW5rLCBzcGFuLk1zb0h5cGVy
bGluaw0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6Ymx1ZTsNCgl0ZXh0LWRlY29y
YXRpb246dW5kZXJsaW5lO30NCmE6dmlzaXRlZCwgc3Bhbi5Nc29IeXBlcmxpbmtGb2xsb3dlZA0K
CXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6cHVycGxlOw0KCXRleHQtZGVjb3JhdGlv
bjp1bmRlcmxpbmU7fQ0KcC5Nc29BY2V0YXRlLCBsaS5Nc29BY2V0YXRlLCBkaXYuTXNvQWNldGF0
ZQ0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNvLXN0eWxlLWxpbms6IkJhbGxvb24gVGV4
dCBDaGFyIjsNCgltYXJnaW46MGluOw0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCglmb250LXNp
emU6OC4wcHQ7DQoJZm9udC1mYW1pbHk6IlRhaG9tYSIsInNhbnMtc2VyaWYiO30NCnAuTXNvTGlz
dFBhcmFncmFwaCwgbGkuTXNvTGlzdFBhcmFncmFwaCwgZGl2Lk1zb0xpc3RQYXJhZ3JhcGgNCgl7
bXNvLXN0eWxlLXByaW9yaXR5OjM0Ow0KCW1hcmdpbi10b3A6MGluOw0KCW1hcmdpbi1yaWdodDow
aW47DQoJbWFyZ2luLWJvdHRvbTowaW47DQoJbWFyZ2luLWxlZnQ6LjVpbjsNCgltYXJnaW4tYm90
dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3
IFJvbWFuIiwic2VyaWYiO30NCnNwYW4uQmFsbG9vblRleHRDaGFyDQoJe21zby1zdHlsZS1uYW1l
OiJCYWxsb29uIFRleHQgQ2hhciI7DQoJbXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1zdHls
ZS1saW5rOiJCYWxsb29uIFRleHQiOw0KCWZvbnQtZmFtaWx5OiJUYWhvbWEiLCJzYW5zLXNlcmlm
Ijt9DQpzcGFuLkVtYWlsU3R5bGUxOQ0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbDsNCglmb250
LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiOw0KCWNvbG9yOiMxRjQ5N0Q7fQ0Kc3Bhbi5F
bWFpbFN0eWxlMjANCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWwtcmVwbHk7DQoJZm9udC1mYW1p
bHk6IkNhbGlicmkiLCJzYW5zLXNlcmlmIjsNCgljb2xvcjojMUY0OTdEO30NCi5Nc29DaHBEZWZh
dWx0DQoJe21zby1zdHlsZS10eXBlOmV4cG9ydC1vbmx5Ow0KCWZvbnQtc2l6ZToxMC4wcHQ7fQ0K
QHBhZ2UgU2VjdGlvbjENCgl7c2l6ZTo4LjVpbiAxMS4waW47DQoJbWFyZ2luOjEuMGluIDEuMGlu
IDEuMGluIDEuMGluO30NCmRpdi5TZWN0aW9uMQ0KCXtwYWdlOlNlY3Rpb24xO30NCiAvKiBMaXN0
IERlZmluaXRpb25zICovDQogQGxpc3QgbDANCgl7bXNvLWxpc3QtaWQ6MjAwNzg1OTA0NjsNCglt
c28tbGlzdC10eXBlOmh5YnJpZDsNCgltc28tbGlzdC10ZW1wbGF0ZS1pZHM6MTUyMzM1ODQxMiA2
NzY5ODY4OSA2NzY5ODY5MSA2NzY5ODY5MyA2NzY5ODY4OSA2NzY5ODY5MSA2NzY5ODY5MyA2NzY5
ODY4OSA2NzY5ODY5MSA2NzY5ODY5Mzt9DQpAbGlzdCBsMDpsZXZlbDENCgl7bXNvLWxldmVsLW51
bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFi
LXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJbWFyZ2luLWxl
ZnQ6NDMuMHB0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0K
b2wNCgl7bWFyZ2luLWJvdHRvbTowaW47fQ0KdWwNCgl7bWFyZ2luLWJvdHRvbTowaW47fQ0KLS0+
DQo8L3N0eWxlPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KIDxvOnNoYXBlZGVmYXVsdHMgdjpl
eHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYiIC8+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0
ZSBtc28gOV0+PHhtbD4NCiA8bzpzaGFwZWxheW91dCB2OmV4dD0iZWRpdCI+DQogIDxvOmlkbWFw
IHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPg0KIDwvbzpzaGFwZWxheW91dD48L3htbD48IVtlbmRp
Zl0tLT4NCjwvaGVhZD4NCjxib2R5IGxhbmc9IkVOLVVTIiBsaW5rPSJibHVlIiB2bGluaz0icHVy
cGxlIj4NCjxkaXYgY2xhc3M9IlNlY3Rpb24xIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
JnF1b3Q7c2Fucy1zZXJpZiZxdW90OzsNCmNvbG9yOiMxRjQ5N0QiPkhpIFN1ZSw8bzpwPjwvbzpw
Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYm
cXVvdDs7DQpjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7DQpjb2xvcjojMUY0
OTdEIj5Zb3UgYXJlIGNvcnJlY3QsIGl0IGlzIGEgdmVyeSBzaW1wbGUgY2FzZSwgd2l0aCBvbmUg
dHlwZSBvZiBldmVudC4gJm5ic3A7Jm5ic3A7Sm9lbCBpbmRpY2F0ZWQgZmxhd3MgaW4gdGhlIGRv
Y3VtZW50IHRoYXQgaXQgZGlkIG5vdCBpbmRpY2F0ZSB0aGUgZXZlbnQgd2FzIGEg4oCccGFja2V0
DQogcmVjZXB0aW9u4oCdLiZuYnNwOyBBdCB0aGlzIHBvaW50LCBpdCBzb3VuZHMgbGlrZSB5b3Ug
YW5kIEpvZWwgYXJlIHN1Z2dlc3RpbmcgdGhhdCB0aGlzIHBhcnRpY3VsYXIgc2ltcGxpc3RpYyBj
YXNlIG9mIEV2ZW50LUNvbmRpdGlvbi1BY3Rpb24gaXMgT0sgdG8gZ28gZm9yd2FyZCB3aXRoIGlu
IHRoZSBJMlJTIChmb3IgZXBoZW1lcmFsIHN0YXRlKSwgYW5kIGluIGFwcHJvcHJpYXRlIFdHIGZv
ciB0aGUgbm9uLWVwaGVtZXJhbCBjYXNlLiZuYnNwOyBJcyB0aGlzIGNvcnJlY3Q/DQo8bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2Vy
aWYmcXVvdDs7DQpjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7DQpjb2xvcjoj
MUY0OTdEIj4mbHQ7amNzJmd0OzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OzsNCmNvbG9yOiMxRjQ5N0QiPkFzIGxv
bmcgYXMgaXQgaXMgY2xhcmlmaWVkIHRoYXQgdGhlcmUgaXMsIGluIGZhY3QsIGFuIGV2ZW50LCB0
aGVuIEkgdGhpbmsgdGhhdCBpdCBpcyBmaW5lLiBOb3RlIHRoYXQgaXQgc2hvdWxkIGFsc28gYmUg
Y2xhcmlmaWVkIHRoYXQgaWYgdGhlIEV2ZW50IGlzIG5vdA0KIHJlY2VpdmVkLCB0aGVuIHRoZSBj
b25kaXRpb24gY2xhdXNlIGNhbiBuZXZlciBiZSBldmFsdWF0ZWQuPG86cD48L286cD48L3NwYW4+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ow0K
Y29sb3I6IzFGNDk3RCI+Jmx0Oy9qY3MmZ3Q7PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ow0KY29sb3I6IzFGNDk3
RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90
OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ow0KY29sb3I6IzFGNDk3RCI+QXQgSUVURiA5NCwgSSB3
YXMgc2ltcGx5IGNvbXBhcmluZyBDaGVu4oCZcyBkb2N1bWVudCB2ZXJzdXMgdGhpcyB2ZXJ5IHNp
bXBsZSBjYXNlIG9mIGFuIEVDQS4gJm5ic3A7SSBkaWQgbm90IG1lYW4gdG8gaW1wbHkgaXQgd2Fz
IHRoZSBvbmx5IHBvc3NpYmxlIEVDQSBjYXNlLiZuYnNwOyAmbmJzcDtJDQogbG9vayBmb3J3YXJk
IHRvIGhlYXJpbmcgZnJvbSB0aGUgU1VQQSBsaXN0IHJlZ2FyZGluZyB0aGUgZ2VuZXJpYyBFQ0Eg
aW5mb3JtYXRpb24gbW9kZWwgYW5kIHRoZSBkaWZmZXJlbnQgdHlwZXMgb2YgRUNBLiAmbmJzcDs8
bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3Nh
bnMtc2VyaWYmcXVvdDs7DQpjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7DQpj
b2xvcjojMUY0OTdEIj4mbHQ7amNzJmd0OzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OzsNCmNvbG9yOiMxRjQ5N0Qi
PlRoYXQncyB3aGF0IGNvbmZ1c2VkIG1lIC0gdGhlIGNoZW4gZG9jdW1lbnQgZGlkIGhhdmUgZXZl
bnQgbm9kZXMgaW4gaXQsIGFuZCB5b3VyIGRyYWZ0IGRpZG4ndC4gVGhhdCBiZWluZyBzYWlkLCB0
aGVyZSBhcmUgbWFueSB3YXlzIHRvIGRlZmluZSBFdmVudHMuIElmIHlvdQ0KIGxvb2sgYXQgdGhl
IFNVUEEgbW9kZWwsIHlvdSB3aWxsIHNlZSB0aGUgZm9sbG93aW5nIGV4ZW1wbGFyIG1ldGhvZHM6
PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtz
YW5zLXNlcmlmJnF1b3Q7Ow0KY29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+
PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiIHN0eWxlPSJtYXJnaW4tbGVmdDo0My4w
cHQ7dGV4dC1pbmRlbnQ6LS4yNWluOw0KbXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzEiPg0KPCFbaWYg
IXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7DQpmb250LWZhbWls
eTpTeW1ib2w7Y29sb3I6IzFGNDk3RCI+PHNwYW4gc3R5bGU9Im1zby1saXN0Oklnbm9yZSI+wrc8
c3BhbiBzdHlsZT0iZm9udDo3LjBwdCAmcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDsiPiZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFuPjwvc3Bh
bj48L3NwYW4+PCFbZW5kaWZdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OzsNCmNvbG9yOiMx
RjQ5N0QiPnlvdSBjYW4gZGVmaW5lIGEgY2xhdXNlLCBvZiB0aGUgY2Fub25pY2FsIGZvcm0ge3Zh
cmlhYmxlLCBvcGVyYXRvciwgdmFsdWV9LCB0byByZXByZXNlbnQgYW4gZXZlbnQgKGUuZy4sIHRp
bWUgPT0gMDg6MDBhbSk8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBh
cmFncmFwaCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjQzLjBwdDt0ZXh0LWluZGVudDotLjI1aW47DQpt
c28tbGlzdDpsMCBsZXZlbDEgbGZvMSI+DQo8IVtpZiAhc3VwcG9ydExpc3RzXT48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDsNCmZvbnQtZmFtaWx5OlN5bWJvbDtjb2xvcjojMUY0OTdEIj48
c3BhbiBzdHlsZT0ibXNvLWxpc3Q6SWdub3JlIj7CtzxzcGFuIHN0eWxlPSJmb250OjcuMHB0ICZx
dW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oywm
cXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ow0KY29sb3I6IzFGNDk3RCI+eW91IGNhbiB1c2UgYW4gRXZl
bnQgb2JqZWN0IGFzIHRoZSB2YXJpYWJsZSBvciB0aGUgdmFsdWUgaW4gdGhlIGFib3ZlIGNsYXVz
ZSAoZS5nLiwgdXNlIG9uZSBvciBtb3JlIGF0dHJpYnV0ZXMgZnJvbSBvbmUgb3IgbW9yZSBFdmVu
dCBvYmplY3RzIGluDQogdGhlIGNvbXBhcmlzb24gY2xhdXNlKTxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBzdHlsZT0ibWFyZ2luLWxlZnQ6NDMuMHB0
O3RleHQtaW5kZW50Oi0uMjVpbjsNCm1zby1saXN0OmwwIGxldmVsMSBsZm8xIj4NCjwhW2lmICFz
dXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ow0KZm9udC1mYW1pbHk6
U3ltYm9sO2NvbG9yOiMxRjQ5N0QiPjxzcGFuIHN0eWxlPSJtc28tbGlzdDpJZ25vcmUiPsK3PHNw
YW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4mbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj48L3NwYW4+
PC9zcGFuPjwhW2VuZGlmXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7DQpjb2xvcjojMUY0
OTdEIj55b3UgY2FuIHVzZSBhIENvbGxlY3Rpb24gYXR0cmlidXRlcyB0byBjb2xsZWN0IGV2ZW50
cyBmb3IgYWdncmVnYXRpb24sIGZpbHRlcmluZywgYW5kL29yIGNvcnJlbGF0aW9uIG9wZXJhdGlv
bnMgYXMgcGFydCBvZiB0aGUgZXZlbnQgY2xhdXNlIHByb2Nlc3Npbmc8bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjQz
LjBwdDt0ZXh0LWluZGVudDotLjI1aW47DQptc28tbGlzdDpsMCBsZXZlbDEgbGZvMSI+DQo8IVtp
ZiAhc3VwcG9ydExpc3RzXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDsNCmZvbnQtZmFt
aWx5OlN5bWJvbDtjb2xvcjojMUY0OTdEIj48c3BhbiBzdHlsZT0ibXNvLWxpc3Q6SWdub3JlIj7C
tzxzcGFuIHN0eWxlPSJmb250OjcuMHB0ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9z
cGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ow0KY29sb3I6
IzFGNDk3RCI+eW91IGNhbiBlbmNvZGUgdGhlIGVudGlyZSBldmVudCBleHByZXNzaW9uIGludG8g
YW4gYXR0cmlidXRlPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ow0KY29sb3I6IzFGNDk3RCI+Jmx0Oy9qY3MmZ3Q7
PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtz
YW5zLXNlcmlmJnF1b3Q7Ow0KY29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ow0K
Y29sb3I6IzFGNDk3RCI+cmVnYXJkcyw8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7DQpjb2xvcjojMUY0OTdEIj5K
b2huPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVv
dDtzYW5zLXNlcmlmJnF1b3Q7Ow0KY29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3Nw
YW4+PC9wPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10b3A6c29saWQg
I0I1QzRERiAxLjBwdDtwYWRkaW5nOjMuMHB0IDBpbiAwaW4gMGluIj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O1RhaG9tYSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5Gcm9tOjwvc3Bhbj48L2I+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7
LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPiBTdXBhIFttYWlsdG86c3VwYS1ib3VuY2VzQGlldGYu
b3JnXQ0KPGI+T24gQmVoYWxmIE9mIDwvYj5TdXNhbiBIYXJlczxicj4NCjxiPlNlbnQ6PC9iPiBX
ZWRuZXNkYXksIEphbnVhcnkgMDYsIDIwMTYgNjoxMyBBTTxicj4NCjxiPlRvOjwvYj4gJ0pvaG4g
U3RyYXNzbmVyJzsgJ0pvZWwgTS4gSGFscGVybic8YnI+DQo8Yj5DYzo8L2I+IGkycnNAaWV0Zi5v
cmc7IG5ldG1vZEBpZXRmLm9yZzsgc3VwYUBpZXRmLm9yZzxicj4NCjxiPlN1YmplY3Q6PC9iPiBS
ZTogW1N1cGFdIFtpMnJzXSBGVzogTmV3IFZlcnNpb24gTm90aWZpY2F0aW9uIGZvciBkcmFmdC1o
YXJlcy1pMnJzLWJucC1lY2EtZGF0YS1tb2RlbC0wMy50eHQ8bzpwPjwvbzpwPjwvc3Bhbj48L3A+
DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7DQpj
b2xvcjojMUY0OTdEIj5Kb2huOg0KPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ow0KY29sb3I6IzFGNDk3RCI+PG86
cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVv
dDtzYW5zLXNlcmlmJnF1b3Q7Ow0KY29sb3I6IzFGNDk3RCI+VGhhbmsgeW91IGZvciB5b3VyIHJl
c3BvbnNlLiAmbmJzcDsmbmJzcDtGb3IgZmlsdGVyLWJhc2VkIEZJQiwNCjxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90
OzsNCmNvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OzsNCmNvbG9yOiMxRjQ5N0Qi
PkV2ZW50ID0gcmVjZWl2aW5nIHBhY2tldCBpbmZvcm1hdGlvbiBvbiB0aGUgaW50ZXJmYWNlDQo8
bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3Nh
bnMtc2VyaWYmcXVvdDs7DQpjb2xvcjojMUY0OTdEIj5Db25kaXRpb24gPSBtYXRjaCBvbiBhIHZh
cmlldHkgb2YgY29uZGl0aW9ucyAoc2VlIHRoZSBkcmFmdCkNCjxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OzsNCmNv
bG9yOiMxRjQ5N0QiPkFjdGlvbiA9IGEgY2hvaWNlIG9mIGFjdGlvbnMgbW9kaWZ5IHBhY2tldCwg
Zm9yd2FyZC9kcm9wIHBhY2tldCwgYW5kIGNvdW50IHBhY2tldC48bzpwPjwvbzpwPjwvc3Bhbj48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7DQpj
b2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7DQpjb2xvcjojMUY0OTdEIj5Zb3Ug
YXJlIGNvcnJlY3QsIGl0IGlzIGEgdmVyeSBzaW1wbGUgY2FzZSwgd2l0aCBvbmUgdHlwZSBvZiBl
dmVudC4gJm5ic3A7Jm5ic3A7Sm9lbCBpbmRpY2F0ZWQgZmxhd3MgaW4gdGhlIGRvY3VtZW50IHRo
YXQgaXQgZGlkIG5vdCBpbmRpY2F0ZSB0aGUgZXZlbnQgd2FzIGEg4oCccGFja2V0DQogcmVjZXB0
aW9u4oCdLiZuYnNwOyBBdCB0aGlzIHBvaW50LCBpdCBzb3VuZHMgbGlrZSB5b3UgYW5kIEpvZWwg
YXJlIHN1Z2dlc3RpbmcgdGhhdCB0aGlzIHBhcnRpY3VsYXIgc2ltcGxpc3RpYyBjYXNlIG9mIEV2
ZW50LUNvbmRpdGlvbi1BY3Rpb24gaXMgT0sgdG8gZ28gZm9yd2FyZCB3aXRoIGluIHRoZSBJMlJT
IChmb3IgZXBoZW1lcmFsIHN0YXRlKSwgYW5kIGluIGFwcHJvcHJpYXRlIFdHIGZvciB0aGUgbm9u
LWVwaGVtZXJhbCBjYXNlLiZuYnNwOyBJcyB0aGlzIGNvcnJlY3Q/DQo8bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7
DQpjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7DQpjb2xvcjojMUY0OTdEIj5B
dCBJRVRGIDk0LCBJIHdhcyBzaW1wbHkgY29tcGFyaW5nIENoZW7igJlzIGRvY3VtZW50IHZlcnN1
cyB0aGlzIHZlcnkgc2ltcGxlIGNhc2Ugb2YgYW4gRUNBLiAmbmJzcDtJIGRpZCBub3QgbWVhbiB0
byBpbXBseSBpdCB3YXMgdGhlIG9ubHkgcG9zc2libGUgRUNBIGNhc2UuJm5ic3A7ICZuYnNwO0kN
CiBsb29rIGZvcndhcmQgdG8gaGVhcmluZyBmcm9tIHRoZSBTVVBBIGxpc3QgcmVnYXJkaW5nIHRo
ZSBnZW5lcmljIEVDQSBpbmZvcm1hdGlvbiBtb2RlbCBhbmQgdGhlIGRpZmZlcmVudCB0eXBlcyBv
ZiBFQ0EuICZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm
cXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OzsNCmNvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7
PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1z
ZXJpZiZxdW90OzsNCmNvbG9yOiMxRjQ5N0QiPlN1ZQ0KPG86cD48L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ow0KY29sb3I6
IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFo
b21hJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPkZyb206PC9zcGFuPjwvYj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDssJnF1
b3Q7c2Fucy1zZXJpZiZxdW90OyI+IFN1cGEgW21haWx0bzpzdXBhLWJvdW5jZXNAaWV0Zi5vcmdd
DQo8Yj5PbiBCZWhhbGYgT2YgPC9iPkpvaG4gU3RyYXNzbmVyPGJyPg0KPGI+U2VudDo8L2I+IFR1
ZXNkYXksIEphbnVhcnkgMDUsIDIwMTYgMTA6MTIgUE08YnI+DQo8Yj5Ubzo8L2I+IEpvZWwgTS4g
SGFscGVybjxicj4NCjxiPkNjOjwvYj4gaTJyc0BpZXRmLm9yZzsgc3VwYUBpZXRmLm9yZzsgbmV0
bW9kQGlldGYub3JnOyBTdXNhbiBIYXJlczxicj4NCjxiPlN1YmplY3Q6PC9iPiBSZTogW1N1cGFd
IFtpMnJzXSBGVzogTmV3IFZlcnNpb24gTm90aWZpY2F0aW9uIGZvciBkcmFmdC1oYXJlcy1pMnJz
LWJucC1lY2EtZGF0YS1tb2RlbC0wMy50eHQ8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+SGkgSm9lLCBldCBhbC4sPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZndDsgMSkgSXQgaXMgbm90IGNsZWFyIHRvIG1l
IHdoeSB0aGVyZSBpcyBhbnkgZGVwZW5kZW5jZSBvZiB0aGUgZmItcmliPG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mZ3Q7Jm5ic3A7ZGF0YSBtb2Rl
bCBvbiBhbiBlY2EgZGF0YSBtb2RlbC4mbmJzcDsgV2hpbGUgc3VwYSBkb2VzIGFsbG93IGZvcg0K
PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mZ3Q7
IHBvbGljeSBtb2RlbCB0byBiZSBzZW50IGRpcmVjdGx5IHRvIHRoZSByb3V0ZXIsIGl0IGFsc28g
YWxsb3dzIG1hbnk8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPiZndDsmbmJzcDtvdGhlciBjYXNlcy48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+RXhhY3RseS4gTW9yZSBwYXJ0aWN1bGFybHksIGlu
IHNjYW5uaW5nIHRoaXMgZHJhZnQsIEkgZmFpbCB0byBzZWUgaG93PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj50aGlzIGlzIGFuIGFjY2VwdGVkIGRl
ZmluaXRpb24gb2YgRUNBLiBJbiBwYXJ0aWN1bGFyLCB0aGVyZSBkb2Vzbid0PG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5zZWVtIHRvIGJlIGFueSBl
dmVudCBpbiB0aGUgcnVsZSBkZWZpbml0aW9uLjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5IZW5jZSwgSSB3b3VsZCBzdWdnZXN0IHRoYXQgeW91
IGFkZCB3b3JkaW5nIHRoYXQgc2F5cyB0aGF0IHRoaXMgaXM8bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPm9uZSBvZiBtYW55IHdheXMgdG8gYnVpbGQg
c3VjaCBhIG1hcHBpbmcuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+Jmd0OyZuYnNwOzIpIFRoZSBhcHByb2FjaCB3aXRoIHRoZSBzdXBhIGVj
YSBkYXRhIG1vZGVsIGlzIHN0aWxsIHVuZGVyPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mZ3Q7Jm5ic3A7ZGV2ZWxvcG1lbnQuPG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpw
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkFic29sdXRlbHkgYWdy
ZWUuIEluIHBhcnRpY3VsYXIsIGRyYWZ0LWNoZW4gd2FzIHRoZSBmaXJzdCBhdHRlbXB0IGF0PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj50cnlpbmcg
dG8gY29uY2VwdHVhbGl6ZSB3aGF0IHN1Y2ggYSBkYXRhIG1vZGVsIHNob3VsZCBsb29rIGxpa2Uu
PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpw
PiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZn
dDsmbmJzcDsgSGF2aW5nIHNhaWQgdGhhdCwgdGhlIG1hdGVyaWFsIGluIHRoZXJlIGlzIGludGVu
ZGVkIHRvIGJlIHZlcnk8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPiZndDsmbmJzcDtnZW5lcmFsLjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5JRkYgeW91IG1lYW4gdGhlIFNVUEEgaW5mbyBtb2Rl
bCwgdGhlbiBhYnNvbHV0ZWx5IChvdGhlcndpc2UsPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5pdCBoYXMgZmFpbGVkIGluIGl0cyBwcmltYXJ5IG1p
c3Npb24gb2YgcHJvdmlkaW5nIGFuIGV4dGVuc2libGU8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPmZyYW1ld29yayB0byBkZWZpbmUgcG9saWNpZXMp
LjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86
cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5J
RkYgeW91IG1lYW4gZHJhZnQtY2hlbiwgdGhlbiZuYnNwO0kgdGhpbmsgaXQmbmJzcDthZ3JlZXMg
d2l0aCB0aGUgc3Bpcml0IG9mPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj53aGF0IHlvdSBzYWlkLiBJIHRoaW5rIHRoYXQgd2UgbmVlZCB0byBkaXNj
dXNzIGhvdyB0byBtYXAgZnJvbTxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+YW4gaW5mbyBtb2RlbCB0byBhIGRhdGEgbW9kZWwmbmJzcDtpbiBtb3Jl
IGRldGFpbCBiZWZvcmUgd2UgY29tZSB0bzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+YW55IGNvbmNsdXNpb25zIG9mIGl0cyBlZmZpY2FjeS48bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5i
c3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmd0OyZu
YnNwOyBGcm9tIHdoYXQgSSB1bmRlcnN0YW5kLCB0aGVyZSBzaG91bGQgYmUgbm8gZGlmZmljdWx0
eSBpbjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
Jmd0OyZuYnNwO3JlZmluaW5nIHRoZSBhY3Rpb24gc2lkZSBvZiB0aGF0IG1vZGVsIHRvIGFjdGlv
bnMgd2hpY2ggYWZmZWN0PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj4mZ3Q7Jm5ic3A7dGhlIGZiLXJpYiBpbiB3YXlzIHRoYXQgYXJlIGNvbnNpc3Rl
bnQgd2l0aCB0aGUgZmItZGliIGRhdGEgbW9kZWwuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiYjNDM7MS4gSW4gZmFjdCwgdGhlIHdob2xlIHBv
aW50IG9mIFNVUEEgaXMgdG8gcHJvdmlkZSBkaWZmZXJlbnQgd2F5czxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+b2YgZm9ybWluZyBhbiBFQ0EgcG9s
aWN5IHJ1bGUgdG8gbWVldCBkaWZmZXJlbnQgZGVtYW5kcyBvZiB0aGU8bzpwPjwvbzpwPjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPnVzZXIuIE1vcmUgcGFydGljdWxh
cmx5LCBhdCBJRVRGOTQsIHlvdSAoU3VlKSBhc3N1bWVkIHRoYXQgYW48bzpwPjwvbzpwPjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkVDQSBwb2xpY3kgcnVsZSB3YXMg
bWFkZSB1cCBvZiBFdmVudCwgQ29uZGl0aW9uLCBhbmQgQWN0aW9uPG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5vYmplY3RzLiBXaGlsZSB0aGF0IGlz
IGNlcnRhaW5seSBvbmUgYWx0ZXJuYXRpdmUsIHRoZXJlIGFyZSBvdGhlcnM8bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPmFzIHdlbGwuIEluIGFkZGl0
aW9uLCBwbGVhc2Ugbm90ZSB0aGF0IHRoZSBwcmVzZW5jZSBvZiB0aGVzZTxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+b2JqZWN0cyBpcyBOT1Qgc3Vm
ZmljaWVudCB0byBidWlsZCBhbiBFQ0EgcG9saWN5IHJ1bGUgKGUuZy4sIHRoZTxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+RXZlbnQgb2JqZWN0IG5l
ZWRzIGFuIGF0dHJpYnV0ZSAob3IgbXVsdGlwbGUgYXR0cmlidXRlcykgdG8gYmUNCjxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Y29tcGFyZWQgdG8g
c29tZXRoaW5nIGluIG9yZGVyIHRvIGRldGVybWluZSBpZiB0aGUgZXZlbnQgPG86cD4NCjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkNMQVVTRSBldmFsdWF0
ZXMgdG8gVFJVRSBvciBub3QuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+cmVnYXJkcyw8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPkpvaG48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+T24gTW9uLCBKYW4gNCwgMjAxNiBhdCAxMjo1MyBQTSwg
Sm9lbCBNLiBIYWxwZXJuICZsdDs8YSBocmVmPSJtYWlsdG86am1oQGpvZWxoYWxwZXJuLmNvbSIg
dGFyZ2V0PSJfYmxhbmsiPmptaEBqb2VsaGFscGVybi5jb208L2E+Jmd0OyB3cm90ZTo8bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkkgdGhpbmsgdGhlcmUgYXJlIHR3byBpc3N1
ZXMgaGVyZS48YnI+DQo8YnI+DQoxKSBJdCBpcyBub3QgY2xlYXIgdG8gbWUgd2h5IHRoZXJlIGlz
IGFueSBkZXBlbmRlbmNlIG9mIHRoZSBmYi1yaWIgZGF0YSBtb2RlbCBvbiBhbiBlY2EgZGF0YSBt
b2RlbC4mbmJzcDsgV2hpbGUgc3VwYSBkb2VzIGFsbG93IGZvciBwb2xpY3kgbW9kZWwgdG8gYmUg
c2VudCBkaXJlY3RseSB0byB0aGUgcm91dGVyLCBpdCBhbHNvIGFsbG93cyBtYW55IG90aGVyIGNh
c2VzLjxicj4NCjxicj4NCjIpIFRoZSBhcHByb2FjaCB3aXRoIHRoZSBzdXBhIGVjYSBkYXRhIG1v
ZGVsIGlzIHN0aWxsIHVuZGVyIGRldmVsb3BtZW50LiZuYnNwOyBIYXZpbmcgc2FpZCB0aGF0LCB0
aGUgbWF0ZXJpYWwgaW4gdGhlcmUgaXMgaW50ZW5kZWQgdG8gYmUgdmVyeSBnZW5lcmFsLiZuYnNw
OyBGcm9tIHdoYXQgSSB1bmRlcnN0YW5kLCB0aGVyZSBzaG91bGQgYmUgbm8gZGlmZmljdWx0eSBp
biByZWZpbmluZyB0aGUgYWN0aW9uIHNpZGUgb2YgdGhhdCBtb2RlbCB0byBhY3Rpb25zIHdoaWNo
DQogYWZmZWN0IHRoZSBmYi1yaWIgaW4gd2F5cyB0aGF0IGFyZSBjb25zaXN0ZW50IHdpdGggdGhl
IGZiLWRpYiBkYXRhIG1vZGVsLjxicj4NCjxicj4NCllvdXJzLDxicj4NCkpvZWw8YnI+DQo8YnI+
DQpPbiAxLzQvMTYgMjowMSBQTSwgU3VzYW4gSGFyZXMgd3JvdGU6PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxMi4wcHQiPlRoaXMgbW9k
ZWwgcHJvdmlkZXMgYSBFdmVudC1Db25kaXRpb24tQWN0aW9uIChFQ0EpIHBvbGljeSBtb2RlbC48
YnI+DQpUaGUgSTJSUyBGQi1SSUIgeWFuZyBkYXRhIG1vZGVsIHV0aWxpemVzIHRoaXMgbW9kZWws
IGJ1dCB0byBteSBrbm93bGVkZ2UgdGhlPGJyPg0KTmV0bW9kIG9yIG5ldGNvbmYgaGFzIG5vdCBh
ZG9wdGVkIGFuIEVDQSBwb2xpY3kgbW9kZWwgdG88YnI+DQpwYXJhbGxlbCB0aGUgQUNMIG1vZGVs
Ljxicj4NCjxicj4NCkNoZW4gYW5kIGNvLWF1dGhvcnMgaGF2ZSBjcmVhdGVkIHRoZSBtb2RlbDo8
YnI+DQo8YnI+DQpkcmFmdC1jaGVuLXN1cGEtZWNhLWRhdGEtbW9kZWwtMDUudHh0PGJyPg0KPGJy
Pg0KQnV0IGl0IGRvZXMgbm90IGFsaWduIHdpdGggdGhpcyB5YW5nIG1vZGVsIG9yIHNlZW0gc3Vm
ZmljaWVudCB0bzxicj4NCnN1cHBvcnQgdGhlIEZCLVJJQiBpbmZvcm1hdGlvbiBtb2RlbC4mbmJz
cDsgJm5ic3A7QXQgSUVURiA5NCw8YnI+DQpJIHByZXNlbnRlZCBhIGRpc2N1c3Npb24gb2YgdGhl
IGlzc3VlcyBJIGZvdW5kIHdpdGggdGhlPGJyPg0KZHJhZnQtY2hlbi1zdXBhLWVjYS1kYXRhLW1v
ZGVsLTA1LnR4dCwgYnV0IGl0IGhhcyBub3QgYmVlbiB1cGRhdGVkLjxicj4NCldlIHdvdWxkIGFw
cHJlY2lhdGUgZmVlZGJhY2sgb24gdGhpcyB2ZXJzaW9uIG9mIHlhbmcgbW9kZWwuPGJyPg0KPGJy
Pg0KJmx0O2kycnMgQ2hhaXIgaGF0IG9uJmd0Ozxicj4NCkluIG15IHJvbGUgYXMgSTJSUyBjaGFp
ciwmbmJzcDsgSTJSUyBuZWVkcyB0byBtYWtlIHByb2dyZXNzIHNvb24gb24gdGhlPGJyPg0KSTJS
UyBGQi1SSUIgZGF0YSBtb2RlbC4mbmJzcDsgV2Ugd291bGQgYXBwcmVjaWF0ZSB5b3VyIGFpZC48
YnI+DQombHQ7aTJycyBjaGFpciBoYXQgb2ZmJmd0Ozxicj4NCjxicj4NClN1ZTxicj4NCjxicj4N
Ci0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tPGJyPg0KRnJvbTogPGEgaHJlZj0ibWFpbHRvOmlu
dGVybmV0LWRyYWZ0c0BpZXRmLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPmludGVybmV0LWRyYWZ0c0Bp
ZXRmLm9yZzwvYT4gW21haWx0bzo8YSBocmVmPSJtYWlsdG86aW50ZXJuZXQtZHJhZnRzQGlldGYu
b3JnIiB0YXJnZXQ9Il9ibGFuayI+aW50ZXJuZXQtZHJhZnRzQGlldGYub3JnPC9hPl08YnI+DQpT
ZW50OiBNb25kYXksIEphbnVhcnkgMDQsIDIwMTYgMTI6MDQgUE08YnI+DQpUbzogU3VzYW4gSGFy
ZXM7IFFpbiBXdTsgUnVzcyBXaGl0ZTxicj4NClN1YmplY3Q6IE5ldyBWZXJzaW9uIE5vdGlmaWNh
dGlvbiBmb3IgZHJhZnQtaGFyZXMtaTJycy1ibnAtZWNhLWRhdGEtbW9kZWwtMDMudHh0PGJyPg0K
PGJyPg0KPGJyPg0KQSBuZXcgdmVyc2lvbiBvZiBJLUQsIGRyYWZ0LWhhcmVzLWkycnMtYm5wLWVj
YS1kYXRhLW1vZGVsLTAzLnR4dDxicj4NCmhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBzdWJtaXR0ZWQg
YnkgU3VzYW4gSGFyZXMgYW5kIHBvc3RlZCB0byB0aGUgSUVURiByZXBvc2l0b3J5Ljxicj4NCjxi
cj4NCk5hbWU6Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtkcmFmdC1o
YXJlcy1pMnJzLWJucC1lY2EtZGF0YS1tb2RlbDxicj4NClJldmlzaW9uOiZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOzAzPGJyPg0KVGl0bGU6Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyBBbiBJbmZvcm1hdGlvbiBNb2RlbCBmb3IgQmFzaWMgTmV0d29yayBQb2xpY3kgYW5kIEZp
bHRlciBSdWxlczxicj4NCkRvY3VtZW50IGRhdGU6Jm5ic3A7IDIwMTYtMDEtMDQ8YnI+DQpHcm91
cDombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IEluZGl2aWR1YWwgU3VibWlzc2lv
bjxicj4NClBhZ2VzOiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMzA8YnI+DQpV
Ukw6Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgPGEgaHJlZj0iaHR0
cHM6Ly93d3cuaWV0Zi5vcmcvaW50ZXJuZXQtZHJhZnRzL2RyYWZ0LWhhcmVzLWkycnMtYm5wLWVj
YS1kYXRhLW1vZGVsLTAzLnR4dCIgdGFyZ2V0PSJfYmxhbmsiPg0KaHR0cHM6Ly93d3cuaWV0Zi5v
cmcvaW50ZXJuZXQtZHJhZnRzL2RyYWZ0LWhhcmVzLWkycnMtYm5wLWVjYS1kYXRhLW1vZGVsLTAz
LnR4dDwvYT48YnI+DQpTdGF0dXM6Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzxh
IGhyZWY9Imh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2RyYWZ0LWhhcmVzLWkycnMt
Ym5wLWVjYS1kYXRhLW1vZGVsLyIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vZGF0YXRyYWNrZXIu
aWV0Zi5vcmcvZG9jL2RyYWZ0LWhhcmVzLWkycnMtYm5wLWVjYS1kYXRhLW1vZGVsLzwvYT48YnI+
DQpIdG1saXplZDombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs8YSBocmVmPSJodHRwczovL3Rv
b2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaGFyZXMtaTJycy1ibnAtZWNhLWRhdGEtbW9kZWwtMDMi
IHRhcmdldD0iX2JsYW5rIj5odHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaGFyZXMt
aTJycy1ibnAtZWNhLWRhdGEtbW9kZWwtMDM8L2E+PGJyPg0KRGlmZjombmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzxhIGhyZWY9Imh0dHBzOi8vd3d3LmlldGYub3JnL3Jm
Y2RpZmY/dXJsMj1kcmFmdC1oYXJlcy1pMnJzLWJucC1lY2EtZGF0YS1tb2RlbC0wMyIgdGFyZ2V0
PSJfYmxhbmsiPmh0dHBzOi8vd3d3LmlldGYub3JnL3JmY2RpZmY/dXJsMj1kcmFmdC1oYXJlcy1p
MnJzLWJucC1lY2EtZGF0YS1tb2RlbC0wMzwvYT48YnI+DQo8YnI+DQpBYnN0cmFjdDo8YnI+DQom
bmJzcDsgJm5ic3A7IFRoaXMgZG9jdW1lbnQgY29udGFpbnMgdGhlIEJhc2ljIE5ldHdvcmsgUG9s
aWN5IGFuZCBGaWx0ZXJzIChCTlAgSU0pPGJyPg0KJm5ic3A7ICZuYnNwOyBEYXRhIE1vZGVsIHdo
aWNoIHByb3ZpZGVzIGEgcG9saWN5IG1vZGVsIHRoYXQgc3VwcG9ydCBhbiBvcmRlcmVkIGxpc3Q8
YnI+DQombmJzcDsgJm5ic3A7IG9mIG1hdGNoLWNvbmRpdGlvbi1hY3Rpb24gKGFrYSBldmVudC1j
b25kaXRpb24tYWN0aW9uIChFQ0EpKSBmb3I8YnI+DQombmJzcDsgJm5ic3A7IG11bHRpcGxlIGxh
eWVycyAoaW50ZXJmYWNlLCBMMS1MNCwgYXBwbGljYXRpb24pIGFuZCBvdGhlciBmYWN0b3JzPGJy
Pg0KJm5ic3A7ICZuYnNwOyAoc2l6ZSBvZiBwYWNrZXQsIHRpbWUgb2YgZGF5KS4mbmJzcDsgVGhl
IGFjdGlvbnMgYWxsb3cgZm9yIHNldHRpbmcgYWN0aW9uczxicj4NCiZuYnNwOyAmbmJzcDsgKFFP
UyBhbmQgb3RoZXIpLCBkZWNhcHN1bGF0aW9uLCBlbmNhcHN1bGF0aW9uLCBwbHVzIGZvcndhcmRp
bmc8YnI+DQombmJzcDsgJm5ic3A7IGFjdGlvbnMuJm5ic3A7IFRoZSBwb2xpY3kgbW9kZWwgY2Fu
IGJlIHVzZWQgd2l0aCB0aGUgSTJSUyBmaWx0ZXItYmFzZWQ8YnI+DQombmJzcDsgJm5ic3A7IFJJ
Qi48YnI+DQo8YnI+DQo8YnI+DQo8YnI+DQo8YnI+DQpQbGVhc2Ugbm90ZSB0aGF0IGl0IG1heSB0
YWtlIGEgY291cGxlIG9mIG1pbnV0ZXMgZnJvbSB0aGUgdGltZSBvZiBzdWJtaXNzaW9uIHVudGls
IHRoZSBodG1saXplZCB2ZXJzaW9uIGFuZCBkaWZmIGFyZSBhdmFpbGFibGUgYXQNCjxhIGhyZWY9
Imh0dHA6Ly90b29scy5pZXRmLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPnRvb2xzLmlldGYub3JnPC9h
Pi48YnI+DQo8YnI+DQpUaGUgSUVURiBTZWNyZXRhcmlhdDxicj4NCjxicj4NCjxicj4NCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPGJyPg0KaTJycyBtYWls
aW5nIGxpc3Q8YnI+DQo8YSBocmVmPSJtYWlsdG86aTJyc0BpZXRmLm9yZyIgdGFyZ2V0PSJfYmxh
bmsiPmkycnNAaWV0Zi5vcmc8L2E+PGJyPg0KPGEgaHJlZj0iaHR0cHM6Ly93d3cuaWV0Zi5vcmcv
bWFpbG1hbi9saXN0aW5mby9pMnJzIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly93d3cuaWV0Zi5v
cmcvbWFpbG1hbi9saXN0aW5mby9pMnJzPC9hPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PGJyPg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX188YnI+DQpTdXBhIG1haWxpbmcgbGlzdDxicj4NCjxhIGhyZWY9Im1haWx0bzpTdXBhQGll
dGYub3JnIiB0YXJnZXQ9Il9ibGFuayI+U3VwYUBpZXRmLm9yZzwvYT48YnI+DQo8YSBocmVmPSJo
dHRwczovL3d3dy5pZXRmLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3N1cGEiIHRhcmdldD0iX2JsYW5r
Ij5odHRwczovL3d3dy5pZXRmLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3N1cGE8L2E+PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxicj4NCjxiciBjbGVhcj0iYWxs
Ij4NCjxicj4NCi0tIDxvOnA+PC9vOnA+PC9wPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj5yZWdhcmRzLDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+Sm9objxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0K
PC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo=

--_000_B818037A70EDCC4A86113DA25EC02098201B9466SJCEML701CHMchi_--



From nobody Wed Jan  6 16:51:08 2016
Return-Path: <John.sc.Strassner@huawei.com>
X-Original-To: supa@ietfa.amsl.com
Delivered-To: supa@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CE5B31A21A7; Wed,  6 Jan 2016 16:51:03 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.21
X-Spam-Level: 
X-Spam-Status: No, score=-4.21 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
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 cLTpayH_HUw9; Wed,  6 Jan 2016 16:50:57 -0800 (PST)
Received: from lhrrgout.huawei.com (lhrrgout.huawei.com [194.213.3.17]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BFFA41A21A9; Wed,  6 Jan 2016 16:50:45 -0800 (PST)
Received: from 172.18.7.190 (EHLO lhreml402-hub.china.huawei.com) ([172.18.7.190]) by lhrrg02-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id CCO86899; Thu, 07 Jan 2016 00:50:43 +0000 (GMT)
Received: from LHREML708-CAH.china.huawei.com (10.201.5.202) by lhreml402-hub.china.huawei.com (10.201.5.241) with Microsoft SMTP Server (TLS) id 14.3.235.1; Thu, 7 Jan 2016 00:50:42 +0000
Received: from SJCEML702-CHM.china.huawei.com (10.218.25.35) by lhreml708-cah.china.huawei.com (10.201.5.202) with Microsoft SMTP Server (TLS) id 14.3.235.1; Thu, 7 Jan 2016 00:50:42 +0000
Received: from SJCEML701-CHM.china.huawei.com ([169.254.3.81]) by SJCEML702-CHM.china.huawei.com ([169.254.4.118]) with mapi id 14.03.0235.001;  Wed, 6 Jan 2016 16:50:39 -0800
From: John Strassner <John.sc.Strassner@huawei.com>
To: Susan Hares <shares@ndzh.com>, "'John Strassner'" <strazpdj@gmail.com>
Thread-Topic: [netmod] [Supa] [i2rs] FW: New Version Notification for draft-hares-i2rs-bnp-eca-data-model-03.txt
Thread-Index: AQHRR0AEWq+0Q6eGlUC48EIYXHelhZ7uXAaAgAFOggD//5Fl4A==
Date: Thu, 7 Jan 2016 00:50:38 +0000
Message-ID: <B818037A70EDCC4A86113DA25EC02098201B9472@SJCEML701-CHM.china.huawei.com>
References: <20160104170330.13929.73845.idtracker@ietfa.amsl.com> <006701d14722$616c6950$24453bf0$@ndzh.com> <568ADBE7.3030101@joelhalpern.com> <00b501d1473f$fef22990$fcd67cb0$@ndzh.com> <CAJwYUrHc=ynpL5-BS=_xMn-4L0B2mEO4RDRPnkyGQp5CEZzgXA@mail.gmail.com> <013001d148d9$770626d0$65127470$@ndzh.com>
In-Reply-To: <013001d148d9$770626d0$65127470$@ndzh.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.96.255.167]
Content-Type: multipart/alternative; boundary="_000_B818037A70EDCC4A86113DA25EC02098201B9472SJCEML701CHMchi_"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A020204.568DB663.0147, ss=1, re=0.000, recu=0.000, reip=0.000,  cl=1, cld=1, fgs=0, ip=169.254.3.81, so=2013-06-18 04:22:30, dmn=2013-03-21 17:37:32
X-Mirapoint-Loop-Id: 57dddf450da3b054edd93bf890d7e676
Archived-At: <http://mailarchive.ietf.org/arch/msg/supa/D9tPYJVBcaw_9iGg4b3PnxkGYw8>
Cc: "i2rs@ietf.org" <i2rs@ietf.org>, "netmod@ietf.org" <netmod@ietf.org>, "supa@ietf.org" <supa@ietf.org>
Subject: Re: [Supa] [netmod] [i2rs] FW: New Version Notification for draft-hares-i2rs-bnp-eca-data-model-03.txt
X-BeenThere: supa@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "This list is to discuss SUPA \(Simplified Use of Policy Abstractions\) related issues." <supa.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/supa>, <mailto:supa-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/supa/>
List-Post: <mailto:supa@ietf.org>
List-Help: <mailto:supa-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/supa>, <mailto:supa-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 07 Jan 2016 00:51:04 -0000

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

U3VlOg0KDQpJJ20gaGFwcHkgdG8gaGVscC4gSTJSUyBpcyBpbXBvcnRhbnQgd29yaywgYW5kIEkg
d291bGQgbGlrZSB0byBlbnN1cmUgdGhhdCBTVVBBIGNvdWxkIGhlbHAgeW91ciB3b3JrICh3aXRo
b3V0IGRlbGF5aW5nIGl0LCBvZiBjb3Vyc2UpLg0KDQpBbHNvLCBJJ20gaW50ZXJlc3RlZCBpbiB0
aGUgZGF0YSBtb2RlbHMgdGhhdCB5b3UgY29tZSB1cCB3aXRoLCBhcyB0aGV5IGFyZSBleGNlbGxl
bnQgZXhhbXBsZXMgb2Ygd2hhdCBTVVBBIG5lZWRzIHRvIHN1cHBvcnQuDQoNCnJlZ2FyZHMsDQpK
b2huDQoNCkZyb206IG5ldG1vZCBbbWFpbHRvOm5ldG1vZC1ib3VuY2VzQGlldGYub3JnXSBPbiBC
ZWhhbGYgT2YgU3VzYW4gSGFyZXMNClNlbnQ6IFdlZG5lc2RheSwgSmFudWFyeSAwNiwgMjAxNiAz
OjI1IFBNDQpUbzogJ0pvaG4gU3RyYXNzbmVyJw0KQ2M6IGkycnNAaWV0Zi5vcmc7IHN1cGFAaWV0
Zi5vcmc7IG5ldG1vZEBpZXRmLm9yZw0KU3ViamVjdDogUmU6IFtuZXRtb2RdIFtTdXBhXSBbaTJy
c10gRlc6IE5ldyBWZXJzaW9uIE5vdGlmaWNhdGlvbiBmb3IgZHJhZnQtaGFyZXMtaTJycy1ibnAt
ZWNhLWRhdGEtbW9kZWwtMDMudHh0DQoNCkpvaG46DQoNCllvdSBhcmUgY29ycmVjdCBpbiBpbmRp
Y2F0aW5nIHRoYXQgdGhlIGRyYWZ0IGFzc3VtZXMgeW91IHVuZGVyc3RhbmQgdGhlIGV2ZW50ID0g
UGFja2V0IHJlY2VwdGlvbi4gIEl0IGlzIGEgZmFpbGluZyBpbiB0aGUgZHJhZnQgdGhhdCBKb2Vs
IGhhcyBpbmRpY2F0ZWQgb24gdGhlc2UgbGlzdHMuICBJIHdpbGwgYmUgdXBkYXRpbmcgdGhlIEVD
QSBkcmFmdHMgYW5kIEZCLVJJQiBkcmFmdHMuICBJIHdpbGwgc2VuZCBhIGNvcHkgdG8geW91IGFu
ZCBKb2VsIGZvciByZXZpZXcgdGhpcyB3ZWVrLg0KDQpUaGFuayB5b3UgZm9yIHBvaW50aW5nIG91
dCB0aGUgZXJyb3JzIGluIHRoZSBkcmFmdHMsDQoNClN1ZQ0KDQpGcm9tOiBKb2huIFN0cmFzc25l
ciBbbWFpbHRvOnN0cmF6cGRqQGdtYWlsLmNvbV0NClNlbnQ6IFR1ZXNkYXksIEphbnVhcnkgMDUs
IDIwMTYgMTA6MjggUE0NClRvOiBTdXNhbiBIYXJlcw0KQ2M6IEpvZWwgTS4gSGFscGVybjsgaTJy
c0BpZXRmLm9yZzsgbmV0bW9kQGlldGYub3JnOyBzdXBhQGlldGYub3JnOyBKb2huIFN0cmFzc25l
cg0KU3ViamVjdDogUmU6IFtTdXBhXSBbaTJyc10gRlc6IE5ldyBWZXJzaW9uIE5vdGlmaWNhdGlv
biBmb3IgZHJhZnQtaGFyZXMtaTJycy1ibnAtZWNhLWRhdGEtbW9kZWwtMDMudHh0DQoNClN1ZSwN
Cg0KPiBPbiAjMSkgdGhlIGRlcGVuZGVuY3kgYmV0d2VlbiBJMlJTIEZpbHRlci1iYXNlZCBSSUIg
KEZCLVJJQikgYW5kDQo+IEVDQSwgcGxlYXNlIHNlZSBkcmFmdC1raW5pLWkycnMtZmItcmliLWlu
Zm8tbW9kZWwtMDIudHh0LiBJbiBzZWN0aW9uIDEuMSwNCj4gaXQgZ2l2ZXMgdGhlIGRlZmluaXRp
b24gb2YgdGhlIEZCLVJJQi4NCg0KU29ycnksIGl0IGRvZXMgTk9UIGRvIHRoaXMuIFRvIHF1b3Rl
IGZyb20gdGhpcyBzZWN0aW9uOg0KDQogICBBIEZpbHRlciBCYXNlZCBSSUIgdXNlcyBFdmVudC1D
b25kaXRpb24tQWN0aW9uIHBvbGljeS4gQSBGaWx0ZXItDQogICBiYXNlZCBSSUIgZW50cnkgc3Bl
Y2lmaWVzIG1hdGNoZXMgb24gZmllbGRzIGluIGEgcGFja2V0ICh3aGljaCBtYXkNCiAgIGluY2x1
ZGUgbGF5ZXIgMiBmaWVsZHMsIElQIGhlYWRlciBmaWVsZHMsIHRyYW5zcG9ydCBvciBhcHBsaWNh
dGlvbg0KICAgZmllbGRzKSBvciBzaXplIG9mIHRoZSBwYWNrZXQgb3IgaW50ZXJmYWNlIHJlY2Vp
dmVkIG9uLiBUaGUgbWF0Y2hlcw0KICAgYXJlIGNvbnRhaW5lZCBpbiBhbiBvcmRlcmVkIGxpc3Qg
b2YgZmlsdGVycyB3aGljaCBjb250YWluIHBhaXJzIG9mDQogICBtYXRjaCBjb25kaXRpb24tYWN0
aW9uIChha2EgZXZlbnQtY29uZGl0aW9uLWFjdGlvbikuDQoNClBsZWFzZSB0ZWxsIG1lIFdIRVJF
IHRoZSBldmVudCBpcyBpbiB0aGUgYWJvdmUgZGVmaW5pdGlvbi4gQWxsIEkgc2VlIGlzDQphIGNv
bmRpdGlvbi1hY3Rpb24gcnVsZS4gKEJUVywgdGhlIGFuYWx5c2lzIG9mIFBDSU0gYW5kIFBDSU1l
IGlzIGFsc28NCm5vdCBxdWl0ZSBjb3JyZWN0IGluIHlvdXIgZHJhZnQpLg0KDQo+IEluIHNlY3Rp
b24gMS4yLCBpdCBsaW5rcyB0aGlzIHRvIGFuIGV2ZW50LWNvbmRpdGlvbi1hY3Rpb24gbW9kZWwu
DQoNClNvcnJ5LCBpdCBkb2VzIE5PVCBkbyB0aGlzLg0KDQpGaXJzdCwgdGhpcyBzZWN0aW9uIHNp
bXBseSBzYXlzLCBhbmQgSSBxdW90ZToNCg0KICAgIlRoZSBmaWx0ZXIgYmFzZWQtUklCIHVzZXMg
ZXZlbnQtY29uZGl0aW9uLWFjdGlvbiBwb2xpY3kgKEVDQSkgcnVsZXMuIg0KDQpUaGF0IGlzIGEg
dGF1dG9sb2d5IGF0IGJlc3QuDQoNClNlY29uZCwgaW4gU2VjdGlvbiAyLCB1bmRlciB0aGUgZGVm
aW5pdGlvbiBvZiBGQi1Sb3V0ZSwgdGhlIGRyYWZ0IHNheXM6DQoNCiAgICJUaGUgcG9saWN5IHJ1
bGVzIGluIHRoZSBmaWx0ZXItYmFzZWQgUklCIGFyZSBwcmVzY3JpcHRpdmUgb2YgdGhlDQogICAg
IEV2ZW50LUNvbmRpdGlvbi1BY3Rpb24gZm9ybSB3aGljaCBpcyBvZnRlbiByZXByZXNlbnRlZCBi
eQ0KICAgICAgICBpZiBDb25kaXRpb24gdGhlbiBhY3Rpb24uIg0KDQpQbGVhc2Ugbm90ZSB0aGF0
IHRoaXMgZGVmaW5pdGlvbiBpcyBpbmNvcnJlY3QsIGFuZCBpbiBjb25mbGljdCB3aXRoIFNVUEEu
DQpUaGUgd2hvbGUgcG9pbnQgb2YgYW4gRVZFTlQtY29uZGl0aW9uLWFjdGlvbiBwb2xpY3kgcnVs
ZSBpcyB0byBkZWZpbmUNCmEgcnVsZSBvZiB0aGUgZm9ybToNCg0KICAgIElGIDxldmVudF9jbGF1
c2U+IGV2YWx1YXRlcyB0byBUUlVFDQogICAgICAgIElGIDxjb25kaXRpb25fY2xhdXNlIGV2YWx1
YXRlcyB0byBUUlVFDQogICAgICAgICAgICBUSEVOIGV4ZWN1dGUgYWN0aW9ucyBpbiA8YWN0aW9u
X2NsYXVzZT4NCiAgICAgICAgRU5ESUYNCiAgICBFTkRJRg0KDQpUaGlzIGRlZmluaXRpb24gaGFz
IGJlZW4gZXN0YWJsaXNoZWQgaW4gdGhlIGluZHVzdHJ5IGFuZCBhY2FkZW1pYQ0KZm9yIGF0IGxl
YXN0IDIgZGVjYWRlcy4NCg0KVmFyaWF0aW9ucyBvZiB0aGUgYWJvdmUgaGF2ZSBiZWVuIGRlZmlu
ZWQgYW5kIHB1Ymxpc2hlZCAoZS5nLiwNCkZPQ0FMRSBoYXMgYW4gYWx0ZXJuYXRlIHNldCBvZiBh
Y3Rpb25zIHRvIGV4ZWN1dGUgaWYgdGhlIGNvbmRpdGlvbg0KY2xhdXNlIGV2YWx1YXRlZCB0byBG
QUxTRTsgdGhpcyBoYXMgTk9UIGJlZW4gcHJvcG9zZWQgZm9yIFNVUEENCmF0IHRoaXMgdGltZSku
IFRoZXJlIGhhdmUgYWxzbyBiZWVuIGV4dGVuc2lvbnMgdG8gaGFuZGxlIHNldHMgYW5kDQpncm91
cHMsIGFzIHdlbGwgYXMgc3BlY2lmaWMgb3JkZXJpbmcgKERFTi1uZywgU0lELCBGT0NBTEUpLg0K
DQpUaGVyZWZvcmUsIEkgd291bGQgc3VnZ2VzdCB0aGF0IHlvdSBjaGFuZ2UgeW91ciBkcmFmdHMg
dG8gdXNlIGENCmNvbmRpdGlvbi1hY3Rpb24gcG9saWN5IHJ1bGUsIE9SIHVwZGF0ZSB0aGUgZHJh
ZnRzIChJIHdvdWxkIGJlIGhhcHB5DQp0byBoZWxwKSB0byB1c2UgYSBjb3JyZWN0IGRlZmluaXRp
b24gb2YgYW4gRUNBIHBvbGljeSBydWxlLg0KDQpyZWdhcmRzLA0KSm9obg0KDQpPbiBNb24sIEph
biA0LCAyMDE2IGF0IDI6MzMgUE0sIFN1c2FuIEhhcmVzIDxzaGFyZXNAbmR6aC5jb208bWFpbHRv
OnNoYXJlc0BuZHpoLmNvbT4+IHdyb3RlOg0KDQpKb2VsOg0KDQoNCg0KT24gIzEpIHRoZSBkZXBl
bmRlbmN5IGJldHdlZW4gSTJSUyBGaWx0ZXItYmFzZWQgUklCIChGQi1SSUIpIGFuZCBFQ0EsIHBs
ZWFzZSBzZWUgZHJhZnQta2luaS1pMnJzLWZiLXJpYi1pbmZvLW1vZGVsLTAyLnR4dC4gSW4gc2Vj
dGlvbiAxLjEsIGl0IGdpdmVzIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBGQi1SSUIuICBJbiBzZWN0
aW9uIDEuMiwgaXQgbGlua3MgdGhpcyB0byBhbiBldmVudC1jb25kaXRpb24tYWN0aW9uIG1vZGVs
LiAgSWYgeW91IGRpc2FncmVlIHdpdGggdGhlIGRlZmluaXRpb24gb2YgIEkyUlMgRkItUklCLCB0
aGVuIHdlIHNob3VsZCBwcm9iYWJseSByZXN0cmljdCB0aGlzIGNvbnZlcnNhdGlvbiB0byB0aGUg
STJSUyBtYWlsIGxpc3QuICBBbnkgZmVlZGJhY2sgb24gdGhlIEluZm8tbW9kZWwgb3IgZGF0YS1t
b2RlbCB3b3VsZCBiZSBoZWxwZnVsLiAgVGhlIGF1dGhvcnMgaG9wZWQgdG8gZ28gdG8gYSBXRyBh
ZG9wdGlvbiBjYWxsIGF0IHRoZSBlbmQgb2YgdGhpcyB3ZWVrLg0KDQoNCg0KT25lIGNoYWxsZW5n
ZSBmb3IgdGhlIGVwaGVtZXJhbCBJMlJTIEZCLVJJQiwgaXMgdGhlcmUgaXMgbm8gZGVmaW5pdGlv
biBvZiB0aGUgbm9uLWVwaGVtZXJhbCBGQi1SSUIuICBJZiB5b3UgdGhpbmsgdGhlcmUgc2hvdWxk
IGJlIGEgbm9uLWVwaGVtZXJhbCBGQi1SSUIg4oCTIHRoYXQgZGlzY3Vzc2lvbiBtYXkgYmUgdXNl
ZnVsIGJldHdlZW4gSTJSUywgTmV0bW9kIGFuZCBTVVBBLg0KDQoNCg0KT24gIzIpIFNVUEEgRUNB
IG1vZGVsLCBJIGFncmVlIHRoYXQgd2Ugc2hvdWxkIGJlIGFibGUgdG8gaGF2ZSBhIGNvbW1vbiBk
cmFmdC4gIEF0IElFVEYgOTQsIEkgcmFpc2VkIGlzc3VlcyByZWdhcmRpbmcgdGhlIFNVUEEgdmVy
c3VzIG15IEVDQSBkZWZpbml0aW9uLg0KDQoNCg0KQ2hlZXJpbHksDQoNCg0KDQpTdWUNCg0KDQoN
Ci0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBKb2VsIE0uIEhhbHBlcm4gW21haWx0
bzpqbWhAam9lbGhhbHBlcm4uY29tPG1haWx0bzpqbWhAam9lbGhhbHBlcm4uY29tPl0NClNlbnQ6
IE1vbmRheSwgSmFudWFyeSAwNCwgMjAxNiAzOjU0IFBNDQpUbzogU3VzYW4gSGFyZXM7IGkycnNA
aWV0Zi5vcmc8bWFpbHRvOmkycnNAaWV0Zi5vcmc+OyBuZXRtb2RAaWV0Zi5vcmc8bWFpbHRvOm5l
dG1vZEBpZXRmLm9yZz47IHN1cGFAaWV0Zi5vcmc8bWFpbHRvOnN1cGFAaWV0Zi5vcmc+DQpTdWJq
ZWN0OiBSZTogW2kycnNdIEZXOiBOZXcgVmVyc2lvbiBOb3RpZmljYXRpb24gZm9yIGRyYWZ0LWhh
cmVzLWkycnMtYm5wLWVjYS1kYXRhLW1vZGVsLTAzLnR4dA0KDQoNCg0KSSB0aGluayB0aGVyZSBh
cmUgdHdvIGlzc3VlcyBoZXJlLg0KDQoNCg0KMSkgSXQgaXMgbm90IGNsZWFyIHRvIG1lIHdoeSB0
aGVyZSBpcyBhbnkgZGVwZW5kZW5jZSBvZiB0aGUgZmItcmliIGRhdGEgbW9kZWwgb24gYW4gZWNh
IGRhdGEgbW9kZWwuICBXaGlsZSBzdXBhIGRvZXMgYWxsb3cgZm9yIHBvbGljeSBtb2RlbCB0byBi
ZSBzZW50IGRpcmVjdGx5IHRvIHRoZSByb3V0ZXIsIGl0IGFsc28gYWxsb3dzIG1hbnkgb3RoZXIg
Y2FzZXMuDQoNCg0KDQoyKSBUaGUgYXBwcm9hY2ggd2l0aCB0aGUgc3VwYSBlY2EgZGF0YSBtb2Rl
bCBpcyBzdGlsbCB1bmRlciBkZXZlbG9wbWVudC4NCg0KICBIYXZpbmcgc2FpZCB0aGF0LCB0aGUg
bWF0ZXJpYWwgaW4gdGhlcmUgaXMgaW50ZW5kZWQgdG8gYmUgdmVyeSBnZW5lcmFsLiAgRnJvbSB3
aGF0IEkgdW5kZXJzdGFuZCwgdGhlcmUgc2hvdWxkIGJlIG5vIGRpZmZpY3VsdHkgaW4gcmVmaW5p
bmcgdGhlIGFjdGlvbiBzaWRlIG9mIHRoYXQgbW9kZWwgdG8gYWN0aW9ucyB3aGljaCBhZmZlY3Qg
dGhlIGZiLXJpYiBpbiB3YXlzIHRoYXQgYXJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgZmItZGliIGRh
dGEgbW9kZWwuDQoNCg0KDQpZb3VycywNCg0KSm9lbA0KDQoNCg0KT24gMS80LzE2IDI6MDEgUE0s
IFN1c2FuIEhhcmVzIHdyb3RlOg0KDQo+IFRoaXMgbW9kZWwgcHJvdmlkZXMgYSBFdmVudC1Db25k
aXRpb24tQWN0aW9uIChFQ0EpIHBvbGljeSBtb2RlbC4NCg0KPiBUaGUgSTJSUyBGQi1SSUIgeWFu
ZyBkYXRhIG1vZGVsIHV0aWxpemVzIHRoaXMgbW9kZWwsIGJ1dCB0byBteQ0KDQo+IGtub3dsZWRn
ZSB0aGUgTmV0bW9kIG9yIG5ldGNvbmYgaGFzIG5vdCBhZG9wdGVkIGFuIEVDQSBwb2xpY3kgbW9k
ZWwgdG8NCg0KPiBwYXJhbGxlbCB0aGUgQUNMIG1vZGVsLg0KDQo+DQoNCj4gQ2hlbiBhbmQgY28t
YXV0aG9ycyBoYXZlIGNyZWF0ZWQgdGhlIG1vZGVsOg0KDQo+DQoNCj4gZHJhZnQtY2hlbi1zdXBh
LWVjYS1kYXRhLW1vZGVsLTA1LnR4dA0KDQo+DQoNCj4gQnV0IGl0IGRvZXMgbm90IGFsaWduIHdp
dGggdGhpcyB5YW5nIG1vZGVsIG9yIHNlZW0gc3VmZmljaWVudCB0bw0KDQo+IHN1cHBvcnQgdGhl
IEZCLVJJQiBpbmZvcm1hdGlvbiBtb2RlbC4gICBBdCBJRVRGIDk0LA0KDQo+IEkgcHJlc2VudGVk
IGEgZGlzY3Vzc2lvbiBvZiB0aGUgaXNzdWVzIEkgZm91bmQgd2l0aCB0aGUNCg0KPiBkcmFmdC1j
aGVuLXN1cGEtZWNhLWRhdGEtbW9kZWwtMDUudHh0LCBidXQgaXQgaGFzIG5vdCBiZWVuIHVwZGF0
ZWQuDQoNCj4gV2Ugd291bGQgYXBwcmVjaWF0ZSBmZWVkYmFjayBvbiB0aGlzIHZlcnNpb24gb2Yg
eWFuZyBtb2RlbC4NCg0KPg0KDQo+IDxpMnJzIENoYWlyIGhhdCBvbj4NCg0KPiBJbiBteSByb2xl
IGFzIEkyUlMgY2hhaXIsICBJMlJTIG5lZWRzIHRvIG1ha2UgcHJvZ3Jlc3Mgc29vbiBvbiB0aGUN
Cg0KPiBJMlJTIEZCLVJJQiBkYXRhIG1vZGVsLiAgV2Ugd291bGQgYXBwcmVjaWF0ZSB5b3VyIGFp
ZC4NCg0KPiA8aTJycyBjaGFpciBoYXQgb2ZmPg0KDQo+DQoNCj4gU3VlDQoNCj4NCg0KPiAtLS0t
LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KDQo+IEZyb206IGludGVybmV0LWRyYWZ0c0BpZXRmLm9y
ZzxtYWlsdG86aW50ZXJuZXQtZHJhZnRzQGlldGYub3JnPiBbbWFpbHRvOmludGVybmV0LWRyYWZ0
c0BpZXRmLm9yZ10NCg0KPiBTZW50OiBNb25kYXksIEphbnVhcnkgMDQsIDIwMTYgMTI6MDQgUE0N
Cg0KPiBUbzogU3VzYW4gSGFyZXM7IFFpbiBXdTsgUnVzcyBXaGl0ZQ0KDQo+IFN1YmplY3Q6IE5l
dyBWZXJzaW9uIE5vdGlmaWNhdGlvbiBmb3INCg0KPiBkcmFmdC1oYXJlcy1pMnJzLWJucC1lY2Et
ZGF0YS1tb2RlbC0wMy50eHQNCg0KPg0KDQo+DQoNCj4gQSBuZXcgdmVyc2lvbiBvZiBJLUQsIGRy
YWZ0LWhhcmVzLWkycnMtYm5wLWVjYS1kYXRhLW1vZGVsLTAzLnR4dA0KDQo+IGhhcyBiZWVuIHN1
Y2Nlc3NmdWxseSBzdWJtaXR0ZWQgYnkgU3VzYW4gSGFyZXMgYW5kIHBvc3RlZCB0byB0aGUgSUVU
RiByZXBvc2l0b3J5Lg0KDQo+DQoNCj4gTmFtZTogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZHJhZnQtaGFyZXMtaTJycy1ibnAtZWNhLWRhdGEtbW9kZWwNCg0KPiBSZXZpc2lvbjogICAg
ICAgICAgMDMNCg0KPiBUaXRsZTogICAgICAgICAgICAgICAgICBBbiBJbmZvcm1hdGlvbiBNb2Rl
bCBmb3IgQmFzaWMgTmV0d29yayBQb2xpY3kgYW5kIEZpbHRlciBSdWxlcw0KDQo+IERvY3VtZW50
IGRhdGU6ICAgICAgICAgICAyMDE2LTAxLTA0DQoNCj4gR3JvdXA6ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgSW5kaXZpZHVhbCBTdWJtaXNzaW9uDQoNCj4gUGFnZXM6ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDMwDQoNCj4gVVJMOiAgICAgICAgICAgIGh0dHBzOi8vd3d3Lmll
dGYub3JnL2ludGVybmV0LWRyYWZ0cy9kcmFmdC1oYXJlcy1pMnJzLWJucC1lY2EtZGF0YS1tb2Rl
bC0wMy50eHQNCg0KPiBTdGF0dXM6ICAgICAgICAgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9y
Zy9kb2MvZHJhZnQtaGFyZXMtaTJycy1ibnAtZWNhLWRhdGEtbW9kZWwvDQoNCj4gSHRtbGl6ZWQ6
ICAgICAgIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1oYXJlcy1pMnJzLWJucC1l
Y2EtZGF0YS1tb2RlbC0wMw0KDQo+IERpZmY6ICAgICAgICAgICBodHRwczovL3d3dy5pZXRmLm9y
Zy9yZmNkaWZmP3VybDI9ZHJhZnQtaGFyZXMtaTJycy1ibnAtZWNhLWRhdGEtbW9kZWwtMDMNCg0K
Pg0KDQo+IEFic3RyYWN0Og0KDQo+ICAgICBUaGlzIGRvY3VtZW50IGNvbnRhaW5zIHRoZSBCYXNp
YyBOZXR3b3JrIFBvbGljeSBhbmQgRmlsdGVycyAoQk5QIElNKQ0KDQo+ICAgICBEYXRhIE1vZGVs
IHdoaWNoIHByb3ZpZGVzIGEgcG9saWN5IG1vZGVsIHRoYXQgc3VwcG9ydCBhbiBvcmRlcmVkIGxp
c3QNCg0KPiAgICAgb2YgbWF0Y2gtY29uZGl0aW9uLWFjdGlvbiAoYWthIGV2ZW50LWNvbmRpdGlv
bi1hY3Rpb24gKEVDQSkpIGZvcg0KDQo+ICAgICBtdWx0aXBsZSBsYXllcnMgKGludGVyZmFjZSwg
TDEtTDQsIGFwcGxpY2F0aW9uKSBhbmQgb3RoZXIgZmFjdG9ycw0KDQo+ICAgICAoc2l6ZSBvZiBw
YWNrZXQsIHRpbWUgb2YgZGF5KS4gIFRoZSBhY3Rpb25zIGFsbG93IGZvciBzZXR0aW5nIGFjdGlv
bnMNCg0KPiAgICAgKFFPUyBhbmQgb3RoZXIpLCBkZWNhcHN1bGF0aW9uLCBlbmNhcHN1bGF0aW9u
LCBwbHVzIGZvcndhcmRpbmcNCg0KPiAgICAgYWN0aW9ucy4gIFRoZSBwb2xpY3kgbW9kZWwgY2Fu
IGJlIHVzZWQgd2l0aCB0aGUgSTJSUyBmaWx0ZXItYmFzZWQNCg0KPiAgICAgUklCLg0KDQo+DQoN
Cj4NCg0KPg0KDQo+DQoNCj4gUGxlYXNlIG5vdGUgdGhhdCBpdCBtYXkgdGFrZSBhIGNvdXBsZSBv
ZiBtaW51dGVzIGZyb20gdGhlIHRpbWUgb2Ygc3VibWlzc2lvbiB1bnRpbCB0aGUgaHRtbGl6ZWQg
dmVyc2lvbiBhbmQgZGlmZiBhcmUgYXZhaWxhYmxlIGF0IHRvb2xzLmlldGYub3JnPGh0dHA6Ly90
b29scy5pZXRmLm9yZz4uDQoNCj4NCg0KPiBUaGUgSUVURiBTZWNyZXRhcmlhdA0KDQo+DQoNCj4N
Cg0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KDQo+
IGkycnMgbWFpbGluZyBsaXN0DQoNCj4gaTJyc0BpZXRmLm9yZzxtYWlsdG86aTJyc0BpZXRmLm9y
Zz4NCg0KPiBodHRwczovL3d3dy5pZXRmLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2kycnMNCg0KPg0K
DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KU3VwYSBt
YWlsaW5nIGxpc3QNClN1cGFAaWV0Zi5vcmc8bWFpbHRvOlN1cGFAaWV0Zi5vcmc+DQpodHRwczov
L3d3dy5pZXRmLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3N1cGENCg0KDQoNCi0tDQpyZWdhcmRzLA0K
Sm9obg0K

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

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTIgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
Pg0KPCEtLQ0KIC8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCiBAZm9udC1mYWNlDQoJe2ZvbnQtZmFt
aWx5OiJDYW1icmlhIE1hdGgiOw0KCXBhbm9zZS0xOjIgNCA1IDMgNSA0IDYgMyAyIDQ7fQ0KQGZv
bnQtZmFjZQ0KCXtmb250LWZhbWlseTpDYWxpYnJpOw0KCXBhbm9zZS0xOjIgMTUgNSAyIDIgMiA0
IDMgMiA0O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6VGFob21hOw0KCXBhbm9zZS0xOjIg
MTEgNiA0IDMgNSA0IDQgMiA0O30NCiAvKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KIHAuTXNvTm9y
bWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBpbjsNCgltYXJnaW4t
Ym90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMg
TmV3IFJvbWFuIiwic2VyaWYiO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0
eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGlu
ZTt9DQphOnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLXBy
aW9yaXR5Ojk5Ow0KCWNvbG9yOnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30N
CnANCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1tYXJnaW4tdG9wLWFsdDphdXRvOw0K
CW1hcmdpbi1yaWdodDowaW47DQoJbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87DQoJbWFyZ2lu
LWxlZnQ6MGluOw0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBS
b21hbiIsInNlcmlmIjt9DQpwLk1zb0FjZXRhdGUsIGxpLk1zb0FjZXRhdGUsIGRpdi5Nc29BY2V0
YXRlDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgltc28tc3R5bGUtbGluazoiQmFsbG9vbiBU
ZXh0IENoYXIiOw0KCW1hcmdpbjowaW47DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZvbnQt
c2l6ZTo4LjBwdDsNCglmb250LWZhbWlseToiVGFob21hIiwic2Fucy1zZXJpZiI7fQ0Kc3Bhbi5C
YWxsb29uVGV4dENoYXINCgl7bXNvLXN0eWxlLW5hbWU6IkJhbGxvb24gVGV4dCBDaGFyIjsNCglt
c28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNvLXN0eWxlLWxpbms6IkJhbGxvb24gVGV4dCI7DQoJ
Zm9udC1mYW1pbHk6IlRhaG9tYSIsInNhbnMtc2VyaWYiO30NCnNwYW4uRW1haWxTdHlsZTIwDQoJ
e21zby1zdHlsZS10eXBlOnBlcnNvbmFsOw0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1z
ZXJpZiI7DQoJY29sb3I6IzFGNDk3RDt9DQpzcGFuLkVtYWlsU3R5bGUyMQ0KCXttc28tc3R5bGUt
dHlwZTpwZXJzb25hbC1yZXBseTsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYi
Ow0KCWNvbG9yOiMxRjQ5N0Q7fQ0KLk1zb0NocERlZmF1bHQNCgl7bXNvLXN0eWxlLXR5cGU6ZXhw
b3J0LW9ubHk7DQoJZm9udC1zaXplOjEwLjBwdDt9DQpAcGFnZSBTZWN0aW9uMQ0KCXtzaXplOjgu
NWluIDExLjBpbjsNCgltYXJnaW46MS4waW4gMS4waW4gMS4waW4gMS4waW47fQ0KZGl2LlNlY3Rp
b24xDQoJe3BhZ2U6U2VjdGlvbjE7fQ0KLS0+DQo8L3N0eWxlPjwhLS1baWYgZ3RlIG1zbyA5XT48
eG1sPg0KIDxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYiIC8+DQo8
L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCiA8bzpzaGFwZWxheW91
dCB2OmV4dD0iZWRpdCI+DQogIDxvOmlkbWFwIHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPg0KIDwv
bzpzaGFwZWxheW91dD48L3htbD48IVtlbmRpZl0tLT4NCjwvaGVhZD4NCjxib2R5IGxhbmc9IkVO
LVVTIiBsaW5rPSJibHVlIiB2bGluaz0icHVycGxlIj4NCjxkaXYgY2xhc3M9IlNlY3Rpb24xIj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OzsNCmNvbG9y
OiMxRjQ5N0QiPlN1ZTo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7DQpjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNw
OzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMt
c2VyaWYmcXVvdDs7DQpjb2xvcjojMUY0OTdEIj5JJ20gaGFwcHkgdG8gaGVscC4gSTJSUyBpcyBp
bXBvcnRhbnQgd29yaywgYW5kIEkgd291bGQgbGlrZSB0byBlbnN1cmUgdGhhdCBTVVBBIGNvdWxk
IGhlbHAgeW91ciB3b3JrICh3aXRob3V0IGRlbGF5aW5nIGl0LCBvZiBjb3Vyc2UpLjxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJp
ZiZxdW90OzsNCmNvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OzsNCmNvbG9yOiMx
RjQ5N0QiPkFsc28sIEknbSBpbnRlcmVzdGVkIGluIHRoZSBkYXRhIG1vZGVscyB0aGF0IHlvdSBj
b21lIHVwIHdpdGgsIGFzIHRoZXkgYXJlIGV4Y2VsbGVudCBleGFtcGxlcyBvZiB3aGF0IFNVUEEg
bmVlZHMgdG8gc3VwcG9ydC48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7DQpjb2xvcjojMUY0OTdEIj48bzpwPiZu
YnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3Nh
bnMtc2VyaWYmcXVvdDs7DQpjb2xvcjojMUY0OTdEIj5yZWdhcmRzLDxvOnA+PC9vOnA+PC9zcGFu
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OzsN
CmNvbG9yOiMxRjQ5N0QiPkpvaG48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7DQpjb2xvcjojMUY0OTdEIj48bzpw
PiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7
Ym9yZGVyLXRvcDpzb2xpZCAjQjVDNERGIDEuMHB0O3BhZGRpbmc6My4wcHQgMGluIDBpbiAwaW4i
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPkZy
b206PC9zcGFuPjwvYj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTom
cXVvdDtUYWhvbWEmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+IG5ldG1vZCBbbWFpbHRv
Om5ldG1vZC1ib3VuY2VzQGlldGYub3JnXQ0KPGI+T24gQmVoYWxmIE9mIDwvYj5TdXNhbiBIYXJl
czxicj4NCjxiPlNlbnQ6PC9iPiBXZWRuZXNkYXksIEphbnVhcnkgMDYsIDIwMTYgMzoyNSBQTTxi
cj4NCjxiPlRvOjwvYj4gJ0pvaG4gU3RyYXNzbmVyJzxicj4NCjxiPkNjOjwvYj4gaTJyc0BpZXRm
Lm9yZzsgc3VwYUBpZXRmLm9yZzsgbmV0bW9kQGlldGYub3JnPGJyPg0KPGI+U3ViamVjdDo8L2I+
IFJlOiBbbmV0bW9kXSBbU3VwYV0gW2kycnNdIEZXOiBOZXcgVmVyc2lvbiBOb3RpZmljYXRpb24g
Zm9yIGRyYWZ0LWhhcmVzLWkycnMtYm5wLWVjYS1kYXRhLW1vZGVsLTAzLnR4dDxvOnA+PC9vOnA+
PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZu
YnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJp
ZiZxdW90OzsNCmNvbG9yOiMxRjQ5N0QiPkpvaG46DQo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7DQpjb2xvcjoj
MUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7DQpjb2xvcjojMUY0OTdEIj5Zb3UgYXJlIGNv
cnJlY3QgaW4gaW5kaWNhdGluZyB0aGF0IHRoZSBkcmFmdCBhc3N1bWVzIHlvdSB1bmRlcnN0YW5k
IHRoZSBldmVudCA9IFBhY2tldCByZWNlcHRpb24uJm5ic3A7IEl0IGlzIGEgZmFpbGluZyBpbiB0
aGUgZHJhZnQgdGhhdCBKb2VsIGhhcyBpbmRpY2F0ZWQgb24NCiB0aGVzZSBsaXN0cy4gJm5ic3A7
SSB3aWxsIGJlIHVwZGF0aW5nIHRoZSBFQ0EgZHJhZnRzIGFuZCBGQi1SSUIgZHJhZnRzLiZuYnNw
OyBJIHdpbGwgc2VuZCBhIGNvcHkgdG8geW91IGFuZCBKb2VsIGZvciByZXZpZXcgdGhpcyB3ZWVr
Lg0KPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVv
dDtzYW5zLXNlcmlmJnF1b3Q7Ow0KY29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3Nw
YW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7
Ow0KY29sb3I6IzFGNDk3RCI+VGhhbmsgeW91IGZvciBwb2ludGluZyBvdXQgdGhlIGVycm9ycyBp
biB0aGUgZHJhZnRzLA0KPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ow0KY29sb3I6IzFGNDk3RCI+PG86cD4mbmJz
cDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5z
LXNlcmlmJnF1b3Q7Ow0KY29sb3I6IzFGNDk3RCI+U3VlDQo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250
LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7DQpjb2xv
cjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtU
YWhvbWEmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+RnJvbTo8L3NwYW4+PC9iPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90Oywm
cXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij4gSm9obiBTdHJhc3NuZXIgW21haWx0bzpzdHJhenBkakBn
bWFpbC5jb21dDQo8YnI+DQo8Yj5TZW50OjwvYj4gVHVlc2RheSwgSmFudWFyeSAwNSwgMjAxNiAx
MDoyOCBQTTxicj4NCjxiPlRvOjwvYj4gU3VzYW4gSGFyZXM8YnI+DQo8Yj5DYzo8L2I+IEpvZWwg
TS4gSGFscGVybjsgaTJyc0BpZXRmLm9yZzsgbmV0bW9kQGlldGYub3JnOyBzdXBhQGlldGYub3Jn
OyBKb2huIFN0cmFzc25lcjxicj4NCjxiPlN1YmplY3Q6PC9iPiBSZTogW1N1cGFdIFtpMnJzXSBG
VzogTmV3IFZlcnNpb24gTm90aWZpY2F0aW9uIGZvciBkcmFmdC1oYXJlcy1pMnJzLWJucC1lY2Et
ZGF0YS1tb2RlbC0wMy50eHQ8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+U3VlLDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHA+Jmd0OyBPbiAjMSkg
dGhlIGRlcGVuZGVuY3kgYmV0d2VlbiBJMlJTIEZpbHRlci1iYXNlZCBSSUIgKEZCLVJJQikgYW5k
PGJyPg0KJmd0OyZuYnNwO0VDQSwgcGxlYXNlIHNlZSBkcmFmdC1raW5pLWkycnMtZmItcmliLWlu
Zm8tbW9kZWwtMDIudHh0LiBJbiBzZWN0aW9uIDEuMSw8YnI+DQomZ3Q7IGl0IGdpdmVzIHRoZSBk
ZWZpbml0aW9uIG9mIHRoZSBGQi1SSUIuPG86cD48L286cD48L3A+DQo8cD5Tb3JyeSwgaXQgZG9l
cyBOT1QgZG8gdGhpcy4gVG8gcXVvdGUgZnJvbSB0aGlzIHNlY3Rpb246PG86cD48L286cD48L3A+
DQo8cD48c3BhbiBsYW5nPSJFTiI+Jm5ic3A7ICZuYnNwO0EgRmlsdGVyIEJhc2VkIFJJQiB1c2Vz
IEV2ZW50LUNvbmRpdGlvbi1BY3Rpb24gcG9saWN5LiBBIEZpbHRlci08YnI+DQombmJzcDsgJm5i
c3A7YmFzZWQgUklCIGVudHJ5IHNwZWNpZmllcyBtYXRjaGVzIG9uIGZpZWxkcyBpbiBhIHBhY2tl
dCAod2hpY2ggbWF5PGJyPg0KJm5ic3A7ICZuYnNwO2luY2x1ZGUgbGF5ZXIgMiBmaWVsZHMsIElQ
IGhlYWRlciBmaWVsZHMsIHRyYW5zcG9ydCBvciBhcHBsaWNhdGlvbjxicj4NCiZuYnNwOyAmbmJz
cDtmaWVsZHMpIG9yIHNpemUgb2YgdGhlIHBhY2tldCBvciBpbnRlcmZhY2UgcmVjZWl2ZWQgb24u
IFRoZSBtYXRjaGVzPGJyPg0KJm5ic3A7ICZuYnNwO2FyZSBjb250YWluZWQgaW4gYW4gb3JkZXJl
ZCBsaXN0IG9mIGZpbHRlcnMgd2hpY2ggY29udGFpbiBwYWlycyBvZjxicj4NCiZuYnNwOyZuYnNw
OyBtYXRjaCBjb25kaXRpb24tYWN0aW9uIChha2EgZXZlbnQtY29uZGl0aW9uLWFjdGlvbikuPG86
cD48L286cD48L3NwYW4+PC9wPg0KPHA+UGxlYXNlIHRlbGwgbWUgV0hFUkUgdGhlIGV2ZW50IGlz
IGluIHRoZSBhYm92ZSBkZWZpbml0aW9uLiBBbGwgSSBzZWUgaXM8YnI+DQphIGNvbmRpdGlvbi1h
Y3Rpb24gcnVsZS4gKEJUVywgdGhlIGFuYWx5c2lzIG9mIFBDSU0gYW5kIFBDSU1lIGlzIGFsc288
YnI+DQpub3QgcXVpdGUgY29ycmVjdCBpbiB5b3VyIGRyYWZ0KS48bzpwPjwvbzpwPjwvcD4NCjxw
PiZndDsgSW4gc2VjdGlvbiAxLjIsIGl0IGxpbmtzIHRoaXMgdG8gYW4gZXZlbnQtY29uZGl0aW9u
LWFjdGlvbiBtb2RlbC48bzpwPjwvbzpwPjwvcD4NCjxwPlNvcnJ5LCBpdCBkb2VzIE5PVCBkbyB0
aGlzLjxvOnA+PC9vOnA+PC9wPg0KPHA+Rmlyc3QsIHRoaXMgc2VjdGlvbiBzaW1wbHkgc2F5cywg
YW5kIEkgcXVvdGU6PG86cD48L286cD48L3A+DQo8cD48c3BhbiBsYW5nPSJFTiI+Jm5ic3A7Jm5i
c3A7ICZxdW90O1RoZSBmaWx0ZXIgYmFzZWQtUklCIHVzZXMgZXZlbnQtY29uZGl0aW9uLWFjdGlv
biBwb2xpY3kgKEVDQSkgcnVsZXMuJnF1b3Q7PG86cD48L286cD48L3NwYW4+PC9wPg0KPHA+PHNw
YW4gbGFuZz0iRU4iPlRoYXQgaXMgYSB0YXV0b2xvZ3kgYXQgYmVzdC48bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8cD48c3BhbiBsYW5nPSJFTiI+U2Vjb25kLCBpbiBTZWN0aW9uIDIsIHVuZGVyIHRo
ZSBkZWZpbml0aW9uIG9mIEZCLVJvdXRlLCB0aGUgZHJhZnQgc2F5czo8bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8cD48c3BhbiBsYW5nPSJFTiI+Jm5ic3A7Jm5ic3A7ICZxdW90O1RoZSBwb2xpY3kg
cnVsZXMgaW4gdGhlIGZpbHRlci1iYXNlZCBSSUIgYXJlIHByZXNjcmlwdGl2ZSBvZiB0aGU8YnI+
DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmVudC1Db25kaXRpb24tQWN0aW9uIGZv
cm0gd2hpY2ggaXMgb2Z0ZW4gcmVwcmVzZW50ZWQgYnk8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgaWYgQ29uZGl0aW9uIHRoZW4gYWN0aW9uLiZxdW90Ozxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwPjxzcGFuIGxhbmc9IkVOIj5QbGVhc2Ugbm90ZSB0aGF0
IHRoaXMgZGVmaW5pdGlvbiBpcyBpbmNvcnJlY3QsIGFuZCBpbiBjb25mbGljdCB3aXRoIFNVUEEu
PGJyPg0KVGhlIHdob2xlIHBvaW50IG9mIGFuIEVWRU5ULWNvbmRpdGlvbi1hY3Rpb24gcG9saWN5
IHJ1bGUgaXMgdG8gZGVmaW5lPGJyPg0KYSBydWxlIG9mIHRoZSBmb3JtOjxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjxwPjxzcGFuIGxhbmc9IkVOIj4mbmJzcDsmbmJzcDsmbmJzcDsgSUYgJmx0O2V2
ZW50X2NsYXVzZSZndDsgZXZhbHVhdGVzIHRvIFRSVUU8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgSUYgJmx0O2NvbmRpdGlvbl9jbGF1c2UgZXZhbHVhdGVz
IHRvIFRSVUU8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgVEhFTiBleGVjdXRlIGFjdGlvbnMgaW4gJmx0O2FjdGlv
bl9jbGF1c2UmZ3Q7PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7IEVORElGPGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IEVORElGPG86cD48L286cD48L3NwYW4+
PC9wPg0KPHA+PHNwYW4gbGFuZz0iRU4iPlRoaXMgZGVmaW5pdGlvbiBoYXMgYmVlbiBlc3RhYmxp
c2hlZCBpbiB0aGUgaW5kdXN0cnkgYW5kIGFjYWRlbWlhPGJyPg0KZm9yIGF0IGxlYXN0IDIgZGVj
YWRlcy48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cD48c3BhbiBsYW5nPSJFTiI+VmFyaWF0aW9u
cyBvZiB0aGUgYWJvdmUgaGF2ZSBiZWVuIGRlZmluZWQgYW5kIHB1Ymxpc2hlZCAoZS5nLiw8YnI+
DQpGT0NBTEUgaGFzIGFuIGFsdGVybmF0ZSBzZXQgb2YgYWN0aW9ucyB0byBleGVjdXRlIGlmIHRo
ZSBjb25kaXRpb248YnI+DQpjbGF1c2UgZXZhbHVhdGVkIHRvIEZBTFNFOyB0aGlzIGhhcyBOT1Qg
YmVlbiBwcm9wb3NlZCBmb3IgU1VQQTxicj4NCmF0IHRoaXMgdGltZSkuIFRoZXJlIGhhdmUgYWxz
byBiZWVuIGV4dGVuc2lvbnMgdG8gaGFuZGxlIHNldHMgYW5kPGJyPg0KZ3JvdXBzLCBhcyB3ZWxs
IGFzIHNwZWNpZmljIG9yZGVyaW5nIChERU4tbmcsIFNJRCwgRk9DQUxFKS48bzpwPjwvbzpwPjwv
c3Bhbj48L3A+DQo8cD48c3BhbiBsYW5nPSJFTiI+VGhlcmVmb3JlLCBJIHdvdWxkIHN1Z2dlc3Qg
dGhhdCB5b3UgY2hhbmdlIHlvdXIgZHJhZnRzIHRvIHVzZSBhPGJyPg0KY29uZGl0aW9uLWFjdGlv
biBwb2xpY3kgcnVsZSwgT1IgdXBkYXRlIHRoZSBkcmFmdHMgKEkgd291bGQgYmUgaGFwcHk8YnI+
DQp0byBoZWxwKSB0byB1c2UgYSBjb3JyZWN0IGRlZmluaXRpb24gb2YgYW4gRUNBIHBvbGljeSBy
dWxlLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwPjxzcGFuIGxhbmc9IkVOIj5yZWdhcmRzLDxi
cj4NCkpvaG48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPk9uIE1vbiwgSmFuIDQsIDIwMTYgYXQgMjozMyBQTSwgU3VzYW4gSGFyZXMg
Jmx0OzxhIGhyZWY9Im1haWx0bzpzaGFyZXNAbmR6aC5jb20iIHRhcmdldD0iX2JsYW5rIj5zaGFy
ZXNAbmR6aC5jb208L2E+Jmd0OyB3cm90ZTo8bzpwPjwvbzpwPjwvcD4NCjxkaXY+DQo8ZGl2Pg0K
PHA+Sm9lbDogPG86cD48L286cD48L3A+DQo8cD4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwPk9u
ICMxKSB0aGUgZGVwZW5kZW5jeSBiZXR3ZWVuIEkyUlMgRmlsdGVyLWJhc2VkIFJJQiAoRkItUklC
KSBhbmQgRUNBLCBwbGVhc2Ugc2VlIGRyYWZ0LWtpbmktaTJycy1mYi1yaWItaW5mby1tb2RlbC0w
Mi50eHQuIEluIHNlY3Rpb24gMS4xLCBpdCBnaXZlcyB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgRkIt
UklCLiZuYnNwOyBJbiBzZWN0aW9uIDEuMiwgaXQgbGlua3MgdGhpcyB0byBhbiBldmVudC1jb25k
aXRpb24tYWN0aW9uIG1vZGVsLiZuYnNwOyBJZiB5b3UgZGlzYWdyZWUNCiB3aXRoIHRoZSBkZWZp
bml0aW9uIG9mICZuYnNwO0kyUlMgRkItUklCLCB0aGVuIHdlIHNob3VsZCBwcm9iYWJseSByZXN0
cmljdCB0aGlzIGNvbnZlcnNhdGlvbiB0byB0aGUgSTJSUyBtYWlsIGxpc3QuJm5ic3A7IEFueSBm
ZWVkYmFjayBvbiB0aGUgSW5mby1tb2RlbCBvciBkYXRhLW1vZGVsIHdvdWxkIGJlIGhlbHBmdWwu
Jm5ic3A7IFRoZSBhdXRob3JzIGhvcGVkIHRvIGdvIHRvIGEgV0cgYWRvcHRpb24gY2FsbCBhdCB0
aGUgZW5kIG9mIHRoaXMgd2Vlay4NCjxvOnA+PC9vOnA+PC9wPg0KPHA+Jm5ic3A7PG86cD48L286
cD48L3A+DQo8cD5PbmUgY2hhbGxlbmdlIGZvciB0aGUgZXBoZW1lcmFsIEkyUlMgRkItUklCLCBp
cyB0aGVyZSBpcyBubyBkZWZpbml0aW9uIG9mIHRoZSBub24tZXBoZW1lcmFsIEZCLVJJQi4mbmJz
cDsgSWYgeW91IHRoaW5rIHRoZXJlIHNob3VsZCBiZSBhIG5vbi1lcGhlbWVyYWwgRkItUklCIOKA
kyB0aGF0IGRpc2N1c3Npb24gbWF5IGJlIHVzZWZ1bCBiZXR3ZWVuIEkyUlMsIE5ldG1vZCBhbmQg
U1VQQS4NCjxvOnA+PC9vOnA+PC9wPg0KPHA+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cD5PbiAj
MikgU1VQQSBFQ0EgbW9kZWwsIEkgYWdyZWUgdGhhdCB3ZSBzaG91bGQgYmUgYWJsZSB0byBoYXZl
IGEgY29tbW9uIGRyYWZ0LiZuYnNwOyBBdCBJRVRGIDk0LCBJIHJhaXNlZCBpc3N1ZXMgcmVnYXJk
aW5nIHRoZSBTVVBBIHZlcnN1cyBteSBFQ0EgZGVmaW5pdGlvbi4mbmJzcDsgJm5ic3A7PG86cD48
L286cD48L3A+DQo8cD4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwPkNoZWVyaWx5LCA8bzpwPjwv
bzpwPjwvcD4NCjxwPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHA+U3VlIDxvOnA+PC9vOnA+PC9w
Pg0KPHA+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cD4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t
LTxicj4NCkZyb206IEpvZWwgTS4gSGFscGVybiBbbWFpbHRvOjxhIGhyZWY9Im1haWx0bzpqbWhA
am9lbGhhbHBlcm4uY29tIiB0YXJnZXQ9Il9ibGFuayI+am1oQGpvZWxoYWxwZXJuLmNvbTwvYT5d
DQo8YnI+DQpTZW50OiBNb25kYXksIEphbnVhcnkgMDQsIDIwMTYgMzo1NCBQTTxicj4NClRvOiBT
dXNhbiBIYXJlczsgPGEgaHJlZj0ibWFpbHRvOmkycnNAaWV0Zi5vcmciIHRhcmdldD0iX2JsYW5r
Ij5pMnJzQGlldGYub3JnPC9hPjsNCjxhIGhyZWY9Im1haWx0bzpuZXRtb2RAaWV0Zi5vcmciIHRh
cmdldD0iX2JsYW5rIj5uZXRtb2RAaWV0Zi5vcmc8L2E+OyA8YSBocmVmPSJtYWlsdG86c3VwYUBp
ZXRmLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPg0Kc3VwYUBpZXRmLm9yZzwvYT48YnI+DQpTdWJqZWN0
OiBSZTogW2kycnNdIEZXOiBOZXcgVmVyc2lvbiBOb3RpZmljYXRpb24gZm9yIGRyYWZ0LWhhcmVz
LWkycnMtYm5wLWVjYS1kYXRhLW1vZGVsLTAzLnR4dDxvOnA+PC9vOnA+PC9wPg0KPHA+Jm5ic3A7
PG86cD48L286cD48L3A+DQo8cD5JIHRoaW5rIHRoZXJlIGFyZSB0d28gaXNzdWVzIGhlcmUuPG86
cD48L286cD48L3A+DQo8cD4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwPjEpIEl0IGlzIG5vdCBj
bGVhciB0byBtZSB3aHkgdGhlcmUgaXMgYW55IGRlcGVuZGVuY2Ugb2YgdGhlIGZiLXJpYiBkYXRh
IG1vZGVsIG9uIGFuIGVjYSBkYXRhIG1vZGVsLiZuYnNwOyBXaGlsZSBzdXBhIGRvZXMgYWxsb3cg
Zm9yIHBvbGljeSBtb2RlbCB0byBiZSBzZW50IGRpcmVjdGx5IHRvIHRoZSByb3V0ZXIsIGl0IGFs
c28gYWxsb3dzIG1hbnkgb3RoZXIgY2FzZXMuPG86cD48L286cD48L3A+DQo8cD4mbmJzcDs8bzpw
PjwvbzpwPjwvcD4NCjxwPjIpIFRoZSBhcHByb2FjaCB3aXRoIHRoZSBzdXBhIGVjYSBkYXRhIG1v
ZGVsIGlzIHN0aWxsIHVuZGVyIGRldmVsb3BtZW50LiA8bzpwPg0KPC9vOnA+PC9wPg0KPHA+Jm5i
c3A7Jm5ic3A7SGF2aW5nIHNhaWQgdGhhdCwgdGhlIG1hdGVyaWFsIGluIHRoZXJlIGlzIGludGVu
ZGVkIHRvIGJlIHZlcnkgZ2VuZXJhbC4mbmJzcDsgRnJvbSB3aGF0IEkgdW5kZXJzdGFuZCwgdGhl
cmUgc2hvdWxkIGJlIG5vIGRpZmZpY3VsdHkgaW4gcmVmaW5pbmcgdGhlIGFjdGlvbiBzaWRlIG9m
IHRoYXQgbW9kZWwgdG8gYWN0aW9ucyB3aGljaCBhZmZlY3QgdGhlIGZiLXJpYiBpbiB3YXlzIHRo
YXQgYXJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgZmItZGliIGRhdGENCiBtb2RlbC48bzpwPjwvbzpw
PjwvcD4NCjxwPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHA+WW91cnMsPG86cD48L286cD48L3A+
DQo8cD5Kb2VsPG86cD48L286cD48L3A+DQo8cD4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwPk9u
IDEvNC8xNiAyOjAxIFBNLCBTdXNhbiBIYXJlcyB3cm90ZTo8bzpwPjwvbzpwPjwvcD4NCjxwPiZn
dDsgVGhpcyBtb2RlbCBwcm92aWRlcyBhIEV2ZW50LUNvbmRpdGlvbi1BY3Rpb24gKEVDQSkgcG9s
aWN5IG1vZGVsLjxvOnA+PC9vOnA+PC9wPg0KPHA+Jmd0OyBUaGUgSTJSUyBGQi1SSUIgeWFuZyBk
YXRhIG1vZGVsIHV0aWxpemVzIHRoaXMgbW9kZWwsIGJ1dCB0byBteSA8bzpwPjwvbzpwPjwvcD4N
CjxwPiZndDsga25vd2xlZGdlIHRoZSBOZXRtb2Qgb3IgbmV0Y29uZiBoYXMgbm90IGFkb3B0ZWQg
YW4gRUNBIHBvbGljeSBtb2RlbCB0byA8bzpwPg0KPC9vOnA+PC9wPg0KPHA+Jmd0OyBwYXJhbGxl
bCB0aGUgQUNMIG1vZGVsLjxvOnA+PC9vOnA+PC9wPg0KPHA+Jmd0OyZuYnNwOzxvOnA+PC9vOnA+
PC9wPg0KPHA+Jmd0OyBDaGVuIGFuZCBjby1hdXRob3JzIGhhdmUgY3JlYXRlZCB0aGUgbW9kZWw6
PG86cD48L286cD48L3A+DQo8cD4mZ3Q7Jm5ic3A7PG86cD48L286cD48L3A+DQo8cD4mZ3Q7IGRy
YWZ0LWNoZW4tc3VwYS1lY2EtZGF0YS1tb2RlbC0wNS50eHQ8bzpwPjwvbzpwPjwvcD4NCjxwPiZn
dDsmbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwPiZndDsgQnV0IGl0IGRvZXMgbm90IGFsaWduIHdp
dGggdGhpcyB5YW5nIG1vZGVsIG9yIHNlZW0gc3VmZmljaWVudCB0bzxvOnA+PC9vOnA+PC9wPg0K
PHA+Jmd0OyBzdXBwb3J0IHRoZSBGQi1SSUIgaW5mb3JtYXRpb24gbW9kZWwuJm5ic3A7Jm5ic3A7
IEF0IElFVEYgOTQsPG86cD48L286cD48L3A+DQo8cD4mZ3Q7IEkgcHJlc2VudGVkIGEgZGlzY3Vz
c2lvbiBvZiB0aGUgaXNzdWVzIEkgZm91bmQgd2l0aCB0aGUgPG86cD48L286cD48L3A+DQo8cD4m
Z3Q7IGRyYWZ0LWNoZW4tc3VwYS1lY2EtZGF0YS1tb2RlbC0wNS50eHQsIGJ1dCBpdCBoYXMgbm90
IGJlZW4gdXBkYXRlZC48bzpwPjwvbzpwPjwvcD4NCjxwPiZndDsgV2Ugd291bGQgYXBwcmVjaWF0
ZSBmZWVkYmFjayBvbiB0aGlzIHZlcnNpb24gb2YgeWFuZyBtb2RlbC48bzpwPjwvbzpwPjwvcD4N
CjxwPiZndDsmbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwPiZndDsgJmx0O2kycnMgQ2hhaXIgaGF0
IG9uJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHA+Jmd0OyBJbiBteSByb2xlIGFzIEkyUlMgY2hhaXIs
Jm5ic3A7IEkyUlMgbmVlZHMgdG8gbWFrZSBwcm9ncmVzcyBzb29uIG9uIHRoZSA8bzpwPjwvbzpw
PjwvcD4NCjxwPiZndDsgSTJSUyBGQi1SSUIgZGF0YSBtb2RlbC4mbmJzcDsgV2Ugd291bGQgYXBw
cmVjaWF0ZSB5b3VyIGFpZC48bzpwPjwvbzpwPjwvcD4NCjxwPiZndDsgJmx0O2kycnMgY2hhaXIg
aGF0IG9mZiZndDs8bzpwPjwvbzpwPjwvcD4NCjxwPiZndDsmbmJzcDs8bzpwPjwvbzpwPjwvcD4N
CjxwPiZndDsgU3VlPG86cD48L286cD48L3A+DQo8cD4mZ3Q7Jm5ic3A7PG86cD48L286cD48L3A+
DQo8cD4mZ3Q7IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tPG86cD48L286cD48L3A+DQo8cD4m
Z3Q7IEZyb206IDxhIGhyZWY9Im1haWx0bzppbnRlcm5ldC1kcmFmdHNAaWV0Zi5vcmciIHRhcmdl
dD0iX2JsYW5rIj48c3BhbiBzdHlsZT0iY29sb3I6d2luZG93dGV4dDt0ZXh0LWRlY29yYXRpb246
bm9uZSI+aW50ZXJuZXQtZHJhZnRzQGlldGYub3JnPC9zcGFuPjwvYT4gWzxhIGhyZWY9Im1haWx0
bzppbnRlcm5ldC1kcmFmdHNAaWV0Zi5vcmciIHRhcmdldD0iX2JsYW5rIj48c3BhbiBzdHlsZT0i
Y29sb3I6d2luZG93dGV4dDt0ZXh0LWRlY29yYXRpb246bm9uZSI+bWFpbHRvOmludGVybmV0LWRy
YWZ0c0BpZXRmLm9yZzwvc3Bhbj48L2E+XTxvOnA+PC9vOnA+PC9wPg0KPHA+Jmd0OyBTZW50OiBN
b25kYXksIEphbnVhcnkgMDQsIDIwMTYgMTI6MDQgUE08bzpwPjwvbzpwPjwvcD4NCjxwPiZndDsg
VG86IFN1c2FuIEhhcmVzOyBRaW4gV3U7IFJ1c3MgV2hpdGU8bzpwPjwvbzpwPjwvcD4NCjxwPiZn
dDsgU3ViamVjdDogTmV3IFZlcnNpb24gTm90aWZpY2F0aW9uIGZvciA8bzpwPjwvbzpwPjwvcD4N
CjxwPiZndDsgZHJhZnQtaGFyZXMtaTJycy1ibnAtZWNhLWRhdGEtbW9kZWwtMDMudHh0PG86cD48
L286cD48L3A+DQo8cD4mZ3Q7Jm5ic3A7PG86cD48L286cD48L3A+DQo8cD4mZ3Q7Jm5ic3A7PG86
cD48L286cD48L3A+DQo8cD4mZ3Q7IEEgbmV3IHZlcnNpb24gb2YgSS1ELCBkcmFmdC1oYXJlcy1p
MnJzLWJucC1lY2EtZGF0YS1tb2RlbC0wMy50eHQ8bzpwPjwvbzpwPjwvcD4NCjxwPiZndDsgaGFz
IGJlZW4gc3VjY2Vzc2Z1bGx5IHN1Ym1pdHRlZCBieSBTdXNhbiBIYXJlcyBhbmQgcG9zdGVkIHRv
IHRoZSBJRVRGIHJlcG9zaXRvcnkuPG86cD48L286cD48L3A+DQo8cD4mZ3Q7Jm5ic3A7PG86cD48
L286cD48L3A+DQo8cD4mZ3Q7IE5hbWU6Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGRyYWZ0LWhhcmVzLWkycnMtYm5wLWVj
YS1kYXRhLW1vZGVsPG86cD48L286cD48L3A+DQo8cD4mZ3Q7IFJldmlzaW9uOiZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAwMzxvOnA+PC9vOnA+
PC9wPg0KPHA+Jmd0OyBUaXRsZTombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsgQW4gSW5mb3JtYXRpb24gTW9kZWwgZm9yIEJhc2ljIE5ldHdvcmsgUG9saWN5IGFu
ZCBGaWx0ZXIgUnVsZXM8bzpwPjwvbzpwPjwvcD4NCjxwPiZndDsgRG9jdW1lbnQgZGF0ZTombmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg
MjAxNi0wMS0wNDxvOnA+PC9vOnA+PC9wPg0KPHA+Jmd0OyBHcm91cDombmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgSW5kaXZpZHVhbCBT
dWJtaXNzaW9uPG86cD48L286cD48L3A+DQo8cD4mZ3Q7IFBhZ2VzOiZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAzMDxvOnA+
PC9vOnA+PC9wPg0KPHA+Jmd0OyBVUkw6Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxhIGhyZWY9Imh0dHBzOi8vd3d3Lmll
dGYub3JnL2ludGVybmV0LWRyYWZ0cy9kcmFmdC1oYXJlcy1pMnJzLWJucC1lY2EtZGF0YS1tb2Rl
bC0wMy50eHQiIHRhcmdldD0iX2JsYW5rIj4NCjxzcGFuIHN0eWxlPSJjb2xvcjp3aW5kb3d0ZXh0
O3RleHQtZGVjb3JhdGlvbjpub25lIj5odHRwczovL3d3dy5pZXRmLm9yZy9pbnRlcm5ldC1kcmFm
dHMvZHJhZnQtaGFyZXMtaTJycy1ibnAtZWNhLWRhdGEtbW9kZWwtMDMudHh0PC9zcGFuPjwvYT48
bzpwPjwvbzpwPjwvcD4NCjxwPiZndDsgU3RhdHVzOiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8YSBocmVmPSJodHRwczovL2RhdGF0cmFja2VyLmlldGYu
b3JnL2RvYy9kcmFmdC1oYXJlcy1pMnJzLWJucC1lY2EtZGF0YS1tb2RlbC8iIHRhcmdldD0iX2Js
YW5rIj4NCjxzcGFuIHN0eWxlPSJjb2xvcjp3aW5kb3d0ZXh0O3RleHQtZGVjb3JhdGlvbjpub25l
Ij5odHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9kcmFmdC1oYXJlcy1pMnJzLWJucC1l
Y2EtZGF0YS1tb2RlbC88L3NwYW4+PC9hPjxvOnA+PC9vOnA+PC9wPg0KPHA+Jmd0OyBIdG1saXpl
ZDombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPGEgaHJlZj0iaHR0cHM6Ly90
b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWhhcmVzLWkycnMtYm5wLWVjYS1kYXRhLW1vZGVsLTAz
IiB0YXJnZXQ9Il9ibGFuayI+DQo8c3BhbiBzdHlsZT0iY29sb3I6d2luZG93dGV4dDt0ZXh0LWRl
Y29yYXRpb246bm9uZSI+aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWhhcmVzLWky
cnMtYm5wLWVjYS1kYXRhLW1vZGVsLTAzPC9zcGFuPjwvYT48bzpwPjwvbzpwPjwvcD4NCjxwPiZn
dDsgRGlmZjombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsgPGEgaHJlZj0iaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcmZjZGlmZj91cmwyPWRy
YWZ0LWhhcmVzLWkycnMtYm5wLWVjYS1kYXRhLW1vZGVsLTAzIiB0YXJnZXQ9Il9ibGFuayI+DQo8
c3BhbiBzdHlsZT0iY29sb3I6d2luZG93dGV4dDt0ZXh0LWRlY29yYXRpb246bm9uZSI+aHR0cHM6
Ly93d3cuaWV0Zi5vcmcvcmZjZGlmZj91cmwyPWRyYWZ0LWhhcmVzLWkycnMtYm5wLWVjYS1kYXRh
LW1vZGVsLTAzPC9zcGFuPjwvYT48bzpwPjwvbzpwPjwvcD4NCjxwPiZndDsmbmJzcDs8bzpwPjwv
bzpwPjwvcD4NCjxwPiZndDsgQWJzdHJhY3Q6PG86cD48L286cD48L3A+DQo8cD4mZ3Q7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7IFRoaXMgZG9jdW1lbnQgY29udGFpbnMgdGhlIEJhc2ljIE5ldHdv
cmsgUG9saWN5IGFuZCBGaWx0ZXJzIChCTlAgSU0pPG86cD48L286cD48L3A+DQo8cD4mZ3Q7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IERhdGEgTW9kZWwgd2hpY2ggcHJvdmlkZXMgYSBwb2xpY3kg
bW9kZWwgdGhhdCBzdXBwb3J0IGFuIG9yZGVyZWQgbGlzdDxvOnA+PC9vOnA+PC9wPg0KPHA+Jmd0
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBvZiBtYXRjaC1jb25kaXRpb24tYWN0aW9uIChha2Eg
ZXZlbnQtY29uZGl0aW9uLWFjdGlvbiAoRUNBKSkgZm9yPG86cD48L286cD48L3A+DQo8cD4mZ3Q7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IG11bHRpcGxlIGxheWVycyAoaW50ZXJmYWNlLCBMMS1M
NCwgYXBwbGljYXRpb24pIGFuZCBvdGhlciBmYWN0b3JzPG86cD48L286cD48L3A+DQo8cD4mZ3Q7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IChzaXplIG9mIHBhY2tldCwgdGltZSBvZiBkYXkpLiZu
YnNwOyBUaGUgYWN0aW9ucyBhbGxvdyBmb3Igc2V0dGluZyBhY3Rpb25zPG86cD48L286cD48L3A+
DQo8cD4mZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IChRT1MgYW5kIG90aGVyKSwgZGVjYXBz
dWxhdGlvbiwgZW5jYXBzdWxhdGlvbiwgcGx1cyBmb3J3YXJkaW5nPG86cD48L286cD48L3A+DQo8
cD4mZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGFjdGlvbnMuJm5ic3A7IFRoZSBwb2xpY3kg
bW9kZWwgY2FuIGJlIHVzZWQgd2l0aCB0aGUgSTJSUyBmaWx0ZXItYmFzZWQ8bzpwPjwvbzpwPjwv
cD4NCjxwPiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgUklCLjxvOnA+PC9vOnA+PC9wPg0K
PHA+Jmd0OyZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHA+Jmd0OyZuYnNwOzxvOnA+PC9vOnA+PC9w
Pg0KPHA+Jmd0OyZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHA+Jmd0OyZuYnNwOzxvOnA+PC9vOnA+
PC9wPg0KPHA+Jmd0OyBQbGVhc2Ugbm90ZSB0aGF0IGl0IG1heSB0YWtlIGEgY291cGxlIG9mIG1p
bnV0ZXMgZnJvbSB0aGUgdGltZSBvZiBzdWJtaXNzaW9uIHVudGlsIHRoZSBodG1saXplZCB2ZXJz
aW9uIGFuZCBkaWZmIGFyZSBhdmFpbGFibGUgYXQNCjxhIGhyZWY9Imh0dHA6Ly90b29scy5pZXRm
Lm9yZyIgdGFyZ2V0PSJfYmxhbmsiPnRvb2xzLmlldGYub3JnPC9hPi48bzpwPjwvbzpwPjwvcD4N
CjxwPiZndDsmbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwPiZndDsgVGhlIElFVEYgU2VjcmV0YXJp
YXQ8bzpwPjwvbzpwPjwvcD4NCjxwPiZndDsmbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwPiZndDsm
bmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwPiZndDsgX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX188bzpwPjwvbzpwPjwvcD4NCjxwPiZndDsgaTJycyBtYWlsaW5n
IGxpc3Q8bzpwPjwvbzpwPjwvcD4NCjxwPiZndDsgPGEgaHJlZj0ibWFpbHRvOmkycnNAaWV0Zi5v
cmciIHRhcmdldD0iX2JsYW5rIj48c3BhbiBzdHlsZT0iY29sb3I6d2luZG93dGV4dDsNCnRleHQt
ZGVjb3JhdGlvbjpub25lIj5pMnJzQGlldGYub3JnPC9zcGFuPjwvYT48bzpwPjwvbzpwPjwvcD4N
CjxwPiZndDsgPGEgaHJlZj0iaHR0cHM6Ly93d3cuaWV0Zi5vcmcvbWFpbG1hbi9saXN0aW5mby9p
MnJzIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gc3R5bGU9ImNvbG9yOndpbmRvd3RleHQ7dGV4dC1k
ZWNvcmF0aW9uOm5vbmUiPmh0dHBzOi8vd3d3LmlldGYub3JnL21haWxtYW4vbGlzdGluZm8vaTJy
czwvc3Bhbj48L2E+PG86cD48L286cD48L3A+DQo8cD4mZ3Q7Jm5ic3A7PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1ib3R0
b206MTIuMHB0Ij48YnI+DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXzxicj4NClN1cGEgbWFpbGluZyBsaXN0PGJyPg0KPGEgaHJlZj0ibWFpbHRvOlN1cGFA
aWV0Zi5vcmciPlN1cGFAaWV0Zi5vcmc8L2E+PGJyPg0KPGEgaHJlZj0iaHR0cHM6Ly93d3cuaWV0
Zi5vcmcvbWFpbG1hbi9saXN0aW5mby9zdXBhIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly93d3cu
aWV0Zi5vcmcvbWFpbG1hbi9saXN0aW5mby9zdXBhPC9hPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48YnI+DQo8YnIgY2xlYXI9ImFsbCI+DQo8YnI+DQotLSA8
bzpwPjwvbzpwPjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+cmVnYXJk
cyw8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkpv
aG48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ib2R5
Pg0KPC9odG1sPg0K

--_000_B818037A70EDCC4A86113DA25EC02098201B9472SJCEML701CHMchi_--



From nobody Mon Jan 11 17:21:18 2016
Return-Path: <session_request_developers@ietf.org>
X-Original-To: supa@ietf.org
Delivered-To: supa@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id BA82F1A8AC1; Mon, 11 Jan 2016 09:04:19 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: "\"IETF Meeting Session Request Tool\"" <session_request_developers@ietf.org>
To: <session-request@ietf.org>
X-Test-IDTracker: no
X-IETF-IDTracker: 6.11.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <20160111170419.29504.19779.idtracker@ietfa.amsl.com>
Date: Mon, 11 Jan 2016 09:04:19 -0800
Archived-At: <http://mailarchive.ietf.org/arch/msg/supa/YFOWRY6iqs_P3oCFWEyBKI53jbQ>
X-Mailman-Approved-At: Mon, 11 Jan 2016 17:21:17 -0800
Cc: bclaise@cisco.com, d.king@lancaster.ac.uk, supa-chairs@ietf.org, supa@ietf.org
Subject: [Supa] supa - New Meeting Session Request for IETF 95
X-BeenThere: supa@ietf.org
X-Mailman-Version: 2.1.15
List-Id: "This list is to discuss SUPA \(Simplified Use of Policy Abstractions\) related issues." <supa.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/supa>, <mailto:supa-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/supa/>
List-Post: <mailto:supa@ietf.org>
List-Help: <mailto:supa-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/supa>, <mailto:supa-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Jan 2016 17:04:19 -0000

A new meeting session request has just been submitted by Daniel King, a Chair of the supa working group.


---------------------------------------------------------
Working Group Name: Simplified Use of Policy Abstractions
Area Name: Operations and Management Area
Session Requester: Daniel King

Number of Sessions: 1
Length of Session(s):  1 Hour
Number of Attendees: 75
Conflicts to Avoid: 
 First Priority: i2nsf l3sm lime netmod netconf opsarea opsawg sdnrg pce
 Second Priority: rtgarea rtgwg i2rs



Special Requests:
  
---------------------------------------------------------


From nobody Thu Jan 28 13:55:07 2016
Return-Path: <bwietf@bwijnen.net>
X-Original-To: supa@ietfa.amsl.com
Delivered-To: supa@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 96AEF1A9128 for <supa@ietfa.amsl.com>; Thu, 28 Jan 2016 13:55:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.41
X-Spam-Level: 
X-Spam-Status: No, score=0.41 tagged_above=-999 required=5 tests=[BAYES_50=0.8, GB_I_LETTER=-2, MANGLED_MEDS=2.3, RCVD_IN_DNSWL_LOW=-0.7, T_FILL_THIS_FORM_SHORT=0.01] autolearn=ham
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 T8MeOe_TIhTE for <supa@ietfa.amsl.com>; Thu, 28 Jan 2016 13:54:46 -0800 (PST)
Received: from lb3-smtp-cloud3.xs4all.net (lb3-smtp-cloud3.xs4all.net [194.109.24.30]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EC1BA1A9126 for <supa@ietf.org>; Thu, 28 Jan 2016 13:54:44 -0800 (PST)
Received: from Macintosh-2.fritz.box ([83.163.239.181]) by smtp-cloud3.xs4all.net with ESMTP id BZua1s00N3vXPcr01ZubGS; Thu, 28 Jan 2016 22:54:42 +0100
References: <5668BFD3.3050602@bwijnen.net>
To: "supa@ietf.org" <supa@ietf.org>
From: "Bert Wijnen (IETF)" <bwietf@bwijnen.net>
X-Forwarded-Message-Id: <5668BFD3.3050602@bwijnen.net>
Message-ID: <56AA8E16.9080307@bwijnen.net>
Date: Thu, 28 Jan 2016 22:54:30 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:38.0) Gecko/20100101 Thunderbird/38.5.1
MIME-Version: 1.0
In-Reply-To: <5668BFD3.3050602@bwijnen.net>
Content-Type: multipart/mixed; boundary="------------000303070300090809050908"
Archived-At: <http://mailarchive.ietf.org/arch/msg/supa/jbQCEgyn6agZyiT7OihfA97_LRQ>
Subject: [Supa] New Version Notification for draft-bw-supa-declarative-policy-data-model-00.txt
X-BeenThere: supa@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "This list is to discuss SUPA \(Simplified Use of Policy Abstractions\) related issues." <supa.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/supa>, <mailto:supa-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/supa/>
List-Post: <mailto:supa@ietf.org>
List-Help: <mailto:supa-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/supa>, <mailto:supa-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 28 Jan 2016 21:55:02 -0000

This is a multi-part message in MIME format.
--------------000303070300090809050908
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi SUPA-geeks,

We have posted this draft to the I-D repository a while back.

Since the SUPA charter says:

    Declarative policies that specify the goals to achieve but not how to achieve those goals
    (also called "intent-  based" policies) are out of scope for the initial phase of SUPA but
    may be considered in future phases of SUPA.

So we wondered if this document can/should be discussed at all on this mailing list
(we authors/editors would appreciate that) or if we should discuss it elsewhere?

AD and or WG chairs, can you please make a statement about that.

Thanks,
Bert

-------- Forwarded Message --------
Subject: New Version Notification for draft-bw-supa-declarative-policy-data-model-00.txt
Date: Wed, 09 Dec 2015 15:49:11 -0800
From: internet-drafts@ietf.org
To: Yinben Xia <xiayinben@huawei.com>, Tianran Zhou <zhoutianran@huawei.com>, Bert Wijnen <bertietf@bwijnen.net>


A new version of I-D, draft-bw-supa-declarative-policy-data-model-00.txt
has been successfully submitted by Bert Wijnen and posted to the
IETF repository.

Name:		draft-bw-supa-declarative-policy-data-model
Revision:	00
Title:		A YANG Data Model for Declarative Policy
Document date:	2015-12-09
Group:		Individual Submission
Pages:		35
URL:            https://www.ietf.org/internet-drafts/draft-bw-supa-declarative-policy-data-model-00.txt
Status:         https://datatracker.ietf.org/doc/draft-bw-supa-declarative-policy-data-model/
Htmlized:       https://tools.ietf.org/html/draft-bw-supa-declarative-policy-data-model-00


Abstract:
     This document describes a base YANG data model for declarative
     policies that can be used within the SUPA (Simplified Use of Policy
     Abstractions) framework.  The base model can be augmented by
     additional YANG modules defining data models for intent related
     policies and functions to support various network scenarios and
     applications.  The base declarative policy data model provides common
     building blocks for extensions.


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.

The IETF Secretariat








--------------000303070300090809050908
Content-Type: text/plain; charset=UTF-8;
 name="draft-bw-supa-declarative-policy-data-model-00.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="draft-bw-supa-declarative-policy-data-model-00.txt"

CgoKClNVUEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVC4gWmhvdQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZLiBYaWEKSW50ZW5kZWQgc3Rh
dHVzOiBTdGFuZGFyZHMgVHJhY2sgICAgICAgICAgICBIdWF3ZWkgVGVjaG5vbG9naWVzIENv
LiwgTHRkCkV4cGlyZXM6IEp1bmUgMTEsIDIwMTYgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBCLiBXaWpuZW4sIEVkLgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnN1bHRhbnQKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWNlbWJl
ciA5LCAyMDE1CgoKICAgICAgICAgICAgICAgIEEgWUFORyBEYXRhIE1vZGVsIGZvciBEZWNs
YXJhdGl2ZSBQb2xpY3kKICAgICAgICAgICAgIGRyYWZ0LWJ3LXN1cGEtZGVjbGFyYXRpdmUt
cG9saWN5LWRhdGEtbW9kZWwtMDAKCkFic3RyYWN0CgogICBUaGlzIGRvY3VtZW50IGRlc2Ny
aWJlcyBhIGJhc2UgWUFORyBkYXRhIG1vZGVsIGZvciBkZWNsYXJhdGl2ZQogICBwb2xpY2ll
cyB0aGF0IGNhbiBiZSB1c2VkIHdpdGhpbiB0aGUgU1VQQSAoU2ltcGxpZmllZCBVc2Ugb2Yg
UG9saWN5CiAgIEFic3RyYWN0aW9ucykgZnJhbWV3b3JrLiAgVGhlIGJhc2UgbW9kZWwgY2Fu
IGJlIGF1Z21lbnRlZCBieQogICBhZGRpdGlvbmFsIFlBTkcgbW9kdWxlcyBkZWZpbmluZyBk
YXRhIG1vZGVscyBmb3IgaW50ZW50IHJlbGF0ZWQKICAgcG9saWNpZXMgYW5kIGZ1bmN0aW9u
cyB0byBzdXBwb3J0IHZhcmlvdXMgbmV0d29yayBzY2VuYXJpb3MgYW5kCiAgIGFwcGxpY2F0
aW9ucy4gIFRoZSBiYXNlIGRlY2xhcmF0aXZlIHBvbGljeSBkYXRhIG1vZGVsIHByb3ZpZGVz
IGNvbW1vbgogICBidWlsZGluZyBibG9ja3MgZm9yIGV4dGVuc2lvbnMuCgpTdGF0dXMgb2Yg
VGhpcyBNZW1vCgogICBUaGlzIEludGVybmV0LURyYWZ0IGlzIHN1Ym1pdHRlZCBpbiBmdWxs
IGNvbmZvcm1hbmNlIHdpdGggdGhlCiAgIHByb3Zpc2lvbnMgb2YgQkNQIDc4IGFuZCBCQ1Ag
NzkuCgogICBJbnRlcm5ldC1EcmFmdHMgYXJlIHdvcmtpbmcgZG9jdW1lbnRzIG9mIHRoZSBJ
bnRlcm5ldCBFbmdpbmVlcmluZwogICBUYXNrIEZvcmNlIChJRVRGKS4gIE5vdGUgdGhhdCBv
dGhlciBncm91cHMgbWF5IGFsc28gZGlzdHJpYnV0ZQogICB3b3JraW5nIGRvY3VtZW50cyBh
cyBJbnRlcm5ldC1EcmFmdHMuICBUaGUgbGlzdCBvZiBjdXJyZW50IEludGVybmV0LQogICBE
cmFmdHMgaXMgYXQgaHR0cDovL2RhdGF0cmFja2VyLmlldGYub3JnL2RyYWZ0cy9jdXJyZW50
Ly4KCiAgIEludGVybmV0LURyYWZ0cyBhcmUgZHJhZnQgZG9jdW1lbnRzIHZhbGlkIGZvciBh
IG1heGltdW0gb2Ygc2l4IG1vbnRocwogICBhbmQgbWF5IGJlIHVwZGF0ZWQsIHJlcGxhY2Vk
LCBvciBvYnNvbGV0ZWQgYnkgb3RoZXIgZG9jdW1lbnRzIGF0IGFueQogICB0aW1lLiAgSXQg
aXMgaW5hcHByb3ByaWF0ZSB0byB1c2UgSW50ZXJuZXQtRHJhZnRzIGFzIHJlZmVyZW5jZQog
ICBtYXRlcmlhbCBvciB0byBjaXRlIHRoZW0gb3RoZXIgdGhhbiBhcyAid29yayBpbiBwcm9n
cmVzcy4iCgogICBUaGlzIEludGVybmV0LURyYWZ0IHdpbGwgZXhwaXJlIG9uIEp1bmUgMTEs
IDIwMTYuCgpDb3B5cmlnaHQgTm90aWNlCgogICBDb3B5cmlnaHQgKGMpIDIwMTUgSUVURiBU
cnVzdCBhbmQgdGhlIHBlcnNvbnMgaWRlbnRpZmllZCBhcyB0aGUKICAgZG9jdW1lbnQgYXV0
aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICBUaGlzIGRvY3VtZW50IGlzIHN1Ympl
Y3QgdG8gQkNQIDc4IGFuZCB0aGUgSUVURiBUcnVzdCdzIExlZ2FsCiAgIFByb3Zpc2lvbnMg
UmVsYXRpbmcgdG8gSUVURiBEb2N1bWVudHMKICAgKGh0dHA6Ly90cnVzdGVlLmlldGYub3Jn
L2xpY2Vuc2UtaW5mbykgaW4gZWZmZWN0IG9uIHRoZSBkYXRlIG9mCiAgIHB1YmxpY2F0aW9u
IG9mIHRoaXMgZG9jdW1lbnQuICBQbGVhc2UgcmV2aWV3IHRoZXNlIGRvY3VtZW50cwogICBj
YXJlZnVsbHksIGFzIHRoZXkgZGVzY3JpYmUgeW91ciByaWdodHMgYW5kIHJlc3RyaWN0aW9u
cyB3aXRoIHJlc3BlY3QKCgoKWmhvdSwgZXQgYWwuICAgICAgICAgICAgICBFeHBpcmVzIEp1
bmUgMTEsIDIwMTYgICAgICAgICAgICAgICAgIFtQYWdlIDFdCgwKSW50ZXJuZXQtRHJhZnQg
ICAgICBEYXRhIE1vZGVsIGZvciBEZWNsYXJhdGl2ZSBQb2xpY3kgICAgICBEZWNlbWJlciAy
MDE1CgoKICAgdG8gdGhpcyBkb2N1bWVudC4gIENvZGUgQ29tcG9uZW50cyBleHRyYWN0ZWQg
ZnJvbSB0aGlzIGRvY3VtZW50IG11c3QKICAgaW5jbHVkZSBTaW1wbGlmaWVkIEJTRCBMaWNl
bnNlIHRleHQgYXMgZGVzY3JpYmVkIGluIFNlY3Rpb24gNC5lIG9mCiAgIHRoZSBUcnVzdCBM
ZWdhbCBQcm92aXNpb25zIGFuZCBhcmUgcHJvdmlkZWQgd2l0aG91dCB3YXJyYW50eSBhcwog
ICBkZXNjcmliZWQgaW4gdGhlIFNpbXBsaWZpZWQgQlNEIExpY2Vuc2UuCgpUYWJsZSBvZiBD
b250ZW50cwoKICAgMS4gIEludHJvZHVjdGlvbiAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g
LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gICAyCiAgIDIuICBSZXF1aXJlbWVudHMgTGFuZ3Vh
Z2UgYW5kIFRlcm1pbm9sb2d5IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuICAgMwogICAzLiAg
RGVzaWduIG9mIFRoZSBEZWNsYXJhdGl2ZSBQb2xpY3kgTW9kdWxlIC4gLiAuIC4gLiAuIC4g
LiAuIC4gLiAgIDMKICAgICAzLjEuICBEZXNpZ24gb2YgVGhlIE9wZXJhdGlvbiAuIC4gLiAu
IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gICA1CiAgICAgMy4yLiAgRGVzaWduIG9mIFRo
ZSBSZXN1bHQgIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuICAgNwogICA0
LiAgRGVjbGFyYXRpdmUgUG9saWN5IEJhc2UgWUFORyBEYXRhIE1vZGVsIC4gLiAuIC4gLiAu
IC4gLiAuIC4gLiAgIDkKICAgICA0LjEuICBEZWNsYXJhdGl2ZSBQb2xpY3kgRGF0YSBNb2Rl
bCBIaWVyYXJjaHkgLiAuIC4gLiAuIC4gLiAuIC4gICA5CiAgICAgNC4yLiAgRGVjbGFyYXRp
dmUgUG9saWN5IEJhc2UgRGF0YSBNb2RlbCBpbiBZQU5HIE1vZHVsZSAuIC4gLiAuICAxMgog
ICA1LiAgRGVjbGFyYXRpdmUgUG9saWN5IERhdGEgTW9kZWwgRXhhbXBsZXMgIC4gLiAuIC4g
LiAuIC4gLiAuIC4gLiAgMzEKICAgICA1LjEuICBMaW5rIHV0aWxpemF0aW9uIG9wdGltaXph
dGlvbiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gIDMxCiAgICAgNS4yLiAgUG9saWN5
IEJhc2VkIEJhbmR3aWR0aCBvbiBEZW1hbmQgIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuICAz
MgogICAgIDUuMy4gIFNlcnZpY2UgZnVuY3Rpb24gY2hhaW5pbmcgLiAuIC4gLiAuIC4gLiAu
IC4gLiAuIC4gLiAuIC4gLiAgMzMKICAgNi4gIFNlY3VyaXR5IENvbnNpZGVyYXRpb25zIC4g
LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gIDMzCiAgIDcuICBJQU5BIENv
bnNpZGVyYXRpb25zIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu
ICAzMwogICA4LiAgQWNrbm93bGVkZ2VtZW50cyAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g
LiAuIC4gLiAuIC4gLiAuIC4gLiAgMzMKICAgOS4gIEluZm9ybWF0aXZlIFJlZmVyZW5jZXMg
IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gIDM0CiAgIEF1dGhvcnMn
IEFkZHJlc3NlcyAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g
LiAuICAzNQoKMS4gIEludHJvZHVjdGlvbgoKICAgQ2xvdWQgY29tcHV0aW5nIGFuZCBTb2Z0
d2FyZSBEZWZpbmVkIE5ldHdvcmtpbmcgKFNETikgYXJlIG1vdmluZyB0aGUKICAgSVQgd29y
bGQgZnJvbSBhIG5ldHdvcmstY2VudHJpYyB2aWV3IHRvIGFuIGFwcGxpY2F0aW9uLWNlbnRy
aWMgdmlldy4KICAgSW50ZW50IGJhc2VkIE5vcnRoIEJvdW5kIEludGVyZmFjZSAoTkJJKSBw
cm92aWRlcyBhcHBsaWNhdGlvbnMgdGhlCiAgIGFiaWxpdHkgc2lnbmFsIHRoZSAiaW50ZW50
IiAoRS5nLiBjcmVhdGUgYSBuZXR3b3JrIGJldHdlZW4gMwogICBhcHBsaWNhdGlvbnMpIHRv
IHRoZSBuZXR3b3JrIGxheWVyIHJhdGhlciB0aGFuIHNwZWNpZnkgdGhlIGRldGFpbHMgb2YK
ICAgdGhlIG5ldHdvcmsuICBUaGUgbmV0d29yayBpbnRlbnQgaXMgZGVjbGFyYXRpdmUgKCJn
byB0byB0aGUgc3RvcmUiKQogICByYXRoZXIgdGhhbiBpbXBlcmF0aXZlICgiZm9sbG93IHRo
aXMgcm91dGUgdG8gdGhlIHN0b3JlIiksIGxlYXZpbmcKICAgdGhlIGRldGFpbHMgdG8gdGhl
IG5ldHdvcmsgaW1wbGVtZW50YXRpb24uCgogICBJbiB0aGUgU1VQQSBwcm9wb3NpdGlvbiBb
SS1ELmtseXVzLXN1cGEtcHJvcG9zaXRpb25dLCB0aGUgZGVjbGFyYXRpdmUKICAgcG9saWN5
IGlzIGludHJvZHVlZCBhcyBhIGhpZ2hlciBsZXZlbCBhYnN0cmFjdGlvbiBmb3Igc2Vydmlj
ZQogICBtYW5hZ2VtZW50LiAgVGhlIE5FTU8gbGFuZ3VhZ2Ugc3BlY2lmaWNhdGlvbnMKICAg
W0ktRC54aWEtc2RucmctbmVtby1sYW5ndWFnZV0gZGVzY3JpYmUgYSBzZXQgb2YgZGVjbGFy
YXRpdmUKICAgcHJpbWl0aXZlcyB0byBtYW5pcHVsYXRlIGFuZCBtYW5hZ2UgdmlydHVhbCBu
ZXR3b3Jrcywgd2hlcmUgdGhlCiAgIGRlY2xhcmF0aXZlIHBvbGljeSBtb2RlbCBpcyBhIHZl
cnkgaW1wb3J0IHBhcnQuICBUaGUgZGVjbGFyYXRpdmUKICAgcG9saWN5IGJhc2UgbW9kZWwg
aXMgYWxzbyB0aGUgc2hhcmVkIHBhcnQgdGhhdCBjYW4gYmUgdXNlZCBpbiB3b3JraW5nCiAg
IGdyb3VwcyB3aXRoaW4gSUVURiBhbmQgYWxzbyBpbiBvdGhlciBvcmdhbml6YXRpb25zLiAg
SXQgcHJvdmlkZXMgYQogICBjb25zaXN0ZW50IGFic3RyYWN0aW9uIGZvciBhIGhpZ2hlciBs
ZXZlbCBwb2xpY3kgYmFzZWQgbmV0d29yawogICBtYW5hZ2VtZW50IHN5c3RlbSB3aGlsZSBj
b25jZWFsaW5nIHZhcmlvdXMgaW1wbGVtZW50YXRpb24gdGVjaG5pcXVlcwogICBhbmQgbXVs
dGktdmVuZG9yIGRldmljZXMuCgoKCgpaaG91LCBldCBhbC4gICAgICAgICAgICAgIEV4cGly
ZXMgSnVuZSAxMSwgMjAxNiAgICAgICAgICAgICAgICAgW1BhZ2UgMl0KDApJbnRlcm5ldC1E
cmFmdCAgICAgIERhdGEgTW9kZWwgZm9yIERlY2xhcmF0aXZlIFBvbGljeSAgICAgIERlY2Vt
YmVyIDIwMTUKCgogICBUaGlzIGRvY3VtZW50IGludHJvZHVjZXMgWUFORyBbUkZDNjAyMF1b
UkZDNjAyMV1kYXRhIG1vZGVscyBmb3IgdGhlCiAgIGRlY2xhcmF0aXZlIHBvbGljeS4gIFRo
aXMgc2V0IG9mIG1vZGVscyBmYWNpbGl0YXRlcyB0aGUKICAgc3RhbmRhcmRpemF0aW9uIGZv
ciBhIG1vcmUgYWJzdHJhY3RlZCBwb2xpY3kgY29uZmlndXJhdGlvbiBpbnRlcmZhY2UKICAg
Zm9yIFNVUEEuICBUaGUgYmFzaWMgbW9kZWwgY2FuIGJlIGF1Z21lbnRlZCBieSBhZGRpdGlv
bmFsIFlBTkcKICAgbW9kdWxlcyBkZWZpbmluZyBkYXRhIG1vZGVscyBmb3IgaW50ZW50IHJl
bGF0ZWQgcHJvdG9jb2xzIGFuZAogICBmdW5jdGlvbnMgdG8gc3VwcG9ydCB2YXJpb3VzIGRp
ZmZlcmVudCBuZXR3b3JrIHNjZW5hcmlvcyBhbmQKICAgYXBwbGljYXRpb25zLiAgVGhlIGJh
c2UgZGVjbGFyYXRpdmUgcG9saWN5IGRhdGEgbW9kZWwgcHJvdmlkZXMgY29tbW9uCiAgIGJ1
aWxkaW5nIGJsb2NrcyBmb3IgZXh0ZW5zaW9ucywgc3VjaCBhcyBzcGVjaWZpYyBvcGVyYXRp
b24gYW5kCiAgIHJlc3VsdC4KCjIuICBSZXF1aXJlbWVudHMgTGFuZ3VhZ2UgYW5kIFRlcm1p
bm9sb2d5CgogICBUaGUga2V5IHdvcmRzICJNVVNUIiwgIk1VU1QgTk9UIiwgIlJFUVVJUkVE
IiwgIlNIQUxMIiwgIlNIQUxMIE5PVCIsCiAgICJTSE9VTEQiLCAiU0hPVUxEIE5PVCIsICJS
RUNPTU1FTkRFRCIsICJOT1QgUkVDT01NRU5ERUQiLCAiTUFZIiwgYW5kCiAgICJPUFRJT05B
TCIgaW4gdGhpcyBkb2N1bWVudCBhcmUgdG8gYmUgaW50ZXJwcmV0ZWQgYXMgZGVzY3JpYmVk
IGluCiAgIFtSRkMyMTE5XSB3aGVuIHRoZXkgYXBwZWFyIGluIEFMTCBDQVBTLiAgV2hlbiB0
aGVzZSB3b3JkcyBhcmUgbm90IGluCiAgIEFMTCBDQVBTIChzdWNoIGFzICJzaG91bGQiIG9y
ICJTaG91bGQiKSwgdGhleSBoYXZlIHRoZWlyIHVzdWFsCiAgIEVuZ2xpc2ggbWVhbmluZ3Ms
IGFuZCBhcmUgbm90IHRvIGJlIGludGVycHJldGVkIGFzIFtSRkMyMTE5XSBrZXkKICAgd29y
ZHMuCgozLiAgRGVzaWduIG9mIFRoZSBEZWNsYXJhdGl2ZSBQb2xpY3kgTW9kdWxlCgogICBE
ZWNsYXJhdGl2ZSBwb2xpY2llcyB0aGF0IGNhbiBhcHBseSB0byBzZXJ2aWNlcyBhbmQvb3Ig
cmVzb3VyY2VzCiAgIGRlc2NyaWJlIHdoYXQgdG8gZG8sIGJ1dCBub3QgaG93IHRvIGRvIGl0
LiAgVGhpcyBzZWN0aW9uIGdpdmVzIGFuCiAgIG92ZXJ2aWV3IG9mIHRoZSBkZWNsYXJhdGl2
ZSBwb2xpY3kgbW9kdWxlIGFzIHNob3duIGluIEZpZ3VyZSAxCgogICBTaW1pbGFyIHRvIG90
aGVyIGtpbmRzIG9mIHBvbGljaWVzIFtJLUQuY2hlbi1zdXBhLWVjYS1kYXRhLW1vZGVsXSwK
ICAgdGhlcmUgd2lsbCBiZSBhIHBvbGljeSBoZWFkZXIgd2hpY2ggY29udGFpbnMgZ2VuZXJh
bCBwb2xpY3kKICAgaW5mb3JtYXRpb24gc3VjaCBhczoKCiAgIG8gIHBvbGljeS1pZDogaXMg
dGhlIGdsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciBhIHBvbGljeQogICAgICBpbnN0
YW5jZS4KCiAgIG8gIHBvbGljeS1uYW1lOiBpcyBhbiBlYXN5IHRvIHJlY29nbml6ZSBhbmQg
cmVmZXIgc3RpbmcgZm9yIHBvbGljeQogICAgICBpbnN0YW5jZSBuYW1pbmcuCgogICBvICBw
b2xpY3ktcHJpb3JpdHk6IGluZGljYXRlcyB0aGUgcHJpb3JpdHkgb2YgdGhlIHBvbGljeSBp
bnN0YW5jZS4KICAgICAgSGlnaGVyIHByaW9yaXR5IHBvbGljeSBpbnN0YW5jZSB3aWxsIGdl
dCB0aGUgcHJpb3Igb3JkZXIgdG8KICAgICAgZXhlY3V0ZS4KCiAgIG8gIHBvbGljeS12YWxp
ZGl0eS1wZXJpb2Q6IGNvbnRyb2xzIHRoZSBsaWZlIGN5Y2xlIG9mIHRoZSBwb2xpY3kKICAg
ICAgaW5zdGFuY2Ugd2l0aCB0aGUgc3RhcnQvZW5kIHRpbWUgb3IgcGVyaW9kLgoKICAgbyAg
cG9saWN5LXJ1bGUtZGVwbG95LXN0YXR1czogZGVzY3JpYmVzIHRoZSBkZXBsb3ltZW50IHN0
YXR1cyBvZiB0aGUKICAgICAgcG9saWN5IHJ1bGUuCgogICBvICBwb2xpY3ktcnVsZS1leGVj
LXN0YXR1czogZGVzY3JpYmVzIHRoZSBleGVjdXRpb24gc3RhdHVzIG9mIHRoZQogICAgICBw
b2xpY3kgcnVsZS4KCgoKWmhvdSwgZXQgYWwuICAgICAgICAgICAgICBFeHBpcmVzIEp1bmUg
MTEsIDIwMTYgICAgICAgICAgICAgICAgIFtQYWdlIDNdCgwKSW50ZXJuZXQtRHJhZnQgICAg
ICBEYXRhIE1vZGVsIGZvciBEZWNsYXJhdGl2ZSBQb2xpY3kgICAgICBEZWNlbWJlciAyMDE1
CgoKICAgVGhlIGRlY2xhcmF0aXZlIHBvbGljeSBleHByZXNzaW9uIG5lZWQgdG8gY29udGFp
biBhIHRhcmdldC1vYmplY3QsCiAgIHN1Y2ggYXMgYSBWUE4sIGEgZmxvdywgYSBsaW5rIGFu
ZCBzbyBvbiwgdG8gd2hpY2ggdGhlIHBvbGljeSBpbnN0YW5jZQogICB3aWxsIGFwcGx5LiAg
VGhlIHRhcmdldC1vYmplY3QgYWxzbyBkZWZpbmVzIHRoZSBnb3Zlcm5hbmNlIHNjb3BlIG9m
CiAgIHRoZSBwb2xpY3kgYXBwbGljYXRpb24uICBUaGUgdGFyZ2V0LW9iamVjdCBpcyBhIGRh
dGEgbW9kZWwgZGVmaW5pdGlvbgogICB0byBiZSBwcm92aWRlZCBieSBvdGhlciBXR3MgaW4g
YSBzZXBhcmF0ZSBtb2R1bGUgYW5kIGlzIG5vdCBwYXJ0IG9mCiAgIHRoZSBkZWNsYXJhdGl2
ZSBwb2xpY3kgbW9kdWxlIGl0c2VsZi4gIEZvciBleGFtcGxlLCBpbiB0aGUgcG9saWN5LAog
ICBndWFyYW50ZWUgdGhlIHRoZSB1dGlsaXphdGlvbiBvZiBhIGxpbmsgYmVsb3cgYSB0aHJl
c2hvbGQsIHRoZQogICBkZWRpY2F0ZWQgbGluayBpbnN0YW5jZSBtb2RlbGVkIGJ5IHRoZSBw
b2xpY3kgdXNlciBtdXN0IGJlIGRlc2NyaWJlZAogICBpbiBjZXJ0YWluIHBsYWNlLiAgU28g
dGhhdCB0aGUgcG9saWN5IG1vZGVsIGNhbiByZWZlciB0aGUgdGFyZ2V0CiAgIG9iamVjdCB3
aXRoIGFuIG9iamVjdC1pZC4KCiAgIFRoZSBwb2xpY3kgY2FuIGFsc28gYXBwbHkgdG8gYSBj
b2xsZWN0aW9uIG9mIG9iamVjdHMsIGUuZy4sIGEgZ3JvdXAKICAgb2YgbGlua3Mgd2l0aCB0
aGUgc2FtZSBwb2xpY3kgcmVxdWlyZW1lbnRzLiAgSW4gdGhpcyBjYXNlLCB0aGUKICAgY29s
bGVjdGlvbiBhcyBhIHdob2xlIHNob3VsZCBiZSBjb25zaWRlcmVkIGFzIGFuIG9iamVjdCB3
aXRoIGFuCiAgIHVuaXF1ZSBvYmplY3QtaWQuCgogICBUaGUgaW50ZW50IG9mIHRoZSBwb2xp
Y3kgaXMgZGVzY3JpYmVkIHdpdGggYSBsaXN0IG9mIHBvbGljeSBydWxlcwogICB3aGljaCBp
bmNsdWRlIGRlY2xhcmF0aXZlIHN0YXRlbWVudHMuICBJbiBnZW5lcmFsLCB0aGVyZSBhcmUg
dHdvIHdheXMKICAgdG8gZXhwcmVzcyB0aGUgaW50ZW50IHdpdGhvdXQgdG91Y2hpbmcgdGhl
IGltcGxlbWVudGF0aW9uIGRldGFpbHMuCgogICBPbmUgdHlwZSBvZiBkZWNsYXJhdGl2ZSBz
dGF0ZW1lbnQgaXMgdG8gZXhwcmVzcyBrZXkgb3BlcmF0aW9ucyB0aGF0CiAgIHRoZSB1c2Vy
IHdhbnRzIHRvIGV4ZWN1dGUsIHdpdGggdGhlIHNlbWFudGljICJJIHdhbnQgdG8gZG8gc29t
ZQogICB0aGluZyIuICBXZSB1c2UgdGhlIG9wZXJhdGlvbiBpdGVtIHRvIGRlc2NyaWJlIHRo
aXMga2luZCBvZgogICBzdGF0ZW1lbnQuICBUaGUgdW5kZXJseWluZyBwb2xpY3kgcmVzb2x2
ZXIgZW5naW5lIGNhbiBleHRlbmQgdGhlCiAgIG9wZXJhdGlvbiBhbmQgZ2VuZXJhdGUgYSBj
b21wbGV0ZSBhY3Rpb24gbGlzdCBmcm9tIHRoZSByZXF1ZXN0cy4gIFRoZQogICB0cmFuc2xh
dGlvbiBhbmQgdGhlIGZ1bGZpbGxtZW50IGlzIGltcGxlbWVudGF0aW9uIHJlbGF0ZWQgYnV0
IHVzZXIKICAgYWdub3N0aWMuCgogICBUaGUgb3RoZXIgdHlwZSBvZiBkZWNsYXJhdGl2ZSBz
dGF0ZW1lbnQgaXMgdG8gZXhwcmVzcyB0aGUgZmluYWwKICAgcmVzdWx0IG9yIGRlc2lyZWQg
c3RhdGUsIHdpdGggdGhlIHNlbWFudGljICJJIHdhbnQgdG8gYWNoaWV2ZSBhCiAgIGNlcnRh
aW4gc3RhdGUiLiAgSW4gdGhpcyBjYXNlLCBhIHVzZXIgbWF5IG9ubHkgbmVlZCB0byBkZXNj
cmliZSB0aGUKICAgcmVzdWx0IHdpdGhvdXQgZGVmaW5pbmcgaG93IHRvIHJlYWxpemUgaXQu
ICBGb3IgZXhhbXBsZSwgcmVxdWlyZQogICBzZWN1cmUgY29tbXVuaWNhdGlvbiBiZXR3ZWVu
IHR3byBzaXRlcy4gIFRoZSBwb2xpY3kgZW5naW5lIHdpbGwKICAgbW9uaXRvciB0aGUgcmVx
dWlyZWQgc3RhdGUsIGFuZCBkbyB0aGUgYWRqdXN0bWVudCBhdXRvbWF0aWNhbGx5IHdpdGgK
ICAgcHJlLWRlZmluZWQgbG9naWMuCgoKCgoKCgoKCgoKCgoKCgpaaG91LCBldCBhbC4gICAg
ICAgICAgICAgIEV4cGlyZXMgSnVuZSAxMSwgMjAxNiAgICAgICAgICAgICAgICAgW1BhZ2Ug
NF0KDApJbnRlcm5ldC1EcmFmdCAgICAgIERhdGEgTW9kZWwgZm9yIERlY2xhcmF0aXZlIFBv
bGljeSAgICAgIERlY2VtYmVyIDIwMTUKCgogICAgICAgbW9kdWxlOiBzdXBhLWRlY2xhcmF0
aXZlLXBvbGljeQogICAgICAgICAgfCAgLi4uCiAgICAgICAgICArLS1ydyBkZWNsYXJhdGl2
ZS1wb2xpY3kKICAgICAgICAgICAgICstLXJ3IHBvbGljeS1pZCAgICAgICAgICAgICAgICAg
IHBvbGljeS1pZAogICAgICAgICAgICAgKy0tcncgcG9saWN5LW5hbWUgICAgICAgICAgICAg
ICAgcG9saWN5LW5hbWUKICAgICAgICAgICAgICstLXJ3IHByaW9yaXR5PyAgICAgICAgICAg
ICAgICAgIHVpbnQ4CiAgICAgICAgICAgICArLS1ydyBwb2xpY3ktdmFsaWRpdHktcGVyaW9k
CiAgICAgICAgICAgICB8ICArLS1ydyBzdGFydD8gICAgICAgICAgICAgICAgICB5YW5nOmRh
dGUtYW5kLXRpbWUKICAgICAgICAgICAgIHwgICstLXJ3IGVuZD8gICAgICAgICAgICAgICAg
ICAgIHlhbmc6ZGF0ZS1hbmQtdGltZQogICAgICAgICAgICAgfCAgKy0tcncgZHVyYXRpb24/
ICAgICAgICAgICAgICAgdWludDMyCiAgICAgICAgICAgICB8ICArLS1ydyBwZXJpb2RpY2l0
eT8gICAgICAgICAgICBlbnVtZXJhdGlvbgogICAgICAgICAgICAgKy0tcncgcG9saWN5LXJ1
bGUtZGVwbG95LXN0YXR1cz8gZW51bWVyYXRpb24KICAgICAgICAgICAgICstLXJ3IHBvbGlj
eS1ydWxlLWV4ZWMtc3RhdHVzPyAgIGVudW1lcmF0aW9uCiAgICAgICAgICAgICArLS1ydyB0
YXJnZXQtb2JqZWN0ICAgICAgICAgICAgICBvYmplY3QtaWQKICAgICAgICAgICAgICstLXJ3
IGRlY2xhcmF0aXZlLXBvbGljeS1ydWxlCiAgICAgICAgICAgICAgICArLS1ydyBvcGVyYXRp
b24KICAgICAgICAgICAgICAgIHwgfCAuLi4uCiAgICAgICAgICAgICAgICArLS1ydyByZXN1
bHQKICAgICAgICAgICAgICAgIHwgfCAuLi4uCgogICAgRmlndXJlIDE6IEZpZ3VyZSAxIFRv
cCBsZXZlbCBkZXNpZ24gb2YgdGhlIGJhc2UgZGVjbGFyYXRpdmUgcG9saWN5CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSBtb2RlbAoKMy4xLiAgRGVzaWduIG9mIFRo
ZSBPcGVyYXRpb24KCiAgIE9wZXJhdGlvbiByZWZlcnMgdG8gc29tZSBzcGVjaWZpYyBhY3Rp
b25zIGluIG9yZGVyIHRvIGFjaGlldmUgdGhlCiAgIGdvYWwuICBBbiBvcGVyYXRpb24gbXVz
dCBjb250YWluIG9uZSBvciBtb3JlIGFjdGlvbnMuICBXZSBjYW4gdXNlIHRoZQogICBzZW1h
bnRpYyAib24gY29uZGl0aW9uLCBkbyBhY3Rpb24sIHdpdGggY29uc3RyYWludCIuICBIb3dl
dmVyLAogICBjb25kaXRpb24gYW5kIGNvbnN0cmFpbnQgY2FuIGJlIG9wdGlvbmFsbHkgZGVm
aW5lZCBpbiBvcGVyYXRpb25zLiAgSXQKICAgZGVwZW5kcyBvbiBzcGVjaWZpYyBzY2VuYXJp
byBhbmQgdXNlcnMnIHJlcXVpcmVtZW50LiAgT25jZSBhCiAgIGNvbmRpdGlvbiBpcyBpbnZv
bHZlZCBpbiBvcGVyYXRpb24sIGFjdGlvbnMgd2lsbCBub3QgYmUgZXhlY3V0ZWQKICAgdW50
aWwgY29uZGl0aW9uIGlzIHRydWUuICBGb3IgZXhhbXBsZSwgImRvIGxvYWQgYmFsYW5jaW5n
IHdoZW4gdGhlCiAgIHV0aWxpemF0aW9uIG9mIGEgbGluayBleGNlZWRzIDgwJSIuICBJbiB0
aGlzIGV4YW1wbGUsICJ1dGlsaXphdGlvbiBvZgogICBhIGxpbmsgPiA4MCUiIGlzIHRoZSB0
cmlnZ2VyLCBhbmQgImRvIGxvYWQgYmFsYW5jaW5nIiBpcyB0aGUgYWN0aW9uLgoKICAgQ29u
ZGl0aW9uIG11c3QgYmUgbW9kZWxlZCBvbiB0b3Agb2YgZXZlbnRzLiAgSW4gY29udHJhc3Qg
dG8gYW4gZXZlbnQKICAgaW4gRXZlbnQtQ29uZGl0aW9uLUFjdGlvbiAoRUNBKSBwb2xpY3kg
bW9kZWwsIGEgY29uZGl0aW9uIGlzIHN0YXRlLQogICBiYXNlZCBhbmQgdGhlcmVmb3JlIHRl
bXBvcmFsIGNvbnN0cmFpbmVkLiAgSXQgaXMgdHJpZ2dlcmVkIGJ5IHNvbWUKICAgaW5pdGlh
bGl6aW5nIGV2ZW50IGFuZCBlbmRlZCBieSBhbm90aGVyIGV2ZW50IG9yIGFmdGVyIGEgY2Vy
dGFpbiB0aW1lCiAgIHNwYW4uCgogICBJbiB0aGUgZGVjbGFyYXRpdmUgc3RhdGVtZW50LCBh
biBhY3Rpb24gd2lsbCBub3QgYmUgZGV0YWlsZWQKICAgY29uZmlndXJhdGlvbnMgaW4gZGV2
aWNlcywgYnV0IGhpZ2gtbGV2ZWwgYW5kIGFic3RyYWN0ZWQgZnVuY3Rpb25zCiAgIHdoaWNo
IGNhbiBiZSBsYXRlciB0cmFuc2xhdGVkIGludG8gY29uZmlndXJhdGlvbnMgYnkgdGhlIHBv
bGljeQogICBlbmdpbmUuICBGb3IgZXhhbXBsZSwgdGhlIGFjdGlvbiAiZG8gbG9hZCBiYWxh
bmNpbmciIGlzIGRldmljZQogICBpbmRlcGVuZGVudCwgYW5kIG1heSBjb25maWd1cmUgYSBs
b2FkIGJhbGFuY2VyIHBvb2wgZGVwZW5kaW5nIG9uCiAgIHNwZWNpZmljIGRldmljZXMuCgoK
CgpaaG91LCBldCBhbC4gICAgICAgICAgICAgIEV4cGlyZXMgSnVuZSAxMSwgMjAxNiAgICAg
ICAgICAgICAgICAgW1BhZ2UgNV0KDApJbnRlcm5ldC1EcmFmdCAgICAgIERhdGEgTW9kZWwg
Zm9yIERlY2xhcmF0aXZlIFBvbGljeSAgICAgIERlY2VtYmVyIDIwMTUKCgogICBDb25zdHJh
aW50IHJlc3RyaWN0cyBhY3Rpb24gaXRzZWxmIG9yIHRoZSBzY29wZSBvZiBhY3Rpb24uCgog
ICBUaGUgQ29uZGl0aW9uLUFjdGlvbi1Db25zdHJhaW50IChDQUMpIG1vZGVsIHVzZWQgaW4g
b3BlcmF0aW9uCiAgIGV4cHJlc3Npb24gaXMgZXNzZW50aWFsbHkgZGlmZmVyZW50IGZyb20g
dGhlIEVDQSBwb2xpY3kgbW9kZWwuCiAgIEZpcnN0bHksIHRoZSBldmVudCBhbmQgY29uZGl0
aW9uIGluIEVDQSBtb2RlbCBxdWl0ZSBkZXBlbmQgb24gdGhlCiAgIHVuZGVybHlpbmcgaW1w
bGVtZW50YXRpb24sIHdoaWxlIHRoZSBkZWNsYXJhdGl2ZSBvcGVyYXRpb24gb25seSBjYXJl
CiAgIGFib3V0IHRoZSBjb25kaXRpb24gdG8gZXhlY3V0ZSB0aGUgYWN0aW9uLiAgU2Vjb25k
bHksIHRoZSBFQ0EgbW9kZWwKICAgZG9lcyBub3QgaGF2ZSBhIGNvbnN0cmFpbnQgZGVzY3Jp
cHRpb24sIHdoaWxlIHRoZSBkZWNsYXJhdGl2ZQogICBvcGVyYXRpb24gZG9lcyBub3QgY2Fy
ZSBhYm91dCB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIGFjdGlvbiBidXQKICAgZG9lcyBj
YXJlIGFib3V0IHRoZSBjb25zdHJhaW50IHRvIHRoZSBhY3Rpb24uCgorLS1ydyBjb25kaXRp
b24tcGFyYW1ldGVyLWRlZmluaXRpb25zCnwgICstLXJ3IGNvbmRpdGlvbi1wYXJhbWV0ZXIt
ZGVmaW5pdGlvbiogW3BhcmFtZXRlci1uYW1lXQp8ICAgICArLS1ydyBwYXJhbWV0ZXItbmFt
ZSAgICAgICAgICAgICAgICBwYXJhbWV0ZXItbmFtZQp8ICAgICArLS1ydyBwYXJhbWV0ZXIt
dmFsdWUtdHlwZT8gICAgICAgICBlbnVtZXJhdGlvbgp8ICAgICArLS1ydyBwYXJhbWV0ZXIt
bWF0Y2gtcGF0dGVybnMKfCAgICAgICAgKy0tcncgcGFyYW1ldGVyLW1hdGNoLXBhdHRlcm4q
ICAgZW51bWVyYXRpb24KKy0tcncgY29uc3RyYWludC1wYXJhbWV0ZXItZGVmaW5pdGlvbnMK
fCAgKy0tcncgY29uc3RyYWludC1wYXJhbWV0ZXItZGVmaW5pdGlvbiogW3BhcmFtZXRlci1u
YW1lXQp8ICAgICArLS1ydyBwYXJhbWV0ZXItbmFtZSAgICAgICAgICAgICAgICAgcGFyYW1l
dGVyLW5hbWUKfCAgICAgKy0tcncgcGFyYW1ldGVyLXZhbHVlLXR5cGU/ICAgICAgICAgIGVu
dW1lcmF0aW9uCnwgICAgICstLXJ3IHBhcmFtZXRlci1tYXRjaC1wYXR0ZXJucwp8ICAgICAg
ICArLS1ydyBwYXJhbWV0ZXItbWF0Y2gtcGF0dGVybiogICAgZW51bWVyYXRpb24KKy0tcncg
YWN0aW9uLWRlZmluaXRpb25zCnwgICstLXJ3IGFjdGlvbi1kZWZpbml0aW9uKiBbYWN0aW9u
LW5hbWVdCnwgICAgICstLXJ3IGFjdGlvbi1uYW1lICAgICAgICAgICAgICAgICAgICBhY3Rp
b24tbmFtZQp8ICAgICArLS1ydyBwYXJhbWV0ZXItdmFsdWUtdHlwZT8gICAgICAgICAgZW51
bWVyYXRpb24KKy0tcncgZGVjbGFyYXRpdmUtcG9saWN5CiAgIHwgIC4uLgogICArLS1ydyBk
ZWNsYXJhdGl2ZS1wb2xpY3ktcnVsZQogICAgICB8ICAuLi4KICAgICAgKy0tcncgb3BlcmF0
aW9uCiAgICAgICAgICstLXJ3IGNvbmRpdGlvbgogICAgICAgICB8ICArLS1ydyBjb25kaXRp
b24tc2VnbWVudCogW2NvbmRpdGlvbi1zZWdtZW50LWlkXQogICAgICAgICB8ICAgICArLS1y
dyBjb25kaXRpb24tc2VnbWVudC1pZCBjb25kaXRpb24tc2VnbWVudC1pZAogICAgICAgICB8
ICAgICArLS1ydyBjb25kaXRpb24tcGFyYS1uYW1lPyBjb25kaXRpb24tcGFyYW1ldGVyLW5h
bWUKICAgICAgICAgfCAgICAgKy0tcncgY29uZGl0aW9uLXBhcmEtbWF0Y2gtcGF0dGVybj8g
ZW51bWVyYXRpb24KICAgICAgICAgfCAgICAgKy0tcncgY29uZGl0aW9uLXBhcmEtdGFyZ2V0
LXZhbHVlCiAgICAgICAgIHwgICAgIHwgICstLXJ3IHN0cmluZy12YWx1ZT8gICAgICAgICAg
ICAgIHN0cmluZwogICAgICAgICB8ICAgICB8ICArLS1ydyBpbnQtdmFsdWU/ICAgICAgICAg
ICAgICAgICBpbnQ2NAogICAgICAgICB8ICAgICB8ICArLS1ydyByYW5nZS12YWx1ZQogICAg
ICAgICB8ICAgICB8ICAgICArLS1ydyBtaW4gICAgICAgICAgICAgICAgICAgICBpbnQ2NAog
ICAgICAgICB8ICAgICB8ICAgICArLS1ydyBtYXggICAgICAgICAgICAgICAgICAgICBpbnQ2
NAogICAgICAgICB8ICAgICArLS1ydyBwcmVjdXJzb3ItcmVsYXRpb24tb3BlcmF0b3I/ICBl
bnVtZXJhdGlvbgogICAgICAgICB8ICAgICArLS1ydyBvcmRlcj8gICAgICAgICAgICAgICAg
ICAgICAgICB1aW50MzIKICAgICAgICAgKy0tcncgYWN0aW9uKiBbYWN0aW9uLW5hbWVdCiAg
ICAgICAgIHwgICstLXJ3IGFjdGlvbi1uYW1lICAgICAgICAgICAgICAgICAgICAgIGFjdGlv
bi1uYW1lCiAgICAgICAgIHwgICstLXJ3IHBhcmFtZXRlci12YWx1ZXMKCgoKWmhvdSwgZXQg
YWwuICAgICAgICAgICAgICBFeHBpcmVzIEp1bmUgMTEsIDIwMTYgICAgICAgICAgICAgICAg
IFtQYWdlIDZdCgwKSW50ZXJuZXQtRHJhZnQgICAgICBEYXRhIE1vZGVsIGZvciBEZWNsYXJh
dGl2ZSBQb2xpY3kgICAgICBEZWNlbWJlciAyMDE1CgoKICAgICAgICAgfCAgfCAgKy0tcncg
c3RyaW5nLXZhbHVlKiBbdmFsdWUgb3JkZXJdCiAgICAgICAgIHwgIHwgIHwgICstLXJ3IHZh
bHVlICAgICAgICAgICAgICAgICAgICAgIHN0cmluZwogICAgICAgICB8ICB8ICB8ICArLS1y
dyBvcmRlciAgICAgICAgICAgICAgICAgICAgICB1aW50MzIKICAgICAgICAgfCAgfCAgKy0t
cncgaW50LXZhbHVlKiBbdmFsdWUgb3JkZXJdCiAgICAgICAgIHwgIHwgIHwgICstLXJ3IHZh
bHVlICAgICAgICAgICAgICAgICAgICAgIGludDY0CiAgICAgICAgIHwgIHwgIHwgICstLXJ3
IG9yZGVyICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMgogICAgICAgICB8ICB8ICArLS1y
dyByYW5nZS12YWx1ZQogICAgICAgICB8ICB8ICAgICArLS1ydyBtaW4gICAgICAgICAgICAg
ICAgICAgICAgICBpbnQ2NAogICAgICAgICB8ICB8ICAgICArLS1ydyBtYXggICAgICAgICAg
ICAgICAgICAgICAgICBpbnQ2NAogICAgICAgICB8ICArLS1ydyBvcmRlcj8gICAgICAgICAg
ICAgICAgICAgICAgICAgICB1aW50MzIKICAgICAgICAgKy0tcncgY29uc3RyYWludAogICAg
ICAgICAgICArLS1ydyBjb25zdHJhaW50LXNlZ21lbnQqIFtjb25zdHJhaW50LXNlZ21lbnQt
aWRdCiAgICAgICAgICAgICAgKy0tcncgY29uc3RyYWludC1zZWdtZW50LWlkICAgICAgICAg
IGNvbnN0cmFpbnQtc2VnbWVudC1pZAogICAgICAgICAgICAgICstLXJ3IGNvbnN0cmFpbnQt
cGFyYS1uYW1lPyAgICAgICAgICBjb25zdHJhaW50LXBhcmFtZXRlci1uYW1lCiAgICAgICAg
ICAgICAgKy0tcncgY29uc3RyYWludC1wYXJhLW1hdGNoLXBhdHRlcm4/IGVudW1lcmF0aW9u
CiAgICAgICAgICAgICAgKy0tcncgY29uc3RyYWludC1wYXJhLXRhcmdldC12YWx1ZQogICAg
ICAgICAgICAgIHwgICstLXJ3IHN0cmluZy12YWx1ZT8gICAgICAgICAgICAgICBzdHJpbmcK
ICAgICAgICAgICAgICB8ICArLS1ydyBpbnQtdmFsdWU/ICAgICAgICAgICAgICAgICAgaW50
NjQKICAgICAgICAgICAgICB8ICArLS1ydyByYW5nZS12YWx1ZQogICAgICAgICAgICAgIHwg
ICAgICstLXJ3IG1pbiAgICAgICAgICAgICAgICAgICAgICBpbnQ2NAogICAgICAgICAgICAg
IHwgICAgICstLXJ3IG1heCAgICAgICAgICAgICAgICAgICAgICBpbnQ2NAogICAgICAgICAg
ICAgICstLXJ3IHByZWN1cnNvci1yZWxhdGlvbi1vcGVyYXRvcj8gICBlbnVtZXJhdGlvbgog
ICAgICAgICAgICAgICstLXJ3IG9yZGVyPyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50
MzIKCiAgICAgICAgICAgICAgICAgICAgIEZpZ3VyZSAyIFRoZSBzbmlwcGV0IG9mIG9wZXJh
dGlvbgoKMy4yLiAgRGVzaWduIG9mIFRoZSBSZXN1bHQKCiAgIFRoZSByZXN1bHQgc3RhdGVt
ZW50IGRlc2NyaWJlcyB0aGUgZmluYWwgc3RhdGUgb2Ygb2JqZWN0cyB3aXRob3V0CiAgIGNh
cmluZyBhYm91dCBob3cgdG8gYWNoaWV2ZSBpdC4gIEZvciBleGFtcGxlLCBhIHJlc3VsdCBj
b3VsZCBiZSB0aGF0CiAgIHRoZSBjb21wYW55IGFjY2Vzc2VzIGFueSBzaXRlcyBvbiB0aGUg
SW50ZXJuZXQgc2FmZWx5LiAgSXQganVzdAogICBkZWZpbmVzIGEgcmVzdWx0IHRoYXQgaWdu
b3JlcyB0ZWNobm9sb2d5IGRldGFpbHMsIHN1Y2ggYXMsIGZpcmV3YWxsLAogICBBQ0wsIGFu
ZCBzbyBvbi4KCiAgIFJlc3VsdCByZWZlcnMgdG8gZGVzaXJlZCBzdGF0ZSB3aGljaCBpcyBl
eHBlY3RlZCBvciBpdG8gYmUgYXZvaWRlZC4KICAgRm9yIGV4YW1wbGUsIGEgdXNlciBtYXkg
ZXhwcmVzcyBhbiBpbnRlbnQgdGhhdCB0aGUgbGluayB1dGlsaXphdGlvbgogICBtdXN0IGJl
IGxvd2VyIHRoYW4gODAlLCB3aGljaCBkZXNjcmliZXMgYW4gZXhwZWN0ZWQgc3RhdGUuICBU
aGUgc2FtZQogICBpbnRlbnQgY2FuIGFsc28gYmUgZXhwcmVzc2VkIGFzIHRoZSBsaW5rIHV0
aWxpemF0aW9uIHNob3VsZCBub3QKICAgZXhjZWVkIDgwJSwgd2hpY2ggZGVzY3JpYmVzIGFu
IHN0YXRlIHRvIGF2b2lkLiAgVGhlIHJlc3VsdCBleHByZXNzaW9uCiAgIG1vZGVsIHNob3Vs
ZCBiZSBmbGV4aWJsZSBmb3IgdXNlcnMgc28gdGhleSBjYW4gZGVzY3JpYmUgaWl0IGluIGVp
dGhlcgogICB3YXkuCgogICBBcyBzaG93biBpbiBGaWd1cmUgMiwgdGhlIHJlc3VsdCBjYW4g
YmUgZGVzY3JpYmVkIGFzIGFuIGV4cHJlc3Npb24KICAgd2l0aCBsZWZ0LCByaWdodCBvcGVy
YW5kcyBhbmQgc3RhbmRhcmQgcmVsYXRpb25hbCBvcGVyYXRvcnMuCgoKCgoKCgpaaG91LCBl
dCBhbC4gICAgICAgICAgICAgIEV4cGlyZXMgSnVuZSAxMSwgMjAxNiAgICAgICAgICAgICAg
ICAgW1BhZ2UgN10KDApJbnRlcm5ldC1EcmFmdCAgICAgIERhdGEgTW9kZWwgZm9yIERlY2xh
cmF0aXZlIFBvbGljeSAgICAgIERlY2VtYmVyIDIwMTUKCgogICAgICAgICAgICstLXJ3IHJl
c3VsdAogICAgICAgICAgICAgICArLS1ydyBsZWZ0LXZhbHVlCiAgICAgICAgICAgICAgIHwg
ICstLXJ3ICh2YWx1ZS10eXBlKT8KICAgICAgICAgICAgICAgfCAgICAgKy0tOihzdHJpbmcp
CiAgICAgICAgICAgICAgIHwgICAgIHwgICstLXJ3IHNpbmdsZS1zdHJpbmctdmFsdWU/ICAg
ICAgIHN0cmluZwogICAgICAgICAgICAgICB8ICAgICArLS06KHN0cmluZy1saXN0KQogICAg
ICAgICAgICAgICB8ICAgICB8ICArLS1ydyBzdHJpbmctdmFsdWUqIFt2YWx1ZSBvcmRlcl0K
ICAgICAgICAgICAgICAgfCAgICAgfCAgICAgKy0tcncgdmFsdWUgICAgICAgICAgICAgICAg
ICAgc3RyaW5nCiAgICAgICAgICAgICAgIHwgICAgIHwgICAgICstLXJ3IG9yZGVyICAgICAg
ICAgICAgICAgICAgIHVpbnQzMgogICAgICAgICAgICAgICB8ICAgICArLS06KGludCkKICAg
ICAgICAgICAgICAgfCAgICAgfCAgKy0tcncgc2luZ2xlLWludC12YWx1ZT8gICAgICAgICAg
aW50NjQKICAgICAgICAgICAgICAgfCAgICAgKy0tOihpbnQtbGlzdCkKICAgICAgICAgICAg
ICAgfCAgICAgfCAgKy0tcncgaW50LXZhbHVlKiBbdmFsdWUgb3JkZXJdCiAgICAgICAgICAg
ICAgIHwgICAgIHwgICAgICstLXJ3IHZhbHVlICAgICAgICAgICAgICAgICAgIGludDY0CiAg
ICAgICAgICAgICAgIHwgICAgIHwgICAgICstLXJ3IG9yZGVyICAgICAgICAgICAgICAgICAg
IHVpbnQzMgogICAgICAgICAgICAgICB8ICAgICArLS06KHZhcmlhYmxlKQogICAgICAgICAg
ICAgICB8ICAgICB8ICArLS1ydyB2YXJpYWJsZS1uYW1lPyAgICAgICAgICAgICBzdHJpbmcK
ICAgICAgICAgICAgICAgfCAgICAgKy0tOihjYWxjdWxhdGlvbi1leHByZXNzaW9uKQogICAg
ICAgICAgICAgICB8ICAgICAgICArLS1ydyBjYWxjdWxhdGlvbi1vcGVyYXRvcj8gICAgICBl
bnVtZXJhdGlvbgogICAgICAgICAgICAgICB8ICAgICAgICArLS1ydyBjYWxjdWxhdGlvbi1s
ZWFmLXZhbHVlPyAgICBzdHJpbmcKICAgICAgICAgICAgICAgfCAgICAgICAgKy0tcncgY2Fs
Y3VsYXRpb24tcmlnaHQtdmFsdWU/ICAgc3RyaW5nCiAgICAgICAgICAgICAgICstLXJ3IHJl
bGF0aW9uYWwtb3BlcmF0b3IKICAgICAgICAgICAgICAgfCAgKy0tcncgcmVsYXRpb25hbC1v
cGVyYXRvcj8gICAgICAgICAgICAgZW51bWVyYXRpb24KICAgICAgICAgICAgICAgKy0tcncg
cmlnaHQtdmFsdWUKICAgICAgICAgICAgICAgICAgKy0tcncgKHZhbHVlLXR5cGUpPwogICAg
ICAgICAgICAgICAgICAgICArLS06KHN0cmluZykKICAgICAgICAgICAgICAgICAgICAgfCAg
Ky0tcncgc2luZ2xlLXN0cmluZy12YWx1ZT8gICAgICAgc3RyaW5nCiAgICAgICAgICAgICAg
ICAgICAgICstLTooc3RyaW5nLWxpc3QpCiAgICAgICAgICAgICAgICAgICAgIHwgICstLXJ3
IHN0cmluZy12YWx1ZSogW3ZhbHVlIG9yZGVyXQogICAgICAgICAgICAgICAgICAgICB8ICAg
ICArLS1ydyB2YWx1ZSAgICAgICAgICAgICAgICAgICBzdHJpbmcKICAgICAgICAgICAgICAg
ICAgICAgfCAgICAgKy0tcncgb3JkZXIgICAgICAgICAgICAgICAgICAgdWludDMyCiAgICAg
ICAgICAgICAgICAgICAgICstLTooaW50KQogICAgICAgICAgICAgICAgICAgICB8ICArLS1y
dyBzaW5nbGUtaW50LXZhbHVlPyAgICAgICAgICBpbnQ2NAogICAgICAgICAgICAgICAgICAg
ICArLS06KGludC1saXN0KQogICAgICAgICAgICAgICAgICAgICB8ICArLS1ydyBpbnQtdmFs
dWUqIFt2YWx1ZSBvcmRlcl0KICAgICAgICAgICAgICAgICAgICAgfCAgICAgKy0tcncgdmFs
dWUgICAgICAgICAgICAgICAgICAgaW50NjQKICAgICAgICAgICAgICAgICAgICAgfCAgICAg
Ky0tcncgb3JkZXIgICAgICAgICAgICAgICAgICAgdWludDMyCiAgICAgICAgICAgICAgICAg
ICAgICstLToodmFyaWFibGUpCiAgICAgICAgICAgICAgICAgICAgIHwgICstLXJ3IHZhcmlh
YmxlLW5hbWU/ICAgICAgICAgICAgIHN0cmluZwogICAgICAgICAgICAgICAgICAgICArLS06
KGNhbGN1bGF0aW9uLWV4cHJlc3Npb24pCiAgICAgICAgICAgICAgICAgICAgICAgICstLXJ3
IGNhbGN1bGF0aW9uLW9wZXJhdG9yPyAgICAgIGVudW1lcmF0aW9uCiAgICAgICAgICAgICAg
ICAgICAgICAgICstLXJ3IGNhbGN1bGF0aW9uLWxlYWYtdmFsdWU/ICAgIHN0cmluZwogICAg
ICAgICAgICAgICAgICAgICAgICArLS1ydyBjYWxjdWxhdGlvbi1yaWdodC12YWx1ZT8gICBz
dHJpbmcKCiAgICAgICAgICAgICAgICAgRmlndXJlIDI6IEZpZ3VyZSAzIFRoZSBzbmlwcGV0
IG9mIHJlc3VsdAoKICAgVGhlIHJlbGF0aW9uYWwgb3BlcmF0b3IgaXMgYW4gZW51bWVyYXRp
b24gdHlwZSBpbmNsdWRpbmcgYXQgbGVhc3Q6CgoKCgpaaG91LCBldCBhbC4gICAgICAgICAg
ICAgIEV4cGlyZXMgSnVuZSAxMSwgMjAxNiAgICAgICAgICAgICAgICAgW1BhZ2UgOF0KDApJ
bnRlcm5ldC1EcmFmdCAgICAgIERhdGEgTW9kZWwgZm9yIERlY2xhcmF0aXZlIFBvbGljeSAg
ICAgIERlY2VtYmVyIDIwMTUKCgogICAgICBlcTogQ2hlY2tzIGlmIHRoZSB2YWx1ZXMgb2Yg
dHdvIG9wZXJhbmRzIGFyZSBlcXVhbCBvciBub3QsIGlmIHllcwogICAgICB0aGVuIHRoZSBy
ZXN1bHQgb2YgdGhlIGV4cHJlc3Npb24gYmVjb21lcyB0cnVlLgoKICAgICAgbmU6IENoZWNr
cyBpZiB0aGUgdmFsdWVzIG9mIHR3byBvcGVyYW5kcyBhcmUgZXF1YWwgb3Igbm90LCBpZgog
ICAgICB2YWx1ZXMgYXJlIG5vdCBlcXVhbCB0aGVuIHRoZSByZXN1bHQgb2YgdGhlIGV4cHJl
c3Npb24gYmVjb21lcwogICAgICB0cnVlLgoKICAgICAgZ3Q6IENoZWNrcyBpZiB0aGUgdmFs
dWUgb2YgbGVmdCBvcGVyYW5kIGlzIGdyZWF0ZXIgdGhhbiB0aGUgdmFsdWUKICAgICAgb2Yg
cmlnaHQgb3BlcmFuZCwgaWYgeWVzIHRoZW4gdGhlIHJlc3VsdCBvZiB0aGUgZXhwcmVzc2lv
biBiZWNvbWVzCiAgICAgIHRydWUuCgogICAgICBnZTogQ2hlY2tzIGlmIHRoZSB2YWx1ZSBv
ZiBsZWZ0IG9wZXJhbmQgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsCiAgICAgIHRvIHRoZSB2
YWx1ZSBvZiByaWdodCBvcGVyYW5kLCBpZiB5ZXMgdGhlbiB0aGUgcmVzdWx0IG9mIHRoZQog
ICAgICBleHByZXNzaW9uIGJlY29tZXMgdHJ1ZS4KCiAgICAgIGx0OiBDaGVja3MgaWYgdGhl
IHZhbHVlIG9mIGxlZnQgb3BlcmFuZCBpcyBsZXNzIHRoYW4gdGhlIHZhbHVlIG9mCiAgICAg
IHJpZ2h0IG9wZXJhbmQsIGlmIHllcyB0aGVuIHRoZSByZXN1bHQgb2YgdGhlIGV4cHJlc3Np
b24gYmVjb21lcwogICAgICB0cnVlLgoKICAgICAgbGU6IENoZWNrcyBpZiB0aGUgdmFsdWUg
b2YgbGVmdCBvcGVyYW5kIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0bwogICAgICB0aGUgdmFs
dWUgb2YgcmlnaHQgb3BlcmFuZCwgaWYgeWVzIHRoZW4gdGhlIHJlc3VsdCBvZiB0aGUKICAg
ICAgZXhwcmVzc2lvbiBiZWNvbWVzIHRydWUuCgogICAgICBibDogQ2hlY2tzIGlmIHRoZSBs
ZWZ0IHNldCBiZWxvbmdzIHRvIHRoZSByaWdodCBzZXQsIGlmIHllcyB0aGVuCiAgICAgIHRo
ZSByZXN1bHQgb2YgdGhlIGV4cHJlc3Npb24gYmVjb21lcyB0cnVlLgoKICAgICAgbmI6IENo
ZWNrcyBpZiB0aGUgbGVmdCBzZXQgYmVsb25ncyB0byB0aGUgcmlnaHQgc2V0LCBpZiBubyB0
aGVuCiAgICAgIHRoZSByZXN1bHQgb2YgdGhlIGV4cHJlc3Npb24gYmVjb21lcyB0cnVlLgoK
ICAgVGhlIGxlZnQgYW5kIHJpZ2h0IG9wZXJhbmRzIGNhbiBiZSBhIHNldCBvciBhIHNpbmds
ZSB2YWx1ZSBvciB0aGUKICAgZXhwcmVzc2lvbiB3aXRoIGNhbGN1bGF0aW9uIG9wZXJhdG9y
cy4gIEZvciBleGFtcGxlLCBhIHBvbGljeSBydWxlCiAgIGNvdWxkIGJlLCB0aGUgbWFya2V0
aW5nIG5ldHdvcmsgYW5kIHRoZSBzYWxlcyBuZXR3b3JrIGRvIG5vdCBiZWxvbmcKICAgdG8g
dGhlIGludGVybmFsIG5ldHdvcmsuICBUeXBpY2FsIGNhbGN1bGF0aW9uIG9wZXJhdG9ycyBp
bmNsdWRlOgogICBhZGQvbWludXMvbXVsdGlwbHkvZGl2aXNpb24sIG1heC9taW4vYXZlcmFn
ZSwgaW50ZXJzZWN0aW9uL3VuaW9uLwogICBjb21wbGVtZW50LCBhbmQvb3Ivbm90LCBhbnkv
YWxsLCBldGMuCgo0LiAgRGVjbGFyYXRpdmUgUG9saWN5IEJhc2UgWUFORyBEYXRhIE1vZGVs
Cgo0LjEuICBEZWNsYXJhdGl2ZSBQb2xpY3kgRGF0YSBNb2RlbCBIaWVyYXJjaHkKCiAgIEZp
Z3VyZSAzIHNob3dzIHRoZSBzdHJ1Y3R1cmUgb2YgYmFzZSBkYXRhIG1vZGVsIGZvciB0aGUg
ZGVjbGFyYXRpdmUKICAgcG9saWN5IG1vZHVsZS4KCiAgbW9kdWxlOiBzdXBhLWRlY2xhcmF0
aXZlLXBvbGljeQogICAgKy0tcncgY29uZGl0aW9uLXBhcmFtZXRlci1kZWZpbml0aW9ucwog
ICAgfCAgKy0tcncgY29uZGl0aW9uLXBhcmFtZXRlci1kZWZpbml0aW9uKiBbcGFyYW1ldGVy
LW5hbWVdCiAgICB8ICAgICArLS1ydyBwYXJhbWV0ZXItbmFtZSAgICAgICAgICAgICAgICAg
cGFyYW1ldGVyLW5hbWUKICAgIHwgICAgICstLXJ3IHBhcmFtZXRlci12YWx1ZS10eXBlPyAg
ICAgICAgICBlbnVtZXJhdGlvbgoKCgpaaG91LCBldCBhbC4gICAgICAgICAgICAgIEV4cGly
ZXMgSnVuZSAxMSwgMjAxNiAgICAgICAgICAgICAgICAgW1BhZ2UgOV0KDApJbnRlcm5ldC1E
cmFmdCAgICAgIERhdGEgTW9kZWwgZm9yIERlY2xhcmF0aXZlIFBvbGljeSAgICAgIERlY2Vt
YmVyIDIwMTUKCgogICAgfCAgICAgKy0tcncgcGFyYW1ldGVyLW1hdGNoLXBhdHRlcm5zCiAg
ICB8ICAgICAgICArLS1ydyBwYXJhbWV0ZXItbWF0Y2gtcGF0dGVybiogICAgZW51bWVyYXRp
b24KICAgICstLXJ3IGNvbnN0cmFpbnQtcGFyYW1ldGVyLWRlZmluaXRpb25zCiAgICB8ICAr
LS1ydyBjb25zdHJhaW50LXBhcmFtZXRlci1kZWZpbml0aW9uKiBbcGFyYW1ldGVyLW5hbWVd
CiAgICB8ICAgICArLS1ydyBwYXJhbWV0ZXItbmFtZSAgICAgICAgICAgICAgICAgcGFyYW1l
dGVyLW5hbWUKICAgIHwgICAgICstLXJ3IHBhcmFtZXRlci12YWx1ZS10eXBlPyAgICAgICAg
ICBlbnVtZXJhdGlvbgogICAgfCAgICAgKy0tcncgcGFyYW1ldGVyLW1hdGNoLXBhdHRlcm5z
CiAgICB8ICAgICAgICArLS1ydyBwYXJhbWV0ZXItbWF0Y2gtcGF0dGVybiogICAgZW51bWVy
YXRpb24KICAgICstLXJ3IGFjdGlvbi1kZWZpbml0aW9ucwogICAgfCAgKy0tcncgYWN0aW9u
LWRlZmluaXRpb24qIFthY3Rpb24tbmFtZV0KICAgIHwgICAgICstLXJ3IGFjdGlvbi1uYW1l
ICAgICAgICAgICAgICAgICAgICBhY3Rpb24tbmFtZQogICAgfCAgICAgKy0tcncgcGFyYW1l
dGVyLXZhbHVlLXR5cGU/ICAgICAgICAgIGVudW1lcmF0aW9uCiAgICArLS1ydyBkZWNsYXJh
dGl2ZS1wb2xpY3kKICAgICAgICstLXJ3IHBvbGljeS1pZCAgICAgICAgICAgICAgICAgICAg
ICAgICBwb2xpY3ktaWQKICAgICAgICstLXJ3IHBvbGljeS1uYW1lICAgICAgICAgICAgICAg
ICAgICAgICBwb2xpY3ktbmFtZQogICAgICAgKy0tcncgcHJpb3JpdHk/ICAgICAgICAgICAg
ICAgICAgICAgICAgIHVpbnQ4CiAgICAgICArLS1ydyBwb2xpY3ktdmFsaWRpdHktcGVyaW9k
CiAgICAgICB8ICArLS1ydyBzdGFydD8gICAgICAgICAgICAgICAgICAgICAgICAgeWFuZzpk
YXRlLWFuZC10aW1lCiAgICAgICB8ICArLS1ydyBlbmQ/ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgeWFuZzpkYXRlLWFuZC10aW1lCiAgICAgICB8ICArLS1ydyBkdXJhdGlvbj8gICAg
ICAgICAgICAgICAgICAgICAgdWludDMyCiAgICAgICB8ICArLS1ydyBwZXJpb2RpY2l0eT8g
ICAgICAgICAgICAgICAgICAgZW51bWVyYXRpb24KICAgICAgICstLXJ3IHBvbGljeS1ydWxl
LWRlcGxveS1zdGF0dXM/ICAgICAgICBlbnVtZXJhdGlvbgogICAgICAgKy0tcncgcG9saWN5
LXJ1bGUtZXhlYy1zdGF0dXM/ICAgICAgICAgIGVudW1lcmF0aW9uCiAgICAgICArLS1ydyB0
YXJnZXQtb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgb2JqZWN0LWlkCiAgICAgICArLS1y
dyBkZWNsYXJhdGl2ZS1wb2xpY3ktcnVsZQogICAgICAgICAgKy0tcncgb3BlcmF0aW9uCiAg
ICAgICAgICB8ICArLS1ydyBjb25kaXRpb24KICAgICAgICAgIHwgIHwgICstLXJ3IGNvbmRp
dGlvbi1zZWdtZW50KiBbY29uZGl0aW9uLXNlZ21lbnQtaWRdCiAgICAgICAgICB8ICB8ICAg
ICArLS1ydyBjb25kaXRpb24tc2VnbWVudC1pZCAgY29uZGl0aW9uLXNlZ21lbnQtaWQKICAg
ICAgICAgIHwgIHwgICAgICstLXJ3IGNvbmRpdGlvbi1wYXJhLW5hbWU/ICBjb25kaXRpb24t
cGFyYW1ldGVyLW5hbWUKICAgICAgICAgIHwgIHwgICAgICstLXJ3IGNvbmRpdGlvbi1wYXJh
LW1hdGNoLXBhdHRlcm4/IGVudW1lcmF0aW9uCiAgICAgICAgICB8ICB8ICAgICArLS1ydyBj
b25kaXRpb24tcGFyYS10YXJnZXQtdmFsdWUKICAgICAgICAgIHwgIHwgICAgIHwgICstLXJ3
IHN0cmluZy12YWx1ZT8gICAgICBzdHJpbmcKICAgICAgICAgIHwgIHwgICAgIHwgICstLXJ3
IGludC12YWx1ZT8gICAgICAgICBpbnQ2NAogICAgICAgICAgfCAgfCAgICAgfCAgKy0tcncg
cmFuZ2UtdmFsdWUKICAgICAgICAgIHwgIHwgICAgIHwgICAgICstLXJ3IG1pbiAgICAgICAg
ICAgICBpbnQ2NAogICAgICAgICAgfCAgfCAgICAgfCAgICAgKy0tcncgbWF4ICAgICAgICAg
ICAgIGludDY0CiAgICAgICAgICB8ICB8ICAgICArLS1ydyBwcmVjdXJzb3ItcmVsYXRpb24t
b3BlcmF0b3I/ICBlbnVtZXJhdGlvbgogICAgICAgICAgfCAgfCAgICAgKy0tcncgb3JkZXI/
ICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyCiAgICAgICAgICB8ICArLS1ydyBhY3Rp
b24qIFthY3Rpb24tbmFtZV0KICAgICAgICAgIHwgIHwgICstLXJ3IGFjdGlvbi1uYW1lICAg
ICAgICAgICAgICBhY3Rpb24tbmFtZQogICAgICAgICAgfCAgfCAgKy0tcncgcGFyYW1ldGVy
LXZhbHVlcwogICAgICAgICAgfCAgfCAgfCAgKy0tcncgc3RyaW5nLXZhbHVlKiBbdmFsdWUg
b3JkZXJdCiAgICAgICAgICB8ICB8ICB8ICB8ICArLS1ydyB2YWx1ZSAgICAgICAgICAgICAg
c3RyaW5nCiAgICAgICAgICB8ICB8ICB8ICB8ICArLS1ydyBvcmRlciAgICAgICAgICAgICAg
dWludDMyCiAgICAgICAgICB8ICB8ICB8ICArLS1ydyBpbnQtdmFsdWUqIFt2YWx1ZSBvcmRl
cl0KICAgICAgICAgIHwgIHwgIHwgIHwgICstLXJ3IHZhbHVlICAgICAgICAgICAgICBpbnQ2
NAogICAgICAgICAgfCAgfCAgfCAgfCAgKy0tcncgb3JkZXIgICAgICAgICAgICAgIHVpbnQz
MgoKCgpaaG91LCBldCBhbC4gICAgICAgICAgICAgIEV4cGlyZXMgSnVuZSAxMSwgMjAxNiAg
ICAgICAgICAgICAgICBbUGFnZSAxMF0KDApJbnRlcm5ldC1EcmFmdCAgICAgIERhdGEgTW9k
ZWwgZm9yIERlY2xhcmF0aXZlIFBvbGljeSAgICAgIERlY2VtYmVyIDIwMTUKCgogICAgICAg
ICAgfCAgfCAgfCAgKy0tcncgcmFuZ2UtdmFsdWUKICAgICAgICAgIHwgIHwgIHwgICAgICst
LXJ3IG1pbiAgICAgICAgICAgICAgICBpbnQ2NAogICAgICAgICAgfCAgfCAgfCAgICAgKy0t
cncgbWF4ICAgICAgICAgICAgICAgIGludDY0CiAgICAgICAgICB8ICB8ICArLS1ydyBvcmRl
cj8gICAgICAgICAgICAgICAgICAgdWludDMyCiAgICAgICAgICB8ICArLS1ydyBjb25zdHJh
aW50CiAgICAgICAgICB8ICAgICArLS1ydyBjb25zdHJhaW50LXNlZ21lbnQqIFtjb25zdHJh
aW50LXNlZ21lbnQtaWRdCiAgICAgICAgICB8ICAgICAgICstLXJ3IGNvbnN0cmFpbnQtc2Vn
bWVudC1pZCAgY29uc3RyYWludC1zZWdtZW50LWlkCiAgICAgICAgICB8ICAgICAgICstLXJ3
IGNvbnN0cmFpbnQtcGFyYS1uYW1lPyAgY29uc3RyYWludC1wYXJhbWV0ZXItbmFtZQogICAg
ICAgICAgfCAgICAgICArLS1ydyBjb25zdHJhaW50LXBhcmEtbWF0Y2gtcGF0dGVybj8gICBl
bnVtZXJhdGlvbgogICAgICAgICAgfCAgICAgICArLS1ydyBjb25zdHJhaW50LXBhcmEtdGFy
Z2V0LXZhbHVlCiAgICAgICAgICB8ICAgICAgIHwgICstLXJ3IHN0cmluZy12YWx1ZT8gICAg
ICAgc3RyaW5nCiAgICAgICAgICB8ICAgICAgIHwgICstLXJ3IGludC12YWx1ZT8gICAgICAg
ICAgaW50NjQKICAgICAgICAgIHwgICAgICAgfCAgKy0tcncgcmFuZ2UtdmFsdWUKICAgICAg
ICAgIHwgICAgICAgfCAgICAgKy0tcncgbWluICAgICAgICAgICAgICBpbnQ2NAogICAgICAg
ICAgfCAgICAgICB8ICAgICArLS1ydyBtYXggICAgICAgICAgICAgIGludDY0CiAgICAgICAg
ICB8ICAgICAgICstLXJ3IHByZWN1cnNvci1yZWxhdGlvbi1vcGVyYXRvcj8gICAgIGVudW1l
cmF0aW9uCiAgICAgICAgICB8ICAgICAgICstLXJ3IG9yZGVyPyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVpbnQzMgogICAgICAgICAgKy0tcncgcmVzdWx0CiAgICAgICAgICAgICAr
LS1ydyBsZWZ0LXZhbHVlCiAgICAgICAgICAgICB8ICArLS1ydyAodmFsdWUtdHlwZSk/CiAg
ICAgICAgICAgICB8ICAgICArLS06KHN0cmluZykKICAgICAgICAgICAgIHwgICAgIHwgICst
LXJ3IHNpbmdsZS1zdHJpbmctdmFsdWU/ICAgICAgICAgc3RyaW5nCiAgICAgICAgICAgICB8
ICAgICArLS06KHN0cmluZy1saXN0KQogICAgICAgICAgICAgfCAgICAgfCAgKy0tcncgc3Ry
aW5nLXZhbHVlKiBbdmFsdWUgb3JkZXJdCiAgICAgICAgICAgICB8ICAgICB8ICAgICArLS1y
dyB2YWx1ZSAgICAgICAgICAgICAgICAgICAgIHN0cmluZwogICAgICAgICAgICAgfCAgICAg
fCAgICAgKy0tcncgb3JkZXIgICAgICAgICAgICAgICAgICAgICB1aW50MzIKICAgICAgICAg
ICAgIHwgICAgICstLTooaW50KQogICAgICAgICAgICAgfCAgICAgfCAgKy0tcncgc2luZ2xl
LWludC12YWx1ZT8gICAgICAgICAgICBpbnQ2NAogICAgICAgICAgICAgfCAgICAgKy0tOihp
bnQtbGlzdCkKICAgICAgICAgICAgIHwgICAgIHwgICstLXJ3IGludC12YWx1ZSogW3ZhbHVl
IG9yZGVyXQogICAgICAgICAgICAgfCAgICAgfCAgICAgKy0tcncgdmFsdWUgICAgICAgICAg
ICAgICAgICAgICBpbnQ2NAogICAgICAgICAgICAgfCAgICAgfCAgICAgKy0tcncgb3JkZXIg
ICAgICAgICAgICAgICAgICAgICB1aW50MzIKICAgICAgICAgICAgIHwgICAgICstLToodmFy
aWFibGUpCiAgICAgICAgICAgICB8ICAgICB8ICArLS1ydyB2YXJpYWJsZS1uYW1lPyAgICAg
ICAgICAgICAgIHN0cmluZwogICAgICAgICAgICAgfCAgICAgKy0tOihjYWxjdWxhdGlvbi1l
eHByZXNzaW9uKQogICAgICAgICAgICAgfCAgICAgICAgKy0tcncgY2FsY3VsYXRpb24tb3Bl
cmF0b3I/ICAgICAgICBlbnVtZXJhdGlvbgogICAgICAgICAgICAgfCAgICAgICAgKy0tcncg
Y2FsY3VsYXRpb24tbGVhZi12YWx1ZT8gICAgICBzdHJpbmcKICAgICAgICAgICAgIHwgICAg
ICAgICstLXJ3IGNhbGN1bGF0aW9uLXJpZ2h0LXZhbHVlPyAgICAgc3RyaW5nCiAgICAgICAg
ICAgICArLS1ydyByZWxhdGlvbmFsLW9wZXJhdG9yCiAgICAgICAgICAgICB8ICArLS1ydyBy
ZWxhdGlvbmFsLW9wZXJhdG9yPyAgICAgICAgICAgICAgIGVudW1lcmF0aW9uCiAgICAgICAg
ICAgICArLS1ydyByaWdodC12YWx1ZQogICAgICAgICAgICAgICAgKy0tcncgKHZhbHVlLXR5
cGUpPwogICAgICAgICAgICAgICAgICAgKy0tOihzdHJpbmcpCiAgICAgICAgICAgICAgICAg
ICB8ICArLS1ydyBzaW5nbGUtc3RyaW5nLXZhbHVlPyAgICAgICAgIHN0cmluZwogICAgICAg
ICAgICAgICAgICAgKy0tOihzdHJpbmctbGlzdCkKICAgICAgICAgICAgICAgICAgIHwgICst
LXJ3IHN0cmluZy12YWx1ZSogW3ZhbHVlIG9yZGVyXQogICAgICAgICAgICAgICAgICAgfCAg
ICAgKy0tcncgdmFsdWUgICAgICAgICAgICAgICAgICAgICBzdHJpbmcKICAgICAgICAgICAg
ICAgICAgIHwgICAgICstLXJ3IG9yZGVyICAgICAgICAgICAgICAgICAgICAgdWludDMyCgoK
Clpob3UsIGV0IGFsLiAgICAgICAgICAgICAgRXhwaXJlcyBKdW5lIDExLCAyMDE2ICAgICAg
ICAgICAgICAgIFtQYWdlIDExXQoMCkludGVybmV0LURyYWZ0ICAgICAgRGF0YSBNb2RlbCBm
b3IgRGVjbGFyYXRpdmUgUG9saWN5ICAgICAgRGVjZW1iZXIgMjAxNQoKCiAgICAgICAgICAg
ICAgICAgICArLS06KGludCkKICAgICAgICAgICAgICAgICAgIHwgICstLXJ3IHNpbmdsZS1p
bnQtdmFsdWU/ICAgICAgICAgICAgaW50NjQKICAgICAgICAgICAgICAgICAgICstLTooaW50
LWxpc3QpCiAgICAgICAgICAgICAgICAgICB8ICArLS1ydyBpbnQtdmFsdWUqIFt2YWx1ZSBv
cmRlcl0KICAgICAgICAgICAgICAgICAgIHwgICAgICstLXJ3IHZhbHVlICAgIGludDY0CiAg
ICAgICAgICAgICAgICAgICB8ICAgICArLS1ydyBvcmRlciAgICB1aW50MzIKICAgICAgICAg
ICAgICAgICAgICstLToodmFyaWFibGUpCiAgICAgICAgICAgICAgICAgICB8ICArLS1ydyB2
YXJpYWJsZS1uYW1lPyAgICAgICAgICAgICAgIHN0cmluZwogICAgICAgICAgICAgICAgICAg
Ky0tOihjYWxjdWxhdGlvbi1leHByZXNzaW9uKQogICAgICAgICAgICAgICAgICAgICAgKy0t
cncgY2FsY3VsYXRpb24tb3BlcmF0b3I/ICAgICAgICBlbnVtZXJhdGlvbgogICAgICAgICAg
ICAgICAgICAgICAgKy0tcncgY2FsY3VsYXRpb24tbGVhZi12YWx1ZT8gICAgICBzdHJpbmcK
ICAgICAgICAgICAgICAgICAgICAgICstLXJ3IGNhbGN1bGF0aW9uLXJpZ2h0LXZhbHVlPyAg
ICAgc3RyaW5nCgogICAgICAgRmlndXJlIDM6IEZpZ3VyZSA0IHN0cnVjdHVyZSBvZiB0aGUg
ZGVjbGFyYXRpdmUgcG9saWN5IG1vZHVsZQoKNC4yLiAgRGVjbGFyYXRpdmUgUG9saWN5IEJh
c2UgRGF0YSBNb2RlbCBpbiBZQU5HIE1vZHVsZQoKICAgPENPREUgQkVHSU5TPiBmaWxlICJp
ZXRmLWRlY2xhcmF0aXZlLXBvbGljeUAyMDE1LTEyLTA5LnlhbmciCgogICAgIG1vZHVsZSBp
ZXRmLWRlY2xhcmF0aXZlLXBvbGljeSB7CgogICAgICAgIHlhbmctdmVyc2lvbiAxOwoKICAg
ICAgICBuYW1lc3BhY2UgInVybjppZXRmOnBhcmFtczp4bWw6bnM6eWFuZzppZXRmLWRlY2xh
cmF0aXZlLXBvbGljeSI7CgogICAgICAgIHByZWZpeCAiZHBvbGljeSI7CgogICAgICAgIGlt
cG9ydCBpZXRmLXlhbmctdHlwZXMgewogICAgICAgICAgICAgcHJlZml4IHlhbmc7CiAgICAg
ICAgfQoKICAgICAgICBvcmdhbml6YXRpb24KICAgICAgICAgICJJbmRpdmlkdWFsIEktRCBh
cyBpbnB1dCB0byBTVVBBIFdHIjsKCiAgICAgICAgICBjb250YWN0CiAgICAgICAgICAgICJF
ZGl0b3I6ICAgQmVydCBXaWpuZW4KICAgICAgICAgICAgICAgICAgICAgICA8bWFpbHRvOmJ3
aWV0ZkBid2lqbmVuLm5ldD4KCiAgICAgICAgICAgICBBdXRob3I6ICAgVGlhbnJhbiBaaG91
CiAgICAgICAgICAgICAgICAgICAgICAgPG1haWx0bzp6aG91dGlhbnJhbkBodWF3ZWkuY29t
PgoKICAgICAgICAgICAgIEF1dGhvcjogICBZaW5iZW4gWGlhCiAgICAgICAgICAgICAgICAg
ICAgICAgPG1haWx0bzp4aWF5aW5iZW5AaHVhd2VpLmNvbT4KICAgICAgICAgICAgIjsKCiAg
ICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICJUaGlzIFlBTkcgbW9kdWxlIGRlZmluZXMg
ZXNzZW50aWFsIGNvbXBvbmVudHMgZm9yIHRoZQogICAgICAgICAgIG1hbmFnZW1lbnQgb2Yg
ZGVjbGFyYXRpdmUgcG9saWNpZXMuCgoKClpob3UsIGV0IGFsLiAgICAgICAgICAgICAgRXhw
aXJlcyBKdW5lIDExLCAyMDE2ICAgICAgICAgICAgICAgIFtQYWdlIDEyXQoMCkludGVybmV0
LURyYWZ0ICAgICAgRGF0YSBNb2RlbCBmb3IgRGVjbGFyYXRpdmUgUG9saWN5ICAgICAgRGVj
ZW1iZXIgMjAxNQoKCiAgICAgICAgICAgQ29weXJpZ2h0IChjKSAyMDE1IElFVEYgVHJ1c3Qg
YW5kIHRoZSBwZXJzb25zIGlkZW50aWZpZWQgYXMKICAgICAgICAgICBhdXRob3JzIG9mIHRo
ZSBjb2RlLiBBbGwgcmlnaHRzIHJlc2VydmVkLgoKICAgICAgICAgICBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yCiAgICAgICAg
ICAgd2l0aG91dCBtb2RpZmljYXRpb24sIGlzIHBlcm1pdHRlZCBwdXJzdWFudCB0bywgYW5k
IHN1YmplY3QKICAgICAgICAgICB0byB0aGUgbGljZW5zZSB0ZXJtcyBjb250YWluZWQgaW4s
IHRoZSBTaW1wbGlmaWVkIEJTRCBMaWNlbnNlCiAgICAgICAgICAgc2V0IGZvcnRoIGluIFNl
Y3Rpb24gNC5jIG9mIHRoZSBJRVRGIFRydXN0J3MgTGVnYWwgUHJvdmlzaW9ucwogICAgICAg
ICAgIFJlbGF0aW5nIHRvIElFVEYgRG9jdW1lbnRzCiAgICAgICAgICAgKGh0dHA6Ly90cnVz
dGVlLmlldGYub3JnL2xpY2Vuc2UtaW5mbykuCgogICAgICAgICAgIFRoZSBrZXkgd29yZHMg
J01VU1QnLCAnTVVTVCBOT1QnLCAnUkVRVUlSRUQnLCAnU0hBTEwnLCAnU0hBTEwKICAgICAg
ICAgICBOT1QnLCAnU0hPVUxEJywgJ1NIT1VMRCBOT1QnLCAnUkVDT01NRU5ERUQnLCAnTUFZ
JywgYW5kCiAgICAgICAgICAgJ09QVElPTkFMJyBpbiB0aGUgbW9kdWxlIHRleHQgYXJlIHRv
IGJlIGludGVycHJldGVkIGFzCiAgICAgICAgICAgZGVzY3JpYmVkIGluIFJGQyAyMTE5ICho
dHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMyMTE5KS4KCiAgICAgICAgICAgVGhpcyB2
ZXJzaW9uIG9mIHRoaXMgWUFORyBtb2R1bGUgaXMgcGFydCBvZiBSRkMgWFhYWAogICAgICAg
ICAgIChodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmNYWFhYKTsgc2VlIHRoZSBSRkMg
aXRzZWxmIGZvcgogICAgICAgICAgIGZ1bGwgbGVnYWwgbm90aWNlcy4iOwoKICAgICAgICAg
ICByZXZpc2lvbiAiMjAxNS0xMi0wOSIgewogICAgICAgICAgICAgICBkZXNjcmlwdGlvbgog
ICAgICAgICAgICAgICAgICAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgICAgICAgICBy
ZWZlcmVuY2UKICAgICAgICAgICAgICAgICAgIlJGQyBYWFhYOiBBIFlBTkcgRGF0YSBNb2Rl
bCBmb3IgRGVsY2FyYXRpdmUgUG9saWN5LiI7CiAgICAgICAgICAgfQoKICAgICAgICAgICB0
eXBlZGVmIHV1aWQgewogICAgICAgICAgICAgICB0eXBlIHN0cmluZyB7CiAgICAgICAgICAg
ICAgICAgICBwYXR0ZXJuICdbMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS0nICsKICAg
ICAgICAgICAgICAgICAgICdbMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1m
QS1GXXsxMn0nOwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIGRlc2NyaXB0aW9u
CiAgICAgICAgICAgICAgICAgICAiQSBVbml2ZXJzYWxseSBVbmlxdWUgSWRlbnRpZmllciBp
biB0aGUgc3RyaW5nCiAgICAgICAgICAgICAgICAgICAgcmVwcmVzZW50YXRpb24gZGVmaW5l
ZCBpbiBSRkMgNDEyMi4gVGhlIGNhbm9uaWNhbAogICAgICAgICAgICAgICAgICAgIHJlcHJl
c2VudGF0aW9uIHVzZXMgbG93ZXIgY2FzZSBjaGFyYWN0ZXJzLgoKICAgICAgICAgICAgICAg
ICAgICBUaGUgZm9sbG93aW5nIGlzIGFuIGV4YW1wbGUgb2YgYSBVVUlEIGluIHN0cmluZwog
ICAgICAgICAgICAgICAgICAgIHJlcHJlc2VudGF0aW9uOgogICAgICAgICAgICAgICAgICAg
IGY4MWQ0ZmFlLTdkZWMtMTFkMC1hNzY1LTAwYTBjOTFlNmJmNiI7CiAgICAgICAgICAgICAg
IHJlZmVyZW5jZQogICAgICAgICAgICAgICAgICAgIlJGQyA0MTIyOiBBIFVuaXZlcnNhbGx5
IFVuaXF1ZSBJRGVudGlmaWVyIChVVUlEKSBVUk4KICAgICAgICAgICAgICAgICAgICBOYW1l
c3BhY2UiOwogICAgICAgICAgIH0KCiAgICAgICAgICAgdHlwZWRlZiB1bmlxdWUtaWQgewog
ICAgICAgICAgICAgICB0eXBlIHV1aWQ7CiAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAg
ICAgICAgICAgICAgICAgICAiQSBnbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllci4iOwoKCgpa
aG91LCBldCBhbC4gICAgICAgICAgICAgIEV4cGlyZXMgSnVuZSAxMSwgMjAxNiAgICAgICAg
ICAgICAgICBbUGFnZSAxM10KDApJbnRlcm5ldC1EcmFmdCAgICAgIERhdGEgTW9kZWwgZm9y
IERlY2xhcmF0aXZlIFBvbGljeSAgICAgIERlY2VtYmVyIDIwMTUKCgogICAgICAgICAgIH0K
CiAgICAgICAgICAgdHlwZWRlZiBuYW1lIHsKICAgICAgICAgICAgICAgdHlwZSBzdHJpbmcg
ewogICAgICAgICAgICAgICAgICAgbGVuZ3RoICIxLi4yNTYiOwogICAgICAgICAgICAgICAg
ICAgcGF0dGVybiAnW2EtekEtWl0oW2EtekEtWjAtOVwtXy5dKSonOwogICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgICAgICAiQSBn
ZW5lcmljIHN0cmluZyBuYW1lIHR5cGUuIE11c3Qgc3RhcnQgd2l0aCBhCiAgICAgICAgICAg
ICAgICAgICAgbGV0dGVyIjsKICAgICAgICAgICB9CgogICAgICAgICAgIHR5cGVkZWYgcGFy
YW1ldGVyLW5hbWUgewogICAgICAgICAgICAgICB0eXBlIG5hbWU7CiAgICAgICAgICAgICAg
IGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgICAgICAiQSBuYW1lIGZvciBhIHBhcmFtZXRl
ci4iOwogICAgICAgICAgIH0KCiAgICAgICAgICAgdHlwZWRlZiBhY3Rpb24tbmFtZSB7CiAg
ICAgICAgICAgICAgIHR5cGUgbmFtZTsKICAgICAgICAgICAgICAgZGVzY3JpcHRpb24KICAg
ICAgICAgICAgICAgICAgICJBIG5hbWUgZm9yIGFuIGFjdGlvbi4iOwogICAgICAgICAgIH0K
CiAgICAgICAgICAgdHlwZWRlZiBjb25kaXRpb24tc2VnbWVudC1pZCB7CiAgICAgICAgICAg
ICAgIHR5cGUgdW5pcXVlLWlkOwogICAgICAgICAgICAgICBkZXNjcmlwdGlvbgogICAgICAg
ICAgICAgICAgICAgIkEgdW5pcXVlIElEIGZvciBhIHNlZ21lbnQgb2YgdGhlIGNvbmRpdGlv
biBpbiBhbgogICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi4iOwogICAgICAgICAgIH0K
CiAgICAgICAgICAgdHlwZWRlZiBjb25zdHJhaW50LXNlZ21lbnQtaWQgewogICAgICAgICAg
ICAgICB0eXBlIHVuaXF1ZS1pZDsKICAgICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAg
ICAgICAgICAgICAgICJBIHVuaXF1ZSBJRCBmb3IgYSBzZWdtZW50IG9mIHRoZSBjb25zdHJh
aW50IGluCiAgICAgICAgICAgICAgICAgICBhbiBvcGVyYXRpb24uIjsKICAgICAgICAgICB9
CgogICAgICAgICAgIHR5cGVkZWYgY29uZGl0aW9uLXBhcmFtZXRlci1uYW1lIHsKICAgICAg
ICAgICAgICAgdHlwZSBuYW1lOwogICAgICAgICAgICAgICBkZXNjcmlwdGlvbgogICAgICAg
ICAgICAgICAgICAgIkEgbmFtZSBmb3IgYSBwYXJhbWV0ZXIgb2YgY29uZGl0aW9uLiI7CiAg
ICAgICAgICAgfQoKICAgICAgICAgICB0eXBlZGVmIGNvbnN0cmFpbnQtcGFyYW1ldGVyLW5h
bWUgewogICAgICAgICAgICAgICB0eXBlIG5hbWU7CiAgICAgICAgICAgICAgIGRlc2NyaXB0
aW9uCiAgICAgICAgICAgICAgICAgICAiQSBuYW1lIGZvciBhIHBhcmFtZXRlciBvZiBjb25z
dHJhaW50LiI7CgoKClpob3UsIGV0IGFsLiAgICAgICAgICAgICAgRXhwaXJlcyBKdW5lIDEx
LCAyMDE2ICAgICAgICAgICAgICAgIFtQYWdlIDE0XQoMCkludGVybmV0LURyYWZ0ICAgICAg
RGF0YSBNb2RlbCBmb3IgRGVjbGFyYXRpdmUgUG9saWN5ICAgICAgRGVjZW1iZXIgMjAxNQoK
CiAgICAgICAgICAgfQoKICAgICAgICAgICB0eXBlZGVmIHBvbGljeS1pZCB7CiAgICAgICAg
ICAgICAgIHR5cGUgdW5pcXVlLWlkOwogICAgICAgICAgICAgICBkZXNjcmlwdGlvbgogICAg
ICAgICAgICAgICAgICAgIkEgdW5pcXVlIElEIGZvciBhIHBvbGljeS4iOwogICAgICAgICAg
IH0KCiAgICAgICAgICAgdHlwZWRlZiBwb2xpY3ktbmFtZSB7CiAgICAgICAgICAgICAgIHR5
cGUgc3RyaW5nOwogICAgICAgICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAgICAg
ICAgIkEgbmFtZSBmb3IgYSBwb2xpY3kuIjsKICAgICAgICAgICB9CgogICAgICAgICAgIHR5
cGVkZWYgb2JqZWN0LWlkIHsKICAgICAgICAgICAgICAgdHlwZSB1bmlxdWUtaWQ7CiAgICAg
ICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgICAgICAiQSB1bmlxdWUgSUQg
Zm9yIGEgcGFyYW1ldGVyaXplZCBvYmplY3QuIjsKICAgICAgICAgICB9CgogICAgICAgICAg
IHR5cGVkZWYgbWF0Y2gtcGF0dGVybi1vcGVyYXRvciB7CiAgICAgICAgICAgICAgIHR5cGUg
ZW51bWVyYXRpb24gewogICAgICAgICAgICAgICAgICAgZW51bSBsZXNzLXRoYW4gewogICAg
ICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gImxlc3MgdGhhbiI7CiAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBlbnVtIG5vdC1sZXNzLXRoYW4gewogICAg
ICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIm5vdCBsZXNzIHRoYW4iOwogICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgZW51bSBlcXVhbCB7CiAgICAgICAg
ICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiZXF1YWwiOwogICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgZW51bSBub3QtZXF1YWwgewogICAgICAgICAgICAgICAg
ICAgICAgZGVzY3JpcHRpb24gIm5vdCBlcXVhbCI7CiAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICBlbnVtIGdyZWF0ZXItdGhhbiB7CiAgICAgICAgICAgICAgICAg
ICAgICBkZXNjcmlwdGlvbiAiZ3JlYXRlciB0aGFuIjsKICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgIGVudW0gbm90LWdyZWF0ZXItdGhhbiB7CiAgICAgICAgICAg
ICAgICAgICAgICBkZXNjcmlwdGlvbiAibm90IGdyZWF0ZXIgdGhhbiI7CiAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBlbnVtIGJldHdlZW4gewogICAgICAgICAg
ICAgICAgICAgICAgZGVzY3JpcHRpb24gImJldHdlZW4iOwogICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgZW51bSBwZXJpb2RpY2FsIHsKICAgICAgICAgICAgICAg
ICAgICAgIGRlc2NyaXB0aW9uICJwZXJpb2RpY2FsIjsKICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAicGF0dGVybiBt
YXRjaGluZyBvcGVyYXRvcnMiOwoKCgpaaG91LCBldCBhbC4gICAgICAgICAgICAgIEV4cGly
ZXMgSnVuZSAxMSwgMjAxNiAgICAgICAgICAgICAgICBbUGFnZSAxNV0KDApJbnRlcm5ldC1E
cmFmdCAgICAgIERhdGEgTW9kZWwgZm9yIERlY2xhcmF0aXZlIFBvbGljeSAgICAgIERlY2Vt
YmVyIDIwMTUKCgogICAgICAgICAgIH0KCiAgICAgICBjb250YWluZXIgdG9wX2RlY2xhcmF0
aXZlX3BvbGljeSB7CiAgICAgICAgICAgZGVzY3JpcHRpb24gIlRvcCBsZXZlbCBkZWNsYXJh
dGl2ZSBwb2xpY3kgY29udGFpbmVyIjsKCiAgICAgICAgICAgY29udGFpbmVyIGNvbmRpdGlv
bi1wYXJhbWV0ZXItZGVmaW5pdGlvbnMgewogICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAi
TGlzdCBvZiBjb25kaXRpb24gcGFyYW1ldGVycyI7CiAgICAgICAgICAgICAgIGxpc3QgY29u
ZGl0aW9uLXBhcmFtZXRlci1kZWZpbml0aW9uIHsKICAgICAgICAgICAgICAgICAgIGtleSAi
cGFyYW1ldGVyLW5hbWUiOwogICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAg
ICAgICAgICAgICAgICAgICAiRGVmaW5lcyB0aGUgY29uZGl0aW9uIHBhcmFtZXRlciB3aXRo
IGl0cwogICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YS4iOwogICAgICAgICAgICAg
ICAgICAgbGVhZiBwYXJhbWV0ZXItbmFtZSB7CiAgICAgICAgICAgICAgICAgICAgICAgdHlw
ZSBwYXJhbWV0ZXItbmFtZTsKICAgICAgICAgICAgICAgICAgICAgICBtYW5kYXRvcnkgdHJ1
ZTsKICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAiQSBuYW1lIGZvciB0aGUgY29uZGl0aW9uIHBhcmFtZXRlci4iOwogICAg
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgIGxlYWYgcGFyYW1ldGVyLXZh
bHVlLXR5cGUgewogICAgICAgICAgICAgICAgICAgICAgIHR5cGUgZW51bWVyYXRpb24gewog
ICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIHN0cmluZyB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJBIHN0cmluZy12YWx1ZWQgcGFyYW1ldGVyLiI7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBpbnQgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiQW4gaW50ZWdlci12YWx1ZWQgcGFyYW1ldGVyLiI7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZW51bSByYW5nZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlw
dGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBbiBpbnRlZ2VyLXJh
bmdlIHBhcmFtZXRlci4iOwogICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJBIHR5cGUgb2YgdmFsdWUgZm9yIHRoZSBjb25k
aXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlci4iOwogICAgICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lciBwYXJhbWV0ZXIt
bWF0Y2gtcGF0dGVybnMgewogICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJEZWZpbmVzIHRoZSBtYXRjaCBwYXR0ZXJucyBv
ZiB0aGUgY29uZGl0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXIu
IjsKCiAgICAgICAgICAgICAgICAgICAgICAgbGVhZi1saXN0IHBhcmFtZXRlci1tYXRjaC1w
YXR0ZXJuIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSBtYXRjaC1wYXR0ZXJu
LW9wZXJhdG9yOwogICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhdHRlcm4gbWF0Y2hpbmcgb3BlcmF0b3Ii
OwoKCgpaaG91LCBldCBhbC4gICAgICAgICAgICAgIEV4cGlyZXMgSnVuZSAxMSwgMjAxNiAg
ICAgICAgICAgICAgICBbUGFnZSAxNl0KDApJbnRlcm5ldC1EcmFmdCAgICAgIERhdGEgTW9k
ZWwgZm9yIERlY2xhcmF0aXZlIFBvbGljeSAgICAgIERlY2VtYmVyIDIwMTUKCgogICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
fQogICAgICAgICAgIH0KCgogICAgICAgICAgIGNvbnRhaW5lciBjb25zdHJhaW50LXBhcmFt
ZXRlci1kZWZpbml0aW9ucyB7CiAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJQYXJhbWV0
ZXIgZGVmaW5pdGlvbnMgZnJvIGNvbnN0cmFpbnRzIjsKICAgICAgICAgICAgICAgbGlzdCBj
b25zdHJhaW50LXBhcmFtZXRlci1kZWZpbml0aW9uIHsKICAgICAgICAgICAgICAgICAgIGtl
eSAicGFyYW1ldGVyLW5hbWUiOwogICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24KICAg
ICAgICAgICAgICAgICAgICAgICAiRGVmaW5lcyB0aGUgY29uc3RyYWludCBwYXJhbWV0ZXIg
d2l0aCBpdHMKICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEuIjsKCiAgICAgICAg
ICAgICAgICAgICBsZWFmIHBhcmFtZXRlci1uYW1lIHsKICAgICAgICAgICAgICAgICAgICAg
ICB0eXBlIHBhcmFtZXRlci1uYW1lOwogICAgICAgICAgICAgICAgICAgICAgIG1hbmRhdG9y
eSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJBIG5hbWUgZm9yIHRoZSBjb25zdHJhaW50IHBhcmFtZXRlci4i
OwogICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgIGxlYWYgcGFyYW1l
dGVyLXZhbHVlLXR5cGUgewogICAgICAgICAgICAgICAgICAgICAgIHR5cGUgZW51bWVyYXRp
b24gewogICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIHN0cmluZyB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJBIHN0cmluZy12YWx1ZWQgcGFyYW1ldGVyLiI7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBp
bnQgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQW4gaW50ZWdlci12YWx1ZWQgcGFyYW1l
dGVyLiI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZW51bSByYW5nZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
ZXNjcmlwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBbiBpbnRl
Z2VyLXJhbmdlIHBhcmFtZXRlci4iOwogICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0
aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJBIHR5cGUgb2YgdmFsdWUgZm9yIHRo
ZSBjb25zdHJhaW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXIuIjsK
ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICBjb250YWluZXIgcGFy
YW1ldGVyLW1hdGNoLXBhdHRlcm5zIHsKICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlw
dGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAiRGVmaW5lcyB0aGUgbWF0Y2ggcGF0
dGVybnMgb2YgdGhlIGNvbnN0cmFpbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
cmFtZXRlci4iOwoKICAgICAgICAgICAgICAgICAgICAgICBsZWFmLWxpc3QgcGFyYW1ldGVy
LW1hdGNoLXBhdHRlcm4gewogICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlIG1hdGNo
LXBhdHRlcm4tb3BlcmF0b3I7CgoKClpob3UsIGV0IGFsLiAgICAgICAgICAgICAgRXhwaXJl
cyBKdW5lIDExLCAyMDE2ICAgICAgICAgICAgICAgIFtQYWdlIDE3XQoMCkludGVybmV0LURy
YWZ0ICAgICAgRGF0YSBNb2RlbCBmb3IgRGVjbGFyYXRpdmUgUG9saWN5ICAgICAgRGVjZW1i
ZXIgMjAxNQoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAicGF0dGVybiBtYXRjaGluZyBvcGVyYXRvciI7
CiAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgfQoKICAgICAgICAgICBjb250YWluZXIgYWN0aW9uLWRl
ZmluaXRpb25zIHsKICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkFjdGlvbiBkZWZpbml0
aW9ucyI7CiAgICAgICAgICAgICAgIGxpc3QgYWN0aW9uLWRlZmluaXRpb24gewogICAgICAg
ICAgICAgICAgICAga2V5ICJhY3Rpb24tbmFtZSI7CiAgICAgICAgICAgICAgICAgICBkZXNj
cmlwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICJEZWZpbmVzIHRoZSBhY3Rpb25zIHdo
aWNoIHdpbGwgYmUgc3VwcG9ydGVkLiI7CgogICAgICAgICAgICAgICAgICAgbGVhZiBhY3Rp
b24tbmFtZSB7CiAgICAgICAgICAgICAgICAgICAgICAgdHlwZSBhY3Rpb24tbmFtZTsKICAg
ICAgICAgICAgICAgICAgICAgICBtYW5kYXRvcnkgdHJ1ZTsKICAgICAgICAgICAgICAgICAg
ICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAiQSBuYW1lIGZv
ciB0aGUgYWN0aW9uIGRlZmluaXRpb24uIjsKICAgICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICAgICBsZWFmIHBhcmFtZXRlci12YWx1ZS10eXBlIHsKICAgICAgICAgICAg
ICAgICAgICAgICB0eXBlIGVudW1lcmF0aW9uIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZW51bSBzdHJpbmcgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3Jp
cHRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQSBzdHJpbmctdmFs
dWVkIHBhcmFtZXRlci4iOwogICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVudW0gaW50IHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IkFuIGludGVnZXItdmFsdWVkIHBhcmFtZXRlci4iOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gcmFuZ2UgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiQW4gaW50ZWdlci1yYW5nZSBwYXJhbWV0ZXIuIjsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICAgICBkZWZhdWx0IHN0cmluZzsKICAgICAgICAgICAgICAgICAgICAg
ICBkZXNjcmlwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIHR5cGUgb2Yg
dGhlIGFjdGlvbiBwYXJhbWV0ZXIuIjsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgfQogICAgICAgICAgIH0KCiAgICAgICAgICAgZ3JvdXBpbmcgY29uZGl0aW9uLWlu
c3RhbmNlIHsKICAgICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICAg
ICJTcGVjaWZpYyBhIGluc3RhbmNlIG9mIGNvbmRpdGlvbiB3aG9zZSBtZXRhZGF0YSBoYXMK
ICAgICAgICAgICAgICAgICAgICBiZWVuIGZpbGxlZCBpbi4iOwoKCgoKWmhvdSwgZXQgYWwu
ICAgICAgICAgICAgICBFeHBpcmVzIEp1bmUgMTEsIDIwMTYgICAgICAgICAgICAgICAgW1Bh
Z2UgMThdCgwKSW50ZXJuZXQtRHJhZnQgICAgICBEYXRhIE1vZGVsIGZvciBEZWNsYXJhdGl2
ZSBQb2xpY3kgICAgICBEZWNlbWJlciAyMDE1CgoKICAgICAgICAgICAgICAgbGlzdCBjb25k
aXRpb24tc2VnbWVudCB7CiAgICAgICAgICAgICAgICAgICBrZXkgImNvbmRpdGlvbi1zZWdt
ZW50LWlkIjsKICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAg
ICAgICAgICAgIlRoZSBzZWdtZW50IGVudGl0aWVzIHdpbGwgYmUgY29tcG9zZWQgaW50byBh
CiAgICAgICAgICAgICAgICAgICAgICAgIHdob2xlIGNvbmRpdGlvbiBlbnRpdHkuIEVhY2gg
c2VnbWVudCB3aWxsIGJlCiAgICAgICAgICAgICAgICAgICAgICAgIGEgc3ViIGV4cHJlc3Np
b24gb2YgdGhlIGNvbmRpdGlvbi4iOwoKICAgICAgICAgICAgICAgICAgIGxlYWYgY29uZGl0
aW9uLXNlZ21lbnQtaWQgewogICAgICAgICAgICAgICAgICAgICAgIHR5cGUgY29uZGl0aW9u
LXNlZ21lbnQtaWQ7CiAgICAgICAgICAgICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAg
ICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIkEgdW5pcXVlIElEIGZvciBhIGNvbmRpdGlvbiBzZWdtZW50LiI7CiAgICAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgbGVhZiBjb25kaXRpb24tcGFyYW1l
dGVyLW5hbWUgewogICAgICAgICAgICAgICAgICAgICAgIHR5cGUgY29uZGl0aW9uLXBhcmFt
ZXRlci1uYW1lOwogICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJBIG5hbWUgZm9yIGEgY29uZGl0aW9uIHBhcmFtZXRlci4i
OwogICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgIGxlYWYgY29uZGl0
aW9uLXBhcmFtZXRlci1tYXRjaC1wYXR0ZXJuIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdHlwZSBtYXRjaC1wYXR0ZXJuLW9wZXJhdG9yOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIG9w
ZXJhdG9yIGZvciB0aGUgY29uZGl0aW9uIHBhcmFtZXRlcgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYW5kIGl0J3MgdGFyZ2V0IHZhbHVlLiI7CiAgICAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgICAgY29udGFpbmVyIGNvbmRpdGlvbi1wYXJhbWV0ZXIt
dGFyZ2V0LXZhbHVlIHsKICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAiVGhlIHRhcmdldCB2YWx1ZSBvZiBjb25kaXRpb24g
cGFyYW1ldGVyLiI7CgogICAgICAgICAgICAgICAgICAgICAgIGxlYWYgc3RyaW5nLXZhbHVl
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSBzdHJpbmc7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgdmFsdWUgaXMgb2YgdHlwZSAnc3Ry
aW5nJyI7CiAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg
ICBsZWFmIGludC12YWx1ZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgaW50
NjQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgdmFsdWUg
aXMgb2YgdHlwZSAnaW50NjQnIjsKICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgICAgICAgIGNvbnRhaW5lciByYW5nZS12YWx1ZSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiVGhlIG1pbi9tYXggb2YgYSByYW5nZS4iOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZWFmIG1pbiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlIGludDY0
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAibWluaW11bSB2YWx1ZSBv
ZiB0aGUgcmFuZ2UiOwoKCgpaaG91LCBldCBhbC4gICAgICAgICAgICAgIEV4cGlyZXMgSnVu
ZSAxMSwgMjAxNiAgICAgICAgICAgICAgICBbUGFnZSAxOV0KDApJbnRlcm5ldC1EcmFmdCAg
ICAgIERhdGEgTW9kZWwgZm9yIERlY2xhcmF0aXZlIFBvbGljeSAgICAgIERlY2VtYmVyIDIw
MTUKCgogICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg
ICAgICAgICBsZWFmIG1heCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBl
IGludDY0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAibWF4aW11bSB2
YWx1ZSBvZiB0aGUgcmFuZ2UiOwogICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgICAgIGxlYWYgcHJlY3Vyc29yLXJlbGF0aW9uLW9wZXJhdG9yIHsKICAgICAgICAgICAg
ICAgICAgICAgICB0eXBlIGVudW1lcmF0aW9uIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZW51bSBub25lIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRp
b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5vIHByZWN1cnNvci1yZWxh
dGlvbi1vcGVyYXRvciI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZW51bSBhbmQgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJ2Fu
ZCcgcHJlY3Vyc29yLXJlbGF0aW9uLW9wZXJhdG9yIjsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIG9yIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIidvcicgcHJlY3Vyc29yLXJlbGF0aW9uLW9wZXJhdG9yIjsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVt
IG5vdCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICInbm90JyBwcmVjdXJzb3ItcmVsYXRpb24t
b3BlcmF0b3IiOwogICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJ0aGUgcHJl
LWN1cnNvciByZWxhdGlvbiBvcGVyYXRpb24uIjsKICAgICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICAgICBsZWFmIG9yZGVyIHsKICAgICAgICAgICAgICAgICAgICAgICB0
eXBlIHVpbnQzMjsKICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAiVGhlIG9yZGVyIG9mIHRoZSBzZWdtZW50IGluIHRoZSB3
aG9sZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uIGVudGl0eS4iOwog
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgfQoKCiAg
ICAgICAgICAgZ3JvdXBpbmcgY29uc3RyYWludC1pbnN0YW5jZSB7CiAgICAgICAgICAgICAg
IGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgICAgICAiU3BlY2lmaWMgYSBpbnN0YW5jZSBv
ZiBjb25zdHJhaW50IHdob3NlIG1ldGFkYXRhCiAgICAgICAgICAgICAgICAgICAgaGFzIGJl
ZW4gZmlsbGVkIGluLiI7CgogICAgICAgICAgICAgICBsaXN0IGNvbnN0cmFpbnQtc2VnbWVu
dCB7CgoKClpob3UsIGV0IGFsLiAgICAgICAgICAgICAgRXhwaXJlcyBKdW5lIDExLCAyMDE2
ICAgICAgICAgICAgICAgIFtQYWdlIDIwXQoMCkludGVybmV0LURyYWZ0ICAgICAgRGF0YSBN
b2RlbCBmb3IgRGVjbGFyYXRpdmUgUG9saWN5ICAgICAgRGVjZW1iZXIgMjAxNQoKCiAgICAg
ICAgICAgICAgICAgICBrZXkgImNvbnN0cmFpbnQtc2VnbWVudC1pZCI7CiAgICAgICAgICAg
ICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICJUaGUgc2VnbWVu
dCBlbnRpdGllcyB3aWxsIGJlIGNvbXBvc2VkIGludG8gYQogICAgICAgICAgICAgICAgICAg
ICAgICB3aG9sZSBjb25zdHJhaW50IGVudGl0eS4gRWFjaCBzZWdtZW50IHdpbGwgYmUKICAg
ICAgICAgICAgICAgICAgICAgICAgYSBzdWIgZXhwcmVzc2lvbiBvZiB0aGUgY29uc3RyYWlu
dC4iOwoKICAgICAgICAgICAgICAgICAgIGxlYWYgY29uc3RyYWludC1zZWdtZW50LWlkIHsK
ICAgICAgICAgICAgICAgICAgICAgICB0eXBlIGNvbnN0cmFpbnQtc2VnbWVudC1pZDsKICAg
ICAgICAgICAgICAgICAgICAgICBtYW5kYXRvcnkgdHJ1ZTsKICAgICAgICAgICAgICAgICAg
ICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAiQSB1bmlxdWUg
SUQgZm9yIGEgY29uc3RyYWludCBzZWdtZW50LiI7CiAgICAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgICAgbGVhZiBjb25zdHJhaW50LXBhcmFtZXRlci1uYW1lIHsKICAg
ICAgICAgICAgICAgICAgICAgICB0eXBlIGNvbnN0cmFpbnQtcGFyYW1ldGVyLW5hbWU7CiAg
ICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIkEgbmFtZSBmb3IgYSBjb25zdHJhaW50IHBhcmFtZXRlci4iOwogICAgICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgIGxlYWYgY29uc3RyYWludC1wYXJhbWV0
ZXItbWF0Y2gtcGF0dGVybiB7CiAgICAgICAgICAgICAgICAgICAgICAgdHlwZSBtYXRjaC1w
YXR0ZXJuLW9wZXJhdG9yOwogICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgb3BlcmF0b3IgZm9yIHRoZSBjb25zdHJh
aW50IHBhcmFtZXRlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGl0J3MgdGFy
Z2V0IHZhbHVlLiI7CiAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg
Y29udGFpbmVyIGNvbnN0cmFpbnQtcGFyYW1ldGVyLXRhcmdldC12YWx1ZSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IlRoZSB0YXJnZXQgdmFsdWUgb2YgY29uc3RyYWludCBwYXJhbWV0ZXIuIjsKCiAgICAgICAg
ICAgICAgICAgICAgICAgbGVhZiBzdHJpbmctdmFsdWUgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3Jp
cHRpb24gInRoZSBzdHJpbmcgdmFsdWUuIjsKICAgICAgICAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgICAgICAgIGxlYWYgaW50LXZhbHVlIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdHlwZSBpbnQ2NDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVz
Y3JpcHRpb24gInRoZSBpbnQ2NCB2YWx1ZS4iOwogICAgICAgICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyIHJhbmdlLXZhbHVlIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gImEgcmFuZ2Ugb2YgdmFsdWVzLiI7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlYWYgbWluIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdHlwZSBpbnQ2NDsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2Ny
aXB0aW9uICJ0aGUgbWluIHZhbHVlIGluIHRoZSByYW5nZS4iOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICB9CgoKCgpaaG91LCBldCBhbC4gICAgICAgICAgICAgIEV4cGlyZXMgSnVu
ZSAxMSwgMjAxNiAgICAgICAgICAgICAgICBbUGFnZSAyMV0KDApJbnRlcm5ldC1EcmFmdCAg
ICAgIERhdGEgTW9kZWwgZm9yIERlY2xhcmF0aXZlIFBvbGljeSAgICAgIERlY2VtYmVyIDIw
MTUKCgogICAgICAgICAgICAgICAgICAgICAgICAgICBsZWFmIG1heCB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHR5cGUgaW50NjQ7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1hbmRhdG9yeSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
ZXNjcmlwdGlvbiAidGhlIG1heCB2YWx1ZSBpbiB0aGUgcmFuZ2UuIjsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgbGVhZiBwcmVjdXJzb3ItcmVsYXRpb24t
b3BlcmF0b3IgewogICAgICAgICAgICAgICAgICAgICAgIHR5cGUgZW51bWVyYXRpb24gewog
ICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIG5vbmUgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAibm8gcmVsYXRpb25hbCBvcGVyYXRpb24uIjsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg
ICBlbnVtIGFuZCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9u
ICInYW5kJyByZWxhdGlvbmFsIG9wZXJhdGlvbi4iOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gb3IgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiJ29yJyByZWxhdGlvbmFsIG9wZXJh
dGlvbi4iOwogICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGVudW0gbm90IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVz
Y3JpcHRpb24gIidub3QnIHJlbGF0aW9uYWwgb3BlcmF0aW9uLiI7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBs
b2dpY2FsIG9wZXJhdG9yIGJldHdlZW4gY3VycmVudCBzZWdtZW50CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhbmQgdGhlIG5leHQgc2VnbWVudC4iOwogICAgICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgICAgIGxlYWYgb3JkZXIgewogICAgICAgICAgICAgICAg
ICAgICAgIHR5cGUgdWludDMyOwogICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9u
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgb3JkZXIgb2YgdGhlIHNlZ21lbnQg
aW4gdGhlIHdob2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdHJhaW50IGVu
dGl0eS4iOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgfQoKCiAgICAgICAgICAgZ3JvdXBpbmcgYWN0aW9uLWluc3RhbmNlIHsKICAgICAgICAg
ICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICAgICJTcGVjaWZpYyBhIGFjdGlv
biBpbnN0YW5jZSB3aG9zZSBtZXRhZGF0YSBoYXMKICAgICAgICAgICAgICAgICAgICBiZWVu
IGZpbGxlZCBpbi4iOwoKICAgICAgICAgICAgICAgbGVhZiBhY3Rpb24tbmFtZSB7CiAgICAg
ICAgICAgICAgICAgICB0eXBlIGFjdGlvbi1uYW1lOwogICAgICAgICAgICAgICAgICAgbWFu
ZGF0b3J5IHRydWU7CiAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbgoKCgpaaG91LCBl
dCBhbC4gICAgICAgICAgICAgIEV4cGlyZXMgSnVuZSAxMSwgMjAxNiAgICAgICAgICAgICAg
ICBbUGFnZSAyMl0KDApJbnRlcm5ldC1EcmFmdCAgICAgIERhdGEgTW9kZWwgZm9yIERlY2xh
cmF0aXZlIFBvbGljeSAgICAgIERlY2VtYmVyIDIwMTUKCgogICAgICAgICAgICAgICAgICAg
ICAgICJBIG5hbWUgZm9yIGEgYWN0aW9uIGluc3RhbmNlLiI7CiAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgIGNvbnRhaW5lciBwYXJhbWV0ZXItdmFsdWVzIHsKICAgICAgICAg
ICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBwYXJh
bWV0ZXIgdmFsdWUgbGlzdCBvZiBhbiBhY3Rpb24uIjsKCiAgICAgICAgICAgICAgICAgICBs
aXN0IHN0cmluZy12YWx1ZSB7CiAgICAgICAgICAgICAgICAgICAgICAga2V5ICJ2YWx1ZSBv
cmRlciI7CiAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gImxpc3Qgb2Ygc3Ry
aW5nIHZhbHVlcy4iOwogICAgICAgICAgICAgICAgICAgICAgIGxlYWYgdmFsdWUgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBzdHJpbmcgdmFsdWUuIjsKICAgICAgICAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgIGxlYWYgb3JkZXIgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBvcmRlciBvZiB0aGUgdmFsdWUgaW4gdGhlCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0LiI7CiAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg
ICAgIGxpc3QgaW50LXZhbHVlIHsKICAgICAgICAgICAgICAgICAgICAgICBrZXkgInZhbHVl
IG9yZGVyIjsKICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAibGlzdCBvZiBp
bnRlZ2VyIHZhbHVlcy4iOwogICAgICAgICAgICAgICAgICAgICAgIGxlYWYgdmFsdWUgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlIGludDY0OwogICAgICAgICAgICAgICAg
ICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhlIGludDY0IHZhbHVlLiI7CiAgICAgICAgICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICBsZWFmIG9yZGVyIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSB1aW50MzI7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgb3JkZXIgb2YgdGhlIHZhbHVlIGluIHRoZQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC4iOwogICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICAgICBjb250YWluZXIgcmFuZ2UtdmFsdWUgewogICAgICAgICAgICAgICAgICAgICAgIGRl
c2NyaXB0aW9uICJhIHZhbHVlIHJhbmdlLiI7CiAgICAgICAgICAgICAgICAgICAgICAgbGVh
ZiBtaW4gewogICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlIGludDY0OwogICAgICAg
ICAgICAgICAgICAgICAgICAgICBtYW5kYXRvcnkgdHJ1ZTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBtaW4gdmFsdWUgaW4gdGhlIHJhbmdlLiI7CiAg
ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICBsZWFmIG1h
eCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgaW50NjQ7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1hbmRhdG9yeSB0cnVlOwoKCgpaaG91LCBldCBhbC4gICAgICAg
ICAgICAgIEV4cGlyZXMgSnVuZSAxMSwgMjAxNiAgICAgICAgICAgICAgICBbUGFnZSAyM10K
DApJbnRlcm5ldC1EcmFmdCAgICAgIERhdGEgTW9kZWwgZm9yIERlY2xhcmF0aXZlIFBvbGlj
eSAgICAgIERlY2VtYmVyIDIwMTUKCgogICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNj
cmlwdGlvbiAiVGhlIG1heCB2YWx1ZSBpbiB0aGUgcmFuZ2UuIjsKICAgICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICB9CgogICAgICAgICAgIGdyb3VwaW5nIG9wZXJhdGlvbiB7CiAgICAgICAgICAgICAg
IGRlc2NyaXB0aW9uICJEZWZpbmVzIGFuIG9wZXJhdGlvbi4iOwogICAgICAgICAgICAgICBj
b250YWluZXIgY29uZGl0aW9uIHsKICAgICAgICAgICAgICAgICAgIHVzZXMgY29uZGl0aW9u
LWluc3RhbmNlOwogICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkRlZmluZXMgYSBj
b25kaXRpb24iOwogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICBsaXN0IGFjdGlv
biB7CiAgICAgICAgICAgICAgICAgICBrZXkgImFjdGlvbi1uYW1lIjsKICAgICAgICAgICAg
ICAgICAgIHVzZXMgYWN0aW9uLWluc3RhbmNlOwogICAgICAgICAgICAgICAgICAgbWluLWVs
ZW1lbnRzIDE7CiAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAg
ICAgICAgICAgICJUaGUgYWN0aW9uIGxpc3QgZm9yIHRoZSBvcGVyYXRpb24gaW5zdGFuY2Uu
IjsKICAgICAgICAgICAgICAgICAgIGxlYWYgb3JkZXIgewogICAgICAgICAgICAgICAgICAg
ICAgIHR5cGUgdWludDMyOwogICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgb3JkZXIgb2YgYW4gYWN0aW9uIGluc3Rh
bmNlIGluCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRpb24gc2VxdWVuY2Uu
IjsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgY29udGFpbmVyIGNvbnN0cmFpbnR7CiAgICAgICAgICAgICAgICAgICB1c2VzIGNvbnN0
cmFpbnQtaW5zdGFuY2U7CiAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhlIGNv
bnN0cmFpbnQgZGVmaW5pdGlvbi4iOwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgfQoK
ICAgICAgICAgICBncm91cGluZyByZWxhdGlvbmFsLWV4cHJlc3Npb24tdmFsdWUgewogICAg
ICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhlIHJlbGF0aW9uYWwgZXhwcmVzc2lvbi4iOwog
ICAgICAgICAgICAgICBjaG9pY2UgdmFsdWUtdHlwZSB7CgogICAgICAgICAgICAgICAgICAg
ZGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICAgICAgICAiVGhlIHZhbHVlIG9mIHRoZSBy
ZWxhdGlvbiBleHByZXNzaW9uIGNhbiBiZQogICAgICAgICAgICAgICAgICAgICAgICBkaWZm
ZXJlbnQgdHlwZS4iOwogICAgICAgICAgICAgICAgICAgY2FzZSBzdHJpbmd7CiAgICAgICAg
ICAgICAgICAgICAgICAgbGVhZiBzaW5nbGUtc3RyaW5nLXZhbHVlIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdHlwZSBzdHJpbmc7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRlc2NyaXB0aW9uICJUaGUgc3RyaW5nIHZhbHVlIG9mIHRoZQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGUuIjsKICAgICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIHN0
cmluZy1saXN0IHsKCgoKWmhvdSwgZXQgYWwuICAgICAgICAgICAgICBFeHBpcmVzIEp1bmUg
MTEsIDIwMTYgICAgICAgICAgICAgICAgW1BhZ2UgMjRdCgwKSW50ZXJuZXQtRHJhZnQgICAg
ICBEYXRhIE1vZGVsIGZvciBEZWNsYXJhdGl2ZSBQb2xpY3kgICAgICBEZWNlbWJlciAyMDE1
CgoKICAgICAgICAgICAgICAgICAgICAgICBsaXN0IHN0cmluZy12YWx1ZSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGtleSAidmFsdWUgb3JkZXIiOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICBkZXNjcmlwdGlvbiAiTGlzdCBvZiBzdHJpbmcgdmFsdWVzLiI7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxlYWYgdmFsdWUgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdHlwZSBzdHJpbmc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkZXNjcmlwdGlvbiAiVGhlIHN0cmluZyB2YWx1ZSBvZiB0aGUKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZS4iOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlYWYgb3JkZXIg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSB1aW50MzI7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAidGhlIG9yZGVyIGluIHRoZSBs
aXN0LiI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIGlu
dCB7CiAgICAgICAgICAgICAgICAgICAgICAgbGVhZiBzaW5nbGUtaW50LXZhbHVlIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSBpbnQ2NDsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSB2YWx1ZSBvZiB0aGUgaW50NjQKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlLiI7CiAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
Y2FzZSBpbnQtbGlzdCB7CiAgICAgICAgICAgICAgICAgICAgICAgbGlzdCBpbnQtdmFsdWUg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkgInZhbHVlIG9yZGVyIjsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxpc3Qgb2YgaW50ZWdlciB2YWx1
ZXMuIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVhZiB2YWx1ZSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0eXBlIGludDY0OwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGVzY3JpcHRpb24gInRoZSB2YWx1ZSBvZiB0aGUgaW50NjQKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZS4iOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZWFmIG9yZGVyIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgdWludDMy
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gInRoZSBvcmRl
ciBpbiB0aGUgbGlzdC4iOwogICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgY2FzZSB2YXJpYWJsZSB7CiAgICAgICAgICAgICAgICAgICAgICAgbGVhZiB2YXJpYWJs
ZS1uYW1lIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSBzdHJpbmc7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJ0aGUgbmFtZSBvZiB0aGUgdmFy
aWFibGUuIjsKICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgICAgY2FzZSBjYWxjdWxhdGlvbi1leHByZXNzaW9uIHsKCiAg
ICAgICAgICAgICAgICAgICAgICAgbGVhZiBjYWxjdWxhdGlvbi1vcGVyYXRvcnsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdHlwZSBlbnVtZXJhdGlvbiB7CgoKClpob3UsIGV0IGFs
LiAgICAgICAgICAgICAgRXhwaXJlcyBKdW5lIDExLCAyMDE2ICAgICAgICAgICAgICAgIFtQ
YWdlIDI1XQoMCkludGVybmV0LURyYWZ0ICAgICAgRGF0YSBNb2RlbCBmb3IgRGVjbGFyYXRp
dmUgUG9saWN5ICAgICAgRGVjZW1iZXIgMjAxNQoKCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBlbnVtIGFkZCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRlc2NyaXB0aW9uICInYWRkJyBvcGVyYXRvciI7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIG1pbnVzIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIidzdWJ0
cmFjdCcgb3BlcmF0b3IiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBtdWx0aXBseSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICInbXVsdGlwbHknIG9wZXJh
dG9yIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGVudW0gZGl2aWRlIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGVzY3JpcHRpb24gIidkaXZpZGUnIG9wZXJhdG9yIjsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVudW0gYW55IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3Jp
cHRpb24gIidhbnknIG9wZXJhdG9yIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gYWxsIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIidhbGwnIG9wZXJhdG9y
IjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGVudW0gbWF4IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZGVzY3JpcHRpb24gIidtYXgnIG9wZXJhdG9yIjsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gbWlu
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIidt
aW4nIG9wZXJhdG9yIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gYXZlcmFnZSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICInYXZnJyBvcGVyYXRvciI7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBlbnVtIHN1bSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRlc2NyaXB0aW9uICInc3VtJyBvcGVyYXRvciI7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGNvdW50IHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIidjb3Vu
dCcgb3BlcmF0b3IiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBhbmQgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiJ2FuZCcgb3BlcmF0b3IiOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZW51bSBvciB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2Ny
aXB0aW9uICInb3InIG9wZXJhdG9yIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gbm90IHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIidub3QnIG9wZXJhdG9y
IjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGVudW0gaW50ZXJzZWN0aW9uIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIidpbnRlcnNldGlvbicKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yIjsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVudW0gdW5pb24gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
ZXNjcmlwdGlvbiAiJ3VuaW9uJyBvcGVyYXRvciI7CgoKClpob3UsIGV0IGFsLiAgICAgICAg
ICAgICAgRXhwaXJlcyBKdW5lIDExLCAyMDE2ICAgICAgICAgICAgICAgIFtQYWdlIDI2XQoM
CkludGVybmV0LURyYWZ0ICAgICAgRGF0YSBNb2RlbCBmb3IgRGVjbGFyYXRpdmUgUG9saWN5
ICAgICAgRGVjZW1iZXIgMjAxNQoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGNvbXBsZW1lbnQgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiJ2NvbXBsZW1l
bnQnIG9wZXJhdG9yIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNj
cmlwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBjYWxjdWxhdGlv
biB0byBiZSBwZXJmb3JtZWQiOwogICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICAgICAgICAgbGVhZiBjYWxjdWxhdGlvbi1sZWFmLXZhbHVlIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdHlwZSBzdHJpbmc7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGNv
bnRlbnQgb2YgdGhlIGxlYWYgdmFsdWUgZm9yIGEKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjYWxjdWxhdGlvbiBleHByZXNzaW9uIGlzIGFuIGluc3RhbmNlCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb2YgcmVsYXRpb25hbC1leHByZXNzaW9uLXZhbHVl
LiI7CiAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICBs
ZWFmIGNhbGN1bGF0aW9uLXJpZ2h0LXZhbHVlIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdHlwZSBzdHJpbmc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9u
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGNvbnRlbnQgb2YgdGhlIHJp
Z2h0IHZhbHVlIGZvciBhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsY3Vs
YXRpb24gZXhwcmVzc2lvbiBpcyBhbiBpbnN0YW5jZQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG9mIHJlbGF0aW9uYWwtZXhwcmVzc2lvbi12YWx1ZS4iOwogICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQog
ICAgICAgICAgIH0KCiAgICAgICAgICAgZ3JvdXBpbmcgcmVzdWx0IHsKICAgICAgICAgICAg
ICAgZGVzY3JpcHRpb24gIlRoZSByZXN1bHQuIjsKICAgICAgICAgICAgICAgY29udGFpbmVy
IGxlZnQtdmFsdWUgewogICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSAnbGVm
dCcgdmFsdWUgZm9yIHRoZSByZWxhdGlvbmFsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgb3BlcmF0aW9uLiI7CiAgICAgICAgICAgICAgICAgICB1c2VzIHJlbGF0aW9uYWwt
ZXhwcmVzc2lvbi12YWx1ZTsKICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgY29u
dGFpbmVyIHJlbGF0aW9uYWwtb3BlcmF0b3IgewogICAgICAgICAgICAgICAgICAgZGVzY3Jp
cHRpb24KICAgICAgICAgICAgICAgICAgICAgICJUaGUgcmVsYXRpb25hbCBvcGVyYXRpb24g
dG8gYmUgcGVyZm9ybWVkIjsKICAgICAgICAgICAgICAgICAgIGxlYWYgcmVsYXRpb25hbC1v
cGVyYXRvciB7CiAgICAgICAgICAgICAgICAgICAgICAgdHlwZSBlbnVtZXJhdGlvbiB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gZXEgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRlc2NyaXB0aW9uICInZXF1YWwnIG9wZXJhdG9yLiI7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBu
ZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIidub3Qg
ZXF1YWwnIG9wZXJhdG9yLiI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZW51bSBndCB7CgoKClpob3UsIGV0IGFsLiAgICAgICAg
ICAgICAgRXhwaXJlcyBKdW5lIDExLCAyMDE2ICAgICAgICAgICAgICAgIFtQYWdlIDI3XQoM
CkludGVybmV0LURyYWZ0ICAgICAgRGF0YSBNb2RlbCBmb3IgRGVjbGFyYXRpdmUgUG9saWN5
ICAgICAgRGVjZW1iZXIgMjAxNQoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGVzY3JpcHRpb24gIidncmVhdGVyIHRoYW4nIG9wZXJhdG9yLiI7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBnZSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gImdyZWF0ZXIgdGhh
biBvciBlcXVhbCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3BlcmF0b3IuIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICAgICAgICBlbnVtIGx0IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkZXNjcmlwdGlvbiAiJ2xlc3MgdGhhbicgb3BlcmF0b3IuIjsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGxlIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiJ2xlc3MgdGhh
biBvciBlcXVhbCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG9wZXJhdG9yLiI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZW51bSBibCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZGVzY3JpcHRpb24gIidiZWxvbmdzIHRvJyBvcgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnaXMgYW4gZWxlbWVudCBvZicKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yLiI7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51
bSBuYiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIidk
b2VzIG5vdCBiZWxvbmcgdG8nIG9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdpcyBub3QgYW4gZWxlbWVudCBvZicKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IuIjsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgICBkZXNjcmlwdGlvbiAidGhlIHJlbGF0aW9uYWwgb3BlcmF0aW9uIHRvIGJlCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcmZvcm1lZC4iOwogICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIGNvbnRhaW5l
ciByaWdodC12YWx1ZSB7CiAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhlICdy
aWdodCcgdmFsdWUgZm9yIHRoZSByZWxhdGlvbmFsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3BlcmF0aW9uLiI7CiAgICAgICAgICAgICAgICAgICB1c2VzIHJlbGF0aW9u
YWwtZXhwcmVzc2lvbi12YWx1ZTsKICAgICAgICAgICAgICAgfQogICAgICAgICAgIH0KCiAg
ICAgICAgICAgY29udGFpbmVyIGRlY2xhcmF0aXZlLXBvbGljeSB7CiAgICAgICAgICAgICAg
IGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgICAgICAiQWFyYXRpdmUgcG9saWN5IGRlZmlu
aXRpb24iOwoKICAgICAgICAgICAgICAgbGVhZiBwb2xpY3ktaWQgewogICAgICAgICAgICAg
ICAgICAgdHlwZSBwb2xpY3ktaWQ7CiAgICAgICAgICAgICAgICAgICBtYW5kYXRvcnkgdHJ1
ZTsKICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgICAgICAg
ICAgIkEgdW5pcXVlIElEIGZvciBhIHBvbGljeS4iOwogICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICBsZWFmIHBvbGljeS1uYW1lIHsKICAgICAgICAgICAgICAgICAgIHR5cGUg
cG9saWN5LW5hbWU7CgoKClpob3UsIGV0IGFsLiAgICAgICAgICAgICAgRXhwaXJlcyBKdW5l
IDExLCAyMDE2ICAgICAgICAgICAgICAgIFtQYWdlIDI4XQoMCkludGVybmV0LURyYWZ0ICAg
ICAgRGF0YSBNb2RlbCBmb3IgRGVjbGFyYXRpdmUgUG9saWN5ICAgICAgRGVjZW1iZXIgMjAx
NQoKCiAgICAgICAgICAgICAgICAgICBtYW5kYXRvcnkgdHJ1ZTsKICAgICAgICAgICAgICAg
ICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgIkEgdXNlci12aXNpYmxl
IGFuZCB1bmlxdWUgbmFtZSBmb3IgYSBwb2xpY3kuIjsKICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgbGVhZiBwcmlvcml0eSB7CiAgICAgICAgICAgICAgICAgICB0eXBlIHVp
bnQ4OwogICAgICAgICAgICAgICAgICAgZGVmYXVsdCAwOwogICAgICAgICAgICAgICAgICAg
ZGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICAgICAgICAiRGVmaW5lcyB0aGUgcHJpb3Jp
dHkgb2YgYSBvcGVyYXRpb24gaW5zdGFuY2UuIjsKICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgY29udGFpbmVyIHBvbGljeS12YWxpZGl0eS1wZXJpb2QgewogICAgICAgICAg
ICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICAgICAgICAiVGhlIHZhbGlk
IHRpbWUgb2YgdGhlIHBvbGljeS4gRS5nLiwgdGhlIHBvbGljeQogICAgICAgICAgICAgICAg
ICAgICAgICB3aWxsIGJlIHZhbGlkIDlhbS05YW0gZGFpbHkiOwogICAgICAgICAgICAgICAg
ICAgbGVhZiBzdGFydCB7CiAgICAgICAgICAgICAgICAgICAgICAgdHlwZSB5YW5nOmRhdGUt
YW5kLXRpbWU7CiAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gImRhdGUgYW5k
IHRpbWUgdG8gc3RhcnQgdGhlIHBvbGljeSI7CiAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICBsZWFmIGVuZCB7CiAgICAgICAgICAgICAgICAgICAgICAgdHlwZSB5
YW5nOmRhdGUtYW5kLXRpbWU7CiAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24g
ImRhdGUgYW5kIHRpbWUgdG8gZW5kIHRoZSBwb2xpY3kiOwogICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgbGVhZiBkdXJhdGlvbiB7CiAgICAgICAgICAgICAgICAg
ICAgICAgdHlwZSB1aW50MzI7CiAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24g
ImR1cmF0aW9uIG9mIHRoZSBwb2xpY3kiOwogICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgbGVhZiBwZXJpb2RpY2l0eSB7CiAgICAgICAgICAgICAgICAgICAgICAg
dHlwZSBlbnVtZXJhdGlvbiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gZGFp
bHkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgMDsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIlRoZSBwb2xpY3kgaXMgcmVwZWF0ZWQgZGFpbHkiOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0g
bW9udGhseSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSAxOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiVGhlIHBvbGljeSBpcyByZXBlYXRlZCBtb250aGx5IjsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiSG93IHRoZSBwb2xpY3kgaXMg
cmVwZWF0ZWQiOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICBsZWFmIHBvbGljeS1ydWxlLWRlcGxveS1zdGF0dXMgewogICAgICAgICAg
ICAgICAgICAgdHlwZSBlbnVtZXJhdGlvbiB7CiAgICAgICAgICAgICAgICAgICAgICAgZW51
bSB1bmRlZmluZWQgewoKCgpaaG91LCBldCBhbC4gICAgICAgICAgICAgIEV4cGlyZXMgSnVu
ZSAxMSwgMjAxNiAgICAgICAgICAgICAgICBbUGFnZSAyOV0KDApJbnRlcm5ldC1EcmFmdCAg
ICAgIERhdGEgTW9kZWwgZm9yIERlY2xhcmF0aXZlIFBvbGljeSAgICAgIERlY2VtYmVyIDIw
MTUKCgogICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAidW5kZWZpbmVk
IjsKICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgZW51
bSBkZXBsb3llZF9hbmRfZW5hYmxlZCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRl
c2NyaXB0aW9uICJkZXBsb3llZCBhbmQgZW5hYmxlZCI7CiAgICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgICAgIGVudW0gZGVwbG95ZWRfYW5kX3Rlc3Rpbmcg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiZGVwbG95ZWQgYW5k
IGluIHRlc3QiOwogICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICBlbnVtIGRlcGxveWVkX2FuZF9kaXNhYmxlZCB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRlc2NyaXB0aW9uICJkZXBsb3llZCBidXQgbm90IGVuYWJsZWQiOwogICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICBlbnVtIHJlYWR5X3Rv
X2JlX2RlcGxveWVkIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24g
InJlYWR5IHRvIGJlIGRlcGxveWVkIjsKICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgICAgZW51bSBub3RfZGVwbG95ZWQgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICBkZXNjcmlwdGlvbiAibm90IGRlcGxveWVkIjsKICAgICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBkZXNj
cmlwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICJUaGUgZGVwbG95IHN0YXR1cyBvZiB0
aGUgcG9saWN5LiI7CiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIGxlYWYgcG9s
aWN5LXJ1bGUtZXhlYy1zdGF0dXMgewogICAgICAgICAgICAgICAgICAgdHlwZSBlbnVtZXJh
dGlvbiB7CiAgICAgICAgICAgICAgICAgICAgICAgZW51bSB1bmRlZmluZWQgewogICAgICAg
ICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJ1bmRlZmluZWQiOwogICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGV4ZWN1dGVkX2Fu
ZF9zdWNjZWVkZWR7CiAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhlY3V0ZWQgYW5kIFNVQ0VFREVEIChvcGVy
YXRpb25hbCBtb2RlKSI7CiAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICAgIGVudW0gZXhlY3V0ZWRfYW5kX2ZhaWxlZHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleGVj
dXRlZCBhbmQgRkFJTEVEIChvcGVyYXRpb25hbCBtb2RlKSI7CiAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgIGVudW0gZXhlY3V0aW5nIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJjdXJyZW50bHkgZXhlY3V0aW5nIChvcGVyYXRpb25hbCBtb2RlKSI7CiAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgIGVudW0gdGVzdGVk
X2FuZF9zdWNjZWVkZWQgewogICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9u
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4ZWN1dGVkIGFuZCBTVUNFRURFRCAo
dGVzdCBtb2RlKSI7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ICAgICAgZW51bSB0ZXN0ZWRfYW5kX2ZhaWxlZCB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhlY3V0ZWQg
YW5kIEZBSUxFRCAodGVzdCBtb2RlKSI7CiAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICAgIGVudW0gdGVzdGluZyB7CgoKClpob3UsIGV0IGFsLiAgICAg
ICAgICAgICAgRXhwaXJlcyBKdW5lIDExLCAyMDE2ICAgICAgICAgICAgICAgIFtQYWdlIDMw
XQoMCkludGVybmV0LURyYWZ0ICAgICAgRGF0YSBNb2RlbCBmb3IgRGVjbGFyYXRpdmUgUG9s
aWN5ICAgICAgRGVjZW1iZXIgMjAxNQoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgZGVz
Y3JpcHRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY3VycmVudGx5IGV4ZWN1
dGluZyAodGVzdCBtb2RlKSI7CiAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAg
ICAgICAgICAgICAiVGhlIGV4ZWN1dGluZyBzdGF0dXMgb2YgdGhlIHBvbGljeS4iOwogICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICBsZWFmIHRhcmdldC1vYmplY3QgewogICAg
ICAgICAgICAgICAgICAgdHlwZSBvYmplY3QtaWQ7CiAgICAgICAgICAgICAgICAgICBtYW5k
YXRvcnkgdHJ1ZTsKICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAg
ICAgICAgICAgICAgIlRoZSB0YXJnZXQgb2JqZWN0IHdoaWNoIHRoZSBvcGVyYXRpb24gaW5z
dGFuYwogICAgICAgICAgICAgICAgICAgICAgICB3aWxsIGFwcGx5IHRvLiI7CiAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgIGNvbnRhaW5lciBkZWNsYXJhdGl2ZS1wb2xpY3kt
cnVsZSB7CiAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiZGVjbGFyYXRpdmUgcG9s
aWN5IHJ1bGVzLiI7CiAgICAgICAgICAgICAgICAgICBjb250YWluZXIgb3BlcmF0aW9uIHsK
ICAgICAgICAgICAgICAgICAgICAgICB1c2VzIG9wZXJhdGlvbjsKICAgICAgICAgICAgICAg
ICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAiQW4gb3Bl
cmF0aW9uIGJhc2VkIGRlY2xhcmF0aXZlIHBvbGljeSBydWxlIjsKICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lciByZXN1bHQgewogICAgICAgICAg
ICAgICAgICAgICAgIHVzZXMgcmVzdWx0OwogICAgICAgICAgICAgICAgICAgICAgIGRlc2Ny
aXB0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJBIHJlc3VsdCBiYXNlZCBkZWNs
YXJhdGl2ZSBwb2xpY3kgcnVsZSI7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICB9CiAgICAgICB9CiAgICAgICB9CiAgIDxDT0RFIEVORFM+Cgo1
LiAgRGVjbGFyYXRpdmUgUG9saWN5IERhdGEgTW9kZWwgRXhhbXBsZXMKCjUuMS4gIExpbmsg
dXRpbGl6YXRpb24gb3B0aW1pemF0aW9uCgogICBGb3IgdGhlIGxpbmsgdXRpbGl6YXRpb24g
b3B0aW1pemF0aW9uLCB0aGVyZSB3aWxsIGJlIG1hbnkga2luZHMgb2YKICAgcG9saWN5IHJl
cXVpcmVtZW50cyBhbmQgZXhwcmVzc2lvbnMuICBGb3IgZXhhbXBsZToKCiAgIFBvbGljeSAx
OiBJbiBvbmUgc2V0IG9mIGxpbmtzLCBrZWVwIGFsbCBsaW5rIHV0aWxpemF0aW9uIGJlbG93
IDcwJS4KCiAgIFBvbGljeSAyOiBJbiBvbmUgc2V0IG9mIGxpbmtzLCBtaW5pbWl6ZSB0aGUg
YXZlcmFnZSBsaW5rIHV0aWxpemF0aW9uLgoKICAgQm90aCBvZiB0aGUgcG9saWNpZXMgYXJl
IHRhcmdldCB0byBhIHNldCBvZiBsaW5rcywgd2hpY2ggY291bGQKICAgaW5jbHVkZSB0aGUg
Zm9sbG93aW5nIGF0dHJpYnV0ZXM6CgoKCgpaaG91LCBldCBhbC4gICAgICAgICAgICAgIEV4
cGlyZXMgSnVuZSAxMSwgMjAxNiAgICAgICAgICAgICAgICBbUGFnZSAzMV0KDApJbnRlcm5l
dC1EcmFmdCAgICAgIERhdGEgTW9kZWwgZm9yIERlY2xhcmF0aXZlIFBvbGljeSAgICAgIERl
Y2VtYmVyIDIwMTUKCgogICAgICB1dGk6IGxpbmsgYmFuZHdpZHRoIHV0aWxpdHkuCgogICAg
ICBiYW5kd2lkdGg6IGJhbmR3aWR0aCBvZiB0aGUgbGluay4KCiAgIEZvciB0aGUgcG9saWN5
IDEsIHdlIGNhbiB1c2UgdGhlIHJlc3VsdCB0byBleHByZXNzIHRoZSBkZWNsYXJhdGl2ZQog
ICBydWxlIHN0YXRlbWVudC4KCiAgIHJlc3VsdDoKCiAgICAgIGxlZnQ6IHV0aQoKICAgICAg
b3BlcmF0b3I6IGx0CgogICAgICByaWdodDogNzAKCiAgIHVsdDoKCiAgIEZvciBwb2xpY3kg
Miwgd2UgY2FuIGluIGFsdGVybmF0aXZlIHVzZSB0aGUgb3BlcmF0aW9uIHRvIGV4cHJlc3Mg
dGhlCiAgIGRlY2xhcmF0aXZlIHJ1bGUgc3RhdGVtZW50LgoKICAgb3BlcmF0aW9uOgoKICAg
ICAgYWN0aW9uOiBtaW5pbWl6ZSB0aGUgYXZlcmFnZSBsaW5rIHV0aWxpemF0aW9uLgoKCgo1
LjIuICBQb2xpY3kgQmFzZWQgQmFuZHdpZHRoIG9uIERlbWFuZAoKICAgVGhlcmUgYXJlIGJy
YW5jaCBhbmQgaGVhZHF1YXJ0ZXIgc2l0ZXMgY29ubmVjdGVkIHZpYSBhIFdBTgogICBjb25u
ZWN0aW9uLiAgVGhlIGJhbmR3aWR0aCBvZiB0aGUgY29ubmVjdGlvbiBjYW4gYmUgYWRqdXN0
ZWQgdG8gMTAwME0KICAgZHVyaW5nIGRheXRpbWUgYW5kIDEwME0gYXQgbmlnaHQuCgogICBU
aGlzIGF1dG9tYXRpYyBiYW5kd2lkdGggYWRqdXN0bWVudCByZXF1aXJlbWVudCBjYW4gYmUg
ZXhwcmVzc2VkIGJ5CiAgIHBvbGljaWVzIHRhcmdldCB0byB0aGUgY29ubmVjdGlvbiBvYmpl
Y3QuICBBbmQgd2UgY2FuIHVzZSB0aGUKICAgb3BlcmF0aW9uIHRvIGV4cHJlc3MgdGhlIGRl
Y2xhcmF0aXZlIHJ1bGUgc3RhdGVtZW50LgoKICAgb25lIG9wZXJhdGlvbiBpczoKCiAgICAg
IGNvbmRpdGlvbjogdGltZSA9IGRheQoKICAgICAgYWN0aW9uOiBzZXQgdGhlIGJhbmR3aWR0
aCB0byAxMDAwTQoKICAgdGhlIG90aGVyIG9wZXJhdGlvbiBpczoKCiAgICAgIGNvbmRpdGlv
bjogdGltZSA9IG5pZ2h0CgogICAgICBhY3Rpb246IHNldCB0aGUgYmFuZHdpZHRoIHRvIDEw
ME0KCgoKClpob3UsIGV0IGFsLiAgICAgICAgICAgICAgRXhwaXJlcyBKdW5lIDExLCAyMDE2
ICAgICAgICAgICAgICAgIFtQYWdlIDMyXQoMCkludGVybmV0LURyYWZ0ICAgICAgRGF0YSBN
b2RlbCBmb3IgRGVjbGFyYXRpdmUgUG9saWN5ICAgICAgRGVjZW1iZXIgMjAxNQoKCjUuMy4g
IFNlcnZpY2UgZnVuY3Rpb24gY2hhaW5pbmcKCiAgIFdlIGNhbiBhbHNvIHVzZSBkZWNsYXJh
dGl2ZSBwb2xpY2llcyB0byBkZXNjcmliZSB0aGUgU0ZDIHJlcXVpcmVtZW50CiAgIHRvIHNp
bXBsaWZ5IHRoZSBleHByZXNzaW9uLgoKICAgRm9yIGV4YW1wbGUsIHRoZSBnb2xkIHNlcnZp
Y2UgdXNlciB0cmFmZmljIGdvIHRocm91Z2ggdGhlIGZpcmV3YWxsCiAgIGFuZCBsb2FkIGJh
bGFuY2VyIHNlcnZpY2VzLiAgVGhlIHBvbGljeSB1c2VyIGRvIG5vdCBuZWVkIHRvIGNhcmUK
ICAgYWJvdXQgdGhlIGV4YWN0IGZ1bmN0aW9uIGluc3RhbmNlIHRvIHVzZSwgYnV0IGZvY3Vz
IG9uIHRoZSBzZXJ2aWNlCiAgIGludGVudCBleHByZXNzaW9uLgoKICAgVGhpcyBwb2xpY3kg
aXMgdGFyZ2V0ZWQgdG8gYSBmbG93IG9iamVjdCwgd2hpY2ggY291bGQgaW5jbHVkZSB0aGUK
ICAgZm9sbG93aW5nIGF0dHJpYnV0ZXM6CgogICAgICBzcmNpcCxkZXN0aXA6IHRoZSBzb3Vy
Y2UgYW5kIGRlc3RpbmF0aW9uIElQIGFkZHJlc3Mgb2YgdGhlIGZsb3cuCgogICAgICB1c2Vy
bGV2ZWw6IHRoZSB1c2VyJ3Mgc2VydmljZSBsZXZlbCBvZiB0aGUgZmxvdywgaXQgY2FuIGJl
IGdvbGQgb3IKICAgICAgbm9ybWFsLgoKICAgVGhlIG9wZXJhdGlvbiBydWxlIGlzOgoKICAg
ICAgYWN0aW9uOiBnbyB0aHJvdWdoLCBhbmQgd2l0aCBwYXJhbWV0ZXJzOiBmaXJld2FsbCwg
bG9hZCBiYWxhbmNlci4KCjYuICBTZWN1cml0eSBDb25zaWRlcmF0aW9ucwoKICAgVGhlIFlB
TkcgbW9kdWxlIGRlZmluZWQgaW4gdGhpcyBtZW1vIGlzIGRlc2lnbmVkIHRvIGJlIGFjY2Vz
c2VkIHZpYQogICB0aGUgTkVUQ09ORiBwcm90b2NvbCBbUkZDNjI0MV0uICBUaGUgbG93ZXN0
IE5FVENPTkYgbGF5ZXIgaXMgdGhlCiAgIHNlY3VyZSB0cmFuc3BvcnQgbGF5ZXIgYW5kIHRo
ZSBtYW5kYXRvcnktdG8taW1wbGVtZW50IHNlY3VyZQogICB0cmFuc3BvcnQgaXMgU1NIIFtS
RkM2MjQyXS4gIFRoZSBORVRDT05GIGFjY2VzcyBjb250cm9sIG1vZGVsCiAgIFtSRkM2NTM2
XSBwcm92aWRlcyB0aGUgbWVhbnMgdG8gcmVzdHJpY3QgYWNjZXNzIGZvciBwYXJ0aWN1bGFy
CiAgIE5FVENPTkYgdXNlcnMgdG8gYSBwcmUtY29uZmlndXJlZCBzdWJzZXQgb2YgYWxsIGF2
YWlsYWJsZSBORVRDT05GCiAgIHByb3RvY29sIG9wZXJhdGlvbnMgYW5kIGNvbnRlbnQuCgog
ICBUaGVyZSBhcmUgYSBudW1iZXIgb2YgZGF0YSBub2RlcyBkZWZpbmVkIGluIHRoZSBZQU5H
IG1vZHVsZSB3aGljaCBhcmUKICAgd3JpdGFibGUvY3JlYXRhYmxlL2RlbGV0YWJsZSAoaS5l
LiwgY29uZmlnIHRydWUsIHdoaWNoIGlzIHRoZQogICBkZWZhdWx0KS4gIFRoZXNlIGRhdGEg
bm9kZXMgbWF5IGJlIGNvbnNpZGVyZWQgc2Vuc2l0aXZlIG9yIHZ1bG5lcmFibGUKICAgaW4g
c29tZSBuZXR3b3JrIGVudmlyb25tZW50cy4gIFdyaXRlIG9wZXJhdGlvbnMgKGUuZy4sIDxl
ZGl0LWNvbmZpZz4pCiAgIHRvIHRoZXNlIGRhdGEgbm9kZXMgd2l0aG91dCBwcm9wZXIgcHJv
dGVjdGlvbiBjYW4gaGF2ZSBhIG5lZ2F0aXZlCiAgIGVmZmVjdCBvbiBuZXR3b3JrIG9wZXJh
dGlvbnMuCgo3LiAgSUFOQSBDb25zaWRlcmF0aW9ucwoKICAgVGhpcyBtZW1vIGluY2x1ZGVz
IG5vIHJlcXVlc3QgdG8gSUFOQS4KCjguICBBY2tub3dsZWRnZW1lbnRzCgogICBUaGUgYXV0
aG9ycyB3b3VsZCBsaWtlIHRvIHRoYW5rcyB0aGUgdmFsdWFibGUgY29tbWVudHMgbWFkZSBi
eTouCgogICBUaGlzIGRvY3VtZW50IHdhcyBwcm9kdWNlZCB1c2luZyB0aGUgeG1sMnJmYyB0
b29sIFtSRkMyNjI5XS4KCgoKWmhvdSwgZXQgYWwuICAgICAgICAgICAgICBFeHBpcmVzIEp1
bmUgMTEsIDIwMTYgICAgICAgICAgICAgICAgW1BhZ2UgMzNdCgwKSW50ZXJuZXQtRHJhZnQg
ICAgICBEYXRhIE1vZGVsIGZvciBEZWNsYXJhdGl2ZSBQb2xpY3kgICAgICBEZWNlbWJlciAy
MDE1CgoKOS4gIEluZm9ybWF0aXZlIFJlZmVyZW5jZXMKCiAgIFtJLUQuY2hlbi1zdXBhLWVj
YS1kYXRhLW1vZGVsXQogICAgICAgICAgICAgIENoZW4sIE0uLCBDb250cmVyYXMsIEwuLCBI
YXlhc2hpLCBNLiwgYW5kIFQuIFRzb3UsICJFQ0EKICAgICAgICAgICAgICBQb2xpY3kgWUFO
RyBEYXRhIE1vZGVsIiwgZHJhZnQtY2hlbi1zdXBhLWVjYS1kYXRhLW1vZGVsLTA1CiAgICAg
ICAgICAgICAgKHdvcmsgaW4gcHJvZ3Jlc3MpLCBPY3RvYmVyIDIwMTUuCgogICBbSS1ELmts
eXVzLXN1cGEtcHJvcG9zaXRpb25dCiAgICAgICAgICAgICAgS2x5dXMsIE0uIGFuZCBKLiBT
dHJhc3NuZXIsICJTVVBBIFZhbHVlIFByb3Bvc2l0aW9uIiwKICAgICAgICAgICAgICBkcmFm
dC1rbHl1cy1zdXBhLXByb3Bvc2l0aW9uLTAyICh3b3JrIGluIHByb2dyZXNzKSwgSnVseQog
ICAgICAgICAgICAgIDIwMTUuCgogICBbSS1ELnhpYS1zZG5yZy1uZW1vLWxhbmd1YWdlXQog
ICAgICAgICAgICAgIFhpYSwgWS4sIEppYW5nLCBTLiwgWmhvdSwgVC4sIGFuZCBTLiBIYXJl
cywgIk5FTU8gKE5FdHdvcmsKICAgICAgICAgICAgICBNT2RlbGluZykgTGFuZ3VhZ2UiLCBk
cmFmdC14aWEtc2RucmctbmVtby1sYW5ndWFnZS0wMwogICAgICAgICAgICAgICh3b3JrIGlu
IHByb2dyZXNzKSwgT2N0b2JlciAyMDE1LgoKICAgW1JGQzIxMTldICBCcmFkbmVyLCBTLiwg
IktleSB3b3JkcyBmb3IgdXNlIGluIFJGQ3MgdG8gSW5kaWNhdGUKICAgICAgICAgICAgICBS
ZXF1aXJlbWVudCBMZXZlbHMiLCBCQ1AgMTQsIFJGQyAyMTE5LAogICAgICAgICAgICAgIERP
SSAxMC4xNzQ4Ny9SRkMyMTE5LCBNYXJjaCAxOTk3LAogICAgICAgICAgICAgIDxodHRwOi8v
d3d3LnJmYy1lZGl0b3Iub3JnL2luZm8vcmZjMjExOT4uCgogICBbUkZDMjYyOV0gIFJvc2Us
IE0uLCAiV3JpdGluZyBJLURzIGFuZCBSRkNzIHVzaW5nIFhNTCIsIFJGQyAyNjI5LAogICAg
ICAgICAgICAgIERPSSAxMC4xNzQ4Ny9SRkMyNjI5LCBKdW5lIDE5OTksCiAgICAgICAgICAg
ICAgPGh0dHA6Ly93d3cucmZjLWVkaXRvci5vcmcvaW5mby9yZmMyNjI5Pi4KCiAgIFtSRkM2
MDIwXSAgQmpvcmtsdW5kLCBNLiwgRWQuLCAiWUFORyAtIEEgRGF0YSBNb2RlbGluZyBMYW5n
dWFnZSBmb3IKICAgICAgICAgICAgICB0aGUgTmV0d29yayBDb25maWd1cmF0aW9uIFByb3Rv
Y29sIChORVRDT05GKSIsIFJGQyA2MDIwLAogICAgICAgICAgICAgIERPSSAxMC4xNzQ4Ny9S
RkM2MDIwLCBPY3RvYmVyIDIwMTAsCiAgICAgICAgICAgICAgPGh0dHA6Ly93d3cucmZjLWVk
aXRvci5vcmcvaW5mby9yZmM2MDIwPi4KCiAgIFtSRkM2MDIxXSAgU2Nob2Vud2FlbGRlciwg
Si4sIEVkLiwgIkNvbW1vbiBZQU5HIERhdGEgVHlwZXMiLAogICAgICAgICAgICAgIFJGQyA2
MDIxLCBET0kgMTAuMTc0ODcvUkZDNjAyMSwgT2N0b2JlciAyMDEwLAogICAgICAgICAgICAg
IDxodHRwOi8vd3d3LnJmYy1lZGl0b3Iub3JnL2luZm8vcmZjNjAyMT4uCgogICBbUkZDNjI0
MV0gIEVubnMsIFIuLCBFZC4sIEJqb3JrbHVuZCwgTS4sIEVkLiwgU2Nob2Vud2FlbGRlciwg
Si4sIEVkLiwKICAgICAgICAgICAgICBhbmQgQS4gQmllcm1hbiwgRWQuLCAiTmV0d29yayBD
b25maWd1cmF0aW9uIFByb3RvY29sCiAgICAgICAgICAgICAgKE5FVENPTkYpIiwgUkZDIDYy
NDEsIERPSSAxMC4xNzQ4Ny9SRkM2MjQxLCBKdW5lIDIwMTEsCiAgICAgICAgICAgICAgPGh0
dHA6Ly93d3cucmZjLWVkaXRvci5vcmcvaW5mby9yZmM2MjQxPi4KCiAgIFtSRkM2MjQyXSAg
V2Fzc2VybWFuLCBNLiwgIlVzaW5nIHRoZSBORVRDT05GIFByb3RvY29sIG92ZXIgU2VjdXJl
CiAgICAgICAgICAgICAgU2hlbGwgKFNTSCkiLCBSRkMgNjI0MiwgRE9JIDEwLjE3NDg3L1JG
QzYyNDIsIEp1bmUgMjAxMSwKICAgICAgICAgICAgICA8aHR0cDovL3d3dy5yZmMtZWRpdG9y
Lm9yZy9pbmZvL3JmYzYyNDI+LgoKICAgW1JGQzY1MzZdICBCaWVybWFuLCBBLiBhbmQgTS4g
QmpvcmtsdW5kLCAiTmV0d29yayBDb25maWd1cmF0aW9uCiAgICAgICAgICAgICAgUHJvdG9j
b2wgKE5FVENPTkYpIEFjY2VzcyBDb250cm9sIE1vZGVsIiwgUkZDIDY1MzYsCiAgICAgICAg
ICAgICAgRE9JIDEwLjE3NDg3L1JGQzY1MzYsIE1hcmNoIDIwMTIsCiAgICAgICAgICAgICAg
PGh0dHA6Ly93d3cucmZjLWVkaXRvci5vcmcvaW5mby9yZmM2NTM2Pi4KCgoKWmhvdSwgZXQg
YWwuICAgICAgICAgICAgICBFeHBpcmVzIEp1bmUgMTEsIDIwMTYgICAgICAgICAgICAgICAg
W1BhZ2UgMzRdCgwKSW50ZXJuZXQtRHJhZnQgICAgICBEYXRhIE1vZGVsIGZvciBEZWNsYXJh
dGl2ZSBQb2xpY3kgICAgICBEZWNlbWJlciAyMDE1CgoKQXV0aG9ycycgQWRkcmVzc2VzCgog
ICBUaWFucmFuIFpob3UKICAgSHVhd2VpIFRlY2hub2xvZ2llcyBDby4sIEx0ZAogICBRMTQs
IEh1YXdlaSBDYW1wdXMsIE5vLjE1NiBCZWlxaW5nIFJvYWQKICAgSGFpLURpYW4gRGlzdHJp
Y3QsIEJlaWppbmcsIDEwMDA5NQogICBQLlIuIENoaW5hCgogICBFbWFpbDogemhvdXRpYW5y
YW5AaHVhd2VpLmNvbQoKCiAgIFlpbmJlbiBYaWEKICAgSHVhd2VpIFRlY2hub2xvZ2llcyBD
by4sIEx0ZAogICBRMTQsIEh1YXdlaSBDYW1wdXMsIE5vLjE1NiBCZWlxaW5nIFJvYWQKICAg
SGFpLURpYW4gRGlzdHJpY3QsIEJlaWppbmcsIDEwMDA5NQogICBQLlIuIENoaW5hCgogICBF
bWFpbDogeGlheWluYmVuQGh1YXdlaS5jb20KCgogICBCZXJ0IFdpam5lbiAoZWRpdG9yKQog
ICBDb25zdWx0YW50CiAgIFNjaGFnZW4gMzMKICAgMzQ2MSBHTCBMaW5zY2hvdGVuCiAgIFRo
ZSBOZXRoZXJsYW5kcwoKICAgRW1haWw6IGJlcnRpZXRmQGJ3aWpuZW4ubmV0CgoKCgoKCgoK
CgoKCgoKCgoKCgoKCgoKClpob3UsIGV0IGFsLiAgICAgICAgICAgICAgRXhwaXJlcyBKdW5l
IDExLCAyMDE2ICAgICAgICAgICAgICAgIFtQYWdlIDM1XQo=
--------------000303070300090809050908
Content-Type: text/xml;
 name="draft-bw-supa-declarative-policy-data-model-00.xml"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="draft-bw-supa-declarative-policy-data-model-00.xml"

<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
     There has to be one entity for each item to be referenced. 
     An alternate method (rfc include) is described in the references. -->
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2629.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
     please see http://xml.resource.org/authoring/README.html. -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation --> <!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="3"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space 
     (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="std" docName="draft-bw-supa-declarative-policy-data-model-00"
     ipr="trust200902">
  <front>
    <title abbrev="Data Model for Declarative Policy">
         A YANG Data Model for Declarative Policy</title>

    <author fullname="Tianran Zhou" initials="T." surname="Zhou">
      <organization>Huawei Technologies Co., Ltd</organization>

      <address>
        <postal>
          <street>Q14, Huawei Campus, No.156 Beiqing Road</street>

          <city>Hai-Dian District, Beijing, 100095</city>

          <country>P.R. China</country>
        </postal>

        <email>zhoutianran@huawei.com</email>
      </address>
    </author>

    <author fullname="Yinben Xia" initials="Y." surname="Xia">
      <organization>Huawei Technologies Co., Ltd</organization>

      <address>
        <postal>
          <street>Q14, Huawei Campus, No.156 Beiqing Road</street>

          <city>Hai-Dian District, Beijing, 100095</city>

          <country>P.R. China</country>
        </postal>

        <email>xiayinben@huawei.com</email>
      </address>
    </author>

    <author fullname="Bert Wijnen" initials="B." surname="Wijnen" role="editor">
      <organization>Consultant</organization>

      <address>
        <postal>
          <street>Schagen 33</street>

          <city>3461 GL Linschoten</city>

          <country>The Netherlands</country>
        </postal>

        <email>bertietf@bwijnen.net</email>
      </address>
    </author>

    <date month="December" year="2015"/>

    <area>OPS &amp; Management</area>

    <workgroup>SUPA</workgroup>

    <keyword>Controller Northbound Interface, NEtwork MOdel, Intent</keyword>

    <abstract>
      <t>This document describes a base YANG data model for declarative
      policies that can be used within the SUPA (Simplified Use of Policy
      Abstractions) framework. The base model can be augmented by additional
      YANG modules defining data models for intent related policies and
      functions to support various network scenarios and applications. The
      base declarative policy data model provides common building blocks for
      extensions.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>Cloud computing and Software Defined Networking (SDN) are moving the
      IT world from a network-centric view to an application-centric view.
      Intent based North Bound Interface (NBI) provides applications the
      ability signal the "intent" (E.g. create a network between 3
      applications) to the network layer rather than specify the details of
      the network. The network intent is declarative ("go to the store")
      rather than imperative ("follow this route to the store"), leaving the
      details to the network implementation.</t>

      <t>In the SUPA proposition <xref target="I-D.klyus-supa-proposition"/>,
      the declarative policy is introdued as a higher level abstraction for
      service management. The NEMO language specifications <xref
      target="I-D.xia-sdnrg-nemo-language"/> describe a set of declarative
      primitives to manipulate and manage virtual networks, where the
      declarative policy model is a very import part. The declarative policy
      base model is also the shared part that can be used in working groups
      within IETF and also in other organizations. It provides a consistent
      abstraction for a higher level policy based network management system
      while concealing various implementation techniques and multi-vendor
      devices.</t>

      <t> This document introduces YANG <xref target="RFC6020"/><xref
      target="RFC6021"/>data models for the declarative policy. This set of
      models facilitates the standardization for a more abstracted policy
      configuration interface for SUPA. The basic model can be augmented by
      additional YANG modules defining data models for intent related
      protocols and functions to support various different network scenarios
      and applications. The base declarative policy data model provides common
      building blocks for extensions, such as specific operation and
      result.</t>
    </section>

    <section title="Requirements Language and Terminology">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
      "OPTIONAL" in this document are to be interpreted as described in <xref
      target="RFC2119"/> when they appear in ALL CAPS. When these words are
      not in ALL CAPS (such as "should" or "Should"), they have their usual
      English meanings, and are not to be interpreted as <xref
      target="RFC2119"/> key words.</t>
    </section>

    <section title="Design of The Declarative Policy Module">
      <t>Declarative policies that can apply to services and/or resources
      describe what to do, but not how to do it. This section gives an
      overview of the declarative policy module as shown in <xref
      target="figure_1"/></t>

      <t>Similar to other kinds of policies <xref
      target="I-D.chen-supa-eca-data-model"/>, there will be a policy header
      which contains general policy information such as:<list
          style="symbols">
          <t>policy-id: is the globally unique identifier for a policy
          instance.</t>

          <t>policy-name: is an easy to recognize and refer sting for policy
          instance naming.</t>

          <t>policy-priority: indicates the priority of the policy instance.
          Higher priority policy instance will get the prior order to
          execute.</t>

          <t>policy-validity-period: controls the life cycle of the policy
          instance with the start/end time or period.</t>

          <t>policy-rule-deploy-status: describes the deployment status of the
          policy rule.</t>

          <t>policy-rule-exec-status: describes the execution status of the
          policy rule. </t>
        </list></t>

      <t>The declarative policy expression need to contain a target-object,
      such as a VPN, a flow, a link and so on, to which the policy instance
      will apply. The target-object also defines the governance scope of the
      policy application. The target-object is a data model definition 
      to be provided by other WGs in a separate module and is not
      part of the declarative policy module itself.
      For example, in the policy, guarantee the the utilization of a link
      below a threshold, the dedicated link instance modeled by the policy
      user must be described in certain place. So that the policy model can
      refer the target object with an object-id.</t>

      <t>The policy can also apply to a collection of objects, e.g., a group
      of links with the same policy requirements. In this case, the collection
      as a whole should be considered as an object with an unique object-id.
      </t>

      <t>The intent of the policy is described with a list of policy rules
      which include declarative statements. In general, there are two ways to
      express the intent without touching the implementation details.</t>

      <t> One type of declarative statement is to express key operations that
      the user wants to execute, with the semantic "I want to do some thing".
      We use the operation item to describe this kind of statement. The
      underlying policy resolver engine can extend the operation and generate
      a complete action list from the requests. The translation and the
      fulfillment is implementation related but user agnostic. </t>

      <t> The other type of declarative statement is to express the final
      result or desired state, with the semantic "I want to achieve a certain
      state". In this case, a user may only need to describe the result
      without defining how to realize it. For example, require secure
      communication between two sites. The policy engine will monitor the
      required state, and do the adjustment automatically with pre-defined
      logic. </t>

      <t><figure align="center" anchor="figure_1"
          title="Figure 1 Top level design of the base declarative policy data model">
          <artwork>    module: supa-declarative-policy
       |  ...
       +--rw declarative-policy
          +--rw policy-id                  policy-id
          +--rw policy-name                policy-name
          +--rw priority?                  uint8
          +--rw policy-validity-period
          |  +--rw start?                  yang:date-and-time
          |  +--rw end?                    yang:date-and-time
          |  +--rw duration?               uint32
          |  +--rw periodicity?            enumeration
          +--rw policy-rule-deploy-status? enumeration
          +--rw policy-rule-exec-status?   enumeration
          +--rw target-object              object-id
          +--rw declarative-policy-rule
             +--rw operation
             | | ....
             +--rw result
             | | ....</artwork>
        </figure></t>

      <section title="Design of The Operation">
        <t>Operation refers to some specific actions in order to achieve the
        goal. An operation must contain one or more actions. We can use the
        semantic "on condition, do action, with constraint". However,
        condition and constraint can be optionally defined in operations. It
        depends on specific scenario and users' requirement. Once a condition
        is involved in operation, actions will not be executed
        until condition is true. For example, "do load balancing when the
        utilization of a link exceeds 80%". In this example, "utilization of a
        link &gt; 80%" is the trigger, and "do load balancing" is the action.
        </t>

        <t>Condition must be modeled on top of events. In contrast to an event
        in Event-Condition-Action (ECA) policy model, a condition is 
        state-based and therefore temporal constrained.
        It is triggered by some initializing event
        and ended by another event or after a certain time span.</t>

        <t>In the declarative statement, an action will not be detailed
        configurations in devices, but high-level and abstracted functions
        which can be later translated into configurations by the policy
        engine. For example, the action "do load balancing" is device
        independent, and may configure a load balancer pool depending on
        specific devices.</t>

        <t>Constraint restricts action itself or the scope of action.</t>

        <t>The Condition-Action-Constraint (CAC) model used in operation
        expression is essentially different from the ECA policy model.
        Firstly, the event and condition in ECA model quite depend on the
        underlying implementation, while the declarative operation only
        care about the condition to execute the action.
        Secondly, the ECA model does not have a constraint description,
        while the declarative operation does not care about the
        implementation of the action but does care about the constraint
        to the action.</t>

        <figure title="Figure 2 The snippet of operation">
          <artwork>+--rw condition-parameter-definitions
|  +--rw condition-parameter-definition* [parameter-name]
|     +--rw parameter-name                parameter-name
|     +--rw parameter-value-type?         enumeration
|     +--rw parameter-match-patterns
|        +--rw parameter-match-pattern*   enumeration
+--rw constraint-parameter-definitions
|  +--rw constraint-parameter-definition* [parameter-name]
|     +--rw parameter-name                 parameter-name
|     +--rw parameter-value-type?          enumeration
|     +--rw parameter-match-patterns
|        +--rw parameter-match-pattern*    enumeration
+--rw action-definitions
|  +--rw action-definition* [action-name]
|     +--rw action-name                    action-name
|     +--rw parameter-value-type?          enumeration
+--rw declarative-policy
   |  ...
   +--rw declarative-policy-rule
      |  ...
      +--rw operation
         +--rw condition
         |  +--rw condition-segment* [condition-segment-id]
         |     +--rw condition-segment-id condition-segment-id
         |     +--rw condition-para-name? condition-parameter-name
         |     +--rw condition-para-match-pattern? enumeration
         |     +--rw condition-para-target-value
         |     |  +--rw string-value?              string
         |     |  +--rw int-value?                 int64
         |     |  +--rw range-value
         |     |     +--rw min                     int64
         |     |     +--rw max                     int64
         |     +--rw precursor-relation-operator?  enumeration
         |     +--rw order?                        uint32
         +--rw action* [action-name]
         |  +--rw action-name                      action-name
         |  +--rw parameter-values
         |  |  +--rw string-value* [value order]
         |  |  |  +--rw value                      string
         |  |  |  +--rw order                      uint32
         |  |  +--rw int-value* [value order]
         |  |  |  +--rw value                      int64
         |  |  |  +--rw order                      uint32
         |  |  +--rw range-value
         |  |     +--rw min                        int64
         |  |     +--rw max                        int64
         |  +--rw order?                           uint32
         +--rw constraint
            +--rw constraint-segment* [constraint-segment-id]
              +--rw constraint-segment-id          constraint-segment-id
              +--rw constraint-para-name?          constraint-parameter-name
              +--rw constraint-para-match-pattern? enumeration
              +--rw constraint-para-target-value
              |  +--rw string-value?               string
              |  +--rw int-value?                  int64
              |  +--rw range-value
              |     +--rw min                      int64
              |     +--rw max                      int64
              +--rw precursor-relation-operator?   enumeration
              +--rw order?                         uint32
        </artwork>
        </figure>
      </section>

      <section title="Design of The Result">
        <t> The result statement describes the final state of objects without
        caring about how to achieve it. For example, a result could be that
        the company accesses any sites on the Internet safely. It just defines
        a result that ignores technology details, such as, firewall, ACL, and
        so on.</t>

        <t> Result refers to desired state which is expected or ito be avoided.
        For example, a user may express an intent that the link utilization must
        be lower than 80%, which describes an expected state. The same intent
        can also be expressed as the link utilization should not exceed 80%,
        which describes an state to avoid. The result expression model should
        be flexible for users so they can describe iit in either way.</t>

        <t>As shown in <xref target="figure_3"/>, the result can be described
        as an expression with left, right operands and standard relational
        operators.</t>

        <figure title="Figure 3 The snippet of result" anchor="figure_3">
          <artwork>        +--rw result
            +--rw left-value
            |  +--rw (value-type)?
            |     +--:(string)
            |     |  +--rw single-string-value?       string
            |     +--:(string-list)
            |     |  +--rw string-value* [value order]
            |     |     +--rw value                   string
            |     |     +--rw order                   uint32
            |     +--:(int)
            |     |  +--rw single-int-value?          int64
            |     +--:(int-list)
            |     |  +--rw int-value* [value order]
            |     |     +--rw value                   int64
            |     |     +--rw order                   uint32
            |     +--:(variable)
            |     |  +--rw variable-name?             string
            |     +--:(calculation-expression)
            |        +--rw calculation-operator?      enumeration
            |        +--rw calculation-leaf-value?    string
            |        +--rw calculation-right-value?   string
            +--rw relational-operator
            |  +--rw relational-operator?             enumeration
            +--rw right-value
               +--rw (value-type)?
                  +--:(string)
                  |  +--rw single-string-value?       string
                  +--:(string-list)
                  |  +--rw string-value* [value order]
                  |     +--rw value                   string
                  |     +--rw order                   uint32
                  +--:(int)
                  |  +--rw single-int-value?          int64
                  +--:(int-list)
                  |  +--rw int-value* [value order]
                  |     +--rw value                   int64
                  |     +--rw order                   uint32
                  +--:(variable)
                  |  +--rw variable-name?             string
                  +--:(calculation-expression)
                     +--rw calculation-operator?      enumeration
                     +--rw calculation-leaf-value?    string
                     +--rw calculation-right-value?   string
        </artwork>
        </figure>

        <t>The relational operator is an enumeration type including at
        least:<list style="Symbols">
            <t>eq: Checks if the values of two operands are equal or not, if
            yes then the result of the expression becomes true.</t>

            <t>ne: Checks if the values of two operands are equal or not, if
            values are not equal then the result of the expression becomes
            true.</t>

            <t>gt: Checks if the value of left operand is greater than the
            value of right operand, if yes then the result of the expression
            becomes true.</t>

            <t>ge: Checks if the value of left operand is greater than or
            equal to the value of right operand, if yes then the result of the
            expression becomes true.</t>

            <t>lt: Checks if the value of left operand is less than the value
            of right operand, if yes then the result of the expression becomes
            true.</t>

            <t>le: Checks if the value of left operand is less than or equal
            to the value of right operand, if yes then the result of the
            expression becomes true.</t>

            <t>bl: Checks if the left set belongs to the right set, if yes
            then the result of the expression becomes true.</t>

            <t>nb: Checks if the left set belongs to the right set, if no then
            the result of the expression becomes true.</t>
          </list></t>

        <t>The left and right operands can be a set or a single value or the
        expression with calculation operators. For example, a policy rule
        could be, the marketing network and the sales network do not belong to
        the internal network. Typical calculation operators include:
        add/minus/multiply/division, max/min/average,
        intersection/union/complement, and/or/not, any/all, etc. </t>
      </section>
    </section>

    <section title="Declarative Policy Base YANG Data Model">
      <section title="Declarative Policy Data Model Hierarchy">
        <t><xref target="figure_4"/> shows the structure of base data model
        for the declarative policy module.</t>

        <figure anchor="figure_4"
                title="Figure 4 structure of the declarative policy module">
          <artwork>module: supa-declarative-policy
  +--rw condition-parameter-definitions
  |  +--rw condition-parameter-definition* [parameter-name]
  |     +--rw parameter-name                 parameter-name
  |     +--rw parameter-value-type?          enumeration
  |     +--rw parameter-match-patterns
  |        +--rw parameter-match-pattern*    enumeration
  +--rw constraint-parameter-definitions
  |  +--rw constraint-parameter-definition* [parameter-name]
  |     +--rw parameter-name                 parameter-name
  |     +--rw parameter-value-type?          enumeration
  |     +--rw parameter-match-patterns
  |        +--rw parameter-match-pattern*    enumeration
  +--rw action-definitions
  |  +--rw action-definition* [action-name]
  |     +--rw action-name                    action-name
  |     +--rw parameter-value-type?          enumeration
  +--rw declarative-policy
     +--rw policy-id                         policy-id
     +--rw policy-name                       policy-name
     +--rw priority?                         uint8
     +--rw policy-validity-period
     |  +--rw start?                         yang:date-and-time
     |  +--rw end?                           yang:date-and-time
     |  +--rw duration?                      uint32
     |  +--rw periodicity?                   enumeration
     +--rw policy-rule-deploy-status?        enumeration
     +--rw policy-rule-exec-status?          enumeration
     +--rw target-object                     object-id
     +--rw declarative-policy-rule
        +--rw operation
        |  +--rw condition
        |  |  +--rw condition-segment* [condition-segment-id]
        |  |     +--rw condition-segment-id  condition-segment-id
        |  |     +--rw condition-para-name?  condition-parameter-name
        |  |     +--rw condition-para-match-pattern? enumeration
        |  |     +--rw condition-para-target-value
        |  |     |  +--rw string-value?      string
        |  |     |  +--rw int-value?         int64
        |  |     |  +--rw range-value
        |  |     |     +--rw min             int64
        |  |     |     +--rw max             int64
        |  |     +--rw precursor-relation-operator?  enumeration
        |  |     +--rw order?                        uint32
        |  +--rw action* [action-name]
        |  |  +--rw action-name              action-name
        |  |  +--rw parameter-values
        |  |  |  +--rw string-value* [value order]
        |  |  |  |  +--rw value              string
        |  |  |  |  +--rw order              uint32
        |  |  |  +--rw int-value* [value order]
        |  |  |  |  +--rw value              int64
        |  |  |  |  +--rw order              uint32
        |  |  |  +--rw range-value
        |  |  |     +--rw min                int64
        |  |  |     +--rw max                int64
        |  |  +--rw order?                   uint32
        |  +--rw constraint
        |     +--rw constraint-segment* [constraint-segment-id]
        |       +--rw constraint-segment-id  constraint-segment-id
        |       +--rw constraint-para-name?  constraint-parameter-name
        |       +--rw constraint-para-match-pattern?   enumeration
        |       +--rw constraint-para-target-value
        |       |  +--rw string-value?       string
        |       |  +--rw int-value?          int64
        |       |  +--rw range-value
        |       |     +--rw min              int64
        |       |     +--rw max              int64
        |       +--rw precursor-relation-operator?     enumeration
        |       +--rw order?                           uint32
        +--rw result
           +--rw left-value
           |  +--rw (value-type)?
           |     +--:(string)
           |     |  +--rw single-string-value?         string
           |     +--:(string-list)
           |     |  +--rw string-value* [value order]
           |     |     +--rw value                     string
           |     |     +--rw order                     uint32
           |     +--:(int)
           |     |  +--rw single-int-value?            int64
           |     +--:(int-list)
           |     |  +--rw int-value* [value order]
           |     |     +--rw value                     int64
           |     |     +--rw order                     uint32
           |     +--:(variable)
           |     |  +--rw variable-name?               string
           |     +--:(calculation-expression)
           |        +--rw calculation-operator?        enumeration
           |        +--rw calculation-leaf-value?      string
           |        +--rw calculation-right-value?     string
           +--rw relational-operator
           |  +--rw relational-operator?               enumeration
           +--rw right-value
              +--rw (value-type)?
                 +--:(string)
                 |  +--rw single-string-value?         string
                 +--:(string-list)
                 |  +--rw string-value* [value order]
                 |     +--rw value                     string
                 |     +--rw order                     uint32
                 +--:(int)
                 |  +--rw single-int-value?            int64
                 +--:(int-list)
                 |  +--rw int-value* [value order]
                 |     +--rw value    int64
                 |     +--rw order    uint32
                 +--:(variable)
                 |  +--rw variable-name?               string
                 +--:(calculation-expression)
                    +--rw calculation-operator?        enumeration
                    +--rw calculation-leaf-value?      string
                    +--rw calculation-right-value?     string
        </artwork>
        </figure>
      </section>

      <section title="Declarative Policy Base Data Model in YANG Module">
        <figure>
         <artwork>&lt;CODE BEGINS&gt; file "ietf-declarative-policy@2015-12-09.yang"

  module ietf-declarative-policy {

     yang-version 1;

     namespace "urn:ietf:params:xml:ns:yang:ietf-declarative-policy";

     prefix "dpolicy";

     import ietf-yang-types { 
          prefix yang; 
     } 
        
     organization
       "Individual I-D as input to SUPA WG";

       contact
         "Editor:   Bert Wijnen
                    &lt;mailto:bwietf@bwijnen.net&gt;

          Author:   Tianran Zhou
                    &lt;mailto:zhoutianran@huawei.com&gt;

          Author:   Yinben Xia
                    &lt;mailto:xiayinben@huawei.com&gt;
         ";

     description
       "This YANG module defines essential components for the
        management of declarative policies.

        Copyright (c) 2015 IETF Trust and the persons identified as
        authors of the code. All rights reserved.

        Redistribution and use in source and binary forms, with or
        without modification, is permitted pursuant to, and subject
        to the license terms contained in, the Simplified BSD License
        set forth in Section 4.c of the IETF Trust's Legal Provisions
        Relating to IETF Documents
        (http://trustee.ietf.org/license-info).

        The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
        NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'MAY', and
        'OPTIONAL' in the module text are to be interpreted as
        described in RFC 2119 (http://tools.ietf.org/html/rfc2119).

        This version of this YANG module is part of RFC XXXX
        (http://tools.ietf.org/html/rfcXXXX); see the RFC itself for
        full legal notices.";

        revision "2015-12-09" {
            description
               "Initial revision."; 
            reference
               "RFC XXXX: A YANG Data Model for Delcarative Policy.";
        }

        typedef uuid {
            type string {
                pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-' +
                '[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}';
            }
            description
                "A Universally Unique Identifier in the string 
                 representation defined in RFC 4122. The canonical
                 representation uses lower case characters.

                 The following is an example of a UUID in string
                 representation: 
                 f81d4fae-7dec-11d0-a765-00a0c91e6bf6";
            reference
                "RFC 4122: A Universally Unique IDentifier (UUID) URN
                 Namespace";
        }

        typedef unique-id {
            type uuid;
            description
                "A globally unique identifier.";
        }
        
        typedef name {
            type string {
                length "1..256";
                pattern '[a-zA-Z]([a-zA-Z0-9\-_.])*';
            }
            description
                "A generic string name type. Must start with a
                 letter";
        }

        typedef parameter-name {
            type name;
            description
                "A name for a parameter.";
        }

        typedef action-name {
            type name;
            description
                "A name for an action.";
        }
        
        typedef condition-segment-id {
            type unique-id;
            description
                "A unique ID for a segment of the condition in an
                 operation.";
        }
        
        typedef constraint-segment-id {
            type unique-id;
            description
                "A unique ID for a segment of the constraint in
                an operation.";
        }
        
        typedef condition-parameter-name {
            type name;
            description
                "A name for a parameter of condition.";
        }

        typedef constraint-parameter-name {
            type name;
            description
                "A name for a parameter of constraint.";
        }
        
        typedef policy-id {
            type unique-id;
            description
                "A unique ID for a policy.";
        }
        
        typedef policy-name {
            type string;
            description
                "A name for a policy.";
        }
        
        typedef object-id {
            type unique-id;
            description
                "A unique ID for a parameterized object.";
        }

        typedef match-pattern-operator {
            type enumeration {
                enum less-than {
                   description "less than";
                }
                enum not-less-than {
                   description "not less than";
                }
                enum equal {
                   description "equal";
                }
                enum not-equal {
                   description "not equal";
                }
                enum greater-than {
                   description "greater than";
                }
                enum not-greater-than {
                   description "not greater than";
                }
                enum between {
                   description "between";
                }
                enum periodical {
                   description "periodical";
                }
            }
            description "pattern matching operators";
        }
        
    container top_declarative_policy {
        description "Top level declarative policy container";

        container condition-parameter-definitions {
            description "List of condition parameters";
            list condition-parameter-definition {
                key "parameter-name";
                description
                    "Defines the condition parameter with its
                     metadata.";
                leaf parameter-name {
                    type parameter-name;
                    mandatory true;
                    description
                        "A name for the condition parameter.";
                }

                leaf parameter-value-type {
                    type enumeration {
                        enum string {
                            description
                                "A string-valued parameter.";
                        }
                        enum int {
                            description
                                "An integer-valued parameter.";
                        }
                        enum range {
                            description
                                "An integer-range parameter.";
                        }
                    }
                    description
                        "A type of value for the condition 
                         parameter.";
                }

                container parameter-match-patterns {
                    description
                        "Defines the match patterns of the condition
                         parameter.";

                    leaf-list parameter-match-pattern {
                        type match-pattern-operator;
                        description 
                            "pattern matching operator";
                    }
                }
            }
        }
        

        container constraint-parameter-definitions {
            description "Parameter definitions fro constraints";
            list constraint-parameter-definition {
                key "parameter-name";
                description
                    "Defines the constraint parameter with its 
                     metadata.";

                leaf parameter-name {
                    type parameter-name;
                    mandatory true;
                    description
                        "A name for the constraint parameter.";
                }

                leaf parameter-value-type {
                    type enumeration {
                        enum string {
                            description
                                "A string-valued parameter.";
                        }
                        enum int {
                            description
                                "An integer-valued parameter.";
                        }
                        enum range {
                            description
                                "An integer-range parameter.";
                        }
                    }
                    description
                        "A type of value for the constraint 
                         parameter.";
                }

                container parameter-match-patterns {
                    description
                        "Defines the match patterns of the constraint
                         parameter.";

                    leaf-list parameter-match-pattern {
                        type match-pattern-operator;
                        description
                            "pattern matching operator";
                    }
                }
            }
        }
        
        container action-definitions {
            description "Action definitions";
            list action-definition {
                key "action-name";
                description
                    "Defines the actions which will be supported.";

                leaf action-name {
                    type action-name;
                    mandatory true;
                    description
                        "A name for the action definition.";
                }

                leaf parameter-value-type {
                    type enumeration {
                        enum string {
                            description
                                "A string-valued parameter.";
                        }
                        enum int {
                            description
                                "An integer-valued parameter.";
                        }
                        enum range {
                            description
                                "An integer-range parameter.";
                        }
                    }
                    default string;
                    description
                        "The type of the action parameter.";
                }
            }
        }

        grouping condition-instance {
            description
                "Specific a instance of condition whose metadata has 
                 been filled in.";

            list condition-segment {
                key "condition-segment-id";
                description
                    "The segment entities will be composed into a 
                     whole condition entity. Each segment will be
                     a sub expression of the condition.";

                leaf condition-segment-id {
                    type condition-segment-id;
                    mandatory true;
                    description
                        "A unique ID for a condition segment.";
                }

                leaf condition-parameter-name {
                    type condition-parameter-name;
                    description
                        "A name for a condition parameter.";
                }

                leaf condition-parameter-match-pattern {
                        type match-pattern-operator;
                        description
                           "The operator for the condition parameter 
                            and it's target value.";
                }

                container condition-parameter-target-value {
                    description
                        "The target value of condition parameter.";

                    leaf string-value {
                        type string;
                        description "The value is of type 'string'";
                    }

                    leaf int-value {
                        type int64;
                        description "The value is of type 'int64'";
                    }

                    container range-value {
                        description
                            "The min/max of a range.";
                        leaf min {
                            type int64;
                            mandatory true;
                            description "minimum value of the range";
                        }

                        leaf max {
                            type int64;
                            mandatory true;
                            description "maximum value of the range";
                        }
                    }
                }

                leaf precursor-relation-operator {
                    type enumeration {
                        enum none {
                           description 
                              "no precursor-relation-operator";
                        }
                        enum and {
                           description 
                              "'and' precursor-relation-operator";
                        }
                        enum or {
                           description 
                              "'or' precursor-relation-operator";
                        }
                        enum not {
                           description 
                              "'not' precursor-relation-operator";
                        }
                    }
                    description "the pre-cursor relation operation.";
                }

                leaf order {
                    type uint32;
                    description
                        "The order of the segment in the whole 
                         condition entity.";
                }
            }
        }
        

        grouping constraint-instance {
            description
                "Specific a instance of constraint whose metadata
                 has been filled in.";

            list constraint-segment {
                key "constraint-segment-id";
                description
                    "The segment entities will be composed into a 
                     whole constraint entity. Each segment will be
                     a sub expression of the constraint.";

                leaf constraint-segment-id {
                    type constraint-segment-id;
                    mandatory true;
                    description
                        "A unique ID for a constraint segment.";
                }

                leaf constraint-parameter-name {
                    type constraint-parameter-name;
                    description
                        "A name for a constraint parameter.";
                }

                leaf constraint-parameter-match-pattern {
                    type match-pattern-operator;
                    description
                        "The operator for the constraint parameter 
                         and it's target value.";
                }

                container constraint-parameter-target-value {
                    description
                        "The target value of constraint parameter.";

                    leaf string-value {
                        type string;
                        description "the string value.";
                    }

                    leaf int-value {
                        type int64;
                        description "the int64 value.";
                    }

                    container range-value {
                        description "a range of values.";
                        leaf min {
                           type int64;
                           mandatory true;
                           description "the min value in the range.";
                        }

                        leaf max {
                           type int64;
                           mandatory true;
                           description "the max value in the range.";
                        }

                    }
                }

                leaf precursor-relation-operator {
                    type enumeration {
                        enum none {
                           description "no relational operation.";
                        }
                        enum and {
                           description "'and' relational operation.";
                        }
                        enum or {
                           description "'or' relational operation.";
                        }
                        enum not {
                           description "'not' relational operation.";
                        }
                    }
                    description
                        "The logical operator between current segment
                         and the next segment.";
                }

                leaf order {
                    type uint32;
                    description
                        "The order of the segment in the whole 
                         constraint entity.";
                }
            }
        }


        grouping action-instance {
            description
                "Specific a action instance whose metadata has
                 been filled in.";

            leaf action-name {
                type action-name;
                mandatory true;
                description
                    "A name for a action instance.";
            }

            container parameter-values {
                description
                    "The parameter value list of an action.";

                list string-value {
                    key "value order";
                    description "list of string values.";
                    leaf value {
                        type string;
                        description "The string value.";
                    }

                    leaf order {
                        type uint32;
                        description "The order of the value in the
                                     list.";
                    }
                }

                list int-value {
                    key "value order";
                    description "list of integer values.";
                    leaf value {
                        type int64;
                        description "The int64 value.";
                    }

                    leaf order {
                        type uint32;
                        description "The order of the value in the
                                     list.";
                    }
                }

                container range-value {
                    description "a value range.";
                    leaf min {
                        type int64;
                        mandatory true;
                        description "The min value in the range.";
                    }

                    leaf max {
                        type int64;
                        mandatory true;
                        description "The max value in the range.";
                    }
                }
            }
        }

        grouping operation {
            description "Defines an operation.";
            container condition { 
                uses condition-instance;
                description "Defines a condition";
            }
           
            list action {
                key "action-name";
                uses action-instance;
                min-elements 1;
                description
                    "The action list for the operation instance.";
                leaf order {
                    type uint32;
                    description
                        "The order of an action instance in 
                         execution sequence.";
                }
            }
            
            container constraint{
                uses constraint-instance;
                description "The constraint definition.";
            }
        }

        grouping relational-expression-value {
            description "The relational expression.";
            choice value-type { 
            
                description  
                    "The value of the relation expression can be
                     different type."; 
                case string{
                    leaf single-string-value {
                        type string;
                        description "The string value of the
                                     variable.";
                    } 
                } 
                case string-list { 
                    list string-value {
                        key "value order";
                        description "List of string values.";
                        leaf value {
                            type string;
                            description "The string value of the
                                         variable.";
                        }
                        leaf order {
                            type uint32;
                            description "the order in the list.";
                        }
                    }
                }
                case int {
                    leaf single-int-value {
                        type int64;
                        description "The value of the int64
                                     variable.";
                    }
                }
                case int-list {
                    list int-value {
                        key "value order";
                        description "List of integer values.";
                        leaf value {
                            type int64;
                            description "the value of the int64
                                         variable.";
                        }

                        leaf order {
                            type uint32;
                            description "the order in the list.";
                        }
                    }
                }
                case variable {
                    leaf variable-name {
                        type string;
                        description "the name of the variable.";
                    }
                }
                
                case calculation-expression {
                
                    leaf calculation-operator{
                        type enumeration {
                            enum add {
                                 description "'add' operator";
                            }
                            enum minus {
                                 description "'subtract' operator";
                            }
                            enum multiply {
                                 description "'multiply' operator";
                            }
                            enum divide {
                                 description "'divide' operator";
                            }
                            enum any {
                                 description "'any' operator";
                            }
                            enum all {
                                 description "'all' operator";
                            }
                            enum max {
                                 description "'max' operator";
                            }
                            enum min {
                                 description "'min' operator";
                            }
                            enum average {
                                 description "'avg' operator";
                            }
                            enum sum {
                                 description "'sum' operator";
                            }
                            enum count {
                                 description "'count' operator";
                            }
                            enum and {
                                 description "'and' operator";
                            }
                            enum or {
                                 description "'or' operator";
                            }
                            enum not {
                                 description "'not' operator";
                            }
                            enum intersection {
                                 description "'intersetion'
                                              operator";
                            }
                            enum union {
                                 description "'union' operator";
                            }
                            enum complement {
                                 description "'complement' operator";
                            }
                        }
                        description
                            "The calculation to be performed";
                    }

                    leaf calculation-leaf-value {
                        type string;
                        description 
                            "The content of the leaf value for a 
                             calculation expression is an instance
                             of relational-expression-value.";
                    }
                    
                    leaf calculation-right-value {
                        type string;
                        description 
                            "The content of the right value for a 
                             calculation expression is an instance 
                             of relational-expression-value.";
                    }
                }
            }
        }

        grouping result {
            description "The result.";
            container left-value {
                description "The 'left' value for the relational
                             operation.";
                uses relational-expression-value;
            }
            
            container relational-operator {
                description 
                   "The relational operation to be performed";
                leaf relational-operator { 
                    type enumeration {
                        enum eq {
                             description "'equal' operator.";
                        }
                        enum ne {
                             description "'not equal' operator.";
                        }
                        enum gt {
                             description "'greater than' operator.";
                        }
                        enum ge {
                             description "greater than or equal'
                                          operator.";
                        }
                        enum lt {
                             description "'less than' operator.";
                        }
                        enum le {
                             description "'less than or equal'
                                           operator.";
                        }
                        enum bl {
                             description "'belongs to' or
                                          'is an element of'
                                           operator.";
                        }
                        enum nb {
                             description "'does not belong to' or
                                          'is not an element of'
                                          operator.";
                        }
                    }
                    description "the relational operation to be 
                                 performed.";
                }
            }
            container right-value {
                description "The 'right' value for the relational
                             operation.";
                uses relational-expression-value;
            }
        }

        container declarative-policy {
            description 
                "Aarative policy definition";
        
            leaf policy-id {
                type policy-id;
                mandatory true;
                description
                    "A unique ID for a policy.";
            }
            
            leaf policy-name {
                type policy-name;
                mandatory true;
                description
                    "A user-visible and unique name for a policy.";
            }
            
            leaf priority {
                type uint8;
                default 0;
                description
                    "Defines the priority of a operation instance.";
            }
            
            container policy-validity-period { 
                description 
                    "The valid time of the policy. E.g., the policy 
                     will be valid 9am-9am daily"; 
                leaf start { 
                    type yang:date-and-time; 
                    description "date and time to start the policy"; 
                }  
                leaf end { 
                    type yang:date-and-time; 
                    description "date and time to end the policy"; 
                } 
                leaf duration { 
                    type uint32; 
                    description "duration of the policy"; 
                } 
                leaf periodicity { 
                    type enumeration { 
                        enum daily {  
                            value 0; 
                            description 
                                "The policy is repeated daily"; 
                        } 
                        enum monthly {   
                            value 1; 
                            description 
                                "The policy is repeated monthly"; 
                        } 
                    } 
                    description "How the policy is repeated"; 
                } 
            } 

            leaf policy-rule-deploy-status {
                type enumeration {
                    enum undefined {
                        description "undefined";
                    }
                    enum deployed_and_enabled {
                        description "deployed and enabled";
                    }
                    enum deployed_and_testing {
                        description "deployed and in test";
                    }
                    enum deployed_and_disabled {
                        description "deployed but not enabled";
                    }
                    enum ready_to_be_deployed {
                        description "ready to be deployed";
                    }
                    enum not_deployed {
                        description "not deployed";
                    }
                }
                description
                    "The deploy status of the policy.";
            }

            leaf policy-rule-exec-status { 
                type enumeration { 
                    enum undefined { 
                       description "undefined";        
                    } 
                    enum executed_and_succeeded{ 
                       description  
                          "executed and SUCEEDED (operational mode)";
                    } 
                    enum executed_and_failed{ 
                       description  
                          "executed and FAILED (operational mode)";
                    } 
                    enum executing { 
                       description  
                          "currently executing (operational mode)";
                    } 
                    enum tested_and_succeeded { 
                       description  
                          "executed and SUCEEDED (test mode)";
                   } 
                    enum tested_and_failed { 
                       description  
                          "executed and FAILED (test mode)";
                    } 
                    enum testing {
                       description  
                          "currently executing (test mode)";
                    } 
                } 
                description 
                    "The executing status of the policy.";
            } 

            leaf target-object {
                type object-id;
                mandatory true;
                description
                    "The target object which the operation instanc
                     will apply to.";
            }

            container declarative-policy-rule {
                description "declarative policy rules.";
                container operation {
                    uses operation;
                    description 
                        "An operation based declarative policy rule";
                }
                container result {
                    uses result;
                    description 
                        "A result based declarative policy rule";
                }
            }
        }
    }
    }
&lt;CODE ENDS&gt;</artwork>
        </figure>
      </section>
    </section>

    <section title="Declarative Policy Data Model Examples">
      <section title="Link utilization optimization">
        <t>For the link utilization optimization, there will be many kinds of
        policy requirements and expressions. For example:</t>

        <t>Policy 1: In one set of links, keep all link utilization below
        70%.</t>

        <t>Policy 2: In one set of links, minimize the average link
        utilization.</t>

        <t>Both of the policies are target to a set of links, which could
        include the following attributes:<list>
            <t>uti: link bandwidth utility.</t>

            <t>bandwidth: bandwidth of the link.</t>
          </list></t>

        <t>For the policy 1, we can use the result to express the declarative
        rule statement.</t>

        <t>result:<list>
            <t>left: uti</t>

            <t>operator: lt</t>

            <t>right: 70</t>
          </list>ult:</t>

        <t>For policy 2, we can in alternative use the operation to express
        the declarative rule statement.</t>

        <t>operation:<list>
            <t>action: minimize the average link utilization.</t>

            <t/>
          </list></t>
      </section>

      <section title="Policy Based Bandwidth on Demand">
        <t> There are branch and headquarter sites connected via a WAN
        connection. The bandwidth of the connection can be adjusted to 1000M
        during daytime and 100M at night.</t>

        <t>This automatic bandwidth adjustment requirement can be expressed by
        policies target to the connection object. And we can use the operation
        to express the declarative rule statement.</t>

        <t>one operation is:<list>
            <t>condition: time = day</t>

            <t>action: set the bandwidth to 1000M</t>
          </list></t>

        <t>the other operation is:<list>
            <t>condition: time = night</t>

            <t>action: set the bandwidth to 100M</t>
          </list></t>
      </section>

      <section title="Service function chaining">
        <t>We can also use declarative policies to describe the SFC
        requirement to simplify the expression.</t>

        <t>For example, the gold service user traffic go through the firewall
        and load balancer services. The policy user do not need to care about
        the exact function instance to use, but focus on the service intent
        expression.</t>

        <t>This policy is targeted to a flow object, which could include the
        following attributes:<list>
            <t>srcip,destip: the source and destination IP address of the
            flow.</t>

            <t>userlevel: the user's service level of the flow, it can be gold
            or normal.</t>
          </list></t>

        <t>The operation rule is:<list>
            <t>action: go through, and with parameters: firewall, load
            balancer.</t>
          </list></t>
      </section>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>The YANG module defined in this memo is designed to be accessed via
      the NETCONF protocol <xref target="RFC6241"/>. The lowest NETCONF layer
      is the secure transport layer and the mandatory-to-implement secure
      transport is SSH <xref target="RFC6242"/>. The NETCONF access control
      model <xref target="RFC6536"/> provides the means to restrict access for
      particular NETCONF users to a pre-configured subset of all available
      NETCONF protocol operations and content.</t>

      <t>There are a number of data nodes defined in the YANG module which are
      writable/creatable/deletable (i.e., config true, which is the default).
      These data nodes may be considered sensitive or vulnerable in some
      network environments. Write operations (e.g., &lt;edit-config&gt;) to
      these data nodes without proper protection can have a negative effect on
      network operations.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>This memo includes no request to IANA.</t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>The authors would like to thanks the valuable comments made by:.</t>

      <t>This document was produced using the xml2rfc tool <xref
      target="RFC2629"/>.</t>
    </section>
  </middle>

  <back>
    <references title="Informative References">
      <?rfc include='reference.RFC.2629'?>

      <?rfc include='reference.RFC.2119'?>

      <?rfc include='reference.RFC.6020'?>

      <?rfc include='reference.RFC.6021'?>

      <?rfc include='reference.RFC.6241'?>

      <?rfc include='reference.RFC.6242'?>

      <?rfc include='reference.RFC.6536'?>

      <?rfc include='reference.I-D.xia-sdnrg-nemo-language'?>

      <?rfc include='reference.I-D.klyus-supa-proposition'?>

      <?rfc include='reference.I-D.chen-supa-eca-data-model'?>
    </references>
  </back>
</rfc>


--------------000303070300090809050908
Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0";
 name="ietf-declarative-policy.yang"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="ietf-declarative-policy.yang"

ICBtb2R1bGUgaWV0Zi1kZWNsYXJhdGl2ZS1wb2xpY3kgewoKICAgICB5YW5nLXZlcnNpb24g
MTsKCiAgICAgbmFtZXNwYWNlICJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOnlhbmc6aWV0Zi1k
ZWNsYXJhdGl2ZS1wb2xpY3kiOwoKICAgICBwcmVmaXggImRwb2xpY3kiOwoKICAgICBpbXBv
cnQgaWV0Zi15YW5nLXR5cGVzIHsgCiAgICAgICAgICBwcmVmaXggeWFuZzsgCiAgICAgfSAK
ICAgICAgICAKICAgICBvcmdhbml6YXRpb24KICAgICAgICJJbmRpdmlkdWFsIEktRCBhcyBp
bnB1dCB0byBTVVBBIFdHIjsKCiAgICAgICBjb250YWN0CiAgICAgICAgICJFZGl0b3I6ICAg
QmVydCBXaWpuZW4KICAgICAgICAgICAgICAgICAgICA8bWFpbHRvOmJ3aWV0ZkBid2lqbmVu
Lm5ldD4KCiAgICAgICAgICBBdXRob3I6ICAgVGlhbnJhbiBaaG91CiAgICAgICAgICAgICAg
ICAgICAgPG1haWx0bzp6aG91dGlhbnJhbkBodWF3ZWkuY29tPgoKICAgICAgICAgIEF1dGhv
cjogICBZaW5iZW4gWGlhCiAgICAgICAgICAgICAgICAgICAgPG1haWx0bzp4aWF5aW5iZW5A
aHVhd2VpLmNvbT4KICAgICAgICAgIjsKCiAgICAgZGVzY3JpcHRpb24KICAgICAgICJUaGlz
IFlBTkcgbW9kdWxlIGRlZmluZXMgZXNzZW50aWFsIGNvbXBvbmVudHMgZm9yIHRoZQogICAg
ICAgIG1hbmFnZW1lbnQgb2YgZGVjbGFyYXRpdmUgcG9saWNpZXMuCgogICAgICAgIENvcHly
aWdodCAoYykgMjAxNSBJRVRGIFRydXN0IGFuZCB0aGUgcGVyc29ucyBpZGVudGlmaWVkIGFz
CiAgICAgICAgYXV0aG9ycyBvZiB0aGUgY29kZS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KCiAg
ICAgICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvcgogICAgICAgIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBpcyBwZXJtaXR0ZWQg
cHVyc3VhbnQgdG8sIGFuZCBzdWJqZWN0CiAgICAgICAgdG8gdGhlIGxpY2Vuc2UgdGVybXMg
Y29udGFpbmVkIGluLCB0aGUgU2ltcGxpZmllZCBCU0QgTGljZW5zZQogICAgICAgIHNldCBm
b3J0aCBpbiBTZWN0aW9uIDQuYyBvZiB0aGUgSUVURiBUcnVzdCdzIExlZ2FsIFByb3Zpc2lv
bnMKICAgICAgICBSZWxhdGluZyB0byBJRVRGIERvY3VtZW50cwogICAgICAgIChodHRwOi8v
dHJ1c3RlZS5pZXRmLm9yZy9saWNlbnNlLWluZm8pLgoKICAgICAgICBUaGUga2V5IHdvcmRz
ICdNVVNUJywgJ01VU1QgTk9UJywgJ1JFUVVJUkVEJywgJ1NIQUxMJywgJ1NIQUxMCiAgICAg
ICAgTk9UJywgJ1NIT1VMRCcsICdTSE9VTEQgTk9UJywgJ1JFQ09NTUVOREVEJywgJ01BWScs
IGFuZAogICAgICAgICdPUFRJT05BTCcgaW4gdGhlIG1vZHVsZSB0ZXh0IGFyZSB0byBiZSBp
bnRlcnByZXRlZCBhcwogICAgICAgIGRlc2NyaWJlZCBpbiBSRkMgMjExOSAoaHR0cDovL3Rv
b2xzLmlldGYub3JnL2h0bWwvcmZjMjExOSkuCgogICAgICAgIFRoaXMgdmVyc2lvbiBvZiB0
aGlzIFlBTkcgbW9kdWxlIGlzIHBhcnQgb2YgUkZDIFhYWFgKICAgICAgICAoaHR0cDovL3Rv
b2xzLmlldGYub3JnL2h0bWwvcmZjWFhYWCk7IHNlZSB0aGUgUkZDIGl0c2VsZiBmb3IKICAg
ICAgICBmdWxsIGxlZ2FsIG5vdGljZXMuIjsKCiAgICAgICAgcmV2aXNpb24gIjIwMTUtMTIt
MDkiIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAgIkluaXRpYWwg
cmV2aXNpb24uIjsgCiAgICAgICAgICAgIHJlZmVyZW5jZQogICAgICAgICAgICAgICAiUkZD
IFhYWFg6IEEgWUFORyBEYXRhIE1vZGVsIGZvciBEZWxjYXJhdGl2ZSBQb2xpY3kuIjsKICAg
ICAgICB9CgogICAgICAgIHR5cGVkZWYgdXVpZCB7CiAgICAgICAgICAgIHR5cGUgc3RyaW5n
IHsKICAgICAgICAgICAgICAgIHBhdHRlcm4gJ1swLTlhLWZBLUZdezh9LVswLTlhLWZBLUZd
ezR9LScgKwogICAgICAgICAgICAgICAgJ1swLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9
LVswLTlhLWZBLUZdezEyfSc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGVzY3JpcHRp
b24KICAgICAgICAgICAgICAgICJBIFVuaXZlcnNhbGx5IFVuaXF1ZSBJZGVudGlmaWVyIGlu
IHRoZSBzdHJpbmcgCiAgICAgICAgICAgICAgICAgcmVwcmVzZW50YXRpb24gZGVmaW5lZCBp
biBSRkMgNDEyMi4gVGhlIGNhbm9uaWNhbAogICAgICAgICAgICAgICAgIHJlcHJlc2VudGF0
aW9uIHVzZXMgbG93ZXIgY2FzZSBjaGFyYWN0ZXJzLgoKICAgICAgICAgICAgICAgICBUaGUg
Zm9sbG93aW5nIGlzIGFuIGV4YW1wbGUgb2YgYSBVVUlEIGluIHN0cmluZwogICAgICAgICAg
ICAgICAgIHJlcHJlc2VudGF0aW9uOiAKICAgICAgICAgICAgICAgICBmODFkNGZhZS03ZGVj
LTExZDAtYTc2NS0wMGEwYzkxZTZiZjYiOwogICAgICAgICAgICByZWZlcmVuY2UKICAgICAg
ICAgICAgICAgICJSRkMgNDEyMjogQSBVbml2ZXJzYWxseSBVbmlxdWUgSURlbnRpZmllciAo
VVVJRCkgVVJOCiAgICAgICAgICAgICAgICAgTmFtZXNwYWNlIjsKICAgICAgICB9CgogICAg
ICAgIHR5cGVkZWYgdW5pcXVlLWlkIHsKICAgICAgICAgICAgdHlwZSB1dWlkOwogICAgICAg
ICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAgICAgIkEgZ2xvYmFsbHkgdW5pcXVlIGlk
ZW50aWZpZXIuIjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgdHlwZWRlZiBuYW1lIHsK
ICAgICAgICAgICAgdHlwZSBzdHJpbmcgewogICAgICAgICAgICAgICAgbGVuZ3RoICIxLi4y
NTYiOwogICAgICAgICAgICAgICAgcGF0dGVybiAnW2EtekEtWl0oW2EtekEtWjAtOVwtXy5d
KSonOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAg
ICAgICAiQSBnZW5lcmljIHN0cmluZyBuYW1lIHR5cGUuIE11c3Qgc3RhcnQgd2l0aCBhCiAg
ICAgICAgICAgICAgICAgbGV0dGVyIjsKICAgICAgICB9CgogICAgICAgIHR5cGVkZWYgcGFy
YW1ldGVyLW5hbWUgewogICAgICAgICAgICB0eXBlIG5hbWU7CiAgICAgICAgICAgIGRlc2Ny
aXB0aW9uCiAgICAgICAgICAgICAgICAiQSBuYW1lIGZvciBhIHBhcmFtZXRlci4iOwogICAg
ICAgIH0KCiAgICAgICAgdHlwZWRlZiBhY3Rpb24tbmFtZSB7CiAgICAgICAgICAgIHR5cGUg
bmFtZTsKICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICJBIG5hbWUg
Zm9yIGFuIGFjdGlvbi4iOwogICAgICAgIH0KICAgICAgICAKICAgICAgICB0eXBlZGVmIGNv
bmRpdGlvbi1zZWdtZW50LWlkIHsKICAgICAgICAgICAgdHlwZSB1bmlxdWUtaWQ7CiAgICAg
ICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgICAiQSB1bmlxdWUgSUQgZm9yIGEg
c2VnbWVudCBvZiB0aGUgY29uZGl0aW9uIGluIGFuCiAgICAgICAgICAgICAgICAgb3BlcmF0
aW9uLiI7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHR5cGVkZWYgY29uc3RyYWludC1z
ZWdtZW50LWlkIHsKICAgICAgICAgICAgdHlwZSB1bmlxdWUtaWQ7CiAgICAgICAgICAgIGRl
c2NyaXB0aW9uCiAgICAgICAgICAgICAgICAiQSB1bmlxdWUgSUQgZm9yIGEgc2VnbWVudCBv
ZiB0aGUgY29uc3RyYWludCBpbgogICAgICAgICAgICAgICAgYW4gb3BlcmF0aW9uLiI7CiAg
ICAgICAgfQogICAgICAgIAogICAgICAgIHR5cGVkZWYgY29uZGl0aW9uLXBhcmFtZXRlci1u
YW1lIHsKICAgICAgICAgICAgdHlwZSBuYW1lOwogICAgICAgICAgICBkZXNjcmlwdGlvbgog
ICAgICAgICAgICAgICAgIkEgbmFtZSBmb3IgYSBwYXJhbWV0ZXIgb2YgY29uZGl0aW9uLiI7
CiAgICAgICAgfQoKICAgICAgICB0eXBlZGVmIGNvbnN0cmFpbnQtcGFyYW1ldGVyLW5hbWUg
ewogICAgICAgICAgICB0eXBlIG5hbWU7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAg
ICAgICAgICAgICAiQSBuYW1lIGZvciBhIHBhcmFtZXRlciBvZiBjb25zdHJhaW50LiI7CiAg
ICAgICAgfQogICAgICAgIAogICAgICAgIHR5cGVkZWYgcG9saWN5LWlkIHsKICAgICAgICAg
ICAgdHlwZSB1bmlxdWUtaWQ7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAg
ICAgICAiQSB1bmlxdWUgSUQgZm9yIGEgcG9saWN5LiI7CiAgICAgICAgfQogICAgICAgIAog
ICAgICAgIHR5cGVkZWYgcG9saWN5LW5hbWUgewogICAgICAgICAgICB0eXBlIHN0cmluZzsK
ICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICJBIG5hbWUgZm9yIGEg
cG9saWN5LiI7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHR5cGVkZWYgb2JqZWN0LWlk
IHsKICAgICAgICAgICAgdHlwZSB1bmlxdWUtaWQ7CiAgICAgICAgICAgIGRlc2NyaXB0aW9u
CiAgICAgICAgICAgICAgICAiQSB1bmlxdWUgSUQgZm9yIGEgcGFyYW1ldGVyaXplZCBvYmpl
Y3QuIjsKICAgICAgICB9CgogICAgICAgIHR5cGVkZWYgbWF0Y2gtcGF0dGVybi1vcGVyYXRv
ciB7CiAgICAgICAgICAgIHR5cGUgZW51bWVyYXRpb24gewogICAgICAgICAgICAgICAgZW51
bSBsZXNzLXRoYW4gewogICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gImxlc3MgdGhh
biI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbnVtIG5vdC1sZXNzLXRo
YW4gewogICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIm5vdCBsZXNzIHRoYW4iOwog
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZW51bSBlcXVhbCB7CiAgICAgICAg
ICAgICAgICAgICBkZXNjcmlwdGlvbiAiZXF1YWwiOwogICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgZW51bSBub3QtZXF1YWwgewogICAgICAgICAgICAgICAgICAgZGVzY3Jp
cHRpb24gIm5vdCBlcXVhbCI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBl
bnVtIGdyZWF0ZXItdGhhbiB7CiAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiZ3Jl
YXRlciB0aGFuIjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVudW0gbm90
LWdyZWF0ZXItdGhhbiB7CiAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAibm90IGdy
ZWF0ZXIgdGhhbiI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbnVtIGJl
dHdlZW4gewogICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gImJldHdlZW4iOwogICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZW51bSBwZXJpb2RpY2FsIHsKICAgICAg
ICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJwZXJpb2RpY2FsIjsKICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgfQogICAgICAgICAgICBkZXNjcmlwdGlvbiAicGF0dGVybiBtYXRj
aGluZyBvcGVyYXRvcnMiOwogICAgICAgIH0KICAgICAgICAKICAgIGNvbnRhaW5lciB0b3Bf
ZGVjbGFyYXRpdmVfcG9saWN5IHsKICAgICAgICBkZXNjcmlwdGlvbiAiVG9wIGxldmVsIGRl
Y2xhcmF0aXZlIHBvbGljeSBjb250YWluZXIiOwoKICAgICAgICBjb250YWluZXIgY29uZGl0
aW9uLXBhcmFtZXRlci1kZWZpbml0aW9ucyB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJM
aXN0IG9mIGNvbmRpdGlvbiBwYXJhbWV0ZXJzIjsKICAgICAgICAgICAgbGlzdCBjb25kaXRp
b24tcGFyYW1ldGVyLWRlZmluaXRpb24gewogICAgICAgICAgICAgICAga2V5ICJwYXJhbWV0
ZXItbmFtZSI7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAgICAg
ICAgICJEZWZpbmVzIHRoZSBjb25kaXRpb24gcGFyYW1ldGVyIHdpdGggaXRzCiAgICAgICAg
ICAgICAgICAgICAgIG1ldGFkYXRhLiI7CiAgICAgICAgICAgICAgICBsZWFmIHBhcmFtZXRl
ci1uYW1lIHsKICAgICAgICAgICAgICAgICAgICB0eXBlIHBhcmFtZXRlci1uYW1lOwogICAg
ICAgICAgICAgICAgICAgIG1hbmRhdG9yeSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGRl
c2NyaXB0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICJBIG5hbWUgZm9yIHRoZSBjb25k
aXRpb24gcGFyYW1ldGVyLiI7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
bGVhZiBwYXJhbWV0ZXItdmFsdWUtdHlwZSB7CiAgICAgICAgICAgICAgICAgICAgdHlwZSBl
bnVtZXJhdGlvbiB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gc3RyaW5nIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIkEgc3RyaW5nLXZhbHVlZCBwYXJhbWV0ZXIuIjsKICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGludCB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJBbiBpbnRlZ2VyLXZhbHVlZCBwYXJhbWV0ZXIuIjsKICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbnVtIHJhbmdl
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIkFuIGludGVnZXItcmFuZ2UgcGFyYW1ldGVyLiI7CiAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICAgICAgICAgIkEgdHlw
ZSBvZiB2YWx1ZSBmb3IgdGhlIGNvbmRpdGlvbiAKICAgICAgICAgICAgICAgICAgICAgICAg
IHBhcmFtZXRlci4iOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGNvbnRh
aW5lciBwYXJhbWV0ZXItbWF0Y2gtcGF0dGVybnMgewogICAgICAgICAgICAgICAgICAgIGRl
c2NyaXB0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICJEZWZpbmVzIHRoZSBtYXRjaCBw
YXR0ZXJucyBvZiB0aGUgY29uZGl0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICBwYXJh
bWV0ZXIuIjsKCiAgICAgICAgICAgICAgICAgICAgbGVhZi1saXN0IHBhcmFtZXRlci1tYXRj
aC1wYXR0ZXJuIHsKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSBtYXRjaC1wYXR0ZXJu
LW9wZXJhdG9yOwogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJwYXR0ZXJuIG1hdGNoaW5nIG9wZXJhdG9yIjsKICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAg
ICAgICB9CiAgICAgICAgCgogICAgICAgIGNvbnRhaW5lciBjb25zdHJhaW50LXBhcmFtZXRl
ci1kZWZpbml0aW9ucyB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJQYXJhbWV0ZXIgZGVm
aW5pdGlvbnMgZnJvIGNvbnN0cmFpbnRzIjsKICAgICAgICAgICAgbGlzdCBjb25zdHJhaW50
LXBhcmFtZXRlci1kZWZpbml0aW9uIHsKICAgICAgICAgICAgICAgIGtleSAicGFyYW1ldGVy
LW5hbWUiOwogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICAg
ICAiRGVmaW5lcyB0aGUgY29uc3RyYWludCBwYXJhbWV0ZXIgd2l0aCBpdHMgCiAgICAgICAg
ICAgICAgICAgICAgIG1ldGFkYXRhLiI7CgogICAgICAgICAgICAgICAgbGVhZiBwYXJhbWV0
ZXItbmFtZSB7CiAgICAgICAgICAgICAgICAgICAgdHlwZSBwYXJhbWV0ZXItbmFtZTsKICAg
ICAgICAgICAgICAgICAgICBtYW5kYXRvcnkgdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBk
ZXNjcmlwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAiQSBuYW1lIGZvciB0aGUgY29u
c3RyYWludCBwYXJhbWV0ZXIuIjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICBsZWFmIHBhcmFtZXRlci12YWx1ZS10eXBlIHsKICAgICAgICAgICAgICAgICAgICB0eXBl
IGVudW1lcmF0aW9uIHsKICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBzdHJpbmcgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiQSBzdHJpbmctdmFsdWVkIHBhcmFtZXRlci4iOwogICAgICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gaW50IHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIkFuIGludGVnZXItdmFsdWVkIHBhcmFtZXRlci4iOwogICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gcmFu
Z2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiQW4gaW50ZWdlci1yYW5nZSBwYXJhbWV0ZXIuIjsK
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAiQSB0
eXBlIG9mIHZhbHVlIGZvciB0aGUgY29uc3RyYWludCAKICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhcmFtZXRlci4iOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGNv
bnRhaW5lciBwYXJhbWV0ZXItbWF0Y2gtcGF0dGVybnMgewogICAgICAgICAgICAgICAgICAg
IGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICJEZWZpbmVzIHRoZSBtYXRj
aCBwYXR0ZXJucyBvZiB0aGUgY29uc3RyYWludAogICAgICAgICAgICAgICAgICAgICAgICAg
cGFyYW1ldGVyLiI7CgogICAgICAgICAgICAgICAgICAgIGxlYWYtbGlzdCBwYXJhbWV0ZXIt
bWF0Y2gtcGF0dGVybiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgbWF0Y2gtcGF0
dGVybi1vcGVyYXRvcjsKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJwYXR0ZXJuIG1hdGNoaW5nIG9wZXJhdG9yIjsK
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K
ICAgICAgICB9CiAgICAgICAgCiAgICAgICAgY29udGFpbmVyIGFjdGlvbi1kZWZpbml0aW9u
cyB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJBY3Rpb24gZGVmaW5pdGlvbnMiOwogICAg
ICAgICAgICBsaXN0IGFjdGlvbi1kZWZpbml0aW9uIHsKICAgICAgICAgICAgICAgIGtleSAi
YWN0aW9uLW5hbWUiOwogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAg
ICAgICAgICAiRGVmaW5lcyB0aGUgYWN0aW9ucyB3aGljaCB3aWxsIGJlIHN1cHBvcnRlZC4i
OwoKICAgICAgICAgICAgICAgIGxlYWYgYWN0aW9uLW5hbWUgewogICAgICAgICAgICAgICAg
ICAgIHR5cGUgYWN0aW9uLW5hbWU7CiAgICAgICAgICAgICAgICAgICAgbWFuZGF0b3J5IHRy
dWU7CiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICAg
ICAgICAgIkEgbmFtZSBmb3IgdGhlIGFjdGlvbiBkZWZpbml0aW9uLiI7CiAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgbGVhZiBwYXJhbWV0ZXItdmFsdWUtdHlwZSB7CiAg
ICAgICAgICAgICAgICAgICAgdHlwZSBlbnVtZXJhdGlvbiB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIGVudW0gc3RyaW5nIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2Ny
aXB0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkEgc3RyaW5nLXZhbHVl
ZCBwYXJhbWV0ZXIuIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICAgICBlbnVtIGludCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNj
cmlwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBbiBpbnRlZ2VyLXZh
bHVlZCBwYXJhbWV0ZXIuIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICAgICBlbnVtIHJhbmdlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFuIGludGVn
ZXItcmFuZ2UgcGFyYW1ldGVyLiI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdCBzdHJpbmc7CiAg
ICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICAgICAgICAg
IlRoZSB0eXBlIG9mIHRoZSBhY3Rpb24gcGFyYW1ldGVyLiI7CiAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGdyb3VwaW5nIGNvbmRpdGlvbi1p
bnN0YW5jZSB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgICAiU3Bl
Y2lmaWMgYSBpbnN0YW5jZSBvZiBjb25kaXRpb24gd2hvc2UgbWV0YWRhdGEgaGFzIAogICAg
ICAgICAgICAgICAgIGJlZW4gZmlsbGVkIGluLiI7CgogICAgICAgICAgICBsaXN0IGNvbmRp
dGlvbi1zZWdtZW50IHsKICAgICAgICAgICAgICAgIGtleSAiY29uZGl0aW9uLXNlZ21lbnQt
aWQiOwogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICAgICAi
VGhlIHNlZ21lbnQgZW50aXRpZXMgd2lsbCBiZSBjb21wb3NlZCBpbnRvIGEgCiAgICAgICAg
ICAgICAgICAgICAgIHdob2xlIGNvbmRpdGlvbiBlbnRpdHkuIEVhY2ggc2VnbWVudCB3aWxs
IGJlCiAgICAgICAgICAgICAgICAgICAgIGEgc3ViIGV4cHJlc3Npb24gb2YgdGhlIGNvbmRp
dGlvbi4iOwoKICAgICAgICAgICAgICAgIGxlYWYgY29uZGl0aW9uLXNlZ21lbnQtaWQgewog
ICAgICAgICAgICAgICAgICAgIHR5cGUgY29uZGl0aW9uLXNlZ21lbnQtaWQ7CiAgICAgICAg
ICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgICAgICAgICAgICAgZGVzY3Jp
cHRpb24KICAgICAgICAgICAgICAgICAgICAgICAgIkEgdW5pcXVlIElEIGZvciBhIGNvbmRp
dGlvbiBzZWdtZW50LiI7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgbGVh
ZiBjb25kaXRpb24tcGFyYW1ldGVyLW5hbWUgewogICAgICAgICAgICAgICAgICAgIHR5cGUg
Y29uZGl0aW9uLXBhcmFtZXRlci1uYW1lOwogICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0
aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICJBIG5hbWUgZm9yIGEgY29uZGl0aW9uIHBh
cmFtZXRlci4iOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGxlYWYgY29u
ZGl0aW9uLXBhcmFtZXRlci1tYXRjaC1wYXR0ZXJuIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgdHlwZSBtYXRjaC1wYXR0ZXJuLW9wZXJhdG9yOwogICAgICAgICAgICAgICAgICAgICAg
ICBkZXNjcmlwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIG9wZXJhdG9y
IGZvciB0aGUgY29uZGl0aW9uIHBhcmFtZXRlciAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFuZCBpdCdzIHRhcmdldCB2YWx1ZS4iOwogICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgIGNvbnRhaW5lciBjb25kaXRpb24tcGFyYW1ldGVyLXRhcmdldC12YWx1ZSB7
CiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICAgICAg
ICAgIlRoZSB0YXJnZXQgdmFsdWUgb2YgY29uZGl0aW9uIHBhcmFtZXRlci4iOwoKICAgICAg
ICAgICAgICAgICAgICBsZWFmIHN0cmluZy12YWx1ZSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIHR5cGUgc3RyaW5nOwogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAi
VGhlIHZhbHVlIGlzIG9mIHR5cGUgJ3N0cmluZyciOwogICAgICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICAgICAgbGVhZiBpbnQtdmFsdWUgewogICAgICAgICAgICAgICAg
ICAgICAgICB0eXBlIGludDY0OwogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlv
biAiVGhlIHZhbHVlIGlzIG9mIHR5cGUgJ2ludDY0JyI7CiAgICAgICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgICAgICBjb250YWluZXIgcmFuZ2UtdmFsdWUgewogICAgICAg
ICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIlRoZSBtaW4vbWF4IG9mIGEgcmFuZ2UuIjsKICAgICAgICAgICAgICAgICAgICAgICAg
bGVhZiBtaW4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSBpbnQ2NDsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1hbmRhdG9yeSB0cnVlOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIm1pbmltdW0gdmFsdWUgb2YgdGhlIHJhbmdl
IjsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg
bGVhZiBtYXggewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSBpbnQ2NDsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1hbmRhdG9yeSB0cnVlOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIm1heGltdW0gdmFsdWUgb2YgdGhlIHJhbmdl
IjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBsZWFmIHByZWN1cnNvci1yZWxhdGlv
bi1vcGVyYXRvciB7CiAgICAgICAgICAgICAgICAgICAgdHlwZSBlbnVtZXJhdGlvbiB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIGVudW0gbm9uZSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRlc2NyaXB0aW9uIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibm8g
cHJlY3Vyc29yLXJlbGF0aW9uLW9wZXJhdG9yIjsKICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGFuZCB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRlc2NyaXB0aW9uIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
J2FuZCcgcHJlY3Vyc29yLXJlbGF0aW9uLW9wZXJhdG9yIjsKICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbnVtIG9yIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICInb3InIHByZWN1cnNvci1yZWxhdGlvbi1vcGVyYXRvciI7CiAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBub3QgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIidub3QnIHByZWN1cnNvci1yZWxhdGlvbi1vcGVyYXRvciI7CiAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgZGVzY3JpcHRpb24gInRoZSBwcmUtY3Vyc29yIHJlbGF0aW9uIG9wZXJhdGlvbi4i
OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGxlYWYgb3JkZXIgewogICAg
ICAgICAgICAgICAgICAgIHR5cGUgdWludDMyOwogICAgICAgICAgICAgICAgICAgIGRlc2Ny
aXB0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgb3JkZXIgb2YgdGhlIHNlZ21l
bnQgaW4gdGhlIHdob2xlIAogICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uIGVu
dGl0eS4iOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAg
ICAgIAoKICAgICAgICBncm91cGluZyBjb25zdHJhaW50LWluc3RhbmNlIHsKICAgICAgICAg
ICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICJTcGVjaWZpYyBhIGluc3RhbmNlIG9m
IGNvbnN0cmFpbnQgd2hvc2UgbWV0YWRhdGEKICAgICAgICAgICAgICAgICBoYXMgYmVlbiBm
aWxsZWQgaW4uIjsKCiAgICAgICAgICAgIGxpc3QgY29uc3RyYWludC1zZWdtZW50IHsKICAg
ICAgICAgICAgICAgIGtleSAiY29uc3RyYWludC1zZWdtZW50LWlkIjsKICAgICAgICAgICAg
ICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgICAgICAgIlRoZSBzZWdtZW50IGVudGl0
aWVzIHdpbGwgYmUgY29tcG9zZWQgaW50byBhIAogICAgICAgICAgICAgICAgICAgICB3aG9s
ZSBjb25zdHJhaW50IGVudGl0eS4gRWFjaCBzZWdtZW50IHdpbGwgYmUKICAgICAgICAgICAg
ICAgICAgICAgYSBzdWIgZXhwcmVzc2lvbiBvZiB0aGUgY29uc3RyYWludC4iOwoKICAgICAg
ICAgICAgICAgIGxlYWYgY29uc3RyYWludC1zZWdtZW50LWlkIHsKICAgICAgICAgICAgICAg
ICAgICB0eXBlIGNvbnN0cmFpbnQtc2VnbWVudC1pZDsKICAgICAgICAgICAgICAgICAgICBt
YW5kYXRvcnkgdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbgogICAgICAg
ICAgICAgICAgICAgICAgICAiQSB1bmlxdWUgSUQgZm9yIGEgY29uc3RyYWludCBzZWdtZW50
LiI7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgbGVhZiBjb25zdHJhaW50
LXBhcmFtZXRlci1uYW1lIHsKICAgICAgICAgICAgICAgICAgICB0eXBlIGNvbnN0cmFpbnQt
cGFyYW1ldGVyLW5hbWU7CiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAg
ICAgICAgICAgICAgICAgICAgIkEgbmFtZSBmb3IgYSBjb25zdHJhaW50IHBhcmFtZXRlci4i
OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGxlYWYgY29uc3RyYWludC1w
YXJhbWV0ZXItbWF0Y2gtcGF0dGVybiB7CiAgICAgICAgICAgICAgICAgICAgdHlwZSBtYXRj
aC1wYXR0ZXJuLW9wZXJhdG9yOwogICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAg
ICAgICAgICAgICAgICAgICAgICAgICJUaGUgb3BlcmF0b3IgZm9yIHRoZSBjb25zdHJhaW50
IHBhcmFtZXRlciAKICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBpdCdzIHRhcmdldCB2
YWx1ZS4iOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGNvbnRhaW5lciBj
b25zdHJhaW50LXBhcmFtZXRlci10YXJnZXQtdmFsdWUgewogICAgICAgICAgICAgICAgICAg
IGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgdGFyZ2V0IHZhbHVl
IG9mIGNvbnN0cmFpbnQgcGFyYW1ldGVyLiI7CgogICAgICAgICAgICAgICAgICAgIGxlYWYg
c3RyaW5nLXZhbHVlIHsKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSBzdHJpbmc7CiAg
ICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJ0aGUgc3RyaW5nIHZhbHVlLiI7
CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBsZWFmIGludC12
YWx1ZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgaW50NjQ7CiAgICAgICAgICAg
ICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJ0aGUgaW50NjQgdmFsdWUuIjsKICAgICAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lciByYW5nZS12YWx1
ZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJhIHJhbmdlIG9mIHZh
bHVlcy4iOwogICAgICAgICAgICAgICAgICAgICAgICBsZWFmIG1pbiB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHR5cGUgaW50NjQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1hbmRhdG9yeSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlv
biAidGhlIG1pbiB2YWx1ZSBpbiB0aGUgcmFuZ2UuIjsKICAgICAgICAgICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgbGVhZiBtYXggewogICAgICAgICAgICAg
ICAgICAgICAgICAgICB0eXBlIGludDY0OwogICAgICAgICAgICAgICAgICAgICAgICAgICBt
YW5kYXRvcnkgdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24g
InRoZSBtYXggdmFsdWUgaW4gdGhlIHJhbmdlLiI7CiAgICAgICAgICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgIGxlYWYgcHJlY3Vyc29yLXJlbGF0aW9uLW9wZXJhdG9yIHsKICAgICAgICAgICAg
ICAgICAgICB0eXBlIGVudW1lcmF0aW9uIHsKICAgICAgICAgICAgICAgICAgICAgICAgZW51
bSBub25lIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIm5vIHJl
bGF0aW9uYWwgb3BlcmF0aW9uLiI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICAgICAgZW51bSBhbmQgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICBkZXNjcmlwdGlvbiAiJ2FuZCcgcmVsYXRpb25hbCBvcGVyYXRpb24uIjsKICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbnVtIG9yIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIidvcicgcmVsYXRpb25hbCBv
cGVyYXRpb24uIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICAgICBlbnVtIG5vdCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0
aW9uICInbm90JyByZWxhdGlvbmFsIG9wZXJhdGlvbi4iOwogICAgICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGRlc2Ny
aXB0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgbG9naWNhbCBvcGVyYXRvciBi
ZXR3ZWVuIGN1cnJlbnQgc2VnbWVudAogICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHRo
ZSBuZXh0IHNlZ21lbnQuIjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBs
ZWFmIG9yZGVyIHsKICAgICAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAg
ICAgICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAiVGhlIG9y
ZGVyIG9mIHRoZSBzZWdtZW50IGluIHRoZSB3aG9sZSAKICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0cmFpbnQgZW50aXR5LiI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
IH0KICAgICAgICB9CgoKICAgICAgICBncm91cGluZyBhY3Rpb24taW5zdGFuY2UgewogICAg
ICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAgICAgIlNwZWNpZmljIGEgYWN0aW9u
IGluc3RhbmNlIHdob3NlIG1ldGFkYXRhIGhhcwogICAgICAgICAgICAgICAgIGJlZW4gZmls
bGVkIGluLiI7CgogICAgICAgICAgICBsZWFmIGFjdGlvbi1uYW1lIHsKICAgICAgICAgICAg
ICAgIHR5cGUgYWN0aW9uLW5hbWU7CiAgICAgICAgICAgICAgICBtYW5kYXRvcnkgdHJ1ZTsK
ICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgICAgICAgIkEgbmFt
ZSBmb3IgYSBhY3Rpb24gaW5zdGFuY2UuIjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAg
Y29udGFpbmVyIHBhcmFtZXRlci12YWx1ZXMgewogICAgICAgICAgICAgICAgZGVzY3JpcHRp
b24KICAgICAgICAgICAgICAgICAgICAiVGhlIHBhcmFtZXRlciB2YWx1ZSBsaXN0IG9mIGFu
IGFjdGlvbi4iOwoKICAgICAgICAgICAgICAgIGxpc3Qgc3RyaW5nLXZhbHVlIHsKICAgICAg
ICAgICAgICAgICAgICBrZXkgInZhbHVlIG9yZGVyIjsKICAgICAgICAgICAgICAgICAgICBk
ZXNjcmlwdGlvbiAibGlzdCBvZiBzdHJpbmcgdmFsdWVzLiI7CiAgICAgICAgICAgICAgICAg
ICAgbGVhZiB2YWx1ZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgc3RyaW5nOwog
ICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhlIHN0cmluZyB2YWx1ZS4i
OwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgbGVhZiBvcmRl
ciB7CiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgdWludDMyOwogICAgICAgICAgICAg
ICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhlIG9yZGVyIG9mIHRoZSB2YWx1ZSBpbiB0aGUK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QuIjsKICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgbGlzdCBp
bnQtdmFsdWUgewogICAgICAgICAgICAgICAgICAgIGtleSAidmFsdWUgb3JkZXIiOwogICAg
ICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJsaXN0IG9mIGludGVnZXIgdmFsdWVzLiI7
CiAgICAgICAgICAgICAgICAgICAgbGVhZiB2YWx1ZSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIHR5cGUgaW50NjQ7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJU
aGUgaW50NjQgdmFsdWUuIjsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg
ICAgICAgIGxlYWYgb3JkZXIgewogICAgICAgICAgICAgICAgICAgICAgICB0eXBlIHVpbnQz
MjsKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBvcmRlciBvZiB0
aGUgdmFsdWUgaW4gdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
aXN0LiI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgIGNvbnRhaW5lciByYW5nZS12YWx1ZSB7CiAgICAgICAgICAgICAgICAgICAg
ZGVzY3JpcHRpb24gImEgdmFsdWUgcmFuZ2UuIjsKICAgICAgICAgICAgICAgICAgICBsZWFm
IG1pbiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgaW50NjQ7CiAgICAgICAgICAg
ICAgICAgICAgICAgIG1hbmRhdG9yeSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBk
ZXNjcmlwdGlvbiAiVGhlIG1pbiB2YWx1ZSBpbiB0aGUgcmFuZ2UuIjsKICAgICAgICAgICAg
ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGxlYWYgbWF4IHsKICAgICAgICAgICAg
ICAgICAgICAgICAgdHlwZSBpbnQ2NDsKICAgICAgICAgICAgICAgICAgICAgICAgbWFuZGF0
b3J5IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgbWF4
IHZhbHVlIGluIHRoZSByYW5nZS4iOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgZ3JvdXBpbmcgb3Bl
cmF0aW9uIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkRlZmluZXMgYW4gb3BlcmF0aW9u
LiI7CiAgICAgICAgICAgIGNvbnRhaW5lciBjb25kaXRpb24geyAKICAgICAgICAgICAgICAg
IHVzZXMgY29uZGl0aW9uLWluc3RhbmNlOwogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24g
IkRlZmluZXMgYSBjb25kaXRpb24iOwogICAgICAgICAgICB9CiAgICAgICAgICAgCiAgICAg
ICAgICAgIGxpc3QgYWN0aW9uIHsKICAgICAgICAgICAgICAgIGtleSAiYWN0aW9uLW5hbWUi
OwogICAgICAgICAgICAgICAgdXNlcyBhY3Rpb24taW5zdGFuY2U7CiAgICAgICAgICAgICAg
ICBtaW4tZWxlbWVudHMgMTsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAg
ICAgICAgICAgICAgIlRoZSBhY3Rpb24gbGlzdCBmb3IgdGhlIG9wZXJhdGlvbiBpbnN0YW5j
ZS4iOwogICAgICAgICAgICAgICAgbGVhZiBvcmRlciB7CiAgICAgICAgICAgICAgICAgICAg
dHlwZSB1aW50MzI7CiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAg
ICAgICAgICAgICAgICAgIlRoZSBvcmRlciBvZiBhbiBhY3Rpb24gaW5zdGFuY2UgaW4gCiAg
ICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRpb24gc2VxdWVuY2UuIjsKICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgY29udGFp
bmVyIGNvbnN0cmFpbnR7CiAgICAgICAgICAgICAgICB1c2VzIGNvbnN0cmFpbnQtaW5zdGFu
Y2U7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhlIGNvbnN0cmFpbnQgZGVmaW5p
dGlvbi4iOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBncm91cGluZyByZWxh
dGlvbmFsLWV4cHJlc3Npb24tdmFsdWUgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhl
IHJlbGF0aW9uYWwgZXhwcmVzc2lvbi4iOwogICAgICAgICAgICBjaG9pY2UgdmFsdWUtdHlw
ZSB7IAogICAgICAgICAgICAKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICAKICAgICAg
ICAgICAgICAgICAgICAiVGhlIHZhbHVlIG9mIHRoZSByZWxhdGlvbiBleHByZXNzaW9uIGNh
biBiZQogICAgICAgICAgICAgICAgICAgICBkaWZmZXJlbnQgdHlwZS4iOyAKICAgICAgICAg
ICAgICAgIGNhc2Ugc3RyaW5newogICAgICAgICAgICAgICAgICAgIGxlYWYgc2luZ2xlLXN0
cmluZy12YWx1ZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgc3RyaW5nOwogICAg
ICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhlIHN0cmluZyB2YWx1ZSBvZiB0
aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlLiI7CiAg
ICAgICAgICAgICAgICAgICAgfSAKICAgICAgICAgICAgICAgIH0gCiAgICAgICAgICAgICAg
ICBjYXNlIHN0cmluZy1saXN0IHsgCiAgICAgICAgICAgICAgICAgICAgbGlzdCBzdHJpbmct
dmFsdWUgewogICAgICAgICAgICAgICAgICAgICAgICBrZXkgInZhbHVlIG9yZGVyIjsKICAg
ICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxpc3Qgb2Ygc3RyaW5nIHZhbHVl
cy4iOwogICAgICAgICAgICAgICAgICAgICAgICBsZWFmIHZhbHVlIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHR5cGUgc3RyaW5nOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGVzY3JpcHRpb24gIlRoZSBzdHJpbmcgdmFsdWUgb2YgdGhlCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGUuIjsKICAgICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBsZWFmIG9yZGVyIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHR5cGUgdWludDMyOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGVzY3JpcHRpb24gInRoZSBvcmRlciBpbiB0aGUgbGlzdC4iOwogICAgICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgY2FzZSBpbnQgewogICAgICAgICAgICAgICAgICAgIGxl
YWYgc2luZ2xlLWludC12YWx1ZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgaW50
NjQ7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgdmFsdWUgb2Yg
dGhlIGludDY0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJs
ZS4iOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgIGNhc2UgaW50LWxpc3QgewogICAgICAgICAgICAgICAgICAgIGxpc3QgaW50LXZh
bHVlIHsKICAgICAgICAgICAgICAgICAgICAgICAga2V5ICJ2YWx1ZSBvcmRlciI7CiAgICAg
ICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJMaXN0IG9mIGludGVnZXIgdmFsdWVz
LiI7CiAgICAgICAgICAgICAgICAgICAgICAgIGxlYWYgdmFsdWUgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdHlwZSBpbnQ2NDsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRlc2NyaXB0aW9uICJ0aGUgdmFsdWUgb2YgdGhlIGludDY0CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGUuIjsKICAgICAgICAgICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgbGVhZiBvcmRlciB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRlc2NyaXB0aW9uICJ0aGUgb3JkZXIgaW4gdGhlIGxpc3QuIjsKICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgIGNhc2UgdmFyaWFibGUgewogICAgICAgICAgICAgICAgICAg
IGxlYWYgdmFyaWFibGUtbmFtZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgc3Ry
aW5nOwogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAidGhlIG5hbWUgb2Yg
dGhlIHZhcmlhYmxlLiI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBjYXNlIGNhbGN1bGF0aW9uLWV4
cHJlc3Npb24gewogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgbGVhZiBj
YWxjdWxhdGlvbi1vcGVyYXRvcnsKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSBlbnVt
ZXJhdGlvbiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGFkZCB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICInYWRkJyBvcGVyYXRv
ciI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBlbnVtIG1pbnVzIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGVzY3JpcHRpb24gIidzdWJ0cmFjdCcgb3BlcmF0b3IiOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBtdWx0aXBseSB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICInbXVsdGlw
bHknIG9wZXJhdG9yIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVudW0gZGl2aWRlIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGVzY3JpcHRpb24gIidkaXZpZGUnIG9wZXJhdG9yIjsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0g
YW55IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIidh
bnknIG9wZXJhdG9yIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVudW0gYWxsIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGVzY3JpcHRpb24gIidhbGwnIG9wZXJhdG9yIjsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gbWF4IHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIidtYXgnIG9w
ZXJhdG9yIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGVudW0gbWluIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGVzY3JpcHRpb24gIidtaW4nIG9wZXJhdG9yIjsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gYXZlcmFnZSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICInYXZnJyBvcGVy
YXRvciI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBlbnVtIHN1bSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRlc2NyaXB0aW9uICInc3VtJyBvcGVyYXRvciI7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGNvdW50IHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIidjb3VudCcgb3BlcmF0
b3IiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZW51bSBhbmQgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
ZXNjcmlwdGlvbiAiJ2FuZCcgb3BlcmF0b3IiOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBvciB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICInb3InIG9wZXJhdG9yIjsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVudW0gbm90IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRp
b24gIidub3QnIG9wZXJhdG9yIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gaW50ZXJzZWN0aW9uIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIidpbnRlcnNldGlvbicKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yIjsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVudW0gdW5pb24gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNj
cmlwdGlvbiAiJ3VuaW9uJyBvcGVyYXRvciI7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGNvbXBsZW1lbnQgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiJ2NvbXBsZW1lbnQn
IG9wZXJhdG9yIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBjYWxjdWxhdGlvbiB0byBiZSBwZXJmb3Jt
ZWQiOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgbGVhZiBj
YWxjdWxhdGlvbi1sZWFmLXZhbHVlIHsKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSBz
dHJpbmc7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIlRoZSBjb250ZW50IG9mIHRoZSBsZWFmIHZhbHVlIGZvciBh
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bGF0aW9uIGV4cHJlc3Npb24g
aXMgYW4gaW5zdGFuY2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZiByZWxhdGlv
bmFsLWV4cHJlc3Npb24tdmFsdWUuIjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgbGVhZiBjYWxjdWxhdGlvbi1yaWdo
dC12YWx1ZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgc3RyaW5nOwogICAgICAg
ICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJUaGUgY29udGVudCBvZiB0aGUgcmlnaHQgdmFsdWUgZm9yIGEgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2FsY3VsYXRpb24gZXhwcmVzc2lvbiBpcyBhbiBpbnN0YW5j
ZSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZiByZWxhdGlvbmFsLWV4cHJlc3Np
b24tdmFsdWUuIjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGdyb3VwaW5nIHJlc3VsdCB7CiAgICAg
ICAgICAgIGRlc2NyaXB0aW9uICJUaGUgcmVzdWx0LiI7CiAgICAgICAgICAgIGNvbnRhaW5l
ciBsZWZ0LXZhbHVlIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgJ2xlZnQn
IHZhbHVlIGZvciB0aGUgcmVsYXRpb25hbAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG9wZXJhdGlvbi4iOwogICAgICAgICAgICAgICAgdXNlcyByZWxhdGlvbmFsLWV4cHJlc3Np
b24tdmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIGNvbnRh
aW5lciByZWxhdGlvbmFsLW9wZXJhdG9yIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9u
IAogICAgICAgICAgICAgICAgICAgIlRoZSByZWxhdGlvbmFsIG9wZXJhdGlvbiB0byBiZSBw
ZXJmb3JtZWQiOwogICAgICAgICAgICAgICAgbGVhZiByZWxhdGlvbmFsLW9wZXJhdG9yIHsg
CiAgICAgICAgICAgICAgICAgICAgdHlwZSBlbnVtZXJhdGlvbiB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIGVudW0gZXEgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2Ny
aXB0aW9uICInZXF1YWwnIG9wZXJhdG9yLiI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBuZSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGVzY3JpcHRpb24gIidub3QgZXF1YWwnIG9wZXJhdG9yLiI7CiAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBndCB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIidncmVhdGVyIHRoYW4n
IG9wZXJhdG9yLiI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgICAgZW51bSBnZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3Jp
cHRpb24gImdyZWF0ZXIgdGhhbiBvciBlcXVhbCcKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgb3BlcmF0b3IuIjsKICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGx0IHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkZXNjcmlwdGlvbiAiJ2xlc3MgdGhhbicgb3BlcmF0b3IuIjsKICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGxlIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiJ2xlc3MgdGhhbiBv
ciBlcXVhbCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9w
ZXJhdG9yLiI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgZW51bSBibCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRp
b24gIidiZWxvbmdzIHRvJyBvcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnaXMgYW4gZWxlbWVudCBvZicKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG9wZXJhdG9yLiI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBuYiB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGVzY3JpcHRpb24gIidkb2VzIG5vdCBiZWxvbmcgdG8nIG9yCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpcyBub3QgYW4gZWxlbWVudCBv
ZicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3Iu
IjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAidGhlIHJlbGF0aW9uYWwgb3BlcmF0aW9u
IHRvIGJlIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJmb3JtZWQuIjsK
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBjb250YWluZXIg
cmlnaHQtdmFsdWUgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSAncmlnaHQn
IHZhbHVlIGZvciB0aGUgcmVsYXRpb25hbAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG9wZXJhdGlvbi4iOwogICAgICAgICAgICAgICAgdXNlcyByZWxhdGlvbmFsLWV4cHJlc3Np
b24tdmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGNvbnRhaW5lciBk
ZWNsYXJhdGl2ZS1wb2xpY3kgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAKICAgICAgICAg
ICAgICAgICJBYXJhdGl2ZSBwb2xpY3kgZGVmaW5pdGlvbiI7CiAgICAgICAgCiAgICAgICAg
ICAgIGxlYWYgcG9saWN5LWlkIHsKICAgICAgICAgICAgICAgIHR5cGUgcG9saWN5LWlkOwog
ICAgICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgICAgICAgICBkZXNjcmlw
dGlvbgogICAgICAgICAgICAgICAgICAgICJBIHVuaXF1ZSBJRCBmb3IgYSBwb2xpY3kuIjsK
ICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgbGVhZiBwb2xpY3ktbmFt
ZSB7CiAgICAgICAgICAgICAgICB0eXBlIHBvbGljeS1uYW1lOwogICAgICAgICAgICAgICAg
bWFuZGF0b3J5IHRydWU7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAg
ICAgICAgICAgICJBIHVzZXItdmlzaWJsZSBhbmQgdW5pcXVlIG5hbWUgZm9yIGEgcG9saWN5
LiI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIGxlYWYgcHJpb3Jp
dHkgewogICAgICAgICAgICAgICAgdHlwZSB1aW50ODsKICAgICAgICAgICAgICAgIGRlZmF1
bHQgMDsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgICAgICAg
IkRlZmluZXMgdGhlIHByaW9yaXR5IG9mIGEgb3BlcmF0aW9uIGluc3RhbmNlLiI7CiAgICAg
ICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIGNvbnRhaW5lciBwb2xpY3ktdmFs
aWRpdHktcGVyaW9kIHsgCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAKICAgICAgICAg
ICAgICAgICAgICAiVGhlIHZhbGlkIHRpbWUgb2YgdGhlIHBvbGljeS4gRS5nLiwgdGhlIHBv
bGljeSAKICAgICAgICAgICAgICAgICAgICAgd2lsbCBiZSB2YWxpZCA5YW0tOWFtIGRhaWx5
IjsgCiAgICAgICAgICAgICAgICBsZWFmIHN0YXJ0IHsgCiAgICAgICAgICAgICAgICAgICAg
dHlwZSB5YW5nOmRhdGUtYW5kLXRpbWU7IAogICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0
aW9uICJkYXRlIGFuZCB0aW1lIHRvIHN0YXJ0IHRoZSBwb2xpY3kiOyAKICAgICAgICAgICAg
ICAgIH0gIAogICAgICAgICAgICAgICAgbGVhZiBlbmQgeyAKICAgICAgICAgICAgICAgICAg
ICB0eXBlIHlhbmc6ZGF0ZS1hbmQtdGltZTsgCiAgICAgICAgICAgICAgICAgICAgZGVzY3Jp
cHRpb24gImRhdGUgYW5kIHRpbWUgdG8gZW5kIHRoZSBwb2xpY3kiOyAKICAgICAgICAgICAg
ICAgIH0gCiAgICAgICAgICAgICAgICBsZWFmIGR1cmF0aW9uIHsgCiAgICAgICAgICAgICAg
ICAgICAgdHlwZSB1aW50MzI7IAogICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJk
dXJhdGlvbiBvZiB0aGUgcG9saWN5IjsgCiAgICAgICAgICAgICAgICB9IAogICAgICAgICAg
ICAgICAgbGVhZiBwZXJpb2RpY2l0eSB7IAogICAgICAgICAgICAgICAgICAgIHR5cGUgZW51
bWVyYXRpb24geyAKICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBkYWlseSB7ICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIDA7IAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGVzY3JpcHRpb24gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IlRoZSBwb2xpY3kgaXMgcmVwZWF0ZWQgZGFpbHkiOyAKICAgICAgICAgICAgICAgICAgICAg
ICAgfSAKICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBtb250aGx5IHsgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIDE7IAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZGVzY3JpcHRpb24gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRo
ZSBwb2xpY3kgaXMgcmVwZWF0ZWQgbW9udGhseSI7IAogICAgICAgICAgICAgICAgICAgICAg
ICB9IAogICAgICAgICAgICAgICAgICAgIH0gCiAgICAgICAgICAgICAgICAgICAgZGVzY3Jp
cHRpb24gIkhvdyB0aGUgcG9saWN5IGlzIHJlcGVhdGVkIjsgCiAgICAgICAgICAgICAgICB9
IAogICAgICAgICAgICB9IAoKICAgICAgICAgICAgbGVhZiBwb2xpY3ktcnVsZS1kZXBsb3kt
c3RhdHVzIHsKICAgICAgICAgICAgICAgIHR5cGUgZW51bWVyYXRpb24gewogICAgICAgICAg
ICAgICAgICAgIGVudW0gdW5kZWZpbmVkIHsKICAgICAgICAgICAgICAgICAgICAgICAgZGVz
Y3JpcHRpb24gInVuZGVmaW5lZCI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgIGVudW0gZGVwbG95ZWRfYW5kX2VuYWJsZWQgewogICAgICAgICAgICAgICAg
ICAgICAgICBkZXNjcmlwdGlvbiAiZGVwbG95ZWQgYW5kIGVuYWJsZWQiOwogICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbnVtIGRlcGxveWVkX2FuZF90ZXN0
aW5nIHsKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gImRlcGxveWVkIGFu
ZCBpbiB0ZXN0IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
ZW51bSBkZXBsb3llZF9hbmRfZGlzYWJsZWQgewogICAgICAgICAgICAgICAgICAgICAgICBk
ZXNjcmlwdGlvbiAiZGVwbG95ZWQgYnV0IG5vdCBlbmFibGVkIjsKICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgZW51bSByZWFkeV90b19iZV9kZXBsb3llZCB7
CiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJyZWFkeSB0byBiZSBkZXBs
b3llZCI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVudW0g
bm90X2RlcGxveWVkIHsKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIm5v
dCBkZXBsb3llZCI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICAgICAiVGhlIGRl
cGxveSBzdGF0dXMgb2YgdGhlIHBvbGljeS4iOwogICAgICAgICAgICB9CgogICAgICAgICAg
ICBsZWFmIHBvbGljeS1ydWxlLWV4ZWMtc3RhdHVzIHsgCiAgICAgICAgICAgICAgICB0eXBl
IGVudW1lcmF0aW9uIHsgCiAgICAgICAgICAgICAgICAgICAgZW51bSB1bmRlZmluZWQgeyAK
ICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAidW5kZWZpbmVkIjsgICAgICAg
IAogICAgICAgICAgICAgICAgICAgIH0gCiAgICAgICAgICAgICAgICAgICAgZW51bSBleGVj
dXRlZF9hbmRfc3VjY2VlZGVkeyAKICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlv
biAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgImV4ZWN1dGVkIGFuZCBTVUNFRURFRCAo
b3BlcmF0aW9uYWwgbW9kZSkiOwogICAgICAgICAgICAgICAgICAgIH0gCiAgICAgICAgICAg
ICAgICAgICAgZW51bSBleGVjdXRlZF9hbmRfZmFpbGVkeyAKICAgICAgICAgICAgICAgICAg
ICAgICBkZXNjcmlwdGlvbiAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgImV4ZWN1dGVk
IGFuZCBGQUlMRUQgKG9wZXJhdGlvbmFsIG1vZGUpIjsKICAgICAgICAgICAgICAgICAgICB9
IAogICAgICAgICAgICAgICAgICAgIGVudW0gZXhlY3V0aW5nIHsgCiAgICAgICAgICAgICAg
ICAgICAgICAgZGVzY3JpcHRpb24gIAogICAgICAgICAgICAgICAgICAgICAgICAgICJjdXJy
ZW50bHkgZXhlY3V0aW5nIChvcGVyYXRpb25hbCBtb2RlKSI7CiAgICAgICAgICAgICAgICAg
ICAgfSAKICAgICAgICAgICAgICAgICAgICBlbnVtIHRlc3RlZF9hbmRfc3VjY2VlZGVkIHsg
CiAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICJleGVjdXRlZCBhbmQgU1VDRUVERUQgKHRlc3QgbW9kZSkiOwogICAgICAg
ICAgICAgICAgICAgfSAKICAgICAgICAgICAgICAgICAgICBlbnVtIHRlc3RlZF9hbmRfZmFp
bGVkIHsgCiAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICJleGVjdXRlZCBhbmQgRkFJTEVEICh0ZXN0IG1vZGUpIjsKICAg
ICAgICAgICAgICAgICAgICB9IAogICAgICAgICAgICAgICAgICAgIGVudW0gdGVzdGluZyB7
CiAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICJjdXJyZW50bHkgZXhlY3V0aW5nICh0ZXN0IG1vZGUpIjsKICAgICAgICAg
ICAgICAgICAgICB9IAogICAgICAgICAgICAgICAgfSAKICAgICAgICAgICAgICAgIGRlc2Ny
aXB0aW9uIAogICAgICAgICAgICAgICAgICAgICJUaGUgZXhlY3V0aW5nIHN0YXR1cyBvZiB0
aGUgcG9saWN5LiI7CiAgICAgICAgICAgIH0gCgogICAgICAgICAgICBsZWFmIHRhcmdldC1v
YmplY3QgewogICAgICAgICAgICAgICAgdHlwZSBvYmplY3QtaWQ7CiAgICAgICAgICAgICAg
ICBtYW5kYXRvcnkgdHJ1ZTsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAg
ICAgICAgICAgICAgIlRoZSB0YXJnZXQgb2JqZWN0IHdoaWNoIHRoZSBvcGVyYXRpb24gaW5z
dGFuYwogICAgICAgICAgICAgICAgICAgICB3aWxsIGFwcGx5IHRvLiI7CiAgICAgICAgICAg
IH0KCiAgICAgICAgICAgIGNvbnRhaW5lciBkZWNsYXJhdGl2ZS1wb2xpY3ktcnVsZSB7CiAg
ICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiZGVjbGFyYXRpdmUgcG9saWN5IHJ1bGVzLiI7
CiAgICAgICAgICAgICAgICBjb250YWluZXIgb3BlcmF0aW9uIHsKICAgICAgICAgICAgICAg
ICAgICB1c2VzIG9wZXJhdGlvbjsKICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAK
ICAgICAgICAgICAgICAgICAgICAgICAgIkFuIG9wZXJhdGlvbiBiYXNlZCBkZWNsYXJhdGl2
ZSBwb2xpY3kgcnVsZSI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjb250
YWluZXIgcmVzdWx0IHsKICAgICAgICAgICAgICAgICAgICB1c2VzIHJlc3VsdDsKICAgICAg
ICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAKICAgICAgICAgICAgICAgICAgICAgICAgIkEg
cmVzdWx0IGJhc2VkIGRlY2xhcmF0aXZlIHBvbGljeSBydWxlIjsKICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIH0K
--------------000303070300090809050908--


From nobody Sun Jan 31 22:25:38 2016
Return-Path: <d.king@lancaster.ac.uk>
X-Original-To: supa@ietfa.amsl.com
Delivered-To: supa@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2ECD91ACE37 for <supa@ietfa.amsl.com>; Sun, 31 Jan 2016 22:25:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.421
X-Spam-Level: 
X-Spam-Status: No, score=-3.421 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_NEUTRAL=0.779] autolearn=ham
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 gSsc9diK1wXN for <supa@ietfa.amsl.com>; Sun, 31 Jan 2016 22:25:34 -0800 (PST)
Received: from ignavia.lancs.ac.uk (ignavia.lancs.ac.uk [148.88.25.16]) by ietfa.amsl.com (Postfix) with ESMTP id CF2AD1ACE38 for <supa@ietf.org>; Sun, 31 Jan 2016 22:25:33 -0800 (PST)
Received: from ex-1-ht0.lancs.ac.uk ([10.42.18.57] helo=EX-1-HT0.lancs.local) by ignavia.lancs.ac.uk with esmtp (Exim 4.72) (envelope-from <d.king@lancaster.ac.uk>) id 1aQ7vZ-0001mv-1V; Mon, 01 Feb 2016 06:25:33 +0000
Received: from EX-0-MB2.lancs.local ([fe80::9d98:936b:54d1:c531]) by EX-1-HT0.lancs.local ([fe80::d9e8:ad10:d075:a6b6%12]) with mapi id 14.03.0266.001; Mon, 1 Feb 2016 06:25:32 +0000
From: "King, Daniel" <d.king@lancaster.ac.uk>
To: "Bert Wijnen (IETF)" <bwietf@bwijnen.net>
Thread-Topic: [Supa] New Version Notification for draft-bw-supa-declarative-policy-data-model-00.txt
Thread-Index: AQHRWhaS4eh2WHlKg0anHuco9c71TZ8WuVmw
Date: Mon, 1 Feb 2016 06:25:31 +0000
Message-ID: <65174429B5AF4C45BD0798810EC48E0A8BCB1CC8@EX-0-MB2.lancs.local>
References: <5668BFD3.3050602@bwijnen.net> <56AA8E16.9080307@bwijnen.net>
In-Reply-To: <56AA8E16.9080307@bwijnen.net>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [94.102.63.17]
x-iss-local-domain: 1
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/supa/_yPZSURSrdeMX_H8l1lIyD21vvo>
Cc: "supa@ietf.org" <supa@ietf.org>
Subject: Re: [Supa] New Version Notification for draft-bw-supa-declarative-policy-data-model-00.txt
X-BeenThere: supa@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "This list is to discuss SUPA \(Simplified Use of Policy Abstractions\) related issues." <supa.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/supa>, <mailto:supa-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/supa/>
List-Post: <mailto:supa@ietf.org>
List-Help: <mailto:supa-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/supa>, <mailto:supa-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 01 Feb 2016 06:25:37 -0000

SGkgQmVydCAoYW5kIG90aGVyIGF1dGhvcnMgb2YgdGhlIERlY2xhcmF0aXZlIFBvbGljeSBNb2Rl
bCBwcm9wb3NhbCksDQoNClRoYW5rIHlvdSBmb3IgcG9zdGluZyB5b3VyIEktRCB0byB0aGUgbGlz
dC4gQXMgeW91IG9ic2VydmUgd2Ugd291bGQgbGlrZSB0byBhdm9pZCBkaXJlY3QgZGlzY3Vzc2lv
biBvbiBpbnRlbnQtYmFzZWQgcG9saWN5IG9uIHRoZSBTVVBBIGxpc3QuIFBhcmFkb3hpY2FsbHks
IHdlIGRvIGVuY291cmFnZSBkaXNjdXNzaW9uIG9uIHRoZSBsaXN0IGJ1dCBmb2N1c2VkIG9uIHRo
ZSBjdXJyZW50IENoYXJ0ZXIgZ29hbHM6DQoNCi0gTWFuYWdlbWVudCBGcmFtZXdvcmsNCi0gR2Vu
ZXJpYyBJbmZvIE1vZGVsDQoNCldlIHJlcXVlc3RlZCBvbmUgaG91ciBmb3IgU1VQQSBkaXNjdXNz
aW9uIGF0IElFVEYgOTUsIGFuZCBpdCB3b3VsZCBiZSBncmVhdCBpZiB3ZSBhcmUgaW4gYSBwb3Np
dGlvbiB0byBhZG9wdCBjYW5kaWRhdGVzIGZvciB0aGUgYWJvdmUgbWlsZXN0b25lcyBwcmlvciB0
bywgb3IgZHVyaW5nLCBJRVRGIDk1LiBUaGUgc29vbmVyIHdlIGNsZWFyIHRoZSBjdXJyZW50IHNl
dCBvZiBTVVBBIG1pbGVzdG9uZXMgdGhlIGZhc3RlciB3ZSBjYW4gZXhwYW5kIGRpc2N1c3Npb25z
IHRvIG90aGVyIChhZ3JlZWQpIHRvcGljcy4NCg0KVG8gaGVscCBmYWNpbGl0YXRlIHRoZSBEZWNs
YXJhdGl2ZSBQb2xpY3kgZGlhbG9ndWUsIG1heWJlIHlvdSB3b3VsZCBjb25zaWRlciBzZWVkaW5n
IHRoZSBkaXNjdXNzaW9uIG9udG8gdGhlIFNETiBSZXNlYXJjaCBHcm91cCBsaXN0PyBJdCB3b3Vs
ZCBhbHNvIGJlIGdvb2QgdG8gcHJlc2VudCB5b3VyIEktRCBhdCB0aGUgU0ROIFJHIG1lZXRpbmcg
YXQgSUVURiA5NSBhcyB3ZSB3ZXJlIHBsYW5uaW5nIHRvIGlzc3VlIGEgQ0ZQIHRoYXQgaW5jbHVk
ZWQgdGhlIEludGVudC1iYXNlZCBQb2xpY3kgdG9waWMuIA0KDQpCUiwgRGFuLiAgDQoNCi0tLS0t
T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBTdXBhIFttYWlsdG86c3VwYS1ib3VuY2VzQGll
dGYub3JnXSBPbiBCZWhhbGYgT2YgQmVydCBXaWpuZW4gKElFVEYpDQpTZW50OiAyOCBKYW51YXJ5
IDIwMTYgMjI6NTUNClRvOiBzdXBhQGlldGYub3JnDQpTdWJqZWN0OiBbU3VwYV0gTmV3IFZlcnNp
b24gTm90aWZpY2F0aW9uIGZvciBkcmFmdC1idy1zdXBhLWRlY2xhcmF0aXZlLXBvbGljeS1kYXRh
LW1vZGVsLTAwLnR4dA0KDQpIaSBTVVBBLWdlZWtzLA0KDQpXZSBoYXZlIHBvc3RlZCB0aGlzIGRy
YWZ0IHRvIHRoZSBJLUQgcmVwb3NpdG9yeSBhIHdoaWxlIGJhY2suDQoNClNpbmNlIHRoZSBTVVBB
IGNoYXJ0ZXIgc2F5czoNCg0KICAgIERlY2xhcmF0aXZlIHBvbGljaWVzIHRoYXQgc3BlY2lmeSB0
aGUgZ29hbHMgdG8gYWNoaWV2ZSBidXQgbm90IGhvdyB0byBhY2hpZXZlIHRob3NlIGdvYWxzDQog
ICAgKGFsc28gY2FsbGVkICJpbnRlbnQtICBiYXNlZCIgcG9saWNpZXMpIGFyZSBvdXQgb2Ygc2Nv
cGUgZm9yIHRoZSBpbml0aWFsIHBoYXNlIG9mIFNVUEEgYnV0DQogICAgbWF5IGJlIGNvbnNpZGVy
ZWQgaW4gZnV0dXJlIHBoYXNlcyBvZiBTVVBBLg0KDQpTbyB3ZSB3b25kZXJlZCBpZiB0aGlzIGRv
Y3VtZW50IGNhbi9zaG91bGQgYmUgZGlzY3Vzc2VkIGF0IGFsbCBvbiB0aGlzIG1haWxpbmcgbGlz
dCAod2UgYXV0aG9ycy9lZGl0b3JzIHdvdWxkIGFwcHJlY2lhdGUgdGhhdCkgb3IgaWYgd2Ugc2hv
dWxkIGRpc2N1c3MgaXQgZWxzZXdoZXJlPw0KDQpBRCBhbmQgb3IgV0cgY2hhaXJzLCBjYW4geW91
IHBsZWFzZSBtYWtlIGEgc3RhdGVtZW50IGFib3V0IHRoYXQuDQoNClRoYW5rcywNCkJlcnQNCg0K
LS0tLS0tLS0gRm9yd2FyZGVkIE1lc3NhZ2UgLS0tLS0tLS0NClN1YmplY3Q6IE5ldyBWZXJzaW9u
IE5vdGlmaWNhdGlvbiBmb3IgZHJhZnQtYnctc3VwYS1kZWNsYXJhdGl2ZS1wb2xpY3ktZGF0YS1t
b2RlbC0wMC50eHQNCkRhdGU6IFdlZCwgMDkgRGVjIDIwMTUgMTU6NDk6MTEgLTA4MDANCkZyb206
IGludGVybmV0LWRyYWZ0c0BpZXRmLm9yZw0KVG86IFlpbmJlbiBYaWEgPHhpYXlpbmJlbkBodWF3
ZWkuY29tPiwgVGlhbnJhbiBaaG91IDx6aG91dGlhbnJhbkBodWF3ZWkuY29tPiwgQmVydCBXaWpu
ZW4gPGJlcnRpZXRmQGJ3aWpuZW4ubmV0Pg0KDQoNCkEgbmV3IHZlcnNpb24gb2YgSS1ELCBkcmFm
dC1idy1zdXBhLWRlY2xhcmF0aXZlLXBvbGljeS1kYXRhLW1vZGVsLTAwLnR4dA0KaGFzIGJlZW4g
c3VjY2Vzc2Z1bGx5IHN1Ym1pdHRlZCBieSBCZXJ0IFdpam5lbiBhbmQgcG9zdGVkIHRvIHRoZSBJ
RVRGIHJlcG9zaXRvcnkuDQoNCk5hbWU6CQlkcmFmdC1idy1zdXBhLWRlY2xhcmF0aXZlLXBvbGlj
eS1kYXRhLW1vZGVsDQpSZXZpc2lvbjoJMDANClRpdGxlOgkJQSBZQU5HIERhdGEgTW9kZWwgZm9y
IERlY2xhcmF0aXZlIFBvbGljeQ0KRG9jdW1lbnQgZGF0ZToJMjAxNS0xMi0wOQ0KR3JvdXA6CQlJ
bmRpdmlkdWFsIFN1Ym1pc3Npb24NClBhZ2VzOgkJMzUNClVSTDogICAgICAgICAgICBodHRwczov
L3d3dy5pZXRmLm9yZy9pbnRlcm5ldC1kcmFmdHMvZHJhZnQtYnctc3VwYS1kZWNsYXJhdGl2ZS1w
b2xpY3ktZGF0YS1tb2RlbC0wMC50eHQNClN0YXR1czogICAgICAgICBodHRwczovL2RhdGF0cmFj
a2VyLmlldGYub3JnL2RvYy9kcmFmdC1idy1zdXBhLWRlY2xhcmF0aXZlLXBvbGljeS1kYXRhLW1v
ZGVsLw0KSHRtbGl6ZWQ6ICAgICAgIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1i
dy1zdXBhLWRlY2xhcmF0aXZlLXBvbGljeS1kYXRhLW1vZGVsLTAwDQoNCg0KQWJzdHJhY3Q6DQog
ICAgIFRoaXMgZG9jdW1lbnQgZGVzY3JpYmVzIGEgYmFzZSBZQU5HIGRhdGEgbW9kZWwgZm9yIGRl
Y2xhcmF0aXZlDQogICAgIHBvbGljaWVzIHRoYXQgY2FuIGJlIHVzZWQgd2l0aGluIHRoZSBTVVBB
IChTaW1wbGlmaWVkIFVzZSBvZiBQb2xpY3kNCiAgICAgQWJzdHJhY3Rpb25zKSBmcmFtZXdvcmsu
ICBUaGUgYmFzZSBtb2RlbCBjYW4gYmUgYXVnbWVudGVkIGJ5DQogICAgIGFkZGl0aW9uYWwgWUFO
RyBtb2R1bGVzIGRlZmluaW5nIGRhdGEgbW9kZWxzIGZvciBpbnRlbnQgcmVsYXRlZA0KICAgICBw
b2xpY2llcyBhbmQgZnVuY3Rpb25zIHRvIHN1cHBvcnQgdmFyaW91cyBuZXR3b3JrIHNjZW5hcmlv
cyBhbmQNCiAgICAgYXBwbGljYXRpb25zLiAgVGhlIGJhc2UgZGVjbGFyYXRpdmUgcG9saWN5IGRh
dGEgbW9kZWwgcHJvdmlkZXMgY29tbW9uDQogICAgIGJ1aWxkaW5nIGJsb2NrcyBmb3IgZXh0ZW5z
aW9ucy4NCg0KDQpQbGVhc2Ugbm90ZSB0aGF0IGl0IG1heSB0YWtlIGEgY291cGxlIG9mIG1pbnV0
ZXMgZnJvbSB0aGUgdGltZSBvZiBzdWJtaXNzaW9uIHVudGlsIHRoZSBodG1saXplZCB2ZXJzaW9u
IGFuZCBkaWZmIGFyZSBhdmFpbGFibGUgYXQgdG9vbHMuaWV0Zi5vcmcuDQoNClRoZSBJRVRGIFNl
Y3JldGFyaWF0DQoNCg0KDQoNCg0KDQoNCg==

